xibecode 1.0.3 → 1.0.6

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 (268) hide show
  1. package/dist/commands/chat.d.ts.map +1 -1
  2. package/dist/commands/chat.js +10 -7
  3. package/dist/commands/chat.js.map +1 -1
  4. package/dist/commands/diagnostics.js +1 -1
  5. package/dist/commands/diagnostics.js.map +1 -1
  6. package/dist/commands/mcp.js +1 -1
  7. package/dist/commands/mcp.js.map +1 -1
  8. package/dist/commands/resume.js +1 -1
  9. package/dist/commands/resume.js.map +1 -1
  10. package/dist/commands/run-pr.d.ts.map +1 -1
  11. package/dist/commands/run-pr.js +10 -9
  12. package/dist/commands/run-pr.js.map +1 -1
  13. package/dist/commands/run.d.ts.map +1 -1
  14. package/dist/commands/run.js +14 -13
  15. package/dist/commands/run.js.map +1 -1
  16. package/dist/commands/skills.d.ts.map +1 -1
  17. package/dist/commands/skills.js +3 -2
  18. package/dist/commands/skills.js.map +1 -1
  19. package/dist/components/AssistantMarkdown.js +1 -1
  20. package/dist/components/AssistantMarkdown.js.map +1 -1
  21. package/dist/ui/claude-style-chat.d.ts.map +1 -1
  22. package/dist/ui/claude-style-chat.js +12 -10
  23. package/dist/ui/claude-style-chat.js.map +1 -1
  24. package/dist/utils/built-in-skills-dir.d.ts +7 -0
  25. package/dist/utils/built-in-skills-dir.d.ts.map +1 -0
  26. package/dist/utils/built-in-skills-dir.js +11 -0
  27. package/dist/utils/built-in-skills-dir.js.map +1 -0
  28. package/dist/utils/config.d.ts +2 -119
  29. package/dist/utils/config.d.ts.map +1 -1
  30. package/dist/utils/config.js +3 -88
  31. package/dist/utils/config.js.map +1 -1
  32. package/package.json +11 -17
  33. package/dist/commands/punycode.d.ts +0 -5
  34. package/dist/commands/punycode.d.ts.map +0 -1
  35. package/dist/commands/punycode.js +0 -48
  36. package/dist/commands/punycode.js.map +0 -1
  37. package/dist/commands/tui.d.ts +0 -9
  38. package/dist/commands/tui.d.ts.map +0 -1
  39. package/dist/commands/tui.js +0 -83
  40. package/dist/commands/tui.js.map +0 -1
  41. package/dist/core/agent-tool-policies.d.ts +0 -5
  42. package/dist/core/agent-tool-policies.d.ts.map +0 -1
  43. package/dist/core/agent-tool-policies.js +0 -18
  44. package/dist/core/agent-tool-policies.js.map +0 -1
  45. package/dist/core/agent.d.ts +0 -181
  46. package/dist/core/agent.d.ts.map +0 -1
  47. package/dist/core/agent.js +0 -1777
  48. package/dist/core/agent.js.map +0 -1
  49. package/dist/core/background-agent.d.ts +0 -23
  50. package/dist/core/background-agent.d.ts.map +0 -1
  51. package/dist/core/background-agent.js +0 -175
  52. package/dist/core/background-agent.js.map +0 -1
  53. package/dist/core/code-graph.d.ts +0 -18
  54. package/dist/core/code-graph.d.ts.map +0 -1
  55. package/dist/core/code-graph.js +0 -105
  56. package/dist/core/code-graph.js.map +0 -1
  57. package/dist/core/conflict-solver.d.ts +0 -26
  58. package/dist/core/conflict-solver.d.ts.map +0 -1
  59. package/dist/core/conflict-solver.js +0 -108
  60. package/dist/core/conflict-solver.js.map +0 -1
  61. package/dist/core/context-compactor.d.ts +0 -10
  62. package/dist/core/context-compactor.d.ts.map +0 -1
  63. package/dist/core/context-compactor.js +0 -158
  64. package/dist/core/context-compactor.js.map +0 -1
  65. package/dist/core/context-pruner.d.ts +0 -19
  66. package/dist/core/context-pruner.d.ts.map +0 -1
  67. package/dist/core/context-pruner.js +0 -103
  68. package/dist/core/context-pruner.js.map +0 -1
  69. package/dist/core/context.d.ts +0 -82
  70. package/dist/core/context.d.ts.map +0 -1
  71. package/dist/core/context.js +0 -273
  72. package/dist/core/context.js.map +0 -1
  73. package/dist/core/conversation-recovery.d.ts +0 -9
  74. package/dist/core/conversation-recovery.d.ts.map +0 -1
  75. package/dist/core/conversation-recovery.js +0 -15
  76. package/dist/core/conversation-recovery.js.map +0 -1
  77. package/dist/core/debug-workflow.d.ts +0 -9
  78. package/dist/core/debug-workflow.d.ts.map +0 -1
  79. package/dist/core/debug-workflow.js +0 -19
  80. package/dist/core/debug-workflow.js.map +0 -1
  81. package/dist/core/docs-scraper.d.ts +0 -40
  82. package/dist/core/docs-scraper.d.ts.map +0 -1
  83. package/dist/core/docs-scraper.js +0 -386
  84. package/dist/core/docs-scraper.js.map +0 -1
  85. package/dist/core/editor.d.ts +0 -87
  86. package/dist/core/editor.d.ts.map +0 -1
  87. package/dist/core/editor.js +0 -377
  88. package/dist/core/editor.js.map +0 -1
  89. package/dist/core/export.d.ts +0 -11
  90. package/dist/core/export.d.ts.map +0 -1
  91. package/dist/core/export.js +0 -54
  92. package/dist/core/export.js.map +0 -1
  93. package/dist/core/history-manager.d.ts +0 -75
  94. package/dist/core/history-manager.d.ts.map +0 -1
  95. package/dist/core/history-manager.js +0 -146
  96. package/dist/core/history-manager.js.map +0 -1
  97. package/dist/core/marketplace-client.d.ts +0 -52
  98. package/dist/core/marketplace-client.d.ts.map +0 -1
  99. package/dist/core/marketplace-client.js +0 -71
  100. package/dist/core/marketplace-client.js.map +0 -1
  101. package/dist/core/mcp/mcp-config.d.ts +0 -10
  102. package/dist/core/mcp/mcp-config.d.ts.map +0 -1
  103. package/dist/core/mcp/mcp-config.js +0 -70
  104. package/dist/core/mcp/mcp-config.js.map +0 -1
  105. package/dist/core/mcp/mcp-policy.d.ts +0 -17
  106. package/dist/core/mcp/mcp-policy.d.ts.map +0 -1
  107. package/dist/core/mcp/mcp-policy.js +0 -56
  108. package/dist/core/mcp/mcp-policy.js.map +0 -1
  109. package/dist/core/mcp/oauth-flow.d.ts +0 -30
  110. package/dist/core/mcp/oauth-flow.d.ts.map +0 -1
  111. package/dist/core/mcp/oauth-flow.js +0 -230
  112. package/dist/core/mcp/oauth-flow.js.map +0 -1
  113. package/dist/core/mcp/oauth-store.d.ts +0 -13
  114. package/dist/core/mcp/oauth-store.d.ts.map +0 -1
  115. package/dist/core/mcp/oauth-store.js +0 -68
  116. package/dist/core/mcp/oauth-store.js.map +0 -1
  117. package/dist/core/mcp/resolve-mcp-servers.d.ts +0 -16
  118. package/dist/core/mcp/resolve-mcp-servers.d.ts.map +0 -1
  119. package/dist/core/mcp/resolve-mcp-servers.js +0 -83
  120. package/dist/core/mcp/resolve-mcp-servers.js.map +0 -1
  121. package/dist/core/mcp-client.d.ts +0 -99
  122. package/dist/core/mcp-client.d.ts.map +0 -1
  123. package/dist/core/mcp-client.js +0 -317
  124. package/dist/core/mcp-client.js.map +0 -1
  125. package/dist/core/memory-promotions.d.ts +0 -15
  126. package/dist/core/memory-promotions.d.ts.map +0 -1
  127. package/dist/core/memory-promotions.js +0 -38
  128. package/dist/core/memory-promotions.js.map +0 -1
  129. package/dist/core/memory.d.ts +0 -32
  130. package/dist/core/memory.d.ts.map +0 -1
  131. package/dist/core/memory.js +0 -121
  132. package/dist/core/memory.js.map +0 -1
  133. package/dist/core/modes.d.ts +0 -432
  134. package/dist/core/modes.d.ts.map +0 -1
  135. package/dist/core/modes.js +0 -1094
  136. package/dist/core/modes.js.map +0 -1
  137. package/dist/core/pattern-miner.d.ts +0 -43
  138. package/dist/core/pattern-miner.d.ts.map +0 -1
  139. package/dist/core/pattern-miner.js +0 -123
  140. package/dist/core/pattern-miner.js.map +0 -1
  141. package/dist/core/permission-store.d.ts +0 -15
  142. package/dist/core/permission-store.d.ts.map +0 -1
  143. package/dist/core/permission-store.js +0 -30
  144. package/dist/core/permission-store.js.map +0 -1
  145. package/dist/core/permissions.d.ts +0 -33
  146. package/dist/core/permissions.d.ts.map +0 -1
  147. package/dist/core/permissions.js +0 -141
  148. package/dist/core/permissions.js.map +0 -1
  149. package/dist/core/plan-artifacts.d.ts +0 -10
  150. package/dist/core/plan-artifacts.d.ts.map +0 -1
  151. package/dist/core/plan-artifacts.js +0 -60
  152. package/dist/core/plan-artifacts.js.map +0 -1
  153. package/dist/core/plan-session.d.ts +0 -25
  154. package/dist/core/plan-session.d.ts.map +0 -1
  155. package/dist/core/plan-session.js +0 -99
  156. package/dist/core/plan-session.js.map +0 -1
  157. package/dist/core/planMode.d.ts +0 -51
  158. package/dist/core/planMode.d.ts.map +0 -1
  159. package/dist/core/planMode.js +0 -245
  160. package/dist/core/planMode.js.map +0 -1
  161. package/dist/core/plugins.d.ts +0 -96
  162. package/dist/core/plugins.d.ts.map +0 -1
  163. package/dist/core/plugins.js +0 -204
  164. package/dist/core/plugins.js.map +0 -1
  165. package/dist/core/session-bridge.d.ts +0 -128
  166. package/dist/core/session-bridge.d.ts.map +0 -1
  167. package/dist/core/session-bridge.js +0 -328
  168. package/dist/core/session-bridge.js.map +0 -1
  169. package/dist/core/session-manager.d.ts +0 -80
  170. package/dist/core/session-manager.d.ts.map +0 -1
  171. package/dist/core/session-manager.js +0 -166
  172. package/dist/core/session-manager.js.map +0 -1
  173. package/dist/core/session-memory.d.ts +0 -45
  174. package/dist/core/session-memory.d.ts.map +0 -1
  175. package/dist/core/session-memory.js +0 -103
  176. package/dist/core/session-memory.js.map +0 -1
  177. package/dist/core/skill-selection.d.ts +0 -36
  178. package/dist/core/skill-selection.d.ts.map +0 -1
  179. package/dist/core/skill-selection.js +0 -172
  180. package/dist/core/skill-selection.js.map +0 -1
  181. package/dist/core/skills-sh-client.d.ts +0 -19
  182. package/dist/core/skills-sh-client.d.ts.map +0 -1
  183. package/dist/core/skills-sh-client.js +0 -75
  184. package/dist/core/skills-sh-client.js.map +0 -1
  185. package/dist/core/skills.d.ts +0 -97
  186. package/dist/core/skills.d.ts.map +0 -1
  187. package/dist/core/skills.js +0 -339
  188. package/dist/core/skills.js.map +0 -1
  189. package/dist/core/swarm.d.ts +0 -34
  190. package/dist/core/swarm.d.ts.map +0 -1
  191. package/dist/core/swarm.js +0 -111
  192. package/dist/core/swarm.js.map +0 -1
  193. package/dist/core/task-status.d.ts +0 -13
  194. package/dist/core/task-status.d.ts.map +0 -1
  195. package/dist/core/task-status.js +0 -17
  196. package/dist/core/task-status.js.map +0 -1
  197. package/dist/core/tool-orchestrator.d.ts +0 -30
  198. package/dist/core/tool-orchestrator.d.ts.map +0 -1
  199. package/dist/core/tool-orchestrator.js +0 -89
  200. package/dist/core/tool-orchestrator.js.map +0 -1
  201. package/dist/core/tools.d.ts +0 -462
  202. package/dist/core/tools.d.ts.map +0 -1
  203. package/dist/core/tools.js +0 -2916
  204. package/dist/core/tools.js.map +0 -1
  205. package/dist/core/transcript-cleanup.d.ts +0 -8
  206. package/dist/core/transcript-cleanup.d.ts.map +0 -1
  207. package/dist/core/transcript-cleanup.js +0 -52
  208. package/dist/core/transcript-cleanup.js.map +0 -1
  209. package/dist/core/visual-feedback.d.ts +0 -20
  210. package/dist/core/visual-feedback.d.ts.map +0 -1
  211. package/dist/core/visual-feedback.js +0 -117
  212. package/dist/core/visual-feedback.js.map +0 -1
  213. package/dist/tools/browser.d.ts +0 -120
  214. package/dist/tools/browser.d.ts.map +0 -1
  215. package/dist/tools/browser.js +0 -439
  216. package/dist/tools/browser.js.map +0 -1
  217. package/dist/tools/test-generator.d.ts +0 -157
  218. package/dist/tools/test-generator.d.ts.map +0 -1
  219. package/dist/tools/test-generator.js +0 -893
  220. package/dist/tools/test-generator.js.map +0 -1
  221. package/dist/tui/InkApp.d.ts +0 -21
  222. package/dist/tui/InkApp.d.ts.map +0 -1
  223. package/dist/tui/InkApp.js +0 -146
  224. package/dist/tui/InkApp.js.map +0 -1
  225. package/dist/tui/MarkdownMessage.d.ts +0 -16
  226. package/dist/tui/MarkdownMessage.d.ts.map +0 -1
  227. package/dist/tui/MarkdownMessage.js +0 -63
  228. package/dist/tui/MarkdownMessage.js.map +0 -1
  229. package/dist/tui/blessed-chat.d.ts +0 -9
  230. package/dist/tui/blessed-chat.d.ts.map +0 -1
  231. package/dist/tui/blessed-chat.js +0 -887
  232. package/dist/tui/blessed-chat.js.map +0 -1
  233. package/dist/tui/markdown-to-blessed.d.ts +0 -6
  234. package/dist/tui/markdown-to-blessed.d.ts.map +0 -1
  235. package/dist/tui/markdown-to-blessed.js +0 -26
  236. package/dist/tui/markdown-to-blessed.js.map +0 -1
  237. package/dist/ui/ink/App.d.ts +0 -25
  238. package/dist/ui/ink/App.d.ts.map +0 -1
  239. package/dist/ui/ink/App.js +0 -372
  240. package/dist/ui/ink/App.js.map +0 -1
  241. package/dist/utils/at-references.d.ts +0 -14
  242. package/dist/utils/at-references.d.ts.map +0 -1
  243. package/dist/utils/at-references.js +0 -47
  244. package/dist/utils/at-references.js.map +0 -1
  245. package/dist/utils/auto-memory.d.ts +0 -24
  246. package/dist/utils/auto-memory.d.ts.map +0 -1
  247. package/dist/utils/auto-memory.js +0 -153
  248. package/dist/utils/auto-memory.js.map +0 -1
  249. package/dist/utils/git.d.ts +0 -89
  250. package/dist/utils/git.d.ts.map +0 -1
  251. package/dist/utils/git.js +0 -444
  252. package/dist/utils/git.js.map +0 -1
  253. package/dist/utils/mcp-servers-file.d.ts +0 -46
  254. package/dist/utils/mcp-servers-file.d.ts.map +0 -1
  255. package/dist/utils/mcp-servers-file.js +0 -212
  256. package/dist/utils/mcp-servers-file.js.map +0 -1
  257. package/dist/utils/safety.d.ts +0 -60
  258. package/dist/utils/safety.d.ts.map +0 -1
  259. package/dist/utils/safety.js +0 -254
  260. package/dist/utils/safety.js.map +0 -1
  261. package/dist/utils/smithery.d.ts +0 -25
  262. package/dist/utils/smithery.d.ts.map +0 -1
  263. package/dist/utils/smithery.js +0 -50
  264. package/dist/utils/smithery.js.map +0 -1
  265. package/dist/utils/testRunner.d.ts +0 -44
  266. package/dist/utils/testRunner.d.ts.map +0 -1
  267. package/dist/utils/testRunner.js +0 -270
  268. package/dist/utils/testRunner.js.map +0 -1
@@ -1,146 +0,0 @@
1
- /**
2
- * Chat History Manager
3
- *
4
- * Manages persistent chat conversations stored per-project in:
5
- * ~/.xibecode/history/{project-hash}/
6
- *
7
- * Each conversation is stored as a JSON file with full message history.
8
- */
9
- import * as fs from 'fs/promises';
10
- import * as path from 'path';
11
- import * as crypto from 'crypto';
12
- import * as os from 'os';
13
- export class HistoryManager {
14
- workingDir;
15
- baseDir;
16
- projectDir;
17
- constructor(workingDir) {
18
- this.workingDir = workingDir;
19
- this.baseDir = path.join(os.homedir(), '.xibecode', 'history');
20
- this.projectDir = path.join(this.baseDir, this.getProjectHash());
21
- }
22
- /**
23
- * Generate a safe directory name from the project path
24
- */
25
- getProjectHash() {
26
- // Use a short hash of the absolute path + the project name for readability
27
- const absPath = path.resolve(this.workingDir);
28
- const hash = crypto.createHash('sha256').update(absPath).digest('hex').substring(0, 12);
29
- const projectName = path.basename(absPath).replace(/[^a-zA-Z0-9_-]/g, '_');
30
- return `${projectName}_${hash}`;
31
- }
32
- /**
33
- * Ensure the history directory exists
34
- */
35
- async ensureDir() {
36
- await fs.mkdir(this.projectDir, { recursive: true });
37
- }
38
- /**
39
- * Generate a title from the first user message
40
- */
41
- static summarizeTitle(firstMessage) {
42
- // Take the first sentence or first 80 chars
43
- const cleaned = firstMessage.replace(/\n/g, ' ').trim();
44
- const firstSentence = cleaned.match(/^[^.!?]*[.!?]/);
45
- if (firstSentence && firstSentence[0].length <= 80) {
46
- return firstSentence[0].trim();
47
- }
48
- if (cleaned.length <= 80) {
49
- return cleaned;
50
- }
51
- return cleaned.substring(0, 77) + '...';
52
- }
53
- /**
54
- * Save a conversation (create or update)
55
- */
56
- async save(conversation) {
57
- await this.ensureDir();
58
- const filePath = path.join(this.projectDir, `${conversation.id}.json`);
59
- conversation.updated = new Date().toISOString();
60
- await fs.writeFile(filePath, JSON.stringify(conversation, null, 2), 'utf-8');
61
- }
62
- /**
63
- * Load a conversation by ID
64
- */
65
- async load(id) {
66
- try {
67
- const filePath = path.join(this.projectDir, `${id}.json`);
68
- const content = await fs.readFile(filePath, 'utf-8');
69
- return JSON.parse(content);
70
- }
71
- catch {
72
- return null;
73
- }
74
- }
75
- /**
76
- * List all conversations for this project (sorted by updated, newest first)
77
- */
78
- async list() {
79
- await this.ensureDir();
80
- try {
81
- const files = await fs.readdir(this.projectDir);
82
- const summaries = [];
83
- const jsonFiles = files.filter((file) => file.endsWith('.json'));
84
- // Bounded concurrency to speed up reading many session files
85
- const CONCURRENCY_LIMIT = 20;
86
- for (let i = 0; i < jsonFiles.length; i += CONCURRENCY_LIMIT) {
87
- const chunk = jsonFiles.slice(i, i + CONCURRENCY_LIMIT);
88
- await Promise.all(chunk.map(async (file) => {
89
- try {
90
- const filePath = path.join(this.projectDir, file);
91
- const content = await fs.readFile(filePath, 'utf-8');
92
- const conv = JSON.parse(content);
93
- summaries.push({
94
- id: conv.id,
95
- title: conv.title,
96
- created: conv.created,
97
- updated: conv.updated,
98
- messageCount: conv.messages.length,
99
- model: conv.model,
100
- });
101
- }
102
- catch {
103
- // Skip corrupted files
104
- }
105
- }));
106
- }
107
- // Sort by updated time, newest first
108
- summaries.sort((a, b) => new Date(b.updated).getTime() - new Date(a.updated).getTime());
109
- return summaries;
110
- }
111
- catch {
112
- return [];
113
- }
114
- }
115
- /**
116
- * Delete a conversation
117
- */
118
- async delete(id) {
119
- try {
120
- const filePath = path.join(this.projectDir, `${id}.json`);
121
- await fs.unlink(filePath);
122
- return true;
123
- }
124
- catch {
125
- return false;
126
- }
127
- }
128
- /**
129
- * Create a new conversation with a generated ID
130
- */
131
- static createConversation(projectPath, firstMessage, model = '', mode = 'agent') {
132
- const now = new Date().toISOString();
133
- return {
134
- id: `conv_${Date.now()}_${Math.random().toString(36).substring(2, 8)}`,
135
- title: HistoryManager.summarizeTitle(firstMessage),
136
- projectPath,
137
- projectName: path.basename(projectPath),
138
- created: now,
139
- updated: now,
140
- model,
141
- mode,
142
- messages: [],
143
- };
144
- }
145
- }
146
- //# sourceMappingURL=history-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"history-manager.js","sourceRoot":"","sources":["../../src/core/history-manager.ts"],"names":[],"mappings":"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"}
@@ -1,52 +0,0 @@
1
- /**
2
- * Skills Marketplace API Client
3
- * Connects to https://skills.xibeai.in for searching, downloading, and uploading skills.
4
- */
5
- export interface MarketplaceSkillResult {
6
- id: string;
7
- name: string;
8
- description: string;
9
- keywords: string[];
10
- categories: string[];
11
- qualityScore: number;
12
- downloads: number;
13
- downloadUrl: string;
14
- }
15
- export interface MarketplaceSearchResponse {
16
- type: string;
17
- query: string;
18
- results: MarketplaceSkillResult[];
19
- count: number;
20
- }
21
- export interface MarketplaceUploadResponse {
22
- success: boolean;
23
- skillId: string;
24
- skill: {
25
- id: string;
26
- name: string;
27
- description: string;
28
- keywords: string[];
29
- categories: string[];
30
- };
31
- }
32
- export declare class MarketplaceClient {
33
- private baseUrl;
34
- constructor(baseUrl?: string);
35
- /**
36
- * Search the marketplace for skills
37
- */
38
- searchSkills(query?: string, limit?: number): Promise<MarketplaceSearchResponse>;
39
- /**
40
- * Download skill content by ID (returns raw markdown)
41
- */
42
- getSkillContent(id: string): Promise<{
43
- content: string;
44
- name: string;
45
- author: string;
46
- }>;
47
- /**
48
- * Upload a skill to the marketplace
49
- */
50
- uploadSkill(content: string, skillName?: string, authorDescription?: string): Promise<MarketplaceUploadResponse>;
51
- }
52
- //# sourceMappingURL=marketplace-client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"marketplace-client.d.ts","sourceRoot":"","sources":["../../src/core/marketplace-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,WAAW,sBAAsB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,yBAAyB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,sBAAsB,EAAE,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,yBAAyB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE;QACH,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,UAAU,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;CACL;AAED,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,GAAE,MAA6B;IAIlD;;OAEG;IACG,YAAY,CAAC,KAAK,GAAE,MAAW,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAe9F;;OAEG;IACG,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAmB7F;;OAEG;IACG,WAAW,CACb,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,EAClB,iBAAiB,CAAC,EAAE,MAAM,GAC3B,OAAO,CAAC,yBAAyB,CAAC;CA2BxC"}
@@ -1,71 +0,0 @@
1
- /**
2
- * Skills Marketplace API Client
3
- * Connects to https://skills.xibeai.in for searching, downloading, and uploading skills.
4
- */
5
- const MARKETPLACE_BASE_URL = 'https://skills.xibeai.in';
6
- const UPLOAD_AUTHOR = 'Xibecode';
7
- const UPLOAD_EMAIL = 'xibecode@ai.in';
8
- export class MarketplaceClient {
9
- baseUrl;
10
- constructor(baseUrl = MARKETPLACE_BASE_URL) {
11
- this.baseUrl = baseUrl;
12
- }
13
- /**
14
- * Search the marketplace for skills
15
- */
16
- async searchSkills(query = '', limit = 10) {
17
- const url = `${this.baseUrl}/api/mcp/skills/search?q=${encodeURIComponent(query)}&limit=${limit}`;
18
- const response = await fetch(url, {
19
- method: 'GET',
20
- headers: { 'Accept': 'application/json' },
21
- });
22
- if (!response.ok) {
23
- throw new Error(`Marketplace search failed: ${response.status} ${response.statusText}`);
24
- }
25
- return await response.json();
26
- }
27
- /**
28
- * Download skill content by ID (returns raw markdown)
29
- */
30
- async getSkillContent(id) {
31
- const url = `${this.baseUrl}/api/mcp/skills/${id}/content`;
32
- const response = await fetch(url, {
33
- method: 'GET',
34
- headers: { 'Accept': 'text/plain' },
35
- });
36
- if (!response.ok) {
37
- throw new Error(`Failed to download skill: ${response.status} ${response.statusText}`);
38
- }
39
- const content = await response.text();
40
- const name = response.headers.get('X-Skill-Name') || 'unknown';
41
- const author = response.headers.get('X-Skill-Author') || 'unknown';
42
- return { content, name, author };
43
- }
44
- /**
45
- * Upload a skill to the marketplace
46
- */
47
- async uploadSkill(content, skillName, authorDescription) {
48
- const url = `${this.baseUrl}/api/skills/upload`;
49
- const body = {
50
- content,
51
- authorName: UPLOAD_AUTHOR,
52
- authorEmail: UPLOAD_EMAIL,
53
- authorDescription: authorDescription || 'XibeCode AI Coding Assistant',
54
- skillName,
55
- };
56
- const response = await fetch(url, {
57
- method: 'POST',
58
- headers: {
59
- 'Content-Type': 'application/json',
60
- 'Accept': 'application/json',
61
- },
62
- body: JSON.stringify(body),
63
- });
64
- if (!response.ok) {
65
- const errorBody = await response.text();
66
- throw new Error(`Marketplace upload failed (${response.status}): ${errorBody}`);
67
- }
68
- return await response.json();
69
- }
70
- }
71
- //# sourceMappingURL=marketplace-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"marketplace-client.js","sourceRoot":"","sources":["../../src/core/marketplace-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,oBAAoB,GAAG,0BAA0B,CAAC;AACxD,MAAM,aAAa,GAAG,UAAU,CAAC;AACjC,MAAM,YAAY,GAAG,gBAAgB,CAAC;AAgCtC,MAAM,OAAO,iBAAiB;IAClB,OAAO,CAAS;IAExB,YAAY,UAAkB,oBAAoB;QAC9C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,QAAgB,EAAE,EAAE,QAAgB,EAAE;QACrD,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,4BAA4B,kBAAkB,CAAC,KAAK,CAAC,UAAU,KAAK,EAAE,CAAC;QAElG,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC9B,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE;SAC5C,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAC5F,CAAC;QAED,OAAO,MAAM,QAAQ,CAAC,IAAI,EAA+B,CAAC;IAC9D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,EAAU;QAC5B,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,mBAAmB,EAAE,UAAU,CAAC;QAE3D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC9B,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE;SACtC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAC3F,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,SAAS,CAAC;QAC/D,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,SAAS,CAAC;QAEnE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACb,OAAe,EACf,SAAkB,EAClB,iBAA0B;QAE1B,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,oBAAoB,CAAC;QAEhD,MAAM,IAAI,GAAG;YACT,OAAO;YACP,UAAU,EAAE,aAAa;YACzB,WAAW,EAAE,YAAY;YACzB,iBAAiB,EAAE,iBAAiB,IAAI,8BAA8B;YACtE,SAAS;SACZ,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC9B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACL,cAAc,EAAE,kBAAkB;gBAClC,QAAQ,EAAE,kBAAkB;aAC/B;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC7B,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,CAAC,MAAM,MAAM,SAAS,EAAE,CAAC,CAAC;QACpF,CAAC;QAED,OAAO,MAAM,QAAQ,CAAC,IAAI,EAA+B,CAAC;IAC9D,CAAC;CACJ"}
@@ -1,10 +0,0 @@
1
- import { MCPServerConfig, MCPServersConfig, MCPServerConfigLegacy } from '../../utils/config.js';
2
- export type McpServersJson = {
3
- mcpServers: Record<string, MCPServerConfig>;
4
- } | {
5
- servers: MCPServerConfigLegacy[];
6
- };
7
- export declare function normalizeMcpServersConfig(raw: unknown, sourceLabel: string): MCPServersConfig;
8
- export declare function readMcpServersFromFile(filePath: string, sourceLabel?: string): Promise<MCPServersConfig>;
9
- export declare function findProjectMcpConfigFiles(startDir: string): Promise<string[]>;
10
- //# sourceMappingURL=mcp-config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-config.d.ts","sourceRoot":"","sources":["../../../src/core/mcp/mcp-config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEjG,MAAM,MAAM,cAAc,GACtB;IAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;CAAE,GAC/C;IAAE,OAAO,EAAE,qBAAqB,EAAE,CAAA;CAAE,CAAC;AAEzC,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,gBAAgB,CAwC7F;AAED,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAK9G;AAED,wBAAsB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAsBnF"}
@@ -1,70 +0,0 @@
1
- import * as fs from 'fs/promises';
2
- import * as path from 'path';
3
- export function normalizeMcpServersConfig(raw, sourceLabel) {
4
- const data = raw;
5
- // New object-based format
6
- if (data && typeof data === 'object' && data.mcpServers && typeof data.mcpServers === 'object' && !Array.isArray(data.mcpServers)) {
7
- const validated = {};
8
- for (const [serverName, serverConfig] of Object.entries(data.mcpServers)) {
9
- const cfg = serverConfig;
10
- if (!cfg?.command || typeof cfg.command !== 'string') {
11
- throw new Error(`[${sourceLabel}] Invalid MCP server "${serverName}": missing required field "command"`);
12
- }
13
- validated[serverName] = {
14
- command: cfg.command,
15
- args: Array.isArray(cfg.args) ? cfg.args.map(String) : undefined,
16
- env: cfg.env && typeof cfg.env === 'object' ? cfg.env : undefined,
17
- };
18
- }
19
- return validated;
20
- }
21
- // Legacy array-based format
22
- if (data && typeof data === 'object' && Array.isArray(data.servers)) {
23
- const migrated = {};
24
- for (const server of data.servers) {
25
- if (!server?.name || !server?.command) {
26
- throw new Error(`[${sourceLabel}] Invalid legacy MCP server entry: missing required fields (name, command)`);
27
- }
28
- if (server.transport && server.transport !== 'stdio') {
29
- throw new Error(`[${sourceLabel}] Invalid legacy MCP server "${server.name}": unsupported transport "${server.transport}"`);
30
- }
31
- migrated[server.name] = {
32
- command: server.command,
33
- args: server.args,
34
- env: server.env,
35
- };
36
- }
37
- return migrated;
38
- }
39
- throw new Error(`[${sourceLabel}] Invalid MCP config: expected {mcpServers:{...}} or legacy {servers:[...]}`);
40
- }
41
- export async function readMcpServersFromFile(filePath, sourceLabel) {
42
- const label = sourceLabel || filePath;
43
- const content = await fs.readFile(filePath, 'utf-8');
44
- const json = JSON.parse(content);
45
- return normalizeMcpServersConfig(json, label);
46
- }
47
- export async function findProjectMcpConfigFiles(startDir) {
48
- // Walk up to filesystem root collecting .mcp.json; return in root -> leaf order.
49
- const files = [];
50
- let current = path.resolve(startDir);
51
- while (true) {
52
- files.push(path.join(current, '.mcp.json'));
53
- const parent = path.dirname(current);
54
- if (parent === current)
55
- break;
56
- current = parent;
57
- }
58
- const existing = [];
59
- for (const fp of files.reverse()) {
60
- try {
61
- await fs.access(fp);
62
- existing.push(fp);
63
- }
64
- catch {
65
- // ignore
66
- }
67
- }
68
- return existing;
69
- }
70
- //# sourceMappingURL=mcp-config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-config.js","sourceRoot":"","sources":["../../../src/core/mcp/mcp-config.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- import { MCPServersConfig, type MCPServerConfig } from '../../utils/config.js';
2
- export type McpServerMatchPattern = string;
3
- export declare function isAllowedByPolicy(params: {
4
- serverName: string;
5
- serverConfig: MCPServerConfig;
6
- allowed?: McpServerMatchPattern[];
7
- denied?: McpServerMatchPattern[];
8
- allowManagedOnly?: boolean;
9
- isManagedSource?: boolean;
10
- }): boolean;
11
- export declare function filterMcpServersByPolicy(servers: MCPServersConfig, policy: {
12
- allowed?: McpServerMatchPattern[];
13
- denied?: McpServerMatchPattern[];
14
- allowManagedOnly?: boolean;
15
- isManagedSource?: boolean;
16
- }): MCPServersConfig;
17
- //# sourceMappingURL=mcp-policy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-policy.d.ts","sourceRoot":"","sources":["../../../src/core/mcp/mcp-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE/E,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAc3C,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,eAAe,CAAC;IAC9B,OAAO,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAClC,MAAM,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACjC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,GAAG,OAAO,CAsBV;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE;IACN,OAAO,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAClC,MAAM,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACjC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,GACA,gBAAgB,CAiBlB"}
@@ -1,56 +0,0 @@
1
- function wildcardToRegExp(pattern) {
2
- const escaped = pattern.replace(/[.+^${}()|[\]\\]/g, '\\$&').replace(/\*/g, '.*');
3
- return new RegExp(`^${escaped}$`, 'i');
4
- }
5
- function matchesPattern(value, pattern) {
6
- if (!pattern)
7
- return false;
8
- if (pattern === value)
9
- return true;
10
- if (pattern.includes('*'))
11
- return wildcardToRegExp(pattern).test(value);
12
- return value.toLowerCase() === pattern.toLowerCase();
13
- }
14
- export function isAllowedByPolicy(params) {
15
- const { serverName, serverConfig, allowed, denied, allowManagedOnly, isManagedSource } = params;
16
- if (allowManagedOnly && !isManagedSource)
17
- return false;
18
- const denyList = denied || [];
19
- for (const pat of denyList) {
20
- if (pat.startsWith('name:') && matchesPattern(serverName, pat.slice('name:'.length)))
21
- return false;
22
- if (pat.startsWith('command:') && matchesPattern(serverConfig.command, pat.slice('command:'.length)))
23
- return false;
24
- if (!pat.includes(':') && matchesPattern(serverName, pat))
25
- return false;
26
- }
27
- const allowList = allowed || [];
28
- if (allowList.length === 0)
29
- return true;
30
- for (const pat of allowList) {
31
- if (pat.startsWith('name:') && matchesPattern(serverName, pat.slice('name:'.length)))
32
- return true;
33
- if (pat.startsWith('command:') && matchesPattern(serverConfig.command, pat.slice('command:'.length)))
34
- return true;
35
- if (!pat.includes(':') && matchesPattern(serverName, pat))
36
- return true;
37
- }
38
- return false;
39
- }
40
- export function filterMcpServersByPolicy(servers, policy) {
41
- const out = {};
42
- for (const [name, cfg] of Object.entries(servers)) {
43
- if (isAllowedByPolicy({
44
- serverName: name,
45
- serverConfig: cfg,
46
- allowed: policy.allowed,
47
- denied: policy.denied,
48
- allowManagedOnly: policy.allowManagedOnly,
49
- isManagedSource: policy.isManagedSource,
50
- })) {
51
- out[name] = cfg;
52
- }
53
- }
54
- return out;
55
- }
56
- //# sourceMappingURL=mcp-policy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-policy.js","sourceRoot":"","sources":["../../../src/core/mcp/mcp-policy.ts"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- import type { MCPServerConfig } from '../../utils/config.js';
2
- export interface OAuthStartResult {
3
- authUrl: string;
4
- redirectUri: string;
5
- state: string;
6
- note: string;
7
- }
8
- export interface OAuthFinishResult {
9
- success: boolean;
10
- message: string;
11
- }
12
- export interface PendingOAuth {
13
- serverName: string;
14
- codeVerifier: string;
15
- state: string;
16
- redirectUri: string;
17
- tokenUrl: string;
18
- clientId: string;
19
- scopes: string[];
20
- }
21
- export declare class McpOAuthFlowManager {
22
- private pending;
23
- getPending(serverName: string): PendingOAuth | null;
24
- start(serverName: string, cfg: MCPServerConfig): Promise<OAuthStartResult>;
25
- finish(serverName: string, callbackUrl: string): Promise<OAuthFinishResult>;
26
- getValidAccessToken(serverName: string, cfg: MCPServerConfig): Promise<string | null>;
27
- private exchangeCode;
28
- private refreshToken;
29
- }
30
- //# sourceMappingURL=oauth-flow.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oauth-flow.d.ts","sourceRoot":"","sources":["../../../src/core/mcp/oauth-flow.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAwDD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,OAAO,CAAmC;IAElD,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAI7C,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA6F1E,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAc3E,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YAiB7E,YAAY;YAiCZ,YAAY;CAwB3B"}