@req2rank/core 0.1.0-r7

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 (154) hide show
  1. package/LICENSE +21 -0
  2. package/dist/adaptive-calibration.d.ts +13 -0
  3. package/dist/adaptive-calibration.d.ts.map +1 -0
  4. package/dist/adaptive-calibration.js +39 -0
  5. package/dist/adaptive-calibration.js.map +1 -0
  6. package/dist/adaptive-calibration.test.d.ts +2 -0
  7. package/dist/adaptive-calibration.test.d.ts.map +1 -0
  8. package/dist/adaptive-calibration.test.js +20 -0
  9. package/dist/adaptive-calibration.test.js.map +1 -0
  10. package/dist/checkpoint-key.d.ts +3 -0
  11. package/dist/checkpoint-key.d.ts.map +1 -0
  12. package/dist/checkpoint-key.js +29 -0
  13. package/dist/checkpoint-key.js.map +1 -0
  14. package/dist/checkpoint-key.test.d.ts +2 -0
  15. package/dist/checkpoint-key.test.d.ts.map +1 -0
  16. package/dist/checkpoint-key.test.js +32 -0
  17. package/dist/checkpoint-key.test.js.map +1 -0
  18. package/dist/config.d.ts +205 -0
  19. package/dist/config.d.ts.map +1 -0
  20. package/dist/config.js +85 -0
  21. package/dist/config.js.map +1 -0
  22. package/dist/domain-taxonomy.d.ts +13 -0
  23. package/dist/domain-taxonomy.d.ts.map +1 -0
  24. package/dist/domain-taxonomy.js +12 -0
  25. package/dist/domain-taxonomy.js.map +1 -0
  26. package/dist/evaluation-panel.d.ts +27 -0
  27. package/dist/evaluation-panel.d.ts.map +1 -0
  28. package/dist/evaluation-panel.js +158 -0
  29. package/dist/evaluation-panel.js.map +1 -0
  30. package/dist/evaluation-panel.test.d.ts +2 -0
  31. package/dist/evaluation-panel.test.d.ts.map +1 -0
  32. package/dist/evaluation-panel.test.js +185 -0
  33. package/dist/evaluation-panel.test.js.map +1 -0
  34. package/dist/evidence-chain.d.ts +11 -0
  35. package/dist/evidence-chain.d.ts.map +1 -0
  36. package/dist/evidence-chain.js +33 -0
  37. package/dist/evidence-chain.js.map +1 -0
  38. package/dist/evidence-chain.test.d.ts +2 -0
  39. package/dist/evidence-chain.test.d.ts.map +1 -0
  40. package/dist/evidence-chain.test.js +16 -0
  41. package/dist/evidence-chain.test.js.map +1 -0
  42. package/dist/execution-engine.d.ts +29 -0
  43. package/dist/execution-engine.d.ts.map +1 -0
  44. package/dist/execution-engine.js +102 -0
  45. package/dist/execution-engine.js.map +1 -0
  46. package/dist/execution-engine.test.d.ts +2 -0
  47. package/dist/execution-engine.test.d.ts.map +1 -0
  48. package/dist/execution-engine.test.js +86 -0
  49. package/dist/execution-engine.test.js.map +1 -0
  50. package/dist/hub-client.d.ts +21 -0
  51. package/dist/hub-client.d.ts.map +1 -0
  52. package/dist/hub-client.js +99 -0
  53. package/dist/hub-client.js.map +1 -0
  54. package/dist/hub-client.test.d.ts +2 -0
  55. package/dist/hub-client.test.d.ts.map +1 -0
  56. package/dist/hub-client.test.js +129 -0
  57. package/dist/hub-client.test.js.map +1 -0
  58. package/dist/index.d.ts +19 -0
  59. package/dist/index.d.ts.map +1 -0
  60. package/dist/index.js +19 -0
  61. package/dist/index.js.map +1 -0
  62. package/dist/leaderboard-query.d.ts +29 -0
  63. package/dist/leaderboard-query.d.ts.map +1 -0
  64. package/dist/leaderboard-query.js +59 -0
  65. package/dist/leaderboard-query.js.map +1 -0
  66. package/dist/leaderboard-query.test.d.ts +2 -0
  67. package/dist/leaderboard-query.test.d.ts.map +1 -0
  68. package/dist/leaderboard-query.test.js +34 -0
  69. package/dist/leaderboard-query.test.js.map +1 -0
  70. package/dist/local-store.d.ts +18 -0
  71. package/dist/local-store.d.ts.map +1 -0
  72. package/dist/local-store.js +181 -0
  73. package/dist/local-store.js.map +1 -0
  74. package/dist/local-store.test.d.ts +2 -0
  75. package/dist/local-store.test.d.ts.map +1 -0
  76. package/dist/local-store.test.js +153 -0
  77. package/dist/local-store.test.js.map +1 -0
  78. package/dist/pipeline-stage-handoff.test.d.ts +2 -0
  79. package/dist/pipeline-stage-handoff.test.d.ts.map +1 -0
  80. package/dist/pipeline-stage-handoff.test.js +290 -0
  81. package/dist/pipeline-stage-handoff.test.js.map +1 -0
  82. package/dist/pipeline.d.ts +67 -0
  83. package/dist/pipeline.d.ts.map +1 -0
  84. package/dist/pipeline.js +493 -0
  85. package/dist/pipeline.js.map +1 -0
  86. package/dist/providers/anthropic.d.ts +8 -0
  87. package/dist/providers/anthropic.d.ts.map +1 -0
  88. package/dist/providers/anthropic.js +45 -0
  89. package/dist/providers/anthropic.js.map +1 -0
  90. package/dist/providers/base.d.ts +36 -0
  91. package/dist/providers/base.d.ts.map +1 -0
  92. package/dist/providers/base.js +47 -0
  93. package/dist/providers/base.js.map +1 -0
  94. package/dist/providers/custom.d.ts +6 -0
  95. package/dist/providers/custom.d.ts.map +1 -0
  96. package/dist/providers/custom.js +6 -0
  97. package/dist/providers/custom.js.map +1 -0
  98. package/dist/providers/google.d.ts +8 -0
  99. package/dist/providers/google.d.ts.map +1 -0
  100. package/dist/providers/google.js +48 -0
  101. package/dist/providers/google.js.map +1 -0
  102. package/dist/providers/index.d.ts +31 -0
  103. package/dist/providers/index.d.ts.map +1 -0
  104. package/dist/providers/index.js +63 -0
  105. package/dist/providers/index.js.map +1 -0
  106. package/dist/providers/openai.d.ts +18 -0
  107. package/dist/providers/openai.d.ts.map +1 -0
  108. package/dist/providers/openai.js +111 -0
  109. package/dist/providers/openai.js.map +1 -0
  110. package/dist/providers/providers.test.d.ts +2 -0
  111. package/dist/providers/providers.test.d.ts.map +1 -0
  112. package/dist/providers/providers.test.js +71 -0
  113. package/dist/providers/providers.test.js.map +1 -0
  114. package/dist/requirement-generator.d.ts +29 -0
  115. package/dist/requirement-generator.d.ts.map +1 -0
  116. package/dist/requirement-generator.js +358 -0
  117. package/dist/requirement-generator.js.map +1 -0
  118. package/dist/requirement-generator.test.d.ts +2 -0
  119. package/dist/requirement-generator.test.d.ts.map +1 -0
  120. package/dist/requirement-generator.test.js +182 -0
  121. package/dist/requirement-generator.test.js.map +1 -0
  122. package/dist/sandbox.d.ts +32 -0
  123. package/dist/sandbox.d.ts.map +1 -0
  124. package/dist/sandbox.js +124 -0
  125. package/dist/sandbox.js.map +1 -0
  126. package/dist/sandbox.test.d.ts +2 -0
  127. package/dist/sandbox.test.d.ts.map +1 -0
  128. package/dist/sandbox.test.js +20 -0
  129. package/dist/sandbox.test.js.map +1 -0
  130. package/dist/scoring-engine.d.ts +15 -0
  131. package/dist/scoring-engine.d.ts.map +1 -0
  132. package/dist/scoring-engine.js +109 -0
  133. package/dist/scoring-engine.js.map +1 -0
  134. package/dist/scoring-engine.test.d.ts +2 -0
  135. package/dist/scoring-engine.test.d.ts.map +1 -0
  136. package/dist/scoring-engine.test.js +137 -0
  137. package/dist/scoring-engine.test.js.map +1 -0
  138. package/dist/submit-payload-builder.d.ts +9 -0
  139. package/dist/submit-payload-builder.d.ts.map +1 -0
  140. package/dist/submit-payload-builder.js +23 -0
  141. package/dist/submit-payload-builder.js.map +1 -0
  142. package/dist/submit-payload-builder.test.d.ts +2 -0
  143. package/dist/submit-payload-builder.test.d.ts.map +1 -0
  144. package/dist/submit-payload-builder.test.js +75 -0
  145. package/dist/submit-payload-builder.test.js.map +1 -0
  146. package/dist/submitter-types.d.ts +54 -0
  147. package/dist/submitter-types.d.ts.map +1 -0
  148. package/dist/submitter-types.js +2 -0
  149. package/dist/submitter-types.js.map +1 -0
  150. package/dist/types.d.ts +40 -0
  151. package/dist/types.d.ts.map +1 -0
  152. package/dist/types.js +2 -0
  153. package/dist/types.js.map +1 -0
  154. package/package.json +36 -0
@@ -0,0 +1,86 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { ExecutionEngine, parseExecutionResponse, resolveExecutionBudget } from "./execution-engine.js";
3
+ class StubProvider {
4
+ id = "stub";
5
+ name = "Stub";
6
+ callCount = 0;
7
+ async chat() {
8
+ this.callCount += 1;
9
+ return {
10
+ content: "```ts\nexport const run = () => 'ok';\n```",
11
+ usage: { promptTokens: 10, completionTokens: 20 },
12
+ latencyMs: 12
13
+ };
14
+ }
15
+ }
16
+ function makeRequirement(complexity) {
17
+ return {
18
+ id: "req-1",
19
+ version: "1.0",
20
+ title: "Demo requirement",
21
+ description: "demo",
22
+ functionalRequirements: [
23
+ {
24
+ id: "FR-1",
25
+ description: "Do work",
26
+ acceptanceCriteria: "Works",
27
+ priority: "must"
28
+ }
29
+ ],
30
+ constraints: [],
31
+ expectedDeliverables: ["source code"],
32
+ metadata: {
33
+ skills: ["api-design"],
34
+ complexity,
35
+ domain: "generic",
36
+ scenario: "demo",
37
+ techStack: ["typescript"],
38
+ mutationLog: []
39
+ },
40
+ evaluationGuidance: {
41
+ keyDifferentiators: [],
42
+ commonPitfalls: [],
43
+ edgeCases: []
44
+ },
45
+ generatedBy: "test",
46
+ generatedAt: new Date().toISOString(),
47
+ selfReviewPassed: true
48
+ };
49
+ }
50
+ describe("ExecutionEngine", () => {
51
+ it("maps C1-C4 complexity to timeout and token budgets", () => {
52
+ expect(resolveExecutionBudget("C1")).toEqual({ timeoutMs: 30_000, maxTokens: 4_096 });
53
+ expect(resolveExecutionBudget("C2")).toEqual({ timeoutMs: 60_000, maxTokens: 8_192 });
54
+ expect(resolveExecutionBudget("C3")).toEqual({ timeoutMs: 120_000, maxTokens: 16_384 });
55
+ expect(resolveExecutionBudget("C4")).toEqual({ timeoutMs: 180_000, maxTokens: 32_768 });
56
+ });
57
+ it("falls back to fenced-code parsing when JSON parsing fails", () => {
58
+ const parsed = parseExecutionResponse("```ts\nexport const answer = 42;\n```");
59
+ expect(parsed.language).toBe("ts");
60
+ expect(parsed.code).toContain("answer = 42");
61
+ });
62
+ it("parses fenced-code blocks with CRLF newlines", () => {
63
+ const parsed = parseExecutionResponse("```ts\r\nexport const answer = 42;\r\n```");
64
+ expect(parsed.language).toBe("ts");
65
+ expect(parsed.code).toContain("answer = 42");
66
+ });
67
+ it("uses requirement complexity budget during execute", async () => {
68
+ const provider = new StubProvider();
69
+ const engine = new ExecutionEngine();
70
+ const requirement = makeRequirement("C4");
71
+ const result = await engine.execute(requirement, { provider: "openai", model: "gpt-4o-mini" }, { provider });
72
+ expect(result.timeoutMs).toBe(180_000);
73
+ expect(result.maxTokens).toBe(32_768);
74
+ expect(result.code).toContain("run = () => 'ok'");
75
+ expect(provider.callCount).toBe(1);
76
+ });
77
+ it("still allows deterministic raw response override", async () => {
78
+ const provider = new StubProvider();
79
+ const engine = new ExecutionEngine();
80
+ const requirement = makeRequirement("C2");
81
+ const result = await engine.execute(requirement, { provider: "openai", model: "gpt-4o-mini" }, { provider, rawResponse: "```ts\nexport const answer = 42;\n```" });
82
+ expect(result.code).toContain("answer = 42");
83
+ expect(provider.callCount).toBe(0);
84
+ });
85
+ });
86
+ //# sourceMappingURL=execution-engine.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-engine.test.js","sourceRoot":"","sources":["../src/execution-engine.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { LeaderboardEntry, LeaderboardQuery, NonceResponse, SubmissionRequest, SubmissionResponse } from "./submitter-types.js";
2
+ export interface HubClient {
3
+ requestNonce(): Promise<NonceResponse>;
4
+ submit(payload: SubmissionRequest): Promise<SubmissionResponse>;
5
+ getLeaderboard(query: LeaderboardQuery): Promise<LeaderboardEntry[]>;
6
+ submitCalibration(payload: {
7
+ recommendedComplexity: "C1" | "C2" | "C3" | "C4";
8
+ reason: string;
9
+ averageScore: number;
10
+ sampleSize: number;
11
+ source?: string;
12
+ }): Promise<{
13
+ ok: boolean;
14
+ }>;
15
+ }
16
+ export interface HubClientOptions {
17
+ serverUrl?: string;
18
+ token?: string;
19
+ }
20
+ export declare function createHubClient(options?: HubClientOptions): HubClient;
21
+ //# sourceMappingURL=hub-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hub-client.d.ts","sourceRoot":"","sources":["../src/hub-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAGhI,MAAM,WAAW,SAAS;IACxB,YAAY,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IACvC,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAChE,cAAc,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACrE,iBAAiB,CAAC,OAAO,EAAE;QACzB,qBAAqB,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;QACjD,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAkHD,wBAAgB,eAAe,CAAC,OAAO,GAAE,gBAAqB,GAAG,SAAS,CASzE"}
@@ -0,0 +1,99 @@
1
+ import { parseLeaderboardQuery } from "./leaderboard-query.js";
2
+ class PlaceholderHubClient {
3
+ async requestNonce() {
4
+ return {
5
+ nonce: "placeholder-nonce",
6
+ expiresAt: new Date(Date.now() + 2 * 60 * 60 * 1000).toISOString()
7
+ };
8
+ }
9
+ async submit(payload) {
10
+ return {
11
+ status: "pending",
12
+ message: `Submit pending for ${payload.runId}`
13
+ };
14
+ }
15
+ async getLeaderboard(query) {
16
+ const normalizedQuery = parseLeaderboardQuery(query);
17
+ const { limit, offset, sort } = normalizedQuery;
18
+ const base = Array.from({ length: 5 }).map((_, index) => ({
19
+ rank: index + 1,
20
+ model: `placeholder/model-${index + 1}`,
21
+ score: 95 - index
22
+ }));
23
+ const ordered = sort === "asc" ? base.slice().reverse() : base;
24
+ return ordered.slice(offset, offset + limit).map((entry, index) => ({
25
+ ...entry,
26
+ rank: offset + index + 1
27
+ }));
28
+ }
29
+ async submitCalibration() {
30
+ return { ok: false };
31
+ }
32
+ }
33
+ class HttpHubClient {
34
+ baseUrl;
35
+ token;
36
+ constructor(serverUrl, token) {
37
+ this.baseUrl = serverUrl.replace(/\/+$/, "");
38
+ this.token = token;
39
+ }
40
+ headers() {
41
+ return {
42
+ "content-type": "application/json",
43
+ Authorization: `Bearer ${this.token}`
44
+ };
45
+ }
46
+ async requestJson(path, init) {
47
+ const response = await fetch(`${this.baseUrl}${path}`, {
48
+ ...init,
49
+ headers: {
50
+ ...this.headers(),
51
+ ...init?.headers
52
+ }
53
+ });
54
+ if (!response.ok) {
55
+ throw new Error(`Hub request failed: ${response.status}`);
56
+ }
57
+ return (await response.json());
58
+ }
59
+ async requestNonce() {
60
+ return this.requestJson("/api/nonces", {
61
+ method: "POST",
62
+ body: JSON.stringify({})
63
+ });
64
+ }
65
+ async submit(payload) {
66
+ return this.requestJson("/api/submissions", {
67
+ method: "POST",
68
+ body: JSON.stringify(payload)
69
+ });
70
+ }
71
+ async getLeaderboard(query) {
72
+ const normalizedQuery = parseLeaderboardQuery(query);
73
+ const complexitySegment = encodeURIComponent(normalizedQuery.complexity ?? "all");
74
+ const dimensionSegment = normalizedQuery.dimension ? `/${encodeURIComponent(normalizedQuery.dimension)}` : "";
75
+ const params = new URLSearchParams({
76
+ limit: String(normalizedQuery.limit),
77
+ offset: String(normalizedQuery.offset),
78
+ sort: normalizedQuery.sort
79
+ });
80
+ return this.requestJson(`/api/leaderboard/${complexitySegment}${dimensionSegment}?${params.toString()}`, {
81
+ method: "GET"
82
+ });
83
+ }
84
+ async submitCalibration(payload) {
85
+ return this.requestJson("/api/calibration", {
86
+ method: "POST",
87
+ body: JSON.stringify(payload)
88
+ });
89
+ }
90
+ }
91
+ export function createHubClient(options = {}) {
92
+ const serverUrl = options.serverUrl ?? process.env.R2R_HUB_SERVER_URL;
93
+ const token = options.token ?? process.env.R2R_HUB_TOKEN;
94
+ if (serverUrl && token) {
95
+ return new HttpHubClient(serverUrl, token);
96
+ }
97
+ return new PlaceholderHubClient();
98
+ }
99
+ //# sourceMappingURL=hub-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hub-client.js","sourceRoot":"","sources":["../src/hub-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAoB/D,MAAM,oBAAoB;IACxB,KAAK,CAAC,YAAY;QAChB,OAAO;YACL,KAAK,EAAE,mBAAmB;YAC1B,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;SACnE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAA0B;QACrC,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,sBAAsB,OAAO,CAAC,KAAK,EAAE;SAC/C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAAuB;QAC1C,MAAM,eAAe,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;QAEhD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACxD,IAAI,EAAE,KAAK,GAAG,CAAC;YACf,KAAK,EAAE,qBAAqB,KAAK,GAAG,CAAC,EAAE;YACvC,KAAK,EAAE,EAAE,GAAG,KAAK;SAClB,CAAC,CAAC,CAAC;QAEJ,MAAM,OAAO,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/D,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAClE,GAAG,KAAK;YACR,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,CAAC;SACzB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;IACvB,CAAC;CACF;AAED,MAAM,aAAa;IACA,OAAO,CAAS;IAChB,KAAK,CAAS;IAE/B,YAAY,SAAiB,EAAE,KAAa;QAC1C,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAEO,OAAO;QACb,OAAO;YACL,cAAc,EAAE,kBAAkB;YAClC,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE;SACtC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,WAAW,CAAI,IAAY,EAAE,IAAkB;QAC3D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,EAAE;YACrD,GAAG,IAAI;YACP,OAAO,EAAE;gBACP,GAAG,IAAI,CAAC,OAAO,EAAE;gBACjB,GAAI,IAAI,EAAE,OAA8C;aACzD;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,IAAI,CAAC,WAAW,CAAgB,aAAa,EAAE;YACpD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;SACzB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAA0B;QACrC,OAAO,IAAI,CAAC,WAAW,CAAqB,kBAAkB,EAAE;YAC9D,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAAuB;QAC1C,MAAM,eAAe,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,eAAe,CAAC,UAAU,IAAI,KAAK,CAAC,CAAC;QAClF,MAAM,gBAAgB,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9G,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC;YACpC,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC;YACtC,IAAI,EAAE,eAAe,CAAC,IAAI;SAC3B,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,WAAW,CAAqB,oBAAoB,iBAAiB,GAAG,gBAAgB,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE;YAC3H,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,OAMvB;QACC,OAAO,IAAI,CAAC,WAAW,CAAkB,kBAAkB,EAAE;YAC3D,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;SAC9B,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,UAAU,eAAe,CAAC,UAA4B,EAAE;IAC5D,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IACtE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAEzD,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;QACvB,OAAO,IAAI,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,IAAI,oBAAoB,EAAE,CAAC;AACpC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=hub-client.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hub-client.test.d.ts","sourceRoot":"","sources":["../src/hub-client.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,129 @@
1
+ import { afterEach, describe, expect, it, vi } from "vitest";
2
+ import { createHubClient } from "./hub-client.js";
3
+ describe("HubClient placeholder", () => {
4
+ afterEach(() => {
5
+ vi.unstubAllGlobals();
6
+ });
7
+ it("returns nonce response", async () => {
8
+ const client = createHubClient();
9
+ const nonce = await client.requestNonce();
10
+ expect(nonce.nonce.length).toBeGreaterThan(0);
11
+ expect(nonce.expiresAt).toContain("T");
12
+ });
13
+ it("returns pending submit response", async () => {
14
+ const client = createHubClient();
15
+ const response = await client.submit({
16
+ runId: "run-1",
17
+ nonce: "nonce-1",
18
+ targetProvider: "openai",
19
+ targetModel: "gpt-4o-mini",
20
+ overallScore: 80,
21
+ submittedAt: new Date("2026-01-01T00:00:00.000Z").toISOString(),
22
+ evidenceChain: {
23
+ timeline: [
24
+ {
25
+ phase: "generate",
26
+ startedAt: "2026-01-01T00:00:00.000Z",
27
+ completedAt: "2026-01-01T00:00:01.000Z",
28
+ model: "system"
29
+ }
30
+ ],
31
+ samples: [
32
+ {
33
+ roundIndex: 0,
34
+ requirement: "demo",
35
+ codeSubmission: "export const ok = true;"
36
+ }
37
+ ],
38
+ environment: {
39
+ os: "win32",
40
+ nodeVersion: "v22",
41
+ timezone: "UTC"
42
+ }
43
+ }
44
+ });
45
+ expect(response.status).toBe("pending");
46
+ expect(response.message).toContain("run-1");
47
+ });
48
+ it("returns leaderboard placeholder entries", async () => {
49
+ const client = createHubClient();
50
+ const entries = await client.getLeaderboard({
51
+ limit: 2,
52
+ offset: 1,
53
+ sort: "asc"
54
+ });
55
+ expect(entries).toHaveLength(2);
56
+ expect(entries[0].score).toBeLessThanOrEqual(entries[1].score);
57
+ });
58
+ it("uses HTTP hub API when serverUrl and token are provided", async () => {
59
+ const fetchMock = vi.fn(async (input, init) => {
60
+ if (input.endsWith("/api/nonces")) {
61
+ expect(init?.headers).toMatchObject({
62
+ Authorization: "Bearer token-1"
63
+ });
64
+ return new Response(JSON.stringify({ nonce: "nonce-http", expiresAt: "2026-01-01T00:00:00.000Z" }), {
65
+ status: 200,
66
+ headers: { "content-type": "application/json" }
67
+ });
68
+ }
69
+ if (input.endsWith("/api/submissions")) {
70
+ return new Response(JSON.stringify({ status: "accepted", message: "submitted" }), {
71
+ status: 200,
72
+ headers: { "content-type": "application/json" }
73
+ });
74
+ }
75
+ if (input.includes("/api/leaderboard/")) {
76
+ return new Response(JSON.stringify([{ rank: 1, model: "openai/gpt-4o-mini", score: 92 }]), {
77
+ status: 200,
78
+ headers: { "content-type": "application/json" }
79
+ });
80
+ }
81
+ if (input.endsWith("/api/calibration")) {
82
+ return new Response(JSON.stringify({ ok: true }), {
83
+ status: 200,
84
+ headers: { "content-type": "application/json" }
85
+ });
86
+ }
87
+ return new Response("not found", { status: 404 });
88
+ });
89
+ vi.stubGlobal("fetch", fetchMock);
90
+ const client = createHubClient({
91
+ serverUrl: "https://hub.example.com",
92
+ token: "token-1"
93
+ });
94
+ const nonce = await client.requestNonce();
95
+ expect(nonce.nonce).toBe("nonce-http");
96
+ const submit = await client.submit({
97
+ runId: "run-2",
98
+ nonce: "nonce-http",
99
+ targetProvider: "openai",
100
+ targetModel: "gpt-4o-mini",
101
+ overallScore: 90,
102
+ submittedAt: new Date("2026-01-01T00:00:00.000Z").toISOString(),
103
+ evidenceChain: {
104
+ timeline: [
105
+ {
106
+ phase: "generate",
107
+ startedAt: "2026-01-01T00:00:00.000Z",
108
+ completedAt: "2026-01-01T00:00:01.000Z",
109
+ model: "system"
110
+ }
111
+ ],
112
+ samples: [{ roundIndex: 0, requirement: "demo", codeSubmission: "ok" }],
113
+ environment: { os: "win32", nodeVersion: "v22", timezone: "UTC" }
114
+ }
115
+ });
116
+ expect(submit.status).toBe("accepted");
117
+ const leaderboard = await client.getLeaderboard({ limit: 10, offset: 0, sort: "desc" });
118
+ expect(leaderboard[0]?.model).toBe("openai/gpt-4o-mini");
119
+ const calibration = await client.submitCalibration({
120
+ recommendedComplexity: "C2",
121
+ reason: "stable",
122
+ averageScore: 80,
123
+ sampleSize: 5,
124
+ source: "cli"
125
+ });
126
+ expect(calibration.ok).toBe(true);
127
+ });
128
+ });
129
+ //# sourceMappingURL=hub-client.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hub-client.test.js","sourceRoot":"","sources":["../src/hub-client.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export * from "./types.js";
2
+ export * from "./providers/index.js";
3
+ export * from "./requirement-generator.js";
4
+ export * from "./config.js";
5
+ export * from "./local-store.js";
6
+ export * from "./pipeline.js";
7
+ export * from "./execution-engine.js";
8
+ export * from "./evaluation-panel.js";
9
+ export * from "./scoring-engine.js";
10
+ export * from "./submitter-types.js";
11
+ export * from "./hub-client.js";
12
+ export * from "./evidence-chain.js";
13
+ export * from "./submit-payload-builder.js";
14
+ export * from "./leaderboard-query.js";
15
+ export * from "./adaptive-calibration.js";
16
+ export * from "./sandbox.js";
17
+ export * from "./checkpoint-key.js";
18
+ export * from "./domain-taxonomy.js";
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,19 @@
1
+ export * from "./types.js";
2
+ export * from "./providers/index.js";
3
+ export * from "./requirement-generator.js";
4
+ export * from "./config.js";
5
+ export * from "./local-store.js";
6
+ export * from "./pipeline.js";
7
+ export * from "./execution-engine.js";
8
+ export * from "./evaluation-panel.js";
9
+ export * from "./scoring-engine.js";
10
+ export * from "./submitter-types.js";
11
+ export * from "./hub-client.js";
12
+ export * from "./evidence-chain.js";
13
+ export * from "./submit-payload-builder.js";
14
+ export * from "./leaderboard-query.js";
15
+ export * from "./adaptive-calibration.js";
16
+ export * from "./sandbox.js";
17
+ export * from "./checkpoint-key.js";
18
+ export * from "./domain-taxonomy.js";
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { z } from "zod";
2
+ import { LeaderboardQuery } from "./submitter-types.js";
3
+ export declare const leaderboardQuerySchema: z.ZodObject<{
4
+ limit: z.ZodNumber;
5
+ offset: z.ZodNumber;
6
+ sort: z.ZodEnum<["asc", "desc"]>;
7
+ complexity: z.ZodOptional<z.ZodEnum<["C1", "C2", "C3", "C4", "mixed"]>>;
8
+ dimension: z.ZodOptional<z.ZodEnum<["functionalCompleteness", "codeQuality", "logicAccuracy", "security", "engineeringPractice"]>>;
9
+ }, "strip", z.ZodTypeAny, {
10
+ sort: "asc" | "desc";
11
+ limit: number;
12
+ offset: number;
13
+ complexity?: "C1" | "C2" | "C3" | "C4" | "mixed" | undefined;
14
+ dimension?: "functionalCompleteness" | "codeQuality" | "logicAccuracy" | "security" | "engineeringPractice" | undefined;
15
+ }, {
16
+ sort: "asc" | "desc";
17
+ limit: number;
18
+ offset: number;
19
+ complexity?: "C1" | "C2" | "C3" | "C4" | "mixed" | undefined;
20
+ dimension?: "functionalCompleteness" | "codeQuality" | "logicAccuracy" | "security" | "engineeringPractice" | undefined;
21
+ }>;
22
+ export type LeaderboardQueryNormalized = z.infer<typeof leaderboardQuerySchema>;
23
+ export interface LeaderboardQueryFieldLabels {
24
+ limit: string;
25
+ offset: string;
26
+ sort: string;
27
+ }
28
+ export declare function parseLeaderboardQuery(input: LeaderboardQuery, labels?: LeaderboardQueryFieldLabels): LeaderboardQueryNormalized;
29
+ //# sourceMappingURL=leaderboard-query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leaderboard-query.d.ts","sourceRoot":"","sources":["../src/leaderboard-query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;EAQjC,CAAC;AAEH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEhF,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AA+BD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,gBAAgB,EACvB,MAAM,GAAE,2BAA4C,GACnD,0BAA0B,CAkC5B"}
@@ -0,0 +1,59 @@
1
+ import { z } from "zod";
2
+ export const leaderboardQuerySchema = z.object({
3
+ limit: z.number().int().positive(),
4
+ offset: z.number().int().nonnegative(),
5
+ sort: z.enum(["asc", "desc"]),
6
+ complexity: z.enum(["C1", "C2", "C3", "C4", "mixed"]).optional(),
7
+ dimension: z
8
+ .enum(["functionalCompleteness", "codeQuality", "logicAccuracy", "security", "engineeringPractice"])
9
+ .optional()
10
+ });
11
+ const DEFAULT_LABELS = {
12
+ limit: "limit",
13
+ offset: "offset",
14
+ sort: "sort"
15
+ };
16
+ function parseIntegerField(value, defaultValue, label) {
17
+ if (value === undefined) {
18
+ return defaultValue;
19
+ }
20
+ if (typeof value === "number") {
21
+ if (!Number.isInteger(value)) {
22
+ throw new Error(`Invalid ${label} value: ${value}`);
23
+ }
24
+ return value;
25
+ }
26
+ if (!/^-?\d+$/.test(value)) {
27
+ throw new Error(`Invalid ${label} value: ${value}`);
28
+ }
29
+ return Number.parseInt(value, 10);
30
+ }
31
+ export function parseLeaderboardQuery(input, labels = DEFAULT_LABELS) {
32
+ const limit = parseIntegerField(input.limit, 10, labels.limit);
33
+ const offset = parseIntegerField(input.offset, 0, labels.offset);
34
+ const sort = input.sort ?? "desc";
35
+ const complexity = input.complexity;
36
+ const dimension = input.dimension;
37
+ if (limit <= 0) {
38
+ throw new Error(`${labels.limit} must be a positive integer`);
39
+ }
40
+ if (offset < 0) {
41
+ throw new Error(`${labels.offset} must be a non-negative integer`);
42
+ }
43
+ if (sort !== "asc" && sort !== "desc") {
44
+ throw new Error(`Invalid ${labels.sort} value: ${sort}`);
45
+ }
46
+ if (complexity !== undefined && complexity !== "C1" && complexity !== "C2" && complexity !== "C3" && complexity !== "C4" && complexity !== "mixed") {
47
+ throw new Error(`Invalid complexity value: ${complexity}`);
48
+ }
49
+ if (dimension !== undefined &&
50
+ dimension !== "functionalCompleteness" &&
51
+ dimension !== "codeQuality" &&
52
+ dimension !== "logicAccuracy" &&
53
+ dimension !== "security" &&
54
+ dimension !== "engineeringPractice") {
55
+ throw new Error(`Invalid dimension value: ${dimension}`);
56
+ }
57
+ return leaderboardQuerySchema.parse({ limit, offset, sort, complexity, dimension });
58
+ }
59
+ //# sourceMappingURL=leaderboard-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leaderboard-query.js","sourceRoot":"","sources":["../src/leaderboard-query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=leaderboard-query.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leaderboard-query.test.d.ts","sourceRoot":"","sources":["../src/leaderboard-query.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,34 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { parseLeaderboardQuery } from "./leaderboard-query.js";
3
+ describe("parseLeaderboardQuery", () => {
4
+ it("applies defaults for empty input", () => {
5
+ const query = parseLeaderboardQuery({});
6
+ expect(query).toEqual({ limit: 10, offset: 0, sort: "desc" });
7
+ });
8
+ it("normalizes numeric strings", () => {
9
+ const query = parseLeaderboardQuery({
10
+ limit: "2",
11
+ offset: "1",
12
+ sort: "asc",
13
+ complexity: "C3",
14
+ dimension: "security"
15
+ });
16
+ expect(query).toEqual({ limit: 2, offset: 1, sort: "asc", complexity: "C3", dimension: "security" });
17
+ });
18
+ it("throws labeled errors for invalid values", () => {
19
+ expect(() => parseLeaderboardQuery({ limit: "2x" }, {
20
+ limit: "--limit",
21
+ offset: "--offset",
22
+ sort: "--sort"
23
+ })).toThrow("Invalid --limit value: 2x");
24
+ });
25
+ it("enforces limit and offset boundaries", () => {
26
+ expect(() => parseLeaderboardQuery({ limit: 0 })).toThrow("limit must be a positive integer");
27
+ expect(() => parseLeaderboardQuery({ offset: -1 })).toThrow("offset must be a non-negative integer");
28
+ });
29
+ it("rejects invalid complexity and dimension", () => {
30
+ expect(() => parseLeaderboardQuery({ complexity: "C9" })).toThrow("Invalid complexity value: C9");
31
+ expect(() => parseLeaderboardQuery({ dimension: "unknown" })).toThrow("Invalid dimension value: unknown");
32
+ });
33
+ });
34
+ //# sourceMappingURL=leaderboard-query.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leaderboard-query.test.js","sourceRoot":"","sources":["../src/leaderboard-query.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,KAAK,GAAG,qBAAqB,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,KAAK,GAAG,qBAAqB,CAAC;YAClC,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,KAAK;YACX,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,UAAU;SACtB,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;IACvG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,GAAG,EAAE,CACV,qBAAqB,CACnB,EAAE,KAAK,EAAE,IAAI,EAAE,EACf;YACE,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,UAAU;YAClB,IAAI,EAAE,QAAQ;SACf,CACF,CACF,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;QAC9F,MAAM,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC;IACvG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;QAClG,MAAM,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;IAC5G,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { CalibrationSnapshot, LocalStoreShape, RunRecord } from "./config.js";
2
+ export declare class LocalStore {
3
+ private readonly filePath;
4
+ private db?;
5
+ constructor(filePath: string);
6
+ private getDb;
7
+ private ensureColumns;
8
+ private mapRun;
9
+ private parseJson;
10
+ close(): void;
11
+ read(): Promise<LocalStoreShape>;
12
+ appendRun(run: RunRecord): Promise<void>;
13
+ listRuns(): Promise<RunRecord[]>;
14
+ findRunById(runId: string): Promise<RunRecord | undefined>;
15
+ appendCalibration(snapshot: CalibrationSnapshot): Promise<void>;
16
+ listCalibrations(): Promise<CalibrationSnapshot[]>;
17
+ }
18
+ //# sourceMappingURL=local-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-store.d.ts","sourceRoot":"","sources":["../src/local-store.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE9E,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,EAAE,CAAC,CAAoB;gBAEnB,QAAQ,EAAE,MAAM;YAId,KAAK;IAqCnB,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,MAAM;IAgCd,OAAO,CAAC,SAAS;IAQjB,KAAK,IAAI,IAAI;IAOP,IAAI,IAAI,OAAO,CAAC,eAAe,CAAC;IAMhC,SAAS,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAoCxC,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAiBhC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAiB1D,iBAAiB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB/D,gBAAgB,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;CAezD"}