@kubbisec/ai-linux-arm64 0.1.8 → 0.1.10

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 (208) hide show
  1. package/bin/kubbisec +0 -0
  2. package/bundled/assets/terminal/wordmark-inline.ansi +1 -0
  3. package/bundled/assets/terminal/wordmark.ansi +4 -0
  4. package/bundled/assets/terminal/wordmark.png +0 -0
  5. package/bundled/clarify/clarify-gate-state.d.ts +3 -0
  6. package/bundled/clarify/clarify-gate-state.d.ts.map +1 -0
  7. package/bundled/clarify/clarify-gate-state.js +9 -0
  8. package/bundled/clarify/clarify-gate-state.js.map +1 -0
  9. package/bundled/clarify/clarify-gate.d.ts +2 -1
  10. package/bundled/clarify/clarify-gate.d.ts.map +1 -1
  11. package/bundled/clarify/clarify-gate.js +17 -4
  12. package/bundled/clarify/clarify-gate.js.map +1 -1
  13. package/bundled/clarify/clarify-select-panel.d.ts +14 -0
  14. package/bundled/clarify/clarify-select-panel.d.ts.map +1 -0
  15. package/bundled/clarify/clarify-select-panel.js +82 -0
  16. package/bundled/clarify/clarify-select-panel.js.map +1 -0
  17. package/bundled/clarify/clarify-ui-state.d.ts +10 -1
  18. package/bundled/clarify/clarify-ui-state.d.ts.map +1 -1
  19. package/bundled/clarify/clarify-ui-state.js +24 -3
  20. package/bundled/clarify/clarify-ui-state.js.map +1 -1
  21. package/bundled/clarify/parse-clarify-answer.d.ts +6 -1
  22. package/bundled/clarify/parse-clarify-answer.d.ts.map +1 -1
  23. package/bundled/clarify/parse-clarify-answer.js +35 -2
  24. package/bundled/clarify/parse-clarify-answer.js.map +1 -1
  25. package/bundled/clarify/question-format.d.ts +7 -4
  26. package/bundled/clarify/question-format.d.ts.map +1 -1
  27. package/bundled/clarify/question-format.js +26 -33
  28. package/bundled/clarify/question-format.js.map +1 -1
  29. package/bundled/clarify/questionnaire-tool.d.ts.map +1 -1
  30. package/bundled/clarify/questionnaire-tool.js +16 -9
  31. package/bundled/clarify/questionnaire-tool.js.map +1 -1
  32. package/bundled/clarify/scope-discovery.d.ts +10 -0
  33. package/bundled/clarify/scope-discovery.d.ts.map +1 -0
  34. package/bundled/clarify/scope-discovery.js +130 -0
  35. package/bundled/clarify/scope-discovery.js.map +1 -0
  36. package/bundled/clarify/session-questionnaire.d.ts +4 -1
  37. package/bundled/clarify/session-questionnaire.d.ts.map +1 -1
  38. package/bundled/clarify/session-questionnaire.js +59 -4
  39. package/bundled/clarify/session-questionnaire.js.map +1 -1
  40. package/bundled/clarify/session-questionnaire.types.d.ts +2 -0
  41. package/bundled/clarify/session-questionnaire.types.d.ts.map +1 -1
  42. package/bundled/clarify/session-questionnaire.types.js.map +1 -1
  43. package/bundled/config/detect-local-llm-providers.d.ts +33 -0
  44. package/bundled/config/detect-local-llm-providers.d.ts.map +1 -0
  45. package/bundled/config/detect-local-llm-providers.js +173 -0
  46. package/bundled/config/detect-local-llm-providers.js.map +1 -0
  47. package/bundled/config/ensure-kubbisec-project-settings.d.ts +8 -0
  48. package/bundled/config/ensure-kubbisec-project-settings.d.ts.map +1 -1
  49. package/bundled/config/ensure-kubbisec-project-settings.js +31 -0
  50. package/bundled/config/ensure-kubbisec-project-settings.js.map +1 -1
  51. package/bundled/config/extended-context.d.ts +12 -0
  52. package/bundled/config/extended-context.d.ts.map +1 -0
  53. package/bundled/config/extended-context.js +37 -0
  54. package/bundled/config/extended-context.js.map +1 -0
  55. package/bundled/config/format-kubbisec-footer-status.d.ts.map +1 -1
  56. package/bundled/config/format-kubbisec-footer-status.js +10 -1
  57. package/bundled/config/format-kubbisec-footer-status.js.map +1 -1
  58. package/bundled/config/kubbisec-extension-manifest.d.ts +3 -0
  59. package/bundled/config/kubbisec-extension-manifest.d.ts.map +1 -0
  60. package/bundled/config/kubbisec-extension-manifest.js +23 -0
  61. package/bundled/config/kubbisec-extension-manifest.js.map +1 -0
  62. package/bundled/config/llm-config-mutations.d.ts +38 -0
  63. package/bundled/config/llm-config-mutations.d.ts.map +1 -0
  64. package/bundled/config/llm-config-mutations.js +207 -0
  65. package/bundled/config/llm-config-mutations.js.map +1 -0
  66. package/bundled/config/llm-config.d.ts +64 -0
  67. package/bundled/config/llm-config.d.ts.map +1 -0
  68. package/bundled/config/llm-config.js +236 -0
  69. package/bundled/config/llm-config.js.map +1 -0
  70. package/bundled/config/llm-provider-catalog.d.ts +22 -0
  71. package/bundled/config/llm-provider-catalog.d.ts.map +1 -0
  72. package/bundled/config/llm-provider-catalog.js +42 -0
  73. package/bundled/config/llm-provider-catalog.js.map +1 -0
  74. package/bundled/config/materialize-kubbisec-pi-resources.d.ts +13 -0
  75. package/bundled/config/materialize-kubbisec-pi-resources.d.ts.map +1 -0
  76. package/bundled/config/materialize-kubbisec-pi-resources.js +171 -0
  77. package/bundled/config/materialize-kubbisec-pi-resources.js.map +1 -0
  78. package/bundled/config/register-custom-llm-providers.d.ts +13 -0
  79. package/bundled/config/register-custom-llm-providers.d.ts.map +1 -0
  80. package/bundled/config/register-custom-llm-providers.js +21 -0
  81. package/bundled/config/register-custom-llm-providers.js.map +1 -0
  82. package/bundled/config/register-kubbisec-llm-provider.d.ts +14 -0
  83. package/bundled/config/register-kubbisec-llm-provider.d.ts.map +1 -0
  84. package/bundled/config/register-kubbisec-llm-provider.js +53 -0
  85. package/bundled/config/register-kubbisec-llm-provider.js.map +1 -0
  86. package/bundled/config/sync-kubbisec-pi-models.d.ts +12 -0
  87. package/bundled/config/sync-kubbisec-pi-models.d.ts.map +1 -0
  88. package/bundled/config/sync-kubbisec-pi-models.js +80 -0
  89. package/bundled/config/sync-kubbisec-pi-models.js.map +1 -0
  90. package/bundled/copy/cli-reference-index.d.ts +6 -0
  91. package/bundled/copy/cli-reference-index.d.ts.map +1 -0
  92. package/bundled/copy/cli-reference-index.js +42 -0
  93. package/bundled/copy/cli-reference-index.js.map +1 -0
  94. package/bundled/copy/kubbisec-shell-copy.d.ts +15 -2
  95. package/bundled/copy/kubbisec-shell-copy.d.ts.map +1 -1
  96. package/bundled/copy/kubbisec-shell-copy.js +15 -2
  97. package/bundled/copy/kubbisec-shell-copy.js.map +1 -1
  98. package/bundled/extensions/cli-local-shared.d.ts +31 -11
  99. package/bundled/extensions/cli-local-shared.d.ts.map +1 -1
  100. package/bundled/extensions/cli-local-shared.js +56 -10
  101. package/bundled/extensions/cli-local-shared.js.map +1 -1
  102. package/bundled/extensions/kubbisec-aspm-local.extension.d.ts +1 -0
  103. package/bundled/extensions/kubbisec-aspm-local.extension.d.ts.map +1 -1
  104. package/bundled/extensions/kubbisec-aspm-local.extension.js +32 -44
  105. package/bundled/extensions/kubbisec-aspm-local.extension.js.map +1 -1
  106. package/bundled/extensions/kubbisec-brand.extension.d.ts +2 -19
  107. package/bundled/extensions/kubbisec-brand.extension.d.ts.map +1 -1
  108. package/bundled/extensions/kubbisec-brand.extension.js +21 -73
  109. package/bundled/extensions/kubbisec-brand.extension.js.map +1 -1
  110. package/bundled/extensions/kubbisec-byok-provider.extension.d.ts +3 -27
  111. package/bundled/extensions/kubbisec-byok-provider.extension.d.ts.map +1 -1
  112. package/bundled/extensions/kubbisec-byok-provider.extension.js +2 -48
  113. package/bundled/extensions/kubbisec-byok-provider.extension.js.map +1 -1
  114. package/bundled/extensions/kubbisec-clarify.extension.d.ts +6 -1
  115. package/bundled/extensions/kubbisec-clarify.extension.d.ts.map +1 -1
  116. package/bundled/extensions/kubbisec-clarify.extension.js +124 -68
  117. package/bundled/extensions/kubbisec-clarify.extension.js.map +1 -1
  118. package/bundled/extensions/kubbisec-exit.extension.d.ts +3 -0
  119. package/bundled/extensions/kubbisec-exit.extension.d.ts.map +1 -0
  120. package/bundled/extensions/kubbisec-exit.extension.js +38 -0
  121. package/bundled/extensions/kubbisec-exit.extension.js.map +1 -0
  122. package/bundled/extensions/kubbisec-extended-context.extension.d.ts +6 -0
  123. package/bundled/extensions/kubbisec-extended-context.extension.d.ts.map +1 -0
  124. package/bundled/extensions/kubbisec-extended-context.extension.js +50 -0
  125. package/bundled/extensions/kubbisec-extended-context.extension.js.map +1 -0
  126. package/bundled/extensions/kubbisec-footer.extension.d.ts +16 -61
  127. package/bundled/extensions/kubbisec-footer.extension.d.ts.map +1 -1
  128. package/bundled/extensions/kubbisec-footer.extension.js +143 -74
  129. package/bundled/extensions/kubbisec-footer.extension.js.map +1 -1
  130. package/bundled/extensions/kubbisec-github-local.extension.d.ts.map +1 -1
  131. package/bundled/extensions/kubbisec-github-local.extension.js +52 -22
  132. package/bundled/extensions/kubbisec-github-local.extension.js.map +1 -1
  133. package/bundled/extensions/kubbisec-llm-config.extension.d.ts +3 -0
  134. package/bundled/extensions/kubbisec-llm-config.extension.d.ts.map +1 -0
  135. package/bundled/extensions/kubbisec-llm-config.extension.js +211 -0
  136. package/bundled/extensions/kubbisec-llm-config.extension.js.map +1 -0
  137. package/bundled/extensions/kubbisec-naus-local.extension.d.ts +1 -0
  138. package/bundled/extensions/kubbisec-naus-local.extension.d.ts.map +1 -1
  139. package/bundled/extensions/kubbisec-naus-local.extension.js +54 -58
  140. package/bundled/extensions/kubbisec-naus-local.extension.js.map +1 -1
  141. package/bundled/extensions/kubbisec-platform-tools.extension.d.ts.map +1 -1
  142. package/bundled/extensions/kubbisec-platform-tools.extension.js +57 -16
  143. package/bundled/extensions/kubbisec-platform-tools.extension.js.map +1 -1
  144. package/bundled/extensions/kubbisec-skill-mentions.extension.d.ts +1 -0
  145. package/bundled/extensions/kubbisec-skill-mentions.extension.d.ts.map +1 -1
  146. package/bundled/extensions/kubbisec-skill-mentions.extension.js +24 -8
  147. package/bundled/extensions/kubbisec-skill-mentions.extension.js.map +1 -1
  148. package/bundled/extensions/kubbisec-theme-lock.extension.d.ts +6 -0
  149. package/bundled/extensions/kubbisec-theme-lock.extension.d.ts.map +1 -0
  150. package/bundled/extensions/kubbisec-theme-lock.extension.js +43 -0
  151. package/bundled/extensions/kubbisec-theme-lock.extension.js.map +1 -0
  152. package/bundled/extensions/kubbisec-ui.extension.d.ts +1 -1
  153. package/bundled/extensions/kubbisec-ui.extension.d.ts.map +1 -1
  154. package/bundled/extensions/kubbisec-ui.extension.js +98 -82
  155. package/bundled/extensions/kubbisec-ui.extension.js.map +1 -1
  156. package/bundled/extensions/kubbisec-workflow.extension.d.ts.map +1 -1
  157. package/bundled/extensions/kubbisec-workflow.extension.js +31 -21
  158. package/bundled/extensions/kubbisec-workflow.extension.js.map +1 -1
  159. package/bundled/skills/aspm-platform/SKILL.md +55 -25
  160. package/bundled/skills/at-path-mentions.d.ts +7 -0
  161. package/bundled/skills/at-path-mentions.d.ts.map +1 -0
  162. package/bundled/skills/at-path-mentions.js +186 -0
  163. package/bundled/skills/at-path-mentions.js.map +1 -0
  164. package/bundled/skills/at-path-mentions.test.ts +64 -0
  165. package/bundled/skills/at-path-mentions.ts +211 -0
  166. package/bundled/skills/chat-mention-render.d.ts.map +1 -1
  167. package/bundled/skills/chat-mention-render.js +69 -31
  168. package/bundled/skills/chat-mention-render.js.map +1 -1
  169. package/bundled/skills/chat-mention-render.test.ts +24 -1
  170. package/bundled/skills/chat-mention-render.ts +87 -34
  171. package/bundled/skills/chat-mentions.d.ts +3 -2
  172. package/bundled/skills/chat-mentions.d.ts.map +1 -1
  173. package/bundled/skills/chat-mentions.js +9 -3
  174. package/bundled/skills/chat-mentions.js.map +1 -1
  175. package/bundled/skills/chat-mentions.test.ts +12 -5
  176. package/bundled/skills/chat-mentions.ts +12 -3
  177. package/bundled/skills/naus-pipelines/SKILL.md +111 -16
  178. package/bundled/skills/sec-clarify/SKILL.md +8 -23
  179. package/bundled/skills/sec-using-skills/SKILL.md +2 -0
  180. package/bundled/theme/clear-terminal.d.ts +3 -0
  181. package/bundled/theme/clear-terminal.d.ts.map +1 -0
  182. package/bundled/theme/clear-terminal.js +7 -0
  183. package/bundled/theme/clear-terminal.js.map +1 -0
  184. package/bundled/theme/footer-render-hook.d.ts +3 -0
  185. package/bundled/theme/footer-render-hook.d.ts.map +1 -0
  186. package/bundled/theme/footer-render-hook.js +8 -0
  187. package/bundled/theme/footer-render-hook.js.map +1 -0
  188. package/bundled/theme/kubbisec-brand-fg.d.ts +4 -0
  189. package/bundled/theme/kubbisec-brand-fg.d.ts.map +1 -0
  190. package/bundled/theme/kubbisec-brand-fg.js +7 -0
  191. package/bundled/theme/kubbisec-brand-fg.js.map +1 -0
  192. package/bundled/theme/kubbisec-menu-themes.d.ts +16 -0
  193. package/bundled/theme/kubbisec-menu-themes.d.ts.map +1 -0
  194. package/bundled/theme/kubbisec-menu-themes.js +47 -0
  195. package/bundled/theme/kubbisec-menu-themes.js.map +1 -0
  196. package/bundled/theme/kubbisec-theme-name.d.ts +2 -0
  197. package/bundled/theme/kubbisec-theme-name.d.ts.map +1 -0
  198. package/bundled/theme/kubbisec-theme-name.js +2 -0
  199. package/bundled/theme/kubbisec-theme-name.js.map +1 -0
  200. package/bundled/theme/patch-pi-settings-theme.runtime.d.ts +3 -0
  201. package/bundled/theme/patch-pi-settings-theme.runtime.d.ts.map +1 -0
  202. package/bundled/theme/patch-pi-settings-theme.runtime.js +16 -0
  203. package/bundled/theme/patch-pi-settings-theme.runtime.js.map +1 -0
  204. package/bundled/theme/render-compact-header.d.ts +21 -0
  205. package/bundled/theme/render-compact-header.d.ts.map +1 -0
  206. package/bundled/theme/render-compact-header.js +198 -0
  207. package/bundled/theme/render-compact-header.js.map +1 -0
  208. package/package.json +1 -1
@@ -12,32 +12,23 @@ metadata:
12
12
 
13
13
  **Announce briefly:** `A recolher escopo antes de alterações.`
14
14
 
15
- ## Primary mechanism: `questionnaire` tool
15
+ ## Primary mechanism
16
16
 
17
- Use the **`questionnaire` tool** (not ad-hoc markdown) to format and track scope.
17
+ KubbiSec **auto-asks** the next scope question in the panel above the editor when the gate is active. You may still use the **`questionnaire` tool** to `record` prose scope or `complete` when sufficient.
18
18
 
19
19
  | Action | When |
20
20
  |--------|------|
21
21
  | `status` | Check missing fields + scenario hints |
22
- | `ask` | One contextual question (you provide or reuse hints) |
23
22
  | `record` | User already gave scope in prose — persist fields |
24
23
  | `complete` | Scope is sufficient — unblock mutations |
24
+ | `ask` | Rare — auto-ask already queues questions; use only for custom copy |
25
25
 
26
- ### ask — tailor to the scenario
26
+ ## Panel UX
27
27
 
28
- Provide **your own** question text and 2–4 short options when possible:
29
-
30
- ```json
31
- {
32
- "action": "ask",
33
- "scenario": "remediation",
34
- "field": "severityMin",
35
- "question": "Qual severidade mínima entra no escopo desta remediação?",
36
- "options": ["CRITICAL", "HIGH", "MEDIUM", "Todas"]
37
- }
38
- ```
39
-
40
- If you omit copy, the tool suggests field hints for the scenario — still **adapt** wording to the user.
28
+ - Up to **3 options (A–C)** plus **D) Outro**; user can also type free text below.
29
+ - **Space** toggles selection (multi when relevant, e.g. severity).
30
+ - **Enter** confirms a panel selection; typed text submits as custom answer.
31
+ - **Never** repeat option lists in chat or say "painel acima" unless the panel is actually showing.
41
32
 
42
33
  ## When to use
43
34
 
@@ -51,12 +42,6 @@ If you omit copy, the tool suggests field hints for the scenario — still **ada
51
42
  - `KUBBISEC_SKIP_CLARIFY=1`
52
43
  - Headless `kbs fix` / `watch`
53
44
 
54
- ## UX rules
55
-
56
- - KubbiSec renders A–E in the **questionnaire panel** — do not repeat the full list in chat.
57
- - One question per turn; wait for A–E or free text.
58
- - **Never** mention internal paths, `.kbs`, or JSON files.
59
-
60
45
  ## Common scope fields
61
46
 
62
47
  - `projectIds`, `severityMin`, `remediationMode` (remediation)
@@ -36,6 +36,8 @@ If a **sec-*** workflow skill might apply, invoke it **before** domain skills or
36
36
  | Claim "done", "tests pass", open PR | `sec-verify` | — | skip verify |
37
37
  | Failed remediation / flaky test / regression | `sec-debug` | `remediation` (CVE-scoped) | `sec-plan` |
38
38
  | NAUS pipeline YAML | `naus-pipelines` | `sec-review` if auth/secrets touched | — |
39
+ | `naus` CLI (validate/plan/run/register) | `naus-pipelines` | — | invent flags without `naus_pipeline_docs` |
40
+ | `aspm` CLI (scan/upload/doctor) | `aspm-platform` | one `scanner-*` if single tool | invent flags without `aspm_docs` |
39
41
  | CVE minimal patch | `remediation` | `sec-verify` on exit | `sec-brainstorm` |
40
42
  | ASPM API / findings | `aspm-platform` | — | — |
41
43
  | Local GitHub clone/status | `github-local` | — | — |
@@ -0,0 +1,3 @@
1
+ /** Clear visible screen and scrollback when stdout is a TTY (chat TUI takeover). */
2
+ export declare function clearTerminal(): void;
3
+ //# sourceMappingURL=clear-terminal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clear-terminal.d.ts","sourceRoot":"","sources":["../../src/theme/clear-terminal.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,wBAAgB,aAAa,IAAI,IAAI,CAGpC"}
@@ -0,0 +1,7 @@
1
+ /** Clear visible screen and scrollback when stdout is a TTY (chat TUI takeover). */
2
+ export function clearTerminal() {
3
+ if (!process.stdout.isTTY)
4
+ return;
5
+ process.stdout.write("\x1b[2J\x1b[3J\x1b[H");
6
+ }
7
+ //# sourceMappingURL=clear-terminal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clear-terminal.js","sourceRoot":"","sources":["../../src/theme/clear-terminal.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,MAAM,UAAU,aAAa;IAC3B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO;IAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function setKubbisecFooterRequestRender(handler: (() => void) | undefined): void;
2
+ export declare function requestKubbisecFooterRender(): void;
3
+ //# sourceMappingURL=footer-render-hook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"footer-render-hook.d.ts","sourceRoot":"","sources":["../../src/theme/footer-render-hook.ts"],"names":[],"mappings":"AAEA,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAEtF;AAED,wBAAgB,2BAA2B,IAAI,IAAI,CAElD"}
@@ -0,0 +1,8 @@
1
+ let requestRender;
2
+ export function setKubbisecFooterRequestRender(handler) {
3
+ requestRender = handler;
4
+ }
5
+ export function requestKubbisecFooterRender() {
6
+ requestRender?.();
7
+ }
8
+ //# sourceMappingURL=footer-render-hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"footer-render-hook.js","sourceRoot":"","sources":["../../src/theme/footer-render-hook.ts"],"names":[],"mappings":"AAAA,IAAI,aAAuC,CAAC;AAE5C,MAAM,UAAU,8BAA8B,CAAC,OAAiC;IAC/E,aAAa,GAAG,OAAO,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,2BAA2B;IAC1C,aAAa,EAAE,EAAE,CAAC;AACnB,CAAC"}
@@ -0,0 +1,4 @@
1
+ /** Brand cyan #28DCF9 — kubbisec.json `accent`, footer branch, hex `mark.ansi`. */
2
+ export declare const KUBBISEC_BRAND_CYAN_ANSI = "\u001B[38;2;40;220;249m";
3
+ export declare function kubbisecBrandFg(text: string): string;
4
+ //# sourceMappingURL=kubbisec-brand-fg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kubbisec-brand-fg.d.ts","sourceRoot":"","sources":["../../src/theme/kubbisec-brand-fg.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,eAAO,MAAM,wBAAwB,4BAA0B,CAAC;AAGhE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD"}
@@ -0,0 +1,7 @@
1
+ /** Brand cyan #28DCF9 — kubbisec.json `accent`, footer branch, hex `mark.ansi`. */
2
+ export const KUBBISEC_BRAND_CYAN_ANSI = "\x1b[38;2;40;220;249m";
3
+ const ANSI_RESET = "\x1b[0m";
4
+ export function kubbisecBrandFg(text) {
5
+ return `${KUBBISEC_BRAND_CYAN_ANSI}${text}${ANSI_RESET}`;
6
+ }
7
+ //# sourceMappingURL=kubbisec-brand-fg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kubbisec-brand-fg.js","sourceRoot":"","sources":["../../src/theme/kubbisec-brand-fg.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,MAAM,CAAC,MAAM,wBAAwB,GAAG,uBAAuB,CAAC;AAChE,MAAM,UAAU,GAAG,SAAS,CAAC;AAE7B,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,GAAG,wBAAwB,GAAG,IAAI,GAAG,UAAU,EAAE,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { EditorTheme } from "@earendil-works/pi-tui";
2
+ declare function dimText(text: string): string;
3
+ /** `/settings` list — current value column and cursor use brand cyan (#28DCF9). */
4
+ export declare function buildKubbisecSettingsListTheme(): {
5
+ label: (text: string, selected: boolean) => string;
6
+ value: (text: string, _selected: boolean) => string;
7
+ description: typeof dimText;
8
+ cursor: string;
9
+ hint: typeof dimText;
10
+ };
11
+ /** Map Pi `accent` role to exact brand RGB (footer branch, header). */
12
+ export declare function patchGlobalThemeAccent(): void;
13
+ /** Slash-command autocomplete inside the editor — selected row uses brand cyan (#28DCF9). */
14
+ export declare function withKubbisecSelectListTheme(theme: EditorTheme): EditorTheme;
15
+ export {};
16
+ //# sourceMappingURL=kubbisec-menu-themes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kubbisec-menu-themes.d.ts","sourceRoot":"","sources":["../../src/theme/kubbisec-menu-themes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAgB1D,iBAAS,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGrC;AAED,mFAAmF;AACnF,wBAAgB,8BAA8B;kBAE9B,MAAM,YAAY,OAAO;kBACzB,MAAM,aAAa,OAAO;;;;EAKzC;AAED,uEAAuE;AACvE,wBAAgB,sBAAsB,IAAI,IAAI,CAU7C;AAED,6FAA6F;AAC7F,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,CAW3E"}
@@ -0,0 +1,47 @@
1
+ import { kubbisecBrandFg } from "./kubbisec-brand-fg.js";
2
+ const brand = (text) => kubbisecBrandFg(text);
3
+ const PI_THEME_KEY = Symbol.for("@earendil-works/pi-coding-agent:theme");
4
+ function getPiThemeInstance() {
5
+ return globalThis[PI_THEME_KEY];
6
+ }
7
+ function dimText(text) {
8
+ const instance = getPiThemeInstance();
9
+ return instance ? instance.fg("dim", text) : text;
10
+ }
11
+ /** `/settings` list — current value column and cursor use brand cyan (#28DCF9). */
12
+ export function buildKubbisecSettingsListTheme() {
13
+ return {
14
+ label: (text, selected) => (selected ? brand(text) : text),
15
+ value: (text, _selected) => brand(text),
16
+ description: dimText,
17
+ cursor: brand("→ "),
18
+ hint: dimText,
19
+ };
20
+ }
21
+ /** Map Pi `accent` role to exact brand RGB (footer branch, header). */
22
+ export function patchGlobalThemeAccent() {
23
+ const instance = getPiThemeInstance();
24
+ if (!instance || instance.__kubbisecMenuPatched)
25
+ return;
26
+ const originalFg = instance.fg.bind(instance);
27
+ instance.fg = (role, text) => {
28
+ if (role === "accent")
29
+ return brand(text);
30
+ return originalFg(role, text);
31
+ };
32
+ instance.__kubbisecMenuPatched = true;
33
+ }
34
+ /** Slash-command autocomplete inside the editor — selected row uses brand cyan (#28DCF9). */
35
+ export function withKubbisecSelectListTheme(theme) {
36
+ return {
37
+ ...theme,
38
+ selectList: {
39
+ selectedPrefix: brand,
40
+ selectedText: brand,
41
+ description: theme.selectList.description,
42
+ scrollInfo: theme.selectList.scrollInfo,
43
+ noMatch: theme.selectList.noMatch,
44
+ },
45
+ };
46
+ }
47
+ //# sourceMappingURL=kubbisec-menu-themes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kubbisec-menu-themes.js","sourceRoot":"","sources":["../../src/theme/kubbisec-menu-themes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,KAAK,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAE9D,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;AAOzE,SAAS,kBAAkB;IAC1B,OAAQ,UAA0D,CAAC,YAAY,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,OAAO,CAAC,IAAY;IAC5B,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IACtC,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,8BAA8B;IAC7C,OAAO;QACN,KAAK,EAAE,CAAC,IAAY,EAAE,QAAiB,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3E,KAAK,EAAE,CAAC,IAAY,EAAE,SAAkB,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;QACxD,WAAW,EAAE,OAAO;QACpB,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC;QACnB,IAAI,EAAE,OAAO;KACb,CAAC;AACH,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,sBAAsB;IACrC,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IACtC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,qBAAqB;QAAE,OAAO;IAExD,MAAM,UAAU,GAAG,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9C,QAAQ,CAAC,EAAE,GAAG,CAAC,IAAY,EAAE,IAAY,EAAE,EAAE;QAC5C,IAAI,IAAI,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1C,OAAO,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC;IACF,QAAQ,CAAC,qBAAqB,GAAG,IAAI,CAAC;AACvC,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,2BAA2B,CAAC,KAAkB;IAC7D,OAAO;QACN,GAAG,KAAK;QACR,UAAU,EAAE;YACX,cAAc,EAAE,KAAK;YACrB,YAAY,EAAE,KAAK;YACnB,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW;YACzC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,UAAU;YACvC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO;SACjC;KACD,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const KUBBISEC_THEME_NAME = "kubbisec";
2
+ //# sourceMappingURL=kubbisec-theme-name.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kubbisec-theme-name.d.ts","sourceRoot":"","sources":["../../src/theme/kubbisec-theme-name.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ export const KUBBISEC_THEME_NAME = "kubbisec";
2
+ //# sourceMappingURL=kubbisec-theme-name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kubbisec-theme-name.js","sourceRoot":"","sources":["../../src/theme/kubbisec-theme-name.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Runtime patch for Pi `/settings` current-value column (deep import via require.resolve). */
2
+ export declare function patchPiSettingsListTheme(): Promise<void>;
3
+ //# sourceMappingURL=patch-pi-settings-theme.runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patch-pi-settings-theme.runtime.d.ts","sourceRoot":"","sources":["../../src/theme/patch-pi-settings-theme.runtime.ts"],"names":[],"mappings":"AAIA,+FAA+F;AAC/F,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CAa9D"}
@@ -0,0 +1,16 @@
1
+ import { createRequire } from "node:module";
2
+ import { pathToFileURL } from "node:url";
3
+ import { buildKubbisecSettingsListTheme } from "./kubbisec-menu-themes.js";
4
+ /** Runtime patch for Pi `/settings` current-value column (deep import via require.resolve). */
5
+ export async function patchPiSettingsListTheme() {
6
+ try {
7
+ const require = createRequire(import.meta.url);
8
+ const themePath = require.resolve("@earendil-works/pi-coding-agent/dist/modes/interactive/theme/theme.js");
9
+ const themeMod = (await import(pathToFileURL(themePath).href));
10
+ themeMod.getSettingsListTheme = buildKubbisecSettingsListTheme;
11
+ }
12
+ catch {
13
+ // Pi bundle layout differs — accent patch still applies to selected rows.
14
+ }
15
+ }
16
+ //# sourceMappingURL=patch-pi-settings-theme.runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patch-pi-settings-theme.runtime.js","sourceRoot":"","sources":["../../src/theme/patch-pi-settings-theme.runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAE3E,+FAA+F;AAC/F,MAAM,CAAC,KAAK,UAAU,wBAAwB;IAC7C,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAChC,uEAAuE,CACvE,CAAC;QACF,MAAM,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAE5D,CAAC;QACF,QAAQ,CAAC,oBAAoB,GAAG,8BAA8B,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACR,0EAA0E;IAC3E,CAAC;AACF,CAAC"}
@@ -0,0 +1,21 @@
1
+ export type CompactHeaderTheme = {
2
+ fg: (role: string, text: string) => string;
3
+ bold: (text: string) => string;
4
+ };
5
+ /** Works from `dist/theme/` and from materialized `<cwd>/.pi/theme/`. */
6
+ export declare function resolveTerminalAssetsDir(moduleUrl?: string): string;
7
+ export declare function stripAnsi(value: string): string;
8
+ export declare function visibleWidth(text: string): number;
9
+ export declare function centerLine(text: string, width: number): string;
10
+ /** Center a multi-line ANSI block with uniform left padding (preserves row alignment). */
11
+ export declare function centerLinesAsBlock(lines: string[], width: number): string[];
12
+ /** Remove inline "K U B B I S E C" suffix from generated logo rows. */
13
+ export declare function stripEmbeddedWordmark(line: string): string;
14
+ /** Hints row with brand cyan on `@skill` and dim example + commands. */
15
+ export declare function renderHeaderHintsLine(theme: CompactHeaderTheme): string;
16
+ /** Single-line brand row: mark + wordmark + version + subtitle. */
17
+ export declare function renderCompactHeaderLine(theme: CompactHeaderTheme, version: string): string;
18
+ /** Default chat chrome: hex block, wordmark, version, spacer, subtitle, hints. */
19
+ export declare function renderCompactHeaderLines(theme: CompactHeaderTheme, version: string, width?: number): string[];
20
+ export declare function renderChatHeaderLines(theme: CompactHeaderTheme, version: string, width: number): string[];
21
+ //# sourceMappingURL=render-compact-header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-compact-header.d.ts","sourceRoot":"","sources":["../../src/theme/render-compact-header.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAChC,CAAC;AAKF,yEAAyE;AACzE,wBAAgB,wBAAwB,CAAC,SAAS,SAAkB,GAAG,MAAM,CAY5E;AAgBD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAM9D;AAMD,0FAA0F;AAC1F,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAM3E;AAED,uEAAuE;AACvE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAsB1D;AA8CD,wEAAwE;AACxE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAQvE;AAoCD,mEAAmE;AACnE,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAI1F;AAiBD,kFAAkF;AAClF,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,MAAM,EACf,KAAK,SAAK,GACT,MAAM,EAAE,CAqBV;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GACZ,MAAM,EAAE,CAKV"}
@@ -0,0 +1,198 @@
1
+ import * as fs from "node:fs";
2
+ import * as path from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+ import { KUBBISEC_HEADER_HINTS_COMMANDS, KUBBISEC_HEADER_HINTS_SKILL, KUBBISEC_SUBTITLE_LINE, KUBBISEC_WORDMARK, } from "../copy/kubbisec-shell-copy.js";
5
+ import { kubbisecBrandFg } from "./kubbisec-brand-fg.js";
6
+ const FALLBACK_MARK = "◆";
7
+ const EMBEDDED_WORDMARK = /\s+K\s+U\s+B\s+B\s+I\s+S\s+E\s+C\s*$/i;
8
+ /** Works from `dist/theme/` and from materialized `<cwd>/.pi/theme/`. */
9
+ export function resolveTerminalAssetsDir(moduleUrl = import.meta.url) {
10
+ const here = path.dirname(fileURLToPath(moduleUrl));
11
+ const candidates = [
12
+ path.join(here, "../assets/terminal"),
13
+ path.join(here, "../../assets/terminal"),
14
+ ];
15
+ for (const candidate of candidates) {
16
+ if (fs.existsSync(candidate)) {
17
+ return candidate;
18
+ }
19
+ }
20
+ return candidates[0];
21
+ }
22
+ function readAnsiFile(name) {
23
+ const file = path.join(resolveTerminalAssetsDir(), name);
24
+ if (!fs.existsSync(file))
25
+ return null;
26
+ return fs
27
+ .readFileSync(file, "utf8")
28
+ .split("\n")
29
+ .map((l) => l.replace(/\r$/, ""))
30
+ .filter((l) => l.length > 0);
31
+ }
32
+ function isVerboseBrand() {
33
+ return process.env.KUBBISEC_TUI_VERBOSE === "1";
34
+ }
35
+ export function stripAnsi(value) {
36
+ return value.replace(/\x1b\[[0-9;]*m/g, "");
37
+ }
38
+ export function visibleWidth(text) {
39
+ return stripAnsi(text).length;
40
+ }
41
+ export function centerLine(text, width) {
42
+ if (width <= 0)
43
+ return text;
44
+ const lineWidth = visibleWidth(text);
45
+ if (lineWidth >= width)
46
+ return text;
47
+ const pad = Math.floor((width - lineWidth) / 2);
48
+ return `${" ".repeat(pad)}${text}`;
49
+ }
50
+ function centerLines(lines, width) {
51
+ return lines.map((line) => centerLine(line, width));
52
+ }
53
+ /** Center a multi-line ANSI block with uniform left padding (preserves row alignment). */
54
+ export function centerLinesAsBlock(lines, width) {
55
+ if (lines.length === 0)
56
+ return [];
57
+ const blockWidth = Math.max(...lines.map(visibleWidth));
58
+ const pad = width > blockWidth ? Math.floor((width - blockWidth) / 2) : 0;
59
+ const prefix = " ".repeat(pad);
60
+ return lines.map((line) => `${prefix}${line}`);
61
+ }
62
+ /** Remove inline "K U B B I S E C" suffix from generated logo rows. */
63
+ export function stripEmbeddedWordmark(line) {
64
+ const plain = stripAnsi(line);
65
+ const match = plain.match(EMBEDDED_WORDMARK);
66
+ if (!match || match.index === undefined)
67
+ return line.trimEnd();
68
+ const cutPlainLen = match.index;
69
+ let visible = 0;
70
+ let i = 0;
71
+ let out = "";
72
+ while (i < line.length && visible < cutPlainLen) {
73
+ if (line[i] === "\x1b") {
74
+ const end = line.indexOf("m", i);
75
+ if (end === -1)
76
+ break;
77
+ out += line.slice(i, end + 1);
78
+ i = end + 1;
79
+ continue;
80
+ }
81
+ out += line[i];
82
+ visible += 1;
83
+ i += 1;
84
+ }
85
+ return out.trimEnd();
86
+ }
87
+ function symbolOnlyLines(logo) {
88
+ return logo.map((line) => stripEmbeddedWordmark(line)).filter((line) => stripAnsi(line).length > 0);
89
+ }
90
+ /** Read once at module load — avoids sync I/O on every TUI frame. */
91
+ const CACHED_MARK_LINES = readAnsiFile("mark.ansi") ?? [];
92
+ const CACHED_WORDMARK_INLINE = readAnsiFile("wordmark-inline.ansi");
93
+ /** Pi TUI widgets do not render iTerm 1337 inline PNGs — opt-in only. */
94
+ function isInlineWordmarkEnabled() {
95
+ return process.env.KUBBISEC_TUI_INLINE_IMAGES === "1";
96
+ }
97
+ /** Brand cyan — same RGB as footer branch (`#28DCF9`). */
98
+ function brandText(_theme, text) {
99
+ return kubbisecBrandFg(text);
100
+ }
101
+ function renderSpacedWordmarkFallback(theme) {
102
+ return brandText(theme, KUBBISEC_WORDMARK.split("").join(" "));
103
+ }
104
+ /** Centered hex mark only — never inline logotipo with embedded wordmark. */
105
+ function loadSymbolBlock(verbose) {
106
+ if (verbose) {
107
+ for (const name of ["logotipo-wide-fallback.ansi", "mark.ansi"]) {
108
+ const logo = readAnsiFile(name);
109
+ if (logo?.length)
110
+ return symbolOnlyLines(logo);
111
+ }
112
+ }
113
+ const mark = readAnsiFile("mark.ansi");
114
+ if (mark?.length)
115
+ return mark;
116
+ return null;
117
+ }
118
+ function renderWordmarkLine(theme, width) {
119
+ return centerLine(theme.bold(theme.fg("accent", KUBBISEC_WORDMARK)), width);
120
+ }
121
+ function renderVersionLine(theme, version) {
122
+ return theme.fg("dim", `v${version}`);
123
+ }
124
+ /** Hints row with brand cyan on `@skill` and dim example + commands. */
125
+ export function renderHeaderHintsLine(theme) {
126
+ const [skillToken, ...exampleParts] = KUBBISEC_HEADER_HINTS_SKILL.split(/\s+/);
127
+ const example = exampleParts.join(" ");
128
+ const skill = brandText(theme, skillToken ?? "@skill");
129
+ const exampleLabel = example ? theme.fg("dim", ` ${example}`) : "";
130
+ const separator = theme.fg("dim", " · ");
131
+ const commands = theme.fg("dim", KUBBISEC_HEADER_HINTS_COMMANDS);
132
+ return `${skill}${exampleLabel}${separator}${commands}`;
133
+ }
134
+ function appendSubtitleAndHints(theme, lines, width) {
135
+ return [
136
+ ...lines,
137
+ centerLine(brandText(theme, KUBBISEC_SUBTITLE_LINE), width),
138
+ centerLine(renderHeaderHintsLine(theme), width),
139
+ ];
140
+ }
141
+ function renderStackedBrandBlock(theme, version, width, verbose) {
142
+ const symbol = loadSymbolBlock(verbose);
143
+ const lines = [];
144
+ if (symbol?.length) {
145
+ lines.push(...centerLinesAsBlock(symbol, width));
146
+ }
147
+ else {
148
+ lines.push(centerLine(theme.fg("accent", FALLBACK_MARK), width));
149
+ }
150
+ lines.push("");
151
+ lines.push(renderWordmarkLine(theme, width));
152
+ lines.push(centerLine(renderVersionLine(theme, version), width));
153
+ lines.push("");
154
+ return appendSubtitleAndHints(theme, lines, width);
155
+ }
156
+ /** Single-line brand row: mark + wordmark + version + subtitle. */
157
+ export function renderCompactHeaderLine(theme, version) {
158
+ const mark = theme.fg("accent", FALLBACK_MARK);
159
+ const subtitle = theme.fg("dim", ` · ${KUBBISEC_SUBTITLE_LINE}`);
160
+ return `${mark} ${theme.bold(theme.fg("accent", KUBBISEC_WORDMARK))} ${renderVersionLine(theme, version)}${subtitle}`;
161
+ }
162
+ function renderWordmarkBlock(theme, version, width) {
163
+ const wordmark = isInlineWordmarkEnabled() && CACHED_WORDMARK_INLINE?.[0]
164
+ ? CACHED_WORDMARK_INLINE[0]
165
+ : renderSpacedWordmarkFallback(theme);
166
+ return [
167
+ centerLine(wordmark, width),
168
+ centerLine(renderVersionLine(theme, version), width),
169
+ ];
170
+ }
171
+ /** Default chat chrome: hex block, wordmark, version, spacer, subtitle, hints. */
172
+ export function renderCompactHeaderLines(theme, version, width = 80) {
173
+ const hintsLine = centerLine(renderHeaderHintsLine(theme), width);
174
+ const subtitleLine = centerLine(brandText(theme, KUBBISEC_SUBTITLE_LINE), width);
175
+ if (CACHED_MARK_LINES.length === 0) {
176
+ return [
177
+ centerLine(renderCompactHeaderLine(theme, version), width),
178
+ "",
179
+ subtitleLine,
180
+ hintsLine,
181
+ ];
182
+ }
183
+ return [
184
+ ...centerLinesAsBlock(CACHED_MARK_LINES, width),
185
+ "",
186
+ ...renderWordmarkBlock(theme, version, width),
187
+ "",
188
+ subtitleLine,
189
+ hintsLine,
190
+ ];
191
+ }
192
+ export function renderChatHeaderLines(theme, version, width) {
193
+ if (isVerboseBrand()) {
194
+ return renderStackedBrandBlock(theme, version, width, true);
195
+ }
196
+ return renderCompactHeaderLines(theme, version, width);
197
+ }
198
+ //# sourceMappingURL=render-compact-header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-compact-header.js","sourceRoot":"","sources":["../../src/theme/render-compact-header.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kubbisec/ai-linux-arm64",
3
- "version": "0.1.8",
3
+ "version": "0.1.10",
4
4
  "description": "KubbiSec CLI — Linux arm64 binary",
5
5
  "license": "UNLICENSED",
6
6
  "os": [