@selvakumaresra/specship 0.1.3 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (718) hide show
  1. package/README.md +2 -2
  2. package/commands/ss-design-implement.md +84 -0
  3. package/commands/ss-design-loop.md +125 -0
  4. package/commands/{cg-drifted.md → ss-drifted.md} +2 -2
  5. package/commands/{cg-fix.md → ss-fix.md} +1 -1
  6. package/commands/{cg-implement.md → ss-implement.md} +1 -1
  7. package/commands/ss-spec-author.md +43 -0
  8. package/commands/ss-spec-review.md +48 -0
  9. package/dist/bin/node-version-check.d.ts +37 -0
  10. package/dist/bin/node-version-check.d.ts.map +1 -0
  11. package/dist/bin/node-version-check.js +79 -0
  12. package/dist/bin/node-version-check.js.map +1 -0
  13. package/dist/bin/specship.d.ts +25 -0
  14. package/dist/bin/specship.d.ts.map +1 -0
  15. package/dist/bin/specship.js +2085 -0
  16. package/dist/bin/specship.js.map +1 -0
  17. package/dist/bin/uninstall.d.ts +13 -0
  18. package/dist/bin/uninstall.d.ts.map +1 -0
  19. package/dist/bin/uninstall.js +35 -0
  20. package/dist/bin/uninstall.js.map +1 -0
  21. package/dist/context/formatter.d.ts +30 -0
  22. package/dist/context/formatter.d.ts.map +1 -0
  23. package/dist/context/formatter.js +263 -0
  24. package/dist/context/formatter.js.map +1 -0
  25. package/dist/context/index.d.ts +119 -0
  26. package/dist/context/index.d.ts.map +1 -0
  27. package/dist/context/index.js +1289 -0
  28. package/dist/context/index.js.map +1 -0
  29. package/dist/context/markers.d.ts +19 -0
  30. package/dist/context/markers.d.ts.map +1 -0
  31. package/dist/context/markers.js +22 -0
  32. package/dist/context/markers.js.map +1 -0
  33. package/dist/db/index.d.ts +103 -0
  34. package/dist/db/index.d.ts.map +1 -0
  35. package/dist/db/index.js +279 -0
  36. package/dist/db/index.js.map +1 -0
  37. package/dist/db/migrations.d.ts +44 -0
  38. package/dist/db/migrations.d.ts.map +1 -0
  39. package/dist/db/migrations.js +462 -0
  40. package/dist/db/migrations.js.map +1 -0
  41. package/dist/db/queries.d.ts +357 -0
  42. package/dist/db/queries.d.ts.map +1 -0
  43. package/dist/db/queries.js +1504 -0
  44. package/dist/db/queries.js.map +1 -0
  45. package/dist/db/schema.sql +419 -0
  46. package/dist/db/spec-queries.d.ts +101 -0
  47. package/dist/db/spec-queries.d.ts.map +1 -0
  48. package/dist/db/spec-queries.js +675 -0
  49. package/dist/db/spec-queries.js.map +1 -0
  50. package/dist/db/sqlite-adapter.d.ts +65 -0
  51. package/dist/db/sqlite-adapter.d.ts.map +1 -0
  52. package/dist/db/sqlite-adapter.js +214 -0
  53. package/dist/db/sqlite-adapter.js.map +1 -0
  54. package/dist/designer/artifact-store.js +54 -0
  55. package/dist/designer/browser.js +141 -0
  56. package/dist/designer/cdp-ensure.js +60 -0
  57. package/dist/designer/cdp-env.js +18 -0
  58. package/dist/designer/cdp-trace.js +599 -0
  59. package/dist/designer/cross-platform.js +74 -0
  60. package/dist/designer/designer-controller.js +1413 -0
  61. package/dist/designer/file-panel.js +39 -0
  62. package/dist/designer/interstitials.js +97 -0
  63. package/dist/designer/oopif-reader.js +176 -0
  64. package/dist/designer/package-meta.js +18 -0
  65. package/dist/designer/preview-host.js +50 -0
  66. package/dist/designer/repo-root.js +31 -0
  67. package/dist/designer/run-state.js +353 -0
  68. package/dist/designer/session-store.js +59 -0
  69. package/dist/designer/ui-anchors.js +651 -0
  70. package/dist/directory.d.ts +67 -0
  71. package/dist/directory.d.ts.map +1 -0
  72. package/dist/directory.js +267 -0
  73. package/dist/directory.js.map +1 -0
  74. package/dist/errors.d.ts +136 -0
  75. package/dist/errors.d.ts.map +1 -0
  76. package/dist/errors.js +219 -0
  77. package/dist/errors.js.map +1 -0
  78. package/dist/extraction/dfm-extractor.d.ts +31 -0
  79. package/dist/extraction/dfm-extractor.d.ts.map +1 -0
  80. package/dist/extraction/dfm-extractor.js +151 -0
  81. package/dist/extraction/dfm-extractor.js.map +1 -0
  82. package/dist/extraction/generated-detection.d.ts +30 -0
  83. package/dist/extraction/generated-detection.d.ts.map +1 -0
  84. package/dist/extraction/generated-detection.js +80 -0
  85. package/dist/extraction/generated-detection.js.map +1 -0
  86. package/dist/extraction/grammars.d.ts +100 -0
  87. package/dist/extraction/grammars.d.ts.map +1 -0
  88. package/dist/extraction/grammars.js +426 -0
  89. package/dist/extraction/grammars.js.map +1 -0
  90. package/dist/extraction/index.d.ts +138 -0
  91. package/dist/extraction/index.d.ts.map +1 -0
  92. package/dist/extraction/index.js +1394 -0
  93. package/dist/extraction/index.js.map +1 -0
  94. package/dist/extraction/languages/c-cpp.d.ts +4 -0
  95. package/dist/extraction/languages/c-cpp.d.ts.map +1 -0
  96. package/dist/extraction/languages/c-cpp.js +171 -0
  97. package/dist/extraction/languages/c-cpp.js.map +1 -0
  98. package/dist/extraction/languages/csharp.d.ts +3 -0
  99. package/dist/extraction/languages/csharp.d.ts.map +1 -0
  100. package/dist/extraction/languages/csharp.js +73 -0
  101. package/dist/extraction/languages/csharp.js.map +1 -0
  102. package/dist/extraction/languages/dart.d.ts +3 -0
  103. package/dist/extraction/languages/dart.d.ts.map +1 -0
  104. package/dist/extraction/languages/dart.js +192 -0
  105. package/dist/extraction/languages/dart.js.map +1 -0
  106. package/dist/extraction/languages/go.d.ts +3 -0
  107. package/dist/extraction/languages/go.d.ts.map +1 -0
  108. package/dist/extraction/languages/go.js +74 -0
  109. package/dist/extraction/languages/go.js.map +1 -0
  110. package/dist/extraction/languages/index.d.ts +10 -0
  111. package/dist/extraction/languages/index.d.ts.map +1 -0
  112. package/dist/extraction/languages/index.js +51 -0
  113. package/dist/extraction/languages/index.js.map +1 -0
  114. package/dist/extraction/languages/java.d.ts +3 -0
  115. package/dist/extraction/languages/java.d.ts.map +1 -0
  116. package/dist/extraction/languages/java.js +70 -0
  117. package/dist/extraction/languages/java.js.map +1 -0
  118. package/dist/extraction/languages/javascript.d.ts +3 -0
  119. package/dist/extraction/languages/javascript.d.ts.map +1 -0
  120. package/dist/extraction/languages/javascript.js +90 -0
  121. package/dist/extraction/languages/javascript.js.map +1 -0
  122. package/dist/extraction/languages/kotlin.d.ts +3 -0
  123. package/dist/extraction/languages/kotlin.d.ts.map +1 -0
  124. package/dist/extraction/languages/kotlin.js +259 -0
  125. package/dist/extraction/languages/kotlin.js.map +1 -0
  126. package/dist/extraction/languages/lua.d.ts +3 -0
  127. package/dist/extraction/languages/lua.d.ts.map +1 -0
  128. package/dist/extraction/languages/lua.js +150 -0
  129. package/dist/extraction/languages/lua.js.map +1 -0
  130. package/dist/extraction/languages/luau.d.ts +3 -0
  131. package/dist/extraction/languages/luau.d.ts.map +1 -0
  132. package/dist/extraction/languages/luau.js +37 -0
  133. package/dist/extraction/languages/luau.js.map +1 -0
  134. package/dist/extraction/languages/objc.d.ts +3 -0
  135. package/dist/extraction/languages/objc.d.ts.map +1 -0
  136. package/dist/extraction/languages/objc.js +133 -0
  137. package/dist/extraction/languages/objc.js.map +1 -0
  138. package/dist/extraction/languages/pascal.d.ts +3 -0
  139. package/dist/extraction/languages/pascal.d.ts.map +1 -0
  140. package/dist/extraction/languages/pascal.js +66 -0
  141. package/dist/extraction/languages/pascal.js.map +1 -0
  142. package/dist/extraction/languages/php.d.ts +3 -0
  143. package/dist/extraction/languages/php.d.ts.map +1 -0
  144. package/dist/extraction/languages/php.js +107 -0
  145. package/dist/extraction/languages/php.js.map +1 -0
  146. package/dist/extraction/languages/python.d.ts +3 -0
  147. package/dist/extraction/languages/python.d.ts.map +1 -0
  148. package/dist/extraction/languages/python.js +56 -0
  149. package/dist/extraction/languages/python.js.map +1 -0
  150. package/dist/extraction/languages/ruby.d.ts +3 -0
  151. package/dist/extraction/languages/ruby.d.ts.map +1 -0
  152. package/dist/extraction/languages/ruby.js +114 -0
  153. package/dist/extraction/languages/ruby.js.map +1 -0
  154. package/dist/extraction/languages/rust.d.ts +3 -0
  155. package/dist/extraction/languages/rust.d.ts.map +1 -0
  156. package/dist/extraction/languages/rust.js +109 -0
  157. package/dist/extraction/languages/rust.js.map +1 -0
  158. package/dist/extraction/languages/scala.d.ts +3 -0
  159. package/dist/extraction/languages/scala.d.ts.map +1 -0
  160. package/dist/extraction/languages/scala.js +139 -0
  161. package/dist/extraction/languages/scala.js.map +1 -0
  162. package/dist/extraction/languages/swift.d.ts +3 -0
  163. package/dist/extraction/languages/swift.d.ts.map +1 -0
  164. package/dist/extraction/languages/swift.js +91 -0
  165. package/dist/extraction/languages/swift.js.map +1 -0
  166. package/dist/extraction/languages/typescript.d.ts +3 -0
  167. package/dist/extraction/languages/typescript.d.ts.map +1 -0
  168. package/dist/extraction/languages/typescript.js +129 -0
  169. package/dist/extraction/languages/typescript.js.map +1 -0
  170. package/dist/extraction/liquid-extractor.d.ts +52 -0
  171. package/dist/extraction/liquid-extractor.d.ts.map +1 -0
  172. package/dist/extraction/liquid-extractor.js +313 -0
  173. package/dist/extraction/liquid-extractor.js.map +1 -0
  174. package/dist/extraction/mybatis-extractor.d.ts +48 -0
  175. package/dist/extraction/mybatis-extractor.d.ts.map +1 -0
  176. package/dist/extraction/mybatis-extractor.js +198 -0
  177. package/dist/extraction/mybatis-extractor.js.map +1 -0
  178. package/dist/extraction/parse-worker.d.ts +8 -0
  179. package/dist/extraction/parse-worker.d.ts.map +1 -0
  180. package/dist/extraction/parse-worker.js +94 -0
  181. package/dist/extraction/parse-worker.js.map +1 -0
  182. package/dist/extraction/specs/markdown-spec-extractor.d.ts +59 -0
  183. package/dist/extraction/specs/markdown-spec-extractor.d.ts.map +1 -0
  184. package/dist/extraction/specs/markdown-spec-extractor.js +327 -0
  185. package/dist/extraction/specs/markdown-spec-extractor.js.map +1 -0
  186. package/dist/extraction/specs/types.d.ts +39 -0
  187. package/dist/extraction/specs/types.d.ts.map +1 -0
  188. package/dist/extraction/specs/types.js +8 -0
  189. package/dist/extraction/specs/types.js.map +1 -0
  190. package/dist/extraction/svelte-extractor.d.ts +56 -0
  191. package/dist/extraction/svelte-extractor.d.ts.map +1 -0
  192. package/dist/extraction/svelte-extractor.js +272 -0
  193. package/dist/extraction/svelte-extractor.js.map +1 -0
  194. package/dist/extraction/tree-sitter-helpers.d.ts +28 -0
  195. package/dist/extraction/tree-sitter-helpers.d.ts.map +1 -0
  196. package/dist/extraction/tree-sitter-helpers.js +103 -0
  197. package/dist/extraction/tree-sitter-helpers.js.map +1 -0
  198. package/dist/extraction/tree-sitter-types.d.ts +193 -0
  199. package/dist/extraction/tree-sitter-types.d.ts.map +1 -0
  200. package/dist/extraction/tree-sitter-types.js +10 -0
  201. package/dist/extraction/tree-sitter-types.js.map +1 -0
  202. package/dist/extraction/tree-sitter.d.ts +317 -0
  203. package/dist/extraction/tree-sitter.d.ts.map +1 -0
  204. package/dist/extraction/tree-sitter.js +3092 -0
  205. package/dist/extraction/tree-sitter.js.map +1 -0
  206. package/dist/extraction/vue-extractor.d.ts +51 -0
  207. package/dist/extraction/vue-extractor.d.ts.map +1 -0
  208. package/dist/extraction/vue-extractor.js +251 -0
  209. package/dist/extraction/vue-extractor.js.map +1 -0
  210. package/dist/extraction/wasm/tree-sitter-lua.wasm +0 -0
  211. package/dist/extraction/wasm/tree-sitter-luau.wasm +0 -0
  212. package/dist/extraction/wasm/tree-sitter-pascal.wasm +0 -0
  213. package/dist/extraction/wasm/tree-sitter-scala.wasm +0 -0
  214. package/dist/extraction/wasm-runtime-flags.d.ts +38 -0
  215. package/dist/extraction/wasm-runtime-flags.d.ts.map +1 -0
  216. package/dist/extraction/wasm-runtime-flags.js +106 -0
  217. package/dist/extraction/wasm-runtime-flags.js.map +1 -0
  218. package/dist/graph/index.d.ts +8 -0
  219. package/dist/graph/index.d.ts.map +1 -0
  220. package/dist/graph/index.js +13 -0
  221. package/dist/graph/index.js.map +1 -0
  222. package/dist/graph/queries.d.ts +106 -0
  223. package/dist/graph/queries.d.ts.map +1 -0
  224. package/dist/graph/queries.js +366 -0
  225. package/dist/graph/queries.js.map +1 -0
  226. package/dist/graph/traversal.d.ts +127 -0
  227. package/dist/graph/traversal.d.ts.map +1 -0
  228. package/dist/graph/traversal.js +531 -0
  229. package/dist/graph/traversal.js.map +1 -0
  230. package/dist/index.d.ts +551 -0
  231. package/dist/index.d.ts.map +1 -0
  232. package/dist/index.js +1165 -0
  233. package/dist/index.js.map +1 -0
  234. package/dist/installer/config-writer.d.ts +28 -0
  235. package/dist/installer/config-writer.d.ts.map +1 -0
  236. package/dist/installer/config-writer.js +91 -0
  237. package/dist/installer/config-writer.js.map +1 -0
  238. package/dist/installer/index.d.ts +92 -0
  239. package/dist/installer/index.d.ts.map +1 -0
  240. package/dist/installer/index.js +416 -0
  241. package/dist/installer/index.js.map +1 -0
  242. package/dist/installer/instructions-template.d.ts +35 -0
  243. package/dist/installer/instructions-template.d.ts.map +1 -0
  244. package/dist/installer/instructions-template.js +51 -0
  245. package/dist/installer/instructions-template.js.map +1 -0
  246. package/dist/installer/targets/claude.d.ts +117 -0
  247. package/dist/installer/targets/claude.d.ts.map +1 -0
  248. package/dist/installer/targets/claude.js +736 -0
  249. package/dist/installer/targets/claude.js.map +1 -0
  250. package/dist/installer/targets/registry.d.ts +19 -0
  251. package/dist/installer/targets/registry.d.ts.map +1 -0
  252. package/dist/installer/targets/registry.js +31 -0
  253. package/dist/installer/targets/registry.js.map +1 -0
  254. package/dist/installer/targets/shared.d.ts +76 -0
  255. package/dist/installer/targets/shared.d.ts.map +1 -0
  256. package/dist/installer/targets/shared.js +256 -0
  257. package/dist/installer/targets/shared.js.map +1 -0
  258. package/dist/installer/targets/types.d.ts +84 -0
  259. package/dist/installer/targets/types.d.ts.map +1 -0
  260. package/dist/installer/targets/types.js +12 -0
  261. package/dist/installer/targets/types.js.map +1 -0
  262. package/dist/isolation/worktree.d.ts +65 -0
  263. package/dist/isolation/worktree.d.ts.map +1 -0
  264. package/dist/isolation/worktree.js +231 -0
  265. package/dist/isolation/worktree.js.map +1 -0
  266. package/dist/mcp/daemon-paths.d.ts +46 -0
  267. package/dist/mcp/daemon-paths.d.ts.map +1 -0
  268. package/dist/mcp/daemon-paths.js +125 -0
  269. package/dist/mcp/daemon-paths.js.map +1 -0
  270. package/dist/mcp/daemon.d.ts +161 -0
  271. package/dist/mcp/daemon.d.ts.map +1 -0
  272. package/dist/mcp/daemon.js +403 -0
  273. package/dist/mcp/daemon.js.map +1 -0
  274. package/dist/mcp/designer-tools.d.ts +33 -0
  275. package/dist/mcp/designer-tools.d.ts.map +1 -0
  276. package/dist/mcp/designer-tools.js +313 -0
  277. package/dist/mcp/designer-tools.js.map +1 -0
  278. package/dist/mcp/engine.d.ts +105 -0
  279. package/dist/mcp/engine.d.ts.map +1 -0
  280. package/dist/mcp/engine.js +270 -0
  281. package/dist/mcp/engine.js.map +1 -0
  282. package/dist/mcp/index.d.ts +112 -0
  283. package/dist/mcp/index.d.ts.map +1 -0
  284. package/dist/mcp/index.js +477 -0
  285. package/dist/mcp/index.js.map +1 -0
  286. package/dist/mcp/proxy.d.ts +81 -0
  287. package/dist/mcp/proxy.d.ts.map +1 -0
  288. package/dist/mcp/proxy.js +510 -0
  289. package/dist/mcp/proxy.js.map +1 -0
  290. package/dist/mcp/server-instructions.d.ts +18 -0
  291. package/dist/mcp/server-instructions.d.ts.map +1 -0
  292. package/dist/mcp/server-instructions.js +77 -0
  293. package/dist/mcp/server-instructions.js.map +1 -0
  294. package/dist/mcp/session.d.ts +77 -0
  295. package/dist/mcp/session.d.ts.map +1 -0
  296. package/dist/mcp/session.js +294 -0
  297. package/dist/mcp/session.js.map +1 -0
  298. package/dist/mcp/spec-tools.d.ts +39 -0
  299. package/dist/mcp/spec-tools.d.ts.map +1 -0
  300. package/dist/mcp/spec-tools.js +326 -0
  301. package/dist/mcp/spec-tools.js.map +1 -0
  302. package/dist/mcp/tools.d.ts +404 -0
  303. package/dist/mcp/tools.d.ts.map +1 -0
  304. package/dist/mcp/tools.js +3087 -0
  305. package/dist/mcp/tools.js.map +1 -0
  306. package/dist/mcp/transport.d.ts +188 -0
  307. package/dist/mcp/transport.d.ts.map +1 -0
  308. package/dist/mcp/transport.js +343 -0
  309. package/dist/mcp/transport.js.map +1 -0
  310. package/dist/mcp/version.d.ts +19 -0
  311. package/dist/mcp/version.d.ts.map +1 -0
  312. package/dist/mcp/version.js +71 -0
  313. package/dist/mcp/version.js.map +1 -0
  314. package/dist/resolution/callback-synthesizer.d.ts +10 -0
  315. package/dist/resolution/callback-synthesizer.d.ts.map +1 -0
  316. package/dist/resolution/callback-synthesizer.js +1300 -0
  317. package/dist/resolution/callback-synthesizer.js.map +1 -0
  318. package/dist/resolution/frameworks/cargo-workspace.d.ts +18 -0
  319. package/dist/resolution/frameworks/cargo-workspace.d.ts.map +1 -0
  320. package/dist/resolution/frameworks/cargo-workspace.js +225 -0
  321. package/dist/resolution/frameworks/cargo-workspace.js.map +1 -0
  322. package/dist/resolution/frameworks/csharp.d.ts +8 -0
  323. package/dist/resolution/frameworks/csharp.d.ts.map +1 -0
  324. package/dist/resolution/frameworks/csharp.js +241 -0
  325. package/dist/resolution/frameworks/csharp.js.map +1 -0
  326. package/dist/resolution/frameworks/drupal.d.ts +51 -0
  327. package/dist/resolution/frameworks/drupal.d.ts.map +1 -0
  328. package/dist/resolution/frameworks/drupal.js +367 -0
  329. package/dist/resolution/frameworks/drupal.js.map +1 -0
  330. package/dist/resolution/frameworks/expo-modules.d.ts +3 -0
  331. package/dist/resolution/frameworks/expo-modules.d.ts.map +1 -0
  332. package/dist/resolution/frameworks/expo-modules.js +143 -0
  333. package/dist/resolution/frameworks/expo-modules.js.map +1 -0
  334. package/dist/resolution/frameworks/express.d.ts +8 -0
  335. package/dist/resolution/frameworks/express.d.ts.map +1 -0
  336. package/dist/resolution/frameworks/express.js +308 -0
  337. package/dist/resolution/frameworks/express.js.map +1 -0
  338. package/dist/resolution/frameworks/fabric.d.ts +3 -0
  339. package/dist/resolution/frameworks/fabric.d.ts.map +1 -0
  340. package/dist/resolution/frameworks/fabric.js +354 -0
  341. package/dist/resolution/frameworks/fabric.js.map +1 -0
  342. package/dist/resolution/frameworks/go.d.ts +8 -0
  343. package/dist/resolution/frameworks/go.d.ts.map +1 -0
  344. package/dist/resolution/frameworks/go.js +161 -0
  345. package/dist/resolution/frameworks/go.js.map +1 -0
  346. package/dist/resolution/frameworks/index.d.ts +48 -0
  347. package/dist/resolution/frameworks/index.d.ts.map +1 -0
  348. package/dist/resolution/frameworks/index.js +161 -0
  349. package/dist/resolution/frameworks/index.js.map +1 -0
  350. package/dist/resolution/frameworks/java.d.ts +8 -0
  351. package/dist/resolution/frameworks/java.d.ts.map +1 -0
  352. package/dist/resolution/frameworks/java.js +504 -0
  353. package/dist/resolution/frameworks/java.js.map +1 -0
  354. package/dist/resolution/frameworks/laravel.d.ts +13 -0
  355. package/dist/resolution/frameworks/laravel.d.ts.map +1 -0
  356. package/dist/resolution/frameworks/laravel.js +257 -0
  357. package/dist/resolution/frameworks/laravel.js.map +1 -0
  358. package/dist/resolution/frameworks/nestjs.d.ts +26 -0
  359. package/dist/resolution/frameworks/nestjs.d.ts.map +1 -0
  360. package/dist/resolution/frameworks/nestjs.js +698 -0
  361. package/dist/resolution/frameworks/nestjs.js.map +1 -0
  362. package/dist/resolution/frameworks/play.d.ts +19 -0
  363. package/dist/resolution/frameworks/play.d.ts.map +1 -0
  364. package/dist/resolution/frameworks/play.js +111 -0
  365. package/dist/resolution/frameworks/play.js.map +1 -0
  366. package/dist/resolution/frameworks/python.d.ts +10 -0
  367. package/dist/resolution/frameworks/python.d.ts.map +1 -0
  368. package/dist/resolution/frameworks/python.js +396 -0
  369. package/dist/resolution/frameworks/python.js.map +1 -0
  370. package/dist/resolution/frameworks/react-native.d.ts +3 -0
  371. package/dist/resolution/frameworks/react-native.d.ts.map +1 -0
  372. package/dist/resolution/frameworks/react-native.js +360 -0
  373. package/dist/resolution/frameworks/react-native.js.map +1 -0
  374. package/dist/resolution/frameworks/react.d.ts +8 -0
  375. package/dist/resolution/frameworks/react.d.ts.map +1 -0
  376. package/dist/resolution/frameworks/react.js +365 -0
  377. package/dist/resolution/frameworks/react.js.map +1 -0
  378. package/dist/resolution/frameworks/ruby.d.ts +8 -0
  379. package/dist/resolution/frameworks/ruby.d.ts.map +1 -0
  380. package/dist/resolution/frameworks/ruby.js +302 -0
  381. package/dist/resolution/frameworks/ruby.js.map +1 -0
  382. package/dist/resolution/frameworks/rust.d.ts +8 -0
  383. package/dist/resolution/frameworks/rust.d.ts.map +1 -0
  384. package/dist/resolution/frameworks/rust.js +304 -0
  385. package/dist/resolution/frameworks/rust.js.map +1 -0
  386. package/dist/resolution/frameworks/svelte.d.ts +9 -0
  387. package/dist/resolution/frameworks/svelte.d.ts.map +1 -0
  388. package/dist/resolution/frameworks/svelte.js +249 -0
  389. package/dist/resolution/frameworks/svelte.js.map +1 -0
  390. package/dist/resolution/frameworks/swift-objc.d.ts +37 -0
  391. package/dist/resolution/frameworks/swift-objc.d.ts.map +1 -0
  392. package/dist/resolution/frameworks/swift-objc.js +252 -0
  393. package/dist/resolution/frameworks/swift-objc.js.map +1 -0
  394. package/dist/resolution/frameworks/swift.d.ts +10 -0
  395. package/dist/resolution/frameworks/swift.d.ts.map +1 -0
  396. package/dist/resolution/frameworks/swift.js +400 -0
  397. package/dist/resolution/frameworks/swift.js.map +1 -0
  398. package/dist/resolution/frameworks/vue.d.ts +9 -0
  399. package/dist/resolution/frameworks/vue.d.ts.map +1 -0
  400. package/dist/resolution/frameworks/vue.js +306 -0
  401. package/dist/resolution/frameworks/vue.js.map +1 -0
  402. package/dist/resolution/go-module.d.ts +26 -0
  403. package/dist/resolution/go-module.d.ts.map +1 -0
  404. package/dist/resolution/go-module.js +78 -0
  405. package/dist/resolution/go-module.js.map +1 -0
  406. package/dist/resolution/import-resolver.d.ts +68 -0
  407. package/dist/resolution/import-resolver.d.ts.map +1 -0
  408. package/dist/resolution/import-resolver.js +1275 -0
  409. package/dist/resolution/import-resolver.js.map +1 -0
  410. package/dist/resolution/index.d.ts +117 -0
  411. package/dist/resolution/index.d.ts.map +1 -0
  412. package/dist/resolution/index.js +895 -0
  413. package/dist/resolution/index.js.map +1 -0
  414. package/dist/resolution/lru-cache.d.ts +24 -0
  415. package/dist/resolution/lru-cache.d.ts.map +1 -0
  416. package/dist/resolution/lru-cache.js +62 -0
  417. package/dist/resolution/lru-cache.js.map +1 -0
  418. package/dist/resolution/name-matcher.d.ts +32 -0
  419. package/dist/resolution/name-matcher.d.ts.map +1 -0
  420. package/dist/resolution/name-matcher.js +596 -0
  421. package/dist/resolution/name-matcher.js.map +1 -0
  422. package/dist/resolution/path-aliases.d.ts +68 -0
  423. package/dist/resolution/path-aliases.d.ts.map +1 -0
  424. package/dist/resolution/path-aliases.js +238 -0
  425. package/dist/resolution/path-aliases.js.map +1 -0
  426. package/dist/resolution/spec-link-resolver.d.ts +103 -0
  427. package/dist/resolution/spec-link-resolver.d.ts.map +1 -0
  428. package/dist/resolution/spec-link-resolver.js +259 -0
  429. package/dist/resolution/spec-link-resolver.js.map +1 -0
  430. package/dist/resolution/strip-comments.d.ts +27 -0
  431. package/dist/resolution/strip-comments.d.ts.map +1 -0
  432. package/dist/resolution/strip-comments.js +441 -0
  433. package/dist/resolution/strip-comments.js.map +1 -0
  434. package/dist/resolution/swift-objc-bridge.d.ts +134 -0
  435. package/dist/resolution/swift-objc-bridge.d.ts.map +1 -0
  436. package/dist/resolution/swift-objc-bridge.js +256 -0
  437. package/dist/resolution/swift-objc-bridge.js.map +1 -0
  438. package/dist/resolution/types.d.ts +216 -0
  439. package/dist/resolution/types.d.ts.map +1 -0
  440. package/dist/resolution/types.js +8 -0
  441. package/dist/resolution/types.js.map +1 -0
  442. package/dist/resolution/workspace-packages.d.ts +48 -0
  443. package/dist/resolution/workspace-packages.d.ts.map +1 -0
  444. package/dist/resolution/workspace-packages.js +208 -0
  445. package/dist/resolution/workspace-packages.js.map +1 -0
  446. package/dist/search/query-parser.d.ts +57 -0
  447. package/dist/search/query-parser.d.ts.map +1 -0
  448. package/dist/search/query-parser.js +177 -0
  449. package/dist/search/query-parser.js.map +1 -0
  450. package/dist/search/query-utils.d.ts +71 -0
  451. package/dist/search/query-utils.d.ts.map +1 -0
  452. package/dist/search/query-utils.js +380 -0
  453. package/dist/search/query-utils.js.map +1 -0
  454. package/dist/server/cli.js +152 -0
  455. package/dist/server/index.js +12 -0
  456. package/dist/server/ingest/index.js +18 -0
  457. package/dist/server/ingest/ingestor.js +506 -0
  458. package/dist/server/ingest/parser.js +104 -0
  459. package/dist/server/ingest/pricing.js +78 -0
  460. package/dist/server/ingest/types.js +9 -0
  461. package/dist/server/ingest/watcher.js +77 -0
  462. package/dist/server/package.json +3 -0
  463. package/dist/server/project-registry.js +101 -0
  464. package/dist/server/routes/claude.js +868 -0
  465. package/dist/server/routes/graph.js +211 -0
  466. package/dist/server/routes/memory.js +272 -0
  467. package/dist/server/routes/projects.js +197 -0
  468. package/dist/server/routes/spec.js +265 -0
  469. package/dist/server/routes/status.js +112 -0
  470. package/dist/server/routes/workflow.js +212 -0
  471. package/dist/server/server.js +206 -0
  472. package/dist/server/static-handler.js +87 -0
  473. package/dist/sync/git-hooks.d.ts +45 -0
  474. package/dist/sync/git-hooks.d.ts.map +1 -0
  475. package/dist/sync/git-hooks.js +225 -0
  476. package/dist/sync/git-hooks.js.map +1 -0
  477. package/dist/sync/index.d.ts +19 -0
  478. package/dist/sync/index.d.ts.map +1 -0
  479. package/dist/sync/index.js +35 -0
  480. package/dist/sync/index.js.map +1 -0
  481. package/dist/sync/watch-policy.d.ts +48 -0
  482. package/dist/sync/watch-policy.d.ts.map +1 -0
  483. package/dist/sync/watch-policy.js +124 -0
  484. package/dist/sync/watch-policy.js.map +1 -0
  485. package/dist/sync/watcher.d.ts +283 -0
  486. package/dist/sync/watcher.d.ts.map +1 -0
  487. package/dist/sync/watcher.js +606 -0
  488. package/dist/sync/watcher.js.map +1 -0
  489. package/dist/sync/worktree.d.ts +54 -0
  490. package/dist/sync/worktree.d.ts.map +1 -0
  491. package/dist/sync/worktree.js +137 -0
  492. package/dist/sync/worktree.js.map +1 -0
  493. package/dist/types.d.ts +623 -0
  494. package/dist/types.d.ts.map +1 -0
  495. package/dist/types.js +108 -0
  496. package/dist/types.js.map +1 -0
  497. package/dist/ui/glyphs.d.ts +42 -0
  498. package/dist/ui/glyphs.d.ts.map +1 -0
  499. package/dist/ui/glyphs.js +78 -0
  500. package/dist/ui/glyphs.js.map +1 -0
  501. package/dist/ui/shimmer-progress.d.ts +11 -0
  502. package/dist/ui/shimmer-progress.d.ts.map +1 -0
  503. package/dist/ui/shimmer-progress.js +90 -0
  504. package/dist/ui/shimmer-progress.js.map +1 -0
  505. package/dist/ui/shimmer-worker.d.ts +2 -0
  506. package/dist/ui/shimmer-worker.d.ts.map +1 -0
  507. package/dist/ui/shimmer-worker.js +118 -0
  508. package/dist/ui/shimmer-worker.js.map +1 -0
  509. package/dist/ui/types.d.ts +17 -0
  510. package/dist/ui/types.d.ts.map +1 -0
  511. package/dist/ui/types.js +3 -0
  512. package/dist/ui/types.js.map +1 -0
  513. package/dist/utils.d.ts +205 -0
  514. package/dist/utils.d.ts.map +1 -0
  515. package/dist/utils.js +549 -0
  516. package/dist/utils.js.map +1 -0
  517. package/dist/web/chunk-2AJCHB7P.js +1 -0
  518. package/dist/web/chunk-2CPLUFCH.js +2 -0
  519. package/dist/web/chunk-2GBEK2GM.js +1 -0
  520. package/dist/web/chunk-2I7L37NS.js +1 -0
  521. package/dist/web/chunk-2NAWAJB5.js +1 -0
  522. package/dist/web/chunk-2OJBIPE4.js +1 -0
  523. package/dist/web/chunk-2YUJNZ2Y.js +6 -0
  524. package/dist/web/chunk-3E2WB6D5.js +1 -0
  525. package/dist/web/chunk-3EBFYSCH.js +2 -0
  526. package/dist/web/chunk-3QCQ4BXS.js +1 -0
  527. package/dist/web/chunk-42XVAQ6I.js +1 -0
  528. package/dist/web/chunk-45QHGCB4.js +17 -0
  529. package/dist/web/chunk-4IMMPEYM.js +1 -0
  530. package/dist/web/chunk-4TJQJPCZ.js +1 -0
  531. package/dist/web/chunk-4WZIHTPC.js +1 -0
  532. package/dist/web/chunk-4YVSYOSD.js +1 -0
  533. package/dist/web/chunk-5BQIOYKW.js +1 -0
  534. package/dist/web/chunk-5HGWHUJA.js +1 -0
  535. package/dist/web/chunk-5Y244R4G.js +1 -0
  536. package/dist/web/chunk-6RRDPT5Z.js +1 -0
  537. package/dist/web/chunk-6VKB2ZWM.js +1 -0
  538. package/dist/web/chunk-7DMFVTU4.js +1 -0
  539. package/dist/web/chunk-7RNS77UP.js +1 -0
  540. package/dist/web/chunk-7SMPKVEP.js +1 -0
  541. package/dist/web/chunk-A5R3MJMO.js +1 -0
  542. package/dist/web/chunk-ASZ77FMZ.js +1 -0
  543. package/dist/web/chunk-AZJVTPLU.js +1 -0
  544. package/dist/web/chunk-B3YPFY6A.js +1 -0
  545. package/dist/web/chunk-BLBRMCN2.js +1 -0
  546. package/dist/web/chunk-BMIAXD2V.js +2 -0
  547. package/dist/web/chunk-BUXWEHIY.js +1 -0
  548. package/dist/web/chunk-BYZFQSM6.js +1 -0
  549. package/dist/web/chunk-D5OCNEJA.js +2 -0
  550. package/dist/web/chunk-DLQPZWSI.css +1 -0
  551. package/dist/web/chunk-DTRN7FZR.js +1 -0
  552. package/dist/web/chunk-DYRFLPJA.js +1 -0
  553. package/dist/web/chunk-E3J3CXR5.js +1 -0
  554. package/dist/web/chunk-E44X4RH2.js +1 -0
  555. package/dist/web/chunk-E73OX2P7.js +1 -0
  556. package/dist/web/chunk-EAXRKDLV.js +1 -0
  557. package/dist/web/chunk-EBKKDHYI.js +1 -0
  558. package/dist/web/chunk-EE7V7Q5P.js +1 -0
  559. package/dist/web/chunk-EKY2FUHU.js +1 -0
  560. package/dist/web/chunk-EMGMOEVR.js +1 -0
  561. package/dist/web/chunk-EP6XOPXH.js +1 -0
  562. package/dist/web/chunk-ESGDLJOJ.js +1 -0
  563. package/dist/web/chunk-ETJG7NCY.js +1 -0
  564. package/dist/web/chunk-EUUEFEDI.js +1 -0
  565. package/dist/web/chunk-FGNZDHTL.js +11 -0
  566. package/dist/web/chunk-FHZHD2ZG.js +1 -0
  567. package/dist/web/chunk-FIJW2UNJ.js +1 -0
  568. package/dist/web/chunk-FMV5PXRC.js +5 -0
  569. package/dist/web/chunk-G7VZT5KB.js +3 -0
  570. package/dist/web/chunk-GR72OOCN.js +1 -0
  571. package/dist/web/chunk-GRZYXPSO.js +7 -0
  572. package/dist/web/chunk-GWPVKJIY.js +1 -0
  573. package/dist/web/chunk-GYGPS3AN.js +1 -0
  574. package/dist/web/chunk-H7AF7YS4.js +1 -0
  575. package/dist/web/chunk-HDZDQILN.js +1 -0
  576. package/dist/web/chunk-HMK6UO6N.js +1 -0
  577. package/dist/web/chunk-HZA6NEAB.js +1 -0
  578. package/dist/web/chunk-IHEE5NYJ.js +1 -0
  579. package/dist/web/chunk-ISNEBICW.js +1 -0
  580. package/dist/web/chunk-J2GZVLHH.js +1 -0
  581. package/dist/web/chunk-JTFXTIPE.js +903 -0
  582. package/dist/web/chunk-L37MTFSG.js +3 -0
  583. package/dist/web/chunk-LB6JPLX2.js +1 -0
  584. package/dist/web/chunk-LNSVDHCI.js +1 -0
  585. package/dist/web/chunk-LVGIY3SO.js +1 -0
  586. package/dist/web/chunk-LXLHIHEN.js +1 -0
  587. package/dist/web/chunk-MC4DFIHG.js +1 -0
  588. package/dist/web/chunk-MVOMVPYB.js +1 -0
  589. package/dist/web/chunk-N6SS4G6S.js +1 -0
  590. package/dist/web/chunk-NTBJG6SJ.js +1 -0
  591. package/dist/web/chunk-NUDB3Q2Y.js +3 -0
  592. package/dist/web/chunk-NZEZCT65.js +1 -0
  593. package/dist/web/chunk-OXEF5E3E.js +1 -0
  594. package/dist/web/chunk-PDN6QYGJ.js +4 -0
  595. package/dist/web/chunk-PGGJPDJG.js +1 -0
  596. package/dist/web/chunk-PUYSJNJR.js +1 -0
  597. package/dist/web/chunk-Q2RVFS45.js +1 -0
  598. package/dist/web/chunk-Q7L6LLAK.js +1 -0
  599. package/dist/web/chunk-QCMKJIWY.js +1 -0
  600. package/dist/web/chunk-QH6CF3M3.js +1 -0
  601. package/dist/web/chunk-QQ5LD7PI.js +1 -0
  602. package/dist/web/chunk-QR6L3KAC.js +1 -0
  603. package/dist/web/chunk-R2DLK4HO.js +1 -0
  604. package/dist/web/chunk-R5W2MDZN.js +1 -0
  605. package/dist/web/chunk-RD6TVPOT.js +1 -0
  606. package/dist/web/chunk-RKY4EJYJ.js +1 -0
  607. package/dist/web/chunk-RONYWVY7.js +1 -0
  608. package/dist/web/chunk-RXKXYF2C.js +1 -0
  609. package/dist/web/chunk-SBWU7JFC.js +1 -0
  610. package/dist/web/chunk-SEXBRGYK.js +1 -0
  611. package/dist/web/chunk-SHPTC4RL.js +1 -0
  612. package/dist/web/chunk-SUZYBYDW.js +1 -0
  613. package/dist/web/chunk-SWKJRNYY.js +1 -0
  614. package/dist/web/chunk-T66XVKGB.js +1 -0
  615. package/dist/web/chunk-T7AZ65JP.js +1 -0
  616. package/dist/web/chunk-TCZDVOHD.js +1 -0
  617. package/dist/web/chunk-TPTITA3V.js +1 -0
  618. package/dist/web/chunk-TR335633.js +1 -0
  619. package/dist/web/chunk-UBOZGQNK.js +1 -0
  620. package/dist/web/chunk-UR5KDXPX.js +1 -0
  621. package/dist/web/chunk-UR6O2GEH.js +1 -0
  622. package/dist/web/chunk-UTNMGWTP.js +1 -0
  623. package/dist/web/chunk-UYC52MBC.js +1 -0
  624. package/dist/web/chunk-VECWMHJP.js +1 -0
  625. package/dist/web/chunk-VUACT35R.js +3 -0
  626. package/dist/web/chunk-VZI7H4SZ.js +1 -0
  627. package/dist/web/chunk-WAI2JMZP.js +1 -0
  628. package/dist/web/chunk-WB6YHOD4.js +1 -0
  629. package/dist/web/chunk-WBT64AWV.js +1 -0
  630. package/dist/web/chunk-WCKHQIYN.js +1 -0
  631. package/dist/web/chunk-WDU3WICG.js +1 -0
  632. package/dist/web/chunk-WFXJIXZE.js +4 -0
  633. package/dist/web/chunk-WLIMNDS3.js +1 -0
  634. package/dist/web/chunk-WTGYRH3Z.js +298 -0
  635. package/dist/web/chunk-WXTCVDTP.js +1 -0
  636. package/dist/web/chunk-X2HTISHL.js +1 -0
  637. package/dist/web/chunk-XCDHWLVH.js +1 -0
  638. package/dist/web/chunk-Y3H6FFUZ.js +1 -0
  639. package/dist/web/chunk-Y4F5ULGJ.js +1 -0
  640. package/dist/web/chunk-YAMRN47K.js +2 -0
  641. package/dist/web/chunk-YEGKAAEE.js +1 -0
  642. package/dist/web/chunk-YM2KU57F.js +1 -0
  643. package/dist/web/chunk-YRERBP6T.js +1 -0
  644. package/dist/web/chunk-ZLV4VCDG.js +3 -0
  645. package/dist/web/chunk-ZTVI5KFF.js +1 -0
  646. package/dist/web/favicon-16.png +0 -0
  647. package/dist/web/favicon-180.png +0 -0
  648. package/dist/web/favicon-32.png +0 -0
  649. package/dist/web/favicon-512.png +0 -0
  650. package/dist/web/favicon-small.svg +15 -0
  651. package/dist/web/favicon.ico +0 -0
  652. package/dist/web/favicon.svg +20 -0
  653. package/dist/web/index.html +145 -0
  654. package/dist/web/main-ESADRXN2.css +1 -0
  655. package/dist/web/main-R53HA54V.js +1 -0
  656. package/dist/web/media/codicon-LN6W7LCM.ttf +0 -0
  657. package/dist/web/styles-KSOPUVDA.css +1 -0
  658. package/dist/web/sw.js +69 -0
  659. package/dist/workflows/condition-evaluator.d.ts +75 -0
  660. package/dist/workflows/condition-evaluator.d.ts.map +1 -0
  661. package/dist/workflows/condition-evaluator.js +282 -0
  662. package/dist/workflows/condition-evaluator.js.map +1 -0
  663. package/dist/workflows/defaults/claude-design-implement.yaml +336 -0
  664. package/dist/workflows/defaults/index.d.ts +26 -0
  665. package/dist/workflows/defaults/index.d.ts.map +1 -0
  666. package/dist/workflows/defaults/index.js +94 -0
  667. package/dist/workflows/defaults/index.js.map +1 -0
  668. package/dist/workflows/defaults/spec-author.yaml +214 -0
  669. package/dist/workflows/defaults/spec-fix.yaml +110 -0
  670. package/dist/workflows/defaults/spec-implement.yaml +150 -0
  671. package/dist/workflows/defaults/spec-relink.yaml +81 -0
  672. package/dist/workflows/defaults/spec-verify.yaml +51 -0
  673. package/dist/workflows/discovery.d.ts +46 -0
  674. package/dist/workflows/discovery.d.ts.map +1 -0
  675. package/dist/workflows/discovery.js +193 -0
  676. package/dist/workflows/discovery.js.map +1 -0
  677. package/dist/workflows/executor.d.ts +83 -0
  678. package/dist/workflows/executor.d.ts.map +1 -0
  679. package/dist/workflows/executor.js +624 -0
  680. package/dist/workflows/executor.js.map +1 -0
  681. package/dist/workflows/runners/approval.d.ts +18 -0
  682. package/dist/workflows/runners/approval.d.ts.map +1 -0
  683. package/dist/workflows/runners/approval.js +34 -0
  684. package/dist/workflows/runners/approval.js.map +1 -0
  685. package/dist/workflows/runners/bash.d.ts +13 -0
  686. package/dist/workflows/runners/bash.d.ts.map +1 -0
  687. package/dist/workflows/runners/bash.js +143 -0
  688. package/dist/workflows/runners/bash.js.map +1 -0
  689. package/dist/workflows/runners/cancel.d.ts +10 -0
  690. package/dist/workflows/runners/cancel.d.ts.map +1 -0
  691. package/dist/workflows/runners/cancel.js +19 -0
  692. package/dist/workflows/runners/cancel.js.map +1 -0
  693. package/dist/workflows/runners/prompt.d.ts +28 -0
  694. package/dist/workflows/runners/prompt.d.ts.map +1 -0
  695. package/dist/workflows/runners/prompt.js +212 -0
  696. package/dist/workflows/runners/prompt.js.map +1 -0
  697. package/dist/workflows/runners/script.d.ts +17 -0
  698. package/dist/workflows/runners/script.d.ts.map +1 -0
  699. package/dist/workflows/runners/script.js +155 -0
  700. package/dist/workflows/runners/script.js.map +1 -0
  701. package/dist/workflows/runners/types.d.ts +51 -0
  702. package/dist/workflows/runners/types.d.ts.map +1 -0
  703. package/dist/workflows/runners/types.js +13 -0
  704. package/dist/workflows/runners/types.js.map +1 -0
  705. package/dist/workflows/schemas/workflow.d.ts +166 -0
  706. package/dist/workflows/schemas/workflow.d.ts.map +1 -0
  707. package/dist/workflows/schemas/workflow.js +437 -0
  708. package/dist/workflows/schemas/workflow.js.map +1 -0
  709. package/hooks/hooks.json +11 -0
  710. package/package.json +7 -3
  711. package/scripts/offline-install.sh +19 -6
  712. package/selectors.json +41 -0
  713. /package/commands/{cg-explore.md → ss-explore.md} +0 -0
  714. /package/commands/{cg-impact.md → ss-impact.md} +0 -0
  715. /package/commands/{cg-relink.md → ss-relink.md} +0 -0
  716. /package/commands/{cg-spec.md → ss-spec.md} +0 -0
  717. /package/commands/{cg-sync.md → ss-sync.md} +0 -0
  718. /package/commands/{cg-trace.md → ss-trace.md} +0 -0
@@ -0,0 +1 @@
1
+ import{a as k}from"./chunk-X2HTISHL.js";import{a as _}from"./chunk-UYC52MBC.js";import{a as C}from"./chunk-R5W2MDZN.js";import{b as S}from"./chunk-HZA6NEAB.js";import{Aa as l,Ka as x,Ta as c,Va as a,Wa as m,Xa as y,ea as o,ka as f,ra as u,sa as b,ua as g,va as p,wa as s,xa as v,ya as t,za as n,zb as h}from"./chunk-PDN6QYGJ.js";import"./chunk-Q7L6LLAK.js";var w=(i,r)=>r.name,P=(i,r)=>r.label;function M(i,r){if(i&1&&(t(0,"div",5),l(1,"div",34),t(2,"div",35)(3,"div",36),a(4),n(),t(5,"div",37),a(6),n()()()),i&2){let e=r.$implicit;o(),c("background","var("+e.varName+")"),o(3),m(e.name),o(2),m(e.hex)}}function O(i,r){if(i&1&&(t(0,"div",5),l(1,"div",34),t(2,"div",35)(3,"div",36),a(4),n(),t(5,"div",37),a(6),n()()()),i&2){let e=r.$implicit;o(),c("background","var("+e.varName+")"),o(3),m(e.name),o(2),m(e.hex)}}function B(i,r){if(i&1&&l(0,"span",38),i&2){let e=r.$implicit;c("background","var("+e+")")}}function D(i,r){if(i&1&&(t(0,"div",9),l(1,"app-state-pill",22),n()),i&2){let e=r.$implicit;o(),v("state",e)}}function T(i,r){if(i&1&&l(0,"app-state-pill",22),i&2){let e=r.$implicit;v("state",e)}}function N(i,r){if(i&1&&l(0,"app-state-pill",22),i&2){let e=r.$implicit;v("state",e)}}function $(i,r){if(i&1&&(t(0,"div",39),l(1,"span",41),t(2,"span",42),a(3),n()()),i&2){let e=x().$implicit,d=x();o(),c("background",d.nodeColor(e.kind,e.state))("box-shadow","0 0 8px "+d.nodeColor(e.kind,e.state)),o(2),m(e.label)}}function F(i,r){if(i&1&&l(0,"span",46),i&2){let e=x(2).$implicit;c("background",e.state==="drifted"?"var(--warn)":"var(--error)")}}function I(i,r){if(i&1&&(t(0,"div",43),l(1,"span",44),a(2),u(3,F,1,2,"span",45),n()),i&2){let e=x().$implicit,d=x();c("background",d.nodeBg(e.kind,e.state))("border",d.nodeBorder(e.kind,e.state))("border-radius",e.kind==="spec"?"7px":"999px"),o(),c("background",d.nodeColor(e.kind,e.state))("border-radius",e.kind==="spec"?"2px":"50%"),o(),y(" ",e.label," "),o(),b(e.state?3:-1)}}function z(i,r){if(i&1&&u(0,$,4,5,"div",39)(1,I,4,12,"div",40),i&2){let e=r.$implicit;b(e.kind==="route"?0:1)}}function A(i,r){if(i&1&&(t(0,"div",33),l(1,"app-icon",47),t(2,"span",48),a(3),n()()),i&2){let e=r.$implicit;o(),v("name",e)("size",18),o(2),m(e)}}var E=class i{surfaceSwatches=[{name:"bg/canvas",varName:"--bg-canvas",hex:"#0E1014"},{name:"bg/panel",varName:"--bg-panel",hex:"#161A21"},{name:"bg/elevated",varName:"--bg-elevated",hex:"#20262F"},{name:"text/primary",varName:"--text-primary",hex:"#E8EBF0"},{name:"text/secondary",varName:"--text-secondary",hex:"#9AA3B2"},{name:"accent/primary",varName:"--accent",hex:"#3B82F6"}];nodeSwatches=[{name:"accent/code",varName:"--node-code",hex:"purple"},{name:"accent/spec",varName:"--node-spec",hex:"blue"},{name:"accent/test",varName:"--node-test",hex:"green"},{name:"accent/route",varName:"--node-route",hex:"teal"}];nodeColorVars=["--node-code","--node-spec","--node-test","--node-route"];specLinkStates=["verified","implemented","implementing","drifted","broken","orphaned"];runStates=["pending","running","paused","completed","failed","cancelled"];semanticStates=["success","warn","error","info"];nodeSamples=[{label:"exploreGraph",kind:"code"},{label:"REQ-AUTH-005",kind:"spec",state:"drifted"},{label:"auth.test",kind:"test"},{label:"/explore",kind:"route"},{label:"REQ-GRAPH-009",kind:"spec",state:"orphaned"}];iconSample=["dashboard","graph","book","drift","workflow","play","chat","sessions","heatmap","dollar","compare","tips","memory","settings","box","search","command","refresh","filter","reveal","copy","recenter","plus","minus","check","x","arrowRight","sparkles","sun","moon"];nodeColor(r,e){return e==="drifted"?"var(--warn)":e==="orphaned"?"var(--error)":{code:"var(--node-code)",spec:"var(--node-spec)",test:"var(--node-test)",route:"var(--node-route)"}[r]??"var(--accent)"}nodeBg(r,e){return`color-mix(in srgb, ${this.nodeColor(r,e)} 16%, var(--bg-panel))`}nodeBorder(r,e){let d=this.nodeColor(r,e);return e?`1.5px solid ${d}`:`1.5px solid color-mix(in srgb, ${d} 45%, transparent)`}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=f({type:i,selectors:[["app-design"]],decls:96,vars:0,consts:[[1,"design-page","scroll-y"],["icon","layers","title","Design system","sub","Tokens, components and states \u2014 dark mode, WCAG AA"],[1,"ds-grid"],[1,"card","card-pad","ds-block"],[1,"eyebrow",2,"margin-bottom","12px"],[1,"swatch-row","row","gap-8"],[1,"row","gap-6",2,"margin-top","10px"],[1,"node-bar",3,"background"],[1,"muted",2,"font-size","10.5px","align-self","center","margin-left","4px"],[2,"margin-bottom","6px"],[2,"font-size","22px","font-weight","650","letter-spacing","-0.01em"],[2,"font-size","13px","margin-top","4px"],[1,"mono",2,"font-size","12px","margin-top","4px","color","var(--text-secondary)"],[1,"mono","tabular",2,"font-size","12px","margin-top","4px","color","var(--text-secondary)"],[1,"col","gap-8"],[1,"row","gap-6"],[1,"btn","btn-primary","btn-sm"],[1,"btn","btn-secondary","btn-sm"],[1,"btn","btn-ghost","btn-sm"],[1,"btn","btn-destructive","btn-sm"],["disabled","",1,"btn","btn-primary","btn-sm"],[1,"row","gap-6",2,"flex-wrap","wrap"],[3,"state"],["color","var(--node-code)","bg","var(--node-code-soft)"],["color","var(--warn)","bg","var(--warn-soft)"],["text","example","label","Copy"],[1,"muted",2,"font-size","11.5px","line-height","1.7"],[1,"card","card-pad","ds-block","ds-block-full"],[1,"row","gap-16",2,"flex-wrap","wrap","align-items","center"],[1,"col","gap-10",2,"max-width","320px"],["placeholder","Default input \u2014 try focusing",1,"input"],["value","3B82F6",1,"input"],[1,"icons-grid"],[1,"icon-cell","col","gap-4"],[1,"swatch-sq"],[2,"min-width","0"],[2,"font-size","12px"],[1,"mono","muted",2,"font-size","10px"],[1,"node-bar"],[1,"row","gap-8"],[1,"node-chip","row","gap-7",3,"background","border","border-radius"],[1,"route-dot"],[1,"mono","muted",2,"font-size","11px"],[1,"node-chip","row","gap-7"],[1,"node-dot"],[1,"node-state-dot",3,"background"],[1,"node-state-dot"],[3,"name","size"],[1,"mono","muted","xs"]],template:function(e,d){e&1&&(t(0,"div",0),l(1,"app-page-head",1),t(2,"div",2)(3,"div",3)(4,"div",4),a(5,"Surfaces & text"),n(),p(6,M,7,4,"div",5,w),n(),t(8,"div",3)(9,"div",4),a(10,"Node colors \xB7 distinct at 4px"),n(),p(11,O,7,4,"div",5,w),t(13,"div",6),p(14,B,1,2,"span",7,g),t(16,"span",8),a(17,"4px legibility test"),n()()(),t(18,"div",3)(19,"div",4),a(20,"Semantic states"),n(),p(21,D,2,1,"div",9,g),n(),t(23,"div",3)(24,"div",4),a(25,"Typography"),n(),t(26,"div",10),a(27,"Page title \xB7 22px"),n(),t(28,"div",11),a(29,"Body & labels \xB7 13px Geist"),n(),t(30,"div",12),a(31,"mono \xB7 validateSession()"),n(),t(32,"div",13),a(33,"tabular \xB7 $1,184.42"),n()(),t(34,"div",3)(35,"div",4),a(36,"Buttons"),n(),t(37,"div",14)(38,"div",15)(39,"button",16),a(40,"Primary"),n(),t(41,"button",17),a(42,"Secondary"),n(),t(43,"button",18),a(44,"Ghost"),n()(),t(45,"div",15)(46,"button",19),a(47,"Destructive"),n(),t(48,"button",20),a(49,"Disabled"),n()()()(),t(50,"div",3)(51,"div",4),a(52,"Spec link states"),n(),t(53,"div",21),p(54,T,1,1,"app-state-pill",22,g),n()(),t(56,"div",3)(57,"div",4),a(58,"Run states"),n(),t(59,"div",21),p(60,N,1,1,"app-state-pill",22,g),n()(),t(62,"div",3)(63,"div",4),a(64,"Pills & badges"),n(),t(65,"div",21)(66,"app-pill",23),a(67,"function"),n(),t(68,"app-pill"),a(69,"ts"),n(),t(70,"app-pill",24),a(71,"code drift"),n(),l(72,"app-copy-btn",25),n()(),t(73,"div",3)(74,"div",4),a(75,"Density"),n(),t(76,"div",26),a(77," List rows 36\u201340px \xB7 sidebar items 32px \xB7 card padding ~14px. Higher than a marketing site, lower than a trading terminal. "),n()(),t(78,"div",27)(79,"div",4),a(80,"Graph nodes"),n(),t(81,"div",28),p(82,z,2,1,null,null,P),n()(),t(84,"div",27)(85,"div",4),a(86,"Inputs"),n(),t(87,"div",29),l(88,"input",30)(89,"input",31),n()(),t(90,"div",27)(91,"div",4),a(92,"Iconography \xB7 Lucide"),n(),t(93,"div",32),p(94,A,4,3,"div",33,g),n()()()()),e&2&&(o(6),s(d.surfaceSwatches),o(5),s(d.nodeSwatches),o(3),s(d.nodeColorVars),o(7),s(d.semanticStates),o(33),s(d.specLinkStates),o(6),s(d.runStates),o(22),s(d.nodeSamples),o(12),s(d.iconSample))},dependencies:[h,_,S,k,C],styles:["[_nghost-%COMP%]{display:flex;flex:1;min-height:0}.design-page[_ngcontent-%COMP%]{flex:1;padding:18px;overflow-y:auto}.ds-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;max-width:1100px}.ds-block-full[_ngcontent-%COMP%]{grid-column:1/-1}.swatch-row[_ngcontent-%COMP%]{padding:5px 0;align-items:center}.swatch-sq[_ngcontent-%COMP%]{width:28px;height:28px;border-radius:7px;border:1px solid var(--border-subtle);flex-shrink:0}.node-bar[_ngcontent-%COMP%]{width:4px;height:28px;border-radius:2px;display:inline-block}.route-dot[_ngcontent-%COMP%]{width:16px;height:16px;border-radius:50%;flex-shrink:0}.node-chip[_ngcontent-%COMP%]{height:30px;padding:0 12px;font-family:var(--font-mono);font-size:12px;display:inline-flex;align-items:center;gap:7px}.node-dot[_ngcontent-%COMP%]{width:7px;height:7px;flex-shrink:0}.node-state-dot[_ngcontent-%COMP%]{width:6px;height:6px;border-radius:50%;flex-shrink:0}.icons-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:12px}.icon-cell[_ngcontent-%COMP%]{align-items:center;justify-content:center;padding:10px 6px;border:1px solid var(--border-subtle);border-radius:8px;background:var(--bg-panel);color:var(--text-secondary)}.icon-cell[_ngcontent-%COMP%]:hover{color:var(--text-primary);background:var(--bg-hover)}.eyebrow[_ngcontent-%COMP%]{color:var(--text-muted);font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.muted[_ngcontent-%COMP%]{color:var(--text-muted)}.mono[_ngcontent-%COMP%]{font-family:var(--font-mono)}.tabular[_ngcontent-%COMP%]{font-variant-numeric:tabular-nums}.xs[_ngcontent-%COMP%]{font-size:11px}.col[_ngcontent-%COMP%]{display:flex;flex-direction:column}.row[_ngcontent-%COMP%]{display:flex;flex-direction:row}.gap-4[_ngcontent-%COMP%]{gap:4px}.gap-6[_ngcontent-%COMP%]{gap:6px}.gap-7[_ngcontent-%COMP%]{gap:7px}.gap-8[_ngcontent-%COMP%]{gap:8px}.gap-10[_ngcontent-%COMP%]{gap:10px}.gap-16[_ngcontent-%COMP%]{gap:16px}"],changeDetection:0})};export{E as Design};
@@ -0,0 +1 @@
1
+ import"./chunk-Q7L6LLAK.js";var e={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["{","}"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*\\{\\$REGION(\\s\\'.*\\')?\\}"),end:new RegExp("^\\s*\\{\\$ENDREGION\\}")}}},t={defaultToken:"",tokenPostfix:".pascal",ignoreCase:!0,brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],keywords:["absolute","abstract","all","and_then","array","as","asm","attribute","begin","bindable","case","class","const","contains","default","div","else","end","except","exports","external","far","file","finalization","finally","forward","generic","goto","if","implements","import","in","index","inherited","initialization","interrupt","is","label","library","mod","module","name","near","not","object","of","on","only","operator","or_else","otherwise","override","package","packed","pow","private","program","protected","public","published","interface","implementation","qualified","read","record","resident","requires","resourcestring","restricted","segment","set","shl","shr","specialize","stored","strict","then","threadvar","to","try","type","unit","uses","var","view","virtual","dynamic","overload","reintroduce","with","write","xor","true","false","procedure","function","constructor","destructor","property","break","continue","exit","abort","while","do","for","raise","repeat","until"],typeKeywords:["boolean","double","byte","integer","shortint","char","longint","float","string"],operators:["=",">","<","<=",">=","<>",":",":=","and","or","+","-","*","/","@","&","^","%"],symbols:/[=><:@\^&|+\-*\/\^%]+/,tokenizer:{root:[[/[a-zA-Z_][\w]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\$[0-9a-fA-F]{1,16}/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'/,"string","@string"],[/'[^\\']'/,"string"],[/'/,"string.invalid"],[/\#\d+/,"string"]],comment:[[/[^\*\}]+/,"comment"],[/\}/,"comment","@pop"],[/[\{]/,"comment"]],string:[[/[^\\']+/,"string"],[/\\./,"string.escape.invalid"],[/'/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,"white"],[/\{/,"comment","@comment"],[/\/\/.*$/,"comment"]]}};export{e as conf,t as language};
@@ -0,0 +1 @@
1
+ import{n as t}from"./chunk-JTFXTIPE.js";import"./chunk-Q7L6LLAK.js";var e=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],Et={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:["{{!--","--}}"]},brackets:[["<!--","-->"],["<",">"],["{{","}}"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"}],onEnterRules:[{beforeText:new RegExp(`<(?!(?:${e.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:t.IndentAction.IndentOutdent}},{beforeText:new RegExp(`<(?!(?:${e.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),action:{indentAction:t.IndentAction.Indent}}]},wt={defaultToken:"",tokenPostfix:"",tokenizer:{root:[[/\{\{!--/,"comment.block.start.handlebars","@commentBlock"],[/\{\{!/,"comment.start.handlebars","@comment"],[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.root"}],[/<!DOCTYPE/,"metatag.html","@doctype"],[/<!--/,"comment.html","@commentHtml"],[/(<)(\w+)(\/>)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)(script)/,["delimiter.html",{token:"tag.html",next:"@script"}]],[/(<)(style)/,["delimiter.html",{token:"tag.html",next:"@style"}]],[/(<)([:\w]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)(\w+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/</,"delimiter.html"],[/\{/,"delimiter.html"],[/[^<{]+/]],doctype:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.comment"}],[/[^>]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/\}\}/,"comment.end.handlebars","@pop"],[/./,"comment.content.handlebars"]],commentBlock:[[/--\}\}/,"comment.block.end.handlebars","@pop"],[/./,"comment.content.handlebars"]],commentHtml:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.comment"}],[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.script"}],[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptAfterType"}],[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInEmbeddedState.scriptEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],style:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.style"}],[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleAfterType"}],[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInEmbeddedState.styleEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],handlebarsInSimpleState:[[/\{\{\{?/,"delimiter.handlebars"],[/\}\}\}?/,{token:"delimiter.handlebars",switchTo:"@$S2.$S3"}],{include:"handlebarsRoot"}],handlebarsInEmbeddedState:[[/\{\{\{?/,"delimiter.handlebars"],[/\}\}\}?/,{token:"delimiter.handlebars",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}],{include:"handlebarsRoot"}],handlebarsRoot:[[/"[^"]*"/,"string.handlebars"],[/[#/][^\s}]+/,"keyword.helper.handlebars"],[/else\b/,"keyword.helper.handlebars"],[/[\s]+/],[/[^}]/,"variable.parameter.handlebars"]]}};export{Et as conf,wt as language};
@@ -0,0 +1 @@
1
+ import{a as L}from"./chunk-UYC52MBC.js";import{c as R}from"./chunk-GR72OOCN.js";import"./chunk-7RNS77UP.js";import{a as j}from"./chunk-E44X4RH2.js";import{Aa as x,Ga as D,I as S,Ia as $,Ka as l,M as E,N as P,Ta as f,Ua as h,Va as s,W as k,Wa as p,X as O,Xa as C,Ya as F,ea as a,gb as w,ib as y,ka as T,lb as u,ra as v,sa as _,ua as z,va as m,vb as I,wa as g,xa as b,ya as r,za as i,zb as H}from"./chunk-PDN6QYGJ.js";import"./chunk-Q7L6LLAK.js";var M=(n,t)=>t.id,V=(n,t)=>t.label,U=(n,t)=>t.model;function W(n,t){if(n&1){let e=D();r(0,"button",20),$("click",function(){let c=E(e).$implicit,d=l();return P(d.toggle(c.id))}),s(1),i()}if(n&2){let e=t.$implicit,o=l();h("active",o.sel().has(e.id)),a(),p(e.name)}}function q(n,t){if(n&1&&(r(0,"div",4)(1,"div",21),x(2,"app-icon",22),i(),r(3,"div",7)(4,"span",23),s(5,"Most efficient: "),i(),r(6,"span",24),s(7),i(),r(8,"span",25),s(9),w(10,"number"),i()(),r(11,"button",26),x(12,"app-icon",27),s(13,"Export report "),i()()),n&2){let e=l();a(2),b("size",18),a(5),p(e.best().name),a(2),F(" \u2014 ",y(10,5,e.best().cacheHit*100,"1.0-0"),"% cache hit, ",e.fmt$(e.best().avgCost)," avg/session"),a(3),b("size",12)}}function G(n,t){if(n&1&&(r(0,"code",34),s(1),i()),n&2){let e=t.$implicit;a(),p(e)}}function J(n,t){if(n&1&&m(0,G,2,1,"code",34,z),n&2){let e=l().$implicit;g(e.topTools)}}function K(n,t){n&1&&(r(0,"span",33),s(1,"\u2014"),i())}function Q(n,t){if(n&1&&(r(0,"div",28)(1,"span",29),s(2),i(),r(3,"span",30),s(4),i(),r(5,"span",30),s(6),i(),r(7,"span",30),s(8),i(),r(9,"span",30),s(10),w(11,"number"),i(),r(12,"span",31),s(13,"\u2014"),i(),r(14,"span",32),v(15,J,2,0)(16,K,2,0,"span",33),i()()),n&2){let e,o,c=t.$implicit,d=l();h("best-row",((e=d.best())==null?null:e.id)===c.id),a(),f("color",((o=d.best())==null?null:o.id)===c.id?"var(--success)":"var(--text-primary)"),a(),p(c.name),a(2),p(d.fmt$(c.cost)),a(2),p(c.sessions),a(2),p(d.fmt$(c.avgCost)),a(),f("color",d.cacheColor(c.cacheHit)),a(),C("",y(11,12,c.cacheHit*100,"1.0-0"),"%"),a(5),_(c.topTools.length>0?15:16)}}function X(n,t){if(n&1&&(r(0,"span",18),x(1,"span",35),s(2),i()),n&2){let e=t.$implicit;a(),f("background",e.color),a(),C(" ",e.label," ")}}function Y(n,t){if(n&1&&x(0,"div",40),n&2){let e=t.$implicit,o=l(2);f("width",e.widthPct,"%")("background",e.color),b("title",e.label+": "+o.fmt$(e.cost))}}function Z(n,t){if(n&1&&(r(0,"div",19)(1,"span",36),s(2),i(),r(3,"div",37),m(4,Y,1,5,"div",38,U),i(),r(6,"span",39),s(7),i()()),n&2){let e=t.$implicit,o=l();a(2),p(e.name),a(2),g(o.segments(e)),a(3),p(o.fmt$(e.cost))}}var ee=[[/opus/i,"#A586F5"],[/sonnet/i,"#5B93F2"],[/haiku/i,"#29D2BE"]],te="#5C6573";function N(n){for(let[t,e]of ee)if(t.test(n))return e;return te}function B(n){return/opus/i.test(n)?"Opus":/sonnet/i.test(n)?"Sonnet":/haiku/i.test(n)?"Haiku":n.replace(/^claude-/i,"")}var A=class n{api=S(j);resource=R(this.api,()=>"/api/claude/compare");all=u(()=>(this.resource.state().data?.projects??[]).map(e=>({id:e.path||e.name,name:(e.name||"").split("/").filter(Boolean).pop()||e.name||"?",sessions:e.sessions||0,cost:e.cost||0,avgCost:e.avgCost||0,cacheHit:e.cacheHit||0,prompts:e.prompts||0,byModel:e.byModel??[],topTools:e.topTools??[]})));sel=k(new Set);constructor(){O(()=>{let t=this.all();t.length>0&&this.sel().size===0&&this.sel.set(new Set(t.map(e=>e.id)))})}rows=u(()=>{let t=this.sel();return this.all().filter(e=>t.has(e.id))});best=u(()=>[...this.rows()].sort((e,o)=>o.cacheHit-o.avgCost/100-(e.cacheHit-e.avgCost/100))[0]??null);maxCost=u(()=>{let t=this.rows().map(e=>e.cost);return t.length?Math.max(...t):1});segments(t){let e=this.maxCost();return t.byModel.map(o=>({model:o.model,label:B(o.model),color:N(o.model),cost:o.cost,widthPct:e>0?o.cost/e*100:0}))}legend=u(()=>{let t=new Map;for(let e of this.rows())for(let o of e.byModel){let c=B(o.model);t.has(c)||t.set(c,{label:c,color:N(o.model)})}return[...t.values()]});toggle(t){this.sel.update(e=>{let o=new Set(e);return o.has(t)?o.delete(t):o.add(t),o})}cacheColor(t){return t>=.7?"var(--success)":t>=.5?"var(--warn)":"var(--error)"}fmt$(t){return"$"+t.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=T({type:n,selectors:[["app-compare"]],decls:35,vars:2,consts:[[1,"page","scroll-y"],["icon","compare","title","Compare projects","sub","Which projects are cost-efficient vs hungry"],[1,"chip-row"],["type","button",1,"chip",3,"active"],[1,"best-card","card","card-pad",2,"margin-bottom","14px","border-color","rgba(70,194,107,0.3)","background","var(--success-soft)","display","flex","gap","12px","align-items","center"],[1,"card",2,"overflow","hidden","margin-bottom","14px"],[1,"row","header-row"],[1,"grow"],[1,"num"],[1,"num",2,"width","60px"],[2,"width","150px","text-align","right","font-size","10.5px","color","var(--text-muted)","text-transform","uppercase","letter-spacing","0.05em","font-weight","600"],[1,"row","data-row",3,"best-row"],[1,"card","card-pad"],[1,"row",2,"justify-content","space-between","margin-bottom","14px"],[1,"row","gap-8"],["name","dollar",2,"color","var(--accent)",3,"size"],[2,"font-weight","600","font-size","12.5px"],[1,"row","gap-12"],[1,"row","gap-4","muted",2,"font-size","10.5px"],[1,"stacked-row"],["type","button",1,"chip",3,"click"],[2,"color","var(--success)"],["name","sparkles",3,"size"],[2,"font-weight","600","font-size","13px"],[1,"mono",2,"color","var(--success)"],[1,"secondary",2,"font-size","12.5px"],[1,"btn","btn-secondary","btn-sm"],["name","external",3,"size"],[1,"row","data-row"],[1,"mono","grow","project-name"],[1,"mono","tabular","num"],[1,"mono","tabular",2,"width","60px","text-align","right","font-size","12px","color","var(--text-secondary)"],[1,"row","gap-4",2,"width","150px","justify-content","flex-end","flex-wrap","wrap"],[1,"mono",2,"font-size","12px","color","var(--text-secondary)"],[1,"tool-chip","mono"],[2,"width","9px","height","9px","border-radius","3px"],[1,"mono","stacked-lbl"],[1,"stacked-bars"],[1,"stacked-seg",3,"width","background","title"],[1,"mono","tabular","muted","stacked-total",2,"font-size","11px"],[1,"stacked-seg",3,"title"]],template:function(e,o){e&1&&(r(0,"div",0),x(1,"app-page-head",1),r(2,"div",2),m(3,W,2,3,"button",3,M),i(),v(5,q,14,8,"div",4),r(6,"div",5)(7,"div",6)(8,"span",7),s(9,"Project"),i(),r(10,"span",8),s(11,"Cost"),i(),r(12,"span",8),s(13,"Sessions"),i(),r(14,"span",8),s(15,"Avg"),i(),r(16,"span",8),s(17,"Cache"),i(),r(18,"span",9),s(19,"Drift"),i(),r(20,"span",10),s(21,"Top tools"),i()(),m(22,Q,17,15,"div",11,M),i(),r(24,"div",12)(25,"div",13)(26,"div",14),x(27,"app-icon",15),r(28,"span",16),s(29,"Cost by model per project"),i()(),r(30,"div",17),m(31,X,3,3,"span",18,V),i()(),m(33,Z,8,2,"div",19,M),i()()),e&2&&(a(3),g(o.all()),a(2),_(o.best()?5:-1),a(17),g(o.rows()),a(5),b("size",14),a(4),g(o.legend()),a(2),g(o.rows()))},dependencies:[L,H,I],styles:["[_nghost-%COMP%]{display:contents}.page[_ngcontent-%COMP%]{flex:1;padding:18px}.muted[_ngcontent-%COMP%]{color:var(--text-muted)}.mono[_ngcontent-%COMP%]{font-family:var(--font-mono)}.grow[_ngcontent-%COMP%]{flex:1}.secondary[_ngcontent-%COMP%]{color:var(--text-secondary)}.chip-row[_ngcontent-%COMP%]{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}.chip[_ngcontent-%COMP%]{height:28px;padding:0 12px;border-radius:999px;font-size:12px;font-family:var(--font-mono);cursor:pointer;border:1px solid var(--border-subtle);background:var(--bg-panel);color:var(--text-muted)}.chip.active[_ngcontent-%COMP%]{background:var(--accent-soft);color:var(--accent);border-color:transparent}.card[_ngcontent-%COMP%]{background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--r-lg)}.card-pad[_ngcontent-%COMP%]{padding:14px}.row[_ngcontent-%COMP%]{display:flex;align-items:center}.header-row[_ngcontent-%COMP%]{padding:9px 14px;gap:14px;font-size:10.5px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600;border-bottom:1px solid var(--border-subtle)}.data-row[_ngcontent-%COMP%]{display:flex;gap:14px;padding:11px 14px;align-items:center;border-top:1px solid var(--border-subtle)}.data-row[_ngcontent-%COMP%]:hover{background:var(--bg-hover)}.project-name[_ngcontent-%COMP%]{font-size:12.5px}.num[_ngcontent-%COMP%]{width:70px;text-align:right;font-size:12px;font-variant-numeric:tabular-nums}.stacked-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:140px 1fr 70px;gap:12px;align-items:center;padding:6px 0;border-top:1px solid var(--border-subtle)}.stacked-row[_ngcontent-%COMP%]:first-of-type{border-top:none}.stacked-lbl[_ngcontent-%COMP%]{font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stacked-bars[_ngcontent-%COMP%]{display:flex;height:18px;border-radius:4px;overflow:hidden;gap:2px}.stacked-seg[_ngcontent-%COMP%]{height:100%;border-radius:3px}.stacked-total[_ngcontent-%COMP%]{text-align:right}.tool-chip[_ngcontent-%COMP%]{font-size:9.5px;background:var(--bg-canvas);color:var(--text-secondary);padding:1px 5px;border-radius:3px;white-space:nowrap}"],changeDetection:0})};export{A as Compare};
@@ -0,0 +1 @@
1
+ import{Aa as p,Va as t,Xa as s,ea as i,ka as a,pb as m,xa as c,ya as e,za as o,zb as d}from"./chunk-PDN6QYGJ.js";var l=class r{surface=m("This page");static \u0275fac=function(n){return new(n||r)};static \u0275cmp=a({type:r,selectors:[["app-pick-project-empty"]],inputs:{surface:[1,"surface"]},decls:11,vars:2,consts:[[1,"empty-wrap"],[1,"empty-card"],["name","folder",3,"size"],[1,"title"],[1,"sub"],[1,"hint","mono"]],template:function(n,x){n&1&&(e(0,"div",0)(1,"div",1),p(2,"app-icon",2),e(3,"div",3),t(4,"Pick a project"),o(),e(5,"div",4),t(6),o(),e(7,"div",5),t(8," Projects are auto-discovered from "),e(9,"span"),t(10,"~/.claude/projects/"),o()()()()),n&2&&(i(2),c("size",28),i(4),s(" ",x.surface()," is project-scoped. Choose a project in the picker above (top bar, next to the menu) to see its data here. "))},dependencies:[d],styles:["[_nghost-%COMP%]{display:flex;flex:1}.empty-wrap[_ngcontent-%COMP%]{flex:1;display:grid;place-items:center;padding:40px 20px}.empty-card[_ngcontent-%COMP%]{max-width:420px;text-align:center;padding:32px 28px;background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:14px}.empty-card[_ngcontent-%COMP%] app-icon[_ngcontent-%COMP%]{color:var(--text-muted);margin-bottom:12px}.empty-card[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:16px;font-weight:650;letter-spacing:-.01em;margin-bottom:6px}.empty-card[_ngcontent-%COMP%] .sub[_ngcontent-%COMP%]{color:var(--text-secondary);font-size:13px;line-height:1.5;margin-bottom:14px}.empty-card[_ngcontent-%COMP%] .hint[_ngcontent-%COMP%]{color:var(--text-muted);font-size:11px}.empty-card[_ngcontent-%COMP%] .hint[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:var(--node-spec)}"],changeDetection:0})};export{l as a};
@@ -0,0 +1,4 @@
1
+ import{f as D,i as E,k as O,m as w,n as _}from"./chunk-JTFXTIPE.js";var te;(function(t){function n(i){return typeof i=="string"}t.is=n})(te||(te={}));var W;(function(t){function n(i){return typeof i=="string"}t.is=n})(W||(W={}));var ne;(function(t){t.MIN_VALUE=-2147483648,t.MAX_VALUE=2147483647;function n(i){return typeof i=="number"&&t.MIN_VALUE<=i&&i<=t.MAX_VALUE}t.is=n})(ne||(ne={}));var C;(function(t){t.MIN_VALUE=0,t.MAX_VALUE=2147483647;function n(i){return typeof i=="number"&&t.MIN_VALUE<=i&&i<=t.MAX_VALUE}t.is=n})(C||(C={}));var x;(function(t){function n(r,e){return r===Number.MAX_VALUE&&(r=C.MAX_VALUE),e===Number.MAX_VALUE&&(e=C.MAX_VALUE),{line:r,character:e}}t.create=n;function i(r){let e=r;return u.objectLiteral(e)&&u.uinteger(e.line)&&u.uinteger(e.character)}t.is=i})(x||(x={}));var p;(function(t){function n(r,e,o,a){if(u.uinteger(r)&&u.uinteger(e)&&u.uinteger(o)&&u.uinteger(a))return{start:x.create(r,e),end:x.create(o,a)};if(x.is(r)&&x.is(e))return{start:r,end:e};throw new Error(`Range#create called with invalid arguments[${r}, ${e}, ${o}, ${a}]`)}t.create=n;function i(r){let e=r;return u.objectLiteral(e)&&x.is(e.start)&&x.is(e.end)}t.is=i})(p||(p={}));var V;(function(t){function n(r,e){return{uri:r,range:e}}t.create=n;function i(r){let e=r;return u.objectLiteral(e)&&p.is(e.range)&&(u.string(e.uri)||u.undefined(e.uri))}t.is=i})(V||(V={}));var re;(function(t){function n(r,e,o,a){return{targetUri:r,targetRange:e,targetSelectionRange:o,originSelectionRange:a}}t.create=n;function i(r){let e=r;return u.objectLiteral(e)&&p.is(e.targetRange)&&u.string(e.targetUri)&&p.is(e.targetSelectionRange)&&(p.is(e.originSelectionRange)||u.undefined(e.originSelectionRange))}t.is=i})(re||(re={}));var H;(function(t){function n(r,e,o,a){return{red:r,green:e,blue:o,alpha:a}}t.create=n;function i(r){let e=r;return u.objectLiteral(e)&&u.numberRange(e.red,0,1)&&u.numberRange(e.green,0,1)&&u.numberRange(e.blue,0,1)&&u.numberRange(e.alpha,0,1)}t.is=i})(H||(H={}));var ie;(function(t){function n(r,e){return{range:r,color:e}}t.create=n;function i(r){let e=r;return u.objectLiteral(e)&&p.is(e.range)&&H.is(e.color)}t.is=i})(ie||(ie={}));var oe;(function(t){function n(r,e,o){return{label:r,textEdit:e,additionalTextEdits:o}}t.create=n;function i(r){let e=r;return u.objectLiteral(e)&&u.string(e.label)&&(u.undefined(e.textEdit)||I.is(e))&&(u.undefined(e.additionalTextEdits)||u.typedArray(e.additionalTextEdits,I.is))}t.is=i})(oe||(oe={}));var j=(function(t){return t.Comment="comment",t.Imports="imports",t.Region="region",t})(j||{}),ue;(function(t){function n(r,e,o,a,s,f){let l={startLine:r,endLine:e};return u.defined(o)&&(l.startCharacter=o),u.defined(a)&&(l.endCharacter=a),u.defined(s)&&(l.kind=s),u.defined(f)&&(l.collapsedText=f),l}t.create=n;function i(r){let e=r;return u.objectLiteral(e)&&u.uinteger(e.startLine)&&u.uinteger(e.startLine)&&(u.undefined(e.startCharacter)||u.uinteger(e.startCharacter))&&(u.undefined(e.endCharacter)||u.uinteger(e.endCharacter))&&(u.undefined(e.kind)||u.string(e.kind))}t.is=i})(ue||(ue={}));var S;(function(t){function n(r,e){return{location:r,message:e}}t.create=n;function i(r){let e=r;return u.defined(e)&&V.is(e.location)&&u.string(e.message)}t.is=i})(S||(S={}));var M=(function(t){return t.Error=1,t.Warning=2,t.Information=3,t.Hint=4,t})(M||{});var ae;(function(t){function n(i){let r=i;return u.objectLiteral(r)&&u.string(r.href)}t.is=n})(ae||(ae={}));var P;(function(t){function n(r,e,o,a,s,f){let l={range:r,message:e};return u.defined(o)&&(l.severity=o),u.defined(a)&&(l.code=a),u.defined(s)&&(l.source=s),u.defined(f)&&(l.relatedInformation=f),l}t.create=n;function i(r){var e;let o=r;return u.defined(o)&&p.is(o.range)&&u.string(o.message)&&(u.number(o.severity)||u.undefined(o.severity))&&(u.integer(o.code)||u.string(o.code)||u.undefined(o.code))&&(u.undefined(o.codeDescription)||u.string((e=o.codeDescription)===null||e===void 0?void 0:e.href))&&(u.string(o.source)||u.undefined(o.source))&&(u.undefined(o.relatedInformation)||u.typedArray(o.relatedInformation,S.is))}t.is=i})(P||(P={}));var L;(function(t){function n(r,e,...o){let a={title:r,command:e};return u.defined(o)&&o.length>0&&(a.arguments=o),a}t.create=n;function i(r){let e=r;return u.defined(e)&&u.string(e.title)&&u.string(e.command)}t.is=i})(L||(L={}));var I;(function(t){function n(o,a){return{range:o,newText:a}}t.replace=n;function i(o,a){return{range:{start:o,end:o},newText:a}}t.insert=i;function r(o){return{range:o,newText:""}}t.del=r;function e(o){let a=o;return u.objectLiteral(a)&&u.string(a.newText)&&p.is(a.range)}t.is=e})(I||(I={}));var X;(function(t){function n(r,e,o){let a={label:r};return e!==void 0&&(a.needsConfirmation=e),o!==void 0&&(a.description=o),a}t.create=n;function i(r){let e=r;return u.objectLiteral(e)&&u.string(e.label)&&(u.boolean(e.needsConfirmation)||e.needsConfirmation===void 0)&&(u.string(e.description)||e.description===void 0)}t.is=i})(X||(X={}));var R;(function(t){function n(i){let r=i;return u.string(r)}t.is=n})(R||(R={}));var se;(function(t){function n(o,a,s){return{range:o,newText:a,annotationId:s}}t.replace=n;function i(o,a,s){return{range:{start:o,end:o},newText:a,annotationId:s}}t.insert=i;function r(o,a){return{range:o,newText:"",annotationId:a}}t.del=r;function e(o){let a=o;return I.is(a)&&(X.is(a.annotationId)||R.is(a.annotationId))}t.is=e})(se||(se={}));var $;(function(t){function n(r,e){return{textDocument:r,edits:e}}t.create=n;function i(r){let e=r;return u.defined(e)&&G.is(e.textDocument)&&Array.isArray(e.edits)}t.is=i})($||($={}));var z;(function(t){function n(r,e,o){let a={kind:"create",uri:r};return e!==void 0&&(e.overwrite!==void 0||e.ignoreIfExists!==void 0)&&(a.options=e),o!==void 0&&(a.annotationId=o),a}t.create=n;function i(r){let e=r;return e&&e.kind==="create"&&u.string(e.uri)&&(e.options===void 0||(e.options.overwrite===void 0||u.boolean(e.options.overwrite))&&(e.options.ignoreIfExists===void 0||u.boolean(e.options.ignoreIfExists)))&&(e.annotationId===void 0||R.is(e.annotationId))}t.is=i})(z||(z={}));var B;(function(t){function n(r,e,o,a){let s={kind:"rename",oldUri:r,newUri:e};return o!==void 0&&(o.overwrite!==void 0||o.ignoreIfExists!==void 0)&&(s.options=o),a!==void 0&&(s.annotationId=a),s}t.create=n;function i(r){let e=r;return e&&e.kind==="rename"&&u.string(e.oldUri)&&u.string(e.newUri)&&(e.options===void 0||(e.options.overwrite===void 0||u.boolean(e.options.overwrite))&&(e.options.ignoreIfExists===void 0||u.boolean(e.options.ignoreIfExists)))&&(e.annotationId===void 0||R.is(e.annotationId))}t.is=i})(B||(B={}));var q;(function(t){function n(r,e,o){let a={kind:"delete",uri:r};return e!==void 0&&(e.recursive!==void 0||e.ignoreIfNotExists!==void 0)&&(a.options=e),o!==void 0&&(a.annotationId=o),a}t.create=n;function i(r){let e=r;return e&&e.kind==="delete"&&u.string(e.uri)&&(e.options===void 0||(e.options.recursive===void 0||u.boolean(e.options.recursive))&&(e.options.ignoreIfNotExists===void 0||u.boolean(e.options.ignoreIfNotExists)))&&(e.annotationId===void 0||R.is(e.annotationId))}t.is=i})(q||(q={}));var Q;(function(t){function n(i){let r=i;return r&&(r.changes!==void 0||r.documentChanges!==void 0)&&(r.documentChanges===void 0||r.documentChanges.every(e=>u.string(e.kind)?z.is(e)||B.is(e)||q.is(e):$.is(e)))}t.is=n})(Q||(Q={}));var ce;(function(t){function n(r){return{uri:r}}t.create=n;function i(r){let e=r;return u.defined(e)&&u.string(e.uri)}t.is=i})(ce||(ce={}));var de;(function(t){function n(r,e){return{uri:r,version:e}}t.create=n;function i(r){let e=r;return u.defined(e)&&u.string(e.uri)&&u.integer(e.version)}t.is=i})(de||(de={}));var G;(function(t){function n(r,e){return{uri:r,version:e}}t.create=n;function i(r){let e=r;return u.defined(e)&&u.string(e.uri)&&(e.version===null||u.integer(e.version))}t.is=i})(G||(G={}));var fe;(function(t){function n(r,e,o,a){return{uri:r,languageId:e,version:o,text:a}}t.create=n;function i(r){let e=r;return u.defined(e)&&u.string(e.uri)&&u.string(e.languageId)&&u.integer(e.version)&&u.string(e.text)}t.is=i})(fe||(fe={}));var J;(function(t){t.PlainText="plaintext",t.Markdown="markdown";function n(i){let r=i;return r===t.PlainText||r===t.Markdown}t.is=n})(J||(J={}));var A;(function(t){function n(i){let r=i;return u.objectLiteral(i)&&J.is(r.kind)&&u.string(r.value)}t.is=n})(A||(A={}));var h=(function(t){return t.Text=1,t.Method=2,t.Function=3,t.Constructor=4,t.Field=5,t.Variable=6,t.Class=7,t.Interface=8,t.Module=9,t.Property=10,t.Unit=11,t.Value=12,t.Enum=13,t.Keyword=14,t.Snippet=15,t.Color=16,t.File=17,t.Reference=18,t.Folder=19,t.EnumMember=20,t.Constant=21,t.Struct=22,t.Event=23,t.Operator=24,t.TypeParameter=25,t})(h||{}),ee=(function(t){return t.PlainText=1,t.Snippet=2,t})(ee||{});var le;(function(t){function n(r,e,o){return{newText:r,insert:e,replace:o}}t.create=n;function i(r){let e=r;return e&&u.string(e.newText)&&p.is(e.insert)&&p.is(e.replace)}t.is=i})(le||(le={}));var ge;(function(t){function n(i){let r=i;return r&&(u.string(r.detail)||r.detail===void 0)&&(u.string(r.description)||r.description===void 0)}t.is=n})(ge||(ge={}));var pe;(function(t){function n(i){return{label:i}}t.create=n})(pe||(pe={}));var he;(function(t){function n(i,r){return{items:i||[],isIncomplete:!!r}}t.create=n})(he||(he={}));var y;(function(t){function n(r){return r.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}t.fromPlainText=n;function i(r){let e=r;return u.string(e)||u.objectLiteral(e)&&u.string(e.language)&&u.string(e.value)}t.is=i})(y||(y={}));var me;(function(t){function n(i){let r=i;return!!r&&u.objectLiteral(r)&&(A.is(r.contents)||y.is(r.contents)||u.typedArray(r.contents,y.is))&&(i.range===void 0||p.is(i.range))}t.is=n})(me||(me={}));var ve;(function(t){function n(i,r){return r?{label:i,documentation:r}:{label:i}}t.create=n})(ve||(ve={}));var be;(function(t){function n(i,r,...e){let o={label:i};return u.defined(r)&&(o.documentation=r),u.defined(e)?o.parameters=e:o.parameters=[],o}t.create=n})(be||(be={}));var N=(function(t){return t.Text=1,t.Read=2,t.Write=3,t})(N||{}),_e;(function(t){function n(i,r){let e={range:i};return u.number(r)&&(e.kind=r),e}t.create=n})(_e||(_e={}));var m=(function(t){return t.File=1,t.Module=2,t.Namespace=3,t.Package=4,t.Class=5,t.Method=6,t.Property=7,t.Field=8,t.Constructor=9,t.Enum=10,t.Interface=11,t.Function=12,t.Variable=13,t.Constant=14,t.String=15,t.Number=16,t.Boolean=17,t.Array=18,t.Object=19,t.Key=20,t.Null=21,t.EnumMember=22,t.Struct=23,t.Event=24,t.Operator=25,t.TypeParameter=26,t})(m||{});var xe;(function(t){function n(i,r,e,o,a){let s={name:i,kind:r,location:{uri:o,range:e}};return a&&(s.containerName=a),s}t.create=n})(xe||(xe={}));var we;(function(t){function n(i,r,e,o){return o!==void 0?{name:i,kind:r,location:{uri:e,range:o}}:{name:i,kind:r,location:{uri:e}}}t.create=n})(we||(we={}));var ke;(function(t){function n(r,e,o,a,s,f){let l={name:r,detail:e,kind:o,range:a,selectionRange:s};return f!==void 0&&(l.children=f),l}t.create=n;function i(r){let e=r;return e&&u.string(e.name)&&u.number(e.kind)&&p.is(e.range)&&p.is(e.selectionRange)&&(e.detail===void 0||u.string(e.detail))&&(e.deprecated===void 0||u.boolean(e.deprecated))&&(e.children===void 0||Array.isArray(e.children))&&(e.tags===void 0||Array.isArray(e.tags))}t.is=i})(ke||(ke={}));var Y=(function(t){return t.Invoked=1,t.Automatic=2,t})(Y||{}),Ee;(function(t){function n(r,e,o){let a={diagnostics:r};return e!=null&&(a.only=e),o!=null&&(a.triggerKind=o),a}t.create=n;function i(r){let e=r;return u.defined(e)&&u.typedArray(e.diagnostics,P.is)&&(e.only===void 0||u.typedArray(e.only,u.string))&&(e.triggerKind===void 0||e.triggerKind===Y.Invoked||e.triggerKind===Y.Automatic)}t.is=i})(Ee||(Ee={}));var Le;(function(t){function n(r,e,o){let a={title:r},s=!0;return typeof e=="string"?(s=!1,a.kind=e):L.is(e)?a.command=e:a.edit=e,s&&o!==void 0&&(a.kind=o),a}t.create=n;function i(r){let e=r;return e&&u.string(e.title)&&(e.diagnostics===void 0||u.typedArray(e.diagnostics,P.is))&&(e.kind===void 0||u.string(e.kind))&&(e.edit!==void 0||e.command!==void 0)&&(e.command===void 0||L.is(e.command))&&(e.isPreferred===void 0||u.boolean(e.isPreferred))&&(e.edit===void 0||Q.is(e.edit))}t.is=i})(Le||(Le={}));var Ie;(function(t){function n(r,e){let o={range:r};return u.defined(e)&&(o.data=e),o}t.create=n;function i(r){let e=r;return u.defined(e)&&p.is(e.range)&&(u.undefined(e.command)||L.is(e.command))}t.is=i})(Ie||(Ie={}));var Re;(function(t){function n(r,e){return{tabSize:r,insertSpaces:e}}t.create=n;function i(r){let e=r;return u.defined(e)&&u.uinteger(e.tabSize)&&u.boolean(e.insertSpaces)}t.is=i})(Re||(Re={}));var Me;(function(t){function n(r,e,o){return{range:r,target:e,data:o}}t.create=n;function i(r){let e=r;return u.defined(e)&&p.is(e.range)&&(u.undefined(e.target)||u.string(e.target))}t.is=i})(Me||(Me={}));var Ae;(function(t){function n(r,e){return{range:r,parent:e}}t.create=n;function i(r){let e=r;return u.objectLiteral(e)&&p.is(e.range)&&(e.parent===void 0||t.is(e.parent))}t.is=i})(Ae||(Ae={}));var je;(function(t){function n(i){let r=i;return u.objectLiteral(r)&&(r.resultId===void 0||typeof r.resultId=="string")&&Array.isArray(r.data)&&(r.data.length===0||typeof r.data[0]=="number")}t.is=n})(je||(je={}));var Ne;(function(t){function n(r,e){return{range:r,text:e}}t.create=n;function i(r){let e=r;return e!=null&&p.is(e.range)&&u.string(e.text)}t.is=i})(Ne||(Ne={}));var Fe;(function(t){function n(r,e,o){return{range:r,variableName:e,caseSensitiveLookup:o}}t.create=n;function i(r){let e=r;return e!=null&&p.is(e.range)&&u.boolean(e.caseSensitiveLookup)&&(u.string(e.variableName)||e.variableName===void 0)}t.is=i})(Fe||(Fe={}));var Ce;(function(t){function n(r,e){return{range:r,expression:e}}t.create=n;function i(r){let e=r;return e!=null&&p.is(e.range)&&(u.string(e.expression)||e.expression===void 0)}t.is=i})(Ce||(Ce={}));var Ve;(function(t){function n(r,e){return{frameId:r,stoppedLocation:e}}t.create=n;function i(r){let e=r;return u.defined(e)&&p.is(r.stoppedLocation)}t.is=i})(Ve||(Ve={}));var Z;(function(t){t.Type=1,t.Parameter=2;function n(i){return i===1||i===2}t.is=n})(Z||(Z={}));var T;(function(t){function n(r){return{value:r}}t.create=n;function i(r){let e=r;return u.objectLiteral(e)&&(e.tooltip===void 0||u.string(e.tooltip)||A.is(e.tooltip))&&(e.location===void 0||V.is(e.location))&&(e.command===void 0||L.is(e.command))}t.is=i})(T||(T={}));var Pe;(function(t){function n(r,e,o){let a={position:r,label:e};return o!==void 0&&(a.kind=o),a}t.create=n;function i(r){let e=r;return u.objectLiteral(e)&&x.is(e.position)&&(u.string(e.label)||u.typedArray(e.label,T.is))&&(e.kind===void 0||Z.is(e.kind))&&e.textEdits===void 0||u.typedArray(e.textEdits,I.is)&&(e.tooltip===void 0||u.string(e.tooltip)||A.is(e.tooltip))&&(e.paddingLeft===void 0||u.boolean(e.paddingLeft))&&(e.paddingRight===void 0||u.boolean(e.paddingRight))}t.is=i})(Pe||(Pe={}));var ye;(function(t){function n(i){return{kind:"snippet",value:i}}t.createSnippet=n})(ye||(ye={}));var Ue;(function(t){function n(i,r,e,o){return{insertText:i,filterText:r,range:e,command:o}}t.create=n})(Ue||(Ue={}));var De;(function(t){function n(i){return{items:i}}t.create=n})(De||(De={}));var Oe;(function(t){function n(i,r){return{range:i,text:r}}t.create=n})(Oe||(Oe={}));var We;(function(t){function n(i,r){return{triggerKind:i,selectedCompletionInfo:r}}t.create=n})(We||(We={}));var He;(function(t){function n(i){let r=i;return u.objectLiteral(r)&&W.is(r.uri)&&u.string(r.name)}t.is=n})(He||(He={}));var Se;(function(t){function n(o,a,s,f){return new K(o,a,s,f)}t.create=n;function i(o){let a=o;return!!(u.defined(a)&&u.string(a.uri)&&(u.undefined(a.languageId)||u.string(a.languageId))&&u.uinteger(a.lineCount)&&u.func(a.getText)&&u.func(a.positionAt)&&u.func(a.offsetAt))}t.is=i;function r(o,a){let s=o.getText(),f=e(a,(d,g)=>{let b=d.range.start.line-g.range.start.line;return b===0?d.range.start.character-g.range.start.character:b}),l=s.length;for(let d=f.length-1;d>=0;d--){let g=f[d],b=o.offsetAt(g.range.start),c=o.offsetAt(g.range.end);if(c<=l)s=s.substring(0,b)+g.newText+s.substring(c,s.length);else throw new Error("Overlapping edit");l=b}return s}t.applyEdits=r;function e(o,a){if(o.length<=1)return o;let s=o.length/2|0,f=o.slice(0,s),l=o.slice(s);e(f,a),e(l,a);let d=0,g=0,b=0;for(;d<f.length&&g<l.length;)a(f[d],l[g])<=0?o[b++]=f[d++]:o[b++]=l[g++];for(;d<f.length;)o[b++]=f[d++];for(;g<l.length;)o[b++]=l[g++];return o}})(Se||(Se={}));var K=class{constructor(n,i,r,e){this._uri=n,this._languageId=i,this._version=r,this._content=e,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(n){if(n){let i=this.offsetAt(n.start),r=this.offsetAt(n.end);return this._content.substring(i,r)}return this._content}update(n,i){this._content=n.text,this._version=i,this._lineOffsets=void 0}getLineOffsets(){if(this._lineOffsets===void 0){let n=[],i=this._content,r=!0;for(let e=0;e<i.length;e++){r&&(n.push(e),r=!1);let o=i.charAt(e);r=o==="\r"||o===`
2
+ `,o==="\r"&&e+1<i.length&&i.charAt(e+1)===`
3
+ `&&e++}r&&i.length>0&&n.push(i.length),this._lineOffsets=n}return this._lineOffsets}positionAt(n){n=Math.max(Math.min(n,this._content.length),0);let i=this.getLineOffsets(),r=0,e=i.length;if(e===0)return x.create(0,n);for(;r<e;){let a=Math.floor((r+e)/2);i[a]>n?e=a:r=a+1}let o=r-1;return x.create(o,n-i[o])}offsetAt(n){let i=this.getLineOffsets();if(n.line>=i.length)return this._content.length;if(n.line<0)return 0;let r=i[n.line],e=n.line+1<i.length?i[n.line+1]:this._content.length;return Math.max(Math.min(r+n.character,e),r)}get lineCount(){return this.getLineOffsets().length}},u;(function(t){let n=Object.prototype.toString;function i(c){return typeof c<"u"}t.defined=i;function r(c){return typeof c>"u"}t.undefined=r;function e(c){return c===!0||c===!1}t.boolean=e;function o(c){return n.call(c)==="[object String]"}t.string=o;function a(c){return n.call(c)==="[object Number]"}t.number=a;function s(c,U,st){return n.call(c)==="[object Number]"&&U<=c&&c<=st}t.numberRange=s;function f(c){return n.call(c)==="[object Number]"&&-2147483648<=c&&c<=2147483647}t.integer=f;function l(c){return n.call(c)==="[object Number]"&&0<=c&&c<=2147483647}t.uinteger=l;function d(c){return n.call(c)==="[object Function]"}t.func=d;function g(c){return c!==null&&typeof c=="object"}t.objectLiteral=g;function b(c,U){return Array.isArray(c)&&c.every(U)}t.typedArray=b})(u||(u={}));var Xe=class{constructor(n,i,r){this._languageId=n,this._worker=i,this._disposables=[],this._listener=Object.create(null);let e=a=>{let s=a.getLanguageId();if(s!==this._languageId)return;let f;this._listener[a.uri.toString()]=a.onDidChangeContent(()=>{window.clearTimeout(f),f=window.setTimeout(()=>this._doValidate(a.uri,s),500)}),this._doValidate(a.uri,s)},o=a=>{w.setModelMarkers(a,this._languageId,[]);let s=a.uri.toString(),f=this._listener[s];f&&(f.dispose(),delete this._listener[s])};this._disposables.push(w.onDidCreateModel(e)),this._disposables.push(w.onWillDisposeModel(o)),this._disposables.push(w.onDidChangeModelLanguage(a=>{o(a.model),e(a.model)})),this._disposables.push(r(a=>{w.getModels().forEach(s=>{s.getLanguageId()===this._languageId&&(o(s),e(s))})})),this._disposables.push({dispose:()=>{w.getModels().forEach(o);for(let a in this._listener)this._listener[a].dispose()}}),w.getModels().forEach(e)}dispose(){this._disposables.forEach(n=>n&&n.dispose()),this._disposables.length=0}_doValidate(n,i){this._worker(n).then(r=>r.doValidation(n.toString())).then(r=>{let e=r.map(a=>dt(n,a)),o=w.getModel(n);o&&o.getLanguageId()===i&&w.setModelMarkers(o,i,e)}).then(void 0,r=>{console.error(r)})}};function ct(t){switch(t){case M.Error:return E.Error;case M.Warning:return E.Warning;case M.Information:return E.Info;case M.Hint:return E.Hint;default:return E.Info}}function dt(t,n){let i=typeof n.code=="number"?String(n.code):n.code;return{severity:ct(n.severity),startLineNumber:n.range.start.line+1,startColumn:n.range.start.character+1,endLineNumber:n.range.end.line+1,endColumn:n.range.end.character+1,message:n.message,code:i,source:n.source}}var $e=class{constructor(n,i){this._worker=n,this._triggerCharacters=i}get triggerCharacters(){return this._triggerCharacters}provideCompletionItems(n,i,r,e){let o=n.uri;return this._worker(o).then(a=>a.doComplete(o.toString(),k(i))).then(a=>{if(!a)return;let s=n.getWordUntilPosition(i),f=new D(i.lineNumber,s.startColumn,i.lineNumber,s.endColumn),l=a.items.map(d=>{let g={label:d.label,insertText:d.insertText||d.label,sortText:d.sortText,filterText:d.filterText,documentation:d.documentation,detail:d.detail,command:gt(d.command),range:f,kind:lt(d.kind)};return d.textEdit&&(ft(d.textEdit)?g.range={insert:v(d.textEdit.insert),replace:v(d.textEdit.replace)}:g.range=v(d.textEdit.range),g.insertText=d.textEdit.newText),d.additionalTextEdits&&(g.additionalTextEdits=d.additionalTextEdits.map(F)),d.insertTextFormat===ee.Snippet&&(g.insertTextRules=_.CompletionItemInsertTextRule.InsertAsSnippet),g});return{isIncomplete:a.isIncomplete,suggestions:l}})}};function k(t){if(t)return{character:t.column-1,line:t.lineNumber-1}}function rt(t){if(t)return{start:{line:t.startLineNumber-1,character:t.startColumn-1},end:{line:t.endLineNumber-1,character:t.endColumn-1}}}function v(t){if(t)return new D(t.start.line+1,t.start.character+1,t.end.line+1,t.end.character+1)}function ft(t){return typeof t.insert<"u"&&typeof t.replace<"u"}function lt(t){let n=_.CompletionItemKind;switch(t){case h.Text:return n.Text;case h.Method:return n.Method;case h.Function:return n.Function;case h.Constructor:return n.Constructor;case h.Field:return n.Field;case h.Variable:return n.Variable;case h.Class:return n.Class;case h.Interface:return n.Interface;case h.Module:return n.Module;case h.Property:return n.Property;case h.Unit:return n.Unit;case h.Value:return n.Value;case h.Enum:return n.Enum;case h.Keyword:return n.Keyword;case h.Snippet:return n.Snippet;case h.Color:return n.Color;case h.File:return n.File;case h.Reference:return n.Reference}return n.Property}function F(t){if(t)return{range:v(t.range),text:t.newText}}function gt(t){return t&&t.command==="editor.action.triggerSuggest"?{id:t.command,title:t.title,arguments:t.arguments}:void 0}var ze=class{constructor(n){this._worker=n}provideHover(n,i,r){let e=n.uri;return this._worker(e).then(o=>o.doHover(e.toString(),k(i))).then(o=>{if(o)return{range:v(o.range),contents:ht(o.contents)}})}};function pt(t){return t&&typeof t=="object"&&typeof t.kind=="string"}function Be(t){return typeof t=="string"?{value:t}:pt(t)?t.kind==="plaintext"?{value:t.value.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}:{value:t.value}:{value:"```"+t.language+`
4
+ `+t.value+"\n```\n"}}function ht(t){if(t)return Array.isArray(t)?t.map(Be):[Be(t)]}var qe=class{constructor(n){this._worker=n}provideDocumentHighlights(n,i,r){let e=n.uri;return this._worker(e).then(o=>o.findDocumentHighlights(e.toString(),k(i))).then(o=>{if(o)return o.map(a=>({range:v(a.range),kind:mt(a.kind)}))})}};function mt(t){switch(t){case N.Read:return _.DocumentHighlightKind.Read;case N.Write:return _.DocumentHighlightKind.Write;case N.Text:return _.DocumentHighlightKind.Text}return _.DocumentHighlightKind.Text}var Qe=class{constructor(n){this._worker=n}provideDefinition(n,i,r){let e=n.uri;return this._worker(e).then(o=>o.findDefinition(e.toString(),k(i))).then(o=>{if(o)return[it(o)]})}};function it(t){return{uri:O.parse(t.uri),range:v(t.range)}}var Ge=class{constructor(n){this._worker=n}provideReferences(n,i,r,e){let o=n.uri;return this._worker(o).then(a=>a.findReferences(o.toString(),k(i))).then(a=>{if(a)return a.map(it)})}},Je=class{constructor(n){this._worker=n}provideRenameEdits(n,i,r,e){let o=n.uri;return this._worker(o).then(a=>a.doRename(o.toString(),k(i),r)).then(a=>vt(a))}};function vt(t){if(!t||!t.changes)return;let n=[];for(let i in t.changes){let r=O.parse(i);for(let e of t.changes[i])n.push({resource:r,versionId:void 0,textEdit:{range:v(e.range),text:e.newText}})}return{edits:n}}var Ye=class{constructor(n){this._worker=n}provideDocumentSymbols(n,i){let r=n.uri;return this._worker(r).then(e=>e.findDocumentSymbols(r.toString())).then(e=>{if(e)return e.map(o=>bt(o)?ot(o):{name:o.name,detail:"",containerName:o.containerName,kind:ut(o.kind),range:v(o.location.range),selectionRange:v(o.location.range),tags:[]})})}};function bt(t){return"children"in t}function ot(t){return{name:t.name,detail:t.detail??"",kind:ut(t.kind),range:v(t.range),selectionRange:v(t.selectionRange),tags:t.tags??[],children:(t.children??[]).map(n=>ot(n))}}function ut(t){let n=_.SymbolKind;switch(t){case m.File:return n.File;case m.Module:return n.Module;case m.Namespace:return n.Namespace;case m.Package:return n.Package;case m.Class:return n.Class;case m.Method:return n.Method;case m.Property:return n.Property;case m.Field:return n.Field;case m.Constructor:return n.Constructor;case m.Enum:return n.Enum;case m.Interface:return n.Interface;case m.Function:return n.Function;case m.Variable:return n.Variable;case m.Constant:return n.Constant;case m.String:return n.String;case m.Number:return n.Number;case m.Boolean:return n.Boolean;case m.Array:return n.Array}return n.Function}var Ze=class{constructor(n){this._worker=n}provideLinks(n,i){let r=n.uri;return this._worker(r).then(e=>e.findDocumentLinks(r.toString())).then(e=>{if(e)return{links:e.map(o=>({range:v(o.range),url:o.target}))}})}},Te=class{constructor(n){this._worker=n}provideDocumentFormattingEdits(n,i,r){let e=n.uri;return this._worker(e).then(o=>o.format(e.toString(),null,at(i)).then(a=>{if(!(!a||a.length===0))return a.map(F)}))}},Ke=class{constructor(n){this._worker=n,this.canFormatMultipleRanges=!1}provideDocumentRangeFormattingEdits(n,i,r,e){let o=n.uri;return this._worker(o).then(a=>a.format(o.toString(),rt(i),at(r)).then(s=>{if(!(!s||s.length===0))return s.map(F)}))}};function at(t){return{tabSize:t.tabSize,insertSpaces:t.insertSpaces}}var et=class{constructor(n){this._worker=n}provideDocumentColors(n,i){let r=n.uri;return this._worker(r).then(e=>e.findDocumentColors(r.toString())).then(e=>{if(e)return e.map(o=>({color:o.color,range:v(o.range)}))})}provideColorPresentations(n,i,r){let e=n.uri;return this._worker(e).then(o=>o.getColorPresentations(e.toString(),i.color,rt(i.range))).then(o=>{if(o)return o.map(a=>{let s={label:a.label};return a.textEdit&&(s.textEdit=F(a.textEdit)),a.additionalTextEdits&&(s.additionalTextEdits=a.additionalTextEdits.map(F)),s})})}},tt=class{constructor(n){this._worker=n}provideFoldingRanges(n,i,r){let e=n.uri;return this._worker(e).then(o=>o.getFoldingRanges(e.toString(),i)).then(o=>{if(o)return o.map(a=>{let s={start:a.startLine+1,end:a.endLine+1};return typeof a.kind<"u"&&(s.kind=_t(a.kind)),s})})}};function _t(t){switch(t){case j.Comment:return _.FoldingRangeKind.Comment;case j.Imports:return _.FoldingRangeKind.Imports;case j.Region:return _.FoldingRangeKind.Region}}var nt=class{constructor(n){this._worker=n}provideSelectionRanges(n,i,r){let e=n.uri;return this._worker(e).then(o=>o.getSelectionRanges(e.toString(),i.map(k))).then(o=>{if(o)return o.map(a=>{let s=[];for(;a;)s.push({range:v(a.range)}),a=a.parent;return s})})}};export{Xe as a,$e as b,k as c,rt as d,v as e,F as f,ze as g,qe as h,Qe as i,Ge as j,Je as k,Ye as l,Ze as m,Te as n,Ke as o,et as p,tt as q,nt as r};
@@ -0,0 +1 @@
1
+ import{a as oe}from"./chunk-R5W2MDZN.js";import{a as ie}from"./chunk-WDU3WICG.js";import{b as ae}from"./chunk-HZA6NEAB.js";import{a as ne}from"./chunk-2GBEK2GM.js";import{a as te}from"./chunk-SUZYBYDW.js";import{c as K}from"./chunk-GR72OOCN.js";import{c as J}from"./chunk-SHPTC4RL.js";import{a as Z}from"./chunk-7RNS77UP.js";import{a as Y}from"./chunk-E44X4RH2.js";import{Aa as p,Ga as y,I as N,Ia as b,Ka as c,M as h,N as v,O as f,P as C,Ta as I,Ua as R,Va as l,W as P,Wa as m,Xa as z,Za as W,bb as X,ea as o,ka as q,lb as w,qa as T,ra as g,sa as u,ua as G,va as k,wa as S,xa as x,ya as i,za as a,zb as ee}from"./chunk-PDN6QYGJ.js";import{a as A,b as U}from"./chunk-Q7L6LLAK.js";var de=()=>[1,2,3,4],pe=(t,n)=>n.node.id,L=(t,n)=>n.id;function se(t,n){t&1&&p(0,"app-pick-project-empty",0)}function ce(t,n){if(t&1){let e=y();i(0,"button",19),b("click",function(){let d=h(e).$implicit,s=c(2);return v(s.toggleFilter(d))}),p(1,"span",20),l(2),i(3,"span",21),l(4),a()()}if(t&2){let e=n.$implicit,r=c(2);I("--chip-color",r.chipColor(e)),R("is-active",r.isFilterActive(e)),o(),T("data-kind",e),o(),z(" ",r.kindLabel(e)," "),o(2),m(r.countFor(e))}}function me(t,n){t&1&&p(0,"span",12)}function ge(t,n){if(t&1){let e=y();i(0,"button",23),b("click",function(){let d=h(e).$implicit,s=c(3);return v(s.pickResult(d.node))}),p(1,"span",24),i(2,"span",25),l(3),a(),i(4,"span",26),l(5),a(),i(6,"span",27),l(7),a()()}if(t&2){let e=n.$implicit,r=c(3);o(),R("is-spec",e.node.kind==="spec")("is-route",e.node.kind==="route")("is-test",e.node.kind==="test"),o(2),m(e.node.name),o(2),m(e.node.kind),o(2),m(r.shortPath(e.node.filePath))}}function ue(t,n){if(t&1&&(i(0,"div",13),k(1,ge,8,9,"button",22,pe),a()),t&2){let e=c(2);o(),S(e.searchResults.state().data.results)}}function _e(t,n){if(t&1&&(i(0,"p",28),l(1),a()),t&2){let e=n;o(),W("",e.nodeCount.toLocaleString()," nodes \xB7 ",e.edgeCount.toLocaleString()," edges \xB7 ",e.fileCount.toLocaleString()," files")}}function xe(t,n){if(t&1&&(i(0,"div",17)(1,"h3"),l(2,"Explore the graph"),a(),i(3,"p"),l(4,"Search for a function, method or class to start. The graph renders the symbol with its callers, callees and any linked specs."),a(),g(5,_e,2,3,"p",28),a()),t&2){let e,r=c(2);o(5),u((e=r.status.state().data)?5:-1,e)}}function he(t,n){t&1&&(i(0,"div",17)(1,"p"),l(2,"Loading\u2026"),a()())}function ve(t,n){if(t&1&&(i(0,"div",17)(1,"h3"),l(2,"Couldn't load that symbol"),a(),i(3,"p"),l(4),a()()),t&2){let e=c(2);o(4),m(e.nodeDetail.state().error)}}function fe(t,n){if(t&1&&(i(0,"div",17)(1,"p"),l(2),a()()),t&2){let e=c(2);o(2),z('No match for "',e.selectedSymbol(),'".')}}function Ce(t,n){if(t&1&&(i(0,"div",32),p(1,"span",42),i(2,"span",43),l(3),a()()),t&2){let e=n.$implicit;o(),T("data-kind",e),o(2),m(e)}}function be(t,n){if(t&1){let e=y();i(0,"app-graph-canvas",29),b("nodeClick",function(d){h(e);let s=c(2);return v(s.pickFromCanvas(d))}),a(),i(1,"div",30)(2,"div",31),k(3,Ce,4,2,"div",32,G),a(),p(5,"div",33),i(6,"div",34)(7,"div",35),f(),i(8,"svg",36),p(9,"line",37),a(),C(),i(10,"span",38),l(11,"implements"),a()(),i(12,"div",35),f(),i(13,"svg",36),p(14,"line",39),a(),C(),i(15,"span",38),l(16,"tests"),a()(),i(17,"div",35),f(),i(18,"svg",36),p(19,"line",40),a(),C(),i(20,"span",38),l(21,"calls"),a()(),i(22,"div",35),f(),i(23,"svg",36),p(24,"line",41),a(),C(),i(25,"span",38),l(26,"synth"),a()()()()}if(t&2){let e=c(2);x("nodes",e.visibleNodes())("edges",e.visibleEdges())("selectedId",e.selectedDetail().id)("fitKey",e.fitKey())("hiddenIds",e.hiddenIds()),o(3),S(e.kindKeys)}}function ye(t,n){if(t&1&&(i(0,"span",50),l(1),a()),t&2){let e=c();o(),m(e.startLine?"L"+e.startLine:"")}}function ke(t,n){if(t&1&&(i(0,"div",58)(1,"div",60),l(2,"Signature"),a(),i(3,"pre",61),l(4),a()()),t&2){let e=c();o(4),m(e.signature)}}function Se(t,n){if(t&1&&(i(0,"div",58)(1,"div",60),l(2,"Docstring"),a(),i(3,"p",62),l(4),a()()),t&2){let e=c();o(4),m(e.docstring)}}function we(t,n){if(t&1&&(i(0,"span",67),l(1),a()),t&2){let e=c().$implicit;o(),m(e.specTitle)}}function Me(t,n){if(t&1&&(i(0,"div",64),p(1,"app-state-pill",65),i(2,"span",66),l(3),a(),g(4,we,2,1,"span",67),a()),t&2){let e=n.$implicit;o(),x("state",e.state),o(2),m(e.specId),o(),u(e.specTitle?4:-1)}}function Ee(t,n){if(t&1&&(i(0,"div",58)(1,"div",60),l(2,"Linked specs "),i(3,"span",63),l(4),a()(),k(5,Me,5,3,"div",64,L),a()),t&2){let e=c();o(4),m(e.linkedSpecs.length),o(),S(e.linkedSpecs)}}function Pe(t,n){if(t&1){let e=y();i(0,"button",70),b("click",function(){let d=h(e).$implicit,s=c(5);return v(s.pickResult(d))}),p(1,"app-icon",71),i(2,"span",66),l(3),a(),i(4,"span",72),l(5),a()()}if(t&2){let e=n.$implicit,r=c(5);o(),x("size",12),o(2),m(e.name),o(2),m(r.fileName(e.filePath))}}function Oe(t,n){if(t&1&&k(0,Pe,6,3,"button",69,L),t&2){let e=c(2);S(e.callers)}}function Te(t,n){t&1&&(i(0,"div",68),l(1,"No callers"),a())}function Ge(t,n){if(t&1){let e=y();i(0,"button",70),b("click",function(){let d=h(e).$implicit,s=c(5);return v(s.pickResult(d))}),p(1,"app-icon",71),i(2,"span",66),l(3),a(),i(4,"span",72),l(5),a()()}if(t&2){let e=n.$implicit,r=c(5);o(),x("size",12),o(2),m(e.name),o(2),m(r.fileName(e.filePath))}}function Ie(t,n){if(t&1&&k(0,Ge,6,3,"button",69,L),t&2){let e=c(2);S(e.callees)}}function ze(t,n){t&1&&(i(0,"div",68),l(1,"No callees"),a())}function Ke(t,n){if(t&1&&(i(0,"div",58)(1,"div",60),l(2,"Callers "),i(3,"span",63),l(4),a()(),g(5,Oe,2,0)(6,Te,2,0,"div",68),a(),i(7,"div",58)(8,"div",60),l(9,"Callees "),i(10,"span",63),l(11),a()(),g(12,Ie,2,0)(13,ze,2,0,"div",68),a()),t&2){let e=c();o(4),m(e.callers.length),o(),u(e.callers.length?5:6),o(6),m(e.callees.length),o(),u(e.callees.length?12:13)}}function De(t,n){if(t&1){let e=y();i(0,"button",73),p(1,"app-icon",74),l(2," Implement "),a(),i(3,"button",14),b("click",function(){h(e);let d=c(3);return v(d.navigateToDrift())}),l(4,"Fix"),a(),i(5,"button",75),l(6,"Relink"),a()}t&2&&(o(),x("size",13))}function Ve(t,n){if(t&1){let e=y();i(0,"button",73),p(1,"app-icon",76),l(2," Reveal in editor "),a(),i(3,"button",14),b("click",function(){h(e);let d=c(3);return v(d.navigateToSpecs())}),l(4,"Open Specs"),a()}t&2&&(o(),x("size",13))}function Ne(t,n){if(t&1){let e=y();i(0,"div",44)(1,"div",45),p(2,"span",46),i(3,"div",47)(4,"div",48),l(5),a(),i(6,"div",49)(7,"span",50),l(8),a(),g(9,ye,2,1,"span",50),a()(),i(10,"button",51),b("click",function(){h(e);let d=c(2);return v(d.clearSelection())}),p(11,"app-icon",52),a()(),i(12,"div",53),p(13,"app-icon",54),i(14,"span",55),l(15),a(),p(16,"app-copy-btn",56),a()(),i(17,"div",57),g(18,ke,5,1,"div",58),g(19,Se,5,1,"div",58),g(20,Ee,7,1,"div",58),g(21,Ke,14,4),a(),i(22,"div",59),g(23,De,7,1)(24,Ve,5,1),a()}if(t&2){let e=n,r=e.kind==="spec",d=c(2).detailColor(e);o(2),I("background",d)("box-shadow","0 0 8px "+d),R("is-rect",r),o(3),m(e.name),o(2),I("color",d)("background","color-mix(in srgb, "+d+" 14%, transparent)"),o(),m(e.kind),o(),u(e.signature?9:-1),o(2),x("size",14),o(2),x("size",12),o(2),m(e.filePath),o(),x("text",e.filePath),o(2),u(e.signature?18:-1),o(),u(e.docstring?19:-1),o(),u(e.linkedSpecs&&e.linkedSpecs.length?20:-1),o(),u(r?-1:21),o(2),u(r?23:24)}}function Re(t,n){t&1&&(i(0,"span",81),l(1),a()),t&2&&(o(),z("",n.nodeCount.toLocaleString()," shown"))}function Le(t,n){if(t&1&&(i(0,"div",84),p(1,"span",86),i(2,"span",87),l(3),a(),i(4,"span",88),l(5),a()()),t&2){let e=n.$implicit,r=c(3);o(),T("data-kind",e),o(2),m(e),o(2),m(r.overviewKindCounts()[e])}}function Fe(t,n){t&1&&(i(0,"div",85),p(1,"app-state-pill",89)(2,"span",90)(3,"app-state-pill",91)(4,"span",90)(5,"app-state-pill",92)(6,"span",90),a())}function He(t,n){if(t&1&&(i(0,"div",85),p(1,"app-state-pill",89),i(2,"span",93),l(3),a(),p(4,"app-state-pill",91),i(5,"span",93),l(6),a(),p(7,"app-state-pill",92),i(8,"span",93),l(9),a()()),t&2){let e,r,d,s=c(3);o(3),m(((e=s.health.state().data)==null||e.linkHealth==null?null:e.linkHealth.verified)??0),o(3),m(((r=s.health.state().data)==null||r.linkHealth==null?null:r.linkHealth.drifted)??0),o(3),m((((d=s.health.state().data)==null||d.linkHealth==null?null:d.linkHealth.broken)??0)+(((d=s.health.state().data)==null||d.linkHealth==null?null:d.linkHealth.orphaned)??0))}}function $e(t,n){t&1&&(i(0,"div",94),f(),i(1,"svg",95),p(2,"line",96),a(),C(),p(3,"span",97),a(),i(4,"div",94),f(),i(5,"svg",95),p(6,"line",98),a(),C(),p(7,"span",97),a(),i(8,"div",94),f(),i(9,"svg",95),p(10,"line",99),a(),C(),p(11,"span",97),a(),i(12,"div",94),f(),i(13,"svg",95),p(14,"line",100),a(),C(),p(15,"span",97),a())}function je(t,n){if(t&1&&(i(0,"div",94),f(),i(1,"svg",95),p(2,"line",96),a(),C(),i(3,"span",101),l(4,"calls"),a(),i(5,"span",102),l(6),a()(),i(7,"div",94),f(),i(8,"svg",95),p(9,"line",98),a(),C(),i(10,"span",101),l(11,"implements / documents"),a(),i(12,"span",102),l(13),a()(),i(14,"div",94),f(),i(15,"svg",95),p(16,"line",99),a(),C(),i(17,"span",101),l(18,"tests"),a(),i(19,"span",102),l(20),a()(),i(21,"div",94),f(),i(22,"svg",95),p(23,"line",100),a(),C(),i(24,"span",101),l(25,"synthesized (heuristic)"),a(),i(26,"span",102),l(27),a()()),t&2){let e,r,d,s,M=c(3);o(6),m(((e=M.health.state().data)==null||e.edgeKinds==null?null:e.edgeKinds.calls)??0),o(7),m(((r=M.health.state().data)==null||r.edgeKinds==null?null:r.edgeKinds.implements)??0),o(7),m(((d=M.health.state().data)==null||d.edgeKinds==null?null:d.edgeKinds.tests)??0),o(7),m(((s=M.health.state().data)==null||s.edgeKinds==null?null:s.edgeKinds.synth)??0)}}function Be(t,n){t&1&&(i(0,"div",103),p(1,"span",104)(2,"span",105),a())}function Qe(t,n){t&1&&(i(0,"div",83)(1,"div",60),l(2,"Most connected"),a(),k(3,Be,3,0,"div",103,G),a()),t&2&&(o(3),S(X(0,de)))}function Ae(t,n){if(t&1){let e=y();i(0,"button",107),b("click",function(){let d=h(e).$implicit,s=c(4);return v(s.pickHub(d))}),p(1,"span",108),i(2,"span",109),l(3),a(),i(4,"span",110),l(5),a(),p(6,"app-icon",111),a()}if(t&2){let e=n.$implicit,r=c(4);T("aria-label",e.name+", "+e.degree+" edges"),o(),I("background",r.nodeColor(e.kind))("border-radius",e.kind==="spec"?"2px":"50%"),o(2),m(e.name),o(2),z("",e.degree," edges"),o(),x("size",11)}}function Ue(t,n){if(t&1&&(i(0,"div",83)(1,"div",60),l(2,"Most connected"),a(),k(3,Ae,7,8,"button",106,L),a()),t&2){let e=c(3);o(3),S(e.health.state().data.hubs.slice(0,8))}}function qe(t,n){if(t&1&&(i(0,"div",77),p(1,"app-icon",78),i(2,"span",79),l(3,"Graph overview"),a(),p(4,"div",80),g(5,Re,2,1,"span",81),a(),i(6,"div",57)(7,"p",82),l(8," Click any node to inspect its signature, links, callers and callees \u2014 without leaving this view. "),a(),i(9,"div",83)(10,"div",60),l(11,"Nodes by kind"),a(),k(12,Le,6,3,"div",84,G),a(),i(14,"div",83)(15,"div",60),l(16,"Spec link health"),a(),g(17,Fe,7,0,"div",85)(18,He,10,3,"div",85),a(),i(19,"div",83)(20,"div",60),l(21,"Edge types"),a(),g(22,$e,16,0)(23,je,28,4),a(),g(24,Qe,5,1,"div",83)(25,Ue,5,0,"div",83),a()),t&2){let e,r,d,s=c(2);o(),x("size",15),o(4),u((e=s.status.state().data)?5:-1,e),o(7),S(s.kindKeys),o(5),u(s.health.state().loading?17:18),o(5),u(s.health.state().loading?22:(r=s.health.state().data)!=null&&r.edgeKinds?23:-1),o(2),u(s.health.state().loading?24:!((d=s.health.state().data)==null||d.hubs==null)&&d.hubs.length?25:-1)}}function We(t,n){if(t&1){let e=y();i(0,"div",1)(1,"div",2)(2,"div",3)(3,"app-segmented",4),b("change",function(d){h(e);let s=c();return v(s.onLayoutChange(d))}),a(),p(4,"div",5),k(5,ce,5,7,"button",6,G),p(7,"div",7),i(8,"div",8)(9,"div",9),p(10,"app-icon",10),i(11,"input",11),b("input",function(d){h(e);let s=c();return v(s.onSearchInput(d.target.value))}),a(),g(12,me,1,0,"span",12),a(),g(13,ue,3,0,"div",13),a(),i(14,"button",14),b("click",function(){h(e);let d=c();return v(d.recenter())}),p(15,"app-icon",15),l(16," Recenter "),a()(),i(17,"div",16),g(18,xe,6,1,"div",17)(19,he,3,0,"div",17)(20,ve,5,1,"div",17)(21,fe,3,1,"div",17)(22,be,27,5),a()(),i(23,"aside",18),g(24,Ne,25,22)(25,qe,26,5),a()()}if(t&2){let e,r=c();o(3),x("options",r.layoutOptions)("value",r.layoutMode()),o(2),S(r.kindKeys),o(5),x("size",13),o(),x("value",r.searchInput()),o(),u(r.searchResults.state().loading?12:-1),o(),u(r.searchResults.state().data&&r.searchResults.state().data.results.length>0?13:-1),o(2),x("size",13),o(3),u(r.selectedSymbol()?r.nodeDetail.state().loading?19:r.nodeDetail.state().error?20:r.selectedDetail()?22:21:18),o(6),u((e=r.selectedDetail())?24:25,e)}}var re=class t{api=N(Y);projects=N(Z);router=N(J);status=K(this.api,()=>`/api/status${this.projects.projectQuery()}`);health=K(this.api,()=>`/api/graph/health${this.projects.projectQuery()}`);layoutMode=P("hierarchical");layoutOptions=[{value:"hierarchical",label:"Hierarchical"},{value:"force",label:"Force"},{value:"anchored",label:"Anchored"}];searchInput=P("");searchQuery=P("");searchDebounce=null;searchResults=K(this.api,()=>{let n=this.searchQuery().trim();return n.length>=2?`/api/graph/search?q=${encodeURIComponent(n)}&limit=12${this.projects.projectQuery("&")}`:null});selectedSymbol=P(null);nodeDetail=K(this.api,()=>{let n=this.selectedSymbol();return n?`/api/graph/node?symbol=${encodeURIComponent(n)}${this.projects.projectQuery("&")}`:null});selectedDetail=w(()=>this.nodeDetail.state().data?.matches?.[0]??null);filters=P({code:!0,spec:!0,route:!0,test:!0});fitKey=P(0);canvasData=w(()=>{let n=this.selectedDetail();if(!n)return{nodes:[],edges:[]};let e=this.filters(),r=_=>{let E=F(_);return e[E]},d={id:n.id,label:n.name,sub:H(n.filePath),kind:n.kind,x:0,y:0},s=(n.callers??[]).filter(_=>r(_.kind)),M=(n.callees??[]).filter(_=>r(_.kind)),$=(n.linkedSpecs??[]).filter(()=>e.spec),j=280,B=56,D=[d],V=[];return s.forEach((_,E)=>{let O=(E-(s.length-1)/2)*B;D.push(le(_,-j,O)),V.push({from:_.id,to:n.id,kind:"calls"})}),M.forEach((_,E)=>{let O=(E-(M.length-1)/2)*B;D.push(le(_,j,O)),V.push({from:n.id,to:_.id,kind:"calls"})}),$.forEach((_,E)=>{let O=(E-($.length-1)/2)*220,Q="spec:"+_.specId;D.push({id:Q,label:_.specId,sub:_.specTitle??void 0,kind:"spec",state:_.state,x:O,y:-160}),V.push({from:Q,to:n.id,kind:"implements"})}),{nodes:D,edges:V}});visibleNodes=w(()=>this.canvasData().nodes);visibleEdges=w(()=>this.canvasData().edges);hiddenIds=w(()=>{let n=this.filters(),e=new Set;for(let r of this.canvasData().nodes)n[F(r.kind)]||e.add(r.id);return e});kindCounts=w(()=>{let n={code:0,spec:0,route:0,test:0};for(let e of this.canvasData().nodes)n[F(e.kind)]++;return n});overviewKindCounts=w(()=>{let n=this.status.state().data;if(!n?.nodesByKind)return{code:0,spec:0,route:0,test:0};let e=n.nodesByKind;return{code:(e.function??0)+(e.method??0)+(e.class??0)+(e.variable??0)+(e.constant??0)+(e.type_alias??0)+(e.interface??0)+(e.struct??0)+(e.enum??0)+(e.property??0)+(e.field??0)+(e.file??0)+(e.module??0)+(e.namespace??0)+(e.component??0),spec:e.spec??0,route:e.route??0,test:e.test??0}});kindKeys=["code","spec","route","test"];isFilterActive(n){return this.filters()[n]}countFor(n){return this.kindCounts()[n]}chipColor(n){switch(n){case"spec":return"var(--node-spec)";case"route":return"var(--node-route)";case"test":return"var(--node-test)";default:return"var(--node-code)"}}onSearchInput(n){this.searchInput.set(n),this.searchDebounce&&clearTimeout(this.searchDebounce),this.searchDebounce=setTimeout(()=>this.searchQuery.set(n),180)}pickResult(n){this.searchInput.set(n.name),this.searchQuery.set(""),this.selectedSymbol.set(n.name)}pickFromCanvas(n){let e=this.selectedDetail();if(!e||n===e.id)return;let d=[...e.callers??[],...e.callees??[]].find(s=>s.id===n);d&&(this.selectedSymbol.set(d.name),this.fitKey.update(s=>s+1))}toggleFilter(n){this.filters.update(e=>U(A({},e),{[n]:!e[n]})),this.fitKey.update(e=>e+1)}recenter(){this.fitKey.update(n=>n+1)}clearSelection(){this.selectedSymbol.set(null),this.searchInput.set("")}onLayoutChange(n){this.layoutMode.set(n),this.fitKey.update(e=>e+1)}shortPath(n){return H(n)}fileName(n){return n?n.split("/").pop()??"":""}kindLabel(n){return n.charAt(0).toUpperCase()+n.slice(1)}navigateToSpecs(){this.router.navigate(["/specs"])}navigateToDrift(){this.router.navigate(["/drift"])}nodeColor(n){return n==="spec"?"var(--node-spec)":n==="route"?"var(--node-route)":n==="test"?"var(--node-test)":"var(--node-code)"}pickHub(n){this.selectedSymbol.set(n.name),this.fitKey.update(e=>e+1)}detailColor(n){if(n.kind==="spec"){let e=n.linkedSpecs??[],r=e.some(s=>s.state==="broken"||s.state==="orphaned"),d=!r&&e.some(s=>s.state==="drifted");return r?"var(--error)":d?"var(--warn)":"var(--node-spec)"}return n.kind==="test"?"var(--node-test)":n.kind==="route"?"var(--node-route)":"var(--node-code)"}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=q({type:t,selectors:[["app-graph"]],decls:2,vars:1,consts:[["surface","The graph"],[1,"gp-root"],[1,"gp-main"],[1,"gp-toolbar"],["size","sm",3,"change","options","value"],[1,"gp-divider"],["type","button",1,"gp-chip",3,"is-active","--chip-color"],[1,"gp-spacer"],[1,"gp-search"],[1,"gp-search-inner"],["name","search",1,"gp-search-icon",3,"size"],["type","text","placeholder","Fuzzy symbol search\u2026","aria-label","Symbol search",3,"input","value"],["aria-hidden","true",1,"gp-spinner"],["role","listbox",1,"gp-results"],["type","button",1,"btn","btn-secondary","btn-sm",3,"click"],["name","recenter",3,"size"],[1,"gp-canvas-wrap"],[1,"gp-empty"],[1,"gp-panel"],["type","button",1,"gp-chip",3,"click"],[1,"gp-chip-dot"],[1,"gp-chip-count"],["type","button",1,"gp-result"],["type","button",1,"gp-result",3,"click"],[1,"gp-result-dot"],[1,"gp-result-name","mono"],[1,"gp-result-kind"],[1,"gp-result-path","mono"],[1,"gp-stats"],[3,"nodeClick","nodes","edges","selectedId","fitKey","hiddenIds"],[1,"gp-legend"],[1,"gp-legend-kinds"],[1,"gp-legend-item"],[1,"gp-legend-sep"],[1,"gp-legend-edges"],[1,"gp-legend-edge-row"],["width","16","height","8"],["x1","0","y1","4","x2","16","y2","4","stroke","var(--node-spec)","stroke-width","1.6"],[1,"secondary"],["x1","0","y1","4","x2","16","y2","4","stroke","var(--node-test)","stroke-width","1.6"],["x1","0","y1","4","x2","16","y2","4","stroke","var(--text-muted)","stroke-width","1.6"],["x1","0","y1","4","x2","16","y2","4","stroke","var(--text-muted)","stroke-width","1.6","stroke-dasharray","4 3"],[1,"gp-legend-dot"],[1,"secondary",2,"text-transform","capitalize"],[1,"gp-panel-header"],[1,"gp-panel-header-inner"],[1,"gp-node-dot"],[1,"grow",2,"min-width","0"],[1,"mono","gp-panel-name"],[1,"row","gap-6",2,"margin-top","3px"],[1,"pill"],["type","button","aria-label","Close panel",1,"btn","btn-ghost","btn-xs",3,"click"],["name","x",3,"size"],[1,"gp-panel-path","row","gap-6"],["name","folder",2,"color","var(--text-muted)","flex-shrink","0",3,"size"],[1,"mono","secondary","gp-path-text"],[3,"text"],[1,"gp-panel-body","scroll-y"],[1,"gp-section"],[1,"gp-panel-footer"],[1,"eyebrow","gp-eyebrow"],[1,"gp-code","mono"],[1,"secondary",2,"font-size","12px","line-height","1.6","margin","0"],[1,"muted",2,"font-weight","400","margin-left","5px"],[1,"gp-link-row"],[3,"state"],[1,"mono","grow","gp-link-text"],[1,"muted",2,"font-size","10px","flex-shrink","0","overflow","hidden","text-overflow","ellipsis","white-space","nowrap","max-width","120px"],[1,"muted",2,"font-size","12px","padding","4px 8px"],["type","button",1,"gp-node-link"],["type","button",1,"gp-node-link",3,"click"],["name","box",2,"color","var(--node-code)","flex-shrink","0",3,"size"],[1,"mono","muted","gp-link-file"],["type","button",1,"btn","btn-primary","btn-sm","grow",2,"justify-content","center"],["name","play",3,"size"],["type","button",1,"btn","btn-secondary","btn-sm"],["name","reveal",3,"size"],[1,"gp-panel-header","gp-overview-head"],["name","graph",2,"color","var(--accent)",3,"size"],[2,"font-weight","600","font-size","13.5px"],[1,"grow"],[1,"mono","muted",2,"font-size","11px"],[1,"secondary",2,"font-size","12px","line-height","1.55","margin","0 0 18px"],[1,"gp-section-plain"],[1,"gp-kind-row"],[1,"row","gap-6",2,"flex-wrap","wrap","align-items","center"],[1,"gp-kind-dot"],[1,"grow",2,"font-size","12.5px","text-transform","capitalize"],[1,"mono","tabular",2,"font-size","12.5px","font-weight","600"],["state","verified"],["aria-hidden","true",1,"gp-skel","gp-skel-sm"],["state","drifted"],["state","broken"],[1,"mono","tabular","muted",2,"font-size","11px","align-self","center"],[1,"gp-edge-row"],["width","20","height","8"],["x1","0","y1","4","x2","20","y2","4","stroke","var(--text-muted)","stroke-width","1.8"],["aria-hidden","true",1,"gp-skel","gp-skel-lg"],["x1","0","y1","4","x2","20","y2","4","stroke","var(--node-spec)","stroke-width","1.8"],["x1","0","y1","4","x2","20","y2","4","stroke","var(--node-test)","stroke-width","1.8"],["x1","0","y1","4","x2","20","y2","4","stroke","var(--text-muted)","stroke-width","1.8","stroke-dasharray","4 3"],[1,"grow","secondary",2,"font-size","12px"],[1,"mono","tabular","muted",2,"font-size","11px"],["aria-hidden","true",1,"gp-hub-row"],[1,"gp-hub-dot","gp-skel-dot"],["aria-hidden","true",1,"gp-skel","gp-skel-hub"],["type","button",1,"gp-hub-row"],["type","button",1,"gp-hub-row",3,"click"],[1,"gp-hub-dot"],[1,"mono","grow","gp-hub-name"],[1,"muted","gp-hub-degree"],["name","chevron-right",2,"color","var(--text-muted)","flex-shrink","0",3,"size"]],template:function(e,r){e&1&&g(0,se,1,0,"app-pick-project-empty",0)(1,We,26,9,"div",1),e&2&&u(r.status.state().noProject?0:1)},dependencies:[ne,ie,ee,te,ae,oe],styles:["[_nghost-%COMP%]{display:contents}.gp-root[_ngcontent-%COMP%]{flex:1;display:flex;min-height:0;min-width:0}.gp-main[_ngcontent-%COMP%]{flex:1;min-width:0;display:flex;flex-direction:column}.gp-toolbar[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;padding:9px 14px;border-bottom:1px solid var(--border-subtle);background:var(--bg-panel-2, var(--bg-panel));flex-wrap:wrap;flex-shrink:0}.gp-divider[_ngcontent-%COMP%]{width:1px;height:20px;background:var(--border-subtle);flex-shrink:0}.gp-chip[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:999px;font-size:11.5px;font-weight:500;cursor:pointer;border:1px solid var(--border-subtle);background:var(--bg-panel);color:var(--text-secondary);transition:all .1s}.gp-chip.is-active[_ngcontent-%COMP%]{border-color:transparent;background:color-mix(in srgb,var(--chip-color, var(--accent)) 22%,var(--bg-panel));color:var(--chip-color, var(--accent))}.gp-chip-dot[_ngcontent-%COMP%]{width:7px;height:7px;border-radius:50%}.gp-chip-dot[data-kind=code][_ngcontent-%COMP%]{background:var(--node-code)}.gp-chip-dot[data-kind=spec][_ngcontent-%COMP%]{background:var(--node-spec);border-radius:2px}.gp-chip-dot[data-kind=route][_ngcontent-%COMP%]{background:var(--node-route)}.gp-chip-dot[data-kind=test][_ngcontent-%COMP%]{background:var(--node-test)}.gp-chip-count[_ngcontent-%COMP%]{font-size:10.5px;color:var(--text-muted);font-variant-numeric:tabular-nums}.gp-spacer[_ngcontent-%COMP%]{flex:1}.gp-search[_ngcontent-%COMP%]{position:relative;flex-shrink:0}.gp-search-inner[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;height:28px;padding:0 10px;background:var(--bg-canvas);border:1px solid var(--border-subtle);border-radius:7px;width:220px}.gp-search-inner[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{flex:1;background:transparent;border:none;outline:none;color:var(--text-primary);font-size:12px;font-family:var(--font-mono)}.gp-search-icon[_ngcontent-%COMP%]{color:var(--text-muted);flex-shrink:0}.gp-spinner[_ngcontent-%COMP%]{width:12px;height:12px;border:2px solid var(--border-subtle);border-top-color:var(--accent);border-radius:50%;animation:_ngcontent-%COMP%_gp-spin .7s linear infinite;flex-shrink:0}@keyframes _ngcontent-%COMP%_gp-spin{to{transform:rotate(360deg)}}.gp-results[_ngcontent-%COMP%]{position:absolute;top:32px;left:0;right:0;background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:8px;box-shadow:var(--shadow-pop, 0 12px 28px rgba(0, 0, 0, .5));padding:5px;z-index:30;max-height:320px;overflow-y:auto}.gp-result[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;border-radius:5px;background:transparent;border:none;cursor:pointer;font:inherit;color:var(--text-primary);text-align:left}.gp-result[_ngcontent-%COMP%]:hover{background:var(--bg-hover)}.gp-result-dot[_ngcontent-%COMP%]{width:7px;height:7px;border-radius:50%;background:var(--node-code);flex-shrink:0}.gp-result-dot.is-spec[_ngcontent-%COMP%]{background:var(--node-spec);border-radius:2px}.gp-result-dot.is-route[_ngcontent-%COMP%]{background:var(--node-route)}.gp-result-dot.is-test[_ngcontent-%COMP%]{background:var(--node-test)}.gp-result-name[_ngcontent-%COMP%]{font-size:12px;flex-shrink:0}.gp-result-kind[_ngcontent-%COMP%]{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.gp-result-path[_ngcontent-%COMP%]{flex:1;text-align:right;font-size:10px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gp-canvas-wrap[_ngcontent-%COMP%]{flex:1;min-height:0;position:relative;display:flex}.gp-canvas-wrap[_ngcontent-%COMP%] app-graph-canvas[_ngcontent-%COMP%]{flex:1;min-height:0}.gp-empty[_ngcontent-%COMP%]{flex:1;display:grid;place-items:center;text-align:center;padding:60px 24px;background:var(--bg-canvas-2, var(--bg-canvas))}.gp-empty[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{font-size:18px;font-weight:600;margin:0 0 8px}.gp-empty[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:var(--text-secondary);font-size:13.5px;line-height:1.6;margin:0;max-width:520px}.gp-stats[_ngcontent-%COMP%]{margin-top:18px!important;font-family:var(--font-mono);font-size:11.5px!important;color:var(--text-muted)!important}.gp-legend[_ngcontent-%COMP%]{position:absolute;top:14px;left:14px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;max-width:70%;background:color-mix(in srgb,var(--bg-panel) 86%,transparent);border:1px solid var(--border-subtle);border-radius:8px;padding:6px 10px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:11px;pointer-events:none;z-index:3}.gp-legend-kinds[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px}.gp-legend-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:4px}.gp-legend-dot[_ngcontent-%COMP%]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.gp-legend-dot[data-kind=code][_ngcontent-%COMP%]{background:var(--node-code)}.gp-legend-dot[data-kind=spec][_ngcontent-%COMP%]{background:var(--node-spec);border-radius:2px}.gp-legend-dot[data-kind=route][_ngcontent-%COMP%]{background:var(--node-route)}.gp-legend-dot[data-kind=test][_ngcontent-%COMP%]{background:var(--node-test)}.gp-legend-sep[_ngcontent-%COMP%]{width:1px;height:16px;background:var(--border-subtle);flex-shrink:0}.gp-legend-edges[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px}.gp-legend-edge-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:4px}.gp-panel[_ngcontent-%COMP%]{width:360px;flex-shrink:0;border-left:1px solid var(--border-subtle);background:var(--bg-panel);display:flex;flex-direction:column;overflow:hidden}.gp-panel-header[_ngcontent-%COMP%]{padding:12px 14px;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.gp-panel-header-inner[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:8px}.gp-overview-head[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.gp-node-dot[_ngcontent-%COMP%]{width:9px;height:9px;border-radius:50%;flex-shrink:0;margin-top:5px}.gp-node-dot.is-rect[_ngcontent-%COMP%]{border-radius:2px}.gp-panel-name[_ngcontent-%COMP%]{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gp-panel-path[_ngcontent-%COMP%]{margin-top:8px;font-size:11.5px;color:var(--text-secondary)}.gp-path-text[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.gp-panel-body[_ngcontent-%COMP%]{flex:1;padding:14px;overflow-y:auto;display:flex;flex-direction:column;gap:18px}.gp-section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px}.gp-section-plain[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2px}.gp-eyebrow[_ngcontent-%COMP%]{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:6px}.gp-code[_ngcontent-%COMP%]{margin:0;font-size:11.5px;line-height:1.6;color:var(--text-secondary);background:var(--bg-canvas);border:1px solid var(--border-subtle);border-radius:7px;padding:10px;overflow-x:auto;white-space:pre-wrap;word-break:break-word}.gp-link-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;border:1px solid var(--border-subtle);margin-bottom:5px;font-size:11.5px}.gp-link-text[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.gp-node-link[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;width:100%;padding:5px 8px;border-radius:6px;border:none;background:transparent;cursor:pointer;font:inherit;color:inherit;text-align:left;font-size:12px}.gp-node-link[_ngcontent-%COMP%]:hover{background:var(--bg-hover)}.gp-link-file[_ngcontent-%COMP%]{font-size:10px;flex-shrink:0}.gp-edge-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;padding:4px 0}.gp-kind-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;padding:5px 0}.gp-kind-dot[_ngcontent-%COMP%]{width:9px;height:9px;border-radius:50%;flex-shrink:0}.gp-kind-dot[data-kind=code][_ngcontent-%COMP%]{background:var(--node-code);box-shadow:0 0 6px var(--node-code)}.gp-kind-dot[data-kind=spec][_ngcontent-%COMP%]{background:var(--node-spec);border-radius:2px;box-shadow:0 0 6px var(--node-spec)}.gp-kind-dot[data-kind=route][_ngcontent-%COMP%]{background:var(--node-route);box-shadow:0 0 6px var(--node-route)}.gp-kind-dot[data-kind=test][_ngcontent-%COMP%]{background:var(--node-test);box-shadow:0 0 6px var(--node-test)}.gp-panel-footer[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;padding:12px 14px;border-top:1px solid var(--border-subtle);flex-shrink:0}.gp-hub-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;width:100%;padding:5px 8px;border-radius:6px;border:none;background:transparent;cursor:pointer;font:inherit;color:inherit;text-align:left}.gp-hub-row[_ngcontent-%COMP%]:hover{background:var(--bg-hover)}.gp-hub-dot[_ngcontent-%COMP%]{width:8px;height:8px;flex-shrink:0}.gp-hub-name[_ngcontent-%COMP%]{font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gp-hub-degree[_ngcontent-%COMP%]{font-size:10.5px;color:var(--text-muted);flex-shrink:0;font-variant-numeric:tabular-nums}@keyframes _ngcontent-%COMP%_gp-skel-pulse{0%,to{opacity:.35}50%{opacity:.7}}.gp-skel[_ngcontent-%COMP%]{display:inline-block;background:var(--border-subtle);border-radius:4px;animation:_ngcontent-%COMP%_gp-skel-pulse 1.4s ease-in-out infinite}.gp-skel-sm[_ngcontent-%COMP%]{width:24px;height:12px}.gp-skel-lg[_ngcontent-%COMP%]{width:80px;height:12px;flex:1}.gp-skel-hub[_ngcontent-%COMP%]{width:120px;height:12px;flex:1}.gp-skel-dot[_ngcontent-%COMP%]{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--border-subtle);animation:_ngcontent-%COMP%_gp-skel-pulse 1.4s ease-in-out infinite}.grow[_ngcontent-%COMP%]{flex:1}.muted[_ngcontent-%COMP%]{color:var(--text-muted)}.mono[_ngcontent-%COMP%]{font-family:var(--font-mono)}"],changeDetection:0})};function le(t,n,e){return{id:t.id,label:t.name,sub:H(t.filePath),kind:t.kind,x:n,y:e}}function H(t){return t?t.split("/").slice(-2).join("/"):""}function F(t){return t==="spec"?"spec":t==="route"?"route":t==="test"?"test":"code"}export{re as Graph};
@@ -0,0 +1,298 @@
1
+ import"./chunk-Q7L6LLAK.js";var g={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"}]};function e(i){let o=[],a=i.split(/\t+|\r+|\n+| +/);for(let r=0;r<a.length;++r)a[r].length>0&&o.push(a[r]);return o}var s=e("true false"),c=e(`
2
+ alias
3
+ break
4
+ case
5
+ const
6
+ const_assert
7
+ continue
8
+ continuing
9
+ default
10
+ diagnostic
11
+ discard
12
+ else
13
+ enable
14
+ fn
15
+ for
16
+ if
17
+ let
18
+ loop
19
+ override
20
+ requires
21
+ return
22
+ struct
23
+ switch
24
+ var
25
+ while
26
+ `),m=e(`
27
+ NULL
28
+ Self
29
+ abstract
30
+ active
31
+ alignas
32
+ alignof
33
+ as
34
+ asm
35
+ asm_fragment
36
+ async
37
+ attribute
38
+ auto
39
+ await
40
+ become
41
+ binding_array
42
+ cast
43
+ catch
44
+ class
45
+ co_await
46
+ co_return
47
+ co_yield
48
+ coherent
49
+ column_major
50
+ common
51
+ compile
52
+ compile_fragment
53
+ concept
54
+ const_cast
55
+ consteval
56
+ constexpr
57
+ constinit
58
+ crate
59
+ debugger
60
+ decltype
61
+ delete
62
+ demote
63
+ demote_to_helper
64
+ do
65
+ dynamic_cast
66
+ enum
67
+ explicit
68
+ export
69
+ extends
70
+ extern
71
+ external
72
+ fallthrough
73
+ filter
74
+ final
75
+ finally
76
+ friend
77
+ from
78
+ fxgroup
79
+ get
80
+ goto
81
+ groupshared
82
+ highp
83
+ impl
84
+ implements
85
+ import
86
+ inline
87
+ instanceof
88
+ interface
89
+ layout
90
+ lowp
91
+ macro
92
+ macro_rules
93
+ match
94
+ mediump
95
+ meta
96
+ mod
97
+ module
98
+ move
99
+ mut
100
+ mutable
101
+ namespace
102
+ new
103
+ nil
104
+ noexcept
105
+ noinline
106
+ nointerpolation
107
+ noperspective
108
+ null
109
+ nullptr
110
+ of
111
+ operator
112
+ package
113
+ packoffset
114
+ partition
115
+ pass
116
+ patch
117
+ pixelfragment
118
+ precise
119
+ precision
120
+ premerge
121
+ priv
122
+ protected
123
+ pub
124
+ public
125
+ readonly
126
+ ref
127
+ regardless
128
+ register
129
+ reinterpret_cast
130
+ require
131
+ resource
132
+ restrict
133
+ self
134
+ set
135
+ shared
136
+ sizeof
137
+ smooth
138
+ snorm
139
+ static
140
+ static_assert
141
+ static_cast
142
+ std
143
+ subroutine
144
+ super
145
+ target
146
+ template
147
+ this
148
+ thread_local
149
+ throw
150
+ trait
151
+ try
152
+ type
153
+ typedef
154
+ typeid
155
+ typename
156
+ typeof
157
+ union
158
+ unless
159
+ unorm
160
+ unsafe
161
+ unsized
162
+ use
163
+ using
164
+ varying
165
+ virtual
166
+ volatile
167
+ wgsl
168
+ where
169
+ with
170
+ writeonly
171
+ yield
172
+ `),l=e(`
173
+ read write read_write
174
+ function private workgroup uniform storage
175
+ perspective linear flat
176
+ center centroid sample
177
+ vertex_index instance_index position front_facing frag_depth
178
+ local_invocation_id local_invocation_index
179
+ global_invocation_id workgroup_id num_workgroups
180
+ sample_index sample_mask
181
+ rgba8unorm
182
+ rgba8snorm
183
+ rgba8uint
184
+ rgba8sint
185
+ rgba16uint
186
+ rgba16sint
187
+ rgba16float
188
+ r32uint
189
+ r32sint
190
+ r32float
191
+ rg32uint
192
+ rg32sint
193
+ rg32float
194
+ rgba32uint
195
+ rgba32sint
196
+ rgba32float
197
+ bgra8unorm
198
+ `),u=e(`
199
+ bool
200
+ f16
201
+ f32
202
+ i32
203
+ sampler sampler_comparison
204
+ texture_depth_2d
205
+ texture_depth_2d_array
206
+ texture_depth_cube
207
+ texture_depth_cube_array
208
+ texture_depth_multisampled_2d
209
+ texture_external
210
+ texture_external
211
+ u32
212
+ `),p=e(`
213
+ array
214
+ atomic
215
+ mat2x2
216
+ mat2x3
217
+ mat2x4
218
+ mat3x2
219
+ mat3x3
220
+ mat3x4
221
+ mat4x2
222
+ mat4x3
223
+ mat4x4
224
+ ptr
225
+ texture_1d
226
+ texture_2d
227
+ texture_2d_array
228
+ texture_3d
229
+ texture_cube
230
+ texture_cube_array
231
+ texture_multisampled_2d
232
+ texture_storage_1d
233
+ texture_storage_2d
234
+ texture_storage_2d_array
235
+ texture_storage_3d
236
+ vec2
237
+ vec3
238
+ vec4
239
+ `),d=e(`
240
+ vec2i vec3i vec4i
241
+ vec2u vec3u vec4u
242
+ vec2f vec3f vec4f
243
+ vec2h vec3h vec4h
244
+ mat2x2f mat2x3f mat2x4f
245
+ mat3x2f mat3x3f mat3x4f
246
+ mat4x2f mat4x3f mat4x4f
247
+ mat2x2h mat2x3h mat2x4h
248
+ mat3x2h mat3x3h mat3x4h
249
+ mat4x2h mat4x3h mat4x4h
250
+ `),x=e(`
251
+ bitcast all any select arrayLength abs acos acosh asin asinh atan atanh atan2
252
+ ceil clamp cos cosh countLeadingZeros countOneBits countTrailingZeros cross
253
+ degrees determinant distance dot exp exp2 extractBits faceForward firstLeadingBit
254
+ firstTrailingBit floor fma fract frexp inverseBits inverseSqrt ldexp length
255
+ log log2 max min mix modf normalize pow quantizeToF16 radians reflect refract
256
+ reverseBits round saturate sign sin sinh smoothstep sqrt step tan tanh transpose
257
+ trunc dpdx dpdxCoarse dpdxFine dpdy dpdyCoarse dpdyFine fwidth fwidthCoarse fwidthFine
258
+ textureDimensions textureGather textureGatherCompare textureLoad textureNumLayers
259
+ textureNumLevels textureNumSamples textureSample textureSampleBias textureSampleCompare
260
+ textureSampleCompareLevel textureSampleGrad textureSampleLevel textureSampleBaseClampToEdge
261
+ textureStore atomicLoad atomicStore atomicAdd atomicSub atomicMax atomicMin
262
+ atomicAnd atomicOr atomicXor atomicExchange atomicCompareExchangeWeak pack4x8snorm
263
+ pack4x8unorm pack2x16snorm pack2x16unorm pack2x16float unpack4x8snorm unpack4x8unorm
264
+ unpack2x16snorm unpack2x16unorm unpack2x16float storageBarrier workgroupBarrier
265
+ workgroupUniformLoad
266
+ `),f=e(`
267
+ &
268
+ &&
269
+ ->
270
+ /
271
+ =
272
+ ==
273
+ !=
274
+ >
275
+ >=
276
+ <
277
+ <=
278
+ %
279
+ -
280
+ --
281
+ +
282
+ ++
283
+ |
284
+ ||
285
+ *
286
+ <<
287
+ >>
288
+ +=
289
+ -=
290
+ *=
291
+ /=
292
+ %=
293
+ &=
294
+ |=
295
+ ^=
296
+ >>=
297
+ <<=
298
+ `),_=/enable|requires|diagnostic/,n=new RegExp("[_\\p{XID_Start}]\\p{XID_Continue}*","u"),t="variable.predefined",h={tokenPostfix:".wgsl",defaultToken:"invalid",unicode:!0,atoms:s,keywords:c,reserved:m,predeclared_enums:l,predeclared_types:u,predeclared_type_generators:p,predeclared_type_aliases:d,predeclared_intrinsics:x,operators:f,symbols:/[!%&*+\-\.\/:;<=>^|_~,]+/,tokenizer:{root:[[_,"keyword","@directive"],[n,{cases:{"@atoms":t,"@keywords":"keyword","@reserved":"invalid","@predeclared_enums":t,"@predeclared_types":t,"@predeclared_type_generators":t,"@predeclared_type_aliases":t,"@predeclared_intrinsics":t,"@default":"identifier"}}],{include:"@commentOrSpace"},{include:"@numbers"},[/[{}()\[\]]/,"@brackets"],["@","annotation","@attribute"],[/@symbols/,{cases:{"@operators":"operator","@default":"delimiter"}}],[/./,"invalid"]],commentOrSpace:[[/\s+/,"white"],[/\/\*/,"comment","@blockComment"],[/\/\/.*$/,"comment"]],blockComment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@push"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],attribute:[{include:"@commentOrSpace"},[/\w+/,"annotation","@pop"]],directive:[{include:"@commentOrSpace"},[/[()]/,"@brackets"],[/,/,"delimiter"],[n,"meta.content"],[/;/,"delimiter","@pop"]],numbers:[[/0[fh]/,"number.float"],[/[1-9][0-9]*[fh]/,"number.float"],[/[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/,"number.float"],[/[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/,"number.float"],[/[0-9]+[eE][+-]?[0-9]+[fh]?/,"number.float"],[/0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+(?:[pP][+-]?[0-9]+[fh]?)?/,"number.hex"],[/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*(?:[pP][+-]?[0-9]+[fh]?)?/,"number.hex"],[/0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/,"number.hex"],[/0[xX][0-9a-fA-F]+[iu]?/,"number.hex"],[/[1-9][0-9]*[iu]?/,"number"],[/0[iu]?/,"number"]]}};export{g as conf,h as language};
@@ -0,0 +1 @@
1
+ import"./chunk-Q7L6LLAK.js";var e={comments:{lineComment:"REM"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],surroundingPairs:[{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],folding:{markers:{start:new RegExp("^\\s*(::\\s*|REM\\s+)#region"),end:new RegExp("^\\s*(::\\s*|REM\\s+)#endregion")}}},s={defaultToken:"",ignoreCase:!0,tokenPostfix:".bat",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:/call|defined|echo|errorlevel|exist|for|goto|if|pause|set|shift|start|title|not|pushd|popd/,symbols:/[=><!~?&|+\-*\/\^;\.,]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^(\s*)(rem(?:\s.*|))$/,["","comment"]],[/(\@?)(@keywords)(?!\w)/,[{token:"keyword"},{token:"keyword.$2"}]],[/[ \t\r\n]+/,""],[/setlocal(?!\w)/,"keyword.tag-setlocal"],[/endlocal(?!\w)/,"keyword.tag-setlocal"],[/[a-zA-Z_]\w*/,""],[/:\w*/,"metatag"],[/%[^%]+%/,"variable"],[/%%[\w]+(?!\w)/,"variable"],[/[{}()\[\]]/,"@brackets"],[/@symbols/,"delimiter"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/"/,"string",'@string."'],[/'/,"string","@string.'"]],string:[[/[^\\"'%]+/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/%[\w ]+%/,"variable"],[/%%[\w]+(?!\w)/,"variable"],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}],[/$/,"string","@popall"]]}};export{e as conf,s as language};
@@ -0,0 +1 @@
1
+ import{Ba as s,Ca as p,Da as g,Ka as m,La as u,Ma as b,Ta as i,ea as a,ka as r,pb as n,ra as c,sa as d}from"./chunk-PDN6QYGJ.js";var y=["*"];function C(o,l){if(o&1&&g(0,"span",2),o&2){let e=m();i("background",e.color())}}var f=class o{color=n("");bg=n("");dot=n(!1);static \u0275fac=function(e){return new(e||o)};static \u0275cmp=r({type:o,selectors:[["app-pill"]],inputs:{color:[1,"color"],bg:[1,"bg"],dot:[1,"dot"]},ngContentSelectors:y,decls:3,vars:5,consts:[[1,"pill"],[1,"pill-dot",3,"background"],[1,"pill-dot"]],template:function(e,t){e&1&&(u(),s(0,"span",0),c(1,C,1,2,"span",1),b(2),p()),e&2&&(i("color",t.color()||"var(--text-secondary)")("background",t.bg()||"rgba(255,255,255,0.05)"),a(),d(t.dot()?1:-1))},styles:["[_nghost-%COMP%]{display:inline-flex}"],changeDetection:0})};export{f as a};
@@ -0,0 +1 @@
1
+ import"./chunk-Q7L6LLAK.js";var e={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'"},{open:'"',close:'"'}],autoClosingPairs:[{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["comment"]},{open:'"""',close:'"""'},{open:"`",close:"`",notIn:["string","comment"]},{open:"(",close:")"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"<<",close:">>"}],indentationRules:{increaseIndentPattern:/^\s*(after|else|catch|rescue|fn|[^#]*(do|<\-|\->|\{|\[|\=))\s*$/,decreaseIndentPattern:/^\s*((\}|\])\s*$|(after|else|catch|rescue|end)\b)/}},t={defaultToken:"source",tokenPostfix:".elixir",brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"<<",close:">>",token:"delimiter.angle.special"}],declarationKeywords:["def","defp","defn","defnp","defguard","defguardp","defmacro","defmacrop","defdelegate","defcallback","defmacrocallback","defmodule","defprotocol","defexception","defimpl","defstruct"],operatorKeywords:["and","in","not","or","when"],namespaceKeywords:["alias","import","require","use"],otherKeywords:["after","case","catch","cond","do","else","end","fn","for","if","quote","raise","receive","rescue","super","throw","try","unless","unquote_splicing","unquote","with"],constants:["true","false","nil"],nameBuiltin:["__MODULE__","__DIR__","__ENV__","__CALLER__","__STACKTRACE__"],operator:/-[->]?|!={0,2}|\*{1,2}|\/|\\\\|&{1,3}|\.\.?|\^(?:\^\^)?|\+\+?|<(?:-|<<|=|>|\|>|~>?)?|=~|={1,3}|>(?:=|>>)?|\|~>|\|>|\|{1,3}|~>>?|~~~|::/,variableName:/[a-z_][a-zA-Z0-9_]*[?!]?/,atomName:/[a-zA-Z_][a-zA-Z0-9_@]*[?!]?|@specialAtomName|@operator/,specialAtomName:/\.\.\.|<<>>|%\{\}|%|\{\}/,aliasPart:/[A-Z][a-zA-Z0-9_]*/,moduleName:/@aliasPart(?:\.@aliasPart)*/,sigilSymmetricDelimiter:/"""|'''|"|'|\/|\|/,sigilStartDelimiter:/@sigilSymmetricDelimiter|<|\{|\[|\(/,sigilEndDelimiter:/@sigilSymmetricDelimiter|>|\}|\]|\)/,sigilModifiers:/[a-zA-Z0-9]*/,decimal:/\d(?:_?\d)*/,hex:/[0-9a-fA-F](_?[0-9a-fA-F])*/,octal:/[0-7](_?[0-7])*/,binary:/[01](_?[01])*/,escape:/\\u[0-9a-fA-F]{4}|\\x[0-9a-fA-F]{2}|\\./,tokenizer:{root:[{include:"@whitespace"},{include:"@comments"},{include:"@keywordsShorthand"},{include:"@numbers"},{include:"@identifiers"},{include:"@strings"},{include:"@atoms"},{include:"@sigils"},{include:"@attributes"},{include:"@symbols"}],whitespace:[[/\s+/,"white"]],comments:[[/(#)(.*)/,["comment.punctuation","comment"]]],keywordsShorthand:[[/(@atomName)(:)(\s+)/,["constant","constant.punctuation","white"]],[/"(?=([^"]|#\{.*?\}|\\")*":)/,{token:"constant.delimiter",next:"@doubleQuotedStringKeyword"}],[/'(?=([^']|#\{.*?\}|\\')*':)/,{token:"constant.delimiter",next:"@singleQuotedStringKeyword"}]],doubleQuotedStringKeyword:[[/":/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],singleQuotedStringKeyword:[[/':/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],numbers:[[/0b@binary/,"number.binary"],[/0o@octal/,"number.octal"],[/0x@hex/,"number.hex"],[/@decimal\.@decimal([eE]-?@decimal)?/,"number.float"],[/@decimal/,"number"]],identifiers:[[/\b(defp?|defnp?|defmacrop?|defguardp?|defdelegate)(\s+)(@variableName)(?!\s+@operator)/,["keyword.declaration","white",{cases:{unquote:"keyword","@default":"function"}}]],[/(@variableName)(?=\s*\.?\s*\()/,{cases:{"@declarationKeywords":"keyword.declaration","@namespaceKeywords":"keyword","@otherKeywords":"keyword","@default":"function.call"}}],[/(@moduleName)(\s*)(\.)(\s*)(@variableName)/,["type.identifier","white","operator","white","function.call"]],[/(:)(@atomName)(\s*)(\.)(\s*)(@variableName)/,["constant.punctuation","constant","white","operator","white","function.call"]],[/(\|>)(\s*)(@variableName)/,["operator","white",{cases:{"@otherKeywords":"keyword","@default":"function.call"}}]],[/(&)(\s*)(@variableName)/,["operator","white","function.call"]],[/@variableName/,{cases:{"@declarationKeywords":"keyword.declaration","@operatorKeywords":"keyword.operator","@namespaceKeywords":"keyword","@otherKeywords":"keyword","@constants":"constant.language","@nameBuiltin":"variable.language","_.*":"comment.unused","@default":"identifier"}}],[/@moduleName/,"type.identifier"]],strings:[[/"""/,{token:"string.delimiter",next:"@doubleQuotedHeredoc"}],[/'''/,{token:"string.delimiter",next:"@singleQuotedHeredoc"}],[/"/,{token:"string.delimiter",next:"@doubleQuotedString"}],[/'/,{token:"string.delimiter",next:"@singleQuotedString"}]],doubleQuotedHeredoc:[[/"""/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],singleQuotedHeredoc:[[/'''/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],doubleQuotedString:[[/"/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],singleQuotedString:[[/'/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],atoms:[[/(:)(@atomName)/,["constant.punctuation","constant"]],[/:"/,{token:"constant.delimiter",next:"@doubleQuotedStringAtom"}],[/:'/,{token:"constant.delimiter",next:"@singleQuotedStringAtom"}]],doubleQuotedStringAtom:[[/"/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],singleQuotedStringAtom:[[/'/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],sigils:[[/~[a-z]@sigilStartDelimiter/,{token:"@rematch",next:"@sigil.interpol"}],[/~([A-Z]+)@sigilStartDelimiter/,{token:"@rematch",next:"@sigil.noInterpol"}]],sigil:[[/~([a-z]|[A-Z]+)\{/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.{.}"}],[/~([a-z]|[A-Z]+)\[/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.[.]"}],[/~([a-z]|[A-Z]+)\(/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.(.)"}],[/~([a-z]|[A-Z]+)\</,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.<.>"}],[/~([a-z]|[A-Z]+)(@sigilSymmetricDelimiter)/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.$2.$2"}]],"sigilStart.interpol.s":[[/~s@sigilStartDelimiter/,{token:"string.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.interpol.s":[[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"string.delimiter",next:"@pop"},"@default":"string"}}],{include:"@stringContentInterpol"}],"sigilStart.noInterpol.S":[[/~S@sigilStartDelimiter/,{token:"string.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.noInterpol.S":[[/(^|[^\\])\\@sigilEndDelimiter/,"string"],[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"string.delimiter",next:"@pop"},"@default":"string"}}],{include:"@stringContent"}],"sigilStart.interpol.r":[[/~r@sigilStartDelimiter/,{token:"regexp.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.interpol.r":[[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"regexp.delimiter",next:"@pop"},"@default":"regexp"}}],{include:"@regexpContentInterpol"}],"sigilStart.noInterpol.R":[[/~R@sigilStartDelimiter/,{token:"regexp.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.noInterpol.R":[[/(^|[^\\])\\@sigilEndDelimiter/,"regexp"],[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"regexp.delimiter",next:"@pop"},"@default":"regexp"}}],{include:"@regexpContent"}],"sigilStart.interpol":[[/~([a-z]|[A-Z]+)@sigilStartDelimiter/,{token:"sigil.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.interpol":[[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"sigil.delimiter",next:"@pop"},"@default":"sigil"}}],{include:"@sigilContentInterpol"}],"sigilStart.noInterpol":[[/~([a-z]|[A-Z]+)@sigilStartDelimiter/,{token:"sigil.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.noInterpol":[[/(^|[^\\])\\@sigilEndDelimiter/,"sigil"],[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"sigil.delimiter",next:"@pop"},"@default":"sigil"}}],{include:"@sigilContent"}],attributes:[[/\@(module|type)?doc (~[sS])?"""/,{token:"comment.block.documentation",next:"@doubleQuotedHeredocDocstring"}],[/\@(module|type)?doc (~[sS])?'''/,{token:"comment.block.documentation",next:"@singleQuotedHeredocDocstring"}],[/\@(module|type)?doc (~[sS])?"/,{token:"comment.block.documentation",next:"@doubleQuotedStringDocstring"}],[/\@(module|type)?doc (~[sS])?'/,{token:"comment.block.documentation",next:"@singleQuotedStringDocstring"}],[/\@(module|type)?doc false/,"comment.block.documentation"],[/\@(@variableName)/,"variable"]],doubleQuotedHeredocDocstring:[[/"""/,{token:"comment.block.documentation",next:"@pop"}],{include:"@docstringContent"}],singleQuotedHeredocDocstring:[[/'''/,{token:"comment.block.documentation",next:"@pop"}],{include:"@docstringContent"}],doubleQuotedStringDocstring:[[/"/,{token:"comment.block.documentation",next:"@pop"}],{include:"@docstringContent"}],singleQuotedStringDocstring:[[/'/,{token:"comment.block.documentation",next:"@pop"}],{include:"@docstringContent"}],symbols:[[/\?(\\.|[^\\\s])/,"number.constant"],[/&\d+/,"operator"],[/<<<|>>>/,"operator"],[/[()\[\]\{\}]|<<|>>/,"@brackets"],[/\.\.\./,"identifier"],[/=>/,"punctuation"],[/@operator/,"operator"],[/[:;,.%]/,"punctuation"]],stringContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@stringContent"}],stringContent:[[/./,"string"]],stringConstantContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@stringConstantContent"}],stringConstantContent:[[/./,"constant"]],regexpContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@regexpContent"}],regexpContent:[[/(\s)(#)(\s.*)$/,["white","comment.punctuation","comment"]],[/./,"regexp"]],sigilContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@sigilContent"}],sigilContent:[[/./,"sigil"]],docstringContent:[[/./,"comment.block.documentation"]],escapeChar:[[/@escape/,"constant.character.escape"]],interpolation:[[/#{/,{token:"delimiter.bracket.embed",next:"@interpolationContinue"}]],interpolationContinue:[[/}/,{token:"delimiter.bracket.embed",next:"@pop"}],{include:"@root"}]}};export{e as conf,t as language};