@reposkein/mcp 0.4.0 → 0.5.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 (45) hide show
  1. package/README.md +3 -0
  2. package/binary-digests.json +4 -4
  3. package/dist/cli/view.js +27 -6
  4. package/dist/cli/view.js.map +1 -1
  5. package/dist/index.d.ts +8 -56
  6. package/dist/index.js +38 -402
  7. package/dist/index.js.map +1 -1
  8. package/dist/indexer/indexLock.d.ts +13 -0
  9. package/dist/indexer/indexLock.js +66 -0
  10. package/dist/indexer/indexLock.js.map +1 -0
  11. package/dist/indexer/runIndexer.d.ts +8 -0
  12. package/dist/indexer/runIndexer.js +12 -0
  13. package/dist/indexer/runIndexer.js.map +1 -1
  14. package/dist/serve/serve.d.ts +95 -0
  15. package/dist/serve/serve.js +581 -0
  16. package/dist/serve/serve.js.map +1 -0
  17. package/dist/serve/tokens.d.ts +49 -0
  18. package/dist/serve/tokens.js +108 -0
  19. package/dist/serve/tokens.js.map +1 -0
  20. package/dist/serve/watch.d.ts +73 -0
  21. package/dist/serve/watch.js +135 -0
  22. package/dist/serve/watch.js.map +1 -0
  23. package/dist/server/createMcpServer.d.ts +129 -0
  24. package/dist/server/createMcpServer.js +464 -0
  25. package/dist/server/createMcpServer.js.map +1 -0
  26. package/dist/store/JsonlGraphStore.d.ts +5 -1
  27. package/dist/store/JsonlGraphStore.js +6 -2
  28. package/dist/store/JsonlGraphStore.js.map +1 -1
  29. package/dist/store/teamConfig.d.ts +10 -6
  30. package/dist/store/teamConfig.js +23 -17
  31. package/dist/store/teamConfig.js.map +1 -1
  32. package/dist/tools/recordDecision.d.ts +3 -0
  33. package/dist/tools/recordDecision.js +1 -1
  34. package/dist/tools/recordDecision.js.map +1 -1
  35. package/dist/tools/writeSemanticSummary.d.ts +4 -1
  36. package/dist/tools/writeSemanticSummary.js +5 -2
  37. package/dist/tools/writeSemanticSummary.js.map +1 -1
  38. package/dist/viz/assets/index-BnqIVYFE.css +1 -0
  39. package/dist/viz/assets/index-IhtszTp0.js +5 -0
  40. package/dist/viz/assets/{r3f-BZY3QR6_.js → r3f-Bn9htB92.js} +1 -1
  41. package/dist/viz/assets/{tanstack-CjXr-L-s.js → tanstack-CSzx6NDA.js} +7 -7
  42. package/dist/viz/index.html +4 -4
  43. package/package.json +1 -1
  44. package/dist/viz/assets/index-CxqeGuRS.css +0 -1
  45. package/dist/viz/assets/index-DiNZyrXx.js +0 -9
@@ -1,18 +1,14 @@
1
1
  import { existsSync, readFileSync } from "node:fs";
2
2
  import { join } from "node:path";
3
- /** Reads `pages_url` from the `[team]` section of `.reposkein/config.toml`,
4
- * or null when the file/section/key is absent (the common case — this is
5
- * an opt-in field a team adds after publishing a hosted constellation, see
6
- * docs/HOSTING.md). Points the viewer's header at wherever the team's
7
- * canonical/CI-published constellation lives (e.g. a GitHub Pages URL),
8
- * distinct from whatever ad-hoc `view`/`view --export` a given machine
9
- * happens to be looking at right now.
3
+ /** Reads one `key = "value"` from one `[section]` of `.reposkein/config.toml`,
4
+ * or null when the file, section, key, or quoting is absent.
10
5
  *
11
- * A deliberate ~20-line scanner rather than a TOML dependency — mirrors
12
- * `config_bool` in indexer/crates/cli/src/main.rs: this reads exactly one
13
- * setting, and its config is a file `reposkein-indexer init` writes.
14
- * Absent file, section, or key all mean `null`. */
15
- export function readTeamPagesUrl(repoPath) {
6
+ * A deliberate ~25-line scanner rather than a TOML dependency — mirrors
7
+ * `config_bool` in indexer/crates/cli/src/main.rs: this reads a handful of
8
+ * scalar settings out of a file `reposkein-indexer init` writes. Unquoted
9
+ * values yield null on purpose (the writer always quotes; an unquoted value
10
+ * is a hand-edit we refuse to guess at). */
11
+ export function readConfigString(repoPath, section, key) {
16
12
  const path = join(repoPath, ".reposkein", "config.toml");
17
13
  if (!existsSync(path))
18
14
  return null;
@@ -23,22 +19,22 @@ export function readTeamPagesUrl(repoPath) {
23
19
  catch {
24
20
  return null;
25
21
  }
26
- let inTeamSection = false;
22
+ const header = `[${section}]`;
23
+ let inSection = false;
27
24
  for (const rawLine of text.split(/\r?\n/)) {
28
25
  const line = rawLine.trim();
29
26
  if (line === "" || line.startsWith("#"))
30
27
  continue;
31
28
  if (line.startsWith("[")) {
32
- inTeamSection = line === "[team]";
29
+ inSection = line === header;
33
30
  continue;
34
31
  }
35
- if (!inTeamSection)
32
+ if (!inSection)
36
33
  continue;
37
34
  const eq = line.indexOf("=");
38
35
  if (eq === -1)
39
36
  continue;
40
- const key = line.slice(0, eq).trim();
41
- if (key !== "pages_url")
37
+ if (line.slice(0, eq).trim() !== key)
42
38
  continue;
43
39
  const rawValue = line.slice(eq + 1).split("#")[0].trim();
44
40
  const quoted = rawValue.match(/^"([^"]*)"$/) ?? rawValue.match(/^'([^']*)'$/);
@@ -46,4 +42,14 @@ export function readTeamPagesUrl(repoPath) {
46
42
  }
47
43
  return null;
48
44
  }
45
+ /** Reads `pages_url` from the `[team]` section of `.reposkein/config.toml`,
46
+ * or null when the file/section/key is absent (the common case — this is
47
+ * an opt-in field a team adds after publishing a hosted constellation, see
48
+ * docs/HOSTING.md). Points the viewer's header at wherever the team's
49
+ * canonical/CI-published constellation lives (e.g. a GitHub Pages URL),
50
+ * distinct from whatever ad-hoc `view`/`view --export` a given machine
51
+ * happens to be looking at right now. */
52
+ export function readTeamPagesUrl(repoPath) {
53
+ return readConfigString(repoPath, "team", "pages_url");
54
+ }
49
55
  //# sourceMappingURL=teamConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"teamConfig.js","sourceRoot":"","sources":["../../src/store/teamConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;;;;;;;;;;oDAWoD;AACpD,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;IACzD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAClD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,aAAa,GAAG,IAAI,KAAK,QAAQ,CAAC;YAClC,SAAS;QACX,CAAC;QACD,IAAI,CAAC,aAAa;YAAE,SAAS;QAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,EAAE,KAAK,CAAC,CAAC;YAAE,SAAS;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACrC,IAAI,GAAG,KAAK,WAAW;YAAE,SAAS;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC9E,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACpC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"teamConfig.js","sourceRoot":"","sources":["../../src/store/teamConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;;;;;;6CAO6C;AAC7C,MAAM,UAAU,gBAAgB,CAAC,QAAgB,EAAE,OAAe,EAAE,GAAW;IAC7E,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;IACzD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,OAAO,GAAG,CAAC;IAC9B,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAClD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,SAAS,GAAG,IAAI,KAAK,MAAM,CAAC;YAC5B,SAAS;QACX,CAAC;QACD,IAAI,CAAC,SAAS;YAAE,SAAS;QACzB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,EAAE,KAAK,CAAC,CAAC;YAAE,SAAS;QACxB,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,GAAG;YAAE,SAAS;QAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC9E,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACpC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;0CAM0C;AAC1C,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,OAAO,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AACzD,CAAC"}
@@ -20,5 +20,8 @@ export interface DecisionToolDeps {
20
20
  * index snapshot). Failures are swallowed — recording must not break. */
21
21
  refresh?: () => Promise<void>;
22
22
  today?: () => string;
23
+ /** Writer identity for `decided_by` (REP-17: a remote connection's
24
+ * bearer-token name). Omitted over stdio, where REPOSKEIN_AGENT stands. */
25
+ decidedBy?: string;
23
26
  }
24
27
  export declare function makeRecordDecision(store: GraphStore, repoId: string, repoPath: string, deps?: DecisionToolDeps): (args: RecordDecisionArgs) => Promise<ToolResult>;
@@ -95,7 +95,7 @@ export function makeRecordDecision(store, repoId, repoPath, deps = {}) {
95
95
  paths,
96
96
  supersedes,
97
97
  decided_at: date,
98
- decided_by: process.env.REPOSKEIN_AGENT ?? "agent",
98
+ decided_by: deps.decidedBy ?? process.env.REPOSKEIN_AGENT ?? "agent",
99
99
  trigger,
100
100
  body_hash: "",
101
101
  };
@@ -1 +1 @@
1
- {"version":3,"file":"recordDecision.js","sourceRoot":"","sources":["../../src/tools/recordDecision.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recordDecision.js","sourceRoot":"","sources":["../../src/tools/recordDecision.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EACL,aAAa,EACb,eAAe,EACf,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,aAAa,GAId,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AA4BzE,SAAS,QAAQ;IACf,2EAA2E;IAC3E,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,GAAG,GAAG,CAAC,IAAY,EAAc,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AACjG,MAAM,EAAE,GAAG,CAAC,GAAY,EAAc,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAEtG;gEACgE;AAChE,SAAS,WAAW,CAAC,CAAS;IAC5B,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,KAAiB,EACjB,MAAc,EACd,QAAgB,EAChB,OAAyB,EAAE;IAE3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC;IACrC,OAAO,KAAK,EAAE,IAAwB,EAAuB,EAAE;QAC7D,MAAM,KAAK,GAAG,sBAAsB,CAAC;YACnC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,EAAE;YAAE,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEvC,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;QACtC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;QACzC,IAAI,SAAS,CAAC,MAAM,GAAG,EAAE;YAAE,OAAO,GAAG,CAAC,4BAA4B,CAAC,CAAC;QACpE,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE;YAAE,OAAO,GAAG,CAAC,yBAAyB,CAAC,CAAC;QAC7D,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC,sBAAsB,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,GAAG,CAAC,6EAA6E,OAAO,EAAE,CAAC,CAAC;QACrG,CAAC;QAED,IAAI,CAAC;YACH,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC9C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAEtD,wEAAwE;YACxE,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC7B,IAAI,CAAC,MAAM;oBAAE,OAAO,GAAG,CAAC,2CAA2C,GAAG,EAAE,CAAC,CAAC;gBAC1E,IAAI,MAAM,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;oBACnC,OAAO,GAAG,CAAC,YAAY,GAAG,6BAA6B,MAAM,CAAC,aAAa,IAAI,kBAAkB,EAAE,CAAC,CAAC;gBACvG,CAAC;YACH,CAAC;YAED,yEAAyE;YACzE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;gBACvB,CAAC;gBAAC,MAAM,CAAC;oBACP,cAAc;gBAChB,CAAC;YACH,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACnD,MAAM,OAAO,GAAqB,EAAE,CAAC;YACrC,MAAM,UAAU,GAAa,EAAE,CAAC;YAChC,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;gBAC/B,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAClD,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACxB,SAAS;gBACX,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC;oBACX,OAAO,EAAE,IAAI,CAAC,EAAE;oBAChB,IAAI,EAAE,IAAI,CAAC,SAAS;oBACpB,IAAI,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,IAAI;oBACtC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;oBAC1B,IAAI,EAAE,IAAI,CAAC,YAAY;iBACxB,CAAC,CAAC;YACL,CAAC;YAED,MAAM,IAAI,GAAG,KAAK,EAAE,CAAC;YACrB,uEAAuE;YACvE,kEAAkE;YAClE,EAAE;YACF,oEAAoE;YACpE,iEAAiE;YACjE,wEAAwE;YACxE,0EAA0E;YAC1E,MAAM,EAAE,GAAG,cAAc,CACvB,IAAI,EACJ,KAAK,CAAC,KAAK,CAAC,KAAK,EACjB,gBAAgB,CAAC,QAAQ,CAAC,EAC1B,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAClD,CAAC;YACF,MAAM,OAAO,GAAkC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAClE,MAAM,GAAG,GAAmB;gBAC1B,EAAE;gBACF,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK;gBACxB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,UAAU;gBACjC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO;gBAC5B,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ;gBAC9B,OAAO;gBACP,KAAK;gBACL,UAAU;gBACV,UAAU,EAAE,IAAI;gBAChB,UAAU,EAAE,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO;gBACpE,OAAO;gBACP,SAAS,EAAE,EAAE;aACd,CAAC;YACF,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS;gBAAE,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;YACxF,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS;gBAAE,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;YACxF,GAAG,CAAC,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;YACrC,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAE7B,qEAAqE;YACrE,+CAA+C;YAC/C,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;gBAC9B,MAAM,OAAO,GAAmB,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;gBACvF,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACnC,CAAC;YAED,sEAAsE;YACtE,sEAAsE;YACtE,uEAAuE;YACvE,uEAAuE;YACvE,aAAa;YACb,sBAAsB,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAEhE,OAAO,EAAE,CAAC;gBACR,EAAE,EAAE,IAAI;gBACR,WAAW,EAAE,EAAE;gBACf,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBACjF,UAAU;gBACV,UAAU,EAAE,UAAU;aACvB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,GAAG,CAAE,CAAW,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -5,4 +5,7 @@ export interface WriteSummaryArgs {
5
5
  summary: string;
6
6
  model?: string;
7
7
  }
8
- export declare function makeWriteSemanticSummary(store: GraphStore, repoId: string): (args: WriteSummaryArgs) => Promise<ToolResult>;
8
+ /** `identity` names the writer for `summary_by` (REP-17: a remote connection's
9
+ * bearer-token name, which is more specific than the process-wide
10
+ * REPOSKEIN_AGENT). Omitted over stdio, where the env fallback stands. */
11
+ export declare function makeWriteSemanticSummary(store: GraphStore, repoId: string, identity?: string): (args: WriteSummaryArgs) => Promise<ToolResult>;
@@ -3,7 +3,10 @@ function today() {
3
3
  // Day-precision ISO date (PRD §6.2.5: no wall-clock timestamps in output).
4
4
  return new Date().toISOString().slice(0, 10);
5
5
  }
6
- export function makeWriteSemanticSummary(store, repoId) {
6
+ /** `identity` names the writer for `summary_by` (REP-17: a remote connection's
7
+ * bearer-token name, which is more specific than the process-wide
8
+ * REPOSKEIN_AGENT). Omitted over stdio, where the env fallback stands. */
9
+ export function makeWriteSemanticSummary(store, repoId, identity) {
7
10
  return async (args) => {
8
11
  const v = sanitizeSummary(args.summary);
9
12
  if (!v.ok) {
@@ -14,7 +17,7 @@ export function makeWriteSemanticSummary(store, repoId) {
14
17
  summary: v.value,
15
18
  model: args.model ?? "unknown",
16
19
  at: today(),
17
- by: process.env.REPOSKEIN_AGENT ?? "agent",
20
+ by: identity ?? process.env.REPOSKEIN_AGENT ?? "agent",
18
21
  });
19
22
  if (res.kind === "not_found") {
20
23
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"writeSemanticSummary.js","sourceRoot":"","sources":["../../src/tools/writeSemanticSummary.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAShE,SAAS,KAAK;IACZ,2EAA2E;IAC3E,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAiB,EAAE,MAAc;IACxE,OAAO,KAAK,EAAE,IAAsB,EAAuB,EAAE;QAC3D,MAAM,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACV,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACvE,CAAC;QACD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE;gBACzD,OAAO,EAAE,CAAC,CAAC,KAAK;gBAChB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS;gBAC9B,EAAE,EAAE,KAAK,EAAE;gBACX,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO;aAC3C,CAAC,CAAC;YACH,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC7B,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC;oBAC9E,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;gBACnC,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,4CAA4C,EAAE,CAAC,EAAE,CAAC;oBAC1G,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC;aACpG,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACpF,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"writeSemanticSummary.js","sourceRoot":"","sources":["../../src/tools/writeSemanticSummary.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAShE,SAAS,KAAK;IACZ,2EAA2E;IAC3E,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED;;2EAE2E;AAC3E,MAAM,UAAU,wBAAwB,CAAC,KAAiB,EAAE,MAAc,EAAE,QAAiB;IAC3F,OAAO,KAAK,EAAE,IAAsB,EAAuB,EAAE;QAC3D,MAAM,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACV,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACvE,CAAC;QACD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE;gBACzD,OAAO,EAAE,CAAC,CAAC,KAAK;gBAChB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS;gBAC9B,EAAE,EAAE,KAAK,EAAE;gBACX,EAAE,EAAE,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO;aACvD,CAAC,CAAC;YACH,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC7B,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC;oBAC9E,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;gBACnC,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,4CAA4C,EAAE,CAAC,EAAE,CAAC;oBAC1G,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC;aACpG,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACpF,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-md:28rem;--container-xl:36rem;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--ease-out:cubic-bezier(0, 0, .2, 1);--blur-sm:8px;--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--color-brand-amber:#f2b84b;--color-brand-cream:#eae7dc;--color-brand-navy:#070a12;--color-brand-teal:#2dd4bf;--color-node-class:#5fe0e0;--color-node-dir:#9aa7c7;--color-node-enum:#7ce08a;--color-node-file:#6ea8ff;--color-node-function:#ffe08a;--color-node-galaxy:#fff;--color-node-interface:#b98aff;--color-node-variable:#9aa0a8;--color-edge-calls:#ffd166;--color-edge-implements:#5fe0e0;--color-edge-imports:#6ea8ff;--color-edge-inherits:#7ce08a;--color-edge-instantiates:#ef8aff;--color-lang-csharp:#9b6dff;--color-lang-default:#8a93a8;--color-lang-go:#39c5cf;--color-lang-java:#e76f51;--color-lang-javascript:#f4d03f;--color-lang-python:#4b8bff;--color-lang-rust:#ff7a45;--color-lang-typescript:#3aa0ff;--color-status-danger:#ff8a73;--color-status-ok:#74ff8e;--color-status-warn:#f2b84b}}@layer base,components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-\[18px\]{inset:18px}.inset-x-0{inset-inline:0}.inset-x-3{inset-inline:calc(var(--spacing) * 3)}.top-0{top:0}.top-3{top:calc(var(--spacing) * 3)}.top-\[12\%\]{top:12%}.right-0{right:0}.right-3{right:calc(var(--spacing) * 3)}.right-\[calc\(360px\+0\.75rem\)\]{right:calc(360px + .75rem)}.bottom-0{bottom:0}.bottom-7{bottom:calc(var(--spacing) * 7)}.bottom-9{bottom:calc(var(--spacing) * 9)}.bottom-10{bottom:calc(var(--spacing) * 10)}.bottom-\[88px\]{bottom:88px}.bottom-full{bottom:100%}.left-1\/2{left:50%}.left-3{left:calc(var(--spacing) * 3)}.z-101{z-index:101}.z-110{z-index:110}.z-120{z-index:120}.z-150{z-index:150}.z-\[100\]{z-index:100}.z-\[101\]{z-index:101}.z-\[110\]{z-index:110}.z-\[115\]{z-index:115}.z-\[120\]{z-index:120}.z-\[130\]{z-index:130}.z-\[135\]{z-index:135}.z-\[140\]{z-index:140}.z-\[141\]{z-index:141}.z-\[150\]{z-index:150}.z-\[200\]{z-index:200}.z-\[201\]{z-index:201}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-0{margin:0}.mx-1\.5{margin-inline:calc(var(--spacing) * 1.5)}.mx-auto{margin-inline:auto}.my-1{margin-block:var(--spacing)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\.5{margin-bottom:calc(var(--spacing) * 2.5)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-5{height:calc(var(--spacing) * 5)}.h-7{height:calc(var(--spacing) * 7)}.h-9{height:calc(var(--spacing) * 9)}.h-16{height:calc(var(--spacing) * 16)}.h-\[45vh\]{height:45vh}.h-\[120px\]{height:120px}.h-full{height:100%}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-\[70vh\]{max-height:70vh}.max-h-\[420px\]{max-height:420px}.max-h-\[min\(60vh\,26rem\)\]{max-height:min(60vh,26rem)}.max-h-\[min\(70vh\,32rem\)\]{max-height:min(70vh,32rem)}.max-h-\[min\(70vh\,34rem\)\]{max-height:min(70vh,34rem)}.min-h-0{min-height:0}.min-h-5{min-height:calc(var(--spacing) * 5)}.min-h-6{min-height:calc(var(--spacing) * 6)}.min-h-9{min-height:calc(var(--spacing) * 9)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-16{width:calc(var(--spacing) * 16)}.w-24{width:calc(var(--spacing) * 24)}.w-44{width:calc(var(--spacing) * 44)}.w-48{width:calc(var(--spacing) * 48)}.w-56{width:calc(var(--spacing) * 56)}.w-\[168px\]{width:168px}.w-\[184px\]{width:184px}.w-\[264px\]{width:264px}.w-\[360px\]{width:360px}.w-\[calc\(100\%-2rem\)\]{width:calc(100% - 2rem)}.w-\[min\(30rem\,calc\(100vw-1\.5rem\)\)\]{width:min(30rem,100vw - 1.5rem)}.w-\[min\(360px\,calc\(100vw-2rem\)\)\]{width:min(360px,100vw - 2rem)}.w-\[min\(520px\,calc\(100vw-3rem\)\)\]{width:min(520px,100vw - 3rem)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-80{max-width:calc(var(--spacing) * 80)}.max-w-\[7rem\]{max-width:7rem}.max-w-\[calc\(100vw-1rem\)\]{max-width:calc(100vw - 1rem)}.max-w-\[calc\(100vw-360px-0\.75rem\*3\)\]{max-width:calc(100vw - 360px - 2.25rem)}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:0}.min-w-5{min-width:calc(var(--spacing) * 5)}.min-w-6{min-width:calc(var(--spacing) * 6)}.min-w-\[2ch\]{min-width:2ch}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-crosshair{cursor:crosshair}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded-\[3px\]{border-radius:3px}.rounded-\[4px\]{border-radius:4px}.rounded-\[5px\]{border-radius:5px}.rounded-\[6px\]{border-radius:6px}.rounded-\[8px\]{border-radius:8px}.rounded-\[10px\]{border-radius:10px}.rounded-\[12px\]{border-radius:12px}.rounded-full{border-radius:3.40282e38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-\[color-mix\(in_srgb\,var\(--color-brand-amber\)_28\%\,transparent\)\]{border-color:#f2b84b47}@supports (color:color-mix(in lab,red,red)){.border-\[color-mix\(in_srgb\,var\(--color-brand-amber\)_28\%\,transparent\)\]{border-color:color-mix(in srgb,var(--color-brand-amber) 28%,transparent)}}.border-\[color-mix\(in_srgb\,var\(--color-brand-amber\)_40\%\,transparent\)\]{border-color:#f2b84b66}@supports (color:color-mix(in lab,red,red)){.border-\[color-mix\(in_srgb\,var\(--color-brand-amber\)_40\%\,transparent\)\]{border-color:color-mix(in srgb,var(--color-brand-amber) 40%,transparent)}}.border-\[color-mix\(in_srgb\,var\(--color-brand-amber\)_45\%\,transparent\)\]{border-color:#f2b84b73}@supports (color:color-mix(in lab,red,red)){.border-\[color-mix\(in_srgb\,var\(--color-brand-amber\)_45\%\,transparent\)\]{border-color:color-mix(in srgb,var(--color-brand-amber) 45%,transparent)}}.border-\[color-mix\(in_srgb\,var\(--color-brand-amber\)_50\%\,transparent\)\]{border-color:#f2b84b80}@supports (color:color-mix(in lab,red,red)){.border-\[color-mix\(in_srgb\,var\(--color-brand-amber\)_50\%\,transparent\)\]{border-color:color-mix(in srgb,var(--color-brand-amber) 50%,transparent)}}.border-\[color-mix\(in_srgb\,var\(--color-brand-amber\)_55\%\,transparent\)\]{border-color:#f2b84b8c}@supports (color:color-mix(in lab,red,red)){.border-\[color-mix\(in_srgb\,var\(--color-brand-amber\)_55\%\,transparent\)\]{border-color:color-mix(in srgb,var(--color-brand-amber) 55%,transparent)}}.border-\[color-mix\(in_srgb\,var\(--color-brand-teal\)_35\%\,transparent\)\]{border-color:#2dd4bf59}@supports (color:color-mix(in lab,red,red)){.border-\[color-mix\(in_srgb\,var\(--color-brand-teal\)_35\%\,transparent\)\]{border-color:color-mix(in srgb,var(--color-brand-teal) 35%,transparent)}}.border-\[color-mix\(in_srgb\,var\(--color-brand-teal\)_40\%\,transparent\)\]{border-color:#2dd4bf66}@supports (color:color-mix(in lab,red,red)){.border-\[color-mix\(in_srgb\,var\(--color-brand-teal\)_40\%\,transparent\)\]{border-color:color-mix(in srgb,var(--color-brand-teal) 40%,transparent)}}.border-\[color-mix\(in_srgb\,var\(--color-brand-teal\)_45\%\,transparent\)\]{border-color:#2dd4bf73}@supports (color:color-mix(in lab,red,red)){.border-\[color-mix\(in_srgb\,var\(--color-brand-teal\)_45\%\,transparent\)\]{border-color:color-mix(in srgb,var(--color-brand-teal) 45%,transparent)}}.border-\[color-mix\(in_srgb\,var\(--color-brand-teal\)_55\%\,transparent\)\]{border-color:#2dd4bf8c}@supports (color:color-mix(in lab,red,red)){.border-\[color-mix\(in_srgb\,var\(--color-brand-teal\)_55\%\,transparent\)\]{border-color:color-mix(in srgb,var(--color-brand-teal) 55%,transparent)}}.border-\[rgba\(148\,163\,207\,0\.1\)\]{border-color:#94a3cf1a}.border-\[rgba\(148\,163\,207\,0\.2\)\]{border-color:#94a3cf33}.border-\[rgba\(148\,163\,207\,0\.3\)\]{border-color:#94a3cf4d}.border-\[rgba\(148\,163\,207\,0\.14\)\]{border-color:#94a3cf24}.border-\[rgba\(148\,163\,207\,0\.16\)\]{border-color:#94a3cf29}.border-\[rgba\(148\,163\,207\,0\.18\)\]{border-color:#94a3cf2e}.border-\[rgba\(148\,163\,207\,0\.22\)\]{border-color:#94a3cf38}.border-\[rgba\(148\,163\,207\,0\.25\)\]{border-color:#94a3cf40}.border-\[rgba\(148\,163\,207\,0\.28\)\]{border-color:#94a3cf47}.border-t-\[var\(--color-brand-amber\)\]{border-top-color:var(--color-brand-amber)}.bg-\[color-mix\(in_srgb\,var\(--color-brand-amber\)_14\%\,transparent\)\]{background-color:#f2b84b24}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--color-brand-amber\)_14\%\,transparent\)\]{background-color:color-mix(in srgb,var(--color-brand-amber) 14%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--color-brand-amber\)_16\%\,transparent\)\]{background-color:#f2b84b29}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--color-brand-amber\)_16\%\,transparent\)\]{background-color:color-mix(in srgb,var(--color-brand-amber) 16%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--color-brand-amber\)_18\%\,transparent\)\]{background-color:#f2b84b2e}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--color-brand-amber\)_18\%\,transparent\)\]{background-color:color-mix(in srgb,var(--color-brand-amber) 18%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--color-brand-navy\)_88\%\,transparent\)\]{background-color:#070a12e0}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--color-brand-navy\)_88\%\,transparent\)\]{background-color:color-mix(in srgb,var(--color-brand-navy) 88%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--color-brand-navy\)_88\%\,white_4\%\)\]{background-color:#12151ceb}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--color-brand-navy\)_88\%\,white_4\%\)\]{background-color:color-mix(in srgb,var(--color-brand-navy) 88%,white 4%)}}.bg-\[color-mix\(in_srgb\,var\(--color-brand-navy\)_92\%\,transparent\)\]{background-color:#070a12eb}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--color-brand-navy\)_92\%\,transparent\)\]{background-color:color-mix(in srgb,var(--color-brand-navy) 92%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--color-brand-navy\)_92\%\,white_4\%\)\]{background-color:#11141cf5}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--color-brand-navy\)_92\%\,white_4\%\)\]{background-color:color-mix(in srgb,var(--color-brand-navy) 92%,white 4%)}}.bg-\[color-mix\(in_srgb\,var\(--color-brand-navy\)_94\%\,transparent\)\]{background-color:#070a12f0}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--color-brand-navy\)_94\%\,transparent\)\]{background-color:color-mix(in srgb,var(--color-brand-navy) 94%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--color-brand-navy\)_94\%\,white_4\%\)\]{background-color:#11141cfa}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--color-brand-navy\)_94\%\,white_4\%\)\]{background-color:color-mix(in srgb,var(--color-brand-navy) 94%,white 4%)}}.bg-\[color-mix\(in_srgb\,var\(--color-brand-navy\)_94\%\,white_6\%\)\]{background-color:#161920}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--color-brand-navy\)_94\%\,white_6\%\)\]{background-color:color-mix(in srgb,var(--color-brand-navy) 94%,white 6%)}}.bg-\[color-mix\(in_srgb\,var\(--color-brand-navy\)_96\%\,white_3\%\)\]{background-color:#0f1119fc}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--color-brand-navy\)_96\%\,white_3\%\)\]{background-color:color-mix(in srgb,var(--color-brand-navy) 96%,white 3%)}}.bg-\[color-mix\(in_srgb\,var\(--color-brand-navy\)_96\%\,white_4\%\)\]{background-color:#11141b}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--color-brand-navy\)_96\%\,white_4\%\)\]{background-color:color-mix(in srgb,var(--color-brand-navy) 96%,white 4%)}}.bg-\[color-mix\(in_srgb\,var\(--color-brand-teal\)_12\%\,transparent\)\]{background-color:#2dd4bf1f}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--color-brand-teal\)_12\%\,transparent\)\]{background-color:color-mix(in srgb,var(--color-brand-teal) 12%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--color-brand-teal\)_16\%\,transparent\)\]{background-color:#2dd4bf29}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--color-brand-teal\)_16\%\,transparent\)\]{background-color:color-mix(in srgb,var(--color-brand-teal) 16%,transparent)}}.bg-\[var\(--color-brand-amber\)\]{background-color:var(--color-brand-amber)}.bg-\[var\(--color-brand-navy\)\]{background-color:var(--color-brand-navy)}.bg-black\/35{background-color:#00000059}@supports (color:color-mix(in lab,red,red)){.bg-black\/35{background-color:color-mix(in oklab,var(--color-black) 35%,transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-transparent{background-color:#0000}.bg-white\/5{background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.bg-white\/5{background-color:color-mix(in oklab,var(--color-white) 5%,transparent)}}.bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.bg-white\/10{background-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.bg-white\/12{background-color:#ffffff1f}@supports (color:color-mix(in lab,red,red)){.bg-white\/12{background-color:color-mix(in oklab,var(--color-white) 12%,transparent)}}.bg-white\/25{background-color:#ffffff40}@supports (color:color-mix(in lab,red,red)){.bg-white\/25{background-color:color-mix(in oklab,var(--color-white) 25%,transparent)}}.bg-\[radial-gradient\(circle\,var\(--color-brand-amber\)_0\%\,transparent_70\%\)\]{background-image:radial-gradient(circle,var(--color-brand-amber) 0%,transparent 70%)}.bg-\[radial-gradient\(ellipse_60\%_50\%_at_50\%_50\%\,rgba\(5\,6\,12\,0\.55\)_0\%\,rgba\(5\,6\,12\,0\)_70\%\)\]{background-image:radial-gradient(60% 50%,#05060c8c,#05060c00 70%)}.bg-\[radial-gradient\(ellipse_80\%_60\%_at_50\%_38\%\,\#16204a_0\%\,\#0a1024_42\%\,\#05060c_78\%\,\#02030a_100\%\)\]{background-image:radial-gradient(80% 60% at 50% 38%,#16204a,#0a1024 42%,#05060c 78%,#02030a)}.p-0{padding:0}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-10{padding-block:calc(var(--spacing) * 10)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pr-2\.5{padding-right:calc(var(--spacing) * 2.5)}.pb-1{padding-bottom:var(--spacing)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.text-\[19px\]{font-size:19px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.16em\]{--tw-tracking:.16em;letter-spacing:.16em}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.text-\[var\(--color-brand-amber\)\]{color:var(--color-brand-amber)}.text-\[var\(--color-brand-cream\)\]{color:var(--color-brand-cream)}.text-\[var\(--color-brand-navy\)\]{color:var(--color-brand-navy)}.text-\[var\(--color-brand-teal\)\]{color:var(--color-brand-teal)}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.accent-\[var\(--color-brand-amber\)\]{accent-color:var(--color-brand-amber)}.opacity-0{opacity:0}.opacity-35{opacity:.35}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-85{opacity:.85}.opacity-90{opacity:.9}.opacity-95{opacity:.95}.opacity-100{opacity:1}.shadow-\[-12px_0_32px_-16px_rgba\(0\,0\,0\,0\.8\)\]{--tw-shadow:-12px 0 32px -16px var(--tw-shadow-color,#000c);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_-12px_32px_-16px_rgba\(0\,0\,0\,0\.8\)\]{--tw-shadow:0 -12px 32px -16px var(--tw-shadow-color,#000c);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_24px_-8px_rgba\(0\,0\,0\,0\.6\)\]{--tw-shadow:0 8px 24px -8px var(--tw-shadow-color,#0009);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_24px_-10px_rgba\(0\,0\,0\,0\.6\)\]{--tw-shadow:0 8px 24px -10px var(--tw-shadow-color,#0009);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_24px_-10px_rgba\(0\,0\,0\,0\.7\)\]{--tw-shadow:0 8px 24px -10px var(--tw-shadow-color,#000000b3);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_32px_rgba\(0\,0\,0\,0\.5\)\]{--tw-shadow:0 8px 32px var(--tw-shadow-color,#00000080);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_12px_36px_-12px_rgba\(0\,0\,0\,0\.7\)\]{--tw-shadow:0 12px 36px -12px var(--tw-shadow-color,#000000b3);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_16px_48px_-12px_rgba\(0\,0\,0\,0\.55\)\]{--tw-shadow:0 16px 48px -12px var(--tw-shadow-color,#0000008c);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-\[2px\]{--tw-backdrop-blur:blur(2px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.duration-700{--tw-duration:.7s;transition-duration:.7s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;user-select:none}.placeholder\:opacity-70::placeholder{opacity:.7}.last\:mb-0:last-child{margin-bottom:0}@media(hover:hover){.hover\:bg-white\/5:hover{background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/5:hover{background-color:color-mix(in oklab,var(--color-white) 5%,transparent)}}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-85:hover{opacity:.85}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-100:hover{opacity:1}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:bg-white\/10:focus-visible{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.focus-visible\:bg-white\/10:focus-visible{background-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.disabled\:cursor-default:disabled{cursor:default}.disabled\:opacity-35:disabled{opacity:.35}@media(prefers-reduced-motion:no-preference){.motion-safe\:animate-\[rs-drawer-in_180ms_ease-out\]{animation:.18s ease-out rs-drawer-in}.motion-safe\:animate-\[rs-layer-in_140ms_ease-out\]{animation:.14s ease-out rs-layer-in}.motion-safe\:animate-\[rs-layer-in_180ms_ease-out\]{animation:.18s ease-out rs-layer-in}.motion-safe\:animate-\[rs-pulse_1\.8s_ease-in-out_infinite\]{animation:1.8s ease-in-out infinite rs-pulse}.motion-safe\:animate-\[rs-sheet-in_180ms_ease-out\]{animation:.18s ease-out rs-sheet-in}.motion-safe\:animate-\[rs-spin_1\.6s_linear_infinite\]{animation:1.6s linear infinite rs-spin}}@media(prefers-reduced-motion:reduce){.motion-reduce\:animate-none{animation:none}.motion-reduce\:transition-none{transition-property:none}}@media(min-width:40rem){.sm\:inline-flex{display:inline-flex}}}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(./jetbrains-mono-latin-400-normal-V6pRDFza.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(./jetbrains-mono-latin-500-normal-BWZEU5yA.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(./jetbrains-mono-latin-700-normal-BYuf6tUa.woff2)format("woff2")}@keyframes rs-layer-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes rs-drawer-in{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:translate(0)}}@keyframes rs-sheet-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes rs-spin{to{transform:rotate(360deg)}}@keyframes rs-pulse{0%,to{opacity:.55;transform:scale(.9)}50%{opacity:1;transform:scale(1.12)}}:focus-visible{outline:2px solid var(--color-brand-teal);outline-offset:2px}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}