Skip to content

Commit 05d4f58

Browse files
fix: name sparsekernel response schemas
1 parent c834bae commit 05d4f58

3 files changed

Lines changed: 77 additions & 47 deletions

File tree

packages/sparsekernel-client/src/index.ts

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,18 @@ export type SparseKernelBooleanResult = {
2424
ok: boolean;
2525
};
2626

27+
export type SparseKernelReleaseResult = {
28+
released: boolean;
29+
};
30+
31+
export type SparseKernelCapabilityCheckResult = {
32+
allowed: boolean;
33+
};
34+
35+
export type SparseKernelCapabilityRevokeResult = {
36+
revoked: boolean;
37+
};
38+
2739
export type SparseKernelResourceBudgets = {
2840
logical_agents_max: number;
2941
active_agent_steps_max: number;
@@ -690,7 +702,10 @@ export class SparseKernelClient {
690702
const input: SparseKernelReleaseBrowserContextInput = {
691703
context_id: contextId,
692704
};
693-
const response = await this.postJson<{ released: boolean }>("/browser/contexts/release", input);
705+
const response = await this.postJson<SparseKernelReleaseResult>(
706+
"/browser/contexts/release",
707+
input,
708+
);
694709
return response.released;
695710
}
696711

@@ -771,7 +786,7 @@ export class SparseKernelClient {
771786
const input: SparseKernelReleaseSandboxInput = {
772787
allocation_id: allocationId,
773788
};
774-
const response = await this.postJson<{ released: boolean }>("/sandbox/release", input);
789+
const response = await this.postJson<SparseKernelReleaseResult>("/sandbox/release", input);
775790
return response.released;
776791
}
777792

@@ -802,13 +817,19 @@ export class SparseKernelClient {
802817
}
803818

804819
async checkCapability(input: SparseKernelCapabilityCheckInput): Promise<boolean> {
805-
const response = await this.postJson<{ allowed: boolean }>("/capabilities/check", input);
820+
const response = await this.postJson<SparseKernelCapabilityCheckResult>(
821+
"/capabilities/check",
822+
input,
823+
);
806824
return response.allowed;
807825
}
808826

809827
async revokeCapability(id: string): Promise<boolean> {
810828
const input: SparseKernelCapabilityIdInput = { id };
811-
const response = await this.postJson<{ revoked: boolean }>("/capabilities/revoke", input);
829+
const response = await this.postJson<SparseKernelCapabilityRevokeResult>(
830+
"/capabilities/revoke",
831+
input,
832+
);
812833
return response.revoked;
813834
}
814835

schemas/sparsekernel.openapi.yaml

Lines changed: 47 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,7 @@ paths:
1515
content:
1616
application/json:
1717
schema:
18-
type: object
19-
required: [ok, service, version]
20-
properties:
21-
ok: { type: boolean }
22-
service: { type: string }
23-
version: { type: string }
24-
protocol_version:
25-
type: string
26-
description: SparseKernel local API protocol version. Clients should require a compatible major.
27-
schema_version:
28-
type: integer
29-
description: Current SQLite ledger schema version.
30-
features:
31-
type: array
32-
items: { type: string }
18+
$ref: "#/components/schemas/Health"
3319
/status:
3420
get:
3521
operationId: status
@@ -39,14 +25,7 @@ paths:
3925
content:
4026
application/json:
4127
schema:
42-
type: object
43-
required: [path, schema_version, counts]
44-
properties:
45-
path: { type: string }
46-
schema_version: { type: integer }
47-
counts:
48-
type: object
49-
additionalProperties: { type: integer }
28+
$ref: "#/components/schemas/Inspect"
5029
/runtime/budgets:
5130
get:
5231
operationId: getRuntimeBudgets
@@ -486,10 +465,7 @@ paths:
486465
content:
487466
application/json:
488467
schema:
489-
type: object
490-
required: [released]
491-
properties:
492-
released: { type: boolean }
468+
$ref: "#/components/schemas/ReleaseResult"
493469
/browser/contexts/observe:
494470
post:
495471
operationId: recordBrowserObservation
@@ -506,10 +482,7 @@ paths:
506482
content:
507483
application/json:
508484
schema:
509-
type: object
510-
required: [ok]
511-
properties:
512-
ok: { type: boolean }
485+
$ref: "#/components/schemas/BooleanResult"
513486
/browser/targets/record:
514487
post:
515488
operationId: recordBrowserTarget
@@ -614,10 +587,7 @@ paths:
614587
content:
615588
application/json:
616589
schema:
617-
type: object
618-
required: [released]
619-
properties:
620-
released: { type: boolean }
590+
$ref: "#/components/schemas/ReleaseResult"
621591
/sandbox/backends/probe:
622592
get:
623593
operationId: probeSandboxBackends
@@ -678,10 +648,7 @@ paths:
678648
content:
679649
application/json:
680650
schema:
681-
type: object
682-
required: [allowed]
683-
properties:
684-
allowed: { type: boolean }
651+
$ref: "#/components/schemas/CapabilityCheckResult"
685652
/capabilities/revoke:
686653
post:
687654
operationId: revokeCapability
@@ -697,10 +664,7 @@ paths:
697664
content:
698665
application/json:
699666
schema:
700-
type: object
701-
required: [revoked]
702-
properties:
703-
revoked: { type: boolean }
667+
$ref: "#/components/schemas/CapabilityRevokeResult"
704668
/capabilities/list:
705669
post:
706670
operationId: listCapabilities
@@ -818,6 +782,46 @@ paths:
818782
$ref: "#/components/schemas/AuditEvent"
819783
components:
820784
schemas:
785+
Health:
786+
type: object
787+
required: [ok, service, version]
788+
properties:
789+
ok: { type: boolean }
790+
service: { type: string }
791+
version: { type: string }
792+
protocol_version:
793+
type: string
794+
description: SparseKernel local API protocol version. Clients should require a compatible major.
795+
schema_version:
796+
type: integer
797+
description: Current SQLite ledger schema version.
798+
features:
799+
type: array
800+
items: { type: string }
801+
Inspect:
802+
type: object
803+
required: [path, schema_version, counts]
804+
properties:
805+
path: { type: string }
806+
schema_version: { type: integer }
807+
counts:
808+
type: object
809+
additionalProperties: { type: integer }
810+
ReleaseResult:
811+
type: object
812+
required: [released]
813+
properties:
814+
released: { type: boolean }
815+
CapabilityCheckResult:
816+
type: object
817+
required: [allowed]
818+
properties:
819+
allowed: { type: boolean }
820+
CapabilityRevokeResult:
821+
type: object
822+
required: [revoked]
823+
properties:
824+
revoked: { type: boolean }
821825
RuntimeResourceBudgets:
822826
type: object
823827
required:

scripts/check-sparsekernel-openapi.mjs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,12 @@ const OPENAPI_PATH = "schemas/sparsekernel.openapi.yaml";
66
const DAEMON_PATH = "crates/sparsekernel-cli/src/lib.rs";
77
const CLIENT_PATH = "packages/sparsekernel-client/src/index.ts";
88
const CLIENT_SCHEMA_MAPPINGS = [
9+
mapping("SparseKernelHealth", "Health"),
10+
mapping("SparseKernelInspect", "Inspect"),
911
mapping("SparseKernelBooleanResult", "BooleanResult"),
12+
mapping("SparseKernelReleaseResult", "ReleaseResult"),
13+
mapping("SparseKernelCapabilityCheckResult", "CapabilityCheckResult"),
14+
mapping("SparseKernelCapabilityRevokeResult", "CapabilityRevokeResult"),
1015
mapping("SparseKernelResourceBudgets", "RuntimeResourceBudgets"),
1116
mapping("SparseKernelResourceBudgetUpdateInput", "RuntimeResourceBudgetUpdateInput"),
1217
mapping("SparseKernelNetworkPolicy", "NetworkPolicy"),

0 commit comments

Comments
 (0)