@selvakumaresra/specship 0.1.2 → 0.3.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 (216) hide show
  1. package/README.md +2 -2
  2. package/commands/ss-design-implement.md +79 -0
  3. package/commands/{cg-drifted.md → ss-drifted.md} +2 -2
  4. package/commands/{cg-fix.md → ss-fix.md} +1 -1
  5. package/commands/{cg-implement.md → ss-implement.md} +1 -1
  6. package/commands/ss-spec-author.md +43 -0
  7. package/commands/ss-spec-review.md +48 -0
  8. package/dist/bin/specship.js +6 -5
  9. package/dist/bin/specship.js.map +1 -1
  10. package/dist/db/index.d.ts +3 -1
  11. package/dist/db/index.d.ts.map +1 -1
  12. package/dist/db/index.js +5 -2
  13. package/dist/db/index.js.map +1 -1
  14. package/dist/db/migrations.d.ts +1 -1
  15. package/dist/db/migrations.d.ts.map +1 -1
  16. package/dist/db/migrations.js +36 -1
  17. package/dist/db/migrations.js.map +1 -1
  18. package/dist/db/schema.sql +9 -0
  19. package/dist/directory.d.ts +13 -3
  20. package/dist/directory.d.ts.map +1 -1
  21. package/dist/directory.js +17 -3
  22. package/dist/directory.js.map +1 -1
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +1 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/installer/index.d.ts.map +1 -1
  27. package/dist/installer/index.js +16 -10
  28. package/dist/installer/index.js.map +1 -1
  29. package/dist/installer/targets/claude.d.ts +11 -1
  30. package/dist/installer/targets/claude.d.ts.map +1 -1
  31. package/dist/installer/targets/claude.js +59 -2
  32. package/dist/installer/targets/claude.js.map +1 -1
  33. package/dist/server/ingest/ingestor.js +117 -17
  34. package/dist/server/routes/claude.js +394 -6
  35. package/dist/server/routes/graph.js +62 -0
  36. package/dist/server/routes/spec.js +161 -1
  37. package/dist/server/routes/status.js +77 -0
  38. package/dist/server/routes/workflow.js +31 -3
  39. package/dist/web/chunk-2AJCHB7P.js +1 -0
  40. package/dist/web/chunk-2CPLUFCH.js +2 -0
  41. package/dist/web/chunk-2DHIGIOI.js +1 -0
  42. package/dist/web/chunk-2GBEK2GM.js +1 -0
  43. package/dist/web/chunk-2I7L37NS.js +1 -0
  44. package/dist/web/chunk-2NAWAJB5.js +1 -0
  45. package/dist/web/chunk-2OJBIPE4.js +1 -0
  46. package/dist/web/chunk-2OKMB4KX.js +2 -0
  47. package/dist/web/chunk-3E2WB6D5.js +1 -0
  48. package/dist/web/chunk-3EBFYSCH.js +2 -0
  49. package/dist/web/chunk-3QCQ4BXS.js +1 -0
  50. package/dist/web/chunk-3SEJX2BK.js +1 -0
  51. package/dist/web/chunk-42XVAQ6I.js +1 -0
  52. package/dist/web/chunk-4IMMPEYM.js +1 -0
  53. package/dist/web/chunk-4N5DWG46.js +1 -0
  54. package/dist/web/chunk-4TJQJPCZ.js +1 -0
  55. package/dist/web/chunk-4WZIHTPC.js +1 -0
  56. package/dist/web/chunk-4YVSYOSD.js +1 -0
  57. package/dist/web/chunk-5BQIOYKW.js +1 -0
  58. package/dist/web/chunk-5HGWHUJA.js +1 -0
  59. package/dist/web/chunk-5Y244R4G.js +1 -0
  60. package/dist/web/chunk-6RRDPT5Z.js +1 -0
  61. package/dist/web/chunk-6VKB2ZWM.js +1 -0
  62. package/dist/web/chunk-7DMFVTU4.js +1 -0
  63. package/dist/web/chunk-7RNS77UP.js +1 -0
  64. package/dist/web/chunk-7SMPKVEP.js +1 -0
  65. package/dist/web/chunk-AZJVTPLU.js +1 -0
  66. package/dist/web/chunk-BCZM5AXU.js +1 -0
  67. package/dist/web/chunk-BLBRMCN2.js +1 -0
  68. package/dist/web/chunk-BMIAXD2V.js +2 -0
  69. package/dist/web/chunk-BPECIDVO.js +1 -0
  70. package/dist/web/chunk-BUXWEHIY.js +1 -0
  71. package/dist/web/chunk-BYZFQSM6.js +1 -0
  72. package/dist/web/chunk-DA6SNNAF.js +1 -0
  73. package/dist/web/chunk-DLQPZWSI.css +1 -0
  74. package/dist/web/chunk-DTRN7FZR.js +1 -0
  75. package/dist/web/chunk-DYRFLPJA.js +1 -0
  76. package/dist/web/chunk-E3J3CXR5.js +1 -0
  77. package/dist/web/chunk-E44X4RH2.js +1 -0
  78. package/dist/web/chunk-E73OX2P7.js +1 -0
  79. package/dist/web/chunk-EAXRKDLV.js +1 -0
  80. package/dist/web/chunk-EBKKDHYI.js +1 -0
  81. package/dist/web/chunk-EE7V7Q5P.js +1 -0
  82. package/dist/web/chunk-EKY2FUHU.js +1 -0
  83. package/dist/web/chunk-EMGMOEVR.js +1 -0
  84. package/dist/web/chunk-EP6XOPXH.js +1 -0
  85. package/dist/web/chunk-ESGDLJOJ.js +1 -0
  86. package/dist/web/chunk-ETJG7NCY.js +1 -0
  87. package/dist/web/chunk-EUUEFEDI.js +1 -0
  88. package/dist/web/chunk-FGNZDHTL.js +11 -0
  89. package/dist/web/chunk-FIJW2UNJ.js +1 -0
  90. package/dist/web/chunk-FMV5PXRC.js +5 -0
  91. package/dist/web/chunk-G7VZT5KB.js +3 -0
  92. package/dist/web/chunk-GRZYXPSO.js +7 -0
  93. package/dist/web/chunk-GYGPS3AN.js +1 -0
  94. package/dist/web/chunk-H7AF7YS4.js +1 -0
  95. package/dist/web/chunk-HDZDQILN.js +1 -0
  96. package/dist/web/chunk-HMK6UO6N.js +1 -0
  97. package/dist/web/chunk-HZA6NEAB.js +1 -0
  98. package/dist/web/chunk-IHEE5NYJ.js +1 -0
  99. package/dist/web/chunk-ISNEBICW.js +1 -0
  100. package/dist/web/chunk-J2GZVLHH.js +1 -0
  101. package/dist/web/chunk-JFYVCXK3.js +1 -0
  102. package/dist/web/chunk-JN6W7HCN.js +17 -0
  103. package/dist/web/chunk-JT7P3DEK.js +6 -0
  104. package/dist/web/chunk-JTFXTIPE.js +903 -0
  105. package/dist/web/chunk-L37MTFSG.js +3 -0
  106. package/dist/web/chunk-LB6JPLX2.js +1 -0
  107. package/dist/web/chunk-LNSVDHCI.js +1 -0
  108. package/dist/web/chunk-LV4G6QFG.js +2 -0
  109. package/dist/web/chunk-LVGIY3SO.js +1 -0
  110. package/dist/web/chunk-LXLHIHEN.js +1 -0
  111. package/dist/web/chunk-MC4DFIHG.js +1 -0
  112. package/dist/web/chunk-MVOMVPYB.js +1 -0
  113. package/dist/web/chunk-N6SS4G6S.js +1 -0
  114. package/dist/web/chunk-NTBJG6SJ.js +1 -0
  115. package/dist/web/chunk-NUDB3Q2Y.js +3 -0
  116. package/dist/web/chunk-OXEF5E3E.js +1 -0
  117. package/dist/web/chunk-PDN6QYGJ.js +4 -0
  118. package/dist/web/chunk-PGGJPDJG.js +1 -0
  119. package/dist/web/chunk-PUYSJNJR.js +1 -0
  120. package/dist/web/chunk-Q2RVFS45.js +1 -0
  121. package/dist/web/chunk-Q7L6LLAK.js +1 -0
  122. package/dist/web/chunk-QCMKJIWY.js +1 -0
  123. package/dist/web/chunk-QH6CF3M3.js +1 -0
  124. package/dist/web/chunk-QQ5LD7PI.js +1 -0
  125. package/dist/web/chunk-QR6L3KAC.js +1 -0
  126. package/dist/web/chunk-R2DLK4HO.js +1 -0
  127. package/dist/web/chunk-R5W2MDZN.js +1 -0
  128. package/dist/web/chunk-RAAMPHPJ.js +1 -0
  129. package/dist/web/chunk-RD6TVPOT.js +1 -0
  130. package/dist/web/chunk-RKY4EJYJ.js +1 -0
  131. package/dist/web/chunk-RONYWVY7.js +1 -0
  132. package/dist/web/chunk-RXKXYF2C.js +1 -0
  133. package/dist/web/chunk-SBWU7JFC.js +1 -0
  134. package/dist/web/chunk-SEXBRGYK.js +1 -0
  135. package/dist/web/chunk-SHPTC4RL.js +1 -0
  136. package/dist/web/chunk-SUZYBYDW.js +1 -0
  137. package/dist/web/chunk-SWKJRNYY.js +1 -0
  138. package/dist/web/chunk-T66XVKGB.js +1 -0
  139. package/dist/web/chunk-T7AZ65JP.js +1 -0
  140. package/dist/web/chunk-TCZDVOHD.js +1 -0
  141. package/dist/web/chunk-TPTITA3V.js +1 -0
  142. package/dist/web/chunk-TR335633.js +1 -0
  143. package/dist/web/chunk-TWXZK6XM.js +1 -0
  144. package/dist/web/chunk-UR5KDXPX.js +1 -0
  145. package/dist/web/chunk-UR6O2GEH.js +1 -0
  146. package/dist/web/chunk-UTNMGWTP.js +1 -0
  147. package/dist/web/chunk-UYC52MBC.js +1 -0
  148. package/dist/web/chunk-VECWMHJP.js +1 -0
  149. package/dist/web/chunk-VUACT35R.js +3 -0
  150. package/dist/web/chunk-VZI7H4SZ.js +1 -0
  151. package/dist/web/chunk-WAI2JMZP.js +1 -0
  152. package/dist/web/chunk-WB6YHOD4.js +1 -0
  153. package/dist/web/chunk-WBT64AWV.js +1 -0
  154. package/dist/web/chunk-WDU3WICG.js +1 -0
  155. package/dist/web/chunk-WFXJIXZE.js +4 -0
  156. package/dist/web/chunk-WTGYRH3Z.js +298 -0
  157. package/dist/web/chunk-WXTCVDTP.js +1 -0
  158. package/dist/web/chunk-X2HTISHL.js +1 -0
  159. package/dist/web/chunk-XCDHWLVH.js +1 -0
  160. package/dist/web/chunk-Y3H6FFUZ.js +1 -0
  161. package/dist/web/chunk-Y4F5ULGJ.js +1 -0
  162. package/dist/web/chunk-YAWCRPHV.js +1 -0
  163. package/dist/web/chunk-YEGKAAEE.js +1 -0
  164. package/dist/web/chunk-YM2KU57F.js +1 -0
  165. package/dist/web/chunk-YRERBP6T.js +1 -0
  166. package/dist/web/chunk-ZLV4VCDG.js +3 -0
  167. package/dist/web/chunk-ZTVI5KFF.js +1 -0
  168. package/dist/web/index.html +3 -3
  169. package/dist/web/main-ESADRXN2.css +1 -0
  170. package/dist/web/main-WVI3YTDU.js +1 -0
  171. package/dist/web/media/codicon-LN6W7LCM.ttf +0 -0
  172. package/dist/web/styles-KSOPUVDA.css +1 -0
  173. package/dist/workflows/defaults/claude-design-implement.yaml +247 -0
  174. package/dist/workflows/defaults/spec-author.yaml +214 -0
  175. package/dist/workflows/executor.d.ts.map +1 -1
  176. package/dist/workflows/executor.js +4 -3
  177. package/dist/workflows/executor.js.map +1 -1
  178. package/package.json +8 -3
  179. package/scripts/offline-install.sh +19 -6
  180. package/scripts/sync-shim-version.mjs +64 -0
  181. package/dist/web/chunk-2YZXEHZ2.js +0 -1
  182. package/dist/web/chunk-3GIC555L.js +0 -18
  183. package/dist/web/chunk-3IIIGRMT.js +0 -1
  184. package/dist/web/chunk-47QYKLE5.js +0 -1
  185. package/dist/web/chunk-4LHBWWP7.js +0 -1
  186. package/dist/web/chunk-4OAZLD5W.js +0 -1
  187. package/dist/web/chunk-5OQKAJAE.js +0 -1
  188. package/dist/web/chunk-7B525GKQ.js +0 -1
  189. package/dist/web/chunk-BPDXCOOZ.js +0 -1
  190. package/dist/web/chunk-DT37HTZB.js +0 -1
  191. package/dist/web/chunk-EIMUHJND.js +0 -1
  192. package/dist/web/chunk-FTESTUEO.js +0 -1
  193. package/dist/web/chunk-GLJZV6MU.js +0 -1
  194. package/dist/web/chunk-I7LS67U5.js +0 -1
  195. package/dist/web/chunk-L4TVIPSR.js +0 -1
  196. package/dist/web/chunk-MASCULC2.js +0 -1
  197. package/dist/web/chunk-MW7ICSRM.js +0 -1
  198. package/dist/web/chunk-OI5VP2A3.js +0 -1
  199. package/dist/web/chunk-RA6EBF6I.js +0 -1
  200. package/dist/web/chunk-RP3WU5Y6.js +0 -1
  201. package/dist/web/chunk-RQDRMTXN.js +0 -1
  202. package/dist/web/chunk-TQMT6UDU.js +0 -1
  203. package/dist/web/chunk-U7IYOV7T.js +0 -1
  204. package/dist/web/chunk-UE227MWF.js +0 -1
  205. package/dist/web/chunk-WV573J4K.js +0 -1
  206. package/dist/web/chunk-WVCKOJZL.js +0 -4
  207. package/dist/web/chunk-XZKLVPHE.js +0 -1
  208. package/dist/web/chunk-ZABKKHJ3.js +0 -1
  209. package/dist/web/main-RI5CO5Z4.js +0 -1
  210. package/dist/web/styles-CYN7IKT4.css +0 -1
  211. /package/commands/{cg-explore.md → ss-explore.md} +0 -0
  212. /package/commands/{cg-impact.md → ss-impact.md} +0 -0
  213. /package/commands/{cg-relink.md → ss-relink.md} +0 -0
  214. /package/commands/{cg-spec.md → ss-spec.md} +0 -0
  215. /package/commands/{cg-sync.md → ss-sync.md} +0 -0
  216. /package/commands/{cg-trace.md → ss-trace.md} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/workflows/executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/workflows/executor.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@selvakumaresra/specship",
3
- "version": "0.1.2",
3
+ "version": "0.3.0",
4
4
  "description": "Supercharge Claude Code with semantic code intelligence. 94% fewer tool calls • 77% faster exploration • 100% local.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -28,7 +28,10 @@
28
28
  "test:watch": "vitest",
29
29
  "test:eval": "vitest run __tests__/evaluation/",
30
30
  "eval": "npm run build && npx tsx __tests__/evaluation/runner.ts",
31
- "clean": "node -e \"const fs=require('fs');fs.rmSync('dist',{recursive:true,force:true})\""
31
+ "clean": "node -e \"const fs=require('fs');fs.rmSync('dist',{recursive:true,force:true})\"",
32
+ "sync:shim": "node scripts/sync-shim-version.mjs",
33
+ "version": "npm run sync:shim",
34
+ "release:shim": "node scripts/sync-shim-version.mjs && cd packages/specship-shim && npm publish --access public"
32
35
  },
33
36
  "keywords": [
34
37
  "code-intelligence",
@@ -56,10 +59,12 @@
56
59
  "@types/better-sqlite3": "^7.6.0",
57
60
  "@types/node": "^20.19.30",
58
61
  "@types/picomatch": "^4.0.2",
59
- "better-sqlite3": "^11.10.0",
60
62
  "typescript": "^5.0.0",
61
63
  "vitest": "^2.1.9"
62
64
  },
65
+ "optionalDependencies": {
66
+ "better-sqlite3": "^11.10.0"
67
+ },
63
68
  "engines": {
64
69
  "node": ">=20.0.0 <25.0.0"
65
70
  }
@@ -93,17 +93,30 @@ echo "[offline-install] node: $(node --version)"
93
93
  echo "[offline-install] registry: $(npm config get registry)"
94
94
 
95
95
  # --- install deps (offline-friendly: respects whatever registry npm is on) ---
96
+ #
97
+ # --ignore-scripts skips native-module postinstalls (notably better-sqlite3,
98
+ # whose node-gyp rebuild needs a C toolchain that an air-gapped workstation
99
+ # usually doesn't have). SpecShip treats better-sqlite3 as optional anyway —
100
+ # without it the wasm SQLite path takes over, which is what the offline-
101
+ # install flow expects.
96
102
  if [ -f package-lock.json ]; then
97
- echo "[offline-install] npm ci"
98
- npm ci
103
+ echo "[offline-install] npm ci --ignore-scripts"
104
+ npm ci --ignore-scripts
99
105
  else
100
- echo "[offline-install] npm install"
101
- npm install
106
+ echo "[offline-install] npm install --ignore-scripts"
107
+ npm install --ignore-scripts
102
108
  fi
103
109
 
104
110
  # --- build -------------------------------------------------------------------
105
- echo "[offline-install] npm run build"
106
- npm run build
111
+ # Skip the build when this is a pre-compiled drop (no tsconfig.json + a
112
+ # populated dist/ already on disk). The release tarball is shipped pre-built;
113
+ # only a source checkout has tsconfig.json and needs `npm run build`.
114
+ if [ -f tsconfig.json ]; then
115
+ echo "[offline-install] npm run build"
116
+ npm run build
117
+ else
118
+ echo "[offline-install] skipping build (pre-compiled dist/ found)"
119
+ fi
107
120
 
108
121
  # --- link as global specship ------------------------------------------------
109
122
  echo "[offline-install] npm link"
@@ -0,0 +1,64 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Sync `packages/specship-shim/package.json` against the root version.
4
+ *
5
+ * The unscoped `specship-cli` shim has one dependency — `@selvakumaresra/specship`
6
+ * pinned to a specific version (NOT a range, because the shim's whole job is
7
+ * to deliver THE matching CLI). So every root release needs the shim's:
8
+ * - `version` → the root's new version
9
+ * - `dependencies["@selvakumaresra/specship"]` → exact match, same pin
10
+ *
11
+ * Wired into the root package's `version` lifecycle, this runs automatically
12
+ * when `npm version <bump>` mutates the root. After it runs, the modified
13
+ * shim package.json is `git add`-ed into the same version-bump commit so the
14
+ * release stays atomic.
15
+ *
16
+ * Usage (manual): `npm run sync:shim`
17
+ * Usage (auto): triggered by `npm version patch|minor|major` via the
18
+ * root `version` script.
19
+ */
20
+ import { execSync } from 'node:child_process';
21
+ import { readFileSync, writeFileSync } from 'node:fs';
22
+ import path from 'node:path';
23
+ import { fileURLToPath } from 'node:url';
24
+
25
+ const here = path.dirname(fileURLToPath(import.meta.url));
26
+ const repoRoot = path.resolve(here, '..');
27
+ const rootPkgPath = path.join(repoRoot, 'package.json');
28
+ const shimPkgPath = path.join(repoRoot, 'packages', 'specship-shim', 'package.json');
29
+
30
+ function readJson(p) { return JSON.parse(readFileSync(p, 'utf-8')); }
31
+ function writeJson(p, obj) { writeFileSync(p, JSON.stringify(obj, null, 2) + '\n'); }
32
+
33
+ const rootPkg = readJson(rootPkgPath);
34
+ const shimPkg = readJson(shimPkgPath);
35
+ const rootName = rootPkg.name; // e.g. @selvakumaresra/specship
36
+ const target = rootPkg.version;
37
+
38
+ const changes = [];
39
+ if (shimPkg.version !== target) {
40
+ changes.push(`version: ${shimPkg.version} → ${target}`);
41
+ shimPkg.version = target;
42
+ }
43
+ shimPkg.dependencies ??= {};
44
+ const currentPin = shimPkg.dependencies[rootName];
45
+ if (currentPin !== target) {
46
+ changes.push(`dep ${rootName}: ${currentPin ?? '(missing)'} → ${target}`);
47
+ shimPkg.dependencies[rootName] = target;
48
+ }
49
+
50
+ if (changes.length === 0) {
51
+ console.log(`[sync-shim] already in sync at ${target}`);
52
+ process.exit(0);
53
+ }
54
+
55
+ writeJson(shimPkgPath, shimPkg);
56
+ console.log(`[sync-shim] updated packages/specship-shim/package.json:`);
57
+ for (const c of changes) console.log(` - ${c}`);
58
+
59
+ // Stage the change so `npm version` rolls it into the same commit.
60
+ try {
61
+ execSync('git add packages/specship-shim/package.json', { cwd: repoRoot, stdio: 'inherit' });
62
+ } catch {
63
+ // Not in a git repo (or git unavailable) — fine; sync still happened on disk.
64
+ }
@@ -1 +0,0 @@
1
- import{a as h}from"./chunk-4OAZLD5W.js";import{a as _}from"./chunk-FTESTUEO.js";import"./chunk-L4TVIPSR.js";import"./chunk-RP3WU5Y6.js";import{$a as l,Aa as r,Ab as b,Ka as y,Va as x,Wa as s,Xa as p,Ya as m,Za as e,_a as t,jb as u,pb as g,rb as f,sb as n,tb as c}from"./chunk-WVCKOJZL.js";var v=(a,o)=>o.name,C=(a,o)=>o.kind;function P(a,o){if(a&1&&(e(0,"div",40)(1,"div",41),n(2),t(),e(3,"div",42),n(4),t()()),a&2){let i=o.$implicit;g("background","var("+i.name+")"),r(2),c(i.name),r(2),c(i.value)}}function M(a,o){if(a&1&&(e(0,"div",10)(1,"span",43),n(2,"The quick brown fox jumps over the lazy dog \xB7 0123456789"),t(),l(3,"span",44),e(4,"span",45),n(5),t()()),a&2){let i=o.$implicit;r(),g("color","var("+i.name+")"),r(4),c(i.name)}}function w(a,o){if(a&1&&l(0,"div",49),a&2){let i=o.$implicit,d=u().$implicit;g("width",i,"px")("height",i,"px")("background","var("+d.varName+")")}}function k(a,o){if(a&1&&(e(0,"div",13)(1,"div",46),n(2),t(),e(3,"div",47),s(4,w,1,6,"div",48,x),t(),e(6,"div",45),n(7),t()()),a&2){let i=o.$implicit,d=u();r(2),c(i.name),r(2),p(d.fineSizes),r(3),c(i.varName)}}function E(a,o){if(a&1&&(e(0,"div",50),l(1,"div",51),e(2,"div",4),n(3),t(),e(4,"div",45),n(5),t()()),a&2){let i=o.$implicit;g("--c","var("+i.varName+")"),r(),g("background","var("+i.varName+")"),r(2),c(i.name),r(2),c(i.varName)}}function O(a,o){if(a&1&&(e(0,"span"),n(1),t()),a&2){let i=o.$implicit;f(b("pill state-",i.cls)),r(),c(i.kind)}}function z(a,o){if(a&1&&(e(0,"span"),n(1),t()),a&2){let i=o.$implicit;f(b("pill state-",i.cls)),r(),c(i.kind)}}function D(a,o){if(a&1&&(e(0,"div",34),l(1,"app-icon",52),e(2,"span",45),n(3),t()()),a&2){let i=o.$implicit;r(),m("name",i)("size",18),r(2),c(i)}}var S=class a{surfaces=[{name:"--bg-canvas",value:"canvas",sample:"bg"},{name:"--bg-canvas-2",value:"graph void",sample:"bg"},{name:"--bg-panel",value:"panel",sample:"bg"},{name:"--bg-panel-2",value:"panel-2",sample:"bg"},{name:"--bg-elevated",value:"elevated",sample:"bg"}];text=[{name:"--text-primary",value:"primary",sample:"fg"},{name:"--text-secondary",value:"secondary",sample:"fg"},{name:"--text-muted",value:"muted",sample:"fg"},{name:"--text-faint",value:"faint",sample:"fg"}];nodeColors=[{name:"code",varName:"--node-code"},{name:"spec",varName:"--node-spec"},{name:"test",varName:"--node-test"},{name:"route",varName:"--node-route"}];semantic=[{name:"success",varName:"--success"},{name:"warn",varName:"--warn"},{name:"error",varName:"--error"},{name:"info",varName:"--info"}];statePills=[{kind:"pending",cls:"pending"},{kind:"running",cls:"running"},{kind:"paused",cls:"paused"},{kind:"completed",cls:"completed"},{kind:"failed",cls:"failed"},{kind:"cancelled",cls:"cancelled"}];specStates=[{kind:"verified",cls:"completed"},{kind:"drifted",cls:"paused"},{kind:"broken",cls:"failed"},{kind:"orphaned",cls:"cancelled"}];fineSizes=[4,6,8,10,14];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"];static \u0275fac=function(i){return new(i||a)};static \u0275cmp=y({type:a,selectors:[["app-design"]],decls:94,vars:6,consts:[[1,"design-page","scroll-y"],[1,"hero","card","card-pad","row","gap-16"],[3,"size"],[1,"col","gap-4"],[1,"title"],[1,"sub","secondary"],[1,"eyebrow"],[1,"swatches"],[1,"swatch",3,"background"],[1,"text-samples","card","card-pad","col","gap-6"],[1,"row","gap-10"],[1,"card","card-pad"],[1,"row","gap-16","nodes-row"],[1,"col","gap-6","node-col"],[1,"state-tile","col","gap-4",3,"--c"],[1,"card","card-pad","row","gap-10","wrap"],[1,"btn","btn-primary"],["name","play",3,"size"],[1,"btn","btn-secondary"],["name","refresh",3,"size"],[1,"btn","btn-ghost"],["name","filter",3,"size"],[1,"btn","btn-destructive"],["name","x",3,"size"],[1,"btn","btn-secondary","btn-sm"],["name","copy",3,"size"],[1,"btn","btn-secondary","btn-xs"],["disabled","",1,"btn","btn-primary"],[1,"card","card-pad","row","gap-8","wrap"],[3,"class"],[1,"card","card-pad","col","gap-10"],["placeholder","Default input \u2014 try focusing",1,"input"],["value","3B82F6",1,"input"],[1,"card","card-pad","icons-grid"],[1,"icon-cell","col","gap-4"],[1,"t-title"],[1,"t-section"],[1,"t-body"],[1,"mono"],[1,"muted","xs"],[1,"swatch"],[1,"lbl","mono"],[1,"sub","mono","muted"],[1,"text-sample"],[1,"grow"],[1,"mono","muted","xs"],[1,"node-label","mono"],[1,"node-stack","row","gap-4"],[1,"node-dot",3,"width","height","background"],[1,"node-dot"],[1,"state-tile","col","gap-4"],[1,"dot"],[3,"name","size"]],template:function(i,d){i&1&&(e(0,"div",0)(1,"div",1),l(2,"app-logo-mark",2),e(3,"div",3)(4,"div",4),n(5,"SpecShip \u2014 Design system"),t(),e(6,"div",5),n(7,"Dark-first. Graph as hero. Geist + Geist Mono. Every token shipped in this app comes from this page."),t()()(),e(8,"section")(9,"div",6),n(10,"Palette \xB7 surfaces"),t(),e(11,"div",7),s(12,P,5,4,"div",8,v),t()(),e(14,"section")(15,"div",6),n(16,"Palette \xB7 text"),t(),e(17,"div",9),s(18,M,6,3,"div",10,v),t()(),e(20,"section")(21,"div",6),n(22,"Node colors \xB7 4px legibility test"),t(),e(23,"div",11)(24,"div",12),s(25,k,8,2,"div",13,v),t()()(),e(27,"section")(28,"div",6),n(29,"Semantic states"),t(),e(30,"div",10),s(31,E,6,6,"div",14,v),t()(),e(33,"section")(34,"div",6),n(35,"Buttons"),t(),e(36,"div",15)(37,"button",16),l(38,"app-icon",17),n(39," Primary "),t(),e(40,"button",18),l(41,"app-icon",19),n(42," Secondary "),t(),e(43,"button",20),l(44,"app-icon",21),n(45," Ghost "),t(),e(46,"button",22),l(47,"app-icon",23),n(48," Destructive "),t(),e(49,"button",24),l(50,"app-icon",25),n(51," Small "),t(),e(52,"button",26),n(53,"XS"),t(),e(54,"button",27),n(55,"Disabled"),t()()(),e(56,"section")(57,"div",6),n(58,"Run state pills"),t(),e(59,"div",28),s(60,O,2,4,"span",29,C),t()(),e(62,"section")(63,"div",6),n(64,"Spec link states"),t(),e(65,"div",28),s(66,z,2,4,"span",29,C),t()(),e(68,"section")(69,"div",6),n(70,"Inputs"),t(),e(71,"div",30),l(72,"input",31)(73,"input",32),t()(),e(74,"section")(75,"div",6),n(76,"Iconography \xB7 Lucide"),t(),e(77,"div",33),s(78,D,4,3,"div",34,x),t()(),e(80,"section")(81,"div",6),n(82,"Typography"),t(),e(83,"div",30)(84,"div",35),n(85,"22px \xB7 Page title \u2014 Geist 650"),t(),e(86,"div",36),n(87,"14px \xB7 Section title \u2014 Geist 600"),t(),e(88,"div",37),n(89,"13px \xB7 Body copy \u2014 Geist 450"),t(),e(90,"div",38),n(91,"12px \xB7 Mono \u2014 Geist Mono 500 \u2014 node_count = 9289"),t(),e(92,"div",39),n(93,"11px \xB7 Eyebrow / caption"),t()()()()),i&2&&(r(2),m("size",56),r(10),p(d.surfaces),r(6),p(d.text),r(7),p(d.nodeColors),r(6),p(d.semantic),r(7),m("size",14),r(3),m("size",14),r(3),m("size",14),r(3),m("size",14),r(3),m("size",13),r(10),p(d.statePills),r(6),p(d.specStates),r(12),p(d.iconSample))},dependencies:[_,h],styles:["[_nghost-%COMP%]{display:flex;flex:1;min-height:0}.design-page[_ngcontent-%COMP%]{flex:1;padding:22px 26px}.hero[_ngcontent-%COMP%]{display:flex;align-items:center;margin-bottom:24px}.hero[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:22px;font-weight:650;letter-spacing:-.01em}.hero[_ngcontent-%COMP%] .sub[_ngcontent-%COMP%]{font-size:13px}section[_ngcontent-%COMP%]{margin-bottom:22px}section[_ngcontent-%COMP%] .eyebrow[_ngcontent-%COMP%]{margin-bottom:8px}.swatches[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.swatch[_ngcontent-%COMP%]{height:80px;border:1px solid var(--border-subtle);border-radius:9px;padding:10px 12px;display:flex;flex-direction:column;justify-content:flex-end}.swatch[_ngcontent-%COMP%] .lbl[_ngcontent-%COMP%]{font-size:11px;color:var(--text-primary);font-weight:600}.swatch[_ngcontent-%COMP%] .sub[_ngcontent-%COMP%]{font-size:10.5px}.text-samples[_ngcontent-%COMP%]{background:var(--bg-panel)}.text-sample[_ngcontent-%COMP%]{font-size:13.5px;font-weight:450}.nodes-row[_ngcontent-%COMP%]{padding:8px 4px;flex-wrap:wrap}.node-col[_ngcontent-%COMP%]{min-width:110px}.node-label[_ngcontent-%COMP%]{font-size:11.5px;color:var(--text-secondary);font-weight:600}.node-stack[_ngcontent-%COMP%]{align-items:center;height:28px}.node-dot[_ngcontent-%COMP%]{border-radius:50%;flex-shrink:0}.state-tile[_ngcontent-%COMP%]{flex:1;min-width:110px;padding:12px 14px;border-radius:10px;background:var(--bg-panel);border:1px solid var(--border-subtle);border-left:3px solid var(--c, var(--accent))}.state-tile[_ngcontent-%COMP%] .dot[_ngcontent-%COMP%]{width:8px;height:8px;border-radius:50%}.state-tile[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{text-transform:capitalize;font-weight:600;font-size:12.5px}.wrap[_ngcontent-%COMP%]{flex-wrap:wrap}.pill[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;line-height:1.5;white-space:nowrap;text-transform:capitalize}.state-pending[_ngcontent-%COMP%]{color:var(--text-muted);background:var(--bg-active)}.state-running[_ngcontent-%COMP%]{color:var(--info);background:var(--info-soft)}.state-paused[_ngcontent-%COMP%]{color:var(--warn);background:var(--warn-soft)}.state-completed[_ngcontent-%COMP%]{color:var(--success);background:var(--success-soft)}.state-failed[_ngcontent-%COMP%]{color:var(--error);background:var(--error-soft)}.state-cancelled[_ngcontent-%COMP%]{color:var(--text-muted);background:#ffffff0f}.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)}.t-title[_ngcontent-%COMP%]{font-size:22px;font-weight:650;letter-spacing:-.01em}.t-section[_ngcontent-%COMP%]{font-size:14px;font-weight:600}.t-body[_ngcontent-%COMP%]{font-size:13px;font-weight:450;color:var(--text-secondary)}.muted[_ngcontent-%COMP%]{color:var(--text-muted)}.secondary[_ngcontent-%COMP%]{color:var(--text-secondary)}.xs[_ngcontent-%COMP%]{font-size:11px}.grow[_ngcontent-%COMP%]{flex:1}"],changeDetection:0})};export{S as Design};
@@ -1,18 +0,0 @@
1
- import{a as B}from"./chunk-4LHBWWP7.js";import{a as H}from"./chunk-FTESTUEO.js";import{a as R}from"./chunk-47QYKLE5.js";import{a as j}from"./chunk-ZABKKHJ3.js";import{c as $}from"./chunk-L4TVIPSR.js";import"./chunk-RP3WU5Y6.js";import{$a as s,Aa as n,K as P,Ka as N,Kb as f,P as z,Q as F,Sa as g,Ta as u,Va as A,Wa as b,Xa as h,Ya as m,Za as r,_a as a,aa as S,ba as D,db as L,hb as w,jb as v,pb as x,qb as k,sb as l,tb as c,ub as C,wa as E}from"./chunk-WVCKOJZL.js";var V=(i,t)=>t.key,O=(i,t)=>t.id;function Q(i,t){i&1&&(r(0,"span",16),l(1,"seed data"),a())}function Y(i,t){i&1&&(r(0,"span",17),l(1,"live"),a())}function q(i,t){if(i&1&&s(0,"span",29),i&2){let e=v().$implicit;x("background",e.color)}}function W(i,t){if(i&1&&(r(0,"span",28),l(1),a()),i&2){let e=v().$implicit;n(),c(e.count)}}function X(i,t){if(i&1){let e=L();r(0,"button",26),w("click",function(){let d=z(e).$implicit,p=v();return F(p.onTypeFilter(d.key))}),g(1,q,1,2,"span",27),l(2),g(3,W,2,1,"span",28),a()}if(i&2){let e=t.$implicit,o=v();x("--chip-color",e.color)("--chip-bg",e.soft),k("active",o.typeFilter()===e.key),n(),u(e.key!=="all"?1:-1),n(),C(" ",e.label," "),n(),u(e.count!==void 0?3:-1)}}function J(i,t){if(i&1&&(r(0,"span",23),l(1),a()),i&2){let e=v();n(),c(e.typeDesc())}}function Z(i,t){i&1&&s(0,"app-icon",43),i&2&&m("size",10)}function ee(i,t){if(i&1){let e=L();r(0,"div",38),w("click",function(){let d=z(e).$implicit,p=v(3);return F(p.onSelectByObj(d))}),s(1,"span",39)(2,"app-icon",40),r(3,"div",4)(4,"div",41)(5,"span",42),l(6),a(),g(7,Z,1,1,"app-icon",43),a(),r(8,"div",44),l(9),a()(),r(10,"span",45),l(11),a()()}if(i&2){let e=t.$implicit,o=v(3);k("selected",o.selectedId()===e.id)("indent",o.isIndented(e)),n(),x("background",o.L[e.level].color),n(),m("name",o.iconFor(e))("size",13),n(4),c(o.nameFor(e)),n(),u(e.readOnly?7:-1),n(2),c(e.path),n(2),c(o.fmtK(e.tokens))}}function te(i,t){if(i&1&&(r(0,"div",32)(1,"div",35)(2,"span",36),l(3),a(),r(4,"span",23),l(5),a()(),b(6,ee,12,12,"div",37,O),a()),i&2){let e=t.$implicit,o=v(2);n(3),c(o.L[e.key].label),n(2),c(o.L[e.key].desc),n(),h(o.rowItems(e))}}function ne(i,t){i&1&&(r(0,"span",49),s(1,"app-icon",62),l(2," read-only"),a()),i&2&&(n(),m("size",10))}function ie(i,t){if(i&1&&(r(0,"div",53)(1,"div",11),l(2,"Saved in"),a(),r(3,"button",63),l(4),a()()),i&2){let e=v();n(4),c(e.session)}}function oe(i,t){if(i&1&&(r(0,"span",64),l(1),a()),i&2){let e=t.$implicit;n(),C("#",e)}}function re(i,t){if(i&1&&(r(0,"div",55),b(1,oe,2,1,"span",64,A),a()),i&2){let e=v();n(),h(e.tags)}}function ae(i,t){if(i&1&&(r(0,"div",66),s(1,"app-icon",14),r(2,"span",67),l(3),a(),r(4,"span",68),l(5),a()()),i&2){let e=t.$implicit,o=v(4);n(),m("size",12),n(2),c(e.path),n(2),c(o.fmtK(e.tokens))}}function le(i,t){if(i&1&&(r(0,"div",57)(1,"div",36),l(2),a(),r(3,"div",65),b(4,ae,6,3,"div",66,O),a()()),i&2){let e=v(3);n(2),C("Imports \xB7 ",e.currentImports().length),n(2),h(e.currentImports())}}function de(i,t){if(i&1&&(r(0,"button",59),s(1,"app-icon",69),l(2),a()),i&2){let e=v();n(),m("size",13),n(),C(" ",e.type==="note"?"Edit note":"Edit memory"," ")}}function se(i,t){i&1&&(r(0,"button",61),s(1,"app-icon",70),l(2," Forget "),a()),i&2&&(n(),m("size",13))}function ce(i,t){if(i&1&&(r(0,"div",34)(1,"div",46)(2,"span",47),s(3,"app-icon",40),l(4),a(),r(5,"span",47),l(6),a(),r(7,"span",48),l(8),a(),s(9,"span",15),g(10,ne,3,1,"span",49),a(),r(11,"div",50)(12,"span",51),l(13),a()(),r(14,"div",52)(15,"div",53)(16,"div",11),l(17,"Tokens"),a(),r(18,"div",54),l(19),a()(),r(20,"div",53)(21,"div",11),l(22,"Lines"),a(),r(23,"div",54),l(24),a()(),r(25,"div",53)(26,"div",11),l(27,"Scope"),a(),r(28,"div",54),l(29),a()(),r(30,"div",53)(31,"div",11),l(32,"Modified"),a(),r(33,"div",54),l(34),a()(),g(35,ie,5,1,"div",53),a(),g(36,re,3,0,"div",55),s(37,"div",56),g(38,le,6,1,"div",57),r(39,"div",58),g(40,de,3,2,"button",59),r(41,"button",59),s(42,"app-icon",60),l(43," Copy contents "),a(),g(44,se,3,1,"button",61),a()()),i&2){let e=t,o=v(2);n(2),x("background",o.T[e.type].soft)("color",o.T[e.type].color),n(),m("name",o.T[e.type].icon)("size",10),n(),C(" ",o.T[e.type].label," "),n(),x("background",o.L[e.level].soft)("color",o.L[e.level].color),n(),c(o.L[e.level].label),n(2),c(o.L[e.level].desc),n(2),u(e.readOnly?10:-1),n(3),c(e.path),n(6),c(o.fmtK(e.tokens)),n(5),c(e.lines),n(5),c(o.L[e.level].label),n(5),c(e.modified),n(),u(e.type==="note"&&e.session?35:-1),n(),u(e.type==="note"&&(e.tags!=null&&e.tags.length)?36:-1),n(),m("innerHTML",o.currentBody(),E),n(),u(o.currentImports().length>0?38:-1),n(2),u(e.readOnly?-1:40),n(2),m("size",13),n(2),u(e.type==="note"?44:-1)}}function pe(i,t){if(i&1&&(r(0,"div",24)(1,"div",30)(2,"div",31),b(3,te,8,2,"div",32,V),a()(),r(5,"div",33),g(6,ce,45,26,"div",34),a()()),i&2){let e,o=v();n(3),h(o.railGroups()),n(3),u((e=o.current())?6:-1,e)}}function me(i,t){i&1&&s(0,"app-icon",43),i&2&&m("size",11)}function ve(i,t){if(i&1&&(r(0,"div",77),s(1,"div",78),r(2,"div",79)(3,"div",80)(4,"span",81),l(5),a(),r(6,"span",47),l(7),a(),r(8,"span",51),l(9),a(),s(10,"span",15),g(11,me,1,1,"app-icon",43),r(12,"span",68),l(13),a()(),s(14,"div",82),a()()),i&2){let e=t.$implicit,o=t.$index,d=v(3);n(),x("background",d.L[e.level].color),n(4),c(o+1),n(),x("background",d.L[e.level].soft)("color",d.L[e.level].color),n(),c(d.L[e.level].label),n(2),c(e.path),n(2),u(e.readOnly?11:-1),n(2),c(d.fmtK(e.tokens)),n(),m("innerHTML",d.renderBody(e.body),E)}}function ge(i,t){if(i&1&&(r(0,"div",75),l(1,"Instructions \xB7 precedence order"),a(),r(2,"div",76),b(3,ve,15,12,"div",77,O),a()),i&2){let e=v(2);n(3),h(e.effectiveInstructions())}}function ue(i,t){if(i&1&&(r(0,"div",77),s(1,"div",78),r(2,"div",79)(3,"div",80)(4,"span",47),l(5),a(),r(6,"span",51),l(7),a(),s(8,"span",15),r(9,"span",68),l(10),a()(),s(11,"div",82),a()()),i&2){let e=t.$implicit,o=v(3);n(),x("background",o.L[e.level].color),n(3),x("background",o.L[e.level].soft)("color",o.L[e.level].color),n(),c(o.L[e.level].label),n(2),c(e.path),n(3),c(o.fmtK(e.tokens)),n(),m("innerHTML",o.renderBody(e.body),E)}}function fe(i,t){if(i&1&&(r(0,"div",83)(1,"span",36),l(2,"Notes \xB7 memory tool"),a(),r(3,"span",23),l(4,"retrieved facts, not precedence-ranked"),a()(),r(5,"div",76),b(6,ue,12,10,"div",77,O),a()),i&2){let e=v(2);n(6),h(e.effectiveNotes())}}function ye(i,t){if(i&1&&(r(0,"div",25)(1,"div",71),s(2,"app-icon",72),r(3,"span",73),l(4,"Effective memory"),a(),r(5,"span",48),l(6,"\xB7 everything the agent loads"),a()(),r(7,"div",74),l(8," Instructions merge in precedence order \u2014 managed policy is authoritative and lower blocks fill in where higher ones are silent. Saved notes are appended as retrieved context. "),a(),g(9,ge,5,0),g(10,fe,8,0),a()),i&2){let e=v();n(2),m("size",15),n(7),u(e.effectiveInstructions().length>0?9:-1),n(),u(e.effectiveNotes().length>0?10:-1)}}var U={enterprise:{key:"enterprise",label:"Managed",color:"#E5A50A",soft:"rgba(229,165,10,0.14)",desc:"Organization policy \xB7 cannot be overridden"},user:{key:"user",label:"User",color:"#29D2BE",soft:"rgba(41,210,190,0.14)",desc:"Personal \xB7 applies to every project"},project:{key:"project",label:"Project",color:"#5B93F2",soft:"rgba(91,147,242,0.14)",desc:"Team-shared \xB7 checked into the repo"},subdir:{key:"subdir",label:"Directory",color:"#A586F5",soft:"rgba(165,134,245,0.14)",desc:"Scoped to a subtree \xB7 loaded when cwd is inside"},import:{key:"import",label:"Import",color:"#7B8696",soft:"rgba(123,134,150,0.12)",desc:"Pulled in via @path reference"},note:{key:"note",label:"Notes",color:"#46C26B",soft:"rgba(70,194,107,0.14)",desc:"Agent-written \xB7 memory tool"}},y={instruction:{key:"instruction",label:"Instructions",color:"#5B93F2",soft:"rgba(91,147,242,0.14)",icon:"memory",desc:"Directives & rules from CLAUDE.md"},note:{key:"note",label:"Notes",color:"#46C26B",soft:"rgba(70,194,107,0.14)",icon:"tips",desc:"Facts the agent saved via the memory tool"},import:{key:"import",label:"Imports",color:"#29D2BE",soft:"rgba(41,210,190,0.14)",icon:"external",desc:"Files pulled in via @path"}},xe=["enterprise","project","subdir","import","user"],_e=[{id:"m-ent",level:"enterprise",type:"instruction",name:"CLAUDE.md",scope:"managed",readOnly:!0,path:"/Library/Application Support/ClaudeCode/CLAUDE.md",tokens:210,lines:9,modified:"managed",body:"# Engineering policy (managed)\n\n- All code must pass `pnpm lint` and `pnpm typecheck` before commit.\n- Never commit secrets, API keys, or `.env` files.\n- Prefer dependency-free solutions; new deps require review.\n- Validate all external input at trust boundaries.\n- Production logs must not contain user content."},{id:"m-user",level:"user",type:"instruction",name:"CLAUDE.md",scope:"~/.claude",path:"~/.claude/CLAUDE.md",tokens:280,lines:12,modified:"3d ago",body:"# Personal preferences\n\n- Before reading a file, try `specship_explore` for structure first.\n- Use conventional commits (`feat:`, `fix:`, `chore:`).\n- Prefer `rg` over `grep`, `fd` over `find`.\n- Keep responses terse \u2014 show diffs, not whole files.\n- Editor open command: `cursor`.\n- Default model for read/edit turns: Sonnet."},{id:"m-proj",level:"project",type:"instruction",name:"CLAUDE.md",scope:"project root",path:"~/dev/specship/CLAUDE.md",tokens:760,lines:28,modified:"2h ago",imports:["m-imp-conv","m-imp-style"],body:"# SpecShip \u2014 project memory\n\n## Architecture\n- Electron + Angular renderer in `packages/web-ng`.\n- MCP server in `src/mcp`, graph engine in `src/graph`.\n- SQLite via better-sqlite3; migrations in `src/db/migrations.ts`.\n\n## Commands\n- `npm run dev` \u2014 renderer + MCP in watch mode.\n- `npm test` \u2014 vitest; `npm run eval` \u2014 evaluation runner.\n- `npm run cli` \u2014 local SpecShip binary.\n\n## Conventions\n- Spec IDs are stable: `REQ-<AREA>-<NNN>`.\n- Never edit generated files under `src/graph/_gen`.\n\n@docs/conventions.md\n@specs/STYLE.md"},{id:"m-sub",level:"subdir",type:"instruction",name:"CLAUDE.md",scope:"src/graph",path:"~/dev/specship/src/graph/CLAUDE.md",tokens:190,lines:7,modified:"1d ago",body:`# Graph engine notes
2
-
3
- - Layout runs in a worker \u2014 keep \`applyLayout\` pure.
4
- - Node positions are cached by content hash.
5
- - Above 5k nodes, cull to viewport + 1-hop (REQ-GRAPH-006).
6
- - Synthesized edges are dashed; never persist them.`},{id:"m-imp-conv",level:"import",type:"import",name:"conventions.md",scope:"@import",path:"docs/conventions.md",tokens:120,lines:6,modified:"5d ago",body:"# Conventions\n\n- One component per file; co-locate styles.\n- Name event handlers `onX`; booleans `isX`/`hasX`.\n- No default exports in shared modules."},{id:"m-imp-style",level:"import",type:"import",name:"STYLE.md",scope:"@import",path:"specs/STYLE.md",tokens:100,lines:5,modified:"5d ago",body:`# Spec style
7
-
8
- - Requirements use MUST / SHOULD / MAY.
9
- - Each requirement gets one acceptance block.
10
- - Keep titles under 8 words.`},{id:"n-build",level:"note",type:"note",name:"build-system.md",scope:"memory tool",path:"~/.claude/memory/build-system.md",tokens:64,lines:4,modified:"today 14:31",session:"a3f9c1d2",tags:["build","tooling"],body:"# Build system\n\n- Package manager is **npm**, never pnpm in this fork.\n- `npm run dev` runs renderer + MCP in watch mode.\n- Run `npm run build` after any schema change."},{id:"n-auth",level:"note",type:"note",name:"auth-jwt.md",scope:"memory tool",path:"~/.claude/memory/auth-jwt.md",tokens:58,lines:4,modified:"today 15:38",session:"a3f9c1d2",tags:["auth","REQ-AUTH-005"],body:"# Auth model\n\n- Session tokens are signed **JWTs**.\n- `checkExpiry` tolerates 30s clock skew (REQ-AUTH-005).\n- Expired tokens return 401 with `code: token_expired`."},{id:"n-graph",level:"note",type:"note",name:"graph-perf.md",scope:"memory tool",path:"~/.claude/memory/graph-perf.md",tokens:52,lines:4,modified:"yest 16:44",session:"f04a8b13",tags:["graph","perf"],body:`# Graph performance
11
-
12
- - Above 5k nodes, layout culls to viewport + 1-hop.
13
- - \`applyLayout\` must stay pure (runs in a worker).
14
- - Node positions cached by content hash.`},{id:"n-cost",level:"note",type:"note",name:"cost-prefs.md",scope:"memory tool",path:"~/.claude/memory/cost-prefs.md",tokens:44,lines:3,modified:"Jun 4 09:20",session:"b5f2c8d9",tags:["cost","model"],body:`# Cost preferences
15
-
16
- - Route read/edit-only turns to Sonnet.
17
- - Pin a stable system-prompt prefix to keep the 1h cache warm.`}],K=class i{sanitizer=P($);api=P(j);projects=P(R);view=S("sources");typeFilter=S("all");selectedId=S("m-proj");L=U;T=y;resource=B(this.api,()=>`/api/memory${this.projects.projectQuery()}`);files=f(()=>{let t=this.resource.state().data;return t?.files?.length?t.files:_e});source=f(()=>this.resource.state().data?.files?.length?"api":"seed");loading=f(()=>this.resource.state().loading);totalTokens=f(()=>this.files().reduce((t,e)=>t+e.tokens,0));instructionCount=f(()=>this.files().filter(t=>t.type==="instruction").length);noteCount=f(()=>this.files().filter(t=>t.type==="note").length);importCount=f(()=>this.files().filter(t=>t.type==="import").length);autoSelect=D(()=>{let t=this.files();if(t.length&&!t.find(e=>e.id===this.selectedId())){let e=t.find(o=>o.level==="project")??t[0];e&&this.selectedId.set(e.id)}});current=f(()=>this.files().find(t=>t.id===this.selectedId()));currentLevel=f(()=>{let t=this.current();return t?U[t.level]:null});currentBody=f(()=>{let t=this.current();return this.sanitizer.bypassSecurityTrustHtml(t?G(t.body):"")});currentImports=f(()=>{let t=this.current();if(!t?.imports)return[];let e=this.files();return t.imports.map(o=>e.find(d=>d.id===o)).filter(o=>!!o)});typeDesc=f(()=>{let t=this.typeFilter();return t==="all"?"":y[t].desc});typeChips=f(()=>[{key:"all",label:"All",color:"var(--text-secondary)",soft:"var(--bg-active)"},{key:"instruction",label:y.instruction.label,color:y.instruction.color,soft:y.instruction.soft,count:this.instructionCount()},{key:"note",label:y.note.label,color:y.note.color,soft:y.note.soft,count:this.noteCount()},{key:"import",label:y.import.label,color:y.import.color,soft:y.import.soft,count:this.importCount()}]);railGroups=f(()=>{let t=this.typeFilter(),e=this.files(),o=p=>t==="all"||p.type===t;return[{key:"enterprise",items:e.filter(p=>p.level==="enterprise")},{key:"user",items:e.filter(p=>p.level==="user")},{key:"project",items:e.filter(p=>p.level==="project"||p.level==="subdir")},{key:"note",items:e.filter(p=>p.level==="note")}].filter(p=>p.items.length>0).filter(p=>p.items.some(_=>o(_)||(_.imports??[]).some(T=>{let M=e.find(I=>I.id===T);return M?o(M):!1})))});effectiveInstructions=f(()=>{let t=this.typeFilter(),e=this.files(),o=[];for(let d of xe)for(let p of e)p.level===d&&o.push(p);return o.filter(d=>t==="all"||d.type===t)});effectiveNotes=f(()=>{let t=this.typeFilter();return this.files().filter(e=>e.type==="note"&&(t==="all"||t==="note"))});rowItems(t){let e=this.typeFilter(),o=this.files(),d=_=>e==="all"||_.type===e,p=[];for(let _ of t.items)if(d(_)&&p.push(_),_.imports)for(let T of _.imports){let M=o.find(I=>I.id===T);M&&d(M)&&p.push(M)}return p}isIndented(t){return t.level==="import"}iconFor(t){return t.level==="import"?"external":t.level==="note"?"tips":"memory"}nameFor(t){return t.level==="import"||t.level==="note"?t.name:t.scope}fmtK(t){return t>=1e3?`${(t/1e3).toFixed(1)}k`:`${t}`}renderBody(t){return this.sanitizer.bypassSecurityTrustHtml(G(t))}onSelect(t){this.selectedId.set(t)}onViewChange(t){this.view.set(t)}onTypeFilter(t){this.typeFilter.set(t)}onSelectByObj(t){this.selectedId.set(t.id)}reload(){this.resource.refetch()}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=N({type:i,selectors:[["app-memory"]],decls:57,vars:18,consts:[[1,"memory-page","col"],[1,"page-head"],[1,"row","gap-10"],["name","memory",3,"size"],[1,"col","gap-2","grow"],[1,"title"],[1,"sub"],[1,"seg"],[1,"seg-btn",3,"click"],[1,"stat-strip","row","gap-10"],[1,"stat","row","gap-8"],[1,"lbl"],[1,"val","mono"],["name","tips",2,"color","var(--node-test)",3,"size"],["name","external",2,"color","var(--node-route)",3,"size"],[1,"grow"],["title","No /api/memory data yet \u2014 showing illustrative seed",1,"pill","warn"],["title","Live from /api/memory",1,"pill","ok"],[1,"btn","btn-secondary","btn-sm",3,"click"],["name","refresh",3,"size"],[1,"filter-bar","row","gap-6"],["name","filter",2,"color","var(--text-muted)",3,"size"],[1,"chip","row","gap-6",3,"active","--chip-color","--chip-bg"],[1,"muted","xs"],[1,"split","row"],[1,"eff-scroll","scroll-y"],[1,"chip","row","gap-6",3,"click"],[1,"dot",3,"background"],[1,"cnt","mono","tabular"],[1,"dot"],[1,"rail","col"],[1,"rail-scroll","scroll-y"],[1,"rail-group"],[1,"detail","col"],[1,"detail-scroll","scroll-y"],[1,"rail-group-head","row","gap-6"],[1,"eyebrow"],[1,"src-row","row","gap-8",3,"selected","indent"],[1,"src-row","row","gap-8",3,"click"],[1,"pill-dot"],[3,"name","size"],[1,"row","gap-6"],[1,"src-name","mono"],["name","lock",2,"color","var(--warn)",3,"size"],[1,"src-path","mono","muted"],[1,"src-tokens","mono","tabular","muted"],[1,"row","gap-8","head-pills"],[1,"pill"],[1,"secondary","xs"],[1,"pill","warn"],[1,"row","gap-8","path-row"],[1,"path","mono"],[1,"kv-strip","row"],[1,"kv"],[1,"val","mono","tabular"],[1,"tags","row","gap-6"],[1,"card","card-pad","body",3,"innerHTML"],[1,"imports"],[1,"actions","row","gap-8"],[1,"btn","btn-secondary","btn-sm"],["name","copy",3,"size"],[1,"btn","btn-ghost","btn-sm","danger"],["name","lock",3,"size"],[1,"val","mono","session-link"],[1,"tag","mono"],[1,"col","gap-6"],[1,"import-row","row","gap-8"],[1,"mono","grow"],[1,"mono","tabular","muted"],["name","reveal",3,"size"],["name","x",3,"size"],[1,"row","gap-8","eff-head"],["name","layers",2,"color","var(--accent)",3,"size"],[1,"eff-title"],[1,"secondary","eff-desc"],[1,"eyebrow","eff-section-head"],[1,"col","gap-10"],[1,"card","eff-block","row"],[1,"bar"],[1,"body","col"],[1,"row","gap-8","head"],[1,"ord","mono","tabular","muted"],[1,"md",3,"innerHTML"],[1,"row","gap-6","eff-section-head","notes-head"]],template:function(e,o){if(e&1&&(r(0,"div",0)(1,"div",1)(2,"div",2),s(3,"app-icon",3),r(4,"div",4)(5,"div",5),l(6,"Memory"),a(),r(7,"div",6),l(8,"Everything the agent remembers \u2014 across levels and types"),a()(),r(9,"div",7)(10,"button",8),w("click",function(){return o.onViewChange("sources")}),l(11,"Sources"),a(),r(12,"button",8),w("click",function(){return o.onViewChange("effective")}),l(13,"Effective"),a()()()(),r(14,"div",9)(15,"div",10),s(16,"app-icon",3),r(17,"div")(18,"div",11),l(19,"Loaded"),a(),r(20,"div",12),l(21),a()()(),r(22,"div",10),s(23,"app-icon",3),r(24,"div")(25,"div",11),l(26,"Instructions"),a(),r(27,"div",12),l(28),a()()(),r(29,"div",10),s(30,"app-icon",13),r(31,"div")(32,"div",11),l(33,"Notes"),a(),r(34,"div",12),l(35),a()()(),r(36,"div",10),s(37,"app-icon",14),r(38,"div")(39,"div",11),l(40,"Imports"),a(),r(41,"div",12),l(42),a()()(),s(43,"span",15),g(44,Q,2,0,"span",16)(45,Y,2,0,"span",17),r(46,"button",18),w("click",function(){return o.reload()}),s(47,"app-icon",19),l(48," Reload memory "),a()(),r(49,"div",20),s(50,"app-icon",21),b(51,X,4,9,"button",22,V),s(53,"span",15),g(54,J,2,1,"span",23),a(),g(55,pe,7,1,"div",24)(56,ye,11,3,"div",25),a()),e&2){let d;n(3),m("size",18),n(7),k("active",o.view()==="sources"),n(2),k("active",o.view()==="effective"),n(4),m("size",14),n(5),C("",o.fmtK(o.totalTokens())," tokens"),n(2),m("size",14),n(5),c(o.instructionCount()),n(2),m("size",14),n(5),c(o.noteCount()),n(2),m("size",14),n(5),c(o.importCount()),n(2),u(o.source()==="seed"?44:45),n(3),m("size",13),n(3),m("size",13),n(),h(o.typeChips()),n(3),u((d=o.typeFilter()!=="all")?54:-1,d),n(),u(o.view()==="sources"?55:56)}},dependencies:[H],styles:["[_nghost-%COMP%]{display:flex;flex:1;min-height:0}.memory-page[_ngcontent-%COMP%]{flex:1;min-height:0}.page-head[_ngcontent-%COMP%]{padding:16px 18px 0}.page-head[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:16px;font-weight:650;letter-spacing:-.01em}.page-head[_ngcontent-%COMP%] .sub[_ngcontent-%COMP%]{color:var(--text-secondary);font-size:12px}.seg[_ngcontent-%COMP%]{display:inline-flex;gap:2px;padding:3px;border:1px solid var(--border-subtle);border-radius:8px;background:var(--bg-panel)}.seg-btn[_ngcontent-%COMP%]{background:transparent;border:none;padding:4px 11px;height:24px;border-radius:5px;color:var(--text-muted);font-family:var(--font-ui);font-size:12px;font-weight:500;cursor:pointer}.seg-btn[_ngcontent-%COMP%]:hover{color:var(--text-secondary)}.seg-btn.active[_ngcontent-%COMP%]{background:var(--bg-active);color:var(--text-primary)}.stat-strip[_ngcontent-%COMP%]{padding:14px 18px 12px;flex-wrap:wrap}.stat[_ngcontent-%COMP%]{padding:8px 12px;background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:9px;color:var(--accent)}.stat[_ngcontent-%COMP%] .lbl[_ngcontent-%COMP%]{color:var(--text-muted);font-size:10px;line-height:1.2}.stat[_ngcontent-%COMP%] .val[_ngcontent-%COMP%]{font-size:13px;font-weight:600;color:var(--text-primary);margin-top:1px;white-space:nowrap}.filter-bar[_ngcontent-%COMP%]{padding:0 18px 14px;flex-wrap:wrap;align-items:center}.chip[_ngcontent-%COMP%]{height:26px;padding:0 11px;border-radius:999px;border:1px solid var(--border-subtle);background:var(--bg-panel);color:var(--text-muted);font-family:var(--font-ui);font-size:11.5px;font-weight:500;cursor:pointer}.chip[_ngcontent-%COMP%]:hover{border-color:var(--border-strong);color:var(--text-secondary)}.chip.active[_ngcontent-%COMP%]{border-color:transparent;background:var(--chip-bg);color:var(--chip-color)}.chip[_ngcontent-%COMP%] .dot[_ngcontent-%COMP%]{width:7px;height:7px;border-radius:50%}.chip[_ngcontent-%COMP%] .cnt[_ngcontent-%COMP%]{opacity:.7;font-size:11px}.xs[_ngcontent-%COMP%]{font-size:11px}.muted[_ngcontent-%COMP%]{color:var(--text-muted)}.secondary[_ngcontent-%COMP%]{color:var(--text-secondary)}.grow[_ngcontent-%COMP%]{flex:1}.split[_ngcontent-%COMP%]{flex:1;min-height:0;border-top:1px solid var(--border-subtle)}.rail[_ngcontent-%COMP%]{width:300px;flex-shrink:0;border-right:1px solid var(--border-subtle);background:var(--bg-panel);min-height:0}.rail-scroll[_ngcontent-%COMP%]{flex:1;padding:8px}.rail-group[_ngcontent-%COMP%]{margin-bottom:10px}.rail-group-head[_ngcontent-%COMP%]{padding:8px 8px 4px}.src-row[_ngcontent-%COMP%]{padding:8px 10px;border-radius:7px;cursor:pointer;transition:background .1s;min-width:0}.src-row.indent[_ngcontent-%COMP%]{padding-left:26px}.src-row[_ngcontent-%COMP%]:hover{background:var(--bg-hover)}.src-row.selected[_ngcontent-%COMP%]{background:var(--accent-soft)}.src-row.selected[_ngcontent-%COMP%] app-icon[_ngcontent-%COMP%]{color:var(--accent)}.src-row.selected[_ngcontent-%COMP%] .src-name[_ngcontent-%COMP%]{color:var(--accent)}.src-row[_ngcontent-%COMP%] app-icon[_ngcontent-%COMP%]{color:var(--text-muted);flex-shrink:0}.src-name[_ngcontent-%COMP%]{font-size:12px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.src-path[_ngcontent-%COMP%]{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.src-tokens[_ngcontent-%COMP%]{font-size:10.5px;flex-shrink:0}.pill-dot[_ngcontent-%COMP%]{width:6px;height:6px;border-radius:50%;flex-shrink:0}.detail[_ngcontent-%COMP%]{flex:1;min-width:0;min-height:0}.detail-scroll[_ngcontent-%COMP%]{flex:1;padding:20px}.head-pills[_ngcontent-%COMP%]{margin-bottom:6px;flex-wrap:wrap}.pill[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;line-height:1.5;white-space:nowrap}.pill.warn[_ngcontent-%COMP%]{color:var(--warn);background:var(--warn-soft)}.pill.ok[_ngcontent-%COMP%]{color:var(--success);background:var(--success-soft)}.path-row[_ngcontent-%COMP%]{margin-bottom:14px}.path[_ngcontent-%COMP%]{font-size:13.5px;font-weight:600;color:var(--text-primary)}.kv-strip[_ngcontent-%COMP%]{gap:22px;padding:10px 0;border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);margin-bottom:16px;flex-wrap:wrap}.kv[_ngcontent-%COMP%] .lbl[_ngcontent-%COMP%]{color:var(--text-muted);font-size:10.5px}.kv[_ngcontent-%COMP%] .val[_ngcontent-%COMP%]{font-size:13px;font-weight:600;color:var(--text-primary);margin-top:1px;white-space:nowrap}.session-link[_ngcontent-%COMP%]{background:none;border:none;padding:0;color:var(--accent);cursor:pointer;font-family:var(--font-mono);font-size:13px;font-weight:600}.tags[_ngcontent-%COMP%]{margin-bottom:14px;flex-wrap:wrap}.tag[_ngcontent-%COMP%]{font-size:10.5px;color:var(--node-test);background:var(--node-test-soft);padding:2px 8px;border-radius:5px;white-space:nowrap}.body[_ngcontent-%COMP%]{background:var(--bg-panel);margin-bottom:16px}.imports[_ngcontent-%COMP%]{margin-bottom:16px}.imports[_ngcontent-%COMP%] .eyebrow[_ngcontent-%COMP%]{margin-bottom:8px}.import-row[_ngcontent-%COMP%]{padding:7px 10px;border-radius:7px;border:1px solid var(--border-subtle);font-size:11.5px}.import-row[_ngcontent-%COMP%] .mono.tabular[_ngcontent-%COMP%]{font-size:10.5px}.actions[_ngcontent-%COMP%]{margin-top:16px}.btn-ghost.danger[_ngcontent-%COMP%]{color:var(--error)}.btn-ghost.danger[_ngcontent-%COMP%]:hover{background:var(--error-soft)}.eff-scroll[_ngcontent-%COMP%]{flex:1;padding:20px}.eff-head[_ngcontent-%COMP%]{margin-bottom:6px}.eff-title[_ngcontent-%COMP%]{font-weight:600;font-size:14px}.eff-desc[_ngcontent-%COMP%]{font-size:12px;line-height:1.55;margin-bottom:16px}.eff-section-head[_ngcontent-%COMP%]{margin-bottom:8px}.notes-head[_ngcontent-%COMP%]{margin-top:20px}.eff-block[_ngcontent-%COMP%]{overflow:hidden}.eff-block[_ngcontent-%COMP%] .bar[_ngcontent-%COMP%]{width:3px;flex-shrink:0}.eff-block[_ngcontent-%COMP%] .body[_ngcontent-%COMP%]{flex:1;min-width:0;padding:12px 14px;margin-bottom:0;background:transparent}.eff-block[_ngcontent-%COMP%] .head[_ngcontent-%COMP%]{margin-bottom:8px;flex-wrap:wrap}.eff-block[_ngcontent-%COMP%] .ord[_ngcontent-%COMP%]{font-size:10.5px;width:16px}.eff-block[_ngcontent-%COMP%] .md[_ngcontent-%COMP%]{padding-left:24px}.eff-block[_ngcontent-%COMP%] .path[_ngcontent-%COMP%]{font-size:11.5px;color:var(--text-secondary);font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}"],changeDetection:0})};function G(i){let t=d=>d.replace(/&/g,"&amp;").replace(/</g,"&lt;"),e=d=>t(d).replace(/\*\*(.+?)\*\*/g,'<strong style="color:var(--text-primary)">$1</strong>').replace(/`(.+?)`/g,'<code class="mono" style="font-size:11.5px;background:var(--bg-canvas);padding:1px 5px;border-radius:4px;border:1px solid var(--border-subtle);color:var(--node-spec)">$1</code>'),o=[];for(let d of i.split(`
18
- `))d.startsWith("## ")?o.push(`<div style="font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;color:var(--text-muted);margin:14px 0 6px">${e(d.slice(3))}</div>`):d.startsWith("# ")?o.push(`<div style="font-size:14px;font-weight:650;margin:0 0 8px">${e(d.slice(2))}</div>`):d.startsWith("@")?o.push(`<div class="mono" style="font-size:12px;color:var(--node-route);background:var(--node-route-soft);display:block;width:fit-content;padding:2px 8px;border-radius:5px;margin:3px 0">${t(d)}</div>`):/^\s*- /.test(d)?o.push(`<div style="display:flex;gap:8px;font-size:12.5px;line-height:1.6;color:var(--text-secondary);padding:1px 0"><span style="color:var(--text-faint)">\u2022</span><span>${e(d.replace(/^\s*- /,""))}</span></div>`):d.trim()===""?o.push('<div style="height:6px"></div>'):o.push(`<div style="font-size:12.5px;line-height:1.6;color:var(--text-secondary)">${e(d)}</div>`);return o.join("")}export{K as Memory};
@@ -1 +0,0 @@
1
- import{G as f,K as o,V as c,aa as s,ba as a}from"./chunk-WVCKOJZL.js";var n="specship.theme",h=class i{destroyRef=o(c);pref=s(this.loadPref());effective=s("dark");constructor(){this.applyEffective();let e=window.matchMedia("(prefers-color-scheme: light)"),t=()=>{this.pref()==="system"&&this.applyEffective()};e.addEventListener("change",t),this.destroyRef.onDestroy(()=>e.removeEventListener("change",t)),a(()=>{let r=this.pref();try{localStorage.setItem(n,r)}catch{}this.applyEffective()})}setPref(e){this.pref.set(e)}toggle(){this.setPref(this.effective()==="dark"?"light":"dark")}loadPref(){try{let e=localStorage.getItem(n);if(e==="dark"||e==="light"||e==="system")return e}catch{}return"dark"}applyEffective(){let e=window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark",t=this.pref(),r=t==="system"?e:t;document.documentElement.setAttribute("data-theme",r),this.effective.set(r)}static \u0275fac=function(t){return new(t||i)};static \u0275prov=f({token:i,factory:i.\u0275fac,providedIn:"root"})};export{h as a};
@@ -1 +0,0 @@
1
- import{a as d}from"./chunk-ZABKKHJ3.js";import{G as n,K as i,Kb as l,V as c,aa as o}from"./chunk-WVCKOJZL.js";var a="specship.activeProjectSlug",u=class s{api=i(d);destroyRef=i(c);_projects=o([]);_claudeRoot=o(null);_loading=o(!0);_error=o(null);_activeSlug=o(p());projects=this._projects.asReadonly();claudeRoot=this._claudeRoot.asReadonly();loading=this._loading.asReadonly();error=this._error.asReadonly();activeSlug=this._activeSlug.asReadonly();active=l(()=>{let e=this._activeSlug();return e?this._projects().find(t=>t.slug===e)??null:null});closeStream=null;constructor(){this.refresh(),this.subscribe(),this.destroyRef.onDestroy(()=>this.closeStream?.())}async refresh(){this._loading.set(!0),this._error.set(null);try{let e=await this.api.get("/api/projects");this._claudeRoot.set(e.claudeRoot),this._projects.set(e.projects),this.reconcileActive(e.projects)}catch(e){this._error.set(e instanceof Error?e.message:String(e))}finally{this._loading.set(!1)}}projectQuery(e="?"){let t=this._activeSlug();return t?`${e}project=${encodeURIComponent(t)}`:""}setActive(e){this._activeSlug.set(e);try{e?localStorage.setItem(a,e):localStorage.removeItem(a)}catch{}}subscribe(){this.closeStream=this.api.openEventStream("/api/projects/events",(e,t)=>{if(e==="snapshot"){let r=t;this._claudeRoot.set(r.claudeRoot),this._projects.set(r.projects??[]),this.reconcileActive(r.projects??[])}else if(e==="change"){let r=t;this._projects.set(r.list),this.reconcileActive(r.list)}else if(e==="refresh"){let r=t;this._projects.set(r.list)}},e=>{},["snapshot","change","refresh"])}reconcileActive(e){let t=this._activeSlug();t&&(e.find(r=>r.slug===t)||this.setActive(null))}static \u0275fac=function(t){return new(t||s)};static \u0275prov=n({token:s,factory:s.\u0275fac,providedIn:"root"})};function p(){try{return localStorage.getItem(a)}catch{return null}}export{u as a};
@@ -1 +0,0 @@
1
- import{b as g}from"./chunk-ZABKKHJ3.js";import{K as u,V as f,a as c,aa as n,b as s,ba as d}from"./chunk-WVCKOJZL.js";function T(p,a){let o=n({data:null,loading:!0,error:null,source:"init",noProject:!1}),A=u(f),r=null,l=n(0),b=()=>{let t=a();if(!t){o.set({data:null,loading:!1,error:null,source:"init",noProject:!1});return}r&&r.abort(),r=new AbortController,o.update(e=>s(c({},e),{loading:!0,error:null,noProject:!1})),p.get(t,r.signal).then(e=>o.set({data:e,loading:!1,error:null,source:"api",noProject:!1})).catch(e=>{if(e instanceof Error&&e.name==="AbortError")return;let i=e instanceof g&&e.status===409&&(e.code==="no_project"||e.code==="no_primary");o.set({data:null,loading:!1,error:i?null:e instanceof Error?e:new Error(String(e)),source:"api",noProject:i})})};return d(()=>{a(),l(),b()}),A.onDestroy(()=>{r?.abort()}),{state:o,refetch:()=>l.update(t=>t+1)}}export{T as a};
@@ -1 +0,0 @@
1
- import{Aa as d,Ka as c,Ob as r,R as s,Ra as m,Sa as g,Ta as p,ab as n,bb as l,cb as e,pb as f}from"./chunk-WVCKOJZL.js";function y(t,a){t&1&&(s(),e(0,"rect",14)(1,"rect",15))}var u=class t{size=r(24);tile=r(!0);glow=r(!0);static \u0275fac=function(i){return new(i||t)};static \u0275cmp=c({type:t,selectors:[["app-logo-mark"]],inputs:{size:[1,"size"],tile:[1,"tile"],glow:[1,"glow"]},decls:16,vars:5,consts:[["viewBox","0 0 32 32","fill","none",2,"flex-shrink","0"],["id","ssTile","x1","0","y1","0","x2","32","y2","32","gradientUnits","userSpaceOnUse"],["stop-color","#12161E"],["offset","1","stop-color","#0B0D11"],["id","ssLead","x1","18","y1","11","x2","26","y2","21","gradientUnits","userSpaceOnUse"],["stop-color","#6FA0F6"],["offset","1","stop-color","#5B93F2"],["transform","translate(4.6 4.6) scale(0.715)"],["d","M5 16 H11 M11 9 L23 16 L11 23","stroke","rgba(150,165,200,0.5)","stroke-width","1.9","stroke-linecap","round","stroke-linejoin","round","fill","none"],["x1","11","y1","9","x2","11","y2","23","stroke","rgba(150,165,200,0.4)","stroke-width","1.9","stroke-linecap","round"],["cx","23","cy","16","r","3.6","fill","url(#ssLead)"],["cx","11","cy","9","r","2.9","fill","#A586F5"],["cx","11","cy","23","r","2.9","fill","#46C26B"],["cx","5","cy","16","r","2.1","fill","#29D2BE"],["width","32","height","32","rx","7.2","fill","url(#ssTile)"],["x","0.5","y","0.5","width","31","height","31","rx","6.7","fill","none","stroke","rgba(255,255,255,0.08)"]],template:function(i,o){i&1&&(s(),n(0,"svg",0)(1,"defs")(2,"linearGradient",1),e(3,"stop",2)(4,"stop",3),l(),n(5,"linearGradient",4),e(6,"stop",5)(7,"stop",6),l()(),g(8,y,2,0),n(9,"g",7),e(10,"path",8)(11,"line",9)(12,"circle",10)(13,"circle",11)(14,"circle",12)(15,"circle",13),l()()),i&2&&(f("filter",o.glow()?"drop-shadow(0 0 9px rgba(91,147,242,0.35))":"none"),m("width",o.size())("height",o.size()),d(8),p(o.tile()?8:-1))},styles:["[_nghost-%COMP%]{display:inline-flex;align-items:center;justify-content:center;line-height:0}"],changeDetection:0})};export{u as a};
@@ -1 +0,0 @@
1
- import{a as d}from"./chunk-FTESTUEO.js";import{$a as p,Aa as i,Ka as a,Ob as m,Ya as c,Za as e,_a as o,sb as t,ub as s}from"./chunk-WVCKOJZL.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};
@@ -1 +0,0 @@
1
- import{a as k}from"./chunk-4LHBWWP7.js";import{a as w}from"./chunk-ZABKKHJ3.js";import{Aa as a,Cb as h,K as f,Ka as _,Kb as x,P as u,Q as b,Ra as y,Sa as C,Ta as E,Va as M,Wa as s,Xa as m,ab as e,bb as n,cb as g,db as P,ib as O,jb as v,sb as i,tb as c,ub as p}from"./chunk-WVCKOJZL.js";var z=()=>[0,1,2,3],I=(r,o)=>o.id;function D(r,o){r&1&&g(0,"div",11)}function F(r,o){r&1&&s(0,D,1,0,"div",11,M),r&2&&m(h(0,z))}function N(r,o){r&1&&(e(0,"div",9),i(1,"No tips. \u2728"),n())}function R(r,o){if(r&1){let t=P();e(0,"div",12),g(1,"div",13),e(2,"div",14)(3,"div",15),i(4),n(),e(5,"div",16),i(6),n(),e(7,"div",17)(8,"div",18)(9,"div",19),i(10,"Evidence"),n(),e(11,"div",20),i(12),n(),e(13,"div",21),i(14),n()(),e(15,"div",18)(16,"div",19),i(17,"Impact"),n(),e(18,"div",22),i(19),n()()(),e(20,"div",23)(21,"div",24)(22,"span",25),i(23,"fix"),n(),e(24,"code",26),i(25),n(),e(26,"button",27),O("click",function(){let l=u(t).$implicit,S=v(2);return b(S.copy(l.fix))}),i(27,"\u2398"),n()(),e(28,"button",28),i(29,"Apply"),n(),e(30,"button",29),i(31,"Dismiss"),n()()()()}if(r&2){let t=o.$implicit;y("data-sev",t.severity),a(4),c(t.title),a(2),c(t.why),a(6),c(t.evidence.session),a(2),c(t.evidence.detail),a(5),c(t.saving),a(6),c(t.fix)}}function A(r,o){if(r&1&&(e(0,"div",10),s(1,R,32,7,"div",12,I),n()),r&2){let t=v();a(),m(t.ordered())}}var T=class r{api=f(w);resource=k(this.api,()=>"/api/claude/tips");ordered=x(()=>{let o=this.resource.state().data?.tips??[],t={error:0,warn:1,info:2};return[...o].sort((d,l)=>(t[d.severity]??9)-(t[l.severity]??9))});counts=x(()=>{let o=this.resource.state().data?.tips??[];return{error:o.filter(t=>t.severity==="error").length,warn:o.filter(t=>t.severity==="warn").length,info:o.filter(t=>t.severity==="info").length}});copy(o){typeof navigator<"u"&&navigator.clipboard&&navigator.clipboard.writeText(o).catch(()=>{})}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=_({type:r,selectors:[["app-tips"]],decls:17,vars:4,consts:[[1,"page","scroll-y"],[1,"page-head"],[1,"title-block"],[1,"title"],[1,"sub"],[1,"pills"],[1,"pill","pill-error"],[1,"pill","pill-warn"],[1,"pill","pill-info"],[1,"empty"],[1,"tips-grid"],[1,"skel","card-skel"],[1,"tip-card"],[1,"sev-bar"],[1,"tip-body"],[1,"tip-title"],[1,"tip-why"],[1,"tip-grid"],[1,"kv-block"],[1,"eyebrow"],[1,"mono","evidence-session"],[1,"mono","evidence-detail"],[1,"impact","mono"],[1,"actions"],[1,"fix-row"],[1,"fix-label"],[1,"mono","fix-code"],["type","button","title","Copy",1,"ghost","copy",3,"click"],["type","button",1,"primary"],["type","button",1,"secondary"]],template:function(t,d){t&1&&(e(0,"div",0)(1,"header",1)(2,"div",2)(3,"div",3),i(4,"Tips"),n(),e(5,"div",4),i(6,"A senior teammate reviewed your transcripts"),n()(),e(7,"div",5)(8,"span",6),i(9),n(),e(10,"span",7),i(11),n(),e(12,"span",8),i(13),n()()(),C(14,F,2,1)(15,N,2,0,"div",9)(16,A,3,0,"div",10),n()),t&2&&(a(9),p("",d.counts().error," urgent"),a(2),p("",d.counts().warn," warn"),a(2),p("",d.counts().info," info"),a(),E(d.resource.state().loading?14:d.ordered().length===0?15:16))},styles:["[_nghost-%COMP%]{display:contents}.page[_ngcontent-%COMP%]{flex:1;padding:18px}.page-head[_ngcontent-%COMP%]{display:flex;gap:12px;margin-bottom:18px;align-items:flex-start}.title-block[_ngcontent-%COMP%]{flex:1}.title[_ngcontent-%COMP%]{font-size:var(--fs-title);font-weight:600;letter-spacing:-.01em}.sub[_ngcontent-%COMP%]{color:var(--text-secondary);margin-top:2px}.pills[_ngcontent-%COMP%]{display:flex;gap:6px}.pill[_ngcontent-%COMP%]{display:inline-flex;align-items:center;font-size:11px;font-weight:600;padding:2px 8px;border-radius:var(--r-pill)}.pill-error[_ngcontent-%COMP%]{color:var(--error);background:var(--error-soft)}.pill-warn[_ngcontent-%COMP%]{color:var(--warn);background:var(--warn-soft)}.pill-info[_ngcontent-%COMP%]{color:var(--info);background:var(--info-soft)}.tips-grid[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px;max-width:860px}.tip-card[_ngcontent-%COMP%]{background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--r-lg);overflow:hidden;display:flex}.tip-card[data-sev=error][_ngcontent-%COMP%] .sev-bar[_ngcontent-%COMP%]{background:var(--error)}.tip-card[data-sev=warn][_ngcontent-%COMP%] .sev-bar[_ngcontent-%COMP%]{background:var(--warn)}.tip-card[data-sev=info][_ngcontent-%COMP%] .sev-bar[_ngcontent-%COMP%]{background:var(--info)}.sev-bar[_ngcontent-%COMP%]{width:3px;flex-shrink:0}.tip-body[_ngcontent-%COMP%]{padding:14px 16px;flex:1;min-width:0}.tip-title[_ngcontent-%COMP%]{font-size:14px;font-weight:600;letter-spacing:-.01em;margin-bottom:6px}.tip-why[_ngcontent-%COMP%]{color:var(--text-secondary);font-size:12.5px;line-height:1.6;margin-bottom:12px}.tip-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.kv-block[_ngcontent-%COMP%]{background:var(--bg-canvas);border:1px solid var(--border-subtle);border-radius:var(--r-md);padding:10px}.eyebrow[_ngcontent-%COMP%]{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);margin-bottom:5px}.evidence-session[_ngcontent-%COMP%]{font-size:11.5px;color:var(--accent)}.evidence-detail[_ngcontent-%COMP%]{color:var(--text-secondary);font-size:11px;margin-top:4px}.impact[_ngcontent-%COMP%]{font-size:16px;font-weight:700;color:var(--success)}.actions[_ngcontent-%COMP%]{display:flex;gap:8px;align-items:center}.fix-row[_ngcontent-%COMP%]{flex:1;min-width:0;display:flex;align-items:center;gap:8px;background:var(--bg-canvas);border:1px solid var(--border-subtle);border-radius:7px;padding:6px 10px}.fix-label[_ngcontent-%COMP%]{color:var(--text-muted);font-size:10.5px}.fix-code[_ngcontent-%COMP%]{flex:1;min-width:0;color:var(--text-primary);font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.primary[_ngcontent-%COMP%], .secondary[_ngcontent-%COMP%], .ghost[_ngcontent-%COMP%]{font-family:inherit;font-size:var(--fs-sm);font-weight:500;padding:5px 11px;border-radius:5px;cursor:pointer;border:1px solid transparent}.primary[_ngcontent-%COMP%]{background:var(--accent-strong);color:#fff}.primary[_ngcontent-%COMP%]:hover{background:var(--accent)}.secondary[_ngcontent-%COMP%]{background:var(--bg-elevated);color:var(--text-primary);border-color:var(--border-subtle)}.secondary[_ngcontent-%COMP%]:hover{background:#283039;border-color:var(--border-strong)}.ghost[_ngcontent-%COMP%]{background:transparent;color:var(--text-muted)}.ghost[_ngcontent-%COMP%]:hover{background:var(--bg-hover);color:var(--text-primary)}.copy[_ngcontent-%COMP%]{padding:4px 8px}.skel[_ngcontent-%COMP%]{background:var(--bg-elevated);border-radius:5px;animation:_ngcontent-%COMP%_skeleton 1.4s ease-in-out infinite}.card-skel[_ngcontent-%COMP%]{height:200px;margin-bottom:12px}.empty[_ngcontent-%COMP%]{color:var(--text-muted);font-size:13px;padding:40px;text-align:center}.mono[_ngcontent-%COMP%]{font-family:var(--font-mono)}@keyframes _ngcontent-%COMP%_skeleton{0%,to{opacity:.5}50%{opacity:.9}}"],changeDetection:0})};export{T as Tips};
@@ -1 +0,0 @@
1
- import{a as Q}from"./chunk-4LHBWWP7.js";import{a as J}from"./chunk-ZABKKHJ3.js";import{g as q}from"./chunk-RP3WU5Y6.js";import{$a as O,Aa as r,Cb as Y,Eb as Z,Gb as U,K as A,Ka as k,Kb as p,Nb as X,Ob as g,P as V,Q as H,R as P,Ra as x,S as j,Sa as f,Ta as _,Va as I,Wa as b,Xa as y,Ya as N,Za as a,_a as s,aa as z,ab as C,bb as M,cb as $,db as G,hb as F,ib as K,jb as u,pb as S,qb as R,sb as c,tb as l,ub as w,vb as W}from"./chunk-WVCKOJZL.js";function me(o,e){if(o&1&&(P(),$(0,"path",1)(1,"path",2)),o&2){let t=u();x("d",t.fillD())("fill",t.color()),r(),x("d",t.pathD())("stroke",t.color())}}var L=class o{series=g([]);color=g("var(--accent)");height=g(200);hover=X();width=600;stats=p(()=>{let e=this.series();if(!e.length)return{max:1,min:0};let t=e.map(n=>n.cost);return{max:Math.max(...t,.01),min:0}});pathD=p(()=>{let e=this.series();if(!e.length)return"";let t=this.width,n=this.height(),{max:i}=this.stats();return e.map((d,m)=>{let v=m/Math.max(1,e.length-1)*t,h=n-d.cost/i*(n-20)-10;return(m===0?"M":"L")+v.toFixed(2)+" "+h.toFixed(2)}).join(" ")});fillD=p(()=>{let e=this.pathD();return e?e+` L ${this.width} ${this.height()} L 0 ${this.height()} Z`:""});onLeave(){this.hover.emit(null)}onMove(e){let n=e.currentTarget.getBoundingClientRect(),i=(e.clientX-n.left)/n.width,d=this.series();if(!d.length)return;let m=Math.min(d.length-1,Math.max(0,Math.round(i*(d.length-1)))),v=d[m];v&&this.hover.emit(v)}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=k({type:o,selectors:[["app-line-chart"]],inputs:{series:[1,"series"],color:[1,"color"],height:[1,"height"]},outputs:{hover:"hover"},decls:2,vars:3,consts:[["width","100%","preserveAspectRatio","none",1,"line-chart",3,"mousemove","mouseleave"],["opacity","0.10"],["fill","none","stroke-width","1.6","stroke-linecap","round","stroke-linejoin","round"]],template:function(t,n){t&1&&(P(),C(0,"svg",0),K("mousemove",function(d){return n.onMove(d)})("mouseleave",function(){return n.onLeave()}),f(1,me,2,4),M()),t&2&&(x("viewBox","0 0 "+n.width+" "+n.height())("height",n.height()),r(),_(n.pathD()?1:-1))},styles:["[_nghost-%COMP%]{display:block}.line-chart[_ngcontent-%COMP%]{cursor:crosshair}"],changeDetection:0})};var ue=(o,e)=>e.label;function ge(o,e){if(o&1&&(P(),$(0,"path")),o&2){let t=e.$implicit;x("d",t.d)("fill",t.color)}}function he(o,e){if(o&1&&(C(0,"div",3),c(1),M()),o&2){let t=u();r(),l(t.centerSub())}}var T=class o{data=g([]);size=g(150);centerLabel=g("");centerSub=g("");arcs=p(()=>{let e=this.data(),t=e.reduce((h,E)=>h+E.cost,0);if(t<=0)return[];let i=this.size()/2,d=i*.6,m=-Math.PI/2,v=[];for(let h of e){let E=h.cost/t*Math.PI*2,D=m+E,B=E>Math.PI?1:0,ie=i+Math.cos(m)*i,re=i+Math.sin(m)*i,ae=i+Math.cos(D)*i,se=i+Math.sin(D)*i,ce=i+Math.cos(D)*d,de=i+Math.sin(D)*d,le=i+Math.cos(m)*d,pe=i+Math.sin(m)*d;v.push({d:`M ${ie} ${re} A ${i} ${i} 0 ${B} 1 ${ae} ${se} L ${ce} ${de} A ${d} ${d} 0 ${B} 0 ${le} ${pe} Z`,color:h.color,label:h.short||h.model||""}),m=D}return v});static \u0275fac=function(t){return new(t||o)};static \u0275cmp=k({type:o,selectors:[["app-donut"]],inputs:{data:[1,"data"],size:[1,"size"],centerLabel:[1,"centerLabel"],centerSub:[1,"centerSub"]},decls:8,vars:9,consts:[[1,"donut"],[1,"donut-center"],[1,"center-label"],[1,"center-sub"]],template:function(t,n){t&1&&(C(0,"div",0),P(),C(1,"svg"),b(2,ge,1,2,":svg:path",null,ue),M(),j(),C(4,"div",1)(5,"div",2),c(6),M(),f(7,he,2,1,"div",3),M()()),t&2&&(S("width",n.size(),"px")("height",n.size(),"px"),r(),x("width",n.size())("height",n.size())("viewBox","0 0 "+n.size()+" "+n.size()),r(),y(n.arcs()),r(4),l(n.centerLabel()),r(),_(n.centerSub()?7:-1))},styles:["[_nghost-%COMP%]{display:inline-block}.donut[_ngcontent-%COMP%]{position:relative}.donut-center[_ngcontent-%COMP%]{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.center-label[_ngcontent-%COMP%]{font-variant-numeric:tabular-nums;font-size:18px;font-weight:700;color:var(--text-primary)}.center-sub[_ngcontent-%COMP%]{color:var(--text-muted);font-size:10.5px;margin-top:2px}"],changeDetection:0})};var ve=()=>[0,1,2,3],xe=(o,e)=>e.model,fe=(o,e)=>e.id;function _e(o,e){if(o&1){let t=G();a(0,"button",21),F("click",function(){let i=V(t).$implicit,d=u();return H(d.setRange(i))}),c(1),s()}if(o&2){let t=e.$implicit,n=u();R("active",n.range()===t),r(),w(" ",t==="today"?"Today":t==="week"?"Week":t==="month"?"Month":"All"," ")}}function be(o,e){if(o&1&&(a(0,"div",12)(1,"div",22),c(2),s(),a(3,"div",11),c(4),s()()),o&2){let t=u();r(2),l(t.fmt$(t.hovered().cost)),r(2),W("",t.hovered().prompts," prompts \xB7 day ",t.hovered().day)}}function ye(o,e){if(o&1&&(a(0,"div",18),O(1,"span",23),a(2,"span",24),c(3),s(),a(4,"span",25),c(5),s(),a(6,"span",26),c(7),s()()),o&2){let t=e.$implicit,n=u();r(),S("background",t.color),r(2),l(t.short),r(2),l(n.fmt$(t.cost)),r(2),w("",n.percentOf(t.cost,n.total()),"%")}}function Ce(o,e){o&1&&O(0,"div",27)}function Me(o,e){o&1&&b(0,Ce,1,0,"div",27,I),o&2&&y(Y(0,ve))}function Pe(o,e){if(o&1&&(a(0,"div",29)(1,"span",30),c(2),s(),a(3,"div",31)(4,"div",32),c(5),s(),a(6,"div",33),O(7,"span",34),s()(),a(8,"span",35),c(9),s(),a(10,"span",36),c(11),s(),a(12,"span",37),c(13),Z(14,"number"),s(),a(15,"span",38),c(16),s()()),o&2){let t=e.$implicit,n=e.$index,i=u(2);R("first",n===0),r(2),l(n+1),r(3),l(t.text),r(2),S("width",t.cost_usd/i.maxPrompt()*100,"%")("background",t.cost_usd/i.maxPrompt()>.66?"var(--error)":"var(--accent)"),r(2),l(i.modelShort(t.model)),r(2),l(i.fmtK(i.promptTokens(t))),r(),S("color",i.cacheColor(i.cacheRate(t))),r(),w("",U(14,14,i.cacheRate(t)*100,"1.0-0"),"%"),r(3),l(i.fmt$(t.cost_usd))}}function ke(o,e){if(o&1&&b(0,Pe,17,17,"div",28,fe),o&2){let t=u();y(t.topPrompts())}}var Se={"claude-opus-4-7":"#A586F5","claude-opus-4":"#A586F5","claude-sonnet-4-6":"#5B93F2","claude-sonnet-4-7":"#5B93F2","claude-sonnet-4":"#5B93F2","claude-haiku-4-5":"#29D2BE","claude-haiku-4":"#29D2BE"},ne={"claude-opus-4-7":"Opus 4.7","claude-opus-4":"Opus 4","claude-sonnet-4-6":"Sonnet 4.6","claude-sonnet-4-7":"Sonnet 4.7","claude-sonnet-4":"Sonnet 4","claude-haiku-4-5":"Haiku 4.5","claude-haiku-4":"Haiku 4"},oe=class o{api=A(J);range=z("month");ranges=["today","week","month","all"];hovered=z(null);resource=Q(this.api,()=>`/api/claude/costs?range=${this.range()}`);series=p(()=>this.resource.state().data?.series??[]);topPrompts=p(()=>(this.resource.state().data?.topPrompts??[]).slice(0,12));maxPrompt=p(()=>{let e=this.topPrompts();return Math.max(.01,...e.map(t=>t.cost_usd??0))});byModel=p(()=>(this.resource.state().data?.byModel??[]).map(t=>({model:t.model,short:ne[t.model]||t.model,cost:t.cost||0,color:Se[t.model]||"#5C6573"})));total=p(()=>this.resource.state().data?.total??0);setRange(e){this.range.set(e)}onHover(e){this.hovered.set(e)}fmt$(e){return"$"+e.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}fmtK(e){return e>=1e3?(e/1e3).toFixed(e>=1e4?0:1)+"k":String(e)}promptTokens(e){return(e.input_tokens??0)+(e.output_tokens??0)+(e.cache_creation_tokens??0)+(e.cache_read_tokens??0)}cacheRate(e){let t=(e.input_tokens??0)+(e.cache_creation_tokens??0)+(e.cache_read_tokens??0);return t>0?(e.cache_read_tokens??0)/t:0}cacheColor(e){return e>=.7?"var(--success)":e>=.5?"var(--warn)":"var(--error)"}modelShort(e){return e?ne[e]||e.replace(/^claude-/,""):"?"}percentOf(e,t){return t>0?Math.round(e/t*100):0}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=k({type:o,selectors:[["app-costs"]],decls:34,vars:11,consts:[[1,"page","scroll-y"],[1,"page-head"],[1,"title-block"],[1,"title"],[1,"sub"],[1,"range-selector"],["type","button",1,"range-opt",3,"active"],[1,"top-grid"],[1,"card","card-pad","chart-card"],[1,"chart-header"],[1,"big-number","mono"],[1,"muted"],[1,"hovered","mono"],["color","var(--accent)",3,"hover","series","height"],[1,"card","card-pad","donut-card"],[1,"card-title"],[3,"data","size","centerLabel","centerSub"],[1,"model-legend"],[1,"legend-row"],[1,"card","card-pad"],[1,"card-title","row-title"],["type","button",1,"range-opt",3,"click"],[1,"hov-cost"],[1,"swatch"],[1,"mono","grow"],[1,"mono"],[1,"mono","muted"],[1,"skel","row-skel"],[1,"prompt-row",3,"first"],[1,"prompt-row"],[1,"mono","muted","rank"],[1,"prompt-grow"],[1,"prompt-text"],[1,"bar-track"],[1,"bar-fill"],[1,"mono","muted","prompt-model"],[1,"mono","muted","prompt-toks"],[1,"mono","cache-cell"],[1,"mono","cost-cell"]],template:function(t,n){t&1&&(a(0,"div",0)(1,"header",1)(2,"div",2)(3,"div",3),c(4,"Costs"),s(),a(5,"div",4),c(6,"Where the money goes"),s()(),a(7,"div",5),b(8,_e,2,3,"button",6,I),s()(),a(10,"div",7)(11,"div",8)(12,"div",9)(13,"div")(14,"div",10),c(15),s(),a(16,"div",11),c(17),s()(),f(18,be,5,3,"div",12),s(),a(19,"app-line-chart",13),F("hover",function(d){return n.onHover(d)}),s()(),a(20,"div",14)(21,"div",15),c(22,"By model"),s(),O(23,"app-donut",16),a(24,"div",17),b(25,ye,8,5,"div",18,xe),s()()(),a(27,"div",19)(28,"div",20),c(29," Most expensive prompts "),a(30,"span",11),c(31),s()(),f(32,Me,2,1)(33,ke,2,0),s()()),t&2&&(r(8),y(n.ranges),r(7),l(n.fmt$(n.total())),r(2),w("total \xB7 ",n.range()),r(),_(n.hovered()?18:-1),r(),N("series",n.series())("height",200),r(4),N("data",n.byModel())("size",150)("centerLabel","$"+n.total().toFixed(0))("centerSub",n.range()+" window"),r(2),y(n.byModel()),r(6),w("\xB7 top ",n.topPrompts().length),r(),_(n.resource.state().loading?32:33))},dependencies:[L,T,q],styles:["[_nghost-%COMP%]{display:contents}.page[_ngcontent-%COMP%]{flex:1;padding:18px}.page-head[_ngcontent-%COMP%]{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px}.title-block[_ngcontent-%COMP%]{flex:1}.title[_ngcontent-%COMP%]{font-size:var(--fs-title);font-weight:600;letter-spacing:-.01em}.sub[_ngcontent-%COMP%]{color:var(--text-secondary);margin-top:2px}.range-selector[_ngcontent-%COMP%]{display:inline-flex;background:var(--bg-canvas);border:1px solid var(--border-subtle);border-radius:7px;padding:2px;gap:2px}.range-opt[_ngcontent-%COMP%]{border:none;cursor:pointer;border-radius:5px;padding:5px 12px;font-size:var(--fs-sm);font-weight:500;font-family:var(--font-ui);background:transparent;color:var(--text-muted)}.range-opt.active[_ngcontent-%COMP%]{background:var(--bg-elevated);color:var(--text-primary)}.card[_ngcontent-%COMP%]{background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--r-lg)}.card-pad[_ngcontent-%COMP%]{padding:14px}.card-title[_ngcontent-%COMP%]{font-weight:600;font-size:12.5px}.row-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;margin-bottom:12px}.muted[_ngcontent-%COMP%]{color:var(--text-muted)}.mono[_ngcontent-%COMP%]{font-family:var(--font-mono)}.top-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:1.3fr 1fr;gap:14px;margin-bottom:14px}.chart-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px}.chart-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:flex-start}.big-number[_ngcontent-%COMP%]{font-size:34px;font-weight:700;letter-spacing:-.02em}.hovered[_ngcontent-%COMP%]{text-align:right}.hov-cost[_ngcontent-%COMP%]{font-size:13px;font-weight:600}.donut-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:10px}.model-legend[_ngcontent-%COMP%]{width:100%;display:flex;flex-direction:column;gap:6px}.legend-row[_ngcontent-%COMP%]{display:flex;gap:8px;align-items:center;font-size:11.5px}.swatch[_ngcontent-%COMP%]{width:9px;height:9px;border-radius:3px}.grow[_ngcontent-%COMP%]{flex:1}.prompt-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:18px 1fr 70px 54px 44px 56px;gap:12px;align-items:center;padding:9px 0;border-top:1px solid var(--border-subtle)}.prompt-row.first[_ngcontent-%COMP%]{border-top:none}.rank[_ngcontent-%COMP%]{width:16px;font-size:11px}.prompt-grow[_ngcontent-%COMP%]{min-width:0}.prompt-text[_ngcontent-%COMP%]{font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-track[_ngcontent-%COMP%]{height:4px;max-width:280px;background:#ffffff0f;border-radius:999px;margin-top:4px;overflow:hidden}.bar-fill[_ngcontent-%COMP%]{display:block;height:100%;border-radius:999px}.prompt-model[_ngcontent-%COMP%]{font-size:10.5px;text-align:right}.prompt-toks[_ngcontent-%COMP%], .cache-cell[_ngcontent-%COMP%]{font-size:11px;text-align:right}.cost-cell[_ngcontent-%COMP%]{font-size:13px;font-weight:600;text-align:right}.skel[_ngcontent-%COMP%]{background:var(--bg-elevated);border-radius:5px;animation:_ngcontent-%COMP%_skeleton 1.4s ease-in-out infinite}.row-skel[_ngcontent-%COMP%]{height:30px;margin:6px 0}@keyframes _ngcontent-%COMP%_skeleton{0%,to{opacity:.5}50%{opacity:.9}}"],changeDetection:0})};export{oe as Costs};
@@ -1 +0,0 @@
1
- import{a as z}from"./chunk-5OQKAJAE.js";import{a as E}from"./chunk-4LHBWWP7.js";import"./chunk-FTESTUEO.js";import{a as T}from"./chunk-47QYKLE5.js";import{a as w}from"./chunk-ZABKKHJ3.js";import"./chunk-L4TVIPSR.js";import"./chunk-RP3WU5Y6.js";import{$a as M,Aa as o,K as f,Ka as y,Kb as m,P as b,Q as C,Ra as x,Sa as p,Ta as s,Va as k,Wa as g,Xa as u,Za as i,_a as r,a as _,aa as h,b as v,db as P,hb as O,jb as c,qb as D,sb as a,tb as l,ub as S}from"./chunk-WVCKOJZL.js";var j=(e,n)=>n.id;function N(e,n){e&1&&M(0,"app-pick-project-empty",0)}function $(e,n){if(e&1){let t=P();i(0,"button",10),O("click",function(){let I=b(t).$implicit,L=c(2);return C(L.toggleFilter(I))}),i(1,"span",11),a(2),r(),i(3,"span",12),a(4),r()()}if(e&2){let t=n.$implicit,d=c(2);D("active",d.stateFilter()[t]),x("data-state",t),o(2),l(t),o(2),l(d.counts()[t])}}function A(e,n){e&1&&(i(0,"div",9)(1,"div",13),a(2,"\u2713"),r(),i(3,"div",14),a(4,"All links in good standing"),r(),i(5,"div",15),a(6,"Nothing has drifted. Every spec link points at code that still matches."),r()())}function R(e,n){if(e&1&&a(0),e&2){let t=c().$implicit;S(" \xB7 ",t.driftAxis," ")}}function V(e,n){if(e&1&&(i(0,"div",20),a(1),r()),e&2){let t=c().$implicit;o(),l(t.specTitle)}}function q(e,n){if(e&1&&(i(0,"div",16)(1,"span",17),a(2),p(3,R,1,1),r(),i(4,"div",18)(5,"div",19),a(6),r(),p(7,V,2,1,"div",20),r(),i(8,"div",21)(9,"span",22),a(10,"\u2192"),r(),i(11,"span",23),a(12),i(13,"span",24),a(14,":"),r(),a(15),r()(),i(16,"span",25),a(17),r(),i(18,"span",26),a(19),r()()),e&2){let t=n.$implicit,d=c(3);x("data-state",t.state),o(2),l(t.state),o(),s(t.driftAxis?3:-1),o(3),l(t.specId),o(),s(t.specTitle?7:-1),o(5),l(t.targetFilePath),o(3),l(t.targetQualifiedName),o(2),l(t.provenance),o(2),l(d.ageOf(t))}}function B(e,n){if(e&1&&g(0,q,20,9,"div",16,j),e&2){let t=c(2);u(t.visibleLinks())}}function Q(e,n){if(e&1&&(i(0,"div",1)(1,"header",2)(2,"div",3)(3,"div",4),a(4,"Drift queue"),r(),i(5,"div",5),a(6),r()()(),i(7,"div",6),g(8,$,5,5,"button",7,k),r(),i(10,"div",8),p(11,A,7,0,"div",9)(12,B,2,0),r()()),e&2){let t=c();o(6),l(t.resource.state().loading?"loading\u2026":t.allLinks().length+" links need attention"),o(2),u(t.states),o(3),s(t.visibleLinks().length===0?11:12)}}var F=class e{api=f(w);projects=f(T);stateFilter=h({drifted:!0,broken:!0,orphaned:!0});resource=E(this.api,()=>`/api/drift?state=drifted,broken,orphaned${this.projects.projectQuery("&")}`);allLinks=m(()=>this.resource.state().data?.links??[]);visibleLinks=m(()=>{let n=this.stateFilter();return this.allLinks().filter(t=>n[t.state])});counts=m(()=>{let n={drifted:0,broken:0,orphaned:0};for(let t of this.allLinks())t.state in n&&n[t.state]++;return n});toggleFilter(n){this.stateFilter.update(t=>v(_({},t),{[n]:!t[n]}))}ageOf(n){if(!n.updatedAt)return"";let t=Date.now()-n.updatedAt;return t<6e4?"just now":t<36e5?Math.round(t/6e4)+"m":t<864e5?Math.round(t/36e5)+"h":Math.round(t/864e5)+"d"}states=["drifted","broken","orphaned"];static \u0275fac=function(t){return new(t||e)};static \u0275cmp=y({type:e,selectors:[["app-drift"]],decls:2,vars:1,consts:[["surface","The drift queue"],[1,"page"],[1,"page-head"],[1,"title-block"],[1,"title"],[1,"sub"],[1,"filter-bar"],["type","button",1,"filter-chip",3,"active"],[1,"scroll-y","list-frame"],[1,"empty"],["type","button",1,"filter-chip",3,"click"],[1,"cap"],[1,"count"],[1,"empty-icon"],[1,"empty-title"],[1,"empty-sub"],[1,"link-row"],[1,"state-pill"],[1,"spec-block"],[1,"spec-id","mono"],[1,"spec-title"],[1,"target"],[1,"target-arrow"],[1,"mono","target-path"],[1,"muted"],[1,"provenance"],[1,"age","mono","muted"]],template:function(t,d){t&1&&p(0,N,1,0,"app-pick-project-empty",0)(1,Q,13,2,"div",1),t&2&&s(d.resource.state().noProject?0:1)},dependencies:[z],styles:["[_nghost-%COMP%]{display:contents}.page[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;min-height:0;padding:16px 18px 0}.page-head[_ngcontent-%COMP%]{margin-bottom:12px}.title[_ngcontent-%COMP%]{font-size:var(--fs-title);font-weight:600;letter-spacing:-.01em}.sub[_ngcontent-%COMP%]{color:var(--text-secondary);margin-top:2px}.filter-bar[_ngcontent-%COMP%]{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.filter-chip[_ngcontent-%COMP%]{height:26px;padding:0 10px;border-radius:999px;display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:500;cursor:pointer;text-transform:capitalize;border:1px solid var(--border-subtle);background:var(--bg-panel);color:var(--text-muted);font-family:inherit}.filter-chip.active[data-state=drifted][_ngcontent-%COMP%]{background:var(--warn-soft);color:var(--warn);border-color:transparent}.filter-chip.active[data-state=broken][_ngcontent-%COMP%], .filter-chip.active[data-state=orphaned][_ngcontent-%COMP%]{background:var(--error-soft);color:var(--error);border-color:transparent}.count[_ngcontent-%COMP%]{opacity:.7;font-variant-numeric:tabular-nums}.list-frame[_ngcontent-%COMP%]{flex:1;border-top:1px solid var(--border-subtle);margin:0 -18px}.link-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:130px 220px 1fr 110px 60px;gap:12px;padding:11px 18px;border-bottom:1px solid var(--border-subtle);align-items:center;font-size:12.5px}.link-row[_ngcontent-%COMP%]:hover{background:var(--bg-hover)}.state-pill[_ngcontent-%COMP%]{display:inline-flex;align-items:center;font-size:11px;font-weight:600;padding:2px 8px;border-radius:var(--r-pill)}.link-row[data-state=drifted][_ngcontent-%COMP%] .state-pill[_ngcontent-%COMP%]{color:var(--warn);background:var(--warn-soft)}.link-row[data-state=broken][_ngcontent-%COMP%] .state-pill[_ngcontent-%COMP%], .link-row[data-state=orphaned][_ngcontent-%COMP%] .state-pill[_ngcontent-%COMP%]{color:var(--error);background:var(--error-soft)}.spec-id[_ngcontent-%COMP%]{font-size:12px;color:var(--accent)}.spec-title[_ngcontent-%COMP%]{font-size:11.5px;color:var(--text-secondary);margin-top:2px}.target[_ngcontent-%COMP%]{min-width:0;display:flex;align-items:center;gap:8px}.target-arrow[_ngcontent-%COMP%]{color:var(--text-muted);font-size:14px}.target-path[_ngcontent-%COMP%]{font-size:11.5px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.muted[_ngcontent-%COMP%]{color:var(--text-muted)}.provenance[_ngcontent-%COMP%]{font-size:11px;color:var(--text-muted)}.age[_ngcontent-%COMP%]{font-size:11px;text-align:right}.empty[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;padding:60px 20px;text-align:center;color:var(--text-secondary)}.empty-icon[_ngcontent-%COMP%]{width:52px;height:52px;background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:14px;display:grid;place-items:center;color:var(--success);font-size:24px;margin-bottom:16px}.empty-title[_ngcontent-%COMP%]{font-size:15px;font-weight:600;margin-bottom:6px;color:var(--text-primary)}.empty-sub[_ngcontent-%COMP%]{font-size:12.5px;line-height:1.55;max-width:360px}.mono[_ngcontent-%COMP%]{font-family:var(--font-mono)}"],changeDetection:0})};export{F as Drift};
@@ -1 +0,0 @@
1
- import{a as j,c as $,d as z}from"./chunk-MW7ICSRM.js";import{a as W}from"./chunk-47QYKLE5.js";import{a as N}from"./chunk-ZABKKHJ3.js";import"./chunk-L4TVIPSR.js";import{f as A}from"./chunk-RP3WU5Y6.js";import{$a as M,Aa as a,Cb as E,Eb as T,Fb as I,K as _,Ka as R,Kb as y,P as b,Q as C,Ra as f,Sa as c,Ta as p,V as S,Wa as w,Xa as k,Ya as v,Za as d,_a as o,aa as g,db as O,hb as h,jb as l,sb as s,tb as u,ub as x,vb as D}from"./chunk-WVCKOJZL.js";var L=()=>["/runs"],F=(n,e)=>e.id;function q(n,e){if(n&1&&(d(0,"div",13)(1,"span",14),s(2),o(),d(3,"h2",15),s(4),o(),d(5,"span",16),M(6,"span",17),s(7),o()(),d(8,"div",18),s(9),d(10,"span"),s(11),o()()),n&2){let t=e,r=l();a(),f("data-status",t.status),a(),u(t.status),a(2),u(t.workflowName),a(),v("title",r.streamStatus()),f("data-stream",r.streamStatus()),a(2),x("",r.streamStatus()==="live"?"live":r.streamStatus()," "),a(2),x(" ",t.id),a(2),D(" \xB7 started ",r.fmtTime(t.startedAt)," \xB7 ",r.fmtDuration(t.startedAt,t.completedAt))}}function B(n,e){n&1&&(d(0,"div",4),s(1,"Loading run\u2026"),o())}function Q(n,e){if(n&1&&(d(0,"div",5),s(1),o()),n&2){let t=l();a(),u(t.error())}}function U(n,e){if(n&1){let t=O();d(0,"button",21),h("click",function(){b(t);let i=l(2);return C(i.approve())}),s(1,"Approve"),o(),d(2,"button",22),h("click",function(){b(t);let i=l(2);return C(i.reject())}),s(3,"Reject"),o()}if(n&2){let t=l(2);v("disabled",t.actionPending()!==null),a(2),v("disabled",t.actionPending()!==null)}}function J(n,e){if(n&1){let t=O();d(0,"button",21),h("click",function(){b(t);let i=l(2);return C(i.resume())}),s(1,"Resume"),o()}if(n&2){let t=l(2);v("disabled",t.actionPending()!==null)}}function G(n,e){if(n&1){let t=O();d(0,"button",23),h("click",function(){b(t);let i=l(2);return C(i.cancel())}),s(1,"Cancel"),o()}if(n&2){let t=l(2);v("disabled",t.actionPending()!==null)}}function H(n,e){if(n&1&&(c(0,U,4,2),c(1,J,2,1,"button",19),c(2,G,2,1,"button",20)),n&2){let t=e,r=l();p(r.approvalPending()?0:-1),a(),p(t.status==="paused"?1:-1),a(),p(t.status==="running"||t.status==="paused"?2:-1)}}function K(n,e){if(n&1&&(d(0,"div",7),s(1),o()),n&2){let t=l();a(),x("Action failed: ",t.actionError())}}function X(n,e){n&1&&(d(0,"div",7),s(1),o()),n&2&&(a(),u(e))}function Y(n,e){n&1&&(d(0,"div",11),s(1,"Waiting for the first step to start\u2026"),o())}function Z(n,e){if(n&1&&(d(0,"span",28),s(1),o()),n&2){let t=l().$implicit;a(),u(t.kind)}}function tt(n,e){if(n&1&&(d(0,"pre",31),s(1),o()),n&2){let t=l().$implicit;a(),u(t.error)}}function et(n,e){if(n&1&&(d(0,"pre",32),s(1),T(2,"json"),o()),n&2){let t=l().$implicit;a(),u(I(2,1,t.output))}}function nt(n,e){if(n&1&&(d(0,"article",24)(1,"header",25)(2,"span",26),s(3),o(),d(4,"span",27),s(5),o(),c(6,Z,2,1,"span",28),M(7,"span",29),d(8,"span",30),s(9),o()(),c(10,tt,2,1,"pre",31),c(11,et,3,3,"pre",32),o()),n&2){let t=e.$implicit,r=l(2);f("data-step-status",t.status),a(2),f("data-step-status",t.status),a(),u(t.status),a(2),u(t.id),a(),p(t.kind?6:-1),a(3),u(r.fmtDuration(t.startedAt,t.endedAt)),a(),p(t.error?10:-1),a(),p(t.output!==void 0?11:-1)}}function rt(n,e){if(n&1&&w(0,nt,12,8,"article",24,F),n&2){let t=l();k(t.steps())}}function it(n,e){n&1&&(d(0,"div",11),s(1,"No events yet."),o())}function at(n,e){n&1&&(d(0,"div",38),s(1),o()),n&2&&(a(),u(e))}function ot(n,e){if(n&1&&(d(0,"li",33)(1,"span",34),s(2),o(),M(3,"span",35),d(4,"div",36)(5,"div",37),s(6),o(),c(7,at,2,1,"div",38),o()()),n&2){let t,r=e.$implicit,i=l(2);f("data-event-type",r.eventType),a(2),u(i.fmtTime(r.createdAt)),a(4),u(i.eventLabel(r)),a(),p((t=i.eventDetail(r))?7:-1,t)}}function dt(n,e){if(n&1&&(d(0,"ol",12),w(1,ot,8,4,"li",33,F),o()),n&2){let t=l();a(),k(t.events())}}var V=class n{api=_(N);projects=_(W);route=_(j);router=_($);destroyRef=_(S);runId=g("");run=g(null);events=g([]);loading=g(!0);error=g(null);streamStatus=g("connecting");actionPending=g(null);actionError=g(null);closeStream=null;status=y(()=>this.run()?.status??null);isTerminal=y(()=>{let e=this.status();return e==="completed"||e==="failed"||e==="cancelled"});steps=y(()=>{let e=new Map;for(let t of this.events()){let r=t.data?.stepId??t.stepId??"";if(!r)continue;e.has(r)||e.set(r,{id:r,status:"pending"});let i=e.get(r);t.eventType==="step_started"?(i.status="running",i.startedAt=t.createdAt,i.kind=t.data?.kind??i.kind):t.eventType==="step_completed"?(i.status="completed",i.endedAt=t.createdAt,i.output=t.data?.output):t.eventType==="step_failed"?(i.status="failed",i.endedAt=t.createdAt,i.error=t.data?.error??"failed"):t.eventType==="step_skipped"&&(i.status="skipped",i.endedAt=t.createdAt)}return Array.from(e.values())});approvalPending=y(()=>[...this.events()].reverse().find(t=>t.eventType==="approval_requested"||t.eventType==="approval_granted"||t.eventType==="approval_rejected")?.eventType==="approval_requested");ngOnInit(){let e=this.route.snapshot.paramMap.get("id")??"";if(!e){this.error.set("No run id"),this.loading.set(!1);return}this.runId.set(e),this.bootstrap(e)}ngOnDestroy(){this.closeStream?.(),this.closeStream=null}async bootstrap(e){try{let t=await this.api.get(`/api/workflows/runs/${encodeURIComponent(e)}${this.projects.projectQuery()}`);this.run.set(t.run),this.events.set(t.events??[]),this.loading.set(!1),this.isTerminal()?this.streamStatus.set("closed"):this.openStream(e)}catch(t){this.error.set(t instanceof Error?t.message:String(t)),this.loading.set(!1)}}openStream(e){this.streamStatus.set("connecting");let t=this.api.openEventStream(`/api/workflows/runs/${encodeURIComponent(e)}/events${this.projects.projectQuery()}`,(r,i)=>{if(r==="done"){this.streamStatus.set("closed"),this.refreshRun();return}let m=i;!m||typeof m!="object"||m.id==null||(this.streamStatus.set("live"),this.appendEvent(m),r.startsWith("run_")&&this.refreshRun())},()=>{this.streamStatus.set("error")});this.closeStream=t,this.destroyRef.onDestroy(()=>t())}appendEvent(e){this.events.update(t=>{if(t.some(i=>i.id===e.id))return t;let r=[...t,e];return r.sort((i,m)=>i.id-m.id),r})}async refreshRun(){try{let e=this.runId();if(!e)return;let t=await this.api.get(`/api/workflows/runs/${encodeURIComponent(e)}${this.projects.projectQuery()}`);this.run.set(t.run)}catch{}}async approve(){await this.action("approve")}async reject(){let e=prompt("Reason for rejecting?")??void 0;await this.action("reject",e?{reason:e}:void 0)}async cancel(){confirm("Cancel this run?")&&await this.action("cancel")}async resume(){await this.action("resume")}async action(e,t){this.actionPending.set(e),this.actionError.set(null);try{await this.api.post(`/api/workflows/runs/${encodeURIComponent(this.runId())}/${e}${this.projects.projectQuery()}`,t??{}),await this.refreshRun(),(e==="resume"||e==="approve")&&!this.isTerminal()&&!this.closeStream&&this.openStream(this.runId())}catch(r){this.actionError.set(r instanceof Error?r.message:String(r))}finally{this.actionPending.set(null)}}fmtTime(e){return e?new Date(e).toLocaleTimeString():"\u2014"}fmtDuration(e,t){if(!e)return"\u2014";let i=(t??Date.now())-e;return i>=6e4?Math.round(i/6e4)+"m "+Math.round(i%6e4/1e3)+"s":i>=1e3?(i/1e3).toFixed(1)+"s":i+"ms"}eventLabel(e){let t=e.data?.stepId??e.stepId??"";return{run_started:"Run started",run_completed:"Run completed",run_failed:"Run failed",run_cancelled:"Run cancelled",run_paused:"Run paused",step_started:`Step started \xB7 ${t}`,step_completed:`Step completed \xB7 ${t}`,step_failed:`Step failed \xB7 ${t}`,step_skipped:`Step skipped \xB7 ${t}`,tool_called:`Tool called \xB7 ${e.data?.tool??"?"}`,artifact_created:`Artifact \xB7 ${e.data?.name??"?"}`,approval_requested:"Approval requested",approval_granted:"Approval granted",approval_rejected:"Approval rejected"}[e.eventType]??e.eventType}eventDetail(e){if(!e.data)return"";let t=e.data.output,r=e.data.error;if(typeof r=="string")return r;if(typeof t=="string")return t.length>200?t.slice(0,200)+"\u2026":t;if(t!=null)try{let i=JSON.stringify(t);return i.length>200?i.slice(0,200)+"\u2026":i}catch{return""}return""}back(){this.router.navigate(["/runs"])}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=R({type:n,selectors:[["app-run-detail"]],decls:27,vars:10,consts:[[1,"rd-root"],[1,"rd-head"],["aria-label","Back to runs",1,"rd-back",3,"routerLink"],[1,"rd-head-main"],[1,"muted"],[1,"rd-error"],[1,"rd-actions"],[1,"rd-banner-error"],[1,"rd-body"],[1,"rd-section"],[1,"rd-h3"],[1,"muted","rd-empty"],[1,"rd-timeline"],[1,"rd-title-row"],[1,"status-pill"],[1,"mono"],[1,"rd-stream",3,"title"],[1,"rd-dot"],[1,"rd-sub","mono","muted"],["type","button",1,"btn","btn-primary",3,"disabled"],["type","button",1,"btn","btn-ghost-danger",3,"disabled"],["type","button",1,"btn","btn-primary",3,"click","disabled"],["type","button",1,"btn","btn-ghost-warn",3,"click","disabled"],["type","button",1,"btn","btn-ghost-danger",3,"click","disabled"],[1,"rd-step"],[1,"rd-step-head"],[1,"rd-step-status"],[1,"mono","rd-step-id"],[1,"rd-step-kind"],[1,"rd-spacer"],[1,"muted","mono","rd-step-dur"],[1,"rd-step-error","mono"],[1,"rd-step-output","mono"],[1,"rd-event"],[1,"rd-event-time","mono","muted"],[1,"rd-event-dot"],[1,"rd-event-body"],[1,"rd-event-label"],[1,"rd-event-detail","mono","muted"]],template:function(t,r){if(t&1&&(d(0,"div",0)(1,"header",1)(2,"a",2),s(3,"\u2190"),o(),d(4,"div",3),c(5,q,12,9)(6,B,2,0,"div",4)(7,Q,2,1,"div",5),o(),d(8,"div",6),c(9,H,3,3),o()(),c(10,K,2,1,"div",7),c(11,X,2,1,"div",7),d(12,"div",8)(13,"section",9)(14,"h3",10),s(15,"Steps "),d(16,"span",4),s(17),o()(),c(18,Y,2,0,"div",11)(19,rt,2,0),o(),d(20,"section",9)(21,"h3",10),s(22,"Event timeline "),d(23,"span",4),s(24),o()(),c(25,it,2,0,"div",11)(26,dt,3,0,"ol",12),o()()()),t&2){let i,m,P;a(2),v("routerLink",E(9,L)),a(3),p((i=r.run())?5:r.loading()?6:r.error()?7:-1,i),a(4),p((m=r.run())?9:-1,m),a(),p(r.actionError()?10:-1),a(),p((P=(P=r.run())==null?null:P.errorMessage)?11:-1,P),a(6),x("(",r.steps().length,")"),a(),p(r.steps().length===0?18:19),a(6),x("(",r.events().length,")"),a(),p(r.events().length===0?25:26)}},dependencies:[z,A],styles:["[_nghost-%COMP%]{display:contents}.rd-root[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;min-height:0;padding:16px 20px 20px;gap:14px}.rd-head[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px}.rd-back[_ngcontent-%COMP%]{width:32px;height:32px;display:grid;place-items:center;border-radius:7px;border:1px solid var(--border-subtle);background:var(--bg-panel);color:var(--text-secondary);text-decoration:none;font-size:16px}.rd-back[_ngcontent-%COMP%]:hover{background:var(--bg-hover);color:var(--text-primary)}.rd-head-main[_ngcontent-%COMP%]{flex:1;min-width:0}.rd-title-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px}.rd-title-row[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{font-size:18px;font-weight:600;margin:0}.rd-sub[_ngcontent-%COMP%]{margin-top:3px;font-size:11.5px;overflow-wrap:anywhere}.status-pill[_ngcontent-%COMP%]{font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:var(--r-pill, 999px);text-transform:capitalize}.status-pill[data-status=running][_ngcontent-%COMP%]{color:var(--info);background:var(--info-soft)}.status-pill[data-status=paused][_ngcontent-%COMP%]{color:var(--warn);background:var(--warn-soft)}.status-pill[data-status=completed][_ngcontent-%COMP%]{color:var(--success);background:var(--success-soft)}.status-pill[data-status=failed][_ngcontent-%COMP%]{color:var(--error);background:var(--error-soft)}.status-pill[data-status=cancelled][_ngcontent-%COMP%], .status-pill[data-status=pending][_ngcontent-%COMP%]{color:var(--text-muted);background:#ffffff0d}.rd-stream[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.rd-stream[_ngcontent-%COMP%] .rd-dot[_ngcontent-%COMP%]{width:7px;height:7px;border-radius:50%;background:var(--text-muted)}.rd-stream[data-stream=live][_ngcontent-%COMP%]{color:var(--success)}.rd-stream[data-stream=live][_ngcontent-%COMP%] .rd-dot[_ngcontent-%COMP%]{background:var(--success);box-shadow:0 0 6px var(--success);animation:_ngcontent-%COMP%_rd-pulse 1.4s ease-in-out infinite}.rd-stream[data-stream=connecting][_ngcontent-%COMP%] .rd-dot[_ngcontent-%COMP%]{background:var(--warn)}.rd-stream[data-stream=error][_ngcontent-%COMP%]{color:var(--error)}.rd-stream[data-stream=error][_ngcontent-%COMP%] .rd-dot[_ngcontent-%COMP%]{background:var(--error)}@keyframes _ngcontent-%COMP%_rd-pulse{0%,to{opacity:1}50%{opacity:.4}}.rd-actions[_ngcontent-%COMP%]{display:flex;gap:8px;flex-shrink:0}.btn[_ngcontent-%COMP%]{height:30px;padding:0 12px;border-radius:7px;border:1px solid var(--border-subtle);background:var(--bg-panel);color:var(--text-primary);font-size:12px;cursor:pointer}.btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--bg-hover)}.btn[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed}.btn-primary[_ngcontent-%COMP%]{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary[_ngcontent-%COMP%]:hover:not(:disabled){filter:brightness(1.05)}.btn-ghost-warn[_ngcontent-%COMP%]{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 40%,transparent);background:transparent}.btn-ghost-danger[_ngcontent-%COMP%]{color:var(--error);border-color:color-mix(in srgb,var(--error) 40%,transparent);background:transparent}.rd-banner-error[_ngcontent-%COMP%]{background:var(--error-soft);color:var(--error);border:1px solid color-mix(in srgb,var(--error) 30%,transparent);border-radius:var(--r-md, 8px);padding:10px 14px;font-size:12.5px;font-family:var(--font-mono)}.rd-body[_ngcontent-%COMP%]{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px;overflow:hidden}@media(max-width:1100px){.rd-body[_ngcontent-%COMP%]{grid-template-columns:1fr}}.rd-section[_ngcontent-%COMP%]{display:flex;flex-direction:column;min-height:0;background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--r-lg, 10px);padding:14px 16px 16px;overflow-y:auto}.rd-h3[_ngcontent-%COMP%]{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-weight:600;margin:0 0 12px}.rd-empty[_ngcontent-%COMP%]{padding:18px;text-align:center;font-size:12.5px}.rd-step[_ngcontent-%COMP%]{border:1px solid var(--border-subtle);border-radius:8px;background:var(--bg-canvas);padding:10px 12px;margin-bottom:8px}.rd-step[data-step-status=failed][_ngcontent-%COMP%]{border-color:color-mix(in srgb,var(--error) 40%,transparent)}.rd-step[data-step-status=completed][_ngcontent-%COMP%]{border-color:color-mix(in srgb,var(--success) 30%,transparent)}.rd-step[data-step-status=running][_ngcontent-%COMP%]{border-color:color-mix(in srgb,var(--info) 40%,transparent)}.rd-step-head[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px}.rd-step-status[_ngcontent-%COMP%]{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:2px 7px;border-radius:999px;background:#ffffff0d;color:var(--text-muted)}.rd-step-status[data-step-status=running][_ngcontent-%COMP%]{color:var(--info);background:var(--info-soft)}.rd-step-status[data-step-status=completed][_ngcontent-%COMP%]{color:var(--success);background:var(--success-soft)}.rd-step-status[data-step-status=failed][_ngcontent-%COMP%]{color:var(--error);background:var(--error-soft)}.rd-step-status[data-step-status=skipped][_ngcontent-%COMP%]{color:var(--text-muted)}.rd-step-id[_ngcontent-%COMP%]{font-size:12.5px;font-weight:500}.rd-step-kind[_ngcontent-%COMP%]{font-size:10.5px;color:var(--text-muted);padding:1px 6px;border-radius:4px;border:1px solid var(--border-subtle)}.rd-spacer[_ngcontent-%COMP%]{flex:1}.rd-step-dur[_ngcontent-%COMP%]{font-size:11px}.rd-step-output[_ngcontent-%COMP%], .rd-step-error[_ngcontent-%COMP%]{margin:8px 0 0;font-size:11px;line-height:1.5;background:var(--bg-canvas-2, var(--bg-canvas));border:1px solid var(--border-subtle);border-radius:6px;padding:8px 10px;max-height:220px;overflow:auto;white-space:pre-wrap;word-break:break-word}.rd-step-error[_ngcontent-%COMP%]{color:var(--error);border-color:color-mix(in srgb,var(--error) 30%,transparent)}.rd-timeline[_ngcontent-%COMP%]{list-style:none;margin:0;padding:0 0 0 14px;border-left:1px solid var(--border-subtle)}.rd-event[_ngcontent-%COMP%]{position:relative;display:grid;grid-template-columns:74px 1fr;gap:10px;padding:6px 0;align-items:flex-start}.rd-event-time[_ngcontent-%COMP%]{font-size:10.5px;padding-top:2px;text-align:right}.rd-event-dot[_ngcontent-%COMP%]{position:absolute;left:-18px;top:10px;width:8px;height:8px;border-radius:50%;background:var(--text-muted);border:2px solid var(--bg-panel)}.rd-event[data-event-type=step_completed][_ngcontent-%COMP%] .rd-event-dot[_ngcontent-%COMP%], .rd-event[data-event-type=run_completed][_ngcontent-%COMP%] .rd-event-dot[_ngcontent-%COMP%]{background:var(--success)}.rd-event[data-event-type=step_failed][_ngcontent-%COMP%] .rd-event-dot[_ngcontent-%COMP%], .rd-event[data-event-type=run_failed][_ngcontent-%COMP%] .rd-event-dot[_ngcontent-%COMP%]{background:var(--error)}.rd-event[data-event-type=step_started][_ngcontent-%COMP%] .rd-event-dot[_ngcontent-%COMP%], .rd-event[data-event-type=run_started][_ngcontent-%COMP%] .rd-event-dot[_ngcontent-%COMP%]{background:var(--info)}.rd-event[data-event-type=approval_requested][_ngcontent-%COMP%] .rd-event-dot[_ngcontent-%COMP%]{background:var(--warn)}.rd-event-body[_ngcontent-%COMP%]{min-width:0}.rd-event-label[_ngcontent-%COMP%]{font-size:12px}.rd-event-detail[_ngcontent-%COMP%]{font-size:10.5px;margin-top:2px;overflow-wrap:anywhere}.muted[_ngcontent-%COMP%]{color:var(--text-muted)}.mono[_ngcontent-%COMP%]{font-family:var(--font-mono)}"],changeDetection:0})};export{V as RunDetail};
@@ -1 +0,0 @@
1
- import{c as s}from"./chunk-L4TVIPSR.js";import{K as h,Ka as c,Kb as y,Ob as i,R as n,Ra as l,cb as o,eb as p,wa as r}from"./chunk-WVCKOJZL.js";var x={dashboard:'<rect x="3" y="3" width="7" height="9"/><rect x="14" y="3" width="7" height="5"/><rect x="14" y="12" width="7" height="9"/><rect x="3" y="16" width="7" height="5"/>',graph:'<circle cx="5" cy="6" r="2.5"/><circle cx="19" cy="6" r="2.5"/><circle cx="12" cy="18" r="2.5"/><path d="M7 7.5 10.5 16M16.5 7.5 13.5 16M7 6h10"/>',book:'<path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20"/><path d="M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"/>',drift:'<path d="M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h16.9a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z"/><path d="M12 9v4M12 17h.01"/>',workflow:'<rect x="3" y="3" width="6" height="6" rx="1"/><rect x="15" y="15" width="6" height="6" rx="1"/><path d="M6 9v3a3 3 0 0 0 3 3h6"/>',play:'<polygon points="6 3 20 12 6 21 6 3"/>',wrench:'<path d="M14.7 6.3a4 4 0 0 0-5.4 5.3L3 18v3h3l6.4-6.3a4 4 0 0 0 5.3-5.4l-2.9 2.9-2.1-2.1z"/>',database:'<ellipse cx="12" cy="5" rx="8" ry="3"/><path d="M4 5v6c0 1.7 3.6 3 8 3s8-1.3 8-3V5"/><path d="M4 11v6c0 1.7 3.6 3 8 3s8-1.3 8-3v-6"/>',bot:'<rect x="4" y="8" width="16" height="12" rx="2"/><path d="M12 4v4M9 14h.01M15 14h.01M2 13h2M20 13h2"/>',folder:'<path d="M20 10V7a2 2 0 0 0-2-2h-6l-2-2H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2h7"/><path d="M12 10v11M16 14l-4-4-4 4M21 19h-6"/>',chat:'<path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/>',sessions:'<path d="M3 3v18h18"/><path d="M7 14l3-4 3 3 4-6"/>',heatmap:'<rect x="3" y="3" width="7" height="7" rx="1"/><rect x="14" y="3" width="7" height="7" rx="1"/><rect x="3" y="14" width="7" height="7" rx="1"/><rect x="14" y="14" width="7" height="7" rx="1"/>',dollar:'<line x1="12" y1="1" x2="12" y2="23"/><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"/>',compare:'<path d="M16 3h5v5M21 3l-7 7M8 21H3v-5M3 21l7-7"/>',tips:'<path d="M9 18h6M10 22h4M12 2a7 7 0 0 0-4 12.7c.6.5 1 1.3 1 2.1V18h6v-1.2c0-.8.4-1.6 1-2.1A7 7 0 0 0 12 2z"/>',settings:'<circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.6 1.6 0 0 0 .3 1.8l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.6 1.6 0 0 0-1.8-.3 1.6 1.6 0 0 0-1 1.5V21a2 2 0 0 1-4 0v-.1a1.6 1.6 0 0 0-1-1.5 1.6 1.6 0 0 0-1.8.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.6 1.6 0 0 0 .3-1.8 1.6 1.6 0 0 0-1.5-1H3a2 2 0 0 1 0-4h.1a1.6 1.6 0 0 0 1.5-1 1.6 1.6 0 0 0-.3-1.8l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.6 1.6 0 0 0 1.8.3H9a1.6 1.6 0 0 0 1-1.5V3a2 2 0 0 1 4 0v.1a1.6 1.6 0 0 0 1 1.5 1.6 1.6 0 0 0 1.8-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.6 1.6 0 0 0-.3 1.8V9a1.6 1.6 0 0 0 1.5 1H21a2 2 0 0 1 0 4h-.1a1.6 1.6 0 0 0-1.5 1z"/>',box:'<path d="M21 16V8a2 2 0 0 0-1-1.7l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.7l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"/><path d="m3.3 7 8.7 5 8.7-5M12 22V12"/>',search:'<circle cx="11" cy="11" r="7"/><line x1="21" y1="21" x2="16.7" y2="16.7"/>',command:'<path d="M15 6a3 3 0 1 1 3 3h-3V6zM9 6a3 3 0 1 0-3 3h3V6zM15 18a3 3 0 1 0 3-3h-3v3zM9 18a3 3 0 1 1-3-3h3v3zM9 9h6v6H9z"/>',chevronRight:'<polyline points="9 6 15 12 9 18"/>',chevronDown:'<polyline points="6 9 12 15 18 9"/>',chevronLeft:'<polyline points="15 6 9 12 15 18"/>',x:'<line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/>',check:'<polyline points="20 6 9 17 4 12"/>',copy:'<rect x="9" y="9" width="13" height="13" rx="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>',arrowRight:'<line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/>',plus:'<line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/>',minus:'<line x1="5" y1="12" x2="19" y2="12"/>',maximize:'<path d="M8 3H5a2 2 0 0 0-2 2v3M21 8V5a2 2 0 0 0-2-2h-3M16 21h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"/>',recenter:'<circle cx="12" cy="12" r="3"/><path d="M12 2v4M12 18v4M2 12h4M18 12h4"/>',refresh:'<path d="M21 2v6h-6M3 22v-6h6"/><path d="M3.5 9a9 9 0 0 1 14.8-3.4L21 8M21 15a9 9 0 0 1-14.8 3.4L3 16"/>',filter:'<polygon points="22 3 2 3 10 12.5 10 19 14 21 14 12.5 22 3"/>',pause:'<rect x="6" y="4" width="4" height="16"/><rect x="14" y="4" width="4" height="16"/>',external:'<path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/>',zap:'<polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"/>',clock:'<circle cx="12" cy="12" r="9"/><polyline points="12 7 12 12 15 14"/>',trendUp:'<polyline points="22 7 13.5 15.5 8.5 10.5 2 17"/><polyline points="16 7 22 7 22 13"/>',trendDown:'<polyline points="22 17 13.5 8.5 8.5 13.5 2 7"/><polyline points="16 17 22 17 22 11"/>',circle:'<circle cx="12" cy="12" r="9"/>',dot:'<circle cx="12" cy="12" r="5"/>',reveal:'<path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7z"/><circle cx="12" cy="12" r="3"/>',sparkles:'<path d="M12 3v4M12 17v4M3 12h4M17 12h4"/><path d="m6 6 2.5 2.5M15.5 15.5 18 18M18 6l-2.5 2.5M8.5 15.5 6 18"/>',menu:'<line x1="4" y1="6" x2="20" y2="6"/><line x1="4" y1="12" x2="20" y2="12"/><line x1="4" y1="18" x2="20" y2="18"/>',send:'<line x1="22" y1="2" x2="11" y2="13"/><polygon points="22 2 15 22 11 13 2 9 22 2"/>',paperclip:'<path d="M21.4 11.05 12.25 20.2a5 5 0 0 1-7.07-7.07l9.19-9.19a3 3 0 0 1 4.24 4.24l-9.2 9.19a1 1 0 0 1-1.41-1.41l8.48-8.49"/>',sortAsc:'<path d="M11 5h10M11 9h7M11 13h4M3 17l3 3 3-3M6 6v14"/>',flame:'<path d="M12 2c1 4 5 5 5 9a5 5 0 0 1-10 0c0-1.5.5-2.5 1.2-3.4C9 9 9.5 8 9.5 6.5c1 .5 2 1.5 2.5 2.5C13 7 12.5 4 12 2z"/>',coins:'<circle cx="8" cy="8" r="5"/><path d="M18.1 6.3a5 5 0 0 1 0 9.4M14.4 18.6a5 5 0 0 1-3.4 0"/>',cancel:'<circle cx="12" cy="12" r="9"/><line x1="9" y1="9" x2="15" y2="15"/><line x1="15" y1="9" x2="9" y2="15"/>',skip:'<polyline points="13 17 18 12 13 7"/><polyline points="6 17 11 12 6 7"/>',layers:'<polygon points="12 2 2 7 12 12 22 7 12 2"/><polyline points="2 12 12 17 22 12"/><polyline points="2 17 12 22 22 17"/>',sun:'<circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4"/>',moon:'<path d="M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z"/>',memory:'<rect x="4" y="6" width="16" height="12" rx="2"/><path d="M8 6V3M12 6V3M16 6V3M8 21v-3M12 21v-3M16 21v-3M2 10h2M2 14h2M20 10h2M20 14h2"/><rect x="8.5" y="10" width="7" height="4" rx="1"/>',lock:'<rect x="4" y="11" width="16" height="10" rx="2"/><path d="M8 11V7a4 4 0 0 1 8 0v4"/>',palette:'<circle cx="12" cy="12" r="9"/><circle cx="7.5" cy="10.5" r="1"/><circle cx="12" cy="7" r="1"/><circle cx="16.5" cy="10.5" r="1"/><path d="M12 21a3 3 0 0 1 0-6c1.5 0 2 1 3.5 1a2 2 0 0 0 0-4"/>'},M=class a{name=i.required();size=i(16);stroke=i(2);sanitizer=h(s);markup=y(()=>this.sanitizer.bypassSecurityTrustHtml(x[this.name()]??""));static \u0275fac=function(e){return new(e||a)};static \u0275cmp=c({type:a,selectors:[["app-icon"]],inputs:{name:[1,"name"],size:[1,"size"],stroke:[1,"stroke"]},decls:1,vars:4,consts:[["viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-linecap","round","stroke-linejoin","round",3,"innerHTML"]],template:function(e,t){e&1&&(n(),o(0,"svg",0)),e&2&&(p("innerHTML",t.markup(),r),l("width",t.size())("height",t.size())("stroke-width",t.stroke()))},styles:["[_nghost-%COMP%]{display:inline-flex;align-items:center;justify-content:center;line-height:0}"],changeDetection:0})};export{M as a};
@@ -1 +0,0 @@
1
- import{a as P}from"./chunk-5OQKAJAE.js";import{a as b}from"./chunk-4LHBWWP7.js";import"./chunk-FTESTUEO.js";import{a as C}from"./chunk-47QYKLE5.js";import{a as k}from"./chunk-ZABKKHJ3.js";import"./chunk-L4TVIPSR.js";import"./chunk-RP3WU5Y6.js";import{$a as w,Aa as r,Bb as v,Cb as y,K as c,Ka as m,Kb as _,Ra as g,Sa as p,Ta as s,Wa as u,Xa as x,Za as o,_a as n,jb as d,sb as a,tb as l,ub as f}from"./chunk-WVCKOJZL.js";var O=()=>[],E=(t,i)=>i.workflow.name,j=(t,i)=>e=>e.name;function S(t,i){t&1&&w(0,"app-pick-project-empty",0)}function W(t,i){if(t&1&&(o(0,"span",17),a(1),n()),t&2){let e=d().$implicit;r(),f("needs: ",e.workflow.inputs.map(v(1,j,i)).join(", "))}}function z(t,i){if(t&1&&(o(0,"div",7)(1,"div",8)(2,"span",9),a(3),n(),o(4,"span",10),a(5),n()(),o(6,"div",11),a(7),n(),o(8,"div",12)(9,"span",13),a(10,"requires"),n(),o(11,"span",14),a(12),n()(),o(13,"div",15)(14,"button",16),a(15,"\u25B6 Run"),n(),p(16,W,2,2,"span",17),n()()),t&2){let e=i.$implicit;r(2),g("data-scope",e.scope),r(),l(e.scope),r(2),l(e.workflow.name),r(2),l(e.workflow.description||"\u2014"),r(5),l((e.workflow.requires||y(6,O)).join(", ")||"\u2014"),r(4),s(e.workflow.inputs!=null&&e.workflow.inputs.length?16:-1)}}function I(t,i){if(t&1&&(o(0,"div",1)(1,"header",2)(2,"div",3)(3,"div",4),a(4,"Workflows"),n(),o(5,"div",5),a(6),n()()(),o(7,"div",6),u(8,z,17,7,"div",7,E),n()()),t&2){let e=d();r(6),f("",e.entries().length," workflows \xB7 bundled + global + project"),r(2),x(e.entries())}}var h=class t{api=c(k);projects=c(C);resource=b(this.api,()=>`/api/workflows${this.projects.projectQuery()}`);entries=_(()=>this.resource.state().data?.workflows??[]);static \u0275fac=function(e){return new(e||t)};static \u0275cmp=m({type:t,selectors:[["app-workflows"]],decls:2,vars:1,consts:[["surface","Workflows"],[1,"page","scroll-y"],[1,"page-head"],[1,"title-block"],[1,"title"],[1,"sub"],[1,"wf-grid"],[1,"wf-card"],[1,"wf-head"],[1,"scope-pill"],[1,"mono","wf-name"],[1,"wf-desc"],[1,"wf-meta"],[1,"meta-label"],[1,"mono"],[1,"wf-actions"],["type","button",1,"primary"],[1,"muted"]],template:function(e,M){e&1&&p(0,S,1,0,"app-pick-project-empty",0)(1,I,10,1,"div",1),e&2&&s(M.resource.state().noProject?0:1)},dependencies:[P],styles:["[_nghost-%COMP%]{display:contents}.page[_ngcontent-%COMP%]{flex:1;padding:18px}.title[_ngcontent-%COMP%]{font-size:var(--fs-title);font-weight:600;letter-spacing:-.01em}.sub[_ngcontent-%COMP%]{color:var(--text-secondary);margin-top:2px}.page-head[_ngcontent-%COMP%]{margin-bottom:16px}.muted[_ngcontent-%COMP%]{color:var(--text-muted);font-size:11px}.mono[_ngcontent-%COMP%]{font-family:var(--font-mono)}.wf-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:12px}.wf-card[_ngcontent-%COMP%]{background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:14px;display:flex;flex-direction:column;gap:10px}.wf-head[_ngcontent-%COMP%]{display:flex;gap:10px;align-items:center}.scope-pill[_ngcontent-%COMP%]{font-size:10px;font-weight:600;padding:2px 8px;border-radius:var(--r-pill);text-transform:uppercase;letter-spacing:.05em;background:#ffffff0d;color:var(--text-muted)}.scope-pill[data-scope=bundled][_ngcontent-%COMP%]{background:var(--accent-soft);color:var(--accent)}.scope-pill[data-scope=project][_ngcontent-%COMP%]{background:var(--node-test-soft);color:var(--node-test)}.wf-name[_ngcontent-%COMP%]{font-size:13.5px;font-weight:600;color:var(--text-primary)}.wf-desc[_ngcontent-%COMP%]{color:var(--text-secondary);font-size:12.5px;line-height:1.5;flex:1}.wf-meta[_ngcontent-%COMP%]{display:flex;gap:8px;align-items:center;font-size:11.5px;color:var(--text-secondary)}.meta-label[_ngcontent-%COMP%]{color:var(--text-muted);font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.wf-actions[_ngcontent-%COMP%]{display:flex;gap:10px;align-items:center}.primary[_ngcontent-%COMP%]{background:var(--accent-strong);color:#fff;border:none;padding:5px 12px;border-radius:5px;font-size:12px;font-weight:500;font-family:inherit;cursor:pointer}.primary[_ngcontent-%COMP%]:hover{background:var(--accent)}"],changeDetection:0})};export{h as Workflows};