@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
@@ -0,0 +1,171 @@
1
+ import * as crypto from "node:crypto";
2
+ import * as fs from "node:fs";
3
+ import * as path from "node:path";
4
+ import { KUBBISEC_EXTENSION_BASENAMES } from "./kubbisec-extension-manifest.js";
5
+ import { PI_PROJECT_CONFIG_DIR } from "./ensure-kubbisec-project-settings.js";
6
+ import { KUBBISEC_THEME_NAME } from "../theme/kubbisec-theme-name.js";
7
+ import { resolveBundledDistRoot } from "../resolve-bundled-dist-root.js";
8
+ const KUBBISEC_EXTENSION_PREFIX = "kubbisec-";
9
+ const FINGERPRINT_FILE = ".bundled-fingerprint";
10
+ /** Non-prefixed modules co-located with extensions (imported as `./…` from extension entrypoints). */
11
+ const EXTENSION_SUPPORT_FILES = ["cli-local-shared.js"];
12
+ /** Dist siblings required by `../…` imports from `.pi/extensions/*.extension.js`. */
13
+ const PI_SUPPORT_DIRS = [
14
+ "config",
15
+ "components",
16
+ "clarify",
17
+ "copy",
18
+ "workflow",
19
+ "theme",
20
+ "skills",
21
+ "assets",
22
+ ];
23
+ const PI_ROOT_FILES = ["resolve-bundled-dist-root.js"];
24
+ function listKubbisecExtensionFiles(dir) {
25
+ if (!fs.existsSync(dir))
26
+ return [];
27
+ return fs
28
+ .readdirSync(dir)
29
+ .filter((name) => name.startsWith(KUBBISEC_EXTENSION_PREFIX) && name.endsWith(".js"))
30
+ .sort();
31
+ }
32
+ function listExtensionSupportFiles(dir) {
33
+ if (!fs.existsSync(dir))
34
+ return [];
35
+ return EXTENSION_SUPPORT_FILES.filter((name) => fs.existsSync(path.join(dir, name)));
36
+ }
37
+ function listFilesRecursive(root, prefix = "") {
38
+ const out = [];
39
+ const scanDir = prefix ? path.join(root, prefix) : root;
40
+ if (!fs.existsSync(scanDir))
41
+ return out;
42
+ for (const entry of fs.readdirSync(scanDir, { withFileTypes: true })) {
43
+ const rel = prefix ? `${prefix}/${entry.name}` : entry.name;
44
+ if (entry.isDirectory()) {
45
+ out.push(...listFilesRecursive(root, rel));
46
+ }
47
+ else {
48
+ out.push(rel);
49
+ }
50
+ }
51
+ return out.sort();
52
+ }
53
+ function fingerprintBundledPiRuntime(sourceRoot, extensionNames, supportNames) {
54
+ const hash = crypto.createHash("sha256");
55
+ const extensionsDir = path.join(sourceRoot, "extensions");
56
+ for (const name of extensionNames) {
57
+ hash.update(`extensions/${name}`);
58
+ hash.update(fs.readFileSync(path.join(extensionsDir, name)));
59
+ }
60
+ for (const name of supportNames) {
61
+ hash.update(`extensions/${name}`);
62
+ hash.update(fs.readFileSync(path.join(extensionsDir, name)));
63
+ }
64
+ for (const dir of PI_SUPPORT_DIRS) {
65
+ const base = path.join(sourceRoot, dir);
66
+ for (const rel of listFilesRecursive(base)) {
67
+ hash.update(`${dir}/${rel}`);
68
+ hash.update(fs.readFileSync(path.join(base, rel)));
69
+ }
70
+ }
71
+ for (const file of PI_ROOT_FILES) {
72
+ const full = path.join(sourceRoot, file);
73
+ if (!fs.existsSync(full))
74
+ continue;
75
+ hash.update(file);
76
+ hash.update(fs.readFileSync(full));
77
+ }
78
+ return hash.digest("hex").slice(0, 16);
79
+ }
80
+ function removeStaleKubbisecExtensions(targetDir) {
81
+ if (!fs.existsSync(targetDir))
82
+ return;
83
+ for (const name of fs.readdirSync(targetDir)) {
84
+ const isKubbisecEntry = name.startsWith(KUBBISEC_EXTENSION_PREFIX) && name.endsWith(".js");
85
+ const isSupport = EXTENSION_SUPPORT_FILES.includes(name);
86
+ if (isKubbisecEntry || isSupport) {
87
+ fs.unlinkSync(path.join(targetDir, name));
88
+ }
89
+ }
90
+ }
91
+ function copySupportDirs(sourceRoot, piRoot) {
92
+ for (const dir of PI_SUPPORT_DIRS) {
93
+ const source = path.join(sourceRoot, dir);
94
+ if (!fs.existsSync(source))
95
+ continue;
96
+ const target = path.join(piRoot, dir);
97
+ fs.rmSync(target, { recursive: true, force: true });
98
+ fs.cpSync(source, target, { recursive: true });
99
+ }
100
+ for (const file of PI_ROOT_FILES) {
101
+ const source = path.join(sourceRoot, file);
102
+ if (!fs.existsSync(source))
103
+ continue;
104
+ fs.copyFileSync(source, path.join(piRoot, file));
105
+ }
106
+ }
107
+ function supportLayoutUpToDate(piRoot, fingerprint) {
108
+ const stampPath = path.join(piRoot, FINGERPRINT_FILE);
109
+ try {
110
+ if (fs.readFileSync(stampPath, "utf8").trim() !== fingerprint)
111
+ return false;
112
+ }
113
+ catch {
114
+ return false;
115
+ }
116
+ return fs.existsSync(path.join(piRoot, "config", "register-kubbisec-llm-provider.js"));
117
+ }
118
+ /**
119
+ * Copy bundled KubbiSec Pi extensions into `<cwd>/.pi/extensions/` so Pi loads them
120
+ * as project resources (not CLI `-e` temp paths that leak monorepo filesystem paths).
121
+ *
122
+ * Extension modules import siblings via `../config`, `../components`, etc., so the
123
+ * matching dist folders are mirrored under `<cwd>/.pi/`.
124
+ */
125
+ export function materializeKubbisecPiExtensions(cwd = process.cwd()) {
126
+ const sourceRoot = resolveBundledDistRoot();
127
+ const sourceDir = path.join(sourceRoot, "extensions");
128
+ const sourceNames = listKubbisecExtensionFiles(sourceDir);
129
+ const supportNames = listExtensionSupportFiles(sourceDir);
130
+ if (sourceNames.length === 0)
131
+ return [];
132
+ const piRoot = path.join(cwd, PI_PROJECT_CONFIG_DIR);
133
+ const targetDir = path.join(piRoot, "extensions");
134
+ fs.mkdirSync(targetDir, { recursive: true, mode: 0o755 });
135
+ const fingerprint = fingerprintBundledPiRuntime(sourceRoot, sourceNames, supportNames);
136
+ const extensionsUpToDate = supportLayoutUpToDate(piRoot, fingerprint) &&
137
+ sourceNames.every((name) => fs.existsSync(path.join(targetDir, name))) &&
138
+ supportNames.every((name) => fs.existsSync(path.join(targetDir, name)));
139
+ if (!extensionsUpToDate) {
140
+ removeStaleKubbisecExtensions(targetDir);
141
+ for (const name of [...sourceNames, ...supportNames]) {
142
+ fs.copyFileSync(path.join(sourceDir, name), path.join(targetDir, name));
143
+ }
144
+ copySupportDirs(sourceRoot, piRoot);
145
+ fs.writeFileSync(path.join(piRoot, FINGERPRINT_FILE), `${fingerprint}\n`, "utf8");
146
+ }
147
+ return listKubbisecExtensionFiles(targetDir).map((name) => path.join(targetDir, name));
148
+ }
149
+ /** Pin KubbiSec theme under `<cwd>/.pi/themes/` for Pi project discovery (no `--theme` path). */
150
+ export function materializeKubbisecPiTheme(cwd = process.cwd()) {
151
+ const source = path.join(resolveBundledDistRoot(), "theme", `${KUBBISEC_THEME_NAME}.json`);
152
+ if (!fs.existsSync(source))
153
+ return;
154
+ const targetDir = path.join(cwd, PI_PROJECT_CONFIG_DIR, "themes");
155
+ fs.mkdirSync(targetDir, { recursive: true, mode: 0o755 });
156
+ fs.copyFileSync(source, path.join(targetDir, `${KUBBISEC_THEME_NAME}.json`));
157
+ }
158
+ /** Materialized extension paths in manifest load order (for explicit `-e` flags). */
159
+ export function resolveKubbisecPiExtensionPaths(cwd = process.cwd()) {
160
+ materializeKubbisecPiExtensions(cwd);
161
+ const targetDir = path.join(cwd, PI_PROJECT_CONFIG_DIR, "extensions");
162
+ const paths = [];
163
+ for (const base of KUBBISEC_EXTENSION_BASENAMES) {
164
+ const full = path.join(targetDir, `${base}.js`);
165
+ if (fs.existsSync(full)) {
166
+ paths.push(full);
167
+ }
168
+ }
169
+ return paths;
170
+ }
171
+ //# sourceMappingURL=materialize-kubbisec-pi-resources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"materialize-kubbisec-pi-resources.js","sourceRoot":"","sources":["../../src/config/materialize-kubbisec-pi-resources.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { KubbisecLlmConfig } from "./llm-config.js";
2
+ import { toProviderModelConfig } from "./llm-provider-catalog.js";
3
+ type ProviderRegistrar = (id: string, config: {
4
+ name?: string;
5
+ baseUrl?: string;
6
+ headers?: Record<string, string>;
7
+ apiKey?: string;
8
+ api?: string;
9
+ models?: ReturnType<typeof toProviderModelConfig>[];
10
+ }) => void;
11
+ export declare function registerCustomLlmProviders(register: ProviderRegistrar, config: KubbisecLlmConfig): void;
12
+ export {};
13
+ //# sourceMappingURL=register-custom-llm-providers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-custom-llm-providers.d.ts","sourceRoot":"","sources":["../../src/config/register-custom-llm-providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA6B,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE,KAAK,iBAAiB,GAAG,CACvB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE;IACN,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,EAAE,CAAC;CACrD,KACE,IAAI,CAAC;AAgBV,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,EAAE,iBAAiB,GACxB,IAAI,CAIN"}
@@ -0,0 +1,21 @@
1
+ import { resolveApiKeyValue } from "./llm-config.js";
2
+ import { toProviderModelConfig } from "./llm-provider-catalog.js";
3
+ function registerOneProvider(register, provider) {
4
+ const apiKey = resolveApiKeyValue(provider.apiKey) ?? (provider.autodetected ? provider.apiKey : undefined);
5
+ register(provider.id, {
6
+ name: provider.name?.trim() || provider.id,
7
+ baseUrl: provider.baseUrl,
8
+ ...(apiKey ? { apiKey } : {}),
9
+ api: provider.api ?? "openai-completions",
10
+ ...(provider.headers && Object.keys(provider.headers).length > 0
11
+ ? { headers: provider.headers }
12
+ : {}),
13
+ models: provider.models.map(toProviderModelConfig),
14
+ });
15
+ }
16
+ export function registerCustomLlmProviders(register, config) {
17
+ for (const provider of config.providers ?? []) {
18
+ registerOneProvider(register, provider);
19
+ }
20
+ }
21
+ //# sourceMappingURL=register-custom-llm-providers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-custom-llm-providers.js","sourceRoot":"","sources":["../../src/config/register-custom-llm-providers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAclE,SAAS,mBAAmB,CAAC,QAA2B,EAAE,QAAmC;IAC3F,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC5G,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE;QACpB,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,QAAQ,CAAC,EAAE;QAC1C,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,GAAG,EAAE,QAAQ,CAAC,GAAG,IAAI,oBAAoB;QACzC,GAAG,CAAC,QAAQ,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC;YAC9D,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE;YAC/B,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC;KACnD,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,QAA2B,EAC3B,MAAyB;IAEzB,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;QAC9C,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { toProviderModelConfig } from "./llm-provider-catalog.js";
2
+ export type KubbisecLlmProviderPiConfig = {
3
+ name?: string;
4
+ baseUrl?: string;
5
+ headers?: Record<string, string>;
6
+ apiKey?: string;
7
+ api?: string;
8
+ models?: ReturnType<typeof toProviderModelConfig>[];
9
+ };
10
+ type ProviderRegistrar = (id: string, config: KubbisecLlmProviderPiConfig) => void;
11
+ export declare function buildKubbisecLlmProviderConfig(cwd?: string): KubbisecLlmProviderPiConfig | null;
12
+ export declare function registerKubbisecLlmProvider(register: ProviderRegistrar, cwd?: string): boolean;
13
+ export {};
14
+ //# sourceMappingURL=register-kubbisec-llm-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-kubbisec-llm-provider.d.ts","sourceRoot":"","sources":["../../src/config/register-kubbisec-llm-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,qBAAqB,EACtB,MAAM,2BAA2B,CAAC;AAGnC,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,EAAE,CAAC;CACrD,CAAC;AAEF,KAAK,iBAAiB,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,2BAA2B,KAAK,IAAI,CAAC;AA+BnF,wBAAgB,8BAA8B,CAC5C,GAAG,SAAgB,GAClB,2BAA2B,GAAG,IAAI,CAsBpC;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,iBAAiB,EAC3B,GAAG,SAAgB,GAClB,OAAO,CAMT"}
@@ -0,0 +1,53 @@
1
+ import { KUBBISEC_LLM_PROVIDER_ID, KUBBISEC_LLM_PROVIDER_NAME, mergeKubbisecModelCatalog, toProviderModelConfig, } from "./llm-provider-catalog.js";
2
+ import { readLlmConfig } from "./llm-config.js";
3
+ function resolveLlmBaseUrl() {
4
+ return (process.env.KUBBISEC_AI_LLM_BASE_URL?.trim() ||
5
+ process.env.KUBBISEC_PI_LLM_BASE_URL?.trim() ||
6
+ process.env.OPENAI_BASE_URL?.trim());
7
+ }
8
+ function resolveModelId(config = readLlmConfig()) {
9
+ return (config.defaultModel?.trim() ||
10
+ process.env.KUBBISEC_AI_MODEL_ID?.trim() ||
11
+ process.env.KUBBISEC_AI_MODEL?.trim() ||
12
+ process.env.KUBBISEC_PI_MODEL?.trim() ||
13
+ process.env.NAUS_PI_MODEL?.trim() ||
14
+ "gpt-4o");
15
+ }
16
+ function resolveProxyHeaders(token) {
17
+ const headers = {
18
+ Authorization: `Bearer ${token}`,
19
+ "x-api-key": token,
20
+ };
21
+ const orgId = process.env.KUBBISEC_ORG_ID?.trim();
22
+ if (orgId)
23
+ headers["x-organization-id"] = orgId;
24
+ return headers;
25
+ }
26
+ export function buildKubbisecLlmProviderConfig(cwd = process.cwd()) {
27
+ const baseUrl = resolveLlmBaseUrl();
28
+ if (!baseUrl)
29
+ return null;
30
+ const token = process.env.KUBBISEC_JOB_TOKEN?.trim() ||
31
+ process.env.KUBBISEC_API_KEY?.trim() ||
32
+ process.env.OPENAI_API_KEY?.trim();
33
+ const headers = token ? resolveProxyHeaders(token) : {};
34
+ const llmConfig = readLlmConfig(cwd);
35
+ const defaultModelId = resolveModelId(llmConfig);
36
+ const catalog = mergeKubbisecModelCatalog(defaultModelId, llmConfig.kubbisec?.models);
37
+ return {
38
+ name: KUBBISEC_LLM_PROVIDER_NAME,
39
+ baseUrl,
40
+ ...(token ? { apiKey: token } : {}),
41
+ api: "openai-completions",
42
+ ...(Object.keys(headers).length > 0 ? { headers } : {}),
43
+ models: catalog.map(toProviderModelConfig),
44
+ };
45
+ }
46
+ export function registerKubbisecLlmProvider(register, cwd = process.cwd()) {
47
+ const config = buildKubbisecLlmProviderConfig(cwd);
48
+ if (!config)
49
+ return false;
50
+ register(KUBBISEC_LLM_PROVIDER_ID, config);
51
+ return true;
52
+ }
53
+ //# sourceMappingURL=register-kubbisec-llm-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-kubbisec-llm-provider.js","sourceRoot":"","sources":["../../src/config/register-kubbisec-llm-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /** Matches Pi `getAgentDir()` when runtime is branded (`piConfig.configDir: ".kubbisec"`). */
2
+ export declare const KUBBISEC_PI_AGENT_CONFIG_DIR = ".kubbisec";
3
+ export declare function resolvePiAgentModelsJsonPath(): string;
4
+ /**
5
+ * Pi resolves `--provider` from models.json before extensions load.
6
+ * Materialize KubbiSec (and custom BYOK/local) providers into `~/.kubbisec/agent/models.json`
7
+ * so chat bootstrap can use `defaultProvider` from `.kubbisec/llm.json`.
8
+ */
9
+ export declare function syncKubbisecProvidersToPiModelsJson(cwd?: string, options?: {
10
+ modelsJsonPath?: string;
11
+ }): boolean;
12
+ //# sourceMappingURL=sync-kubbisec-pi-models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-kubbisec-pi-models.d.ts","sourceRoot":"","sources":["../../src/config/sync-kubbisec-pi-models.ts"],"names":[],"mappings":"AAmBA,8FAA8F;AAC9F,eAAO,MAAM,4BAA4B,cAAc,CAAC;AAQxD,wBAAgB,4BAA4B,IAAI,MAAM,CAMrD;AAuCD;;;;GAIG;AACH,wBAAgB,mCAAmC,CACjD,GAAG,SAAgB,EACnB,OAAO,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,GACpC,OAAO,CA6BT"}
@@ -0,0 +1,80 @@
1
+ import * as fs from "node:fs";
2
+ import * as os from "node:os";
3
+ import * as path from "node:path";
4
+ import { readLlmConfig, resolveApiKeyValue, } from "./llm-config.js";
5
+ import { KUBBISEC_LLM_PROVIDER_ID } from "./llm-provider-catalog.js";
6
+ import { buildKubbisecLlmProviderConfig, } from "./register-kubbisec-llm-provider.js";
7
+ import { toProviderModelConfig } from "./llm-provider-catalog.js";
8
+ /** Matches Pi `getAgentDir()` when runtime is branded (`piConfig.configDir: ".kubbisec"`). */
9
+ export const KUBBISEC_PI_AGENT_CONFIG_DIR = ".kubbisec";
10
+ function expandTildePath(filePath) {
11
+ if (filePath === "~")
12
+ return os.homedir();
13
+ if (filePath.startsWith("~/"))
14
+ return path.join(os.homedir(), filePath.slice(2));
15
+ return filePath;
16
+ }
17
+ export function resolvePiAgentModelsJsonPath() {
18
+ const envDir = process.env.KUBBISEC_CODING_AGENT_DIR?.trim();
19
+ if (envDir) {
20
+ return path.join(expandTildePath(envDir), "models.json");
21
+ }
22
+ return path.join(os.homedir(), KUBBISEC_PI_AGENT_CONFIG_DIR, "agent", "models.json");
23
+ }
24
+ function readPiModelsJson(filePath) {
25
+ try {
26
+ const parsed = JSON.parse(fs.readFileSync(filePath, "utf8"));
27
+ if (parsed &&
28
+ typeof parsed === "object" &&
29
+ !Array.isArray(parsed) &&
30
+ typeof parsed.providers === "object" &&
31
+ parsed.providers !== null) {
32
+ return parsed;
33
+ }
34
+ }
35
+ catch {
36
+ /* missing or invalid */
37
+ }
38
+ return { providers: {} };
39
+ }
40
+ function buildCustomProviderPiEntry(provider) {
41
+ const apiKey = resolveApiKeyValue(provider.apiKey) ??
42
+ (provider.autodetected ? provider.apiKey : undefined);
43
+ return {
44
+ name: provider.name?.trim() || provider.id,
45
+ baseUrl: provider.baseUrl,
46
+ ...(apiKey ? { apiKey } : {}),
47
+ api: provider.api ?? "openai-completions",
48
+ ...(provider.headers && Object.keys(provider.headers).length > 0
49
+ ? { headers: provider.headers }
50
+ : {}),
51
+ models: provider.models.map(toProviderModelConfig),
52
+ };
53
+ }
54
+ /**
55
+ * Pi resolves `--provider` from models.json before extensions load.
56
+ * Materialize KubbiSec (and custom BYOK/local) providers into `~/.kubbisec/agent/models.json`
57
+ * so chat bootstrap can use `defaultProvider` from `.kubbisec/llm.json`.
58
+ */
59
+ export function syncKubbisecProvidersToPiModelsJson(cwd = process.cwd(), options) {
60
+ const kubbisec = buildKubbisecLlmProviderConfig(cwd);
61
+ const customProviders = readLlmConfig(cwd).providers ?? [];
62
+ if (!kubbisec && customProviders.length === 0) {
63
+ return false;
64
+ }
65
+ const filePath = options?.modelsJsonPath ?? resolvePiAgentModelsJsonPath();
66
+ fs.mkdirSync(path.dirname(filePath), { recursive: true, mode: 0o755 });
67
+ const existing = readPiModelsJson(filePath);
68
+ const providers = {
69
+ ...existing.providers,
70
+ };
71
+ if (kubbisec) {
72
+ providers[KUBBISEC_LLM_PROVIDER_ID] = kubbisec;
73
+ }
74
+ for (const provider of customProviders) {
75
+ providers[provider.id] = buildCustomProviderPiEntry(provider);
76
+ }
77
+ fs.writeFileSync(filePath, `${JSON.stringify({ providers }, null, 2)}\n`, { encoding: "utf8", mode: 0o600 });
78
+ return Boolean(kubbisec);
79
+ }
80
+ //# sourceMappingURL=sync-kubbisec-pi-models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-kubbisec-pi-models.js","sourceRoot":"","sources":["../../src/config/sync-kubbisec-pi-models.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Compact CLI index preloaded into kubbisec chat system prompt.
3
+ * Keep in sync with apps/web/.../aspm-commands.md and naus-commands.md.
4
+ */
5
+ export declare const KUBBISEC_CLI_REFERENCE_INDEX = "<cli-reference-index>\nASPM CLI (npm install -g @kubbisec/aspm):\n| Command | Purpose |\n| aspm init | Interactive setup |\n| aspm login | Configure credentials |\n| aspm whoami | Show current config |\n| aspm doctor | Diagnose configuration |\n| aspm scan <file> -s <source> | Local parse only (no API upload) |\n| aspm parse <file> -s <source> | Local dry-run parse |\n| aspm upload <file> -s <source> | Upload security report to API |\n| aspm coverage <file> | Upload coverage (lcov) |\n| aspm parse-coverage <file> | Local coverage parse |\n| aspm projects | List org projects |\n| aspm dashboard | Open web dashboard |\nGlobal flags: -k/--api-key, -o/--org, -p/--project\nEnv: KUBBISEC_API_KEY, KUBBISEC_ORG_ID, KUBBISEC_PROJECT (aliases ASPM_API_URL, ASPM_API_KEY, ASPM_ORG_ID)\nScanners (-s): trivy, gitleaks, syft, osv, semgrep, sonar, nmap, skipfish\nReport files: trivy-report.json, gitleaks-report.json, sbom.json, osv-report.json, semgrep-report.json, sonar-report.json, nmap-report.xml, skipfish-report.json\n\nNAUS CLI (npm install -g @kubbisec/naus):\n| Command | Purpose |\n| naus register [token] [--renew] | Enroll runner (mTLS bootstrap) |\n| naus start | Start runner daemon |\n| naus migrate | Migrate legacy token runner to mTLS |\n| naus validate <file> / naus check <file> | Validate pipeline YAML |\n| naus plan <file> [--format mermaid] | Show dependency waves |\n| naus run <file> | Execute pipeline locally |\n| naus daemon list / naus daemon stop | Background runner sessions |\nDefault pipeline file: .naus.yml\nLocal env: naus run .naus.yml [--env-file .env] [--secret-file .secrets|.secret] (repeatable; defaults .env/.secrets in cwd).\nCloud secrets: Env Packs in KubbiSec UI (not .secrets on remote runner).\nEnv: NAUS_BOOTSTRAP_TOKEN, NAUS_RENEW_RUNNER\n\nNAUS YAML (NOT GitHub Actions): top-level run: (never jobs:); script: + depends_on: (never commands:/needs:); ASPM jobs kind: aspm|aspm_matrix|aspm_gate with tool: (never scanner:).\nFull docs via tools: aspm_docs (section aspm-commands), naus_pipeline_docs (naus-commands, naus-pipeline-overview, naus-aspm-integration).\naspm-cicd.md is GitHub Actions only \u2014 do not use for NAUS pipelines.\n</cli-reference-index>";
6
+ //# sourceMappingURL=cli-reference-index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-reference-index.d.ts","sourceRoot":"","sources":["../../src/copy/cli-reference-index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,4BAA4B,wqEAoClB,CAAC"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Compact CLI index preloaded into kubbisec chat system prompt.
3
+ * Keep in sync with apps/web/.../aspm-commands.md and naus-commands.md.
4
+ */
5
+ export const KUBBISEC_CLI_REFERENCE_INDEX = `<cli-reference-index>
6
+ ASPM CLI (npm install -g @kubbisec/aspm):
7
+ | Command | Purpose |
8
+ | aspm init | Interactive setup |
9
+ | aspm login | Configure credentials |
10
+ | aspm whoami | Show current config |
11
+ | aspm doctor | Diagnose configuration |
12
+ | aspm scan <file> -s <source> | Local parse only (no API upload) |
13
+ | aspm parse <file> -s <source> | Local dry-run parse |
14
+ | aspm upload <file> -s <source> | Upload security report to API |
15
+ | aspm coverage <file> | Upload coverage (lcov) |
16
+ | aspm parse-coverage <file> | Local coverage parse |
17
+ | aspm projects | List org projects |
18
+ | aspm dashboard | Open web dashboard |
19
+ Global flags: -k/--api-key, -o/--org, -p/--project
20
+ Env: KUBBISEC_API_KEY, KUBBISEC_ORG_ID, KUBBISEC_PROJECT (aliases ASPM_API_URL, ASPM_API_KEY, ASPM_ORG_ID)
21
+ Scanners (-s): trivy, gitleaks, syft, osv, semgrep, sonar, nmap, skipfish
22
+ Report files: trivy-report.json, gitleaks-report.json, sbom.json, osv-report.json, semgrep-report.json, sonar-report.json, nmap-report.xml, skipfish-report.json
23
+
24
+ NAUS CLI (npm install -g @kubbisec/naus):
25
+ | Command | Purpose |
26
+ | naus register [token] [--renew] | Enroll runner (mTLS bootstrap) |
27
+ | naus start | Start runner daemon |
28
+ | naus migrate | Migrate legacy token runner to mTLS |
29
+ | naus validate <file> / naus check <file> | Validate pipeline YAML |
30
+ | naus plan <file> [--format mermaid] | Show dependency waves |
31
+ | naus run <file> | Execute pipeline locally |
32
+ | naus daemon list / naus daemon stop | Background runner sessions |
33
+ Default pipeline file: .naus.yml
34
+ Local env: naus run .naus.yml [--env-file .env] [--secret-file .secrets|.secret] (repeatable; defaults .env/.secrets in cwd).
35
+ Cloud secrets: Env Packs in KubbiSec UI (not .secrets on remote runner).
36
+ Env: NAUS_BOOTSTRAP_TOKEN, NAUS_RENEW_RUNNER
37
+
38
+ NAUS YAML (NOT GitHub Actions): top-level run: (never jobs:); script: + depends_on: (never commands:/needs:); ASPM jobs kind: aspm|aspm_matrix|aspm_gate with tool: (never scanner:).
39
+ Full docs via tools: aspm_docs (section aspm-commands), naus_pipeline_docs (naus-commands, naus-pipeline-overview, naus-aspm-integration).
40
+ aspm-cicd.md is GitHub Actions only — do not use for NAUS pipelines.
41
+ </cli-reference-index>`;
42
+ //# sourceMappingURL=cli-reference-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-reference-index.js","sourceRoot":"","sources":["../../src/copy/cli-reference-index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAoCrB,CAAC"}
@@ -1,8 +1,21 @@
1
1
  /** Shared KubbiSec AI TUI copy (CLI extensions). */
2
2
  export declare const KUBBISEC_PRODUCT_NAME = "KubbiSec Assistant";
3
+ export declare const KUBBISEC_SUBTITLE_LINE = "Assistant \u00B7 ASPM Remediation \u00B7 Naus CI \u00B7 Coding";
4
+ export declare const KUBBISEC_COMPACT_HEADER_TAGLINE = "Assistant \u00B7 ASPM Remediation \u00B7 Naus CI \u00B7 Coding";
5
+ export declare const KUBBISEC_WORDMARK = "KUBBISEC";
6
+ export declare const KUBBISEC_EDITOR_LABEL = "Coding";
7
+ export declare const KUBBISEC_EDITOR_PLACEHOLDER = "Ask anything...";
8
+ /** Skill invoke pattern shown in the chat header hints row. */
9
+ export declare const KUBBISEC_HEADER_HINTS_SKILL = "@skill name";
10
+ export declare const KUBBISEC_EXIT_SLASH_COMMAND = "/exit";
11
+ export declare const KUBBISEC_HEADER_HINTS_COMMANDS = "kubbisec fix \u00B7 kubbisec watch \u00B7 kubbisec ls \u00B7 /help \u00B7 /exit";
12
+ /** @deprecated Use KUBBISEC_HEADER_HINTS_SKILL + KUBBISEC_HEADER_HINTS_COMMANDS */
13
+ export declare const KUBBISEC_HEADER_HINTS = "@skill name \u00B7 kubbisec fix \u00B7 kubbisec watch \u00B7 kubbisec ls \u00B7 /help \u00B7 /exit";
14
+ /** @deprecated Verbose TUI only (KUBBISEC_TUI_VERBOSE=1) */
3
15
  export declare const KUBBISEC_RAIL_HINT = "chat \u00B7 org BYOK";
4
16
  export declare const KUBBISEC_PROVIDER_LABEL = "kubbisec";
17
+ /** @deprecated Verbose TUI only */
5
18
  export declare const KUBBISEC_RAIL_LINE = "KubbiSec Assistant \u00B7 chat \u00B7 org BYOK";
6
- export declare const KUBBISEC_HEADER_TAGLINE = "ASPM remediation \u00B7 org BYOK proxy";
7
- export declare const KUBBISEC_HEADER_HINTS = "kubbisec fix \u00B7 kubbisec watch \u00B7 kubbisec ls \u00B7 /help";
19
+ /** @deprecated Verbose TUI only */
20
+ export declare const KUBBISEC_HEADER_TAGLINE = "Assistant \u00B7 ASPM Remediation \u00B7 Naus CI \u00B7 Coding";
8
21
  //# sourceMappingURL=kubbisec-shell-copy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"kubbisec-shell-copy.d.ts","sourceRoot":"","sources":["../../src/copy/kubbisec-shell-copy.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,eAAO,MAAM,qBAAqB,uBAAuB,CAAC;AAC1D,eAAO,MAAM,kBAAkB,yBAAoB,CAAC;AACpD,eAAO,MAAM,uBAAuB,aAAa,CAAC;AAClD,eAAO,MAAM,kBAAkB,mDAAqD,CAAC;AACrF,eAAO,MAAM,uBAAuB,2CAAsC,CAAC;AAC3E,eAAO,MAAM,qBAAqB,uEAAwD,CAAC"}
1
+ {"version":3,"file":"kubbisec-shell-copy.d.ts","sourceRoot":"","sources":["../../src/copy/kubbisec-shell-copy.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,eAAO,MAAM,qBAAqB,uBAAuB,CAAC;AAC1D,eAAO,MAAM,sBAAsB,mEACgB,CAAC;AACpD,eAAO,MAAM,+BAA+B,mEAAyB,CAAC;AACtE,eAAO,MAAM,iBAAiB,aAAa,CAAC;AAC5C,eAAO,MAAM,qBAAqB,WAAW,CAAC;AAC9C,eAAO,MAAM,2BAA2B,oBAAoB,CAAC;AAC7D,+DAA+D;AAC/D,eAAO,MAAM,2BAA2B,gBAAgB,CAAC;AACzD,eAAO,MAAM,2BAA2B,UAAU,CAAC;AACnD,eAAO,MAAM,8BAA8B,oFAC6C,CAAC;AACzF,mFAAmF;AACnF,eAAO,MAAM,qBAAqB,uGAAuE,CAAC;AAC1G,4DAA4D;AAC5D,eAAO,MAAM,kBAAkB,yBAAoB,CAAC;AACpD,eAAO,MAAM,uBAAuB,aAAa,CAAC;AAClD,mCAAmC;AACnC,eAAO,MAAM,kBAAkB,mDAAqD,CAAC;AACrF,mCAAmC;AACnC,eAAO,MAAM,uBAAuB,mEAAyB,CAAC"}
@@ -1,8 +1,21 @@
1
1
  /** Shared KubbiSec AI TUI copy (CLI extensions). */
2
2
  export const KUBBISEC_PRODUCT_NAME = "KubbiSec Assistant";
3
+ export const KUBBISEC_SUBTITLE_LINE = "Assistant · ASPM Remediation · Naus CI · Coding";
4
+ export const KUBBISEC_COMPACT_HEADER_TAGLINE = KUBBISEC_SUBTITLE_LINE;
5
+ export const KUBBISEC_WORDMARK = "KUBBISEC";
6
+ export const KUBBISEC_EDITOR_LABEL = "Coding";
7
+ export const KUBBISEC_EDITOR_PLACEHOLDER = "Ask anything...";
8
+ /** Skill invoke pattern shown in the chat header hints row. */
9
+ export const KUBBISEC_HEADER_HINTS_SKILL = "@skill name";
10
+ export const KUBBISEC_EXIT_SLASH_COMMAND = "/exit";
11
+ export const KUBBISEC_HEADER_HINTS_COMMANDS = `kubbisec fix · kubbisec watch · kubbisec ls · /help · ${KUBBISEC_EXIT_SLASH_COMMAND}`;
12
+ /** @deprecated Use KUBBISEC_HEADER_HINTS_SKILL + KUBBISEC_HEADER_HINTS_COMMANDS */
13
+ export const KUBBISEC_HEADER_HINTS = `${KUBBISEC_HEADER_HINTS_SKILL} · ${KUBBISEC_HEADER_HINTS_COMMANDS}`;
14
+ /** @deprecated Verbose TUI only (KUBBISEC_TUI_VERBOSE=1) */
3
15
  export const KUBBISEC_RAIL_HINT = "chat · org BYOK";
4
16
  export const KUBBISEC_PROVIDER_LABEL = "kubbisec";
17
+ /** @deprecated Verbose TUI only */
5
18
  export const KUBBISEC_RAIL_LINE = `${KUBBISEC_PRODUCT_NAME} · ${KUBBISEC_RAIL_HINT}`;
6
- export const KUBBISEC_HEADER_TAGLINE = "ASPM remediation · org BYOK proxy";
7
- export const KUBBISEC_HEADER_HINTS = "kubbisec fix · kubbisec watch · kubbisec ls · /help";
19
+ /** @deprecated Verbose TUI only */
20
+ export const KUBBISEC_HEADER_TAGLINE = KUBBISEC_SUBTITLE_LINE;
8
21
  //# sourceMappingURL=kubbisec-shell-copy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"kubbisec-shell-copy.js","sourceRoot":"","sources":["../../src/copy/kubbisec-shell-copy.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,MAAM,CAAC,MAAM,qBAAqB,GAAG,oBAAoB,CAAC;AAC1D,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AACpD,MAAM,CAAC,MAAM,uBAAuB,GAAG,UAAU,CAAC;AAClD,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,qBAAqB,MAAM,kBAAkB,EAAE,CAAC;AACrF,MAAM,CAAC,MAAM,uBAAuB,GAAG,mCAAmC,CAAC;AAC3E,MAAM,CAAC,MAAM,qBAAqB,GAAG,qDAAqD,CAAC"}
1
+ {"version":3,"file":"kubbisec-shell-copy.js","sourceRoot":"","sources":["../../src/copy/kubbisec-shell-copy.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,MAAM,CAAC,MAAM,qBAAqB,GAAG,oBAAoB,CAAC;AAC1D,MAAM,CAAC,MAAM,sBAAsB,GACjC,iDAAiD,CAAC;AACpD,MAAM,CAAC,MAAM,+BAA+B,GAAG,sBAAsB,CAAC;AACtE,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAAC;AAC5C,MAAM,CAAC,MAAM,qBAAqB,GAAG,QAAQ,CAAC;AAC9C,MAAM,CAAC,MAAM,2BAA2B,GAAG,iBAAiB,CAAC;AAC7D,+DAA+D;AAC/D,MAAM,CAAC,MAAM,2BAA2B,GAAG,aAAa,CAAC;AACzD,MAAM,CAAC,MAAM,2BAA2B,GAAG,OAAO,CAAC;AACnD,MAAM,CAAC,MAAM,8BAA8B,GACzC,yDAAyD,2BAA2B,EAAE,CAAC;AACzF,mFAAmF;AACnF,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,2BAA2B,MAAM,8BAA8B,EAAE,CAAC;AAC1G,4DAA4D;AAC5D,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AACpD,MAAM,CAAC,MAAM,uBAAuB,GAAG,UAAU,CAAC;AAClD,mCAAmC;AACnC,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,qBAAqB,MAAM,kBAAkB,EAAE,CAAC;AACrF,mCAAmC;AACnC,MAAM,CAAC,MAAM,uBAAuB,GAAG,sBAAsB,CAAC"}
@@ -1,6 +1,16 @@
1
+ export { extendedContextEnabled } from "../config/extended-context.js";
1
2
  export declare const CLI_LOCAL_MAX_OUTPUT_CHARS = 12000;
2
3
  export declare const NAUS_LOCAL_RUN_TIMEOUT_MS: number;
3
- export declare function extendedContextEnabled(): boolean;
4
+ export type ExecCaptureResult = {
5
+ code: number;
6
+ stdout: string;
7
+ stderr: string;
8
+ };
9
+ export type CliToolDetails = {
10
+ ok: boolean;
11
+ exitCode: number;
12
+ userMessage: string;
13
+ };
4
14
  export declare function resolveWorkspace(): string;
5
15
  export declare function truncateCliOutput(text: string, max?: number): string;
6
16
  export declare function denyExtendedContextMessage(): {
@@ -9,18 +19,28 @@ export declare function denyExtendedContextMessage(): {
9
19
  text: string;
10
20
  }>;
11
21
  };
12
- export declare function formatExecResult(bin: string, args: string[], cwd: string, result: {
13
- code: number;
14
- stdout: string;
15
- stderr: string;
16
- }): string;
22
+ /** Full subprocess output for model debug (extended context + debug flag). */
23
+ export declare function formatExecResultForModel(bin: string, args: string[], cwd: string, result: ExecCaptureResult): string;
24
+ /** @deprecated use formatExecResultForModel */
25
+ export declare const formatExecResult: typeof formatExecResultForModel;
26
+ export declare function formatExecResultForUser(bin: string, result: ExecCaptureResult): CliToolDetails;
27
+ export declare function buildCliToolResult(bin: string, args: string[], cwd: string, result: ExecCaptureResult, suffix?: string): {
28
+ content: Array<{
29
+ type: "text";
30
+ text: string;
31
+ }>;
32
+ details: CliToolDetails;
33
+ };
34
+ export declare function cliToolErrorContent(error: unknown): {
35
+ content: Array<{
36
+ type: "text";
37
+ text: string;
38
+ }>;
39
+ details: CliToolDetails;
40
+ };
17
41
  export declare function execCapture(bin: string, args: string[], cwd: string, options?: {
18
42
  signal?: AbortSignal;
19
43
  timeoutMs?: number;
20
- }): Promise<{
21
- code: number;
22
- stdout: string;
23
- stderr: string;
24
- }>;
44
+ }): Promise<ExecCaptureResult>;
25
45
  export declare function resolvePathInWorkspace(relativePath: string, workspace: string): string;
26
46
  //# sourceMappingURL=cli-local-shared.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-local-shared.d.ts","sourceRoot":"","sources":["../../src/extensions/cli-local-shared.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,0BAA0B,QAAS,CAAC;AACjD,eAAO,MAAM,yBAAyB,QAAiB,CAAC;AAExD,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAKzC;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAA6B,GAAG,MAAM,CAGxF;AAED,wBAAgB,0BAA0B,IAAI;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAU/F;AAED,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,EACX,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACvD,MAAM,CAWR;AAED,wBAAgB,WAAW,CACzB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACrD,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAsD3D;AAED,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAOtF"}
1
+ {"version":3,"file":"cli-local-shared.d.ts","sourceRoot":"","sources":["../../src/extensions/cli-local-shared.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,eAAO,MAAM,0BAA0B,QAAS,CAAC;AACjD,eAAO,MAAM,yBAAyB,QAAiB,CAAC;AAExD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAA6B,GAAG,MAAM,CAGxF;AAED,wBAAgB,0BAA0B,IAAI;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAS/F;AAED,8EAA8E;AAC9E,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,iBAAiB,GACxB,MAAM,CAWR;AAED,+CAA+C;AAC/C,eAAO,MAAM,gBAAgB,iCAA2B,CAAC;AAEzD,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,iBAAiB,GACxB,cAAc,CAmBhB;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,iBAAiB,EACzB,MAAM,SAAK,GACV;IACD,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,EAAE,cAAc,CAAC;CACzB,CAQA;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG;IACnD,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,EAAE,cAAc,CAAC;CACzB,CAMA;AAED,wBAAgB,WAAW,CACzB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACrD,OAAO,CAAC,iBAAiB,CAAC,CA8D5B;AAED,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAOtF"}