@ai-qa/workflow 2.0.2 → 2.0.4

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 (1054) hide show
  1. package/.cursorrules +5 -0
  2. package/.github/copilot-instructions.md +3 -0
  3. package/PROJECT_GUIDE.md +102 -0
  4. package/README.md +15 -14
  5. package/agents/router.md +29 -0
  6. package/docs/application-context.md +20 -0
  7. package/install.js +1 -0
  8. package/package.json +24 -2
  9. package/qa-dashboard/.env +3 -0
  10. package/qa-dashboard/app.js +52 -0
  11. package/qa-dashboard/data/projects.json +9 -0
  12. package/qa-dashboard/node_modules/.bin/ejs +16 -0
  13. package/qa-dashboard/node_modules/.bin/ejs.cmd +17 -0
  14. package/qa-dashboard/node_modules/.bin/ejs.ps1 +28 -0
  15. package/qa-dashboard/node_modules/.bin/jake +16 -0
  16. package/qa-dashboard/node_modules/.bin/jake.cmd +17 -0
  17. package/qa-dashboard/node_modules/.bin/jake.ps1 +28 -0
  18. package/qa-dashboard/node_modules/.bin/mime +16 -0
  19. package/qa-dashboard/node_modules/.bin/mime.cmd +17 -0
  20. package/qa-dashboard/node_modules/.bin/mime.ps1 +28 -0
  21. package/qa-dashboard/node_modules/.package-lock.json +990 -0
  22. package/qa-dashboard/node_modules/@kurkle/color/LICENSE.md +9 -0
  23. package/qa-dashboard/node_modules/@kurkle/color/README.md +79 -0
  24. package/qa-dashboard/node_modules/@kurkle/color/dist/color.cjs +624 -0
  25. package/qa-dashboard/node_modules/@kurkle/color/dist/color.d.ts +235 -0
  26. package/qa-dashboard/node_modules/@kurkle/color/dist/color.esm.js +589 -0
  27. package/qa-dashboard/node_modules/@kurkle/color/dist/color.min.js +8 -0
  28. package/qa-dashboard/node_modules/@kurkle/color/dist/color.min.js.map +1 -0
  29. package/qa-dashboard/node_modules/@kurkle/color/package.json +77 -0
  30. package/qa-dashboard/node_modules/accepts/HISTORY.md +243 -0
  31. package/qa-dashboard/node_modules/accepts/LICENSE +23 -0
  32. package/qa-dashboard/node_modules/accepts/README.md +140 -0
  33. package/qa-dashboard/node_modules/accepts/index.js +238 -0
  34. package/qa-dashboard/node_modules/accepts/package.json +47 -0
  35. package/qa-dashboard/node_modules/array-flatten/LICENSE +21 -0
  36. package/qa-dashboard/node_modules/array-flatten/README.md +43 -0
  37. package/qa-dashboard/node_modules/array-flatten/array-flatten.js +64 -0
  38. package/qa-dashboard/node_modules/array-flatten/package.json +39 -0
  39. package/qa-dashboard/node_modules/async/CHANGELOG.md +351 -0
  40. package/qa-dashboard/node_modules/async/LICENSE +19 -0
  41. package/qa-dashboard/node_modules/async/README.md +59 -0
  42. package/qa-dashboard/node_modules/async/all.js +119 -0
  43. package/qa-dashboard/node_modules/async/allLimit.js +46 -0
  44. package/qa-dashboard/node_modules/async/allSeries.js +45 -0
  45. package/qa-dashboard/node_modules/async/any.js +122 -0
  46. package/qa-dashboard/node_modules/async/anyLimit.js +47 -0
  47. package/qa-dashboard/node_modules/async/anySeries.js +46 -0
  48. package/qa-dashboard/node_modules/async/apply.js +11 -0
  49. package/qa-dashboard/node_modules/async/applyEach.js +57 -0
  50. package/qa-dashboard/node_modules/async/applyEachSeries.js +37 -0
  51. package/qa-dashboard/node_modules/async/asyncify.js +118 -0
  52. package/qa-dashboard/node_modules/async/auto.js +333 -0
  53. package/qa-dashboard/node_modules/async/autoInject.js +182 -0
  54. package/qa-dashboard/node_modules/async/bower.json +17 -0
  55. package/qa-dashboard/node_modules/async/cargo.js +63 -0
  56. package/qa-dashboard/node_modules/async/cargoQueue.js +71 -0
  57. package/qa-dashboard/node_modules/async/compose.js +55 -0
  58. package/qa-dashboard/node_modules/async/concat.js +115 -0
  59. package/qa-dashboard/node_modules/async/concatLimit.js +60 -0
  60. package/qa-dashboard/node_modules/async/concatSeries.js +41 -0
  61. package/qa-dashboard/node_modules/async/constant.js +14 -0
  62. package/qa-dashboard/node_modules/async/detect.js +96 -0
  63. package/qa-dashboard/node_modules/async/detectLimit.js +48 -0
  64. package/qa-dashboard/node_modules/async/detectSeries.js +47 -0
  65. package/qa-dashboard/node_modules/async/dir.js +43 -0
  66. package/qa-dashboard/node_modules/async/dist/async.js +6061 -0
  67. package/qa-dashboard/node_modules/async/dist/async.min.js +1 -0
  68. package/qa-dashboard/node_modules/async/dist/async.mjs +5948 -0
  69. package/qa-dashboard/node_modules/async/doDuring.js +68 -0
  70. package/qa-dashboard/node_modules/async/doUntil.js +46 -0
  71. package/qa-dashboard/node_modules/async/doWhilst.js +68 -0
  72. package/qa-dashboard/node_modules/async/during.js +78 -0
  73. package/qa-dashboard/node_modules/async/each.js +129 -0
  74. package/qa-dashboard/node_modules/async/eachLimit.js +50 -0
  75. package/qa-dashboard/node_modules/async/eachOf.js +185 -0
  76. package/qa-dashboard/node_modules/async/eachOfLimit.js +47 -0
  77. package/qa-dashboard/node_modules/async/eachOfSeries.js +39 -0
  78. package/qa-dashboard/node_modules/async/eachSeries.js +44 -0
  79. package/qa-dashboard/node_modules/async/ensureAsync.js +67 -0
  80. package/qa-dashboard/node_modules/async/every.js +119 -0
  81. package/qa-dashboard/node_modules/async/everyLimit.js +46 -0
  82. package/qa-dashboard/node_modules/async/everySeries.js +45 -0
  83. package/qa-dashboard/node_modules/async/filter.js +93 -0
  84. package/qa-dashboard/node_modules/async/filterLimit.js +45 -0
  85. package/qa-dashboard/node_modules/async/filterSeries.js +43 -0
  86. package/qa-dashboard/node_modules/async/find.js +96 -0
  87. package/qa-dashboard/node_modules/async/findLimit.js +48 -0
  88. package/qa-dashboard/node_modules/async/findSeries.js +47 -0
  89. package/qa-dashboard/node_modules/async/flatMap.js +115 -0
  90. package/qa-dashboard/node_modules/async/flatMapLimit.js +60 -0
  91. package/qa-dashboard/node_modules/async/flatMapSeries.js +41 -0
  92. package/qa-dashboard/node_modules/async/foldl.js +153 -0
  93. package/qa-dashboard/node_modules/async/foldr.js +41 -0
  94. package/qa-dashboard/node_modules/async/forEach.js +129 -0
  95. package/qa-dashboard/node_modules/async/forEachLimit.js +50 -0
  96. package/qa-dashboard/node_modules/async/forEachOf.js +185 -0
  97. package/qa-dashboard/node_modules/async/forEachOfLimit.js +47 -0
  98. package/qa-dashboard/node_modules/async/forEachOfSeries.js +39 -0
  99. package/qa-dashboard/node_modules/async/forEachSeries.js +44 -0
  100. package/qa-dashboard/node_modules/async/forever.js +68 -0
  101. package/qa-dashboard/node_modules/async/groupBy.js +108 -0
  102. package/qa-dashboard/node_modules/async/groupByLimit.js +71 -0
  103. package/qa-dashboard/node_modules/async/groupBySeries.js +36 -0
  104. package/qa-dashboard/node_modules/async/index.js +588 -0
  105. package/qa-dashboard/node_modules/async/inject.js +153 -0
  106. package/qa-dashboard/node_modules/async/internal/DoublyLinkedList.js +92 -0
  107. package/qa-dashboard/node_modules/async/internal/Heap.js +120 -0
  108. package/qa-dashboard/node_modules/async/internal/applyEach.js +29 -0
  109. package/qa-dashboard/node_modules/async/internal/asyncEachOfLimit.js +75 -0
  110. package/qa-dashboard/node_modules/async/internal/awaitify.js +28 -0
  111. package/qa-dashboard/node_modules/async/internal/breakLoop.js +10 -0
  112. package/qa-dashboard/node_modules/async/internal/consoleFunc.js +31 -0
  113. package/qa-dashboard/node_modules/async/internal/createTester.js +40 -0
  114. package/qa-dashboard/node_modules/async/internal/eachOfLimit.js +90 -0
  115. package/qa-dashboard/node_modules/async/internal/filter.js +55 -0
  116. package/qa-dashboard/node_modules/async/internal/getIterator.js +11 -0
  117. package/qa-dashboard/node_modules/async/internal/initialParams.js +14 -0
  118. package/qa-dashboard/node_modules/async/internal/isArrayLike.js +10 -0
  119. package/qa-dashboard/node_modules/async/internal/iterator.js +57 -0
  120. package/qa-dashboard/node_modules/async/internal/map.js +30 -0
  121. package/qa-dashboard/node_modules/async/internal/once.js +17 -0
  122. package/qa-dashboard/node_modules/async/internal/onlyOnce.js +15 -0
  123. package/qa-dashboard/node_modules/async/internal/parallel.js +34 -0
  124. package/qa-dashboard/node_modules/async/internal/promiseCallback.js +23 -0
  125. package/qa-dashboard/node_modules/async/internal/queue.js +294 -0
  126. package/qa-dashboard/node_modules/async/internal/range.js +14 -0
  127. package/qa-dashboard/node_modules/async/internal/reject.js +26 -0
  128. package/qa-dashboard/node_modules/async/internal/setImmediate.js +34 -0
  129. package/qa-dashboard/node_modules/async/internal/withoutIndex.js +10 -0
  130. package/qa-dashboard/node_modules/async/internal/wrapAsync.js +34 -0
  131. package/qa-dashboard/node_modules/async/log.js +41 -0
  132. package/qa-dashboard/node_modules/async/map.js +142 -0
  133. package/qa-dashboard/node_modules/async/mapLimit.js +45 -0
  134. package/qa-dashboard/node_modules/async/mapSeries.js +44 -0
  135. package/qa-dashboard/node_modules/async/mapValues.js +152 -0
  136. package/qa-dashboard/node_modules/async/mapValuesLimit.js +61 -0
  137. package/qa-dashboard/node_modules/async/mapValuesSeries.js +37 -0
  138. package/qa-dashboard/node_modules/async/memoize.js +91 -0
  139. package/qa-dashboard/node_modules/async/nextTick.js +52 -0
  140. package/qa-dashboard/node_modules/async/package.json +75 -0
  141. package/qa-dashboard/node_modules/async/parallel.js +180 -0
  142. package/qa-dashboard/node_modules/async/parallelLimit.js +41 -0
  143. package/qa-dashboard/node_modules/async/priorityQueue.js +60 -0
  144. package/qa-dashboard/node_modules/async/queue.js +24 -0
  145. package/qa-dashboard/node_modules/async/race.js +67 -0
  146. package/qa-dashboard/node_modules/async/reduce.js +153 -0
  147. package/qa-dashboard/node_modules/async/reduceRight.js +41 -0
  148. package/qa-dashboard/node_modules/async/reflect.js +78 -0
  149. package/qa-dashboard/node_modules/async/reflectAll.js +93 -0
  150. package/qa-dashboard/node_modules/async/reject.js +87 -0
  151. package/qa-dashboard/node_modules/async/rejectLimit.js +45 -0
  152. package/qa-dashboard/node_modules/async/rejectSeries.js +43 -0
  153. package/qa-dashboard/node_modules/async/retry.js +159 -0
  154. package/qa-dashboard/node_modules/async/retryable.js +77 -0
  155. package/qa-dashboard/node_modules/async/select.js +93 -0
  156. package/qa-dashboard/node_modules/async/selectLimit.js +45 -0
  157. package/qa-dashboard/node_modules/async/selectSeries.js +43 -0
  158. package/qa-dashboard/node_modules/async/seq.js +79 -0
  159. package/qa-dashboard/node_modules/async/series.js +186 -0
  160. package/qa-dashboard/node_modules/async/setImmediate.js +45 -0
  161. package/qa-dashboard/node_modules/async/some.js +122 -0
  162. package/qa-dashboard/node_modules/async/someLimit.js +47 -0
  163. package/qa-dashboard/node_modules/async/someSeries.js +46 -0
  164. package/qa-dashboard/node_modules/async/sortBy.js +190 -0
  165. package/qa-dashboard/node_modules/async/timeout.js +89 -0
  166. package/qa-dashboard/node_modules/async/times.js +50 -0
  167. package/qa-dashboard/node_modules/async/timesLimit.js +43 -0
  168. package/qa-dashboard/node_modules/async/timesSeries.js +32 -0
  169. package/qa-dashboard/node_modules/async/transform.js +173 -0
  170. package/qa-dashboard/node_modules/async/tryEach.js +78 -0
  171. package/qa-dashboard/node_modules/async/unmemoize.js +25 -0
  172. package/qa-dashboard/node_modules/async/until.js +61 -0
  173. package/qa-dashboard/node_modules/async/waterfall.js +105 -0
  174. package/qa-dashboard/node_modules/async/whilst.js +78 -0
  175. package/qa-dashboard/node_modules/async/wrapSync.js +118 -0
  176. package/qa-dashboard/node_modules/balanced-match/.github/FUNDING.yml +2 -0
  177. package/qa-dashboard/node_modules/balanced-match/LICENSE.md +21 -0
  178. package/qa-dashboard/node_modules/balanced-match/README.md +97 -0
  179. package/qa-dashboard/node_modules/balanced-match/index.js +62 -0
  180. package/qa-dashboard/node_modules/balanced-match/package.json +48 -0
  181. package/qa-dashboard/node_modules/basic-auth/HISTORY.md +52 -0
  182. package/qa-dashboard/node_modules/basic-auth/LICENSE +24 -0
  183. package/qa-dashboard/node_modules/basic-auth/README.md +113 -0
  184. package/qa-dashboard/node_modules/basic-auth/index.js +133 -0
  185. package/qa-dashboard/node_modules/basic-auth/node_modules/safe-buffer/LICENSE +21 -0
  186. package/qa-dashboard/node_modules/basic-auth/node_modules/safe-buffer/README.md +584 -0
  187. package/qa-dashboard/node_modules/basic-auth/node_modules/safe-buffer/index.d.ts +187 -0
  188. package/qa-dashboard/node_modules/basic-auth/node_modules/safe-buffer/index.js +62 -0
  189. package/qa-dashboard/node_modules/basic-auth/node_modules/safe-buffer/package.json +37 -0
  190. package/qa-dashboard/node_modules/basic-auth/package.json +41 -0
  191. package/qa-dashboard/node_modules/body-parser/HISTORY.md +686 -0
  192. package/qa-dashboard/node_modules/body-parser/LICENSE +23 -0
  193. package/qa-dashboard/node_modules/body-parser/README.md +476 -0
  194. package/qa-dashboard/node_modules/body-parser/index.js +156 -0
  195. package/qa-dashboard/node_modules/body-parser/lib/read.js +205 -0
  196. package/qa-dashboard/node_modules/body-parser/lib/types/json.js +243 -0
  197. package/qa-dashboard/node_modules/body-parser/lib/types/raw.js +101 -0
  198. package/qa-dashboard/node_modules/body-parser/lib/types/text.js +121 -0
  199. package/qa-dashboard/node_modules/body-parser/lib/types/urlencoded.js +299 -0
  200. package/qa-dashboard/node_modules/body-parser/package.json +55 -0
  201. package/qa-dashboard/node_modules/brace-expansion/.github/FUNDING.yml +2 -0
  202. package/qa-dashboard/node_modules/brace-expansion/LICENSE +21 -0
  203. package/qa-dashboard/node_modules/brace-expansion/README.md +135 -0
  204. package/qa-dashboard/node_modules/brace-expansion/index.js +205 -0
  205. package/qa-dashboard/node_modules/brace-expansion/package.json +49 -0
  206. package/qa-dashboard/node_modules/bytes/History.md +97 -0
  207. package/qa-dashboard/node_modules/bytes/LICENSE +23 -0
  208. package/qa-dashboard/node_modules/bytes/Readme.md +152 -0
  209. package/qa-dashboard/node_modules/bytes/index.js +170 -0
  210. package/qa-dashboard/node_modules/bytes/package.json +42 -0
  211. package/qa-dashboard/node_modules/call-bind-apply-helpers/.eslintrc +17 -0
  212. package/qa-dashboard/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +12 -0
  213. package/qa-dashboard/node_modules/call-bind-apply-helpers/.nycrc +9 -0
  214. package/qa-dashboard/node_modules/call-bind-apply-helpers/CHANGELOG.md +30 -0
  215. package/qa-dashboard/node_modules/call-bind-apply-helpers/LICENSE +21 -0
  216. package/qa-dashboard/node_modules/call-bind-apply-helpers/README.md +62 -0
  217. package/qa-dashboard/node_modules/call-bind-apply-helpers/actualApply.d.ts +1 -0
  218. package/qa-dashboard/node_modules/call-bind-apply-helpers/actualApply.js +10 -0
  219. package/qa-dashboard/node_modules/call-bind-apply-helpers/applyBind.d.ts +19 -0
  220. package/qa-dashboard/node_modules/call-bind-apply-helpers/applyBind.js +10 -0
  221. package/qa-dashboard/node_modules/call-bind-apply-helpers/functionApply.d.ts +1 -0
  222. package/qa-dashboard/node_modules/call-bind-apply-helpers/functionApply.js +4 -0
  223. package/qa-dashboard/node_modules/call-bind-apply-helpers/functionCall.d.ts +1 -0
  224. package/qa-dashboard/node_modules/call-bind-apply-helpers/functionCall.js +4 -0
  225. package/qa-dashboard/node_modules/call-bind-apply-helpers/index.d.ts +64 -0
  226. package/qa-dashboard/node_modules/call-bind-apply-helpers/index.js +15 -0
  227. package/qa-dashboard/node_modules/call-bind-apply-helpers/package.json +85 -0
  228. package/qa-dashboard/node_modules/call-bind-apply-helpers/reflectApply.d.ts +3 -0
  229. package/qa-dashboard/node_modules/call-bind-apply-helpers/reflectApply.js +4 -0
  230. package/qa-dashboard/node_modules/call-bind-apply-helpers/test/index.js +63 -0
  231. package/qa-dashboard/node_modules/call-bind-apply-helpers/tsconfig.json +9 -0
  232. package/qa-dashboard/node_modules/call-bound/.eslintrc +13 -0
  233. package/qa-dashboard/node_modules/call-bound/.github/FUNDING.yml +12 -0
  234. package/qa-dashboard/node_modules/call-bound/.nycrc +9 -0
  235. package/qa-dashboard/node_modules/call-bound/CHANGELOG.md +42 -0
  236. package/qa-dashboard/node_modules/call-bound/LICENSE +21 -0
  237. package/qa-dashboard/node_modules/call-bound/README.md +53 -0
  238. package/qa-dashboard/node_modules/call-bound/index.d.ts +94 -0
  239. package/qa-dashboard/node_modules/call-bound/index.js +19 -0
  240. package/qa-dashboard/node_modules/call-bound/package.json +99 -0
  241. package/qa-dashboard/node_modules/call-bound/test/index.js +61 -0
  242. package/qa-dashboard/node_modules/call-bound/tsconfig.json +10 -0
  243. package/qa-dashboard/node_modules/chart.js/LICENSE.md +9 -0
  244. package/qa-dashboard/node_modules/chart.js/README.md +38 -0
  245. package/qa-dashboard/node_modules/chart.js/auto/auto.cjs +6 -0
  246. package/qa-dashboard/node_modules/chart.js/auto/auto.d.ts +4 -0
  247. package/qa-dashboard/node_modules/chart.js/auto/auto.js +6 -0
  248. package/qa-dashboard/node_modules/chart.js/auto/package.json +14 -0
  249. package/qa-dashboard/node_modules/chart.js/dist/chart.cjs +11647 -0
  250. package/qa-dashboard/node_modules/chart.js/dist/chart.cjs.map +1 -0
  251. package/qa-dashboard/node_modules/chart.js/dist/chart.js +11599 -0
  252. package/qa-dashboard/node_modules/chart.js/dist/chart.js.map +1 -0
  253. package/qa-dashboard/node_modules/chart.js/dist/chart.umd.js +14 -0
  254. package/qa-dashboard/node_modules/chart.js/dist/chart.umd.js.map +1 -0
  255. package/qa-dashboard/node_modules/chart.js/dist/chart.umd.min.js +14 -0
  256. package/qa-dashboard/node_modules/chart.js/dist/chart.umd.min.js.map +1 -0
  257. package/qa-dashboard/node_modules/chart.js/dist/chunks/helpers.dataset.cjs +2915 -0
  258. package/qa-dashboard/node_modules/chart.js/dist/chunks/helpers.dataset.cjs.map +1 -0
  259. package/qa-dashboard/node_modules/chart.js/dist/chunks/helpers.dataset.js +2788 -0
  260. package/qa-dashboard/node_modules/chart.js/dist/chunks/helpers.dataset.js.map +1 -0
  261. package/qa-dashboard/node_modules/chart.js/dist/controllers/controller.bar.d.ts +65 -0
  262. package/qa-dashboard/node_modules/chart.js/dist/controllers/controller.bubble.d.ts +35 -0
  263. package/qa-dashboard/node_modules/chart.js/dist/controllers/controller.doughnut.d.ts +64 -0
  264. package/qa-dashboard/node_modules/chart.js/dist/controllers/controller.line.d.ts +13 -0
  265. package/qa-dashboard/node_modules/chart.js/dist/controllers/controller.pie.d.ts +3 -0
  266. package/qa-dashboard/node_modules/chart.js/dist/controllers/controller.polarArea.d.ts +35 -0
  267. package/qa-dashboard/node_modules/chart.js/dist/controllers/controller.radar.d.ts +19 -0
  268. package/qa-dashboard/node_modules/chart.js/dist/controllers/controller.scatter.d.ts +20 -0
  269. package/qa-dashboard/node_modules/chart.js/dist/controllers/index.d.ts +8 -0
  270. package/qa-dashboard/node_modules/chart.js/dist/core/core.adapters.d.ts +67 -0
  271. package/qa-dashboard/node_modules/chart.js/dist/core/core.animation.d.ts +21 -0
  272. package/qa-dashboard/node_modules/chart.js/dist/core/core.animations.d.ts +22 -0
  273. package/qa-dashboard/node_modules/chart.js/dist/core/core.animations.defaults.d.ts +1 -0
  274. package/qa-dashboard/node_modules/chart.js/dist/core/core.animator.d.ts +67 -0
  275. package/qa-dashboard/node_modules/chart.js/dist/core/core.config.d.ts +86 -0
  276. package/qa-dashboard/node_modules/chart.js/dist/core/core.controller.d.ts +257 -0
  277. package/qa-dashboard/node_modules/chart.js/dist/core/core.datasetController.d.ts +251 -0
  278. package/qa-dashboard/node_modules/chart.js/dist/core/core.defaults.d.ts +80 -0
  279. package/qa-dashboard/node_modules/chart.js/dist/core/core.element.d.ts +21 -0
  280. package/qa-dashboard/node_modules/chart.js/dist/core/core.interaction.d.ts +92 -0
  281. package/qa-dashboard/node_modules/chart.js/dist/core/core.layouts.d.ts +88 -0
  282. package/qa-dashboard/node_modules/chart.js/dist/core/core.layouts.defaults.d.ts +1 -0
  283. package/qa-dashboard/node_modules/chart.js/dist/core/core.plugins.d.ts +64 -0
  284. package/qa-dashboard/node_modules/chart.js/dist/core/core.registry.d.ts +90 -0
  285. package/qa-dashboard/node_modules/chart.js/dist/core/core.scale.autoskip.d.ts +19 -0
  286. package/qa-dashboard/node_modules/chart.js/dist/core/core.scale.d.ts +343 -0
  287. package/qa-dashboard/node_modules/chart.js/dist/core/core.scale.defaults.d.ts +1 -0
  288. package/qa-dashboard/node_modules/chart.js/dist/core/core.ticks.d.ts +31 -0
  289. package/qa-dashboard/node_modules/chart.js/dist/core/core.typedRegistry.d.ts +33 -0
  290. package/qa-dashboard/node_modules/chart.js/dist/core/index.d.ts +15 -0
  291. package/qa-dashboard/node_modules/chart.js/dist/elements/element.arc.d.ts +51 -0
  292. package/qa-dashboard/node_modules/chart.js/dist/elements/element.bar.d.ts +32 -0
  293. package/qa-dashboard/node_modules/chart.js/dist/elements/element.line.d.ts +87 -0
  294. package/qa-dashboard/node_modules/chart.js/dist/elements/element.point.d.ts +39 -0
  295. package/qa-dashboard/node_modules/chart.js/dist/elements/index.d.ts +4 -0
  296. package/qa-dashboard/node_modules/chart.js/dist/helpers/helpers.canvas.d.ts +75 -0
  297. package/qa-dashboard/node_modules/chart.js/dist/helpers/helpers.collection.d.ts +68 -0
  298. package/qa-dashboard/node_modules/chart.js/dist/helpers/helpers.color.d.ts +13 -0
  299. package/qa-dashboard/node_modules/chart.js/dist/helpers/helpers.config.d.ts +31 -0
  300. package/qa-dashboard/node_modules/chart.js/dist/helpers/helpers.config.types.d.ts +41 -0
  301. package/qa-dashboard/node_modules/chart.js/dist/helpers/helpers.core.d.ts +147 -0
  302. package/qa-dashboard/node_modules/chart.js/dist/helpers/helpers.curve.d.ts +17 -0
  303. package/qa-dashboard/node_modules/chart.js/dist/helpers/helpers.dataset.d.ts +2 -0
  304. package/qa-dashboard/node_modules/chart.js/dist/helpers/helpers.dom.d.ts +48 -0
  305. package/qa-dashboard/node_modules/chart.js/dist/helpers/helpers.easing.d.ts +40 -0
  306. package/qa-dashboard/node_modules/chart.js/dist/helpers/helpers.extras.d.ts +45 -0
  307. package/qa-dashboard/node_modules/chart.js/dist/helpers/helpers.interpolation.d.ts +22 -0
  308. package/qa-dashboard/node_modules/chart.js/dist/helpers/helpers.intl.d.ts +1 -0
  309. package/qa-dashboard/node_modules/chart.js/dist/helpers/helpers.math.d.ts +84 -0
  310. package/qa-dashboard/node_modules/chart.js/dist/helpers/helpers.options.d.ts +97 -0
  311. package/qa-dashboard/node_modules/chart.js/dist/helpers/helpers.rtl.d.ts +10 -0
  312. package/qa-dashboard/node_modules/chart.js/dist/helpers/helpers.segment.d.ts +65 -0
  313. package/qa-dashboard/node_modules/chart.js/dist/helpers/index.d.ts +16 -0
  314. package/qa-dashboard/node_modules/chart.js/dist/helpers.cjs +136 -0
  315. package/qa-dashboard/node_modules/chart.js/dist/helpers.cjs.map +1 -0
  316. package/qa-dashboard/node_modules/chart.js/dist/helpers.js +9 -0
  317. package/qa-dashboard/node_modules/chart.js/dist/helpers.js.map +1 -0
  318. package/qa-dashboard/node_modules/chart.js/dist/index.d.ts +12 -0
  319. package/qa-dashboard/node_modules/chart.js/dist/index.umd.d.ts +5 -0
  320. package/qa-dashboard/node_modules/chart.js/dist/platform/index.d.ts +5 -0
  321. package/qa-dashboard/node_modules/chart.js/dist/platform/platform.base.d.ts +63 -0
  322. package/qa-dashboard/node_modules/chart.js/dist/platform/platform.basic.d.ts +10 -0
  323. package/qa-dashboard/node_modules/chart.js/dist/platform/platform.dom.d.ts +19 -0
  324. package/qa-dashboard/node_modules/chart.js/dist/plugins/index.d.ts +7 -0
  325. package/qa-dashboard/node_modules/chart.js/dist/plugins/plugin.colors.d.ts +11 -0
  326. package/qa-dashboard/node_modules/chart.js/dist/plugins/plugin.decimation.d.ts +10 -0
  327. package/qa-dashboard/node_modules/chart.js/dist/plugins/plugin.filler/filler.drawing.d.ts +1 -0
  328. package/qa-dashboard/node_modules/chart.js/dist/plugins/plugin.filler/filler.helper.d.ts +14 -0
  329. package/qa-dashboard/node_modules/chart.js/dist/plugins/plugin.filler/filler.options.d.ts +30 -0
  330. package/qa-dashboard/node_modules/chart.js/dist/plugins/plugin.filler/filler.segment.d.ts +36 -0
  331. package/qa-dashboard/node_modules/chart.js/dist/plugins/plugin.filler/filler.target.d.ts +9 -0
  332. package/qa-dashboard/node_modules/chart.js/dist/plugins/plugin.filler/filler.target.stack.d.ts +14 -0
  333. package/qa-dashboard/node_modules/chart.js/dist/plugins/plugin.filler/index.d.ts +12 -0
  334. package/qa-dashboard/node_modules/chart.js/dist/plugins/plugin.filler/simpleArc.d.ts +12 -0
  335. package/qa-dashboard/node_modules/chart.js/dist/plugins/plugin.legend.d.ts +114 -0
  336. package/qa-dashboard/node_modules/chart.js/dist/plugins/plugin.subtitle.d.ts +27 -0
  337. package/qa-dashboard/node_modules/chart.js/dist/plugins/plugin.title.d.ts +61 -0
  338. package/qa-dashboard/node_modules/chart.js/dist/plugins/plugin.tooltip.d.ts +288 -0
  339. package/qa-dashboard/node_modules/chart.js/dist/scales/index.d.ts +6 -0
  340. package/qa-dashboard/node_modules/chart.js/dist/scales/scale.category.d.ts +21 -0
  341. package/qa-dashboard/node_modules/chart.js/dist/scales/scale.linear.d.ts +10 -0
  342. package/qa-dashboard/node_modules/chart.js/dist/scales/scale.linearbase.d.ts +20 -0
  343. package/qa-dashboard/node_modules/chart.js/dist/scales/scale.logarithmic.d.ts +25 -0
  344. package/qa-dashboard/node_modules/chart.js/dist/scales/scale.radialLinear.d.ts +63 -0
  345. package/qa-dashboard/node_modules/chart.js/dist/scales/scale.time.d.ts +130 -0
  346. package/qa-dashboard/node_modules/chart.js/dist/scales/scale.timeseries.d.ts +39 -0
  347. package/qa-dashboard/node_modules/chart.js/dist/types/animation.d.ts +34 -0
  348. package/qa-dashboard/node_modules/chart.js/dist/types/basic.d.ts +3 -0
  349. package/qa-dashboard/node_modules/chart.js/dist/types/color.d.ts +1 -0
  350. package/qa-dashboard/node_modules/chart.js/dist/types/geometric.d.ts +52 -0
  351. package/qa-dashboard/node_modules/chart.js/dist/types/index.d.ts +3885 -0
  352. package/qa-dashboard/node_modules/chart.js/dist/types/layout.d.ts +65 -0
  353. package/qa-dashboard/node_modules/chart.js/dist/types/utils.d.ts +30 -0
  354. package/qa-dashboard/node_modules/chart.js/dist/types.d.ts +10 -0
  355. package/qa-dashboard/node_modules/chart.js/helpers/helpers.cjs +1 -0
  356. package/qa-dashboard/node_modules/chart.js/helpers/helpers.d.ts +1 -0
  357. package/qa-dashboard/node_modules/chart.js/helpers/helpers.js +1 -0
  358. package/qa-dashboard/node_modules/chart.js/helpers/package.json +14 -0
  359. package/qa-dashboard/node_modules/chart.js/package.json +139 -0
  360. package/qa-dashboard/node_modules/content-disposition/HISTORY.md +60 -0
  361. package/qa-dashboard/node_modules/content-disposition/LICENSE +22 -0
  362. package/qa-dashboard/node_modules/content-disposition/README.md +142 -0
  363. package/qa-dashboard/node_modules/content-disposition/index.js +458 -0
  364. package/qa-dashboard/node_modules/content-disposition/package.json +44 -0
  365. package/qa-dashboard/node_modules/content-type/HISTORY.md +29 -0
  366. package/qa-dashboard/node_modules/content-type/LICENSE +22 -0
  367. package/qa-dashboard/node_modules/content-type/README.md +94 -0
  368. package/qa-dashboard/node_modules/content-type/index.js +225 -0
  369. package/qa-dashboard/node_modules/content-type/package.json +42 -0
  370. package/qa-dashboard/node_modules/cookie/LICENSE +24 -0
  371. package/qa-dashboard/node_modules/cookie/README.md +317 -0
  372. package/qa-dashboard/node_modules/cookie/SECURITY.md +25 -0
  373. package/qa-dashboard/node_modules/cookie/index.js +335 -0
  374. package/qa-dashboard/node_modules/cookie/package.json +44 -0
  375. package/qa-dashboard/node_modules/cookie-signature/History.md +42 -0
  376. package/qa-dashboard/node_modules/cookie-signature/Readme.md +42 -0
  377. package/qa-dashboard/node_modules/cookie-signature/index.js +51 -0
  378. package/qa-dashboard/node_modules/cookie-signature/package.json +18 -0
  379. package/qa-dashboard/node_modules/debug/.coveralls.yml +1 -0
  380. package/qa-dashboard/node_modules/debug/.eslintrc +11 -0
  381. package/qa-dashboard/node_modules/debug/.travis.yml +14 -0
  382. package/qa-dashboard/node_modules/debug/CHANGELOG.md +362 -0
  383. package/qa-dashboard/node_modules/debug/LICENSE +19 -0
  384. package/qa-dashboard/node_modules/debug/Makefile +50 -0
  385. package/qa-dashboard/node_modules/debug/README.md +312 -0
  386. package/qa-dashboard/node_modules/debug/component.json +19 -0
  387. package/qa-dashboard/node_modules/debug/karma.conf.js +70 -0
  388. package/qa-dashboard/node_modules/debug/node.js +1 -0
  389. package/qa-dashboard/node_modules/debug/package.json +49 -0
  390. package/qa-dashboard/node_modules/debug/src/browser.js +185 -0
  391. package/qa-dashboard/node_modules/debug/src/debug.js +202 -0
  392. package/qa-dashboard/node_modules/debug/src/index.js +10 -0
  393. package/qa-dashboard/node_modules/debug/src/inspector-log.js +15 -0
  394. package/qa-dashboard/node_modules/debug/src/node.js +248 -0
  395. package/qa-dashboard/node_modules/depd/History.md +103 -0
  396. package/qa-dashboard/node_modules/depd/LICENSE +22 -0
  397. package/qa-dashboard/node_modules/depd/Readme.md +280 -0
  398. package/qa-dashboard/node_modules/depd/index.js +538 -0
  399. package/qa-dashboard/node_modules/depd/lib/browser/index.js +77 -0
  400. package/qa-dashboard/node_modules/depd/package.json +45 -0
  401. package/qa-dashboard/node_modules/destroy/LICENSE +23 -0
  402. package/qa-dashboard/node_modules/destroy/README.md +63 -0
  403. package/qa-dashboard/node_modules/destroy/index.js +209 -0
  404. package/qa-dashboard/node_modules/destroy/package.json +48 -0
  405. package/qa-dashboard/node_modules/dotenv/CHANGELOG.md +520 -0
  406. package/qa-dashboard/node_modules/dotenv/LICENSE +23 -0
  407. package/qa-dashboard/node_modules/dotenv/README-es.md +411 -0
  408. package/qa-dashboard/node_modules/dotenv/README.md +645 -0
  409. package/qa-dashboard/node_modules/dotenv/SECURITY.md +1 -0
  410. package/qa-dashboard/node_modules/dotenv/config.d.ts +1 -0
  411. package/qa-dashboard/node_modules/dotenv/config.js +9 -0
  412. package/qa-dashboard/node_modules/dotenv/lib/cli-options.js +17 -0
  413. package/qa-dashboard/node_modules/dotenv/lib/env-options.js +28 -0
  414. package/qa-dashboard/node_modules/dotenv/lib/main.d.ts +162 -0
  415. package/qa-dashboard/node_modules/dotenv/lib/main.js +386 -0
  416. package/qa-dashboard/node_modules/dotenv/package.json +62 -0
  417. package/qa-dashboard/node_modules/dunder-proto/.eslintrc +5 -0
  418. package/qa-dashboard/node_modules/dunder-proto/.github/FUNDING.yml +12 -0
  419. package/qa-dashboard/node_modules/dunder-proto/.nycrc +13 -0
  420. package/qa-dashboard/node_modules/dunder-proto/CHANGELOG.md +24 -0
  421. package/qa-dashboard/node_modules/dunder-proto/LICENSE +21 -0
  422. package/qa-dashboard/node_modules/dunder-proto/README.md +54 -0
  423. package/qa-dashboard/node_modules/dunder-proto/get.d.ts +5 -0
  424. package/qa-dashboard/node_modules/dunder-proto/get.js +30 -0
  425. package/qa-dashboard/node_modules/dunder-proto/package.json +76 -0
  426. package/qa-dashboard/node_modules/dunder-proto/set.d.ts +5 -0
  427. package/qa-dashboard/node_modules/dunder-proto/set.js +35 -0
  428. package/qa-dashboard/node_modules/dunder-proto/test/get.js +34 -0
  429. package/qa-dashboard/node_modules/dunder-proto/test/index.js +4 -0
  430. package/qa-dashboard/node_modules/dunder-proto/test/set.js +50 -0
  431. package/qa-dashboard/node_modules/dunder-proto/tsconfig.json +9 -0
  432. package/qa-dashboard/node_modules/ee-first/LICENSE +22 -0
  433. package/qa-dashboard/node_modules/ee-first/README.md +80 -0
  434. package/qa-dashboard/node_modules/ee-first/index.js +95 -0
  435. package/qa-dashboard/node_modules/ee-first/package.json +29 -0
  436. package/qa-dashboard/node_modules/ejs/LICENSE +202 -0
  437. package/qa-dashboard/node_modules/ejs/README.md +358 -0
  438. package/qa-dashboard/node_modules/ejs/bin/cli.js +211 -0
  439. package/qa-dashboard/node_modules/ejs/ejs.js +1746 -0
  440. package/qa-dashboard/node_modules/ejs/ejs.min.js +1 -0
  441. package/qa-dashboard/node_modules/ejs/jakefile.js +88 -0
  442. package/qa-dashboard/node_modules/ejs/lib/ejs.js +952 -0
  443. package/qa-dashboard/node_modules/ejs/lib/utils.js +250 -0
  444. package/qa-dashboard/node_modules/ejs/package.json +42 -0
  445. package/qa-dashboard/node_modules/ejs/usage.txt +24 -0
  446. package/qa-dashboard/node_modules/encodeurl/LICENSE +22 -0
  447. package/qa-dashboard/node_modules/encodeurl/README.md +109 -0
  448. package/qa-dashboard/node_modules/encodeurl/index.js +60 -0
  449. package/qa-dashboard/node_modules/encodeurl/package.json +40 -0
  450. package/qa-dashboard/node_modules/es-define-property/.eslintrc +13 -0
  451. package/qa-dashboard/node_modules/es-define-property/.github/FUNDING.yml +12 -0
  452. package/qa-dashboard/node_modules/es-define-property/.nycrc +9 -0
  453. package/qa-dashboard/node_modules/es-define-property/CHANGELOG.md +29 -0
  454. package/qa-dashboard/node_modules/es-define-property/LICENSE +21 -0
  455. package/qa-dashboard/node_modules/es-define-property/README.md +49 -0
  456. package/qa-dashboard/node_modules/es-define-property/index.d.ts +3 -0
  457. package/qa-dashboard/node_modules/es-define-property/index.js +14 -0
  458. package/qa-dashboard/node_modules/es-define-property/package.json +81 -0
  459. package/qa-dashboard/node_modules/es-define-property/test/index.js +56 -0
  460. package/qa-dashboard/node_modules/es-define-property/tsconfig.json +10 -0
  461. package/qa-dashboard/node_modules/es-errors/.eslintrc +5 -0
  462. package/qa-dashboard/node_modules/es-errors/.github/FUNDING.yml +12 -0
  463. package/qa-dashboard/node_modules/es-errors/CHANGELOG.md +40 -0
  464. package/qa-dashboard/node_modules/es-errors/LICENSE +21 -0
  465. package/qa-dashboard/node_modules/es-errors/README.md +55 -0
  466. package/qa-dashboard/node_modules/es-errors/eval.d.ts +3 -0
  467. package/qa-dashboard/node_modules/es-errors/eval.js +4 -0
  468. package/qa-dashboard/node_modules/es-errors/index.d.ts +3 -0
  469. package/qa-dashboard/node_modules/es-errors/index.js +4 -0
  470. package/qa-dashboard/node_modules/es-errors/package.json +80 -0
  471. package/qa-dashboard/node_modules/es-errors/range.d.ts +3 -0
  472. package/qa-dashboard/node_modules/es-errors/range.js +4 -0
  473. package/qa-dashboard/node_modules/es-errors/ref.d.ts +3 -0
  474. package/qa-dashboard/node_modules/es-errors/ref.js +4 -0
  475. package/qa-dashboard/node_modules/es-errors/syntax.d.ts +3 -0
  476. package/qa-dashboard/node_modules/es-errors/syntax.js +4 -0
  477. package/qa-dashboard/node_modules/es-errors/test/index.js +19 -0
  478. package/qa-dashboard/node_modules/es-errors/tsconfig.json +49 -0
  479. package/qa-dashboard/node_modules/es-errors/type.d.ts +3 -0
  480. package/qa-dashboard/node_modules/es-errors/type.js +4 -0
  481. package/qa-dashboard/node_modules/es-errors/uri.d.ts +3 -0
  482. package/qa-dashboard/node_modules/es-errors/uri.js +4 -0
  483. package/qa-dashboard/node_modules/es-object-atoms/.eslintrc +16 -0
  484. package/qa-dashboard/node_modules/es-object-atoms/.github/FUNDING.yml +12 -0
  485. package/qa-dashboard/node_modules/es-object-atoms/CHANGELOG.md +37 -0
  486. package/qa-dashboard/node_modules/es-object-atoms/LICENSE +21 -0
  487. package/qa-dashboard/node_modules/es-object-atoms/README.md +63 -0
  488. package/qa-dashboard/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +3 -0
  489. package/qa-dashboard/node_modules/es-object-atoms/RequireObjectCoercible.js +11 -0
  490. package/qa-dashboard/node_modules/es-object-atoms/ToObject.d.ts +7 -0
  491. package/qa-dashboard/node_modules/es-object-atoms/ToObject.js +10 -0
  492. package/qa-dashboard/node_modules/es-object-atoms/index.d.ts +3 -0
  493. package/qa-dashboard/node_modules/es-object-atoms/index.js +4 -0
  494. package/qa-dashboard/node_modules/es-object-atoms/isObject.d.ts +3 -0
  495. package/qa-dashboard/node_modules/es-object-atoms/isObject.js +6 -0
  496. package/qa-dashboard/node_modules/es-object-atoms/package.json +80 -0
  497. package/qa-dashboard/node_modules/es-object-atoms/test/index.js +38 -0
  498. package/qa-dashboard/node_modules/es-object-atoms/tsconfig.json +6 -0
  499. package/qa-dashboard/node_modules/escape-html/LICENSE +24 -0
  500. package/qa-dashboard/node_modules/escape-html/Readme.md +43 -0
  501. package/qa-dashboard/node_modules/escape-html/index.js +78 -0
  502. package/qa-dashboard/node_modules/escape-html/package.json +24 -0
  503. package/qa-dashboard/node_modules/etag/HISTORY.md +83 -0
  504. package/qa-dashboard/node_modules/etag/LICENSE +22 -0
  505. package/qa-dashboard/node_modules/etag/README.md +159 -0
  506. package/qa-dashboard/node_modules/etag/index.js +131 -0
  507. package/qa-dashboard/node_modules/etag/package.json +47 -0
  508. package/qa-dashboard/node_modules/express/History.md +3676 -0
  509. package/qa-dashboard/node_modules/express/LICENSE +24 -0
  510. package/qa-dashboard/node_modules/express/Readme.md +260 -0
  511. package/qa-dashboard/node_modules/express/index.js +11 -0
  512. package/qa-dashboard/node_modules/express/lib/application.js +661 -0
  513. package/qa-dashboard/node_modules/express/lib/express.js +116 -0
  514. package/qa-dashboard/node_modules/express/lib/middleware/init.js +43 -0
  515. package/qa-dashboard/node_modules/express/lib/middleware/query.js +47 -0
  516. package/qa-dashboard/node_modules/express/lib/request.js +525 -0
  517. package/qa-dashboard/node_modules/express/lib/response.js +1179 -0
  518. package/qa-dashboard/node_modules/express/lib/router/index.js +673 -0
  519. package/qa-dashboard/node_modules/express/lib/router/layer.js +181 -0
  520. package/qa-dashboard/node_modules/express/lib/router/route.js +230 -0
  521. package/qa-dashboard/node_modules/express/lib/utils.js +304 -0
  522. package/qa-dashboard/node_modules/express/lib/view.js +182 -0
  523. package/qa-dashboard/node_modules/express/package.json +102 -0
  524. package/qa-dashboard/node_modules/express-ejs-layouts/.travis.yml +3 -0
  525. package/qa-dashboard/node_modules/express-ejs-layouts/LICENSE +7 -0
  526. package/qa-dashboard/node_modules/express-ejs-layouts/Readme.md +266 -0
  527. package/qa-dashboard/node_modules/express-ejs-layouts/example/index.js +27 -0
  528. package/qa-dashboard/node_modules/express-ejs-layouts/example/views/layout.ejs +33 -0
  529. package/qa-dashboard/node_modules/express-ejs-layouts/example/views/view.ejs +37 -0
  530. package/qa-dashboard/node_modules/express-ejs-layouts/lib/express-layouts.js +117 -0
  531. package/qa-dashboard/node_modules/express-ejs-layouts/package.json +24 -0
  532. package/qa-dashboard/node_modules/filelist/README.md +84 -0
  533. package/qa-dashboard/node_modules/filelist/index.d.ts +110 -0
  534. package/qa-dashboard/node_modules/filelist/index.js +495 -0
  535. package/qa-dashboard/node_modules/filelist/jakefile.js +15 -0
  536. package/qa-dashboard/node_modules/filelist/package.json +28 -0
  537. package/qa-dashboard/node_modules/finalhandler/HISTORY.md +216 -0
  538. package/qa-dashboard/node_modules/finalhandler/LICENSE +22 -0
  539. package/qa-dashboard/node_modules/finalhandler/README.md +147 -0
  540. package/qa-dashboard/node_modules/finalhandler/SECURITY.md +25 -0
  541. package/qa-dashboard/node_modules/finalhandler/index.js +341 -0
  542. package/qa-dashboard/node_modules/finalhandler/package.json +47 -0
  543. package/qa-dashboard/node_modules/forwarded/HISTORY.md +21 -0
  544. package/qa-dashboard/node_modules/forwarded/LICENSE +22 -0
  545. package/qa-dashboard/node_modules/forwarded/README.md +57 -0
  546. package/qa-dashboard/node_modules/forwarded/index.js +90 -0
  547. package/qa-dashboard/node_modules/forwarded/package.json +45 -0
  548. package/qa-dashboard/node_modules/fresh/HISTORY.md +70 -0
  549. package/qa-dashboard/node_modules/fresh/LICENSE +23 -0
  550. package/qa-dashboard/node_modules/fresh/README.md +119 -0
  551. package/qa-dashboard/node_modules/fresh/index.js +137 -0
  552. package/qa-dashboard/node_modules/fresh/package.json +46 -0
  553. package/qa-dashboard/node_modules/function-bind/.eslintrc +21 -0
  554. package/qa-dashboard/node_modules/function-bind/.github/FUNDING.yml +12 -0
  555. package/qa-dashboard/node_modules/function-bind/.github/SECURITY.md +3 -0
  556. package/qa-dashboard/node_modules/function-bind/.nycrc +13 -0
  557. package/qa-dashboard/node_modules/function-bind/CHANGELOG.md +136 -0
  558. package/qa-dashboard/node_modules/function-bind/LICENSE +20 -0
  559. package/qa-dashboard/node_modules/function-bind/README.md +46 -0
  560. package/qa-dashboard/node_modules/function-bind/implementation.js +84 -0
  561. package/qa-dashboard/node_modules/function-bind/index.js +5 -0
  562. package/qa-dashboard/node_modules/function-bind/package.json +87 -0
  563. package/qa-dashboard/node_modules/function-bind/test/.eslintrc +9 -0
  564. package/qa-dashboard/node_modules/function-bind/test/index.js +252 -0
  565. package/qa-dashboard/node_modules/get-intrinsic/.eslintrc +42 -0
  566. package/qa-dashboard/node_modules/get-intrinsic/.github/FUNDING.yml +12 -0
  567. package/qa-dashboard/node_modules/get-intrinsic/.nycrc +9 -0
  568. package/qa-dashboard/node_modules/get-intrinsic/CHANGELOG.md +186 -0
  569. package/qa-dashboard/node_modules/get-intrinsic/LICENSE +21 -0
  570. package/qa-dashboard/node_modules/get-intrinsic/README.md +71 -0
  571. package/qa-dashboard/node_modules/get-intrinsic/index.js +378 -0
  572. package/qa-dashboard/node_modules/get-intrinsic/package.json +97 -0
  573. package/qa-dashboard/node_modules/get-intrinsic/test/GetIntrinsic.js +274 -0
  574. package/qa-dashboard/node_modules/get-proto/.eslintrc +10 -0
  575. package/qa-dashboard/node_modules/get-proto/.github/FUNDING.yml +12 -0
  576. package/qa-dashboard/node_modules/get-proto/.nycrc +9 -0
  577. package/qa-dashboard/node_modules/get-proto/CHANGELOG.md +21 -0
  578. package/qa-dashboard/node_modules/get-proto/LICENSE +21 -0
  579. package/qa-dashboard/node_modules/get-proto/Object.getPrototypeOf.d.ts +5 -0
  580. package/qa-dashboard/node_modules/get-proto/Object.getPrototypeOf.js +6 -0
  581. package/qa-dashboard/node_modules/get-proto/README.md +50 -0
  582. package/qa-dashboard/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +3 -0
  583. package/qa-dashboard/node_modules/get-proto/Reflect.getPrototypeOf.js +4 -0
  584. package/qa-dashboard/node_modules/get-proto/index.d.ts +5 -0
  585. package/qa-dashboard/node_modules/get-proto/index.js +27 -0
  586. package/qa-dashboard/node_modules/get-proto/package.json +81 -0
  587. package/qa-dashboard/node_modules/get-proto/test/index.js +68 -0
  588. package/qa-dashboard/node_modules/get-proto/tsconfig.json +9 -0
  589. package/qa-dashboard/node_modules/gopd/.eslintrc +16 -0
  590. package/qa-dashboard/node_modules/gopd/.github/FUNDING.yml +12 -0
  591. package/qa-dashboard/node_modules/gopd/CHANGELOG.md +45 -0
  592. package/qa-dashboard/node_modules/gopd/LICENSE +21 -0
  593. package/qa-dashboard/node_modules/gopd/README.md +40 -0
  594. package/qa-dashboard/node_modules/gopd/gOPD.d.ts +1 -0
  595. package/qa-dashboard/node_modules/gopd/gOPD.js +4 -0
  596. package/qa-dashboard/node_modules/gopd/index.d.ts +5 -0
  597. package/qa-dashboard/node_modules/gopd/index.js +15 -0
  598. package/qa-dashboard/node_modules/gopd/package.json +77 -0
  599. package/qa-dashboard/node_modules/gopd/test/index.js +36 -0
  600. package/qa-dashboard/node_modules/gopd/tsconfig.json +9 -0
  601. package/qa-dashboard/node_modules/has-symbols/.eslintrc +11 -0
  602. package/qa-dashboard/node_modules/has-symbols/.github/FUNDING.yml +12 -0
  603. package/qa-dashboard/node_modules/has-symbols/.nycrc +9 -0
  604. package/qa-dashboard/node_modules/has-symbols/CHANGELOG.md +91 -0
  605. package/qa-dashboard/node_modules/has-symbols/LICENSE +21 -0
  606. package/qa-dashboard/node_modules/has-symbols/README.md +46 -0
  607. package/qa-dashboard/node_modules/has-symbols/index.d.ts +3 -0
  608. package/qa-dashboard/node_modules/has-symbols/index.js +14 -0
  609. package/qa-dashboard/node_modules/has-symbols/package.json +111 -0
  610. package/qa-dashboard/node_modules/has-symbols/shams.d.ts +3 -0
  611. package/qa-dashboard/node_modules/has-symbols/shams.js +45 -0
  612. package/qa-dashboard/node_modules/has-symbols/test/index.js +22 -0
  613. package/qa-dashboard/node_modules/has-symbols/test/shams/core-js.js +29 -0
  614. package/qa-dashboard/node_modules/has-symbols/test/shams/get-own-property-symbols.js +29 -0
  615. package/qa-dashboard/node_modules/has-symbols/test/tests.js +58 -0
  616. package/qa-dashboard/node_modules/has-symbols/tsconfig.json +10 -0
  617. package/qa-dashboard/node_modules/hasown/.github/FUNDING.yml +12 -0
  618. package/qa-dashboard/node_modules/hasown/.nycrc +13 -0
  619. package/qa-dashboard/node_modules/hasown/CHANGELOG.md +51 -0
  620. package/qa-dashboard/node_modules/hasown/LICENSE +21 -0
  621. package/qa-dashboard/node_modules/hasown/README.md +40 -0
  622. package/qa-dashboard/node_modules/hasown/eslint.config.mjs +6 -0
  623. package/qa-dashboard/node_modules/hasown/index.d.ts +4 -0
  624. package/qa-dashboard/node_modules/hasown/index.js +8 -0
  625. package/qa-dashboard/node_modules/hasown/package.json +92 -0
  626. package/qa-dashboard/node_modules/hasown/tsconfig.json +6 -0
  627. package/qa-dashboard/node_modules/http-errors/HISTORY.md +186 -0
  628. package/qa-dashboard/node_modules/http-errors/LICENSE +23 -0
  629. package/qa-dashboard/node_modules/http-errors/README.md +169 -0
  630. package/qa-dashboard/node_modules/http-errors/index.js +290 -0
  631. package/qa-dashboard/node_modules/http-errors/package.json +54 -0
  632. package/qa-dashboard/node_modules/iconv-lite/Changelog.md +162 -0
  633. package/qa-dashboard/node_modules/iconv-lite/LICENSE +21 -0
  634. package/qa-dashboard/node_modules/iconv-lite/README.md +156 -0
  635. package/qa-dashboard/node_modules/iconv-lite/encodings/dbcs-codec.js +555 -0
  636. package/qa-dashboard/node_modules/iconv-lite/encodings/dbcs-data.js +176 -0
  637. package/qa-dashboard/node_modules/iconv-lite/encodings/index.js +22 -0
  638. package/qa-dashboard/node_modules/iconv-lite/encodings/internal.js +188 -0
  639. package/qa-dashboard/node_modules/iconv-lite/encodings/sbcs-codec.js +72 -0
  640. package/qa-dashboard/node_modules/iconv-lite/encodings/sbcs-data-generated.js +451 -0
  641. package/qa-dashboard/node_modules/iconv-lite/encodings/sbcs-data.js +174 -0
  642. package/qa-dashboard/node_modules/iconv-lite/encodings/tables/big5-added.json +122 -0
  643. package/qa-dashboard/node_modules/iconv-lite/encodings/tables/cp936.json +264 -0
  644. package/qa-dashboard/node_modules/iconv-lite/encodings/tables/cp949.json +273 -0
  645. package/qa-dashboard/node_modules/iconv-lite/encodings/tables/cp950.json +177 -0
  646. package/qa-dashboard/node_modules/iconv-lite/encodings/tables/eucjp.json +182 -0
  647. package/qa-dashboard/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +1 -0
  648. package/qa-dashboard/node_modules/iconv-lite/encodings/tables/gbk-added.json +55 -0
  649. package/qa-dashboard/node_modules/iconv-lite/encodings/tables/shiftjis.json +125 -0
  650. package/qa-dashboard/node_modules/iconv-lite/encodings/utf16.js +177 -0
  651. package/qa-dashboard/node_modules/iconv-lite/encodings/utf7.js +290 -0
  652. package/qa-dashboard/node_modules/iconv-lite/lib/bom-handling.js +52 -0
  653. package/qa-dashboard/node_modules/iconv-lite/lib/extend-node.js +217 -0
  654. package/qa-dashboard/node_modules/iconv-lite/lib/index.d.ts +24 -0
  655. package/qa-dashboard/node_modules/iconv-lite/lib/index.js +153 -0
  656. package/qa-dashboard/node_modules/iconv-lite/lib/streams.js +121 -0
  657. package/qa-dashboard/node_modules/iconv-lite/package.json +46 -0
  658. package/qa-dashboard/node_modules/inherits/LICENSE +16 -0
  659. package/qa-dashboard/node_modules/inherits/README.md +42 -0
  660. package/qa-dashboard/node_modules/inherits/inherits.js +9 -0
  661. package/qa-dashboard/node_modules/inherits/inherits_browser.js +27 -0
  662. package/qa-dashboard/node_modules/inherits/package.json +29 -0
  663. package/qa-dashboard/node_modules/ipaddr.js/LICENSE +19 -0
  664. package/qa-dashboard/node_modules/ipaddr.js/README.md +233 -0
  665. package/qa-dashboard/node_modules/ipaddr.js/ipaddr.min.js +1 -0
  666. package/qa-dashboard/node_modules/ipaddr.js/lib/ipaddr.js +673 -0
  667. package/qa-dashboard/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +68 -0
  668. package/qa-dashboard/node_modules/ipaddr.js/package.json +35 -0
  669. package/qa-dashboard/node_modules/jake/Makefile +44 -0
  670. package/qa-dashboard/node_modules/jake/README.md +17 -0
  671. package/qa-dashboard/node_modules/jake/bin/bash_completion.sh +41 -0
  672. package/qa-dashboard/node_modules/jake/bin/cli.js +31 -0
  673. package/qa-dashboard/node_modules/jake/jakefile.js +112 -0
  674. package/qa-dashboard/node_modules/jake/lib/api.js +409 -0
  675. package/qa-dashboard/node_modules/jake/lib/jake.js +330 -0
  676. package/qa-dashboard/node_modules/jake/lib/loader.js +174 -0
  677. package/qa-dashboard/node_modules/jake/lib/namespace.js +115 -0
  678. package/qa-dashboard/node_modules/jake/lib/package_task.js +406 -0
  679. package/qa-dashboard/node_modules/jake/lib/parseargs.js +134 -0
  680. package/qa-dashboard/node_modules/jake/lib/program.js +282 -0
  681. package/qa-dashboard/node_modules/jake/lib/publish_task.js +290 -0
  682. package/qa-dashboard/node_modules/jake/lib/rule.js +311 -0
  683. package/qa-dashboard/node_modules/jake/lib/task/directory_task.js +30 -0
  684. package/qa-dashboard/node_modules/jake/lib/task/file_task.js +126 -0
  685. package/qa-dashboard/node_modules/jake/lib/task/index.js +9 -0
  686. package/qa-dashboard/node_modules/jake/lib/task/task.js +458 -0
  687. package/qa-dashboard/node_modules/jake/lib/test_task.js +270 -0
  688. package/qa-dashboard/node_modules/jake/lib/utils/file.js +286 -0
  689. package/qa-dashboard/node_modules/jake/lib/utils/index.js +297 -0
  690. package/qa-dashboard/node_modules/jake/lib/utils/logger.js +24 -0
  691. package/qa-dashboard/node_modules/jake/package.json +44 -0
  692. package/qa-dashboard/node_modules/jake/test/integration/concurrent.js +45 -0
  693. package/qa-dashboard/node_modules/jake/test/integration/file.js +228 -0
  694. package/qa-dashboard/node_modules/jake/test/integration/file_task.js +141 -0
  695. package/qa-dashboard/node_modules/jake/test/integration/helpers.js +80 -0
  696. package/qa-dashboard/node_modules/jake/test/integration/jakefile.js +352 -0
  697. package/qa-dashboard/node_modules/jake/test/integration/jakelib/concurrent.jake.js +113 -0
  698. package/qa-dashboard/node_modules/jake/test/integration/jakelib/publish.jake.js +49 -0
  699. package/qa-dashboard/node_modules/jake/test/integration/jakelib/required_module.jake.js +10 -0
  700. package/qa-dashboard/node_modules/jake/test/integration/jakelib/rule.jake.js +222 -0
  701. package/qa-dashboard/node_modules/jake/test/integration/list_tasks.js +15 -0
  702. package/qa-dashboard/node_modules/jake/test/integration/publish_task.js +27 -0
  703. package/qa-dashboard/node_modules/jake/test/integration/rule.js +217 -0
  704. package/qa-dashboard/node_modules/jake/test/integration/selfdep.js +42 -0
  705. package/qa-dashboard/node_modules/jake/test/integration/task_base.js +167 -0
  706. package/qa-dashboard/node_modules/jake/test/unit/jakefile.js +36 -0
  707. package/qa-dashboard/node_modules/jake/test/unit/namespace.js +77 -0
  708. package/qa-dashboard/node_modules/jake/test/unit/parseargs.js +169 -0
  709. package/qa-dashboard/node_modules/jake/usage.txt +17 -0
  710. package/qa-dashboard/node_modules/math-intrinsics/.eslintrc +16 -0
  711. package/qa-dashboard/node_modules/math-intrinsics/.github/FUNDING.yml +12 -0
  712. package/qa-dashboard/node_modules/math-intrinsics/CHANGELOG.md +24 -0
  713. package/qa-dashboard/node_modules/math-intrinsics/LICENSE +21 -0
  714. package/qa-dashboard/node_modules/math-intrinsics/README.md +50 -0
  715. package/qa-dashboard/node_modules/math-intrinsics/abs.d.ts +1 -0
  716. package/qa-dashboard/node_modules/math-intrinsics/abs.js +4 -0
  717. package/qa-dashboard/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +3 -0
  718. package/qa-dashboard/node_modules/math-intrinsics/constants/maxArrayLength.js +4 -0
  719. package/qa-dashboard/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +3 -0
  720. package/qa-dashboard/node_modules/math-intrinsics/constants/maxSafeInteger.js +5 -0
  721. package/qa-dashboard/node_modules/math-intrinsics/constants/maxValue.d.ts +3 -0
  722. package/qa-dashboard/node_modules/math-intrinsics/constants/maxValue.js +5 -0
  723. package/qa-dashboard/node_modules/math-intrinsics/floor.d.ts +1 -0
  724. package/qa-dashboard/node_modules/math-intrinsics/floor.js +4 -0
  725. package/qa-dashboard/node_modules/math-intrinsics/isFinite.d.ts +3 -0
  726. package/qa-dashboard/node_modules/math-intrinsics/isFinite.js +12 -0
  727. package/qa-dashboard/node_modules/math-intrinsics/isInteger.d.ts +3 -0
  728. package/qa-dashboard/node_modules/math-intrinsics/isInteger.js +16 -0
  729. package/qa-dashboard/node_modules/math-intrinsics/isNaN.d.ts +1 -0
  730. package/qa-dashboard/node_modules/math-intrinsics/isNaN.js +6 -0
  731. package/qa-dashboard/node_modules/math-intrinsics/isNegativeZero.d.ts +3 -0
  732. package/qa-dashboard/node_modules/math-intrinsics/isNegativeZero.js +6 -0
  733. package/qa-dashboard/node_modules/math-intrinsics/max.d.ts +1 -0
  734. package/qa-dashboard/node_modules/math-intrinsics/max.js +4 -0
  735. package/qa-dashboard/node_modules/math-intrinsics/min.d.ts +1 -0
  736. package/qa-dashboard/node_modules/math-intrinsics/min.js +4 -0
  737. package/qa-dashboard/node_modules/math-intrinsics/mod.d.ts +3 -0
  738. package/qa-dashboard/node_modules/math-intrinsics/mod.js +9 -0
  739. package/qa-dashboard/node_modules/math-intrinsics/package.json +86 -0
  740. package/qa-dashboard/node_modules/math-intrinsics/pow.d.ts +1 -0
  741. package/qa-dashboard/node_modules/math-intrinsics/pow.js +4 -0
  742. package/qa-dashboard/node_modules/math-intrinsics/round.d.ts +1 -0
  743. package/qa-dashboard/node_modules/math-intrinsics/round.js +4 -0
  744. package/qa-dashboard/node_modules/math-intrinsics/sign.d.ts +3 -0
  745. package/qa-dashboard/node_modules/math-intrinsics/sign.js +11 -0
  746. package/qa-dashboard/node_modules/math-intrinsics/test/index.js +192 -0
  747. package/qa-dashboard/node_modules/math-intrinsics/tsconfig.json +3 -0
  748. package/qa-dashboard/node_modules/media-typer/HISTORY.md +22 -0
  749. package/qa-dashboard/node_modules/media-typer/LICENSE +22 -0
  750. package/qa-dashboard/node_modules/media-typer/README.md +81 -0
  751. package/qa-dashboard/node_modules/media-typer/index.js +270 -0
  752. package/qa-dashboard/node_modules/media-typer/package.json +26 -0
  753. package/qa-dashboard/node_modules/merge-descriptors/HISTORY.md +21 -0
  754. package/qa-dashboard/node_modules/merge-descriptors/LICENSE +23 -0
  755. package/qa-dashboard/node_modules/merge-descriptors/README.md +49 -0
  756. package/qa-dashboard/node_modules/merge-descriptors/index.js +60 -0
  757. package/qa-dashboard/node_modules/merge-descriptors/package.json +39 -0
  758. package/qa-dashboard/node_modules/methods/HISTORY.md +29 -0
  759. package/qa-dashboard/node_modules/methods/LICENSE +24 -0
  760. package/qa-dashboard/node_modules/methods/README.md +51 -0
  761. package/qa-dashboard/node_modules/methods/index.js +69 -0
  762. package/qa-dashboard/node_modules/methods/package.json +36 -0
  763. package/qa-dashboard/node_modules/mime/CHANGELOG.md +164 -0
  764. package/qa-dashboard/node_modules/mime/LICENSE +21 -0
  765. package/qa-dashboard/node_modules/mime/README.md +90 -0
  766. package/qa-dashboard/node_modules/mime/cli.js +8 -0
  767. package/qa-dashboard/node_modules/mime/mime.js +108 -0
  768. package/qa-dashboard/node_modules/mime/package.json +44 -0
  769. package/qa-dashboard/node_modules/mime/src/build.js +53 -0
  770. package/qa-dashboard/node_modules/mime/src/test.js +60 -0
  771. package/qa-dashboard/node_modules/mime/types.json +1 -0
  772. package/qa-dashboard/node_modules/mime-db/HISTORY.md +507 -0
  773. package/qa-dashboard/node_modules/mime-db/LICENSE +23 -0
  774. package/qa-dashboard/node_modules/mime-db/README.md +100 -0
  775. package/qa-dashboard/node_modules/mime-db/db.json +8519 -0
  776. package/qa-dashboard/node_modules/mime-db/index.js +12 -0
  777. package/qa-dashboard/node_modules/mime-db/package.json +60 -0
  778. package/qa-dashboard/node_modules/mime-types/HISTORY.md +397 -0
  779. package/qa-dashboard/node_modules/mime-types/LICENSE +23 -0
  780. package/qa-dashboard/node_modules/mime-types/README.md +113 -0
  781. package/qa-dashboard/node_modules/mime-types/index.js +188 -0
  782. package/qa-dashboard/node_modules/mime-types/package.json +44 -0
  783. package/qa-dashboard/node_modules/minimatch/LICENSE +15 -0
  784. package/qa-dashboard/node_modules/minimatch/README.md +296 -0
  785. package/qa-dashboard/node_modules/minimatch/changelog.md +35 -0
  786. package/qa-dashboard/node_modules/minimatch/lib/path.js +4 -0
  787. package/qa-dashboard/node_modules/minimatch/minimatch.js +996 -0
  788. package/qa-dashboard/node_modules/minimatch/package.json +35 -0
  789. package/qa-dashboard/node_modules/morgan/HISTORY.md +221 -0
  790. package/qa-dashboard/node_modules/morgan/LICENSE +23 -0
  791. package/qa-dashboard/node_modules/morgan/README.md +436 -0
  792. package/qa-dashboard/node_modules/morgan/index.js +544 -0
  793. package/qa-dashboard/node_modules/morgan/node_modules/on-finished/HISTORY.md +88 -0
  794. package/qa-dashboard/node_modules/morgan/node_modules/on-finished/LICENSE +23 -0
  795. package/qa-dashboard/node_modules/morgan/node_modules/on-finished/README.md +154 -0
  796. package/qa-dashboard/node_modules/morgan/node_modules/on-finished/index.js +196 -0
  797. package/qa-dashboard/node_modules/morgan/node_modules/on-finished/package.json +31 -0
  798. package/qa-dashboard/node_modules/morgan/package.json +52 -0
  799. package/qa-dashboard/node_modules/ms/index.js +152 -0
  800. package/qa-dashboard/node_modules/ms/license.md +21 -0
  801. package/qa-dashboard/node_modules/ms/package.json +37 -0
  802. package/qa-dashboard/node_modules/ms/readme.md +51 -0
  803. package/qa-dashboard/node_modules/negotiator/HISTORY.md +108 -0
  804. package/qa-dashboard/node_modules/negotiator/LICENSE +24 -0
  805. package/qa-dashboard/node_modules/negotiator/README.md +203 -0
  806. package/qa-dashboard/node_modules/negotiator/index.js +82 -0
  807. package/qa-dashboard/node_modules/negotiator/lib/charset.js +169 -0
  808. package/qa-dashboard/node_modules/negotiator/lib/encoding.js +184 -0
  809. package/qa-dashboard/node_modules/negotiator/lib/language.js +179 -0
  810. package/qa-dashboard/node_modules/negotiator/lib/mediaType.js +294 -0
  811. package/qa-dashboard/node_modules/negotiator/package.json +42 -0
  812. package/qa-dashboard/node_modules/object-inspect/.eslintrc +53 -0
  813. package/qa-dashboard/node_modules/object-inspect/.github/FUNDING.yml +12 -0
  814. package/qa-dashboard/node_modules/object-inspect/.nycrc +13 -0
  815. package/qa-dashboard/node_modules/object-inspect/CHANGELOG.md +424 -0
  816. package/qa-dashboard/node_modules/object-inspect/LICENSE +21 -0
  817. package/qa-dashboard/node_modules/object-inspect/example/all.js +23 -0
  818. package/qa-dashboard/node_modules/object-inspect/example/circular.js +6 -0
  819. package/qa-dashboard/node_modules/object-inspect/example/fn.js +5 -0
  820. package/qa-dashboard/node_modules/object-inspect/example/inspect.js +10 -0
  821. package/qa-dashboard/node_modules/object-inspect/index.js +544 -0
  822. package/qa-dashboard/node_modules/object-inspect/package-support.json +20 -0
  823. package/qa-dashboard/node_modules/object-inspect/package.json +105 -0
  824. package/qa-dashboard/node_modules/object-inspect/readme.markdown +84 -0
  825. package/qa-dashboard/node_modules/object-inspect/test/bigint.js +58 -0
  826. package/qa-dashboard/node_modules/object-inspect/test/browser/dom.js +15 -0
  827. package/qa-dashboard/node_modules/object-inspect/test/circular.js +16 -0
  828. package/qa-dashboard/node_modules/object-inspect/test/deep.js +12 -0
  829. package/qa-dashboard/node_modules/object-inspect/test/element.js +53 -0
  830. package/qa-dashboard/node_modules/object-inspect/test/err.js +48 -0
  831. package/qa-dashboard/node_modules/object-inspect/test/fakes.js +29 -0
  832. package/qa-dashboard/node_modules/object-inspect/test/fn.js +76 -0
  833. package/qa-dashboard/node_modules/object-inspect/test/global.js +17 -0
  834. package/qa-dashboard/node_modules/object-inspect/test/has.js +15 -0
  835. package/qa-dashboard/node_modules/object-inspect/test/holes.js +15 -0
  836. package/qa-dashboard/node_modules/object-inspect/test/indent-option.js +271 -0
  837. package/qa-dashboard/node_modules/object-inspect/test/inspect.js +139 -0
  838. package/qa-dashboard/node_modules/object-inspect/test/lowbyte.js +12 -0
  839. package/qa-dashboard/node_modules/object-inspect/test/number.js +58 -0
  840. package/qa-dashboard/node_modules/object-inspect/test/quoteStyle.js +26 -0
  841. package/qa-dashboard/node_modules/object-inspect/test/toStringTag.js +40 -0
  842. package/qa-dashboard/node_modules/object-inspect/test/undef.js +12 -0
  843. package/qa-dashboard/node_modules/object-inspect/test/values.js +261 -0
  844. package/qa-dashboard/node_modules/object-inspect/test-core-js.js +26 -0
  845. package/qa-dashboard/node_modules/object-inspect/util.inspect.js +1 -0
  846. package/qa-dashboard/node_modules/on-finished/HISTORY.md +98 -0
  847. package/qa-dashboard/node_modules/on-finished/LICENSE +23 -0
  848. package/qa-dashboard/node_modules/on-finished/README.md +162 -0
  849. package/qa-dashboard/node_modules/on-finished/index.js +234 -0
  850. package/qa-dashboard/node_modules/on-finished/package.json +39 -0
  851. package/qa-dashboard/node_modules/on-headers/HISTORY.md +26 -0
  852. package/qa-dashboard/node_modules/on-headers/LICENSE +22 -0
  853. package/qa-dashboard/node_modules/on-headers/README.md +81 -0
  854. package/qa-dashboard/node_modules/on-headers/index.js +180 -0
  855. package/qa-dashboard/node_modules/on-headers/package.json +44 -0
  856. package/qa-dashboard/node_modules/parseurl/HISTORY.md +58 -0
  857. package/qa-dashboard/node_modules/parseurl/LICENSE +24 -0
  858. package/qa-dashboard/node_modules/parseurl/README.md +133 -0
  859. package/qa-dashboard/node_modules/parseurl/index.js +158 -0
  860. package/qa-dashboard/node_modules/parseurl/package.json +40 -0
  861. package/qa-dashboard/node_modules/path-to-regexp/LICENSE +21 -0
  862. package/qa-dashboard/node_modules/path-to-regexp/Readme.md +35 -0
  863. package/qa-dashboard/node_modules/path-to-regexp/index.js +158 -0
  864. package/qa-dashboard/node_modules/path-to-regexp/package.json +30 -0
  865. package/qa-dashboard/node_modules/picocolors/LICENSE +15 -0
  866. package/qa-dashboard/node_modules/picocolors/README.md +21 -0
  867. package/qa-dashboard/node_modules/picocolors/package.json +25 -0
  868. package/qa-dashboard/node_modules/picocolors/picocolors.browser.js +4 -0
  869. package/qa-dashboard/node_modules/picocolors/picocolors.d.ts +5 -0
  870. package/qa-dashboard/node_modules/picocolors/picocolors.js +75 -0
  871. package/qa-dashboard/node_modules/picocolors/types.d.ts +51 -0
  872. package/qa-dashboard/node_modules/proxy-addr/HISTORY.md +161 -0
  873. package/qa-dashboard/node_modules/proxy-addr/LICENSE +22 -0
  874. package/qa-dashboard/node_modules/proxy-addr/README.md +139 -0
  875. package/qa-dashboard/node_modules/proxy-addr/index.js +327 -0
  876. package/qa-dashboard/node_modules/proxy-addr/package.json +47 -0
  877. package/qa-dashboard/node_modules/qs/.editorconfig +46 -0
  878. package/qa-dashboard/node_modules/qs/.github/FUNDING.yml +12 -0
  879. package/qa-dashboard/node_modules/qs/.github/SECURITY.md +11 -0
  880. package/qa-dashboard/node_modules/qs/.github/THREAT_MODEL.md +78 -0
  881. package/qa-dashboard/node_modules/qs/.nycrc +13 -0
  882. package/qa-dashboard/node_modules/qs/CHANGELOG.md +822 -0
  883. package/qa-dashboard/node_modules/qs/LICENSE.md +29 -0
  884. package/qa-dashboard/node_modules/qs/README.md +758 -0
  885. package/qa-dashboard/node_modules/qs/dist/qs.js +141 -0
  886. package/qa-dashboard/node_modules/qs/eslint.config.mjs +57 -0
  887. package/qa-dashboard/node_modules/qs/lib/formats.js +23 -0
  888. package/qa-dashboard/node_modules/qs/lib/index.js +11 -0
  889. package/qa-dashboard/node_modules/qs/lib/parse.js +403 -0
  890. package/qa-dashboard/node_modules/qs/lib/stringify.js +363 -0
  891. package/qa-dashboard/node_modules/qs/lib/utils.js +342 -0
  892. package/qa-dashboard/node_modules/qs/package.json +94 -0
  893. package/qa-dashboard/node_modules/qs/test/empty-keys-cases.js +267 -0
  894. package/qa-dashboard/node_modules/qs/test/parse.js +1703 -0
  895. package/qa-dashboard/node_modules/qs/test/stringify.js +1448 -0
  896. package/qa-dashboard/node_modules/qs/test/utils.js +432 -0
  897. package/qa-dashboard/node_modules/range-parser/HISTORY.md +56 -0
  898. package/qa-dashboard/node_modules/range-parser/LICENSE +23 -0
  899. package/qa-dashboard/node_modules/range-parser/README.md +84 -0
  900. package/qa-dashboard/node_modules/range-parser/index.js +162 -0
  901. package/qa-dashboard/node_modules/range-parser/package.json +44 -0
  902. package/qa-dashboard/node_modules/raw-body/LICENSE +22 -0
  903. package/qa-dashboard/node_modules/raw-body/README.md +223 -0
  904. package/qa-dashboard/node_modules/raw-body/index.d.ts +87 -0
  905. package/qa-dashboard/node_modules/raw-body/index.js +336 -0
  906. package/qa-dashboard/node_modules/raw-body/package.json +47 -0
  907. package/qa-dashboard/node_modules/safe-buffer/LICENSE +21 -0
  908. package/qa-dashboard/node_modules/safe-buffer/README.md +584 -0
  909. package/qa-dashboard/node_modules/safe-buffer/index.d.ts +187 -0
  910. package/qa-dashboard/node_modules/safe-buffer/index.js +65 -0
  911. package/qa-dashboard/node_modules/safe-buffer/package.json +51 -0
  912. package/qa-dashboard/node_modules/safer-buffer/LICENSE +21 -0
  913. package/qa-dashboard/node_modules/safer-buffer/Porting-Buffer.md +268 -0
  914. package/qa-dashboard/node_modules/safer-buffer/Readme.md +156 -0
  915. package/qa-dashboard/node_modules/safer-buffer/dangerous.js +58 -0
  916. package/qa-dashboard/node_modules/safer-buffer/package.json +34 -0
  917. package/qa-dashboard/node_modules/safer-buffer/safer.js +77 -0
  918. package/qa-dashboard/node_modules/safer-buffer/tests.js +406 -0
  919. package/qa-dashboard/node_modules/send/HISTORY.md +538 -0
  920. package/qa-dashboard/node_modules/send/LICENSE +23 -0
  921. package/qa-dashboard/node_modules/send/README.md +327 -0
  922. package/qa-dashboard/node_modules/send/SECURITY.md +24 -0
  923. package/qa-dashboard/node_modules/send/index.js +1142 -0
  924. package/qa-dashboard/node_modules/send/node_modules/ms/index.js +162 -0
  925. package/qa-dashboard/node_modules/send/node_modules/ms/license.md +21 -0
  926. package/qa-dashboard/node_modules/send/node_modules/ms/package.json +38 -0
  927. package/qa-dashboard/node_modules/send/node_modules/ms/readme.md +59 -0
  928. package/qa-dashboard/node_modules/send/package.json +62 -0
  929. package/qa-dashboard/node_modules/serve-static/HISTORY.md +493 -0
  930. package/qa-dashboard/node_modules/serve-static/LICENSE +25 -0
  931. package/qa-dashboard/node_modules/serve-static/README.md +257 -0
  932. package/qa-dashboard/node_modules/serve-static/index.js +209 -0
  933. package/qa-dashboard/node_modules/serve-static/package.json +42 -0
  934. package/qa-dashboard/node_modules/setprototypeof/LICENSE +13 -0
  935. package/qa-dashboard/node_modules/setprototypeof/README.md +31 -0
  936. package/qa-dashboard/node_modules/setprototypeof/index.d.ts +2 -0
  937. package/qa-dashboard/node_modules/setprototypeof/index.js +17 -0
  938. package/qa-dashboard/node_modules/setprototypeof/package.json +38 -0
  939. package/qa-dashboard/node_modules/setprototypeof/test/index.js +24 -0
  940. package/qa-dashboard/node_modules/side-channel/.editorconfig +9 -0
  941. package/qa-dashboard/node_modules/side-channel/.eslintrc +12 -0
  942. package/qa-dashboard/node_modules/side-channel/.github/FUNDING.yml +12 -0
  943. package/qa-dashboard/node_modules/side-channel/.nycrc +13 -0
  944. package/qa-dashboard/node_modules/side-channel/CHANGELOG.md +110 -0
  945. package/qa-dashboard/node_modules/side-channel/LICENSE +21 -0
  946. package/qa-dashboard/node_modules/side-channel/README.md +61 -0
  947. package/qa-dashboard/node_modules/side-channel/index.d.ts +14 -0
  948. package/qa-dashboard/node_modules/side-channel/index.js +43 -0
  949. package/qa-dashboard/node_modules/side-channel/package.json +85 -0
  950. package/qa-dashboard/node_modules/side-channel/test/index.js +104 -0
  951. package/qa-dashboard/node_modules/side-channel/tsconfig.json +9 -0
  952. package/qa-dashboard/node_modules/side-channel-list/.editorconfig +9 -0
  953. package/qa-dashboard/node_modules/side-channel-list/.eslintrc +11 -0
  954. package/qa-dashboard/node_modules/side-channel-list/.github/FUNDING.yml +12 -0
  955. package/qa-dashboard/node_modules/side-channel-list/.nycrc +13 -0
  956. package/qa-dashboard/node_modules/side-channel-list/CHANGELOG.md +36 -0
  957. package/qa-dashboard/node_modules/side-channel-list/LICENSE +21 -0
  958. package/qa-dashboard/node_modules/side-channel-list/README.md +62 -0
  959. package/qa-dashboard/node_modules/side-channel-list/index.d.ts +13 -0
  960. package/qa-dashboard/node_modules/side-channel-list/index.js +111 -0
  961. package/qa-dashboard/node_modules/side-channel-list/list.d.ts +14 -0
  962. package/qa-dashboard/node_modules/side-channel-list/package.json +77 -0
  963. package/qa-dashboard/node_modules/side-channel-list/test/index.js +154 -0
  964. package/qa-dashboard/node_modules/side-channel-list/tsconfig.json +9 -0
  965. package/qa-dashboard/node_modules/side-channel-map/.editorconfig +9 -0
  966. package/qa-dashboard/node_modules/side-channel-map/.eslintrc +11 -0
  967. package/qa-dashboard/node_modules/side-channel-map/.github/FUNDING.yml +12 -0
  968. package/qa-dashboard/node_modules/side-channel-map/.nycrc +13 -0
  969. package/qa-dashboard/node_modules/side-channel-map/CHANGELOG.md +22 -0
  970. package/qa-dashboard/node_modules/side-channel-map/LICENSE +21 -0
  971. package/qa-dashboard/node_modules/side-channel-map/README.md +62 -0
  972. package/qa-dashboard/node_modules/side-channel-map/index.d.ts +15 -0
  973. package/qa-dashboard/node_modules/side-channel-map/index.js +68 -0
  974. package/qa-dashboard/node_modules/side-channel-map/package.json +80 -0
  975. package/qa-dashboard/node_modules/side-channel-map/test/index.js +114 -0
  976. package/qa-dashboard/node_modules/side-channel-map/tsconfig.json +9 -0
  977. package/qa-dashboard/node_modules/side-channel-weakmap/.editorconfig +9 -0
  978. package/qa-dashboard/node_modules/side-channel-weakmap/.eslintrc +12 -0
  979. package/qa-dashboard/node_modules/side-channel-weakmap/.github/FUNDING.yml +12 -0
  980. package/qa-dashboard/node_modules/side-channel-weakmap/.nycrc +13 -0
  981. package/qa-dashboard/node_modules/side-channel-weakmap/CHANGELOG.md +28 -0
  982. package/qa-dashboard/node_modules/side-channel-weakmap/LICENSE +21 -0
  983. package/qa-dashboard/node_modules/side-channel-weakmap/README.md +62 -0
  984. package/qa-dashboard/node_modules/side-channel-weakmap/index.d.ts +15 -0
  985. package/qa-dashboard/node_modules/side-channel-weakmap/index.js +84 -0
  986. package/qa-dashboard/node_modules/side-channel-weakmap/package.json +87 -0
  987. package/qa-dashboard/node_modules/side-channel-weakmap/test/index.js +114 -0
  988. package/qa-dashboard/node_modules/side-channel-weakmap/tsconfig.json +9 -0
  989. package/qa-dashboard/node_modules/statuses/HISTORY.md +87 -0
  990. package/qa-dashboard/node_modules/statuses/LICENSE +23 -0
  991. package/qa-dashboard/node_modules/statuses/README.md +139 -0
  992. package/qa-dashboard/node_modules/statuses/codes.json +65 -0
  993. package/qa-dashboard/node_modules/statuses/index.js +146 -0
  994. package/qa-dashboard/node_modules/statuses/package.json +49 -0
  995. package/qa-dashboard/node_modules/toidentifier/HISTORY.md +9 -0
  996. package/qa-dashboard/node_modules/toidentifier/LICENSE +21 -0
  997. package/qa-dashboard/node_modules/toidentifier/README.md +61 -0
  998. package/qa-dashboard/node_modules/toidentifier/index.js +32 -0
  999. package/qa-dashboard/node_modules/toidentifier/package.json +38 -0
  1000. package/qa-dashboard/node_modules/type-is/HISTORY.md +259 -0
  1001. package/qa-dashboard/node_modules/type-is/LICENSE +23 -0
  1002. package/qa-dashboard/node_modules/type-is/README.md +170 -0
  1003. package/qa-dashboard/node_modules/type-is/index.js +266 -0
  1004. package/qa-dashboard/node_modules/type-is/package.json +45 -0
  1005. package/qa-dashboard/node_modules/unpipe/HISTORY.md +4 -0
  1006. package/qa-dashboard/node_modules/unpipe/LICENSE +22 -0
  1007. package/qa-dashboard/node_modules/unpipe/README.md +43 -0
  1008. package/qa-dashboard/node_modules/unpipe/index.js +69 -0
  1009. package/qa-dashboard/node_modules/unpipe/package.json +27 -0
  1010. package/qa-dashboard/node_modules/utils-merge/LICENSE +20 -0
  1011. package/qa-dashboard/node_modules/utils-merge/README.md +34 -0
  1012. package/qa-dashboard/node_modules/utils-merge/index.js +23 -0
  1013. package/qa-dashboard/node_modules/utils-merge/package.json +40 -0
  1014. package/qa-dashboard/node_modules/vary/HISTORY.md +39 -0
  1015. package/qa-dashboard/node_modules/vary/LICENSE +22 -0
  1016. package/qa-dashboard/node_modules/vary/README.md +101 -0
  1017. package/qa-dashboard/node_modules/vary/index.js +149 -0
  1018. package/qa-dashboard/node_modules/vary/package.json +43 -0
  1019. package/qa-dashboard/package-lock.json +1002 -0
  1020. package/qa-dashboard/public/css/style.css +1062 -207
  1021. package/qa-dashboard/public/js/main.js +3 -2
  1022. package/qa-dashboard/routes/export.js +35 -16
  1023. package/qa-dashboard/routes/index.js +38 -1
  1024. package/qa-dashboard/routes/runs.js +58 -6
  1025. package/qa-dashboard/routes/stories.js +59 -15
  1026. package/qa-dashboard/services/cli-bridge.js +47 -3
  1027. package/qa-dashboard/services/project-manager.js +26 -0
  1028. package/qa-dashboard/views/analytics.ejs +226 -153
  1029. package/qa-dashboard/views/index.ejs +241 -82
  1030. package/qa-dashboard/views/layouts/main.ejs +18 -0
  1031. package/qa-dashboard/views/project.ejs +49 -29
  1032. package/qa-dashboard/views/projects.ejs +7 -5
  1033. package/qa-dashboard/views/run.ejs +97 -37
  1034. package/qa-dashboard/views/runs.ejs +29 -38
  1035. package/qa-dashboard/views/stories.ejs +23 -25
  1036. package/qa-dashboard/views/story.ejs +95 -19
  1037. package/qa-dashboard/views/test-data.ejs +24 -24
  1038. package/scripts/executor.js +11 -7
  1039. package/test-results/run-2026-05-18T14-50-14/execution-output.json +3 -0
  1040. package/test-results/run-2026-05-18T14-50-43/execution-output.json +2 -0
  1041. package/test-results/run-2026-05-18T14-50-43/execution-result.json +11 -0
  1042. package/test-results/run-2026-05-18T14-50-43/final-test-report.md +42 -0
  1043. package/test-results/run-2026-05-18T14-50-43/healing-report.json +15 -0
  1044. package/test-results/run-2026-05-18T14-51-36/execution-output.json +2 -0
  1045. package/test-results/run-2026-05-18T14-51-36/execution-result.json +11 -0
  1046. package/test-results/run-2026-05-18T14-51-36/final-test-report.md +42 -0
  1047. package/test-results/run-2026-05-18T14-51-36/healing-report.json +15 -0
  1048. package/tests/us-expense-01.spec.ts +30 -0
  1049. package/user-story/Demande-alimentation.md +24 -0
  1050. package/.opencode/agents/qa-generator.md +0 -19
  1051. package/.opencode/agents/qa-healer.md +0 -25
  1052. package/.opencode/agents/qa-planner.md +0 -20
  1053. package/.qa-workflow.json +0 -22
  1054. package/opencode.json +0 -31
@@ -1,266 +1,1121 @@
1
- * { margin: 0; padding: 0; box-sizing: border-box; }
1
+ /* ─── CLAY-INSPIRED STYLE SYSTEM FOR AI-QA WORKFLOW ─── */
2
+
2
3
  :root {
3
- --bg: #0f1117;
4
- --surface: #1a1d27;
5
- --surface2: #232734;
6
- --border: #2d3140;
7
- --text: #e4e6f0;
8
- --text-muted: #8b8fa3;
9
- --primary: #6366f1;
10
- --primary-hover: #818cf8;
4
+ /* Clay Color Palette (Warm Cream Base) */
5
+ --canvas: #fffaf0; /* warm cream canvas base */
6
+ --surface: #ffffff; /* elevated cards/panels */
7
+ --surface2: #faf5e8; /* pre-footer / footer / warm grouping */
8
+ --surface-card: #f5f0e0; /* neutral card background */
9
+ --surface-strong: #ebe6d6; /* stronger emphasized warm cream */
10
+ --surface-dark: #0a1a1a; /* teal-tinted near-black */
11
+ --surface-dark-elevated: #1a2a2a;
12
+
13
+ --border: #e5e5e5; /* hairline */
14
+ --border-strong: #0a0a0a; /* primary black border */
15
+ --text: #0a0a0a; /* primary ink */
16
+ --text-muted: #3a3a3a; /* body text */
17
+ --text-disabled: #6a6a6a; /* muted / meta text */
18
+
19
+ /* Brand accents */
20
+ --primary: #0a0a0a; /* Primary CTA near-black */
21
+ --primary-hover: #1f1f1f;
22
+ --primary-on: #ffffff;
23
+
24
+ /* Clay Bold Pastel Accents */
25
+ --brand-pink: #ff4d8b; /* Hot Pink */
26
+ --brand-teal: #1a3a3a; /* Deep Teal */
27
+ --brand-lavender: #b8a4ed; /* Soft Lavender */
28
+ --brand-peach: #ffb084; /* Warm Peach */
29
+ --brand-ochre: #e8b94a; /* Ochre / Mustard */
30
+ --brand-mint: #a4d4c5; /* Mint */
31
+ --brand-coral: #ff6b5a; /* Coral */
32
+
33
+ /* Semantic */
11
34
  --success: #22c55e;
35
+ --success-bg-soft: #f0fdf4;
12
36
  --danger: #ef4444;
37
+ --danger-bg-soft: #fef2f2;
13
38
  --warning: #f59e0b;
14
- --radius: 8px;
39
+ --warning-bg-soft: #fefbeb;
40
+
41
+ /* Radii (Friendly rounded clay shape system) */
42
+ --radius-xs: 6px;
43
+ --radius-sm: 8px; /* small controls */
44
+ --radius-md: 12px; /* buttons & text inputs */
45
+ --radius-lg: 16px; /* normal cards */
46
+ --radius-xl: 24px; /* large containers / hero */
47
+ --radius-pill: 9999px; /* pill badges / navigation tabs */
48
+
49
+ /* Typography */
50
+ --font-display: 'Outfit', 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
51
+ --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
52
+ --font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, monospace;
53
+
54
+ /* Shadows (Clay uses minimal soft shadows, focusing on contrast borders) */
55
+ --shadow-1: 0px 2px 4px rgba(10, 10, 10, 0.04);
56
+ --shadow-2: 0px 4px 8px rgba(10, 10, 10, 0.05), 0px 1px 2px rgba(10, 10, 10, 0.05);
57
+ --shadow-3: 0px 8px 16px rgba(10, 10, 10, 0.06), 0px 2px 4px rgba(10, 10, 10, 0.04);
58
+ --shadow-hover: 0px 12px 24px rgba(10, 10, 10, 0.08), 0px 4px 6px rgba(10, 10, 10, 0.04);
15
59
  }
60
+
61
+ /* ─── Global Reset & Base Styles ─── */
62
+ * {
63
+ margin: 0;
64
+ padding: 0;
65
+ box-sizing: border-box;
66
+ }
67
+
16
68
  body {
17
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
18
- background: var(--bg);
69
+ font-family: var(--font-sans);
70
+ background-color: var(--canvas);
19
71
  color: var(--text);
20
- line-height: 1.6;
72
+ line-height: 1.5;
73
+ -webkit-font-smoothing: antialiased;
74
+ -moz-osx-font-smoothing: grayscale;
75
+ }
76
+
77
+ .container {
78
+ max-width: 1200px;
79
+ margin: 0 auto;
80
+ padding: 2.5rem 1.5rem;
21
81
  }
22
- .container { max-width: 1200px; margin: 0 auto; padding: 1.5rem; }
23
82
 
24
- /* Navbar */
83
+ /* Headings with Display Font and Negative Spacing */
84
+ h1, h2, h3, h4, .hero h1, .page-header h1 {
85
+ font-family: var(--font-display);
86
+ font-weight: 600;
87
+ color: var(--text);
88
+ letter-spacing: -0.03em;
89
+ }
90
+
91
+ /* ─── Top Sticky Navbar ─── */
25
92
  .navbar {
26
- background: var(--surface);
93
+ background-color: var(--canvas);
27
94
  border-bottom: 1px solid var(--border);
28
- padding: 0 1.5rem;
29
- position: sticky; top: 0; z-index: 100;
95
+ padding: 0 2rem;
96
+ position: sticky;
97
+ top: 0;
98
+ z-index: 100;
99
+ backdrop-filter: blur(10px);
100
+ -webkit-backdrop-filter: blur(10px);
30
101
  }
102
+
31
103
  .nav-inner {
32
- max-width: 1200px; margin: 0 auto;
33
- display: flex; align-items: center; justify-content: space-between;
34
- height: 56px;
104
+ max-width: 1200px;
105
+ margin: 0 auto;
106
+ display: flex;
107
+ align-items: center;
108
+ justify-content: space-between;
109
+ height: 64px;
35
110
  }
111
+
36
112
  .nav-brand {
37
- font-size: 1.2rem; font-weight: 700;
38
- color: var(--primary); text-decoration: none;
113
+ font-family: var(--font-display);
114
+ font-size: 1.25rem;
115
+ font-weight: 600;
116
+ color: var(--text);
117
+ text-decoration: none;
118
+ letter-spacing: -0.04em;
119
+ display: flex;
120
+ align-items: center;
121
+ gap: 0.5rem;
122
+ }
123
+
124
+ .nav-brand::before {
125
+ content: "";
126
+ display: inline-block;
127
+ width: 12px;
128
+ height: 12px;
129
+ background-color: var(--brand-pink);
130
+ border-radius: 50%;
131
+ border: 2px solid var(--text);
39
132
  }
40
- .nav-links { display: flex; gap: 1.5rem; }
133
+
134
+ .nav-links {
135
+ display: flex;
136
+ align-items: center;
137
+ gap: 0.75rem;
138
+ }
139
+
41
140
  .nav-links a {
42
- color: var(--text-muted); text-decoration: none;
43
- font-size: 0.9rem; transition: color 0.2s;
141
+ color: var(--text-muted);
142
+ text-decoration: none;
143
+ font-size: 0.88rem;
144
+ font-weight: 500;
145
+ padding: 0.4rem 0.85rem;
146
+ border-radius: var(--radius-pill);
147
+ transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
148
+ }
149
+
150
+ .nav-links a:hover {
151
+ color: var(--text);
152
+ background-color: var(--surface-card);
153
+ }
154
+
155
+ .btn-refresh {
156
+ background: var(--surface);
157
+ border: 1px solid var(--border);
158
+ border-radius: 50%;
159
+ color: var(--text-muted);
160
+ cursor: pointer;
161
+ font-size: 1rem;
162
+ width: 34px;
163
+ height: 34px;
164
+ display: flex;
165
+ align-items: center;
166
+ justify-content: center;
167
+ transition: all 0.2s;
168
+ box-shadow: var(--shadow-1);
44
169
  }
45
- .nav-links a:hover { color: var(--text); }
46
170
 
47
- /* Hero */
171
+ .btn-refresh:hover {
172
+ color: var(--text);
173
+ border-color: var(--border-strong);
174
+ transform: rotate(30deg);
175
+ }
176
+
177
+ /* ─── Hero Section with Soft Clay Mesh Gradient ─── */
48
178
  .hero {
49
- text-align: center; padding: 3rem 0 2rem;
179
+ position: relative;
180
+ text-align: center;
181
+ padding: 4.5rem 2rem 3.5rem;
182
+ background: radial-gradient(circle at 100% 0%, rgba(255, 77, 139, 0.08) 0%, rgba(184, 164, 237, 0.08) 35%, rgba(164, 212, 197, 0.05) 70%, transparent 100%), var(--surface);
183
+ border: 1px solid var(--border);
184
+ border-radius: var(--radius-xl);
185
+ box-shadow: var(--shadow-2);
186
+ margin-bottom: 2.5rem;
187
+ overflow: hidden;
188
+ }
189
+
190
+ .hero h1 {
191
+ font-size: 3rem;
192
+ margin-bottom: 0.75rem;
193
+ letter-spacing: -0.04em;
194
+ }
195
+
196
+ .hero p {
197
+ color: var(--text-muted);
198
+ font-size: 1.1rem;
199
+ max-width: 600px;
200
+ margin: 0 auto;
201
+ letter-spacing: -0.01em;
202
+ }
203
+
204
+ .hero-project {
205
+ display: inline-flex;
206
+ align-items: center;
207
+ justify-content: center;
208
+ background-color: var(--surface-card);
209
+ border: 1px solid var(--border);
210
+ padding: 0.4rem 1rem;
211
+ border-radius: var(--radius-pill);
212
+ font-size: 0.85rem;
213
+ color: var(--text);
214
+ margin-top: 1.5rem !important;
215
+ font-weight: 500;
216
+ }
217
+
218
+ /* ─── Stats Row & Cards ─── */
219
+ .stats-row {
220
+ display: grid;
221
+ grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
222
+ gap: 1.25rem;
223
+ margin: 2rem 0;
50
224
  }
51
- .hero h1 { font-size: 2.5rem; font-weight: 800; margin-bottom: 0.5rem; }
52
- .hero p { color: var(--text-muted); font-size: 1.1rem; }
53
225
 
54
- /* Stats */
55
- .stats-row { display: flex; gap: 1rem; justify-content: center; margin: 2rem 0; }
56
226
  .stat-card {
57
- background: var(--surface); border: 1px solid var(--border);
58
- border-radius: var(--radius); padding: 1.5rem 2rem; text-align: center;
59
- min-width: 150px;
227
+ background: var(--surface);
228
+ border: 1px solid var(--border);
229
+ border-radius: var(--radius-lg);
230
+ padding: 1.5rem;
231
+ text-align: center;
232
+ box-shadow: var(--shadow-1);
233
+ transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.2s;
234
+ }
235
+
236
+ .stat-card:hover {
237
+ transform: translateY(-2px);
238
+ box-shadow: var(--shadow-2);
239
+ }
240
+
241
+ .stat-number {
242
+ font-family: var(--font-display);
243
+ font-size: 2.5rem;
244
+ font-weight: 600;
245
+ color: var(--text);
246
+ letter-spacing: -0.04em;
247
+ }
248
+
249
+ .stat-label {
250
+ color: var(--text-disabled);
251
+ font-size: 0.78rem;
252
+ font-weight: 600;
253
+ text-transform: uppercase;
254
+ letter-spacing: 0.05em;
255
+ margin-top: 0.35rem;
60
256
  }
61
- .stat-number { font-size: 2rem; font-weight: 700; color: var(--primary); }
62
- .stat-label { color: var(--text-muted); font-size: 0.85rem; margin-top: 0.25rem; }
63
257
 
64
- /* Cards */
258
+ /* ─── Standard Cards & Colorful Modifiers ─── */
65
259
  .card {
66
- background: var(--surface); border: 1px solid var(--border);
67
- border-radius: var(--radius); padding: 1.5rem;
68
- margin-bottom: 1rem;
260
+ background: var(--surface);
261
+ border: 1px solid var(--border);
262
+ border-radius: var(--radius-lg);
263
+ padding: 1.75rem;
264
+ margin-bottom: 1.5rem;
265
+ box-shadow: var(--shadow-2);
266
+ }
267
+
268
+ .card h3 {
269
+ font-size: 1.25rem;
270
+ font-weight: 600;
271
+ margin-bottom: 1.25rem;
272
+ display: flex;
273
+ align-items: center;
274
+ gap: 0.5rem;
275
+ }
276
+
277
+ /* Saturated Clay Brand Modifier Cards */
278
+ .card-pink {
279
+ background-color: var(--brand-pink);
280
+ color: #ffffff;
281
+ border-color: var(--border-strong);
282
+ }
283
+ .card-pink h3, .card-pink .stat-number, .card-pink .stat-label {
284
+ color: #ffffff !important;
285
+ }
286
+
287
+ .card-teal {
288
+ background-color: var(--brand-teal);
289
+ color: #ffffff;
290
+ border-color: var(--border-strong);
291
+ }
292
+ .card-teal h3, .card-teal .stat-number, .card-teal .stat-label, .card-teal p {
293
+ color: #ffffff !important;
294
+ }
295
+
296
+ .card-lavender {
297
+ background-color: var(--brand-lavender);
298
+ color: var(--text);
299
+ border-color: var(--border-strong);
300
+ }
301
+
302
+ .card-peach {
303
+ background-color: var(--brand-peach);
304
+ color: var(--text);
305
+ border-color: var(--border-strong);
306
+ }
307
+
308
+ .card-ochre {
309
+ background-color: var(--brand-ochre);
310
+ color: var(--text);
311
+ border-color: var(--border-strong);
312
+ }
313
+
314
+ .card-cream {
315
+ background-color: var(--surface-card);
316
+ color: var(--text);
317
+ border-color: var(--border);
318
+ }
319
+
320
+ /* ─── Pipeline Flow ─── */
321
+ .pipeline-flow {
322
+ margin: 2.5rem 0;
323
+ background: var(--surface-card);
324
+ padding: 2rem;
325
+ border-radius: var(--radius-xl);
326
+ border: 1px solid var(--border);
327
+ box-shadow: var(--shadow-2);
328
+ }
329
+
330
+ .pipeline-flow h2 {
331
+ font-size: 1.5rem;
332
+ margin-bottom: 1.5rem;
69
333
  }
70
- .card h3 { margin-bottom: 1rem; font-size: 1.1rem; color: var(--primary); }
71
334
 
72
- /* Pipeline Flow */
73
- .pipeline-flow { margin: 2rem 0; }
74
- .pipeline-flow h2 { margin-bottom: 1rem; }
75
335
  .flow-steps {
76
- display: flex; align-items: center; gap: 0.75rem;
77
- flex-wrap: wrap; justify-content: center;
336
+ display: flex;
337
+ align-items: center;
338
+ gap: 1rem;
339
+ justify-content: space-between;
340
+ flex-wrap: nowrap;
341
+ overflow-x: auto;
342
+ padding-bottom: 0.5rem;
78
343
  }
344
+
79
345
  .flow-step {
80
- background: var(--surface2); border: 1px solid var(--border);
81
- border-radius: var(--radius); padding: 1rem 1.25rem;
82
- text-align: center; min-width: 110px;
83
- }
84
- .step-icon { font-size: 1.5rem; margin-bottom: 0.25rem; }
85
- .step-name { font-weight: 600; font-size: 0.85rem; }
86
- .step-desc { color: var(--text-muted); font-size: 0.75rem; }
87
- .flow-arrow { color: var(--text-muted); font-size: 1.25rem; }
88
-
89
- /* Grid */
90
- .project-grid, .row { display: flex; gap: 1rem; flex-wrap: wrap; }
91
- .col { flex: 1; min-width: 200px; }
92
- .col-30 { flex: 0 0 30%; }
93
- .col-40 { flex: 0 0 38%; }
94
- .col-60 { flex: 0 0 58%; }
95
- .col-70 { flex: 0 0 68%; }
96
-
97
- /* Project Card */
346
+ background: var(--surface);
347
+ border: 1px solid var(--border);
348
+ border-radius: var(--radius-lg);
349
+ padding: 1.25rem 1rem;
350
+ text-align: center;
351
+ flex: 1;
352
+ min-width: 140px;
353
+ box-shadow: var(--shadow-1);
354
+ transition: all 0.2s ease;
355
+ }
356
+
357
+ .flow-step.step-active {
358
+ background-color: var(--brand-peach);
359
+ border-color: var(--border-strong);
360
+ box-shadow: var(--shadow-3);
361
+ transform: translateY(-2px);
362
+ }
363
+
364
+ .flow-step.step-active .step-name {
365
+ color: var(--text);
366
+ }
367
+
368
+ .step-icon {
369
+ font-size: 2rem;
370
+ margin-bottom: 0.5rem;
371
+ }
372
+
373
+ .step-name {
374
+ font-weight: 600;
375
+ font-size: 0.88rem;
376
+ color: var(--text-muted);
377
+ }
378
+
379
+ .step-desc {
380
+ color: var(--text-disabled);
381
+ font-size: 0.75rem;
382
+ margin-top: 0.15rem;
383
+ }
384
+
385
+ .flow-arrow {
386
+ color: var(--text-disabled);
387
+ font-size: 1.5rem;
388
+ font-weight: 500;
389
+ user-select: none;
390
+ }
391
+
392
+ /* ─── Grid Systems ─── */
393
+ .project-grid, .row {
394
+ display: flex;
395
+ gap: 1.5rem;
396
+ flex-wrap: wrap;
397
+ }
398
+
399
+ .col {
400
+ flex: 1;
401
+ min-width: 280px;
402
+ }
403
+
404
+ .col-30 { flex: 0 0 calc(30% - 1rem); }
405
+ .col-40 { flex: 0 0 calc(40% - 1rem); }
406
+ .col-50 { flex: 0 0 calc(50% - 1rem); }
407
+ .col-60 { flex: 0 0 calc(60% - 1rem); }
408
+ .col-70 { flex: 0 0 calc(70% - 1rem); }
409
+
410
+ /* ─── Project Cards ─── */
98
411
  .project-card {
99
- background: var(--surface); border: 1px solid var(--border);
100
- border-radius: var(--radius); padding: 1.25rem;
101
- text-decoration: none; color: var(--text);
102
- display: block; transition: border-color 0.2s;
103
- min-width: 250px; flex: 1;
104
- }
105
- .project-card:hover { border-color: var(--primary); }
106
- .project-name { font-weight: 600; font-size: 1.1rem; }
107
- .project-path { color: var(--text-muted); font-size: 0.8rem; word-break: break-all; }
108
- .project-meta { color: var(--text-muted); font-size: 0.8rem; margin-top: 0.5rem; }
109
- .project-actions { margin-top: 0.75rem; display: flex; gap: 0.5rem; }
110
-
111
- /* Page Header */
112
- .page-header {
113
- display: flex; align-items: center; justify-content: space-between;
114
- margin-bottom: 1.5rem; flex-wrap: wrap; gap: 0.75rem;
412
+ background: var(--surface);
413
+ border: 1px solid var(--border);
414
+ border-radius: var(--radius-lg);
415
+ padding: 1.75rem;
416
+ text-decoration: none;
417
+ color: var(--text);
418
+ display: block;
419
+ box-shadow: var(--shadow-1);
420
+ transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
421
+ min-width: 280px;
422
+ }
423
+
424
+ .project-card:hover {
425
+ border-color: var(--border-strong);
426
+ box-shadow: var(--shadow-hover);
427
+ transform: translateY(-4px);
428
+ }
429
+
430
+ .project-name {
431
+ font-family: var(--font-display);
432
+ font-weight: 600;
433
+ font-size: 1.35rem;
434
+ letter-spacing: -0.02em;
435
+ }
436
+
437
+ .project-path {
438
+ font-family: var(--font-mono);
439
+ color: var(--text-disabled);
440
+ font-size: 0.78rem;
441
+ word-break: break-all;
442
+ margin-top: 0.35rem;
443
+ }
444
+
445
+ .project-meta {
446
+ color: var(--text-muted);
447
+ font-size: 0.85rem;
448
+ margin-top: 1rem;
449
+ border-top: 1px solid var(--border);
450
+ padding-top: 0.75rem;
451
+ }
452
+
453
+ .project-actions {
454
+ margin-top: 1.25rem;
455
+ display: flex;
456
+ gap: 0.5rem;
115
457
  }
116
- .page-header h1 { font-size: 1.5rem; }
117
- .header-actions { display: flex; gap: 0.5rem; }
118
458
 
119
- /* Buttons */
459
+ /* ─── Buttons (Thick Pill & Border Styling) ─── */
120
460
  .btn {
121
- display: inline-block; padding: 0.5rem 1rem;
122
- border-radius: var(--radius); border: 1px solid var(--border);
123
- background: var(--surface2); color: var(--text);
124
- font-size: 0.85rem; cursor: pointer; text-decoration: none;
125
- transition: all 0.2s;
461
+ display: inline-flex;
462
+ align-items: center;
463
+ justify-content: center;
464
+ padding: 0.6rem 1.35rem;
465
+ border-radius: var(--radius-md);
466
+ border: 1px solid var(--border-strong);
467
+ background-color: var(--surface);
468
+ color: var(--text);
469
+ font-size: 0.88rem;
470
+ font-weight: 600;
471
+ cursor: pointer;
472
+ text-decoration: none;
473
+ transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
474
+ box-shadow: var(--shadow-1);
475
+ }
476
+
477
+ .btn:hover {
478
+ background-color: var(--surface-card);
479
+ box-shadow: var(--shadow-2);
480
+ }
481
+
482
+ .btn-primary {
483
+ background-color: var(--primary);
484
+ border-color: var(--primary);
485
+ color: var(--primary-on);
486
+ }
487
+
488
+ .btn-primary:hover {
489
+ background-color: var(--primary-hover);
490
+ border-color: var(--primary-hover);
491
+ color: var(--primary-on);
492
+ transform: translateY(-1px);
493
+ }
494
+
495
+ .btn-sm {
496
+ padding: 0.4rem 1rem;
497
+ font-size: 0.8rem;
498
+ border-radius: var(--radius-sm);
499
+ }
500
+
501
+ .btn-danger {
502
+ border-color: var(--danger);
503
+ color: var(--danger);
504
+ background-color: var(--surface);
505
+ }
506
+
507
+ .btn-danger:hover {
508
+ background-color: var(--danger);
509
+ border-color: var(--danger);
510
+ color: #ffffff;
511
+ }
512
+
513
+ /* ─── Page Headers & Action Groups ─── */
514
+ .page-header {
515
+ display: flex;
516
+ align-items: center;
517
+ justify-content: space-between;
518
+ margin-bottom: 2rem;
519
+ flex-wrap: wrap;
520
+ gap: 1rem;
521
+ border-bottom: 1px solid var(--border);
522
+ padding-bottom: 1.25rem;
523
+ }
524
+
525
+ .page-header h1 {
526
+ font-size: 2.25rem;
527
+ }
528
+
529
+ .header-actions {
530
+ display: flex;
531
+ gap: 0.75rem;
532
+ }
533
+
534
+ /* ─── Modern Input Fields ─── */
535
+ .form {
536
+ max-width: 550px;
537
+ }
538
+
539
+ .form-group {
540
+ margin-bottom: 1.5rem;
126
541
  }
127
- .btn:hover { border-color: var(--primary); color: var(--primary); }
128
- .btn-primary { background: var(--primary); border-color: var(--primary); color: #fff; }
129
- .btn-primary:hover { background: var(--primary-hover); color: #fff; }
130
- .btn-sm { padding: 0.35rem 0.75rem; font-size: 0.8rem; }
131
- .btn-danger { border-color: var(--danger); color: var(--danger); }
132
- .btn-danger:hover { background: var(--danger); color: #fff; }
133
-
134
- /* Forms */
135
- .form { max-width: 500px; }
136
- .form-group { margin-bottom: 1rem; }
137
- .form-group label { display: block; margin-bottom: 0.35rem; font-size: 0.9rem; }
138
- .form-group small { color: var(--text-muted); font-size: 0.8rem; }
139
- .form-input, .form input[type="text"], .form select {
140
- width: 100%; padding: 0.6rem 0.75rem;
141
- background: var(--surface2); border: 1px solid var(--border);
142
- border-radius: var(--radius); color: var(--text); font-size: 0.9rem;
143
- }
144
-
145
- /* Badges */
542
+
543
+ .form-group label {
544
+ display: block;
545
+ margin-bottom: 0.5rem;
546
+ font-size: 0.88rem;
547
+ font-weight: 600;
548
+ color: var(--text);
549
+ }
550
+
551
+ .form-group small {
552
+ display: block;
553
+ color: var(--text-disabled);
554
+ font-size: 0.78rem;
555
+ margin-top: 0.35rem;
556
+ }
557
+
558
+ .form-input, .form input[type="text"], .form select, .form textarea {
559
+ width: 100%;
560
+ padding: 0.75rem 1rem;
561
+ background-color: var(--surface);
562
+ border: 1px solid var(--border-strong);
563
+ border-radius: var(--radius-md);
564
+ color: var(--text);
565
+ font-size: 0.88rem;
566
+ font-family: var(--font-sans);
567
+ transition: all 0.15s ease;
568
+ outline: none;
569
+ }
570
+
571
+ .form-input:focus, .form input[type="text"]:focus, .form select:focus, .form textarea:focus {
572
+ border-color: var(--brand-pink);
573
+ box-shadow: 0px 0px 0px 3px rgba(255, 77, 139, 0.15);
574
+ }
575
+
576
+ /* ─── Badges (Stark Rounded Badges) ─── */
146
577
  .badge {
147
- display: inline-block; padding: 0.2rem 0.6rem;
148
- border-radius: 100px; font-size: 0.75rem; font-weight: 600;
149
- }
150
- .badge-project { background: var(--surface2); color: var(--text-muted); border: 1px solid var(--border); }
151
- .badge-plan { background: #1e3a5f; color: #60a5fa; }
152
- .badge-spec { background: #14532d; color: #4ade80; }
153
- .badge-draft { background: #422006; color: #fbbf24; }
154
- .badge-pass { background: #14532d; color: #4ade80; }
155
- .badge-fail { background: #450a0a; color: #f87171; }
156
-
157
- /* Stories */
158
- .story-list { display: flex; flex-direction: column; gap: 1rem; }
578
+ display: inline-flex;
579
+ align-items: center;
580
+ padding: 0.25rem 0.75rem;
581
+ border-radius: var(--radius-pill);
582
+ font-size: 0.75rem;
583
+ font-weight: 600;
584
+ letter-spacing: 0.02em;
585
+ }
586
+
587
+ .badge-project {
588
+ background-color: var(--surface-card);
589
+ color: var(--text-muted);
590
+ border: 1px solid var(--border);
591
+ }
592
+
593
+ .badge-plan {
594
+ background-color: #e0f2fe;
595
+ color: #0369a1;
596
+ border: 1px solid #bae6fd;
597
+ }
598
+
599
+ .badge-spec {
600
+ background-color: #dcfce7;
601
+ color: #15803d;
602
+ border: 1px solid #bbf7d0;
603
+ }
604
+
605
+ .badge-draft {
606
+ background-color: #fef3c7;
607
+ color: #b45309;
608
+ border: 1px solid #fde68a;
609
+ }
610
+
611
+ .badge-pass {
612
+ background-color: var(--success-bg-soft);
613
+ color: var(--success);
614
+ border: 1px solid #bbf7d0;
615
+ }
616
+
617
+ .badge-fail {
618
+ background-color: var(--danger-bg-soft);
619
+ color: var(--danger);
620
+ border: 1px solid #fecaca;
621
+ }
622
+
623
+ /* ─── Story Cards & Lists ─── */
624
+ .story-list {
625
+ display: flex;
626
+ flex-direction: column;
627
+ gap: 1.25rem;
628
+ }
629
+
159
630
  .story-card {
160
- background: var(--surface); border: 1px solid var(--border);
161
- border-radius: var(--radius); padding: 1.25rem;
162
- }
163
- .story-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.5rem; }
164
- .story-title { font-weight: 600; color: var(--primary); text-decoration: none; font-size: 1.05rem; }
165
- .story-title:hover { text-decoration: underline; }
166
- .story-badges { display: flex; gap: 0.35rem; }
167
- .story-preview { color: var(--text-muted); font-size: 0.85rem; }
168
- .story-preview p { margin: 0.15rem 0; }
169
- .story-actions { margin-top: 0.75rem; }
170
- .story-action-output { margin-left: 0.5rem; font-size: 0.85rem; }
171
-
172
- /* Runs */
173
- .run-list { display: flex; flex-direction: column; gap: 0.75rem; }
631
+ background: var(--surface);
632
+ border: 1px solid var(--border);
633
+ border-radius: var(--radius-lg);
634
+ padding: 1.5rem;
635
+ box-shadow: var(--shadow-1);
636
+ transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
637
+ }
638
+
639
+ .story-card:hover {
640
+ border-color: var(--border-strong);
641
+ box-shadow: var(--shadow-2);
642
+ }
643
+
644
+ .story-header {
645
+ display: flex;
646
+ justify-content: space-between;
647
+ align-items: center;
648
+ margin-bottom: 0.75rem;
649
+ flex-wrap: wrap;
650
+ gap: 0.5rem;
651
+ }
652
+
653
+ .story-title {
654
+ font-family: var(--font-display);
655
+ font-weight: 600;
656
+ color: var(--text);
657
+ text-decoration: none;
658
+ font-size: 1.25rem;
659
+ letter-spacing: -0.02em;
660
+ transition: color 0.15s;
661
+ }
662
+
663
+ .story-title:hover {
664
+ color: var(--brand-pink);
665
+ }
666
+
667
+ .story-badges {
668
+ display: flex;
669
+ gap: 0.35rem;
670
+ }
671
+
672
+ .story-preview {
673
+ color: var(--text-muted);
674
+ font-size: 0.88rem;
675
+ margin-bottom: 1rem;
676
+ }
677
+
678
+ .story-preview p {
679
+ margin: 0.25rem 0;
680
+ }
681
+
682
+ .story-actions {
683
+ margin-top: 1rem;
684
+ border-top: 1px solid var(--border);
685
+ padding-top: 1rem;
686
+ display: flex;
687
+ align-items: center;
688
+ flex-wrap: wrap;
689
+ gap: 0.75rem;
690
+ }
691
+
692
+ .story-action-output {
693
+ margin-left: auto;
694
+ font-size: 0.8rem;
695
+ font-family: var(--font-mono);
696
+ color: var(--text-disabled);
697
+ }
698
+
699
+ /* ─── Execution Runs & History ─── */
700
+ .run-list {
701
+ display: flex;
702
+ flex-direction: column;
703
+ gap: 0.85rem;
704
+ }
705
+
174
706
  .run-card {
175
- display: flex; align-items: center; gap: 1rem;
176
- background: var(--surface); border: 1px solid var(--border);
177
- border-radius: var(--radius); padding: 1rem 1.25rem;
178
- text-decoration: none; color: var(--text); transition: border-color 0.2s;
179
- }
180
- .run-card:hover { border-color: var(--primary); }
181
- .run-passed { border-left: 3px solid var(--success); }
182
- .run-failed { border-left: 3px solid var(--danger); }
183
- .run-icon { font-size: 1.25rem; }
184
- .run-name { font-weight: 600; font-size: 0.9rem; }
185
- .run-test { color: var(--text-muted); font-size: 0.8rem; }
186
- .run-meta { color: var(--text-muted); font-size: 0.75rem; margin-top: 0.2rem; }
187
-
188
- /* Output */
707
+ display: flex;
708
+ align-items: center;
709
+ gap: 1.25rem;
710
+ background: var(--surface);
711
+ border: 1px solid var(--border);
712
+ border-radius: var(--radius-lg);
713
+ padding: 1.25rem 1.5rem;
714
+ text-decoration: none;
715
+ color: var(--text);
716
+ box-shadow: var(--shadow-1);
717
+ transition: all 0.2s ease;
718
+ }
719
+
720
+ .run-card:hover {
721
+ border-color: var(--border-strong);
722
+ box-shadow: var(--shadow-2);
723
+ transform: translateX(2px);
724
+ }
725
+
726
+ .run-passed {
727
+ border-left: 6px solid var(--success);
728
+ }
729
+
730
+ .run-failed {
731
+ border-left: 6px solid var(--danger);
732
+ }
733
+
734
+ .run-icon {
735
+ font-size: 1.5rem;
736
+ }
737
+
738
+ .run-name {
739
+ font-family: var(--font-display);
740
+ font-weight: 600;
741
+ font-size: 1.1rem;
742
+ }
743
+
744
+ .run-test {
745
+ font-family: var(--font-mono);
746
+ color: var(--text-muted);
747
+ font-size: 0.85rem;
748
+ }
749
+
750
+ .run-meta {
751
+ color: var(--text-disabled);
752
+ font-size: 0.8rem;
753
+ margin-top: 0.25rem;
754
+ }
755
+
756
+ /* ─── Autoscrolling Live Terminal Stream (Teal-tinted Near Black) ─── */
189
757
  .output-box {
190
- margin-top: 0.75rem; padding: 0.75rem;
191
- border-radius: var(--radius); font-size: 0.8rem;
192
- max-height: 300px; overflow-y: auto; white-space: pre-wrap;
193
- font-family: 'Consolas', 'Courier New', monospace;
758
+ margin-top: 1.25rem;
759
+ padding: 1.25rem;
760
+ border-radius: var(--radius-lg);
761
+ font-size: 0.82rem;
762
+ max-height: 450px;
763
+ overflow-y: auto;
764
+ white-space: pre-wrap;
765
+ font-family: var(--font-mono);
766
+ line-height: 1.6;
767
+ border: 2px solid var(--border-strong);
768
+ box-shadow: inset 0px 2px 8px rgba(0, 0, 0, 0.4);
769
+ }
770
+
771
+ .output-running {
772
+ background-color: var(--surface-dark);
773
+ color: #e5e7eb;
194
774
  }
195
- .output-running { background: #1e1b4b; color: #a5b4fc; border: 1px solid #3730a3; }
196
- .output-success { background: #052e16; color: #86efac; border: 1px solid #166534; }
197
- .output-error { background: #450a0a; color: #fca5a5; border: 1px solid #991b1b; }
198
775
 
199
- /* Action buttons */
200
- .action-buttons { display: flex; gap: 0.5rem; flex-wrap: wrap; }
201
- .action-buttons-vertical { display: flex; flex-direction: column; gap: 0.5rem; }
776
+ .output-success {
777
+ background-color: #052e16; /* very dark green */
778
+ color: #4ade80;
779
+ border-color: #15803d;
780
+ }
202
781
 
203
- /* Info table */
204
- .info-table { width: 100%; border-collapse: collapse; font-size: 0.85rem; }
205
- .info-table td { padding: 0.5rem 0.25rem; border-bottom: 1px solid var(--border); }
206
- .info-table td:first-child { color: var(--text-muted); width: 40%; }
782
+ .output-error {
783
+ background-color: #450a0a; /* very dark red */
784
+ color: #f87171;
785
+ border-color: #b91c1c;
786
+ }
787
+
788
+ /* Neon activity pulse dot indicators */
789
+ .terminal-pulse {
790
+ display: flex;
791
+ align-items: center;
792
+ gap: 0.5rem;
793
+ margin-top: 0.75rem;
794
+ padding: 0.6rem 1.25rem;
795
+ background-color: var(--border-strong);
796
+ border-radius: var(--radius-pill);
797
+ width: fit-content;
798
+ }
799
+
800
+ .pulse-dot {
801
+ width: 8px;
802
+ height: 8px;
803
+ border-radius: 50%;
804
+ background-color: var(--brand-pink); /* Neon Pink */
805
+ box-shadow: 0 0 8px var(--brand-pink);
806
+ animation: pulse-blink 1.4s infinite both;
807
+ }
808
+
809
+ .pulse-dot:nth-child(2) {
810
+ animation-delay: 0.2s;
811
+ }
207
812
 
208
- /* Code */
813
+ .pulse-dot:nth-child(3) {
814
+ animation-delay: 0.4s;
815
+ }
816
+
817
+ .pulse-text {
818
+ font-size: 0.78rem;
819
+ font-weight: 600;
820
+ color: #ffffff;
821
+ font-family: var(--font-mono);
822
+ }
823
+
824
+ @keyframes pulse-blink {
825
+ 0%, 100% { opacity: 0.2; transform: scale(0.8); }
826
+ 50% { opacity: 1; transform: scale(1.1); }
827
+ }
828
+
829
+ /* Custom Scrollbar for Terminal and page */
830
+ ::-webkit-scrollbar {
831
+ width: 8px;
832
+ height: 8px;
833
+ }
834
+ ::-webkit-scrollbar-track {
835
+ background: transparent;
836
+ }
837
+ ::-webkit-scrollbar-thumb {
838
+ background: var(--surface-card);
839
+ border-radius: var(--radius-pill);
840
+ border: 2px solid var(--canvas);
841
+ }
842
+ ::-webkit-scrollbar-thumb:hover {
843
+ background: var(--border-strong);
844
+ }
845
+
846
+ /* ─── Code Snippets Block ─── */
209
847
  .code-block {
210
- background: #0d0f16; border: 1px solid var(--border);
211
- border-radius: var(--radius); padding: 1rem;
212
- font-size: 0.78rem; overflow-x: auto; max-height: 400px;
213
- font-family: 'Consolas', 'Courier New', monospace;
214
- line-height: 1.5;
848
+ background: var(--surface-dark);
849
+ border: 2px solid var(--border-strong);
850
+ border-radius: var(--radius-lg);
851
+ padding: 1.25rem;
852
+ font-size: 0.8rem;
853
+ overflow-x: auto;
854
+ max-height: 450px;
855
+ font-family: var(--font-mono);
856
+ line-height: 1.6;
857
+ color: #e5e7eb;
215
858
  }
216
859
 
217
- /* Markdown */
218
- .markdown-content { font-size: 0.85rem; line-height: 1.6; }
219
- .markdown-content br { margin-bottom: 0.25rem; }
860
+ /* ─── Info/Data Tables ─── */
861
+ .info-table {
862
+ width: 100%;
863
+ border-collapse: collapse;
864
+ font-size: 0.88rem;
865
+ }
220
866
 
221
- /* Heal */
222
- .heal-attempt {
223
- background: var(--surface2); border: 1px solid var(--border);
224
- border-radius: var(--radius); padding: 0.5rem 0.75rem;
225
- margin: 0.35rem 0; font-size: 0.8rem;
867
+ .info-table th {
868
+ color: var(--text-disabled);
869
+ font-weight: 600;
870
+ font-size: 0.75rem;
871
+ text-transform: uppercase;
872
+ letter-spacing: 0.05em;
873
+ padding: 0.75rem 0.5rem;
874
+ border-bottom: 2px solid var(--border);
875
+ text-align: left;
226
876
  }
227
877
 
228
- /* Fail list */
229
- .fail-list { list-style: none; }
230
- .fail-list li {
231
- background: #450a0a; border: 1px solid #991b1b;
232
- border-radius: var(--radius); padding: 0.75rem;
233
- margin-bottom: 0.5rem; font-size: 0.85rem;
878
+ .info-table td {
879
+ padding: 0.75rem 0.5rem;
880
+ border-bottom: 1px solid var(--border);
881
+ color: var(--text);
234
882
  }
235
883
 
236
- /* Big number */
237
- .big-number { font-size: 2.5rem; font-weight: 700; color: var(--primary); margin-bottom: 0.5rem; }
884
+ .info-table tr:last-child td {
885
+ border-bottom: none;
886
+ }
887
+
888
+ .info-table td:first-child {
889
+ color: var(--text-muted);
890
+ font-weight: 600;
891
+ width: 35%;
892
+ }
893
+
894
+ /* ─── Markdown Content Formatting ─── */
895
+ .markdown-content {
896
+ font-size: 0.95rem;
897
+ line-height: 1.7;
898
+ color: var(--text-muted);
899
+ }
900
+
901
+ .markdown-content p {
902
+ margin-bottom: 0.85rem;
903
+ }
904
+
905
+ .markdown-content code {
906
+ font-family: var(--font-mono);
907
+ background-color: var(--surface-card);
908
+ padding: 0.2rem 0.4rem;
909
+ border-radius: var(--radius-xs);
910
+ font-size: 0.8rem;
911
+ border: 1px solid var(--border);
912
+ }
238
913
 
239
- /* Empty state */
240
- .empty-state { text-align: center; padding: 4rem 1rem; }
241
- .empty-state h3 { margin-bottom: 0.5rem; }
242
- .empty-state p { color: var(--text-muted); margin-bottom: 1rem; }
914
+ /* ─── Quick Links Grid ─── */
915
+ .quick-links-row {
916
+ display: grid;
917
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
918
+ gap: 1.25rem;
919
+ margin: 2.5rem 0;
920
+ }
243
921
 
244
- /* Alert */
245
- .alert { padding: 0.75rem 1rem; border-radius: var(--radius); margin-bottom: 1rem; font-size: 0.85rem; }
246
- .alert-error { background: #450a0a; border: 1px solid #991b1b; color: #fca5a5; }
922
+ .quick-link-card {
923
+ background: var(--surface);
924
+ border: 1px solid var(--border);
925
+ border-radius: var(--radius-lg);
926
+ padding: 1.5rem;
927
+ text-align: center;
928
+ text-decoration: none;
929
+ color: var(--text);
930
+ box-shadow: var(--shadow-1);
931
+ transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
932
+ display: flex;
933
+ flex-direction: column;
934
+ align-items: center;
935
+ }
247
936
 
248
- /* Text colors */
249
- .text-success { color: var(--success); }
250
- .text-warning { color: var(--warning); }
251
- .text-danger { color: var(--danger); }
937
+ .quick-link-card:hover {
938
+ border-color: var(--border-strong);
939
+ box-shadow: var(--shadow-hover);
940
+ transform: translateY(-4px);
941
+ }
252
942
 
253
- /* Column helpers */
254
- .col-50 { flex: 0 0 48%; }
255
- .col-60 { flex: 0 0 58%; }
256
- .col-40 { flex: 0 0 38%; }
257
- @media (max-width: 768px) {
258
- .col-50, .col-60, .col-40 { flex: 0 0 100%; }
943
+ .ql-icon {
944
+ font-size: 2.25rem;
945
+ margin-bottom: 0.5rem;
259
946
  }
260
947
 
261
- /* Table header styling */
262
- .info-table th { color: var(--text-muted); font-weight: 600; font-size: 0.75rem; text-transform: uppercase; padding: 0.5rem 0.25rem; border-bottom: 2px solid var(--border); text-align: left; }
948
+ .ql-label {
949
+ font-size: 0.95rem;
950
+ font-weight: 600;
951
+ display: flex;
952
+ align-items: center;
953
+ justify-content: center;
954
+ gap: 0.5rem;
955
+ }
956
+
957
+ /* ─── Empty State Placeholder ─── */
958
+ .empty-state {
959
+ text-align: center;
960
+ padding: 5rem 2rem;
961
+ background-color: var(--surface);
962
+ border: 1px solid var(--border);
963
+ border-radius: var(--radius-xl);
964
+ box-shadow: var(--shadow-1);
965
+ }
263
966
 
264
- /* Refresh spinner */
265
- .spinner { display: inline-block; width: 16px; height: 16px; border: 2px solid var(--border); border-top-color: var(--primary); border-radius: 50%; animation: spin 0.6s linear infinite; }
266
- @keyframes spin { to { transform: rotate(360deg); } }
967
+ .empty-state h3 {
968
+ font-size: 1.5rem;
969
+ margin-bottom: 0.5rem;
970
+ }
971
+
972
+ .empty-state p {
973
+ color: var(--text-muted);
974
+ font-size: 0.95rem;
975
+ margin-bottom: 1.5rem;
976
+ }
977
+
978
+ /* ─── Alert & Notification Components ─── */
979
+ .alert {
980
+ padding: 1rem 1.5rem;
981
+ border-radius: var(--radius-lg);
982
+ margin-bottom: 1.5rem;
983
+ font-size: 0.9rem;
984
+ display: flex;
985
+ align-items: center;
986
+ gap: 0.75rem;
987
+ border: 1px solid var(--border-strong);
988
+ }
989
+
990
+ .alert-info {
991
+ background-color: var(--brand-peach);
992
+ color: var(--text);
993
+ }
994
+
995
+ .alert-error {
996
+ background-color: var(--danger-bg-soft);
997
+ color: var(--danger);
998
+ border-color: var(--danger);
999
+ }
1000
+
1001
+ /* ─── Dynamic Spinner Animation ─── */
1002
+ .spinner {
1003
+ display: inline-block;
1004
+ width: 20px;
1005
+ height: 20px;
1006
+ border: 3px solid var(--border);
1007
+ border-top-color: var(--text);
1008
+ border-radius: 50%;
1009
+ animation: spin 0.6s linear infinite;
1010
+ }
1011
+
1012
+ @keyframes spin {
1013
+ to { transform: rotate(360deg); }
1014
+ }
1015
+
1016
+ /* ─── Media Query Adaptations ─── */
1017
+ @media (max-width: 959px) {
1018
+ .row {
1019
+ flex-direction: column;
1020
+ gap: 1.25rem;
1021
+ }
1022
+ .col-30, .col-40, .col-50, .col-60, .col-70 {
1023
+ flex: 0 0 100%;
1024
+ }
1025
+ .stats-row {
1026
+ grid-template-columns: repeat(2, 1fr);
1027
+ }
1028
+ .quick-links-row {
1029
+ grid-template-columns: repeat(2, 1fr);
1030
+ }
1031
+ }
1032
+
1033
+ @media (max-width: 600px) {
1034
+ .navbar {
1035
+ padding: 0 1rem;
1036
+ }
1037
+ .nav-inner {
1038
+ height: 56px;
1039
+ }
1040
+ .nav-links {
1041
+ gap: 0.5rem;
1042
+ }
1043
+ .nav-links a {
1044
+ padding: 0.25rem 0.5rem;
1045
+ font-size: 0.8rem;
1046
+ }
1047
+ .hero {
1048
+ padding: 3rem 1rem 2rem;
1049
+ }
1050
+ .hero h1 {
1051
+ font-size: 2rem;
1052
+ }
1053
+ .stats-row {
1054
+ grid-template-columns: 1fr;
1055
+ }
1056
+ .quick-links-row {
1057
+ grid-template-columns: 1fr;
1058
+ }
1059
+ .flow-steps {
1060
+ flex-direction: column;
1061
+ align-items: center;
1062
+ gap: 0.75rem;
1063
+ }
1064
+ .flow-arrow {
1065
+ transform: rotate(90deg);
1066
+ }
1067
+ }
1068
+
1069
+ /* ─── Extra EJS Template Alignments ─── */
1070
+ .action-buttons-vertical {
1071
+ display: flex;
1072
+ flex-direction: column;
1073
+ gap: 0.65rem;
1074
+ }
1075
+
1076
+ .action-buttons {
1077
+ display: flex;
1078
+ gap: 0.65rem;
1079
+ flex-wrap: wrap;
1080
+ }
1081
+
1082
+ .big-number {
1083
+ font-family: var(--font-display);
1084
+ font-size: 3rem;
1085
+ font-weight: 600;
1086
+ color: var(--text);
1087
+ letter-spacing: -0.04em;
1088
+ }
1089
+
1090
+ .fail-list {
1091
+ list-style: none;
1092
+ padding: 0;
1093
+ margin: 0;
1094
+ }
1095
+
1096
+ .fail-list li {
1097
+ padding: 1rem;
1098
+ border: 1px solid var(--border-strong);
1099
+ background-color: var(--canvas);
1100
+ border-radius: var(--radius-md);
1101
+ margin-bottom: 0.65rem;
1102
+ font-size: 0.88rem;
1103
+ }
1104
+
1105
+ .fail-list li strong {
1106
+ font-family: var(--font-mono);
1107
+ color: var(--danger);
1108
+ }
1109
+
1110
+ .heal-attempt {
1111
+ padding: 0.75rem;
1112
+ border-left: 4px solid var(--success);
1113
+ background-color: var(--surface-card);
1114
+ font-size: 0.8rem;
1115
+ margin-top: 0.5rem;
1116
+ border-radius: 0 var(--radius-md) var(--radius-md) 0;
1117
+ border-top: 1px solid var(--border);
1118
+ border-right: 1px solid var(--border);
1119
+ border-bottom: 1px solid var(--border);
1120
+ font-weight: 500;
1121
+ }