@kyo-so/cli 0.11.0 → 0.12.0

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.
@@ -1,5 +1,12 @@
1
- export declare const CURRENT_SKILL_DIGEST = "sha256:570f83f716734f34db00147f1b98bc8cd4e9c0016d3946b352ecef4a5d6b8734";
1
+ export declare const CURRENT_SKILL_DIGEST = "sha256:8654e68ea61f2acea29027056802bf627ad737f084c9a86ab052946943538409";
2
2
  export declare const KNOWN_SKILL_DIGESTS_BY_VERSION: {
3
+ readonly "0.11.0": readonly [{
4
+ readonly digest: "sha256:110dd872a3d1c8a71474a0eadb226f51a6addd86f9d4f3ed17b73678b3179a4e";
5
+ readonly kind: "historical";
6
+ }, {
7
+ readonly digest: "sha256:570f83f716734f34db00147f1b98bc8cd4e9c0016d3946b352ecef4a5d6b8734";
8
+ readonly kind: "historical";
9
+ }];
3
10
  readonly "0.8.0": readonly [{
4
11
  readonly digest: "sha256:b16ea3f8141a01399b96dee650365d99df2b8c5fc99184d9cb22d5d72c106fd8";
5
12
  readonly kind: "historical";
@@ -10,9 +10,9 @@ export declare const PLUGIN_RUNTIME_COMPATIBILITY_SCHEMA_VERSION = 1;
10
10
  export declare const MINIMUM_SUPPORTED_CODEX_VERSION = "0.144.0-alpha.4";
11
11
  export declare const PLUGIN_RUNTIME_EXPECTED_CONTRACT: {
12
12
  readonly distribution: {
13
- readonly pluginVersion: "0.4.0";
13
+ readonly pluginVersion: "0.5.0";
14
14
  readonly mcpCommand: "npx";
15
- readonly mcpPackagePin: "@kyo-so/cli@0.10.0";
15
+ readonly mcpPackagePin: "@kyo-so/cli@0.11.0";
16
16
  };
17
17
  readonly marketplace: {
18
18
  readonly name: "kyoso";
@@ -130,9 +130,9 @@ export declare const pluginRuntimeContract: {
130
130
  readonly pluginListTopLevelKeys: readonly ["installed", "available"];
131
131
  readonly expectedContract: {
132
132
  readonly distribution: {
133
- readonly pluginVersion: "0.4.0";
133
+ readonly pluginVersion: "0.5.0";
134
134
  readonly mcpCommand: "npx";
135
- readonly mcpPackagePin: "@kyo-so/cli@0.10.0";
135
+ readonly mcpPackagePin: "@kyo-so/cli@0.11.0";
136
136
  };
137
137
  readonly marketplace: {
138
138
  readonly name: "kyoso";
@@ -11,12 +11,31 @@ export declare const kyosoConfigSchema: z.ZodObject<{
11
11
  mcp: z.ZodBoolean;
12
12
  cli: z.ZodBoolean;
13
13
  }, z.core.$strip>;
14
- firstClassClient: z.ZodString;
14
+ firstClassClient: z.ZodLiteral<"codex">;
15
15
  tools: z.ZodObject<{
16
16
  planReview: z.ZodBoolean;
17
17
  securityReview: z.ZodBoolean;
18
18
  diffReview: z.ZodBoolean;
19
19
  }, z.core.$strip>;
20
+ reviewPolicy: z.ZodObject<{
21
+ additionalLenses: z.ZodArray<z.ZodEnum<{
22
+ correctness: "correctness";
23
+ regression: "regression";
24
+ security_boundaries: "security_boundaries";
25
+ secrets_and_injection: "secrets_and_injection";
26
+ data_integrity: "data_integrity";
27
+ public_contract: "public_contract";
28
+ supply_chain: "supply_chain";
29
+ privacy: "privacy";
30
+ resource_amplification: "resource_amplification";
31
+ architecture: "architecture";
32
+ performance: "performance";
33
+ tests: "tests";
34
+ documentation: "documentation";
35
+ maintainability: "maintainability";
36
+ }>>;
37
+ multiAgentRequired: z.ZodBoolean;
38
+ }, z.core.$strip>;
20
39
  agents: z.ZodObject<{
21
40
  codex: z.ZodObject<{
22
41
  enabled: z.ZodDefault<z.ZodBoolean>;
@@ -71,7 +90,7 @@ export declare const kyosoConfigSchema: z.ZodObject<{
71
90
  workspace: z.ZodObject<{
72
91
  mode: z.ZodLiteral<"temp_snapshot">;
73
92
  root: z.ZodString;
74
- readOnly: z.ZodBoolean;
93
+ readOnly: z.ZodLiteral<true>;
75
94
  maxContextBytes: z.ZodNumber;
76
95
  maxDiffBytes: z.ZodNumber;
77
96
  deny: z.ZodArray<z.ZodString>;
@@ -89,7 +108,7 @@ export declare const kyosoConfigSchema: z.ZodObject<{
89
108
  allowUnrestricted: z.ZodBoolean;
90
109
  warnOnUnrestricted: z.ZodBoolean;
91
110
  mediatedWeb: z.ZodObject<{
92
- enabled: z.ZodBoolean;
111
+ enabled: z.ZodLiteral<false>;
93
112
  }, z.core.$strip>;
94
113
  }, z.core.$strip>;
95
114
  securityReview: z.ZodObject<{
@@ -135,7 +154,7 @@ export declare const kyosoConfigSchema: z.ZodObject<{
135
154
  format: z.ZodLiteral<"jsonl">;
136
155
  directory: z.ZodString;
137
156
  includeRawAgentOutput: z.ZodBoolean;
138
- includeFileContents: z.ZodBoolean;
157
+ includeFileContents: z.ZodLiteral<false>;
139
158
  }, z.core.$strip>;
140
159
  }, z.core.$strip>;
141
160
  export declare const kyosoConfigKnownLeafPaths: string[];
@@ -6,4 +6,4 @@ export declare const JUDGE_MAX_OUTPUT_TOKENS = 4096;
6
6
  export declare const RAW_OUTPUT_MAX_CHARS = 16384;
7
7
  export declare const TRACE_DIR = ".kyoso/traces";
8
8
  export declare const KYOSO_CHILD_AGENT = "KYOSO_CHILD_AGENT";
9
- export declare const KYOSO_VERSION = "0.11.0";
9
+ export declare const KYOSO_VERSION = "0.12.0";
@@ -0,0 +1,10 @@
1
+ import type { EvidenceRef, KyosoFinding, KyosoReviewRequest, ReviewMode, ReviewTool } from "./types.js";
2
+ export declare function admitFindings(input: {
3
+ tool: ReviewTool;
4
+ request: KyosoReviewRequest;
5
+ findings: KyosoFinding[];
6
+ reviewMode: ReviewMode;
7
+ }): KyosoFinding[];
8
+ export declare function selectRegressionTests(tests: string[]): string[];
9
+ export declare function buildAdmissionOpenQuestions(findings: KyosoFinding[]): string[];
10
+ export declare function findingFingerprint(finding: Pick<KyosoFinding, "category" | "title">, evidenceRefs: EvidenceRef[]): string;
@@ -1,11 +1,12 @@
1
1
  import type { KyosoConfig } from "../config/schema.js";
2
2
  import type { AgentRole, KyosoReviewRequest, ReviewBudget, ReviewTool } from "./types.js";
3
- export declare const REVIEW_CONTRACT_VERSION = "2026-07-15-v1";
3
+ export declare const REVIEW_CONTRACT_VERSION = "2026-07-16-v3";
4
4
  export declare function createRequestFingerprint(input: {
5
5
  tool: ReviewTool;
6
6
  request: KyosoReviewRequest;
7
7
  config: KyosoConfig;
8
8
  roles: Partial<Record<"codex" | "claude", AgentRole>>;
9
9
  budget: ReviewBudget;
10
+ entrypoint?: "cli" | "mcp" | "core";
10
11
  }): string;
11
12
  export declare function canonicalJson(value: unknown): string;
@@ -0,0 +1,16 @@
1
+ import type { AgentRole, AgentRunResult, KyosoReviewRequest, ReviewCoverage, ReviewLens } from "./types.js";
2
+ export declare const REVIEW_LENSES: readonly ["correctness", "regression", "security_boundaries", "secrets_and_injection", "data_integrity", "public_contract", "supply_chain", "privacy", "resource_amplification", "architecture", "performance", "tests", "documentation", "maintainability"];
3
+ export declare const BUILT_IN_SAFETY_FLOOR: readonly ["correctness", "regression", "security_boundaries", "secrets_and_injection", "data_integrity", "public_contract"];
4
+ export declare const REQUIRED_REVIEW_PERSPECTIVES: AgentRole[];
5
+ export declare function isReviewLens(value: unknown): value is ReviewLens;
6
+ export declare function resolveRequiredLenses(request: KyosoReviewRequest, additionalLenses?: ReviewLens[]): ReviewLens[];
7
+ export declare function buildReviewCoverage(input: {
8
+ request: KyosoReviewRequest;
9
+ additionalLenses?: ReviewLens[];
10
+ agentResults: AgentRunResult[];
11
+ }): ReviewCoverage;
12
+ export declare function isCoverageIncomplete(coverage: ReviewCoverage, options: {
13
+ multiAgentRequired: boolean;
14
+ }): boolean;
15
+ export declare function unavailableReviewCoverage(request: KyosoReviewRequest, reason: string, additionalLenses?: ReviewLens[]): ReviewCoverage;
16
+ export declare function renderTrustedReviewContract(request: KyosoReviewRequest, requiredLenses?: ReviewLens[]): string;
@@ -10,6 +10,7 @@ export type RunReviewOptions = LoadConfigOptions & {
10
10
  agentManager?: AcpAgentManager;
11
11
  env?: NodeJS.ProcessEnv;
12
12
  mcpNetworkMode?: NetworkMode;
13
+ entrypoint?: "cli" | "mcp" | "core";
13
14
  traceWriterFactory?: (options: TraceWriterOptions) => TraceWriter;
14
15
  };
15
16
  export declare function runReview(tool: ReviewTool, request: KyosoReviewRequest, options?: RunReviewOptions): Promise<KyosoResult>;
@@ -4,6 +4,25 @@ export type GateStatus = "pass" | "warn" | "fail" | "not_applicable";
4
4
  export type NetworkMode = "model_only" | "unrestricted";
5
5
  export type JudgeProvider = "auto" | "openai" | "anthropic" | "none";
6
6
  export type Severity = "critical" | "high" | "medium" | "low" | "info";
7
+ export type ReviewLens = "correctness" | "regression" | "security_boundaries" | "secrets_and_injection" | "data_integrity" | "public_contract" | "supply_chain" | "privacy" | "resource_amplification" | "architecture" | "performance" | "tests" | "documentation" | "maintainability";
8
+ export type ReviewContract = {
9
+ focus?: ReviewLens[];
10
+ nonGoals?: string[];
11
+ acceptedRisks?: Array<{
12
+ findingFingerprint: string;
13
+ rationale: string;
14
+ }>;
15
+ };
16
+ export type FindingDisposition = "gate" | "actionable" | "advisory" | "disputed";
17
+ export type ChangeRelation = "introduced" | "worsened" | "pre_existing" | "unknown";
18
+ export type EvidenceQuality = "concrete" | "partial" | "insufficient";
19
+ export type EvidenceRef = {
20
+ kind: "file" | "diff_hunk" | "plan_clause";
21
+ path?: string;
22
+ lineStart?: number;
23
+ lineEnd?: number;
24
+ label?: string;
25
+ };
7
26
  export type ReviewBudget = {
8
27
  maxModelCalls: number;
9
28
  maxTotalWallTimeMs: number;
@@ -31,6 +50,7 @@ export type FindingCategory = "architecture" | "authn" | "authz" | "csrf" | "xss
31
50
  export type CisaDimension = "customer_security_outcomes" | "secure_by_default" | "transparency_and_accountability" | "governance";
32
51
  export type KyosoReviewRequest = {
33
52
  goal: string;
53
+ reviewContract?: ReviewContract;
34
54
  repoSummary?: string;
35
55
  currentPlan?: string;
36
56
  selectedFiles?: Array<{
@@ -66,6 +86,12 @@ export type KyosoFinding = {
66
86
  title: string;
67
87
  evidence: string;
68
88
  recommendation: string;
89
+ disposition: FindingDisposition;
90
+ changeRelation: ChangeRelation;
91
+ evidenceQuality: EvidenceQuality;
92
+ evidenceRefs: EvidenceRef[];
93
+ policyReasons: string[];
94
+ fingerprint: string;
69
95
  files?: Array<{
70
96
  path: string;
71
97
  lineStart?: number;
@@ -82,6 +108,8 @@ export type KyosoFinding = {
82
108
  };
83
109
  };
84
110
  export type CisaSecureByDesignResult = {
111
+ gateEnabled: boolean;
112
+ enabledDimensions: CisaDimension[];
85
113
  customerSecurityOutcomes: GateStatus;
86
114
  secureByDefault: GateStatus;
87
115
  transparencyAndAccountability: GateStatus;
@@ -91,6 +119,17 @@ export type CisaSecureByDesignResult = {
91
119
  export type AgentName = "codex" | "claude";
92
120
  export type AgentRole = "implementation_reviewer" | "architecture_security_reviewer" | "combined_reviewer" | "finding_verifier";
93
121
  export type ReviewMode = "multi_agent" | "single_agent";
122
+ export type ReviewCoverage = {
123
+ requiredLenses: ReviewLens[];
124
+ attemptedLenses: ReviewLens[];
125
+ missingLenses: Array<{
126
+ lens: ReviewLens;
127
+ reason: string;
128
+ }>;
129
+ requiredPerspectives: AgentRole[];
130
+ completedPerspectives: AgentRole[];
131
+ independentReview: boolean;
132
+ };
94
133
  export type NormalizedAgentOpinion = {
95
134
  agent: AgentName;
96
135
  role: string;
@@ -101,6 +140,10 @@ export type NormalizedAgentOpinion = {
101
140
  title: string;
102
141
  evidence: string;
103
142
  recommendation: string;
143
+ disposition?: FindingDisposition;
144
+ changeRelation?: ChangeRelation;
145
+ evidenceQuality?: EvidenceQuality;
146
+ evidenceRefs?: EvidenceRef[];
104
147
  files?: Array<{
105
148
  path: string;
106
149
  lineStart?: number;
@@ -202,6 +245,7 @@ export type KyosoResult = {
202
245
  degraded: boolean;
203
246
  agentsUsed: AgentName[];
204
247
  reviewMode: ReviewMode;
248
+ coverage: ReviewCoverage;
205
249
  verificationMode?: "cross_agent" | "skipped_single_agent";
206
250
  summaryMarkdown: string;
207
251
  findings: KyosoFinding[];
@@ -217,6 +261,7 @@ export type KyosoResult = {
217
261
  crossModelAnalysis?: CrossModelAnalysis;
218
262
  testsToAdd: string[];
219
263
  residualRisks: string[];
264
+ openQuestions: string[];
220
265
  agentOpinions: Array<{
221
266
  agent: AgentName;
222
267
  role: string;
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export { defineConfig } from "./config/defineConfig.js";
2
2
  export { runReview } from "./core/runReview.js";
3
- export type { CisaSecureByDesignResult, GateStatus, KyosoDecision, KyosoFinding, KyosoResult, KyosoReviewRequest, ModelTokenUsage, NetworkMode, ReviewBudget, ReviewBudgetRequest, ReviewCompletion, ReviewExecutionBudget, ReviewModelCallAudit, ReviewTool, } from "./core/types.js";
3
+ export type { ChangeRelation, CisaSecureByDesignResult, EvidenceQuality, EvidenceRef, FindingDisposition, GateStatus, KyosoDecision, KyosoFinding, KyosoResult, KyosoReviewRequest, ModelTokenUsage, NetworkMode, ReviewBudget, ReviewBudgetRequest, ReviewCompletion, ReviewContract, ReviewCoverage, ReviewExecutionBudget, ReviewLens, ReviewModelCallAudit, ReviewTool, } from "./core/types.js";