@mohanscodex/spectra-code 0.4.6 → 0.4.8

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 (292) hide show
  1. package/dist/package.json +1 -1
  2. package/dist/src/agents/definitions.d.ts +2 -2
  3. package/dist/src/agents/definitions.d.ts.map +1 -1
  4. package/dist/src/agents/definitions.js +18 -18
  5. package/dist/src/agents/definitions.js.map +1 -1
  6. package/dist/src/agents/registry.d.ts +1 -1
  7. package/dist/src/agents/registry.d.ts.map +1 -1
  8. package/dist/src/agents/registry.js.map +1 -1
  9. package/dist/src/cli.js +117 -115
  10. package/dist/src/cli.js.map +1 -1
  11. package/dist/src/commands/agent.d.ts +1 -1
  12. package/dist/src/commands/agent.d.ts.map +1 -1
  13. package/dist/src/commands/agent.js +14 -14
  14. package/dist/src/commands/agent.js.map +1 -1
  15. package/dist/src/commands/db.d.ts +1 -1
  16. package/dist/src/commands/db.d.ts.map +1 -1
  17. package/dist/src/commands/db.js +11 -11
  18. package/dist/src/commands/db.js.map +1 -1
  19. package/dist/src/commands/doctor.d.ts.map +1 -1
  20. package/dist/src/commands/doctor.js +33 -30
  21. package/dist/src/commands/doctor.js.map +1 -1
  22. package/dist/src/commands/mcp.d.ts +1 -1
  23. package/dist/src/commands/mcp.d.ts.map +1 -1
  24. package/dist/src/commands/mcp.js +39 -39
  25. package/dist/src/commands/mcp.js.map +1 -1
  26. package/dist/src/commands/plugin.d.ts +1 -1
  27. package/dist/src/commands/plugin.d.ts.map +1 -1
  28. package/dist/src/commands/plugin.js +13 -13
  29. package/dist/src/commands/plugin.js.map +1 -1
  30. package/dist/src/commands/session.d.ts +1 -1
  31. package/dist/src/commands/session.d.ts.map +1 -1
  32. package/dist/src/commands/session.js +12 -12
  33. package/dist/src/commands/session.js.map +1 -1
  34. package/dist/src/index.d.ts +18 -18
  35. package/dist/src/index.d.ts.map +1 -1
  36. package/dist/src/index.js +16 -16
  37. package/dist/src/index.js.map +1 -1
  38. package/dist/src/integrations/acp/index.d.ts +1 -1
  39. package/dist/src/integrations/acp/index.js +1 -1
  40. package/dist/src/integrations/acp/server.d.ts.map +1 -1
  41. package/dist/src/integrations/acp/server.js +89 -79
  42. package/dist/src/integrations/acp/server.js.map +1 -1
  43. package/dist/src/integrations/custom-tools/index.d.ts +2 -2
  44. package/dist/src/integrations/custom-tools/index.js +1 -1
  45. package/dist/src/integrations/custom-tools/loader.d.ts +2 -2
  46. package/dist/src/integrations/custom-tools/loader.d.ts.map +1 -1
  47. package/dist/src/integrations/custom-tools/loader.js +19 -18
  48. package/dist/src/integrations/custom-tools/loader.js.map +1 -1
  49. package/dist/src/integrations/mcp/client.d.ts +5 -5
  50. package/dist/src/integrations/mcp/client.d.ts.map +1 -1
  51. package/dist/src/integrations/mcp/client.js +7 -7
  52. package/dist/src/integrations/mcp/client.js.map +1 -1
  53. package/dist/src/integrations/mcp/index.d.ts +2 -2
  54. package/dist/src/integrations/mcp/index.d.ts.map +1 -1
  55. package/dist/src/integrations/mcp/index.js +1 -1
  56. package/dist/src/integrations/mcp/index.js.map +1 -1
  57. package/dist/src/security/doom-loop.d.ts +1 -1
  58. package/dist/src/security/doom-loop.d.ts.map +1 -1
  59. package/dist/src/security/doom-loop.js +4 -4
  60. package/dist/src/security/doom-loop.js.map +1 -1
  61. package/dist/src/security/index.d.ts +10 -10
  62. package/dist/src/security/index.d.ts.map +1 -1
  63. package/dist/src/security/index.js +116 -69
  64. package/dist/src/security/index.js.map +1 -1
  65. package/dist/src/security/path-safety.d.ts +1 -1
  66. package/dist/src/security/path-safety.d.ts.map +1 -1
  67. package/dist/src/security/path-safety.js +19 -19
  68. package/dist/src/security/path-safety.js.map +1 -1
  69. package/dist/src/security/permissions.d.ts +1 -1
  70. package/dist/src/security/permissions.d.ts.map +1 -1
  71. package/dist/src/security/permissions.js +12 -10
  72. package/dist/src/security/permissions.js.map +1 -1
  73. package/dist/src/security/read-tracker.d.ts +2 -2
  74. package/dist/src/security/read-tracker.d.ts.map +1 -1
  75. package/dist/src/security/read-tracker.js +15 -13
  76. package/dist/src/security/read-tracker.js.map +1 -1
  77. package/dist/src/security/ssrf-guard.d.ts +1 -1
  78. package/dist/src/security/ssrf-guard.d.ts.map +1 -1
  79. package/dist/src/security/ssrf-guard.js +11 -11
  80. package/dist/src/security/ssrf-guard.js.map +1 -1
  81. package/dist/src/security/types.d.ts +4 -4
  82. package/dist/src/security/types.d.ts.map +1 -1
  83. package/dist/src/security/wildcard.d.ts.map +1 -1
  84. package/dist/src/security/wildcard.js +14 -16
  85. package/dist/src/security/wildcard.js.map +1 -1
  86. package/dist/src/services/auth-store.d.ts +3 -3
  87. package/dist/src/services/auth-store.d.ts.map +1 -1
  88. package/dist/src/services/auth-store.js +7 -7
  89. package/dist/src/services/auth-store.js.map +1 -1
  90. package/dist/src/services/config.d.ts +3 -3
  91. package/dist/src/services/config.d.ts.map +1 -1
  92. package/dist/src/services/config.js +17 -21
  93. package/dist/src/services/config.js.map +1 -1
  94. package/dist/src/services/context.d.ts.map +1 -1
  95. package/dist/src/services/context.js +5 -8
  96. package/dist/src/services/context.js.map +1 -1
  97. package/dist/src/services/custom-providers.d.ts +2 -2
  98. package/dist/src/services/custom-providers.d.ts.map +1 -1
  99. package/dist/src/services/custom-providers.js +108 -49
  100. package/dist/src/services/custom-providers.js.map +1 -1
  101. package/dist/src/services/session-store.d.ts +1 -1
  102. package/dist/src/services/session-store.d.ts.map +1 -1
  103. package/dist/src/services/session-store.js +32 -24
  104. package/dist/src/services/session-store.js.map +1 -1
  105. package/dist/src/services/snapshot-manager.d.ts.map +1 -1
  106. package/dist/src/services/snapshot-manager.js +14 -15
  107. package/dist/src/services/snapshot-manager.js.map +1 -1
  108. package/dist/src/tools/edit.d.ts +1 -1
  109. package/dist/src/tools/edit.js +18 -16
  110. package/dist/src/tools/edit.js.map +1 -1
  111. package/dist/src/tools/glob.d.ts +1 -1
  112. package/dist/src/tools/glob.d.ts.map +1 -1
  113. package/dist/src/tools/glob.js +20 -16
  114. package/dist/src/tools/glob.js.map +1 -1
  115. package/dist/src/tools/grep.d.ts +1 -1
  116. package/dist/src/tools/grep.d.ts.map +1 -1
  117. package/dist/src/tools/grep.js +18 -18
  118. package/dist/src/tools/grep.js.map +1 -1
  119. package/dist/src/tools/index.d.ts +4 -4
  120. package/dist/src/tools/index.d.ts.map +1 -1
  121. package/dist/src/tools/index.js +40 -32
  122. package/dist/src/tools/index.js.map +1 -1
  123. package/dist/src/tools/mcp-tool.d.ts +2 -2
  124. package/dist/src/tools/mcp-tool.d.ts.map +1 -1
  125. package/dist/src/tools/mcp-tool.js +28 -25
  126. package/dist/src/tools/mcp-tool.js.map +1 -1
  127. package/dist/src/tools/read.d.ts +1 -1
  128. package/dist/src/tools/read.d.ts.map +1 -1
  129. package/dist/src/tools/read.js +15 -13
  130. package/dist/src/tools/read.js.map +1 -1
  131. package/dist/src/tools/shell.d.ts +1 -1
  132. package/dist/src/tools/shell.d.ts.map +1 -1
  133. package/dist/src/tools/shell.js +75 -66
  134. package/dist/src/tools/shell.js.map +1 -1
  135. package/dist/src/tools/task.d.ts +1 -1
  136. package/dist/src/tools/task.js +22 -22
  137. package/dist/src/tools/task.js.map +1 -1
  138. package/dist/src/tools/types.d.ts +3 -3
  139. package/dist/src/tools/types.d.ts.map +1 -1
  140. package/dist/src/tools/utils.d.ts +1 -1
  141. package/dist/src/tools/utils.js +2 -2
  142. package/dist/src/tools/utils.js.map +1 -1
  143. package/dist/src/tools/web-fetch.d.ts +1 -1
  144. package/dist/src/tools/web-fetch.js +31 -31
  145. package/dist/src/tools/web-fetch.js.map +1 -1
  146. package/dist/src/tools/write.d.ts +1 -1
  147. package/dist/src/tools/write.js +9 -9
  148. package/dist/src/tools/write.js.map +1 -1
  149. package/dist/src/tui/app-constants.d.ts.map +1 -1
  150. package/dist/src/tui/app-constants.js +11 -2
  151. package/dist/src/tui/app-constants.js.map +1 -1
  152. package/dist/src/tui/app.d.ts +1 -1
  153. package/dist/src/tui/app.d.ts.map +1 -1
  154. package/dist/src/tui/app.js +314 -121
  155. package/dist/src/tui/app.js.map +1 -1
  156. package/dist/src/tui/commands.d.ts +14 -14
  157. package/dist/src/tui/commands.d.ts.map +1 -1
  158. package/dist/src/tui/commands.js +242 -49
  159. package/dist/src/tui/commands.js.map +1 -1
  160. package/dist/src/tui/components/chat-area.d.ts +2 -2
  161. package/dist/src/tui/components/chat-area.d.ts.map +1 -1
  162. package/dist/src/tui/components/chat-area.js +5 -5
  163. package/dist/src/tui/components/chat-area.js.map +1 -1
  164. package/dist/src/tui/components/command-palette.d.ts.map +1 -1
  165. package/dist/src/tui/components/command-palette.js +7 -5
  166. package/dist/src/tui/components/command-palette.js.map +1 -1
  167. package/dist/src/tui/components/message.d.ts +2 -2
  168. package/dist/src/tui/components/message.d.ts.map +1 -1
  169. package/dist/src/tui/components/message.js +63 -52
  170. package/dist/src/tui/components/message.js.map +1 -1
  171. package/dist/src/tui/components/slash-autocomplete.d.ts +2 -2
  172. package/dist/src/tui/components/slash-autocomplete.d.ts.map +1 -1
  173. package/dist/src/tui/components/slash-autocomplete.js +6 -8
  174. package/dist/src/tui/components/slash-autocomplete.js.map +1 -1
  175. package/dist/src/tui/components/toast.d.ts +2 -2
  176. package/dist/src/tui/components/toast.d.ts.map +1 -1
  177. package/dist/src/tui/components/toast.js +11 -6
  178. package/dist/src/tui/components/toast.js.map +1 -1
  179. package/dist/src/tui/hooks/use-agent.d.ts +3 -3
  180. package/dist/src/tui/hooks/use-agent.d.ts.map +1 -1
  181. package/dist/src/tui/hooks/use-agent.js +22 -29
  182. package/dist/src/tui/hooks/use-agent.js.map +1 -1
  183. package/dist/src/tui/hooks/use-app-keyboard.d.ts +3 -3
  184. package/dist/src/tui/hooks/use-app-keyboard.d.ts.map +1 -1
  185. package/dist/src/tui/hooks/use-app-keyboard.js +28 -29
  186. package/dist/src/tui/hooks/use-app-keyboard.js.map +1 -1
  187. package/dist/src/tui/hooks/use-chat-submit.d.ts +6 -6
  188. package/dist/src/tui/hooks/use-chat-submit.d.ts.map +1 -1
  189. package/dist/src/tui/hooks/use-chat-submit.js +115 -54
  190. package/dist/src/tui/hooks/use-chat-submit.js.map +1 -1
  191. package/dist/src/tui/hooks/use-permission-queue.d.ts +2 -2
  192. package/dist/src/tui/hooks/use-permission-queue.d.ts.map +1 -1
  193. package/dist/src/tui/hooks/use-permission-queue.js +1 -1
  194. package/dist/src/tui/hooks/use-permission-queue.js.map +1 -1
  195. package/dist/src/tui/hooks/use-revert.d.ts +4 -4
  196. package/dist/src/tui/hooks/use-revert.d.ts.map +1 -1
  197. package/dist/src/tui/hooks/use-revert.js +22 -13
  198. package/dist/src/tui/hooks/use-revert.js.map +1 -1
  199. package/dist/src/tui/index.d.ts.map +1 -1
  200. package/dist/src/tui/index.js +11 -11
  201. package/dist/src/tui/index.js.map +1 -1
  202. package/dist/src/tui/prompt-bar.d.ts +1 -1
  203. package/dist/src/tui/prompt-bar.d.ts.map +1 -1
  204. package/dist/src/tui/prompt-bar.js +45 -16
  205. package/dist/src/tui/prompt-bar.js.map +1 -1
  206. package/dist/src/tui/slash-commands.d.ts +2 -2
  207. package/dist/src/tui/slash-commands.d.ts.map +1 -1
  208. package/dist/src/tui/slash-commands.js +9 -9
  209. package/dist/src/tui/slash-commands.js.map +1 -1
  210. package/dist/src/tui/theme.d.ts +1 -1
  211. package/dist/src/tui/theme.d.ts.map +1 -1
  212. package/dist/src/tui/theme.js +46 -38
  213. package/dist/src/tui/theme.js.map +1 -1
  214. package/dist/src/tui/tips.d.ts.map +1 -1
  215. package/dist/src/tui/tips.js +14 -14
  216. package/dist/src/tui/tips.js.map +1 -1
  217. package/dist/src/tui/types.d.ts +5 -5
  218. package/dist/src/tui/types.d.ts.map +1 -1
  219. package/dist/src/tui/ui/about-dialog.d.ts.map +1 -1
  220. package/dist/src/tui/ui/about-dialog.js +5 -5
  221. package/dist/src/tui/ui/about-dialog.js.map +1 -1
  222. package/dist/src/tui/ui/agent-switcher.d.ts.map +1 -1
  223. package/dist/src/tui/ui/agent-switcher.js +16 -14
  224. package/dist/src/tui/ui/agent-switcher.js.map +1 -1
  225. package/dist/src/tui/ui/debug-dialog.d.ts +1 -1
  226. package/dist/src/tui/ui/debug-dialog.d.ts.map +1 -1
  227. package/dist/src/tui/ui/debug-dialog.js +26 -26
  228. package/dist/src/tui/ui/debug-dialog.js.map +1 -1
  229. package/dist/src/tui/ui/doctor-dialog.d.ts +2 -2
  230. package/dist/src/tui/ui/doctor-dialog.d.ts.map +1 -1
  231. package/dist/src/tui/ui/doctor-dialog.js +10 -8
  232. package/dist/src/tui/ui/doctor-dialog.js.map +1 -1
  233. package/dist/src/tui/ui/manage-providers-dialog.d.ts +1 -1
  234. package/dist/src/tui/ui/manage-providers-dialog.d.ts.map +1 -1
  235. package/dist/src/tui/ui/manage-providers-dialog.js +102 -86
  236. package/dist/src/tui/ui/manage-providers-dialog.js.map +1 -1
  237. package/dist/src/tui/ui/mcp-toggle-dialog.d.ts.map +1 -1
  238. package/dist/src/tui/ui/mcp-toggle-dialog.js +17 -14
  239. package/dist/src/tui/ui/mcp-toggle-dialog.js.map +1 -1
  240. package/dist/src/tui/ui/message-controls.d.ts +1 -1
  241. package/dist/src/tui/ui/message-controls.d.ts.map +1 -1
  242. package/dist/src/tui/ui/message-controls.js +40 -28
  243. package/dist/src/tui/ui/message-controls.js.map +1 -1
  244. package/dist/src/tui/ui/model-switcher.d.ts.map +1 -1
  245. package/dist/src/tui/ui/model-switcher.js +40 -25
  246. package/dist/src/tui/ui/model-switcher.js.map +1 -1
  247. package/dist/src/tui/ui/permission-dialog.d.ts +1 -1
  248. package/dist/src/tui/ui/permission-dialog.d.ts.map +1 -1
  249. package/dist/src/tui/ui/permission-dialog.js +11 -11
  250. package/dist/src/tui/ui/permission-dialog.js.map +1 -1
  251. package/dist/src/tui/ui/provider-dialog.d.ts.map +1 -1
  252. package/dist/src/tui/ui/provider-dialog.js +75 -64
  253. package/dist/src/tui/ui/provider-dialog.js.map +1 -1
  254. package/dist/src/tui/ui/session-list.d.ts +3 -3
  255. package/dist/src/tui/ui/session-list.d.ts.map +1 -1
  256. package/dist/src/tui/ui/session-list.js +44 -32
  257. package/dist/src/tui/ui/session-list.js.map +1 -1
  258. package/dist/src/tui/ui/thinking-effort-dialog.d.ts.map +1 -1
  259. package/dist/src/tui/ui/thinking-effort-dialog.js +19 -19
  260. package/dist/src/tui/ui/thinking-effort-dialog.js.map +1 -1
  261. package/dist/src/tui/ui/update-dialog.d.ts +11 -0
  262. package/dist/src/tui/ui/update-dialog.d.ts.map +1 -0
  263. package/dist/src/tui/ui/update-dialog.js +23 -0
  264. package/dist/src/tui/ui/update-dialog.js.map +1 -0
  265. package/dist/src/tui/utils/model-config.d.ts.map +1 -1
  266. package/dist/src/tui/utils/model-config.js +13 -13
  267. package/dist/src/tui/utils/model-config.js.map +1 -1
  268. package/dist/src/tui/utils/session-messages.d.ts +2 -2
  269. package/dist/src/tui/utils/session-messages.d.ts.map +1 -1
  270. package/dist/src/tui/utils/session-messages.js +35 -22
  271. package/dist/src/tui/utils/session-messages.js.map +1 -1
  272. package/dist/src/tui/utils/update-check.d.ts +2 -0
  273. package/dist/src/tui/utils/update-check.d.ts.map +1 -0
  274. package/dist/src/tui/utils/update-check.js +65 -0
  275. package/dist/src/tui/utils/update-check.js.map +1 -0
  276. package/dist/src/tui/utils/version.d.ts.map +1 -1
  277. package/dist/src/tui/utils/version.js +7 -7
  278. package/dist/src/tui/utils/version.js.map +1 -1
  279. package/dist/src/tui/utils.d.ts +2 -2
  280. package/dist/src/tui/utils.d.ts.map +1 -1
  281. package/dist/src/tui/utils.js +7 -7
  282. package/dist/src/tui/utils.js.map +1 -1
  283. package/dist/src/tui/variant-cycle.d.ts.map +1 -1
  284. package/dist/src/tui/variant-cycle.js +23 -23
  285. package/dist/src/tui/variant-cycle.js.map +1 -1
  286. package/dist/src/utils/paths.d.ts.map +1 -1
  287. package/dist/src/utils/paths.js +25 -25
  288. package/dist/src/utils/paths.js.map +1 -1
  289. package/dist/src/utils/platform.d.ts.map +1 -1
  290. package/dist/src/utils/platform.js +15 -17
  291. package/dist/src/utils/platform.js.map +1 -1
  292. package/package.json +3 -3
@@ -1,5 +1,5 @@
1
- import { existsSync } from "fs";
2
- import { canonicalPath } from "./wildcard.js";
1
+ import { existsSync } from 'fs';
2
+ import { canonicalPath } from './wildcard.js';
3
3
  export class ReadTracker {
4
4
  readPaths = new Set();
5
5
  writtenPaths = new Set();
@@ -7,25 +7,25 @@ export class ReadTracker {
7
7
  mode;
8
8
  exclude;
9
9
  constructor(config) {
10
- this.mode = config?.mode ?? "soft";
10
+ this.mode = config?.mode ?? 'soft';
11
11
  this.exclude = new Set(config?.exclude ?? []);
12
12
  }
13
13
  recordRead(filePath, cwd = process.cwd()) {
14
- if (this.mode === "off")
14
+ if (this.mode === 'off')
15
15
  return;
16
16
  const c = canonicalPath(filePath, cwd);
17
17
  this.readPaths.add(c);
18
18
  this.warnedPaths.delete(c);
19
19
  }
20
20
  recordWrite(filePath, cwd = process.cwd()) {
21
- if (this.mode === "off")
21
+ if (this.mode === 'off')
22
22
  return;
23
23
  const c = canonicalPath(filePath, cwd);
24
24
  this.writtenPaths.add(c);
25
25
  this.readPaths.add(c);
26
26
  }
27
27
  checkWrite(filePath, cwd = process.cwd(), toolName) {
28
- if (this.mode === "off")
28
+ if (this.mode === 'off')
29
29
  return { ok: true };
30
30
  if (toolName && this.exclude.has(toolName))
31
31
  return { ok: true };
@@ -35,15 +35,17 @@ export class ReadTracker {
35
35
  if (this.readPaths.has(c) || this.writtenPaths.has(c))
36
36
  return { ok: true };
37
37
  const displayPath = (() => {
38
- const rel = (() => { try {
39
- return require("path").relative(cwd, c);
40
- }
41
- catch {
42
- return c;
43
- } })();
38
+ const rel = (() => {
39
+ try {
40
+ return require('path').relative(cwd, c);
41
+ }
42
+ catch {
43
+ return c;
44
+ }
45
+ })();
44
46
  return rel || c;
45
47
  })();
46
- if (this.mode === "strict") {
48
+ if (this.mode === 'strict') {
47
49
  return {
48
50
  ok: false,
49
51
  blocked: true,
@@ -1 +1 @@
1
- {"version":3,"file":"read-tracker.js","sourceRoot":"","sources":["../../../src/security/read-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"read-tracker.js","sourceRoot":"","sources":["../../../src/security/read-tracker.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { SsrfResult } from "./types.js";
1
+ import type { SsrfResult } from './types.js';
2
2
  interface SsrfConfig {
3
3
  blockPrivate?: boolean;
4
4
  blockLoopback?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"ssrf-guard.d.ts","sourceRoot":"","sources":["../../../src/security/ssrf-guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAI5C,UAAU,UAAU;IAClB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAa;IACjC,eAAe,EAAE,OAAO,CAAA;gBAEZ,MAAM,CAAC,EAAE,UAAU;IAO/B,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;IAiCjC,OAAO,CAAC,UAAU;IAgBlB,OAAO,CAAC,SAAS;CAuBlB"}
1
+ {"version":3,"file":"ssrf-guard.d.ts","sourceRoot":"","sources":["../../../src/security/ssrf-guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,UAAU,UAAU;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,qBAAa,SAAS;IACrB,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,YAAY,CAAc;IAClC,eAAe,EAAE,OAAO,CAAC;gBAEb,MAAM,CAAC,EAAE,UAAU;IAO/B,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;IAiCjC,OAAO,CAAC,UAAU;IAkBlB,OAAO,CAAC,SAAS;CAuBjB"}
@@ -1,5 +1,5 @@
1
- import { isIP } from "net";
2
- import { URL } from "url";
1
+ import { isIP } from 'net';
2
+ import { URL } from 'url';
3
3
  export class SsrfGuard {
4
4
  blockPrivate;
5
5
  blockLoopback;
@@ -17,7 +17,7 @@ export class SsrfGuard {
17
17
  try {
18
18
  const url = new URL(rawUrl);
19
19
  hostname = url.hostname;
20
- port = parseInt(url.port) || (url.protocol === "https:" ? 443 : 80);
20
+ port = parseInt(url.port) || (url.protocol === 'https:' ? 443 : 80);
21
21
  }
22
22
  catch {
23
23
  return { ok: false, reason: `Invalid URL: ${rawUrl}` };
@@ -42,15 +42,15 @@ export class SsrfGuard {
42
42
  isLoopback(hostname) {
43
43
  if (!this.blockLoopback)
44
44
  return false;
45
- if (hostname === "localhost" || hostname === "localhost.localdomain")
45
+ if (hostname === 'localhost' || hostname === 'localhost.localdomain')
46
46
  return true;
47
- if (hostname === "::1" || hostname === "::")
47
+ if (hostname === '::1' || hostname === '::')
48
48
  return true;
49
- if (hostname.startsWith("127.")) {
49
+ if (hostname.startsWith('127.')) {
50
50
  try {
51
51
  const type = isIP(hostname);
52
52
  if (type === 4) {
53
- const octets = hostname.split(".").map(Number);
53
+ const octets = hostname.split('.').map(Number);
54
54
  return octets.length === 4 && octets[0] === 127;
55
55
  }
56
56
  }
@@ -64,7 +64,7 @@ export class SsrfGuard {
64
64
  try {
65
65
  const type = isIP(hostname);
66
66
  if (type === 4) {
67
- const octets = hostname.split(".").map(Number);
67
+ const octets = hostname.split('.').map(Number);
68
68
  if (octets.length !== 4)
69
69
  return false;
70
70
  if (octets[0] === 10)
@@ -82,11 +82,11 @@ export class SsrfGuard {
82
82
  return false;
83
83
  }
84
84
  if (type === 6) {
85
- if (hostname === "::1" || hostname === "::")
85
+ if (hostname === '::1' || hostname === '::')
86
86
  return true;
87
- if (hostname.startsWith("fe80:"))
87
+ if (hostname.startsWith('fe80:'))
88
88
  return true;
89
- if (hostname.startsWith("fc") || hostname.startsWith("fd"))
89
+ if (hostname.startsWith('fc') || hostname.startsWith('fd'))
90
90
  return true;
91
91
  return false;
92
92
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ssrf-guard.js","sourceRoot":"","sources":["../../../src/security/ssrf-guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ssrf-guard.js","sourceRoot":"","sources":["../../../src/security/ssrf-guard.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export type PermissionAction = "allow" | "ask" | "deny";
1
+ export type PermissionAction = 'allow' | 'ask' | 'deny';
2
2
  export interface Rule {
3
3
  permission: string;
4
4
  pattern: string;
@@ -14,7 +14,7 @@ export interface PermissionRequest {
14
14
  always?: string[];
15
15
  }
16
16
  export interface PermissionResponse {
17
- action: "once" | "always" | "deny";
17
+ action: 'once' | 'always' | 'deny';
18
18
  }
19
19
  export type WriteGuardResult = {
20
20
  ok: true;
@@ -28,7 +28,7 @@ export type DoomLoopResult = {
28
28
  ok: true;
29
29
  } | {
30
30
  ok: false;
31
- action: "warn" | "stop";
31
+ action: 'warn' | 'stop';
32
32
  message: string;
33
33
  };
34
34
  export type PathSafetyResult = {
@@ -50,7 +50,7 @@ export interface ToolCapabilities {
50
50
  writes: boolean;
51
51
  }
52
52
  export interface SecurityConfig {
53
- writeGuard?: "soft" | "strict" | "off";
53
+ writeGuard?: 'soft' | 'strict' | 'off';
54
54
  writeGuardExclude?: string[];
55
55
  blockedPaths?: string[];
56
56
  allowedPaths?: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/security/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;AAEvD,MAAM,WAAW,IAAI;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,gBAAgB,CAAA;CACzB;AAED,MAAM,MAAM,OAAO,GAAG,IAAI,EAAE,CAAA;AAE5B,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAA;CACnC;AAED,MAAM,MAAM,gBAAgB,GACxB;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AAEvE,MAAM,MAAM,cAAc,GACtB;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAE3D,MAAM,MAAM,gBAAgB,GACxB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAEjC,MAAM,MAAM,UAAU,GAClB;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAEjC,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAA;IACtC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC5B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,IAAI,CAAC,EAAE;QACL,YAAY,CAAC,EAAE,OAAO,CAAA;QACtB,aAAa,CAAC,EAAE,OAAO,CAAA;QACvB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;QACvB,eAAe,CAAC,EAAE,OAAO,CAAA;KAC1B,CAAA;IACD,QAAQ,CAAC,EAAE;QACT,oBAAoB,CAAC,EAAE,MAAM,CAAA;QAC7B,uBAAuB,CAAC,EAAE,MAAM,CAAA;QAChC,oBAAoB,CAAC,EAAE,MAAM,CAAA;KAC9B,CAAA;CACF;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/security/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;AAExD,MAAM,WAAW,IAAI;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,gBAAgB,CAAC;CACzB;AAED,MAAM,MAAM,OAAO,GAAG,IAAI,EAAE,CAAC;AAE7B,MAAM,WAAW,iBAAiB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IAClC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;CACnC;AAED,MAAM,MAAM,gBAAgB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAElH,MAAM,MAAM,cAAc,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpG,MAAM,MAAM,gBAAgB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvH,MAAM,MAAM,UAAU,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtE,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC9B,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACvC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,IAAI,CAAC,EAAE;QACN,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,eAAe,CAAC,EAAE,OAAO,CAAC;KAC1B,CAAC;IACF,QAAQ,CAAC,EAAE;QACV,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,oBAAoB,CAAC,EAAE,MAAM,CAAC;KAC9B,CAAC;CACF;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"wildcard.d.ts","sourceRoot":"","sources":["../../../src/security/wildcard.ts"],"names":[],"mappings":"AAOA,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAuBrE;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAc3E;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD"}
1
+ {"version":3,"file":"wildcard.d.ts","sourceRoot":"","sources":["../../../src/security/wildcard.ts"],"names":[],"mappings":"AAOA,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAuBrE;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAU3E;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD"}
@@ -1,26 +1,26 @@
1
- import { homedir } from "os";
2
- import { resolve, relative, normalize, sep } from "path";
1
+ import { homedir } from 'os';
2
+ import { resolve, relative, normalize, sep } from 'path';
3
3
  function escapeRegex(pattern) {
4
- return pattern.replace(/[.+^${}()|[\]\\]/g, "\\$&");
4
+ return pattern.replace(/[.+^${}()|[\]\\]/g, '\\$&');
5
5
  }
6
6
  export function matchWildcard(pattern, value) {
7
7
  let pat = pattern.replace(/^~\//, homedir());
8
8
  const parts = pat.split(/(\*|\?)/g);
9
- let regex = "";
9
+ let regex = '';
10
10
  for (const part of parts) {
11
- if (part === "*") {
12
- regex += ".*";
11
+ if (part === '*') {
12
+ regex += '.*';
13
13
  }
14
- else if (part === "?") {
15
- regex += ".";
14
+ else if (part === '?') {
15
+ regex += '.';
16
16
  }
17
17
  else {
18
18
  regex += escapeRegex(part);
19
19
  }
20
20
  }
21
- regex = "^" + regex + "$";
21
+ regex = '^' + regex + '$';
22
22
  try {
23
- const re = new RegExp(regex, process.platform === "win32" ? "i" : "");
23
+ const re = new RegExp(regex, process.platform === 'win32' ? 'i' : '');
24
24
  return re.test(value);
25
25
  }
26
26
  catch {
@@ -30,14 +30,12 @@ export function matchWildcard(pattern, value) {
30
30
  export function isInsideWorkingDir(targetPath, cwd) {
31
31
  const abs = resolve(cwd, targetPath);
32
32
  const rel = relative(cwd, abs);
33
- if (rel.startsWith(".."))
33
+ if (rel.startsWith('..'))
34
34
  return false;
35
- if (process.platform === "win32") {
35
+ if (process.platform === 'win32') {
36
36
  const absLower = abs.toLowerCase();
37
37
  const cwdLower = resolve(cwd).toLowerCase();
38
- return (absLower.startsWith(cwdLower + "\\") ||
39
- absLower.startsWith(cwdLower + "/") ||
40
- absLower === cwdLower);
38
+ return absLower.startsWith(cwdLower + '\\') || absLower.startsWith(cwdLower + '/') || absLower === cwdLower;
41
39
  }
42
40
  return true;
43
41
  }
@@ -45,6 +43,6 @@ export function canonicalPath(raw, cwd) {
45
43
  return normalize(resolve(cwd, raw));
46
44
  }
47
45
  export function ensureDirGlob(rawPath) {
48
- return rawPath + sep + "**";
46
+ return rawPath + sep + '**';
49
47
  }
50
48
  //# sourceMappingURL=wildcard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wildcard.js","sourceRoot":"","sources":["../../../src/security/wildcard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AAC5B,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAExD,SAAS,WAAW,CAAC,OAAe;IAClC,OAAO,OAAO,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAA;AACrD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,KAAa;IAC1D,IAAI,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;IAE5C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IACnC,IAAI,KAAK,GAAG,EAAE,CAAA;IACd,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,KAAK,IAAI,IAAI,CAAA;QACf,CAAC;aAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACxB,KAAK,IAAI,GAAG,CAAA;QACd,CAAC;aAAM,CAAC;YACN,KAAK,IAAI,WAAW,CAAC,IAAI,CAAC,CAAA;QAC5B,CAAC;IACH,CAAC;IAED,KAAK,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,CAAA;IAEzB,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QACrE,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,UAAkB,EAAE,GAAW;IAChE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;IACpC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAC9B,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAA;IACtC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;QAClC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;QAC3C,OAAO,CACL,QAAQ,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;YACpC,QAAQ,CAAC,UAAU,CAAC,QAAQ,GAAG,GAAG,CAAC;YACnC,QAAQ,KAAK,QAAQ,CACtB,CAAA;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAW,EAAE,GAAW;IACpD,OAAO,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;AACrC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,OAAO,OAAO,GAAG,GAAG,GAAG,IAAI,CAAA;AAC7B,CAAC"}
1
+ {"version":3,"file":"wildcard.js","sourceRoot":"","sources":["../../../src/security/wildcard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAEzD,SAAS,WAAW,CAAC,OAAe;IACnC,OAAO,OAAO,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,KAAa;IAC3D,IAAI,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAE7C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACpC,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YAClB,KAAK,IAAI,IAAI,CAAC;QACf,CAAC;aAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACzB,KAAK,IAAI,GAAG,CAAC;QACd,CAAC;aAAM,CAAC;YACP,KAAK,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;IACF,CAAC;IAED,KAAK,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC;IAE1B,IAAI,CAAC;QACJ,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACtE,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,UAAkB,EAAE,GAAW;IACjE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACrC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC/B,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5C,OAAO,QAAQ,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI,QAAQ,KAAK,QAAQ,CAAC;IAC7G,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAW,EAAE,GAAW;IACrD,OAAO,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAe;IAC5C,OAAO,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC;AAC7B,CAAC"}
@@ -1,10 +1,10 @@
1
1
  export interface ApiCredential {
2
- type: "api";
2
+ type: 'api';
3
3
  key: string;
4
4
  metadata?: Record<string, string>;
5
5
  }
6
6
  export interface OauthCredential {
7
- type: "oauth";
7
+ type: 'oauth';
8
8
  refresh: string;
9
9
  access: string;
10
10
  expires: number;
@@ -12,7 +12,7 @@ export interface OauthCredential {
12
12
  enterpriseUrl?: string;
13
13
  }
14
14
  export interface WellKnownCredential {
15
- type: "wellknown";
15
+ type: 'wellknown';
16
16
  key: string;
17
17
  token: string;
18
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"auth-store.d.ts","sourceRoot":"","sources":["../../../src/services/auth-store.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,KAAK,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,WAAW,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,eAAe,GAAG,mBAAmB,CAAA;AAW9E,wBAAgB,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAOpD;AAED,wBAAgB,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAE/D;AAED,wBAAgB,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,CAMtE;AAED,wBAAgB,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAK/C;AAED,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAExC"}
1
+ {"version":3,"file":"auth-store.d.ts","sourceRoot":"","sources":["../../../src/services/auth-store.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,KAAK,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,WAAW,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,eAAe,GAAG,mBAAmB,CAAC;AAW/E,wBAAgB,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAOpD;AAED,wBAAgB,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAE/D;AAED,wBAAgB,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,CAMtE;AAED,wBAAgB,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAK/C;AAED,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAExC"}
@@ -1,8 +1,8 @@
1
- import { readFileSync, writeFileSync, existsSync, mkdirSync } from "fs";
2
- import { join } from "path";
3
- import { getGlobalDataDir } from "../utils/paths.js";
1
+ import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'fs';
2
+ import { join } from 'path';
3
+ import { getGlobalDataDir } from '../utils/paths.js';
4
4
  function authFilePath() {
5
- return join(getGlobalDataDir(), "auth.json");
5
+ return join(getGlobalDataDir(), 'auth.json');
6
6
  }
7
7
  function ensureDataDir() {
8
8
  const dir = getGlobalDataDir();
@@ -12,7 +12,7 @@ function ensureDataDir() {
12
12
  export function readAll() {
13
13
  const file = authFilePath();
14
14
  try {
15
- return JSON.parse(readFileSync(file, "utf-8"));
15
+ return JSON.parse(readFileSync(file, 'utf-8'));
16
16
  }
17
17
  catch {
18
18
  return {};
@@ -26,13 +26,13 @@ export function write(providerId, credential) {
26
26
  const file = authFilePath();
27
27
  const data = readAll();
28
28
  data[providerId] = credential;
29
- writeFileSync(file, JSON.stringify(data, null, 2), { mode: 0o600, encoding: "utf-8" });
29
+ writeFileSync(file, JSON.stringify(data, null, 2), { mode: 0o600, encoding: 'utf-8' });
30
30
  }
31
31
  export function remove(providerId) {
32
32
  const file = authFilePath();
33
33
  const data = readAll();
34
34
  delete data[providerId];
35
- writeFileSync(file, JSON.stringify(data, null, 2), { mode: 0o600, encoding: "utf-8" });
35
+ writeFileSync(file, JSON.stringify(data, null, 2), { mode: 0o600, encoding: 'utf-8' });
36
36
  }
37
37
  export function listConnected() {
38
38
  return Object.keys(readAll());
@@ -1 +1 @@
1
- {"version":3,"file":"auth-store.js","sourceRoot":"","sources":["../../../src/services/auth-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAA;AACvE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AA4BpD,SAAS,YAAY;IACnB,OAAO,IAAI,CAAC,gBAAgB,EAAE,EAAE,WAAW,CAAC,CAAA;AAC9C,CAAC;AAED,SAAS,aAAa;IACpB,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAA;IAC9B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;AAC3D,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,MAAM,IAAI,GAAG,YAAY,EAAE,CAAA;IAC3B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,UAAkB;IACrC,OAAO,OAAO,EAAE,CAAC,UAAU,CAAC,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,UAAkB,EAAE,UAAsB;IAC9D,aAAa,EAAE,CAAA;IACf,MAAM,IAAI,GAAG,YAAY,EAAE,CAAA;IAC3B,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IACtB,IAAI,CAAC,UAAU,CAAC,GAAG,UAAU,CAAA;IAC7B,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAA;AACxF,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,UAAkB;IACvC,MAAM,IAAI,GAAG,YAAY,EAAE,CAAA;IAC3B,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IACtB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAA;IACvB,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAA;AACxF,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;AAC/B,CAAC"}
1
+ {"version":3,"file":"auth-store.js","sourceRoot":"","sources":["../../../src/services/auth-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AA4BrD,SAAS,YAAY;IACpB,OAAO,IAAI,CAAC,gBAAgB,EAAE,EAAE,WAAW,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,aAAa;IACrB,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;IAC/B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,OAAO;IACtB,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;IAC5B,IAAI,CAAC;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,EAAE,CAAC;IACX,CAAC;AACF,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,UAAkB;IACtC,OAAO,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,UAAkB,EAAE,UAAsB;IAC/D,aAAa,EAAE,CAAC;IAChB,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,IAAI,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;IAC9B,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,UAAkB;IACxC,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC;IACxB,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,UAAU,aAAa;IAC5B,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AAC/B,CAAC"}
@@ -10,7 +10,7 @@ export interface CustomProviderConfig {
10
10
  }>;
11
11
  enabled?: boolean;
12
12
  }
13
- import type { PermissionConfig, SecurityConfig } from "../security/types.js";
13
+ import type { PermissionConfig, SecurityConfig } from '../security/types.js';
14
14
  export interface SpectraConfig {
15
15
  model?: string;
16
16
  smallModel?: string;
@@ -18,14 +18,14 @@ export interface SpectraConfig {
18
18
  apiKey?: string;
19
19
  agent?: string;
20
20
  agents?: Record<string, AgentConfig>;
21
- theme?: "dark" | "light";
21
+ theme?: 'dark' | 'light';
22
22
  mcp?: McpConfig[];
23
23
  plugins?: PluginConfig[];
24
24
  permission?: PermissionConfig;
25
25
  security?: SecurityConfig;
26
26
  permissions?: PermissionRule[];
27
27
  shell?: string;
28
- logLevel?: "debug" | "info" | "warn" | "error";
28
+ logLevel?: 'debug' | 'info' | 'warn' | 'error';
29
29
  providers?: Record<string, CustomProviderConfig>;
30
30
  }
31
31
  export interface AgentConfig {
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/services/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/services/config.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,7 @@
1
- import { existsSync, readFileSync, mkdirSync, writeFileSync } from "fs";
2
- import { join } from "path";
3
- import { getGlobalConfigDir, discoverConfigDirs } from "../utils/paths.js";
4
- const configFiles = [
5
- "spectra.json",
6
- "spectra.jsonc",
7
- "config.json",
8
- "opencode.json",
9
- "opencode.jsonc",
10
- ];
1
+ import { existsSync, readFileSync, mkdirSync, writeFileSync } from 'fs';
2
+ import { join } from 'path';
3
+ import { getGlobalConfigDir, discoverConfigDirs } from '../utils/paths.js';
4
+ const configFiles = ['spectra.json', 'spectra.jsonc', 'config.json', 'opencode.json', 'opencode.jsonc'];
11
5
  export function loadConfig(cwd) {
12
6
  const cfg = {};
13
7
  const envConfig = process.env.SPECTRA_CONFIG;
@@ -25,7 +19,7 @@ export function loadConfig(cwd) {
25
19
  const filePath = join(dirPath, name);
26
20
  if (existsSync(filePath)) {
27
21
  try {
28
- const content = readFileSync(filePath, "utf-8");
22
+ const content = readFileSync(filePath, 'utf-8');
29
23
  const parsed = JSON.parse(stripJsonc(content));
30
24
  Object.assign(cfg, parsed);
31
25
  }
@@ -34,12 +28,12 @@ export function loadConfig(cwd) {
34
28
  }
35
29
  }
36
30
  const globalDir = getGlobalConfigDir();
37
- if (!dirs.some(d => d.path === globalDir)) {
31
+ if (!dirs.some((d) => d.path === globalDir)) {
38
32
  for (const name of configFiles) {
39
33
  const filePath = join(globalDir, name);
40
34
  if (existsSync(filePath)) {
41
35
  try {
42
- const content = readFileSync(filePath, "utf-8");
36
+ const content = readFileSync(filePath, 'utf-8');
43
37
  const parsed = JSON.parse(stripJsonc(content));
44
38
  Object.assign(cfg, parsed);
45
39
  }
@@ -59,25 +53,27 @@ export function loadConfig(cwd) {
59
53
  return cfg;
60
54
  }
61
55
  export function saveConfig(cfg, filePath) {
62
- const target = filePath || join(getGlobalConfigDir(), "spectra.json");
63
- const dir = target.substring(0, target.lastIndexOf("/") > 0
64
- ? Math.max(target.lastIndexOf("/"), target.lastIndexOf("\\"))
65
- : target.lastIndexOf("\\") > 0 ? target.lastIndexOf("\\") : 0);
56
+ const target = filePath || join(getGlobalConfigDir(), 'spectra.json');
57
+ const dir = target.substring(0, target.lastIndexOf('/') > 0
58
+ ? Math.max(target.lastIndexOf('/'), target.lastIndexOf('\\'))
59
+ : target.lastIndexOf('\\') > 0
60
+ ? target.lastIndexOf('\\')
61
+ : 0);
66
62
  if (!existsSync(dir)) {
67
63
  mkdirSync(dir, { recursive: true });
68
64
  }
69
65
  writeFileSync(target, JSON.stringify(cfg, null, 2));
70
66
  }
71
67
  export function getEffectiveModel(cfg) {
72
- return cfg.model || "anthropic/claude-sonnet-4-20250514";
68
+ return cfg.model || 'anthropic/claude-sonnet-4-20250514';
73
69
  }
74
70
  export function getEffectiveProvider(cfg) {
75
- return cfg.provider || cfg.model?.split("/")[0] || "anthropic";
71
+ return cfg.provider || cfg.model?.split('/')[0] || 'anthropic';
76
72
  }
77
73
  function stripJsonc(text) {
78
74
  return text
79
- .replace(/\/\/.*$/gm, "")
80
- .replace(/\/\*[\s\S]*?\*\//g, "")
75
+ .replace(/\/\/.*$/gm, '')
76
+ .replace(/\/\*[\s\S]*?\*\//g, '')
81
77
  .trim();
82
78
  }
83
79
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/services/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/services/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAsB,MAAM,mBAAmB,CAAC;AAmE/F,MAAM,WAAW,GAAG,CAAC,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC;AAExG,MAAM,UAAU,UAAU,CAAC,GAAY;IACtC,MAAM,GAAG,GAAkB,EAAE,CAAC;IAE9B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAC7C,IAAI,SAAS,EAAE,CAAC;QACf,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACrC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACX,CAAC;IAED,MAAM,UAAU,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAE5C,KAAK,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC;QACtC,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACrC,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC;oBACJ,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBAChD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;oBAC/C,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBAC5B,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YACX,CAAC;QACF,CAAC;IACF,CAAC;IAED,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;IACvC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,CAAC;QAC7C,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACvC,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC;oBACJ,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBAChD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;oBAC/C,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBAC5B,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YACX,CAAC;QACF,CAAC;IACF,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACjD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAE1G,IAAI,WAAW,IAAI,CAAC,GAAG,CAAC,QAAQ;QAAE,GAAG,CAAC,QAAQ,GAAG,WAAW,CAAC;IAC7D,IAAI,QAAQ,IAAI,CAAC,GAAG,CAAC,KAAK;QAAE,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC;IACjD,IAAI,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM;QAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;IAE/C,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAkB,EAAE,QAAiB;IAC/D,MAAM,MAAM,GAAG,QAAQ,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE,cAAc,CAAC,CAAC;IACtE,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAC3B,CAAC,EACD,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;QAC1B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC7D,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;YAC7B,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;YAC1B,CAAC,CAAC,CAAC,CACL,CAAC;IACF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACtB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC;IACD,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAkB;IACnD,OAAO,GAAG,CAAC,KAAK,IAAI,oCAAoC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAkB;IACtD,OAAO,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;AAChE,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC/B,OAAO,IAAI;SACT,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;SACxB,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;SAChC,IAAI,EAAE,CAAC;AACV,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/services/context.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,wBAAgB,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,aAAa,CAqBvD"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/services/context.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,wBAAgB,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,aAAa,CAkBvD"}
@@ -1,6 +1,6 @@
1
- import { readFileSync } from "fs";
2
- import { discoverInstructionFiles } from "../utils/paths.js";
3
- import { getSystemPrompt } from "../utils/platform.js";
1
+ import { readFileSync } from 'fs';
2
+ import { discoverInstructionFiles } from '../utils/paths.js';
3
+ import { getSystemPrompt } from '../utils/platform.js';
4
4
  export function loadContext(cwd) {
5
5
  const projectDir = cwd || process.cwd();
6
6
  const instructionFiles = discoverInstructionFiles(projectDir);
@@ -8,16 +8,13 @@ export function loadContext(cwd) {
8
8
  const files = [];
9
9
  for (const file of instructionFiles) {
10
10
  try {
11
- const content = readFileSync(file, "utf-8");
11
+ const content = readFileSync(file, 'utf-8');
12
12
  instructions.push(content.trim());
13
13
  files.push(file);
14
14
  }
15
15
  catch { }
16
16
  }
17
- const systemPrompt = [
18
- getSystemPrompt(),
19
- ...instructions,
20
- ].join("\n\n");
17
+ const systemPrompt = [getSystemPrompt(), ...instructions].join('\n\n');
21
18
  return { systemPrompt, instructions, files };
22
19
  }
23
20
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/services/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAQvD,MAAM,UAAU,WAAW,CAAC,GAAY;IACtC,MAAM,UAAU,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACxC,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC;IAE9D,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC5C,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC,CAAC,CAAC;IACb,CAAC;IAED,MAAM,YAAY,GAAG;QACnB,eAAe,EAAE;QACjB,GAAG,YAAY;KAChB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEf,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/services/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAQvD,MAAM,UAAU,WAAW,CAAC,GAAY;IACvC,MAAM,UAAU,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACxC,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC;IAE9D,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC;QACrC,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC5C,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACX,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,eAAe,EAAE,EAAE,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEvE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;AAC9C,CAAC"}
@@ -1,5 +1,5 @@
1
- import { type Provider } from "@mohanscodex/spectra-ai";
2
- import type { CustomProviderConfig } from "./config.js";
1
+ import { type Provider } from '@mohanscodex/spectra-ai';
2
+ import type { CustomProviderConfig } from './config.js';
3
3
  export declare function registerCustomProvider(id: string, config: CustomProviderConfig): Provider;
4
4
  export declare function registerAllCustomProviders(configs: Record<string, CustomProviderConfig>): string[];
5
5
  //# sourceMappingURL=custom-providers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"custom-providers.d.ts","sourceRoot":"","sources":["../../../src/services/custom-providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,QAAQ,EAA6E,MAAM,yBAAyB,CAAA;AACpJ,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAoCvD,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,GAAG,QAAQ,CA8KzF;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,GAAG,MAAM,EAAE,CAQlG"}
1
+ {"version":3,"file":"custom-providers.d.ts","sourceRoot":"","sources":["../../../src/services/custom-providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,QAAQ,EAKb,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AA8CxD,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,GAAG,QAAQ,CAwOzF;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,GAAG,MAAM,EAAE,CAQlG"}