Skip to content

Commit b83086c

Browse files
fix: map sparsekernel boolean result
1 parent 6f9bd82 commit b83086c

2 files changed

Lines changed: 20 additions & 5 deletions

File tree

packages/sparsekernel-client/src/index.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ export type SparseKernelInspect = {
2020
counts: Record<string, number>;
2121
};
2222

23+
export type SparseKernelBooleanResult = {
24+
ok: boolean;
25+
};
26+
2327
export type SparseKernelResourceBudgets = {
2428
logical_agents_max: number;
2529
active_agent_steps_max: number;
@@ -691,7 +695,7 @@ export class SparseKernelClient {
691695
}
692696

693697
async recordBrowserObservation(input: SparseKernelBrowserObservationInput): Promise<void> {
694-
await this.postJson<{ ok: boolean }>("/browser/contexts/observe", input);
698+
await this.postJson<SparseKernelBooleanResult>("/browser/contexts/observe", input);
695699
}
696700

697701
async recordBrowserTarget(
@@ -734,17 +738,17 @@ export class SparseKernelClient {
734738
}
735739

736740
async heartbeatTask(input: SparseKernelHeartbeatTaskInput): Promise<boolean> {
737-
const response = await this.postJson<{ ok: boolean }>("/tasks/heartbeat", input);
741+
const response = await this.postJson<SparseKernelBooleanResult>("/tasks/heartbeat", input);
738742
return response.ok;
739743
}
740744

741745
async completeTask(input: SparseKernelCompleteTaskInput): Promise<boolean> {
742-
const response = await this.postJson<{ ok: boolean }>("/tasks/complete", input);
746+
const response = await this.postJson<SparseKernelBooleanResult>("/tasks/complete", input);
743747
return response.ok;
744748
}
745749

746750
async failTask(input: SparseKernelFailTaskInput): Promise<boolean> {
747-
const response = await this.postJson<{ ok: boolean }>("/tasks/fail", input);
751+
const response = await this.postJson<SparseKernelBooleanResult>("/tasks/fail", input);
748752
return response.ok;
749753
}
750754

scripts/check-sparsekernel-openapi.mjs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ 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("SparseKernelBooleanResult", "BooleanResult"),
910
mapping("SparseKernelResourceBudgets", "RuntimeResourceBudgets"),
1011
mapping("SparseKernelResourceBudgetUpdateInput", "RuntimeResourceBudgetUpdateInput"),
1112
mapping("SparseKernelNetworkPolicy", "NetworkPolicy"),
@@ -238,6 +239,17 @@ export function checkSparseKernelOpenApi({ openapiText, daemonSource, clientSour
238239
errors.push(formatList("Unresolved SparseKernel OpenAPI schema refs", unresolvedSchemaRefs));
239240
}
240241

242+
const mappedSchemaNames = new Set(CLIENT_SCHEMA_MAPPINGS.map((item) => item.schemaName));
243+
const referencedSchemaNames = [...collectSchemaRefs(openapi)]
244+
.filter((ref) => ref.startsWith("#/components/schemas/"))
245+
.map((ref) => ref.slice("#/components/schemas/".length));
246+
pushSetDiff(
247+
errors,
248+
"SparseKernel OpenAPI referenced schemas missing client parity mapping",
249+
new Set(referencedSchemaNames),
250+
mappedSchemaNames,
251+
);
252+
241253
const inlineRequestBodies = collectOpenApiInlineRequestBodyRoutes(paths);
242254
if (inlineRequestBodies.size > 0) {
243255
errors.push(
@@ -247,7 +259,6 @@ export function checkSparseKernelOpenApi({ openapiText, daemonSource, clientSour
247259
),
248260
);
249261
}
250-
const mappedSchemaNames = new Set(CLIENT_SCHEMA_MAPPINGS.map((item) => item.schemaName));
251262
pushSetDiff(
252263
errors,
253264
"SparseKernel OpenAPI request body schemas missing client parity mapping",

0 commit comments

Comments
 (0)