@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
@@ -4,13 +4,17 @@
4
4
  import { randomUUID } from "node:crypto";
5
5
  import * as fs from "node:fs";
6
6
  import { getKubbisecConfigPath } from "@kubbisec/home";
7
- import { truncateToWidth } from "@earendil-works/pi-tui";
7
+ import { setClarifyGateActive } from "../clarify/clarify-gate-state.js";
8
8
  import { shouldClarify, } from "../clarify/clarify-gate.js";
9
+ import { renderClarifySelectPanel } from "../clarify/clarify-select-panel.js";
9
10
  import { getClarifyUiSnapshot, resetClarifyUiSnapshot, setClarifyUiChangeListener, setClarifyUiSnapshot, } from "../clarify/clarify-ui-state.js";
11
+ import { inferScenarioFromMessage } from "../clarify/question-format.js";
10
12
  import { parseClarifyAnswer } from "../clarify/parse-clarify-answer.js";
11
13
  import { applyParsedUserAnswerIfPending, executeQuestionnaireTool, questionnaireToolParametersSchema, } from "../clarify/questionnaire-tool.js";
12
- import { buildClarifyProgressLabel, finalizeQuestionnaireAtRoundLimit, hasMinimumRemediationScope, readDefaultProjectId, readSessionQuestionnaire, shouldAcceptClarifyAnswer, writeSessionQuestionnaire, } from "../clarify/session-questionnaire.js";
14
+ import { discoverScopeHints } from "../clarify/scope-discovery.js";
15
+ import { buildClarifyProgressLabel, finalizeQuestionnaireAtRoundLimit, hasMinimumScopeForScenario, readDefaultProjectId, readSessionQuestionnaire, shouldAcceptClarifyAnswer, writeSessionQuestionnaire, } from "../clarify/session-questionnaire.js";
13
16
  import { resolveResourceBudget } from "../config/resource-budget.js";
17
+ import { getSessionWorkflowMode } from "../workflow/session-workflow-mode.js";
14
18
  export const CLARIFY_MUTATION_TOOLS = new Set([
15
19
  "edit",
16
20
  "write",
@@ -31,7 +35,7 @@ export const CLARIFY_READ_ONLY_TOOLS = new Set([
31
35
  "naus_pipeline_docs",
32
36
  "list_findings",
33
37
  ]);
34
- export const CLARIFY_TOOL_BLOCK_REASON = "Complete o questionário de escopo (use a tool questionnaire ou responda A–E) antes de editar ficheiros.";
38
+ export const CLARIFY_TOOL_BLOCK_REASON = "Complete o questionário de escopo (use o painel acima ou escreva a resposta) antes de editar ficheiros.";
35
39
  export function isClarifyMutationTool(toolName) {
36
40
  if (CLARIFY_READ_ONLY_TOOLS.has(toolName))
37
41
  return false;
@@ -58,9 +62,12 @@ function readDefaultProjectConfigured() {
58
62
  return false;
59
63
  }
60
64
  }
61
- function detectChatMode(prompt) {
65
+ export function detectChatMode(prompt) {
66
+ if (getSessionWorkflowMode() === "plan") {
67
+ return "plan";
68
+ }
62
69
  const trimmed = prompt.trim();
63
- if (trimmed.startsWith("/mode:plan") || /@plan\b/i.test(trimmed)) {
70
+ if (trimmed.startsWith("/mode:plan") || /@plan\b/i.test(trimmed) || /@planejar\b/i.test(trimmed)) {
64
71
  return "plan";
65
72
  }
66
73
  const envMode = process.env.KUBBISEC_CHAT_MODE?.trim().toLowerCase();
@@ -81,6 +88,7 @@ function resolveSurface() {
81
88
  function buildGateInput(prompt, questionnaire) {
82
89
  const msg = prompt.trim();
83
90
  const budget = resolveResourceBudget();
91
+ const scenario = questionnaire.scenario ?? inferScenarioFromMessage(msg);
84
92
  return {
85
93
  surface: resolveSurface(),
86
94
  userMessage: msg,
@@ -88,6 +96,7 @@ function buildGateInput(prompt, questionnaire) {
88
96
  hasVulnerabilityId: /\b(cve-|vuln|finding)/i.test(msg),
89
97
  hasSeverityFilter: Boolean(questionnaire.fields.severityMin) || /\b(severity|critical|high)\b/i.test(msg),
90
98
  mode: detectChatMode(msg),
99
+ scenario,
91
100
  questionnaireStatus: questionnaire.status,
92
101
  fields: questionnaire.fields,
93
102
  historyCount: questionnaire.history.length,
@@ -95,60 +104,92 @@ function buildGateInput(prompt, questionnaire) {
95
104
  };
96
105
  }
97
106
  export function buildClarifyContextMessage(questionnaire) {
98
- return `[SCOPE GATE]
99
- Session scope is not ready (status: ${questionnaire.status}).
100
-
101
- Rules:
102
- - Use the \`questionnaire\` tool to ask **one contextual question** at a time (action: ask | record | status | complete).
103
- - Tailor question text and options to the user scenario — do not use a fixed script.
104
- - When a question is pending, the KubbiSec panel shows formatted A–E options; do not repeat the full list in chat.
105
- - Read-only tools allowed; mutation tools blocked until questionnaire status is \`ready\`.
106
- - Never mention internal file paths or hidden config directories to the user.
107
-
108
- ${questionnaire.awaitingUserAnswer ? "Waiting for user answer to the pending question." : "Call questionnaire status/ask when scope is missing."}`;
107
+ const panelReady = questionnaire.awaitingUserAnswer && questionnaire.pending?.questionMarkdown;
108
+ return `[SCOPE GATE internal only, never repeat to user]
109
+ ${panelReady ? "Questionnaire panel is visible — do NOT ask user to look at the panel." : "Scope still missing — questionnaire auto-ask may run."}
110
+ Read-only until scope ready. User-facing replies: max 2 sentences; no chain-of-thought.
111
+ ${questionnaire.awaitingUserAnswer ? "Wait for panel answer or free text." : "Use questionnaire record if user already gave scope in prose."}`;
112
+ }
113
+ function extractQuestionText(markdown) {
114
+ for (const line of markdown.split("\n")) {
115
+ const trimmed = line.trim();
116
+ if (trimmed && !/^[A-D]\)/.test(trimmed))
117
+ return trimmed;
118
+ }
119
+ return markdown.split("\n")[0]?.trim() ?? "";
109
120
  }
110
- function syncClarifyUi(questionnaire) {
121
+ export function syncClarifyUi(questionnaire) {
111
122
  if (questionnaire.status === "ready") {
112
- setClarifyUiSnapshot({ phase: "ready", progressLabel: null, questionMarkdown: null });
123
+ setClarifyUiSnapshot({
124
+ phase: "ready",
125
+ progressLabel: null,
126
+ questionMarkdown: null,
127
+ questionText: null,
128
+ optionLabels: [],
129
+ selected: [],
130
+ focusedIndex: 0,
131
+ });
113
132
  return;
114
133
  }
115
134
  if (!questionnaire.awaitingUserAnswer || !questionnaire.pending?.questionMarkdown) {
116
- setClarifyUiSnapshot({ phase: "idle", progressLabel: null, questionMarkdown: null });
135
+ setClarifyUiSnapshot({
136
+ phase: "idle",
137
+ progressLabel: null,
138
+ questionMarkdown: null,
139
+ questionText: null,
140
+ optionLabels: [],
141
+ selected: [],
142
+ focusedIndex: 0,
143
+ });
117
144
  return;
118
145
  }
146
+ const pending = questionnaire.pending;
119
147
  setClarifyUiSnapshot({
120
148
  phase: "asking",
121
149
  progressLabel: buildClarifyProgressLabel(questionnaire),
122
- questionMarkdown: questionnaire.pending.questionMarkdown,
150
+ questionMarkdown: pending.questionMarkdown,
151
+ questionText: extractQuestionText(pending.questionMarkdown),
152
+ optionLabels: pending.optionLabels,
153
+ selectionMode: pending.selectionMode ?? "single",
154
+ selected: [],
155
+ focusedIndex: 0,
123
156
  });
124
157
  }
125
- function renderClarifyPanelLines(width, theme) {
126
- const ui = getClarifyUiSnapshot();
127
- if (ui.phase !== "asking" || !ui.questionMarkdown)
128
- return [];
129
- const border = theme.fg("warning", "─".repeat(Math.max(0, width)));
130
- const titleBase = ui.progressLabel ?? "Questionário";
131
- const title = typeof theme.bold === "function"
132
- ? theme.bold(theme.fg("warning", titleBase))
133
- : theme.fg("warning", titleBase);
134
- const lines = [truncateToWidth(border, width, ""), truncateToWidth(title, width, "")];
135
- for (const rawLine of ui.questionMarkdown.split("\n")) {
136
- const line = rawLine.trim();
137
- if (!line) {
138
- lines.push("");
139
- continue;
140
- }
141
- if (/^[A-E]\)/.test(line)) {
142
- lines.push(truncateToWidth(theme.fg("warning", line), width, ""));
143
- continue;
144
- }
145
- lines.push(truncateToWidth(theme.fg("text", line), width, ""));
158
+ function applyDiscoveredScope(questionnaire, prompt, cwd) {
159
+ const discovered = discoverScopeHints(cwd, prompt);
160
+ if (!discovered.fields || Object.keys(discovered.fields).length === 0) {
161
+ return questionnaire;
146
162
  }
147
- lines.push(truncateToWidth(theme.fg("dim", "Responda com A–E no chat abaixo."), width, ""));
148
- lines.push(truncateToWidth(border, width, ""));
149
- return lines;
163
+ const result = executeQuestionnaireTool(questionnaire, {
164
+ action: "record",
165
+ scenario: discovered.scenario,
166
+ fields: discovered.fields,
167
+ });
168
+ return result.questionnaire;
150
169
  }
151
- function updateClarifyStatus(ctx, questionnaire) {
170
+ export function autoAskNextQuestion(questionnaire, prompt) {
171
+ if (questionnaire.awaitingUserAnswer || questionnaire.status === "ready") {
172
+ return questionnaire;
173
+ }
174
+ const scenario = questionnaire.scenario ?? inferScenarioFromMessage(prompt);
175
+ const result = executeQuestionnaireTool(questionnaire, {
176
+ action: "ask",
177
+ scenario,
178
+ });
179
+ if (!result.ok)
180
+ return questionnaire;
181
+ return result.questionnaire;
182
+ }
183
+ function maybeMarkReady(questionnaire) {
184
+ const scenario = questionnaire.scenario ?? "remediation";
185
+ if (questionnaire.status === "collecting" &&
186
+ !questionnaire.awaitingUserAnswer &&
187
+ hasMinimumScopeForScenario(scenario, questionnaire.fields)) {
188
+ return { ...questionnaire, status: "ready", pending: null };
189
+ }
190
+ return questionnaire;
191
+ }
192
+ export function updateClarifyStatus(ctx, questionnaire) {
152
193
  if (!ctx.hasUI)
153
194
  return;
154
195
  if (questionnaire.status === "ready") {
@@ -159,7 +200,22 @@ function updateClarifyStatus(ctx, questionnaire) {
159
200
  ctx.ui.setStatus("kubbisec-clarify", ctx.ui.theme.fg("warning", `questionário · ${questionnaire.status}`));
160
201
  return;
161
202
  }
162
- ctx.ui.setStatus("kubbisec-clarify", ctx.ui.theme.fg("dim", `clarify · ${questionnaire.status}`));
203
+ ctx.ui.setStatus("kubbisec-clarify", undefined);
204
+ }
205
+ export function processClarifyPrompt(questionnaire, prompt, cwd, clarifyMaxRounds) {
206
+ let next = questionnaire;
207
+ if (next.status === "collecting" && prompt.trim()) {
208
+ const selectionMode = next.pending?.selectionMode ?? "single";
209
+ const parsed = parseClarifyAnswer(prompt, selectionMode);
210
+ if (shouldAcceptClarifyAnswer(next, parsed)) {
211
+ next = applyParsedUserAnswerIfPending(next, parsed);
212
+ next = finalizeQuestionnaireAtRoundLimit(next, clarifyMaxRounds);
213
+ next = maybeMarkReady(next);
214
+ }
215
+ }
216
+ next = applyDiscoveredScope(next, prompt, cwd);
217
+ next = maybeMarkReady(next);
218
+ return next;
163
219
  }
164
220
  export default function kubbisecClarify(api) {
165
221
  const sessionId = randomUUID();
@@ -195,7 +251,7 @@ export default function kubbisecClarify(api) {
195
251
  tui.requestRender();
196
252
  },
197
253
  render(w) {
198
- return renderClarifyPanelLines(w, theme);
254
+ return renderClarifySelectPanel(w, getClarifyUiSnapshot(), theme);
199
255
  },
200
256
  };
201
257
  }, { placement: "aboveEditor" });
@@ -203,7 +259,7 @@ export default function kubbisecClarify(api) {
203
259
  api.registerTool({
204
260
  name: "questionnaire",
205
261
  label: "Scope questionnaire",
206
- description: "Format and track contextual scope questions (ask/record/status/complete). Use tailored copy per scenario; KubbiSec renders A–E in the panel.",
262
+ description: "Format and track contextual scope questions (ask/record/status/complete). KubbiSec renders options in the panel above the editor.",
207
263
  parameters: questionnaireToolParametersSchema(),
208
264
  async execute(_toolCallId, params) {
209
265
  const input = params;
@@ -226,6 +282,7 @@ export default function kubbisecClarify(api) {
226
282
  sessionCwd = ctx.cwd;
227
283
  questionnaire = readSessionQuestionnaire(ctx.cwd, sessionId);
228
284
  gateActive = false;
285
+ setClarifyGateActive(false);
229
286
  lastUserMessage = "";
230
287
  resetClarifyUiSnapshot();
231
288
  ensureClarifyWidget(ctx);
@@ -234,6 +291,7 @@ export default function kubbisecClarify(api) {
234
291
  });
235
292
  api.on("session_shutdown", async () => {
236
293
  resetClarifyUiSnapshot();
294
+ setClarifyGateActive(false);
237
295
  });
238
296
  api.on("before_agent_start", async (event, ctx) => {
239
297
  const { prompt } = event;
@@ -242,36 +300,34 @@ export default function kubbisecClarify(api) {
242
300
  ensureClarifyWidget(ctx);
243
301
  if (surface !== "chat") {
244
302
  gateActive = false;
303
+ setClarifyGateActive(false);
245
304
  resetClarifyUiSnapshot();
246
305
  return undefined;
247
306
  }
248
307
  const budget = resolveResourceBudget();
249
308
  let next = readSessionQuestionnaire(ctx.cwd, questionnaire.sessionId);
250
- if (next.status === "collecting" && prompt.trim()) {
251
- const parsed = parseClarifyAnswer(prompt);
252
- if (shouldAcceptClarifyAnswer(next, parsed)) {
253
- next = applyParsedUserAnswerIfPending(next, parsed);
254
- next = finalizeQuestionnaireAtRoundLimit(next, budget.clarifyMaxRounds);
255
- if (hasMinimumRemediationScope(next.fields) && !next.awaitingUserAnswer && next.history.length > 0) {
256
- next = { ...next, status: "ready" };
257
- }
258
- persist(ctx, next);
259
- }
260
- }
309
+ next = processClarifyPrompt(next, prompt, ctx.cwd, budget.clarifyMaxRounds);
261
310
  const gateInput = buildGateInput(prompt, next);
262
311
  gateActive = shouldClarify(gateInput);
312
+ setClarifyGateActive(gateActive);
263
313
  if (!gateActive) {
264
- if (next.status === "collecting" && hasMinimumRemediationScope(next.fields)) {
265
- next = { ...next, status: "ready", awaitingUserAnswer: false, pending: null };
266
- persist(ctx, next);
267
- }
268
- else {
269
- updateClarifyStatus(ctx, next);
270
- syncClarifyUi(next);
271
- }
314
+ next = maybeMarkReady(next);
315
+ persist(ctx, next);
272
316
  return undefined;
273
317
  }
274
318
  if (next.status === "collecting" && !next.awaitingUserAnswer) {
319
+ next = autoAskNextQuestion(next, prompt);
320
+ next = maybeMarkReady(next);
321
+ persist(ctx, next);
322
+ if (next.awaitingUserAnswer) {
323
+ return {
324
+ message: {
325
+ customType: "kubbisec-clarify",
326
+ content: buildClarifyContextMessage(next),
327
+ display: false,
328
+ },
329
+ };
330
+ }
275
331
  return {
276
332
  message: {
277
333
  customType: "kubbisec-clarify",
@@ -280,7 +336,7 @@ export default function kubbisecClarify(api) {
280
336
  },
281
337
  };
282
338
  }
283
- updateClarifyStatus(ctx, next);
339
+ persist(ctx, next);
284
340
  return undefined;
285
341
  });
286
342
  api.on("tool_call", async (event, ctx) => {
@@ -1 +1 @@
1
- {"version":3,"file":"kubbisec-clarify.extension.js","sourceRoot":"","sources":["../../src/extensions/kubbisec-clarify.extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kubbisec-clarify.extension.js","sourceRoot":"","sources":["../../src/extensions/kubbisec-clarify.extension.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
2
+ export default function kubbisecExit(api: ExtensionAPI): void;
3
+ //# sourceMappingURL=kubbisec-exit.extension.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kubbisec-exit.extension.d.ts","sourceRoot":"","sources":["../../src/extensions/kubbisec-exit.extension.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,iCAAiC,CAAC;AA0BtF,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI,CAY5D"}
@@ -0,0 +1,38 @@
1
+ function isQuitSuggestion(item) {
2
+ const value = (item.value ?? "").trim().toLowerCase();
3
+ const label = (item.label ?? "").trim().toLowerCase();
4
+ return value === "/quit" || value === "quit" || label === "quit" || value.endsWith("/quit");
5
+ }
6
+ function wrapSlashAutocomplete(current) {
7
+ return {
8
+ async getSuggestions(lines, cursorLine, cursorCol, options) {
9
+ const result = await current.getSuggestions(lines, cursorLine, cursorCol, options);
10
+ if (!result?.items?.length)
11
+ return result;
12
+ const items = result.items.filter((item) => !isQuitSuggestion(item));
13
+ if (items.length === result.items.length)
14
+ return result;
15
+ return { ...result, items };
16
+ },
17
+ applyCompletion(lines, cursorLine, cursorCol, item, prefix) {
18
+ return current.applyCompletion(lines, cursorLine, cursorCol, item, prefix);
19
+ },
20
+ shouldTriggerFileCompletion(lines, cursorLine, cursorCol) {
21
+ return current.shouldTriggerFileCompletion?.(lines, cursorLine, cursorCol) ?? true;
22
+ },
23
+ };
24
+ }
25
+ export default function kubbisecExit(api) {
26
+ api.registerCommand("exit", {
27
+ description: "Exit KubbiSec",
28
+ handler: async (_args, ctx) => {
29
+ ctx.shutdown();
30
+ },
31
+ });
32
+ api.on("session_start", async (_event, ctx) => {
33
+ if (!ctx.hasUI)
34
+ return;
35
+ ctx.ui.addAutocompleteProvider((current) => wrapSlashAutocomplete(current));
36
+ });
37
+ }
38
+ //# sourceMappingURL=kubbisec-exit.extension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kubbisec-exit.extension.js","sourceRoot":"","sources":["../../src/extensions/kubbisec-exit.extension.ts"],"names":[],"mappings":"AAMA,SAAS,gBAAgB,CAAC,IAAwC;IAChE,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACtD,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACtD,OAAO,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC9F,CAAC;AAED,SAAS,qBAAqB,CAAC,OAA6B;IAC1D,OAAO;QACL,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO;YACxD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YACnF,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM;gBAAE,OAAO,MAAM,CAAC;YAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;YACrE,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,CAAC,MAAM;gBAAE,OAAO,MAAM,CAAC;YACxD,OAAO,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC;QAC9B,CAAC;QACD,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM;YACxD,OAAO,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC7E,CAAC;QACD,2BAA2B,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS;YACtD,OAAO,OAAO,CAAC,2BAA2B,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC;QACrF,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,GAAiB;IACpD,GAAG,CAAC,eAAe,CAAC,MAAM,EAAE;QAC1B,WAAW,EAAE,eAAe;QAC5B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC5B,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjB,CAAC;KACF,CAAC,CAAC;IAEH,GAAG,CAAC,EAAE,CAAC,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,GAAqB,EAAE,EAAE;QAC9D,IAAI,CAAC,GAAG,CAAC,KAAK;YAAE,OAAO;QACvB,GAAG,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Runtime toggle for local gh/git, naus, and aspm tools (no chat restart).
3
+ */
4
+ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
5
+ export default function kubbisecExtendedContext(api: ExtensionAPI): void;
6
+ //# sourceMappingURL=kubbisec-extended-context.extension.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kubbisec-extended-context.extension.d.ts","sourceRoot":"","sources":["../../src/extensions/kubbisec-extended-context.extension.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,iCAAiC,CAAC;AA0DtF,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI,CAevE"}
@@ -0,0 +1,50 @@
1
+ import { disableExtendedContext, enableExtendedContext, extendedContextEnabled, formatExtendedContextStatus, resolveExtendedWorkspace, } from "../config/extended-context.js";
2
+ function updateFooterStatus(ctx) {
3
+ if (!ctx.hasUI)
4
+ return;
5
+ const label = formatExtendedContextStatus();
6
+ ctx.ui.setStatus("kubbisec-extended", label);
7
+ }
8
+ async function handleExtendedContextCommand(args, ctx) {
9
+ const trimmed = args.trim();
10
+ const lower = trimmed.toLowerCase();
11
+ if (lower === "off" || lower === "disable" || lower === "desativar") {
12
+ disableExtendedContext();
13
+ ctx.ui?.notify("Contexto local desativado nesta sessão.", "info");
14
+ updateFooterStatus(ctx);
15
+ return;
16
+ }
17
+ if (lower === "status" || lower === "estado") {
18
+ ctx.ui?.notify(extendedContextEnabled()
19
+ ? `Ativo — workspace: ${resolveExtendedWorkspace()}`
20
+ : "Inativo. Use /extended-context on para ativar sem reiniciar o chat.", "info");
21
+ return;
22
+ }
23
+ const workspace = trimmed &&
24
+ lower !== "on" &&
25
+ lower !== "enable" &&
26
+ lower !== "ativar" &&
27
+ lower !== "true" &&
28
+ lower !== "1"
29
+ ? trimmed
30
+ : undefined;
31
+ enableExtendedContext({ workspace });
32
+ ctx.ui?.notify(`Contexto local ativado${workspace ? ` (${workspace})` : ""}. ` +
33
+ "Ferramentas: github_local_*, naus_local_*, aspm_local_*.", "info");
34
+ updateFooterStatus(ctx);
35
+ }
36
+ export default function kubbisecExtendedContext(api) {
37
+ const commandOptions = {
38
+ description: "Ativar ferramentas locais (gh, naus, aspm) nesta sessão",
39
+ handler: handleExtendedContextCommand,
40
+ };
41
+ api.registerCommand("extended-context", commandOptions);
42
+ api.registerCommand("local-tools", {
43
+ ...commandOptions,
44
+ description: "Alias de /extended-context — ferramentas locais na máquina",
45
+ });
46
+ api.on("session_start", async (_event, ctx) => {
47
+ updateFooterStatus(ctx);
48
+ });
49
+ }
50
+ //# sourceMappingURL=kubbisec-extended-context.extension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kubbisec-extended-context.extension.js","sourceRoot":"","sources":["../../src/extensions/kubbisec-extended-context.extension.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,+BAA+B,CAAC;AAEvC,SAAS,kBAAkB,CAAC,GAAqB;IAC/C,IAAI,CAAC,GAAG,CAAC,KAAK;QAAE,OAAO;IACvB,MAAM,KAAK,GAAG,2BAA2B,EAAE,CAAC;IAC5C,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED,KAAK,UAAU,4BAA4B,CACzC,IAAY,EACZ,GAAqB;IAErB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAEpC,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;QACpE,sBAAsB,EAAE,CAAC;QACzB,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,yCAAyC,EAAE,MAAM,CAAC,CAAC;QAClE,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACxB,OAAO;IACT,CAAC;IAED,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC7C,GAAG,CAAC,EAAE,EAAE,MAAM,CACZ,sBAAsB,EAAE;YACtB,CAAC,CAAC,sBAAsB,wBAAwB,EAAE,EAAE;YACpD,CAAC,CAAC,qEAAqE,EACzE,MAAM,CACP,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GACb,OAAO;QACP,KAAK,KAAK,IAAI;QACd,KAAK,KAAK,QAAQ;QAClB,KAAK,KAAK,QAAQ;QAClB,KAAK,KAAK,MAAM;QAChB,KAAK,KAAK,GAAG;QACX,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,SAAS,CAAC;IAEhB,qBAAqB,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IACrC,GAAG,CAAC,EAAE,EAAE,MAAM,CACZ,yBAAyB,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI;QAC7D,0DAA0D,EAC5D,MAAM,CACP,CAAC;IACF,kBAAkB,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,GAAiB;IAC/D,MAAM,cAAc,GAAG;QACrB,WAAW,EAAE,yDAAyD;QACtE,OAAO,EAAE,4BAA4B;KACtC,CAAC;IAEF,GAAG,CAAC,eAAe,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;IACxD,GAAG,CAAC,eAAe,CAAC,aAAa,EAAE;QACjC,GAAG,cAAc;QACjB,WAAW,EAAE,4DAA4D;KAC1E,CAAC,CAAC;IAEH,GAAG,CAAC,EAAE,CAAC,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;QAC5C,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,64 +1,19 @@
1
- type AssistantMessage = {
2
- role: "assistant";
3
- usage: {
4
- input: number;
5
- output: number;
6
- cacheRead: number;
7
- cacheWrite: number;
8
- cost: {
9
- total: number;
10
- };
11
- };
12
- };
13
- type SessionEntry = {
14
- type: string;
15
- message?: AssistantMessage & {
16
- role?: string;
17
- };
18
- };
19
- type Model = {
20
- id: string;
21
- contextWindow?: number;
22
- };
23
- type ContextUsage = {
24
- contextWindow: number;
25
- percent: number | null;
26
- };
27
- type Theme = {
28
- fg: (role: string, text: string) => string;
29
- };
30
- type FooterDataProvider = {
31
- getGitBranch: () => string | undefined;
32
- getExtensionStatuses: () => Map<string, string>;
33
- onBranchChange: (listener: () => void) => () => void;
34
- };
35
- type Tui = {
36
- requestRender: () => void;
37
- };
38
- type ExtensionContext = {
39
- hasUI: boolean;
1
+ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
2
+ export type KubbisecFooterRenderInput = {
40
3
  cwd: string;
41
- model: Model | undefined;
42
- sessionManager: {
43
- getCwd: () => string;
44
- getSessionName: () => string | undefined;
45
- getBranch: () => SessionEntry[];
46
- };
47
- getContextUsage: () => ContextUsage | undefined;
48
- ui: {
49
- setFooter: (factory: ((tui: Tui, theme: Theme, footerData: FooterDataProvider) => FooterComponent & {
50
- dispose?(): void;
51
- }) | undefined) => void;
52
- };
53
- };
54
- type ExtensionApi = {
55
- on: (event: string, handler: (event: unknown, ctx: ExtensionContext) => void | Promise<void>) => void;
56
- };
57
- type FooterComponent = {
58
- render: (width: number) => string[];
59
- invalidate: () => void;
60
- dispose?: () => void;
4
+ home?: string;
5
+ gitBranch?: string;
6
+ sessionName?: string;
7
+ workflowBadge?: string | null;
8
+ modelLabel: string;
9
+ totalInput: number;
10
+ totalOutput: number;
11
+ totalCacheRead: number;
12
+ totalCacheWrite: number;
13
+ totalCost: number;
14
+ contextPercent: number | null;
15
+ contextWindow: number;
61
16
  };
62
- export default function kubbisecFooter(api: ExtensionApi): void;
63
- export {};
17
+ export declare function buildKubbisecFooterPlainLine(input: KubbisecFooterRenderInput): string;
18
+ export default function kubbisecFooter(api: ExtensionAPI): void;
64
19
  //# sourceMappingURL=kubbisec-footer.extension.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"kubbisec-footer.extension.d.ts","sourceRoot":"","sources":["../../src/extensions/kubbisec-footer.extension.ts"],"names":[],"mappings":"AAOA,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;KACzB,CAAC;CACH,CAAC;AAEF,KAAK,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAErF,KAAK,KAAK,GAAG;IACX,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAC;AAEF,KAAK,KAAK,GAAG;IACX,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAC5C,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,YAAY,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACvC,oBAAoB,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;CACtD,CAAC;AAEF,KAAK,GAAG,GAAG;IACT,aAAa,EAAE,MAAM,IAAI,CAAC;CAC3B,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;IACzB,cAAc,EAAE;QACd,MAAM,EAAE,MAAM,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;QACzC,SAAS,EAAE,MAAM,YAAY,EAAE,CAAC;KACjC,CAAC;IACF,eAAe,EAAE,MAAM,YAAY,GAAG,SAAS,CAAC;IAChD,EAAE,EAAE;QACF,SAAS,EAAE,CACT,OAAO,EACH,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,kBAAkB,KAAK,eAAe,GAAG;YAAE,OAAO,CAAC,IAAI,IAAI,CAAA;SAAE,CAAC,GACpG,SAAS,KACV,IAAI,CAAC;KACX,CAAC;CACH,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;CACvG,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IACpC,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AA+KF,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI,CA0B9D"}
1
+ {"version":3,"file":"kubbisec-footer.extension.d.ts","sourceRoot":"","sources":["../../src/extensions/kubbisec-footer.extension.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,iCAAiC,CAAC;AA2DtF,MAAM,MAAM,yBAAyB,GAAG;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAwIF,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,yBAAyB,GAAG,MAAM,CAErF;AA+FD,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI,CAsC9D"}