@dewtech/dare-cli 3.9.0 → 3.11.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.
Files changed (254) hide show
  1. package/README.md +5 -0
  2. package/dist/__tests__/ci-pr-regression.test.d.ts +2 -0
  3. package/dist/__tests__/ci-pr-regression.test.d.ts.map +1 -0
  4. package/dist/__tests__/ci-pr-regression.test.js +76 -0
  5. package/dist/__tests__/ci-pr-regression.test.js.map +1 -0
  6. package/dist/__tests__/dashboard-front.test.d.ts +2 -0
  7. package/dist/__tests__/dashboard-front.test.d.ts.map +1 -0
  8. package/dist/__tests__/dashboard-front.test.js +37 -0
  9. package/dist/__tests__/dashboard-front.test.js.map +1 -0
  10. package/dist/__tests__/dashboard-regression.test.d.ts +2 -0
  11. package/dist/__tests__/dashboard-regression.test.d.ts.map +1 -0
  12. package/dist/__tests__/dashboard-regression.test.js +68 -0
  13. package/dist/__tests__/dashboard-regression.test.js.map +1 -0
  14. package/dist/__tests__/drift-regression.test.d.ts +2 -0
  15. package/dist/__tests__/drift-regression.test.d.ts.map +1 -0
  16. package/dist/__tests__/drift-regression.test.js +118 -0
  17. package/dist/__tests__/drift-regression.test.js.map +1 -0
  18. package/dist/__tests__/dynamic-dag-regression.test.d.ts +2 -0
  19. package/dist/__tests__/dynamic-dag-regression.test.d.ts.map +1 -0
  20. package/dist/__tests__/dynamic-dag-regression.test.js +464 -0
  21. package/dist/__tests__/dynamic-dag-regression.test.js.map +1 -0
  22. package/dist/__tests__/ide-command-parity.test.js +1 -0
  23. package/dist/__tests__/ide-command-parity.test.js.map +1 -1
  24. package/dist/__tests__/project-generator.test.js +10 -1
  25. package/dist/__tests__/project-generator.test.js.map +1 -1
  26. package/dist/__tests__/semantic-regression.test.d.ts +2 -0
  27. package/dist/__tests__/semantic-regression.test.d.ts.map +1 -0
  28. package/dist/__tests__/semantic-regression.test.js +248 -0
  29. package/dist/__tests__/semantic-regression.test.js.map +1 -0
  30. package/dist/bin/dare.js +2 -0
  31. package/dist/bin/dare.js.map +1 -1
  32. package/dist/commands/__tests__/dashboard-command.test.d.ts +2 -0
  33. package/dist/commands/__tests__/dashboard-command.test.d.ts.map +1 -0
  34. package/dist/commands/__tests__/dashboard-command.test.js +62 -0
  35. package/dist/commands/__tests__/dashboard-command.test.js.map +1 -0
  36. package/dist/commands/__tests__/execute.telemetry.spec.js +3 -0
  37. package/dist/commands/__tests__/execute.telemetry.spec.js.map +1 -1
  38. package/dist/commands/__tests__/gate-flags.test.d.ts +2 -0
  39. package/dist/commands/__tests__/gate-flags.test.d.ts.map +1 -0
  40. package/dist/commands/__tests__/gate-flags.test.js +58 -0
  41. package/dist/commands/__tests__/gate-flags.test.js.map +1 -0
  42. package/dist/commands/__tests__/graph-drift.test.d.ts +2 -0
  43. package/dist/commands/__tests__/graph-drift.test.d.ts.map +1 -0
  44. package/dist/commands/__tests__/graph-drift.test.js +169 -0
  45. package/dist/commands/__tests__/graph-drift.test.js.map +1 -0
  46. package/dist/commands/__tests__/persist-viz.test.d.ts +2 -0
  47. package/dist/commands/__tests__/persist-viz.test.d.ts.map +1 -0
  48. package/dist/commands/__tests__/persist-viz.test.js +178 -0
  49. package/dist/commands/__tests__/persist-viz.test.js.map +1 -0
  50. package/dist/commands/__tests__/refine-apply.test.d.ts +2 -0
  51. package/dist/commands/__tests__/refine-apply.test.d.ts.map +1 -0
  52. package/dist/commands/__tests__/refine-apply.test.js +118 -0
  53. package/dist/commands/__tests__/refine-apply.test.js.map +1 -0
  54. package/dist/commands/__tests__/replan-splice.test.d.ts +2 -0
  55. package/dist/commands/__tests__/replan-splice.test.d.ts.map +1 -0
  56. package/dist/commands/__tests__/replan-splice.test.js +295 -0
  57. package/dist/commands/__tests__/replan-splice.test.js.map +1 -0
  58. package/dist/commands/dag.d.ts.map +1 -1
  59. package/dist/commands/dag.js +2 -0
  60. package/dist/commands/dag.js.map +1 -1
  61. package/dist/commands/dashboard.d.ts +17 -0
  62. package/dist/commands/dashboard.d.ts.map +1 -0
  63. package/dist/commands/dashboard.js +77 -0
  64. package/dist/commands/dashboard.js.map +1 -0
  65. package/dist/commands/execute.d.ts.map +1 -1
  66. package/dist/commands/execute.js +117 -2
  67. package/dist/commands/execute.js.map +1 -1
  68. package/dist/commands/graph.d.ts.map +1 -1
  69. package/dist/commands/graph.js +232 -1
  70. package/dist/commands/graph.js.map +1 -1
  71. package/dist/commands/guard.d.ts.map +1 -1
  72. package/dist/commands/guard.js +27 -3
  73. package/dist/commands/guard.js.map +1 -1
  74. package/dist/commands/refine.d.ts +2 -0
  75. package/dist/commands/refine.d.ts.map +1 -1
  76. package/dist/commands/refine.js +71 -20
  77. package/dist/commands/refine.js.map +1 -1
  78. package/dist/commands/review.d.ts.map +1 -1
  79. package/dist/commands/review.js +36 -5
  80. package/dist/commands/review.js.map +1 -1
  81. package/dist/dag-runner/__tests__/maxdepth-config.test.d.ts +2 -0
  82. package/dist/dag-runner/__tests__/maxdepth-config.test.d.ts.map +1 -0
  83. package/dist/dag-runner/__tests__/maxdepth-config.test.js +28 -0
  84. package/dist/dag-runner/__tests__/maxdepth-config.test.js.map +1 -0
  85. package/dist/dag-runner/__tests__/sub-dag.test.d.ts +2 -0
  86. package/dist/dag-runner/__tests__/sub-dag.test.d.ts.map +1 -0
  87. package/dist/dag-runner/__tests__/sub-dag.test.js +127 -0
  88. package/dist/dag-runner/__tests__/sub-dag.test.js.map +1 -0
  89. package/dist/dag-runner/graph-ingest.d.ts.map +1 -1
  90. package/dist/dag-runner/graph-ingest.js +13 -7
  91. package/dist/dag-runner/graph-ingest.js.map +1 -1
  92. package/dist/dag-runner/run_dag.d.ts +2 -0
  93. package/dist/dag-runner/run_dag.d.ts.map +1 -1
  94. package/dist/dag-runner/run_dag.js.map +1 -1
  95. package/dist/dag-runner/state-store.d.ts +2 -0
  96. package/dist/dag-runner/state-store.d.ts.map +1 -1
  97. package/dist/dag-runner/state-store.js +44 -8
  98. package/dist/dag-runner/state-store.js.map +1 -1
  99. package/dist/dag-runner/sub-dag.d.ts +23 -0
  100. package/dist/dag-runner/sub-dag.d.ts.map +1 -0
  101. package/dist/dag-runner/sub-dag.js +117 -0
  102. package/dist/dag-runner/sub-dag.js.map +1 -0
  103. package/dist/dashboard/__tests__/dashboard-routes.test.d.ts +2 -0
  104. package/dist/dashboard/__tests__/dashboard-routes.test.d.ts.map +1 -0
  105. package/dist/dashboard/__tests__/dashboard-routes.test.js +102 -0
  106. package/dist/dashboard/__tests__/dashboard-routes.test.js.map +1 -0
  107. package/dist/dashboard/routes.d.ts +8 -0
  108. package/dist/dashboard/routes.d.ts.map +1 -0
  109. package/dist/dashboard/routes.js +70 -0
  110. package/dist/dashboard/routes.js.map +1 -0
  111. package/dist/graphrag/__tests__/drift-config.test.d.ts +2 -0
  112. package/dist/graphrag/__tests__/drift-config.test.d.ts.map +1 -0
  113. package/dist/graphrag/__tests__/drift-config.test.js +33 -0
  114. package/dist/graphrag/__tests__/drift-config.test.js.map +1 -0
  115. package/dist/graphrag/__tests__/drift.test.d.ts +2 -0
  116. package/dist/graphrag/__tests__/drift.test.d.ts.map +1 -0
  117. package/dist/graphrag/__tests__/drift.test.js +152 -0
  118. package/dist/graphrag/__tests__/drift.test.js.map +1 -0
  119. package/dist/graphrag/__tests__/hybrid-integration.test.d.ts +2 -0
  120. package/dist/graphrag/__tests__/hybrid-integration.test.d.ts.map +1 -0
  121. package/dist/graphrag/__tests__/hybrid-integration.test.js +158 -0
  122. package/dist/graphrag/__tests__/hybrid-integration.test.js.map +1 -0
  123. package/dist/graphrag/__tests__/hybrid.test.d.ts +2 -0
  124. package/dist/graphrag/__tests__/hybrid.test.d.ts.map +1 -0
  125. package/dist/graphrag/__tests__/hybrid.test.js +71 -0
  126. package/dist/graphrag/__tests__/hybrid.test.js.map +1 -0
  127. package/dist/graphrag/__tests__/incremental-index.test.d.ts +2 -0
  128. package/dist/graphrag/__tests__/incremental-index.test.d.ts.map +1 -0
  129. package/dist/graphrag/__tests__/incremental-index.test.js +135 -0
  130. package/dist/graphrag/__tests__/incremental-index.test.js.map +1 -0
  131. package/dist/graphrag/__tests__/no-heavy-dep-in-core.test.d.ts +2 -0
  132. package/dist/graphrag/__tests__/no-heavy-dep-in-core.test.d.ts.map +1 -0
  133. package/dist/graphrag/__tests__/no-heavy-dep-in-core.test.js +48 -0
  134. package/dist/graphrag/__tests__/no-heavy-dep-in-core.test.js.map +1 -0
  135. package/dist/graphrag/__tests__/requirement-hash.test.d.ts +2 -0
  136. package/dist/graphrag/__tests__/requirement-hash.test.d.ts.map +1 -0
  137. package/dist/graphrag/__tests__/requirement-hash.test.js +74 -0
  138. package/dist/graphrag/__tests__/requirement-hash.test.js.map +1 -0
  139. package/dist/graphrag/__tests__/semantic-config.test.d.ts +2 -0
  140. package/dist/graphrag/__tests__/semantic-config.test.d.ts.map +1 -0
  141. package/dist/graphrag/__tests__/semantic-config.test.js +39 -0
  142. package/dist/graphrag/__tests__/semantic-config.test.js.map +1 -0
  143. package/dist/graphrag/__tests__/vector-persistence.test.d.ts +2 -0
  144. package/dist/graphrag/__tests__/vector-persistence.test.d.ts.map +1 -0
  145. package/dist/graphrag/__tests__/vector-persistence.test.js +112 -0
  146. package/dist/graphrag/__tests__/vector-persistence.test.js.map +1 -0
  147. package/dist/graphrag/__tests__/vector-search.test.d.ts +2 -0
  148. package/dist/graphrag/__tests__/vector-search.test.d.ts.map +1 -0
  149. package/dist/graphrag/__tests__/vector-search.test.js +36 -0
  150. package/dist/graphrag/__tests__/vector-search.test.js.map +1 -0
  151. package/dist/graphrag/drift.d.ts +22 -0
  152. package/dist/graphrag/drift.d.ts.map +1 -0
  153. package/dist/graphrag/drift.js +204 -0
  154. package/dist/graphrag/drift.js.map +1 -0
  155. package/dist/graphrag/embeddings.d.ts +15 -0
  156. package/dist/graphrag/embeddings.d.ts.map +1 -0
  157. package/dist/graphrag/embeddings.js +107 -0
  158. package/dist/graphrag/embeddings.js.map +1 -0
  159. package/dist/graphrag/graph-rag.d.ts +17 -1
  160. package/dist/graphrag/graph-rag.d.ts.map +1 -1
  161. package/dist/graphrag/graph-rag.js +170 -2
  162. package/dist/graphrag/graph-rag.js.map +1 -1
  163. package/dist/graphrag/hybrid.d.ts +8 -0
  164. package/dist/graphrag/hybrid.d.ts.map +1 -0
  165. package/dist/graphrag/hybrid.js +203 -0
  166. package/dist/graphrag/hybrid.js.map +1 -0
  167. package/dist/graphrag/incremental-index.d.ts +18 -0
  168. package/dist/graphrag/incremental-index.d.ts.map +1 -0
  169. package/dist/graphrag/incremental-index.js +159 -0
  170. package/dist/graphrag/incremental-index.js.map +1 -0
  171. package/dist/graphrag/index.d.ts +1 -1
  172. package/dist/graphrag/index.d.ts.map +1 -1
  173. package/dist/graphrag/json-graph.d.ts +2 -1
  174. package/dist/graphrag/json-graph.d.ts.map +1 -1
  175. package/dist/graphrag/json-graph.js +14 -0
  176. package/dist/graphrag/json-graph.js.map +1 -1
  177. package/dist/graphrag/knowledge-graph.d.ts +5 -0
  178. package/dist/graphrag/knowledge-graph.d.ts.map +1 -1
  179. package/dist/graphrag/neo4j-graph.d.ts +2 -1
  180. package/dist/graphrag/neo4j-graph.d.ts.map +1 -1
  181. package/dist/graphrag/neo4j-graph.js +40 -5
  182. package/dist/graphrag/neo4j-graph.js.map +1 -1
  183. package/dist/graphrag/requirement-ingest.d.ts +4 -1
  184. package/dist/graphrag/requirement-ingest.d.ts.map +1 -1
  185. package/dist/graphrag/requirement-ingest.js +18 -8
  186. package/dist/graphrag/requirement-ingest.js.map +1 -1
  187. package/dist/graphrag/types.d.ts +1 -0
  188. package/dist/graphrag/types.d.ts.map +1 -1
  189. package/dist/graphrag/vector-search.d.ts +10 -0
  190. package/dist/graphrag/vector-search.d.ts.map +1 -0
  191. package/dist/graphrag/vector-search.js +38 -0
  192. package/dist/graphrag/vector-search.js.map +1 -0
  193. package/dist/http/__tests__/shared-app.test.d.ts +2 -0
  194. package/dist/http/__tests__/shared-app.test.d.ts.map +1 -0
  195. package/dist/http/__tests__/shared-app.test.js +57 -0
  196. package/dist/http/__tests__/shared-app.test.js.map +1 -0
  197. package/dist/http/app.d.ts +15 -0
  198. package/dist/http/app.d.ts.map +1 -0
  199. package/dist/http/app.js +32 -0
  200. package/dist/http/app.js.map +1 -0
  201. package/dist/mcp-server/server.d.ts.map +1 -1
  202. package/dist/mcp-server/server.js +13 -16
  203. package/dist/mcp-server/server.js.map +1 -1
  204. package/dist/reporters/__tests__/github-reporter.test.d.ts +2 -0
  205. package/dist/reporters/__tests__/github-reporter.test.d.ts.map +1 -0
  206. package/dist/reporters/__tests__/github-reporter.test.js +93 -0
  207. package/dist/reporters/__tests__/github-reporter.test.js.map +1 -0
  208. package/dist/reporters/ci-gate.d.ts +27 -0
  209. package/dist/reporters/ci-gate.d.ts.map +1 -0
  210. package/dist/reporters/ci-gate.js +100 -0
  211. package/dist/reporters/ci-gate.js.map +1 -0
  212. package/dist/reporters/github.d.ts +36 -0
  213. package/dist/reporters/github.d.ts.map +1 -0
  214. package/dist/reporters/github.js +142 -0
  215. package/dist/reporters/github.js.map +1 -0
  216. package/dist/telemetry/__tests__/aggregator.test.d.ts +2 -0
  217. package/dist/telemetry/__tests__/aggregator.test.d.ts.map +1 -0
  218. package/dist/telemetry/__tests__/aggregator.test.js +164 -0
  219. package/dist/telemetry/__tests__/aggregator.test.js.map +1 -0
  220. package/dist/telemetry/aggregator.d.ts +43 -0
  221. package/dist/telemetry/aggregator.d.ts.map +1 -0
  222. package/dist/telemetry/aggregator.js +282 -0
  223. package/dist/telemetry/aggregator.js.map +1 -0
  224. package/dist/utils/UpdateApplier.d.ts.map +1 -1
  225. package/dist/utils/UpdateApplier.js +3 -1
  226. package/dist/utils/UpdateApplier.js.map +1 -1
  227. package/dist/utils/excalidraw-renderer.d.ts.map +1 -1
  228. package/dist/utils/excalidraw-renderer.js +1 -0
  229. package/dist/utils/excalidraw-renderer.js.map +1 -1
  230. package/dist/utils/graph-renderer.d.ts +2 -0
  231. package/dist/utils/graph-renderer.d.ts.map +1 -1
  232. package/dist/utils/graph-renderer.js +188 -14
  233. package/dist/utils/graph-renderer.js.map +1 -1
  234. package/dist/utils/project-generator.d.ts.map +1 -1
  235. package/dist/utils/project-generator.js +34 -5
  236. package/dist/utils/project-generator.js.map +1 -1
  237. package/dist/verification/__tests__/decay-policy.test.js +1 -0
  238. package/dist/verification/__tests__/decay-policy.test.js.map +1 -1
  239. package/dist/verification/__tests__/telemetry.test.js +3 -0
  240. package/dist/verification/__tests__/telemetry.test.js.map +1 -1
  241. package/dist/verification/config.d.ts +82 -0
  242. package/dist/verification/config.d.ts.map +1 -1
  243. package/dist/verification/config.js +148 -0
  244. package/dist/verification/config.js.map +1 -1
  245. package/dist/verification/types.d.ts +2 -0
  246. package/dist/verification/types.d.ts.map +1 -1
  247. package/package.json +3 -2
  248. package/templates/.github/workflows/dare-pr.yml +26 -0
  249. package/templates/dashboard/app.js +184 -0
  250. package/templates/dashboard/index.html +63 -0
  251. package/templates/dashboard/style.css +134 -0
  252. package/templates/ide/antigravity/.agents/skills/dare-dashboard/SKILL.md +18 -0
  253. package/templates/ide/claude/.claude/commands/dare-dashboard.md +18 -0
  254. package/templates/ide/cursor/.cursor/commands/dare-dashboard.md +18 -0
@@ -1,7 +1,47 @@
1
+ import { z } from 'zod';
1
2
  import type { VerificationConfig, FormalGateConfig } from './types.js';
2
3
  /** DEFAULTS.formal — ausência do bloco ⇒ enabled:false (RNF-01). */
3
4
  export declare const FORMAL_DEFAULTS: FormalGateConfig;
4
5
  export declare const DEFAULTS: VerificationConfig;
6
+ export declare const driftConfigSchema: z.ZodObject<{
7
+ enabled: z.ZodDefault<z.ZodBoolean>;
8
+ maxOrphanReqs: z.ZodDefault<z.ZodNumber>;
9
+ maxOrphanCode: z.ZodDefault<z.ZodNumber>;
10
+ failOnStale: z.ZodDefault<z.ZodBoolean>;
11
+ ignore: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
12
+ }, "strict", z.ZodTypeAny, {
13
+ ignore: string[];
14
+ enabled: boolean;
15
+ maxOrphanReqs: number;
16
+ maxOrphanCode: number;
17
+ failOnStale: boolean;
18
+ }, {
19
+ ignore?: string[] | undefined;
20
+ enabled?: boolean | undefined;
21
+ maxOrphanReqs?: number | undefined;
22
+ maxOrphanCode?: number | undefined;
23
+ failOnStale?: boolean | undefined;
24
+ }>;
25
+ export type DriftConfig = z.infer<typeof driftConfigSchema>;
26
+ export declare const DRIFT_DEFAULTS: DriftConfig;
27
+ export declare const semanticConfigSchema: z.ZodObject<{
28
+ enabled: z.ZodDefault<z.ZodBoolean>;
29
+ model: z.ZodDefault<z.ZodString>;
30
+ modelHash: z.ZodOptional<z.ZodString>;
31
+ rrfK: z.ZodDefault<z.ZodNumber>;
32
+ }, "strict", z.ZodTypeAny, {
33
+ enabled: boolean;
34
+ model: string;
35
+ rrfK: number;
36
+ modelHash?: string | undefined;
37
+ }, {
38
+ enabled?: boolean | undefined;
39
+ model?: string | undefined;
40
+ modelHash?: string | undefined;
41
+ rrfK?: number | undefined;
42
+ }>;
43
+ export type SemanticConfig = z.infer<typeof semanticConfigSchema>;
44
+ export declare const SEMANTIC_DEFAULTS: SemanticConfig;
5
45
  export declare class VerificationConfigError extends Error {
6
46
  readonly issues: ReadonlyArray<{
7
47
  path: string;
@@ -12,6 +52,26 @@ export declare class VerificationConfigError extends Error {
12
52
  message: string;
13
53
  }>);
14
54
  }
55
+ export declare class DriftConfigError extends Error {
56
+ readonly issues: ReadonlyArray<{
57
+ path: string;
58
+ message: string;
59
+ }>;
60
+ constructor(issues: ReadonlyArray<{
61
+ path: string;
62
+ message: string;
63
+ }>);
64
+ }
65
+ export declare class SemanticConfigError extends Error {
66
+ readonly issues: ReadonlyArray<{
67
+ path: string;
68
+ message: string;
69
+ }>;
70
+ constructor(issues: ReadonlyArray<{
71
+ path: string;
72
+ message: string;
73
+ }>);
74
+ }
15
75
  /**
16
76
  * Parse and validate `verification` from an already-parsed dare.config.json object.
17
77
  */
@@ -22,5 +82,27 @@ export declare function defaultVerificationConfigForProject(): VerificationConfi
22
82
  * Returns true when the block was added.
23
83
  */
24
84
  export declare function seedVerificationDefaultsIfAbsent(cfg: Record<string, unknown>): boolean;
85
+ /** Serializable defaults for dare.config.json (new projects + migrations). */
86
+ export declare function defaultDriftConfigForProject(): DriftConfig;
87
+ /**
88
+ * Inserts the drift block when absent (opt-in: enabled stays false).
89
+ * Returns true when the block was added.
90
+ */
91
+ export declare function seedDriftDefaultsIfAbsent(cfg: Record<string, unknown>): boolean;
92
+ /** Serializable defaults for dare.config.json (new projects + migrations). */
93
+ export declare function defaultSemanticConfigForProject(): SemanticConfig;
94
+ /**
95
+ * Inserts `graphrag.semantic` when absent.
96
+ * Returns true when the block was added.
97
+ */
98
+ export declare function seedSemanticDefaultsIfAbsent(cfg: Record<string, unknown>): boolean;
25
99
  export declare function parseVerificationConfig(raw: unknown): VerificationConfig;
100
+ /**
101
+ * Parse and validate `drift` from an already-parsed dare.config.json object.
102
+ */
103
+ export declare function parseDriftConfig(raw: unknown): DriftConfig;
104
+ /**
105
+ * Parse and validate `graphrag.semantic` from an already-parsed dare.config.json object.
106
+ */
107
+ export declare function parseSemanticConfig(raw: unknown): SemanticConfig;
26
108
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/verification/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEvE,oEAAoE;AACpE,eAAO,MAAM,eAAe,EAAE,gBAO7B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,kBAyBtB,CAAC;AAwHF,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;gBAEtD,MAAM,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAOrE;AAkBD;;GAEG;AACH,8EAA8E;AAC9E,wBAAgB,mCAAmC,IAAI,kBAAkB,CAExE;AAED;;;GAGG;AACH,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,OAAO,CAIT;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,kBAAkB,CAWxE"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/verification/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEvE,oEAAoE;AACpE,eAAO,MAAM,eAAe,EAAE,gBAO7B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,kBA0BtB,CAAC;AAWF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;EAgBnB,CAAC;AAEZ,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,eAAO,MAAM,cAAc,EAAE,WAAyC,CAAC;AAEvE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;EAWtB,CAAC;AAEZ,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,eAAO,MAAM,iBAAiB,EAAE,cAA+C,CAAC;AAqHhF,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;gBAEtD,MAAM,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAOrE;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;gBAEtD,MAAM,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAKrE;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;gBAEtD,MAAM,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAKrE;AAwCD;;GAEG;AACH,8EAA8E;AAC9E,wBAAgB,mCAAmC,IAAI,kBAAkB,CAExE;AAED;;;GAGG;AACH,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,OAAO,CAIT;AAED,8EAA8E;AAC9E,wBAAgB,4BAA4B,IAAI,WAAW,CAE1D;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,OAAO,CAIT;AAED,8EAA8E;AAC9E,wBAAgB,+BAA+B,IAAI,cAAc,CAEhE;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,OAAO,CAsBT;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,kBAAkB,CAWxE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW,CAW1D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,CAYhE"}
@@ -23,6 +23,7 @@ export const DEFAULTS = {
23
23
  loop: {
24
24
  policy: 'decay',
25
25
  maxAttempts: 5,
26
+ maxDepth: 2,
26
27
  saturationWindow: 3,
27
28
  onSaturation: 'fresh-start',
28
29
  },
@@ -34,9 +35,45 @@ export const DEFAULTS = {
34
35
  prerank: { enabled: false },
35
36
  formal: FORMAL_DEFAULTS,
36
37
  };
38
+ const DRIFT_IGNORE_DEFAULTS = [
39
+ '**/index.ts',
40
+ '**/*.generated.*',
41
+ '**/bin/**',
42
+ ];
37
43
  const loopPolicySchema = z.enum(['decay', 'fixed']);
38
44
  const saturationActionSchema = z.enum(['fresh-start', 'replan', 'escalate']);
39
45
  const formalBackendSchema = z.enum(['dafny', 'verus', 'lean']);
46
+ export const driftConfigSchema = z
47
+ .object({
48
+ enabled: z.boolean().default(false),
49
+ maxOrphanReqs: z
50
+ .number()
51
+ .int()
52
+ .nonnegative('maxOrphanReqs must be a non-negative integer')
53
+ .default(0),
54
+ maxOrphanCode: z
55
+ .number()
56
+ .int()
57
+ .nonnegative('maxOrphanCode must be a non-negative integer')
58
+ .default(0),
59
+ failOnStale: z.boolean().default(false),
60
+ ignore: z.array(z.string()).default([...DRIFT_IGNORE_DEFAULTS]),
61
+ })
62
+ .strict();
63
+ export const DRIFT_DEFAULTS = driftConfigSchema.parse({});
64
+ export const semanticConfigSchema = z
65
+ .object({
66
+ enabled: z.boolean().default(false),
67
+ model: z.string().default('all-MiniLM-L6-v2'),
68
+ modelHash: z.string().optional(),
69
+ rrfK: z
70
+ .number()
71
+ .int()
72
+ .positive('rrfK must be a positive integer')
73
+ .default(60),
74
+ })
75
+ .strict();
76
+ export const SEMANTIC_DEFAULTS = semanticConfigSchema.parse({});
40
77
  const formalGateSchema = z
41
78
  .object({
42
79
  enabled: z.boolean().default(DEFAULTS.formal.enabled),
@@ -103,6 +140,7 @@ const verificationConfigSchema = z
103
140
  .int()
104
141
  .min(1, 'maxAttempts must be at least 1')
105
142
  .default(DEFAULTS.loop.maxAttempts),
143
+ maxDepth: z.number().int().min(1).default(2),
106
144
  saturationWindow: z
107
145
  .number()
108
146
  .int()
@@ -154,6 +192,20 @@ export class VerificationConfigError extends Error {
154
192
  this.issues = issues;
155
193
  }
156
194
  }
195
+ export class DriftConfigError extends Error {
196
+ constructor(issues) {
197
+ super(`Invalid drift config: ${issues.map((i) => `${i.path}: ${i.message}`).join('; ')}`);
198
+ this.name = 'DriftConfigError';
199
+ this.issues = issues;
200
+ }
201
+ }
202
+ export class SemanticConfigError extends Error {
203
+ constructor(issues) {
204
+ super(`Invalid semantic config: ${issues.map((i) => `${i.path}: ${i.message}`).join('; ')}`);
205
+ this.name = 'SemanticConfigError';
206
+ this.issues = issues;
207
+ }
208
+ }
157
209
  function isVerificationBlockAbsent(raw) {
158
210
  if (raw === undefined || raw === null)
159
211
  return true;
@@ -162,6 +214,29 @@ function isVerificationBlockAbsent(raw) {
162
214
  const rec = raw;
163
215
  return !('verification' in rec) || rec.verification === undefined;
164
216
  }
217
+ function isDriftBlockAbsent(raw) {
218
+ if (raw === undefined || raw === null)
219
+ return true;
220
+ if (typeof raw !== 'object')
221
+ return false;
222
+ const rec = raw;
223
+ return !('drift' in rec) || rec.drift === undefined;
224
+ }
225
+ function isSemanticBlockAbsent(raw) {
226
+ if (raw === undefined || raw === null)
227
+ return true;
228
+ if (typeof raw !== 'object')
229
+ return false;
230
+ const rec = raw;
231
+ if (!('graphrag' in rec) || rec.graphrag === undefined)
232
+ return true;
233
+ const graphrag = rec.graphrag;
234
+ if (typeof graphrag !== 'object' || graphrag === null || Array.isArray(graphrag)) {
235
+ return true;
236
+ }
237
+ const graphragRec = graphrag;
238
+ return !('semantic' in graphragRec) || graphragRec.semantic === undefined;
239
+ }
165
240
  function zodIssues(error) {
166
241
  return error.issues.map((issue) => ({
167
242
  path: issue.path.length > 0 ? issue.path.join('.') : '(root)',
@@ -185,6 +260,50 @@ export function seedVerificationDefaultsIfAbsent(cfg) {
185
260
  cfg.verification = defaultVerificationConfigForProject();
186
261
  return true;
187
262
  }
263
+ /** Serializable defaults for dare.config.json (new projects + migrations). */
264
+ export function defaultDriftConfigForProject() {
265
+ return structuredClone(DRIFT_DEFAULTS);
266
+ }
267
+ /**
268
+ * Inserts the drift block when absent (opt-in: enabled stays false).
269
+ * Returns true when the block was added.
270
+ */
271
+ export function seedDriftDefaultsIfAbsent(cfg) {
272
+ if (cfg.drift !== undefined)
273
+ return false;
274
+ cfg.drift = defaultDriftConfigForProject();
275
+ return true;
276
+ }
277
+ /** Serializable defaults for dare.config.json (new projects + migrations). */
278
+ export function defaultSemanticConfigForProject() {
279
+ return structuredClone(SEMANTIC_DEFAULTS);
280
+ }
281
+ /**
282
+ * Inserts `graphrag.semantic` when absent.
283
+ * Returns true when the block was added.
284
+ */
285
+ export function seedSemanticDefaultsIfAbsent(cfg) {
286
+ const existing = cfg.graphrag;
287
+ if (existing === undefined) {
288
+ cfg.graphrag = {
289
+ backend: 'sqlite',
290
+ semantic: defaultSemanticConfigForProject(),
291
+ };
292
+ return true;
293
+ }
294
+ if (typeof existing !== 'object' || existing === null || Array.isArray(existing)) {
295
+ cfg.graphrag = {
296
+ backend: existing,
297
+ semantic: defaultSemanticConfigForProject(),
298
+ };
299
+ return true;
300
+ }
301
+ const graphrag = existing;
302
+ if (graphrag.semantic !== undefined)
303
+ return false;
304
+ graphrag.semantic = defaultSemanticConfigForProject();
305
+ return true;
306
+ }
188
307
  export function parseVerificationConfig(raw) {
189
308
  if (isVerificationBlockAbsent(raw)) {
190
309
  return { ...DEFAULTS, enabled: false };
@@ -196,4 +315,33 @@ export function parseVerificationConfig(raw) {
196
315
  }
197
316
  return result.data;
198
317
  }
318
+ /**
319
+ * Parse and validate `drift` from an already-parsed dare.config.json object.
320
+ */
321
+ export function parseDriftConfig(raw) {
322
+ if (isDriftBlockAbsent(raw)) {
323
+ return defaultDriftConfigForProject();
324
+ }
325
+ const block = raw.drift;
326
+ const result = driftConfigSchema.safeParse(block);
327
+ if (!result.success) {
328
+ throw new DriftConfigError(zodIssues(result.error));
329
+ }
330
+ return result.data;
331
+ }
332
+ /**
333
+ * Parse and validate `graphrag.semantic` from an already-parsed dare.config.json object.
334
+ */
335
+ export function parseSemanticConfig(raw) {
336
+ if (isSemanticBlockAbsent(raw)) {
337
+ return defaultSemanticConfigForProject();
338
+ }
339
+ const graphragBlock = raw.graphrag;
340
+ const semanticBlock = graphragBlock.semantic;
341
+ const result = semanticConfigSchema.safeParse(semanticBlock);
342
+ if (!result.success) {
343
+ throw new SemanticConfigError(zodIssues(result.error));
344
+ }
345
+ return result.data;
346
+ }
199
347
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/verification/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/verification/config.ts"],"names":[],"mappings":"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"}
@@ -56,6 +56,8 @@ export interface LoopConfig {
56
56
  readonly policy: LoopPolicy;
57
57
  /** Teto duro de tentativas. Veredito ESCALATE ao atingir. Default 5. */
58
58
  readonly maxAttempts: number;
59
+ /** Profundidade máxima de aninhamento de sub-DAGs (REPLAN). Default 2. */
60
+ readonly maxDepth: number;
59
61
  /** Nº de tentativas com a MESMA assinatura → saturado. Default 3 (≤3, idea-3). */
60
62
  readonly saturationWindow: number;
61
63
  /** Ação ao saturar antes do teto. Default 'fresh-start'. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/verification/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/verification/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dewtech/dare-cli",
3
- "version": "3.9.0",
3
+ "version": "3.11.0",
4
4
  "description": "DARE Framework - CLI, GraphRAG engine, MCP server and shared types in a single package",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -41,7 +41,8 @@
41
41
  "zod": "^3.23.8"
42
42
  },
43
43
  "optionalDependencies": {
44
- "@anthropic-ai/sdk": "^0.54.0"
44
+ "@anthropic-ai/sdk": "^0.54.0",
45
+ "@huggingface/transformers": "^4.2.0"
45
46
  },
46
47
  "devDependencies": {
47
48
  "@stryker-mutator/core": "8.7.1",
@@ -0,0 +1,26 @@
1
+ # Optional DARE PR gate — generated by dare init (pin actions by SHA in production).
2
+ name: DARE PR Gate
3
+
4
+ on:
5
+ pull_request:
6
+ branches: [main]
7
+
8
+ permissions:
9
+ pull-requests: write
10
+ contents: read
11
+
12
+ jobs:
13
+ dare-gate:
14
+ name: DARE Gate
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - name: Checkout
18
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
19
+
20
+ - name: Run DARE guard
21
+ uses: dewtech-technologies/dare-method@main
22
+ with:
23
+ gate: guard
24
+ args: '--all'
25
+ fail-on: none
26
+ comment: 'true'
@@ -0,0 +1,184 @@
1
+ /** Vanilla dashboard — fetch /api/telemetry and render panels (no bundler). */
2
+
3
+ const STATUS_COLORS = {
4
+ DONE: 'bar-pass',
5
+ FAILED: 'bar-fail',
6
+ RUNNING: 'bar-accent',
7
+ PENDING: 'bar-warn',
8
+ SKIPPED: 'bar-warn',
9
+ };
10
+
11
+ function el(id) {
12
+ const node = document.getElementById(id);
13
+ if (!node) throw new Error(`Missing #${id}`);
14
+ return node;
15
+ }
16
+
17
+ function setText(id, html) {
18
+ el(id).innerHTML = html;
19
+ }
20
+
21
+ function show(id, visible) {
22
+ el(id).classList.toggle('hidden', !visible);
23
+ }
24
+
25
+ function metric(label, value) {
26
+ return `<div class="metric"><span class="label">${label}</span><span class="value">${value}</span></div>`;
27
+ }
28
+
29
+ function barChart(entries, className = 'bar-accent') {
30
+ if (!entries.length) return '<p class="muted">No data</p>';
31
+ const max = Math.max(...entries.map((e) => e.value), 1);
32
+ const barW = 36;
33
+ const gap = 12;
34
+ const height = 120;
35
+ const width = entries.length * (barW + gap) + gap;
36
+ const bars = entries
37
+ .map((entry, i) => {
38
+ const h = Math.max(4, (entry.value / max) * (height - 24));
39
+ const x = gap + i * (barW + gap);
40
+ const y = height - h - 16;
41
+ return `<rect class="${className}" x="${x}" y="${y}" width="${barW}" height="${h}" rx="4"><title>${entry.label}: ${entry.value}</title></rect>
42
+ <text x="${x + barW / 2}" y="${height - 2}" text-anchor="middle" font-size="10" fill="currentColor">${entry.label}</text>`;
43
+ })
44
+ .join('');
45
+ return `<svg viewBox="0 0 ${width} ${height}" role="img" aria-label="bar chart">${bars}</svg>`;
46
+ }
47
+
48
+ function renderEmptyHints(hints) {
49
+ if (!hints || hints.length === 0) {
50
+ show('empty-hints', false);
51
+ return;
52
+ }
53
+ show('empty-hints', true);
54
+ setText('empty-hints', `<h2>Hints</h2><ul>${hints.map((h) => `<li>${h}</li>`).join('')}</ul>`);
55
+ }
56
+
57
+ function renderDag(dag) {
58
+ setText(
59
+ 'dag-summary',
60
+ metric('Total tasks', dag.total) + metric('Ranks', dag.ranks),
61
+ );
62
+ const entries = Object.entries(dag.byStatus || {}).map(([label, value]) => ({
63
+ label,
64
+ value,
65
+ className: STATUS_COLORS[label] || 'bar-accent',
66
+ }));
67
+ setText(
68
+ 'dag-chart',
69
+ entries.length
70
+ ? entries
71
+ .map((e) => barChart([e], e.className))
72
+ .join('')
73
+ : '<p>No task status data</p>',
74
+ );
75
+ }
76
+
77
+ function renderGates(gates) {
78
+ setText(
79
+ 'gates-summary',
80
+ metric('Verified', gates.verified) +
81
+ metric('Proven', gates.proven) +
82
+ (gates.mutationAvg !== undefined ? metric('Mutation avg', gates.mutationAvg.toFixed(2)) : ''),
83
+ );
84
+ setText(
85
+ 'gates-chart',
86
+ barChart(
87
+ [
88
+ { label: 'verified', value: gates.verified },
89
+ { label: 'proven', value: gates.proven },
90
+ ],
91
+ 'bar-pass',
92
+ ),
93
+ );
94
+ }
95
+
96
+ function renderCost(cost) {
97
+ setText(
98
+ 'cost-summary',
99
+ metric('Total USD', `$${cost.totalUsd.toFixed(4)}`) + metric('Total tokens', cost.totalTokens),
100
+ );
101
+ const entries = (cost.byTask || []).slice(0, 8).map((t) => ({
102
+ label: t.id.replace(/^task[-:]/, '').slice(0, 8),
103
+ value: t.tokens || t.usd * 1000,
104
+ }));
105
+ setText('cost-chart', barChart(entries, 'bar-accent'));
106
+
107
+ const tbody = el('cost-table').querySelector('tbody');
108
+ tbody.innerHTML = (cost.byTask || [])
109
+ .map(
110
+ (t) =>
111
+ `<tr><td>${t.id}</td><td>${t.usd.toFixed(4)}</td><td>${t.tokens}</td></tr>`,
112
+ )
113
+ .join('');
114
+ }
115
+
116
+ function renderOptionalPanels(data) {
117
+ if (data.bestOfN) {
118
+ show('bestof-panel', true);
119
+ setText(
120
+ 'bestof-summary',
121
+ metric('Tasks', data.bestOfN.tasks) +
122
+ metric('Avg candidates', data.bestOfN.avgCandidates),
123
+ );
124
+ } else {
125
+ show('bestof-panel', false);
126
+ }
127
+
128
+ if (data.guard) {
129
+ show('guard-panel', true);
130
+ setText(
131
+ 'guard-summary',
132
+ metric('Pass', data.guard.pass) +
133
+ metric('Warn', data.guard.warn) +
134
+ metric('Fail', data.guard.fail),
135
+ );
136
+ setText(
137
+ 'guard-chart',
138
+ barChart(
139
+ [
140
+ { label: 'pass', value: data.guard.pass },
141
+ { label: 'warn', value: data.guard.warn },
142
+ { label: 'fail', value: data.guard.fail },
143
+ ],
144
+ 'bar-pass',
145
+ ),
146
+ );
147
+ } else {
148
+ show('guard-panel', false);
149
+ }
150
+
151
+ if (data.drift) {
152
+ show('drift-panel', true);
153
+ setText(
154
+ 'drift-summary',
155
+ metric('Orphan reqs', data.drift.orphanReqs) +
156
+ metric('Orphan code', data.drift.orphanCode) +
157
+ metric('Stale', data.drift.stale),
158
+ );
159
+ } else {
160
+ show('drift-panel', false);
161
+ }
162
+ }
163
+
164
+ async function loadTelemetry() {
165
+ const status = el('status-line');
166
+ try {
167
+ const res = await fetch('/api/telemetry');
168
+ if (!res.ok) throw new Error(`HTTP ${res.status}`);
169
+ const data = await res.json();
170
+ renderEmptyHints(data.emptyHints);
171
+ renderDag(data.dag);
172
+ renderGates(data.gates);
173
+ renderCost(data.cost);
174
+ renderOptionalPanels(data);
175
+ status.textContent = `Updated ${new Date().toLocaleTimeString()}`;
176
+ } catch (err) {
177
+ status.textContent = `Error: ${err instanceof Error ? err.message : String(err)}`;
178
+ show('empty-hints', true);
179
+ setText('empty-hints', `<h2>Error</h2><p>Could not load telemetry. Is the server running with a valid token?</p>`);
180
+ }
181
+ }
182
+
183
+ loadTelemetry();
184
+ setInterval(loadTelemetry, 30_000);
@@ -0,0 +1,63 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <title>DARE Telemetry</title>
7
+ <link rel="stylesheet" href="/dashboard/assets/style.css">
8
+ </head>
9
+ <body>
10
+ <header class="site-header">
11
+ <h1>DARE Telemetry</h1>
12
+ <p class="subtitle">Local read-only dashboard</p>
13
+ </header>
14
+
15
+ <main id="app">
16
+ <section id="empty-hints" class="panel hints hidden" aria-live="polite"></section>
17
+
18
+ <section id="dag-panel" class="panel">
19
+ <h2>DAG Progress</h2>
20
+ <div id="dag-summary" class="metrics"></div>
21
+ <div id="dag-chart" class="chart"></div>
22
+ </section>
23
+
24
+ <section id="gates-panel" class="panel">
25
+ <h2>Verification Gates</h2>
26
+ <div id="gates-summary" class="metrics"></div>
27
+ <div id="gates-chart" class="chart"></div>
28
+ </section>
29
+
30
+ <section id="cost-panel" class="panel">
31
+ <h2>Cost</h2>
32
+ <div id="cost-summary" class="metrics"></div>
33
+ <div id="cost-chart" class="chart"></div>
34
+ <table id="cost-table" class="data-table">
35
+ <thead><tr><th>Task</th><th>USD</th><th>Tokens</th></tr></thead>
36
+ <tbody></tbody>
37
+ </table>
38
+ </section>
39
+
40
+ <section id="bestof-panel" class="panel hidden">
41
+ <h2>Best-of-N</h2>
42
+ <div id="bestof-summary" class="metrics"></div>
43
+ </section>
44
+
45
+ <section id="guard-panel" class="panel hidden">
46
+ <h2>Guard</h2>
47
+ <div id="guard-summary" class="metrics"></div>
48
+ <div id="guard-chart" class="chart"></div>
49
+ </section>
50
+
51
+ <section id="drift-panel" class="panel hidden">
52
+ <h2>Drift</h2>
53
+ <div id="drift-summary" class="metrics"></div>
54
+ </section>
55
+ </main>
56
+
57
+ <footer class="site-footer">
58
+ <span id="status-line">Loading…</span>
59
+ </footer>
60
+
61
+ <script src="/dashboard/assets/app.js"></script>
62
+ </body>
63
+ </html>