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 +0,0 @@
1
- {"version":3,"file":"skills-sh-client.d.ts","sourceRoot":"","sources":["../../src/core/skills-sh-client.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,cAAc;IACvB;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAatD;;;;;OAKG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAsBzE,OAAO,CAAC,kBAAkB;CA6B7B"}
@@ -1,75 +0,0 @@
1
- import { exec } from 'child_process';
2
- import { promisify } from 'util';
3
- import * as path from 'path';
4
- import * as fs from 'fs/promises';
5
- import stripAnsi from 'strip-ansi';
6
- const execAsync = promisify(exec);
7
- export class SkillsShClient {
8
- /**
9
- * Search for skills using `npx skills find`
10
- */
11
- async search(query) {
12
- try {
13
- // Run npx skills find [query]
14
- // We use -y to skip confirmation
15
- const { stdout } = await execAsync(`npx -y skills find "${query}"`);
16
- return this.parseSearchResults(stripAnsi(stdout));
17
- }
18
- catch (error) {
19
- console.warn('Skills.sh search error:', error.message);
20
- return [];
21
- }
22
- }
23
- /**
24
- * Install a skill using `npx skills add`
25
- * Note: This CLI installs skills to the local project or global scope.
26
- * We'll try to detect where it went or just let it install to the cwd by default
27
- * and then move it if necessary, but for now we trust `npx skills add` to do its thing.
28
- */
29
- async install(skillId, targetDir) {
30
- try {
31
- await fs.mkdir(targetDir, { recursive: true });
32
- const before = new Set((await fs.readdir(targetDir)).filter((f) => f.endsWith('.md')));
33
- await execAsync(`npx -y skills add ${skillId} -y`, { cwd: targetDir });
34
- const afterList = (await fs.readdir(targetDir)).filter((f) => f.endsWith('.md'));
35
- const after = new Set(afterList);
36
- const created = afterList.find((f) => !before.has(f));
37
- if (created) {
38
- return path.join(targetDir, created);
39
- }
40
- // Fallback: if nothing obvious, just return a success message.
41
- return `Skill ${skillId} installed successfully.`;
42
- }
43
- catch (error) {
44
- console.error('Skills.sh install error:', error.message);
45
- return null;
46
- }
47
- }
48
- parseSearchResults(stdout) {
49
- const results = [];
50
- const lines = stdout.split('\n');
51
- // Example output:
52
- // vercel-labs/agent-skills@vercel-react-best-practices
53
- // └ https://skills.sh/vercel-labs/agent-skills/vercel-react-best-practices
54
- let currentId = '';
55
- for (const line of lines) {
56
- const trimmed = line.trim();
57
- if (!trimmed)
58
- continue;
59
- if (trimmed.startsWith('└')) {
60
- // Link line
61
- const url = trimmed.substring(2).trim();
62
- if (currentId && url) {
63
- results.push({ id: currentId, url });
64
- currentId = '';
65
- }
66
- }
67
- else if (!trimmed.startsWith('Install with') && !trimmed.includes('skills.sh') && trimmed.includes('/')) {
68
- // Likely an ID line like "owner/repo@skill"
69
- currentId = trimmed;
70
- }
71
- }
72
- return results;
73
- }
74
- }
75
- //# sourceMappingURL=skills-sh-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skills-sh-client.js","sourceRoot":"","sources":["../../src/core/skills-sh-client.ts"],"names":[],"mappings":"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"}
@@ -1,97 +0,0 @@
1
- import { type MarketplaceSkillResult } from './marketplace-client.js';
2
- import { type SkillsShResult } from './skills-sh-client.js';
3
- import { ProviderType } from '../utils/config.js';
4
- import { type SkillSelectionOptions } from './skill-selection.js';
5
- export interface Skill {
6
- name: string;
7
- description: string;
8
- instructions: string;
9
- tags?: string[];
10
- provenance?: 'built-in' | 'user' | 'marketplace' | 'skills.sh' | 'mcp';
11
- filePath?: string;
12
- }
13
- export declare class SkillManager {
14
- private skills;
15
- /** Skills loaded from the shipped `skills/` directory (for system-prompt injection). */
16
- private builtInSkills;
17
- private builtInSkillsDir;
18
- private userSkillsDir;
19
- private marketplace;
20
- private skillsSh;
21
- private aiConfig;
22
- constructor(workingDir?: string, apiKey?: string, baseUrl?: string, model?: string, provider?: ProviderType);
23
- loadSkills(): Promise<void>;
24
- private loadSkillsFromDirectory;
25
- private parseSkillFile;
26
- getSkill(name: string): Skill | undefined;
27
- listSkills(): Skill[];
28
- /**
29
- * Build the bundled-skills block for the system prompt by **selecting** skills that match
30
- * the task text and `package.json` dependencies (plus a small always-on core set).
31
- */
32
- buildDefaultSkillsPromptForTask(taskPrompt: string, cwd: string, options?: SkillSelectionOptions): Promise<string>;
33
- private formatSkillCatalogForPrompt;
34
- /**
35
- * @deprecated Prefer `buildDefaultSkillsPromptForTask` so selection scales with many bundled skills.
36
- * Formats every loaded built-in skill (no dependency-aware selection).
37
- */
38
- formatBuiltInSkillsForSystemPrompt(): string;
39
- private formatSelectedBuiltInSkillsForPrompt;
40
- searchSkills(query: string): Skill[];
41
- /**
42
- * Search the Skills Marketplace for community skills
43
- */
44
- searchMarketplace(query?: string, limit?: number): Promise<MarketplaceSkillResult[]>;
45
- /**
46
- * Install a skill from the marketplace by ID
47
- * Downloads the content and saves it to the user skills directory
48
- */
49
- installFromMarketplace(id: string, skillName: string, onProgress?: (msg: string) => void): Promise<{
50
- success: boolean;
51
- filePath: string;
52
- error?: string;
53
- }>;
54
- /**
55
- * Upload a skill to the marketplace
56
- */
57
- uploadToMarketplace(content: string, skillName?: string, onProgress?: (msg: string) => void): Promise<{
58
- success: boolean;
59
- skillId?: string;
60
- error?: string;
61
- }>;
62
- /**
63
- * Learn a skill from documentation URL.
64
- * Crawls the docs site, scrapes pages, and generates a skill file.
65
- * Auto-uploads to the Skills Marketplace on success.
66
- */
67
- learnFromDocs(name: string, url: string, maxPages?: number, onProgress?: (msg: string) => void): Promise<{
68
- success: boolean;
69
- pagesScraped: number;
70
- filePath: string;
71
- error?: string;
72
- marketplaceId?: string;
73
- }>;
74
- autoInstallFromSkillsShForTask(taskPrompt: string, opts?: {
75
- enabled?: boolean;
76
- maxInstalls?: number;
77
- onProgress?: (msg: string) => void;
78
- }): Promise<{
79
- installed: boolean;
80
- skillId?: string;
81
- installedSkillNames?: string[];
82
- message?: string;
83
- }>;
84
- /**
85
- * Search skills.sh for skills
86
- */
87
- searchSkillsSh(query: string): Promise<SkillsShResult[]>;
88
- /**
89
- * Install a skill from skills.sh
90
- */
91
- installFromSkillsSh(skillId: string): Promise<{
92
- success: boolean;
93
- message?: string;
94
- filePath?: string;
95
- }>;
96
- }
97
- //# sourceMappingURL=skills.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/core/skills.ts"],"names":[],"mappings":"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"}
@@ -1,339 +0,0 @@
1
- import * as fs from 'fs/promises';
2
- import * as path from 'path';
3
- import { fileURLToPath } from 'url';
4
- import { dirname } from 'path';
5
- import matter from 'gray-matter';
6
- import { crawlDocs, generateSkillFromDocs } from './docs-scraper.js';
7
- import { MarketplaceClient } from './marketplace-client.js';
8
- import { SkillsShClient } from './skills-sh-client.js';
9
- import { extractDepTokens, selectRelevantBuiltInSkills, formatSelectionSummary, } from './skill-selection.js';
10
- const __filename = fileURLToPath(import.meta.url);
11
- const __dirname = dirname(__filename);
12
- export class SkillManager {
13
- skills = new Map();
14
- /** Skills loaded from the shipped `skills/` directory (for system-prompt injection). */
15
- builtInSkills = [];
16
- builtInSkillsDir;
17
- userSkillsDir;
18
- marketplace;
19
- skillsSh;
20
- aiConfig;
21
- constructor(workingDir = process.cwd(), apiKey, baseUrl, model, provider) {
22
- // Built-in skills shipped with XibeCode
23
- this.builtInSkillsDir = path.join(__dirname, '..', '..', 'skills');
24
- // User-defined skills in project
25
- this.userSkillsDir = path.join(workingDir, '.xibecode', 'skills');
26
- this.marketplace = new MarketplaceClient();
27
- this.skillsSh = new SkillsShClient();
28
- this.aiConfig = {
29
- apiKey: apiKey || process.env.ANTHROPIC_API_KEY || process.env.OPENAI_API_KEY || '',
30
- baseUrl,
31
- model,
32
- provider,
33
- };
34
- }
35
- async loadSkills() {
36
- this.builtInSkills = [];
37
- // Load built-in skills
38
- await this.loadSkillsFromDirectory(this.builtInSkillsDir, 'built-in');
39
- // Load user skills (if directory exists)
40
- try {
41
- await fs.access(this.userSkillsDir);
42
- await this.loadSkillsFromDirectory(this.userSkillsDir, 'user');
43
- }
44
- catch {
45
- // User skills directory doesn't exist, skip
46
- }
47
- }
48
- async loadSkillsFromDirectory(dir, source) {
49
- try {
50
- const files = await fs.readdir(dir);
51
- const skillFiles = files.filter(f => f.endsWith('.md'));
52
- for (const file of skillFiles) {
53
- const filePath = path.join(dir, file);
54
- const content = await fs.readFile(filePath, 'utf-8');
55
- const skill = this.parseSkillFile(content, file, {
56
- provenance: source === 'built-in' ? 'built-in' : 'user',
57
- filePath,
58
- });
59
- if (skill) {
60
- this.skills.set(skill.name, skill);
61
- if (source === 'built-in') {
62
- this.builtInSkills.push(skill);
63
- }
64
- }
65
- }
66
- }
67
- catch (error) {
68
- // Directory doesn't exist or can't be read
69
- if (source === 'built-in') {
70
- console.warn(`Warning: Could not load built-in skills from ${dir}`);
71
- }
72
- }
73
- }
74
- parseSkillFile(content, filename, metaOverride) {
75
- try {
76
- const parsed = matter(content);
77
- const data = (parsed.data || {});
78
- const nameFromFile = filename.replace(/\.md$/i, '');
79
- const name = typeof data.name === 'string' && data.name.trim() ? data.name.trim() : nameFromFile;
80
- const description = typeof data.description === 'string' ? data.description : '';
81
- const tags = Array.isArray(data.tags) ? data.tags.map(String) :
82
- typeof data.tags === 'string' ? data.tags.split(',').map((t) => t.trim()).filter(Boolean) :
83
- [];
84
- const instructions = (parsed.content || '').trim();
85
- if (!instructions)
86
- return null;
87
- return {
88
- name,
89
- description,
90
- instructions,
91
- tags,
92
- provenance: metaOverride?.provenance,
93
- filePath: metaOverride?.filePath,
94
- };
95
- }
96
- catch {
97
- return null;
98
- }
99
- }
100
- getSkill(name) {
101
- return this.skills.get(name);
102
- }
103
- listSkills() {
104
- return Array.from(this.skills.values());
105
- }
106
- /**
107
- * Build the bundled-skills block for the system prompt by **selecting** skills that match
108
- * the task text and `package.json` dependencies (plus a small always-on core set).
109
- */
110
- async buildDefaultSkillsPromptForTask(taskPrompt, cwd, options) {
111
- if (this.builtInSkills.length === 0)
112
- return '';
113
- let depTokens = new Set();
114
- try {
115
- const raw = await fs.readFile(path.join(cwd, 'package.json'), 'utf-8');
116
- depTokens = extractDepTokens(JSON.parse(raw));
117
- }
118
- catch {
119
- /* no package.json */
120
- }
121
- const selected = selectRelevantBuiltInSkills(this.builtInSkills, taskPrompt, depTokens, options);
122
- const summary = formatSelectionSummary(selected, this.builtInSkills.length);
123
- const bundledBlock = this.formatSelectedBuiltInSkillsForPrompt(selected, summary);
124
- const catalog = this.formatSkillCatalogForPrompt({ maxChars: 2000 });
125
- return bundledBlock + (catalog ? `\n\n---\n\n${catalog}` : '');
126
- }
127
- formatSkillCatalogForPrompt(opts) {
128
- const all = this.listSkills()
129
- .filter((s) => s.provenance !== 'built-in')
130
- .sort((a, b) => a.name.localeCompare(b.name));
131
- if (all.length === 0)
132
- return '';
133
- const lines = all.map((s) => `- ${s.name}${s.description ? ` — ${s.description}` : ''}`);
134
- let out = `## Available local skills\n\n${lines.join('\n')}`;
135
- if (out.length > opts.maxChars) {
136
- out = out.slice(0, opts.maxChars) + '\n\n[Skill list truncated]';
137
- }
138
- return out;
139
- }
140
- /**
141
- * @deprecated Prefer `buildDefaultSkillsPromptForTask` so selection scales with many bundled skills.
142
- * Formats every loaded built-in skill (no dependency-aware selection).
143
- */
144
- formatBuiltInSkillsForSystemPrompt() {
145
- if (this.builtInSkills.length === 0)
146
- return '';
147
- return this.formatSelectedBuiltInSkillsForPrompt(this.builtInSkills, formatSelectionSummary(this.builtInSkills, this.builtInSkills.length));
148
- }
149
- formatSelectedBuiltInSkillsForPrompt(selected, selectionSummary) {
150
- if (selected.length === 0)
151
- return '';
152
- const maxTotal = 28_000;
153
- const intro = selectionSummary +
154
- '\n\nApply the subsections below when they fit the work. For more domain skills, use `search_skills_sh` or add files under `.xibecode/skills`.\n\n';
155
- const sorted = [...selected].sort((a, b) => a.name.localeCompare(b.name));
156
- const parts = sorted.map((s) => `### ${s.name}\n*${s.description}*\n\n${s.instructions}`);
157
- let body = `## Default bundled skills\n\n${intro}` + parts.join('\n\n---\n\n');
158
- if (body.length > maxTotal) {
159
- body =
160
- body.slice(0, maxTotal) +
161
- '\n\n[Bundled skills truncated for length; follow the skill titles above and general best practices.]';
162
- }
163
- return body;
164
- }
165
- searchSkills(query) {
166
- const lowerQuery = query.toLowerCase();
167
- return this.listSkills().filter(skill => skill.name.toLowerCase().includes(lowerQuery) ||
168
- skill.description.toLowerCase().includes(lowerQuery) ||
169
- skill.tags?.some(tag => tag.toLowerCase().includes(lowerQuery)));
170
- }
171
- /**
172
- * Search the Skills Marketplace for community skills
173
- */
174
- async searchMarketplace(query = '', limit = 10) {
175
- try {
176
- const response = await this.marketplace.searchSkills(query, limit);
177
- return response.results;
178
- }
179
- catch (error) {
180
- throw new Error(`Marketplace search failed: ${error.message}`);
181
- }
182
- }
183
- /**
184
- * Install a skill from the marketplace by ID
185
- * Downloads the content and saves it to the user skills directory
186
- */
187
- async installFromMarketplace(id, skillName, onProgress) {
188
- try {
189
- onProgress?.('Downloading skill from marketplace...');
190
- const { content, name } = await this.marketplace.getSkillContent(id);
191
- // Ensure user skills directory exists
192
- await fs.mkdir(this.userSkillsDir, { recursive: true });
193
- // Sanitize filename
194
- const fileName = skillName.toLowerCase().replace(/[^a-z0-9-]/g, '-').replace(/-+/g, '-');
195
- const filePath = path.join(this.userSkillsDir, `${fileName}.md`);
196
- // If the content doesn't have frontmatter, wrap it
197
- let finalContent = content;
198
- if (!content.startsWith('---')) {
199
- finalContent = `---\nname: ${name || skillName}\ndescription: Installed from Skills Marketplace\ntags: marketplace\n---\n\n${content}`;
200
- }
201
- await fs.writeFile(filePath, finalContent, 'utf-8');
202
- onProgress?.('Skill saved locally');
203
- // Register the skill locally
204
- const skill = this.parseSkillFile(finalContent, `${fileName}.md`, {
205
- provenance: 'marketplace',
206
- filePath,
207
- });
208
- if (skill) {
209
- this.skills.set(skill.name, skill);
210
- }
211
- return { success: true, filePath };
212
- }
213
- catch (error) {
214
- return { success: false, filePath: '', error: error.message };
215
- }
216
- }
217
- /**
218
- * Upload a skill to the marketplace
219
- */
220
- async uploadToMarketplace(content, skillName, onProgress) {
221
- try {
222
- onProgress?.('Uploading skill to marketplace...');
223
- const result = await this.marketplace.uploadSkill(content, skillName);
224
- onProgress?.(`Skill published to marketplace as "${result.skill.name}"`);
225
- return { success: true, skillId: result.skillId };
226
- }
227
- catch (error) {
228
- return { success: false, error: error.message };
229
- }
230
- }
231
- /**
232
- * Learn a skill from documentation URL.
233
- * Crawls the docs site, scrapes pages, and generates a skill file.
234
- * Auto-uploads to the Skills Marketplace on success.
235
- */
236
- async learnFromDocs(name, url, maxPages = 25, onProgress) {
237
- try {
238
- // Crawl docs
239
- const pages = await crawlDocs(url, maxPages, onProgress);
240
- if (pages.length === 0) {
241
- return { success: false, pagesScraped: 0, filePath: '', error: 'No pages could be scraped from that URL' };
242
- }
243
- // Generate skill content using AI synthesis
244
- const skillContent = await generateSkillFromDocs(name, url, pages, this.aiConfig, onProgress);
245
- // Ensure user skills directory exists
246
- await fs.mkdir(this.userSkillsDir, { recursive: true });
247
- // Save skill file
248
- const filePath = path.join(this.userSkillsDir, `${name}.md`);
249
- await fs.writeFile(filePath, skillContent, 'utf-8');
250
- // Parse and register the skill
251
- const skill = this.parseSkillFile(skillContent, `${name}.md`);
252
- if (skill) {
253
- this.skills.set(skill.name, skill);
254
- }
255
- // Auto-upload to marketplace
256
- let marketplaceId;
257
- try {
258
- onProgress?.('Publishing skill to marketplace...');
259
- const uploadResult = await this.marketplace.uploadSkill(skillContent, name);
260
- marketplaceId = uploadResult.skillId;
261
- onProgress?.(`Skill published to marketplace as "${uploadResult.skill.name}"`);
262
- }
263
- catch (uploadError) {
264
- onProgress?.(`Marketplace upload skipped: ${uploadError.message}`);
265
- }
266
- return { success: true, pagesScraped: pages.length, filePath, marketplaceId };
267
- }
268
- catch (error) {
269
- return { success: false, pagesScraped: 0, filePath: '', error: error.message };
270
- }
271
- }
272
- async autoInstallFromSkillsShForTask(taskPrompt, opts) {
273
- const enabled = opts?.enabled ?? false;
274
- const maxInstalls = opts?.maxInstalls ?? 1;
275
- if (!enabled)
276
- return { installed: false };
277
- if (!taskPrompt.trim())
278
- return { installed: false };
279
- if (maxInstalls <= 0)
280
- return { installed: false };
281
- // If the user already has relevant local skills, don’t auto-install new ones.
282
- // “Relevant” here is a cheap metadata search (name/description/tags) to avoid silent growth.
283
- try {
284
- const existingMd = (await fs.readdir(this.userSkillsDir)).filter((f) => f.endsWith('.md'));
285
- if (existingMd.length > 0) {
286
- const localMatches = this.searchSkills(taskPrompt).filter((s) => s.provenance !== 'built-in');
287
- if (localMatches.length > 0)
288
- return { installed: false, message: 'Local skills matched; skipping auto-install' };
289
- }
290
- }
291
- catch {
292
- // ignore
293
- }
294
- const beforeNames = new Set(this.listSkills().map((s) => s.name));
295
- opts?.onProgress?.('Searching skills.sh for relevant skills…');
296
- const results = await this.searchSkillsSh(taskPrompt);
297
- const first = results[0];
298
- if (!first)
299
- return { installed: false, message: 'No skills.sh results' };
300
- opts?.onProgress?.(`Installing skills.sh skill: ${first.id}`);
301
- const installResult = await this.installFromSkillsSh(first.id);
302
- if (!installResult.success) {
303
- return { installed: false, skillId: first.id, message: installResult.message };
304
- }
305
- const after = this.listSkills().map((s) => s.name);
306
- const added = after.filter((n) => !beforeNames.has(n));
307
- return { installed: true, skillId: first.id, installedSkillNames: added, message: installResult.message };
308
- }
309
- /**
310
- * Search skills.sh for skills
311
- */
312
- async searchSkillsSh(query) {
313
- return this.skillsSh.search(query);
314
- }
315
- /**
316
- * Install a skill from skills.sh
317
- */
318
- async installFromSkillsSh(skillId) {
319
- // We'll install strictly to the user skills directory if possible
320
- // But npx skills add might install to a different location or just output the file
321
- // For now, we'll run it in the user skills directory
322
- try {
323
- await fs.mkdir(this.userSkillsDir, { recursive: true });
324
- const result = await this.skillsSh.install(skillId, this.userSkillsDir);
325
- // Reload skills to pick up the new one
326
- await this.loadSkillsFromDirectory(this.userSkillsDir, 'user');
327
- const installedPath = result && result.endsWith('.md') ? result : undefined;
328
- return {
329
- success: !!result,
330
- message: result || 'Installation failed',
331
- filePath: installedPath,
332
- };
333
- }
334
- catch (error) {
335
- return { success: false, message: error.message };
336
- }
337
- }
338
- }
339
- //# sourceMappingURL=skills.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/core/skills.ts"],"names":[],"mappings":"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"}
@@ -1,34 +0,0 @@
1
- import { BackgroundAgentManager } from './background-agent.js';
2
- import { AgentMode } from './modes.js';
3
- export interface SubtaskResult {
4
- success: boolean;
5
- result: string;
6
- taskId: string;
7
- status: 'completed' | 'failed' | 'timeout' | 'killed';
8
- /** Set when returned from parallel swarm runs */
9
- worker_type?: AgentMode;
10
- }
11
- /** Default cap on concurrent background agent processes (overridable via `run_swarm` max_parallel). */
12
- export declare const DEFAULT_SWARM_MAX_PARALLEL = 6;
13
- export declare class SwarmOrchestrator {
14
- private backgroundAgent;
15
- constructor(backgroundAgent: BackgroundAgentManager);
16
- /**
17
- * Delegates a task to a specialized agent mode.
18
- * Starts a background agent with specific mode instructions and waits for completion.
19
- */
20
- delegateSubtask(mode: AgentMode, task: string, timeoutMs?: number): Promise<SubtaskResult>;
21
- private pollTask;
22
- /**
23
- * Run multiple delegated subtasks with bounded concurrency (parallel when there are multiple workers).
24
- * Each subtask is an isolated background `xibecode run` process; overlapping writes to the same files can conflict.
25
- */
26
- delegateSubtasksParallel(subtasks: {
27
- mode: AgentMode;
28
- task: string;
29
- }[], options?: {
30
- timeoutMs?: number;
31
- maxConcurrent?: number;
32
- }): Promise<SubtaskResult[]>;
33
- }
34
- //# sourceMappingURL=swarm.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"swarm.d.ts","sourceRoot":"","sources":["../../src/core/swarm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IACtD,iDAAiD;IACjD,WAAW,CAAC,EAAE,SAAS,CAAC;CAC3B;AAED,uGAAuG;AACvG,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAyB5C,qBAAa,iBAAiB;IACd,OAAO,CAAC,eAAe;gBAAf,eAAe,EAAE,sBAAsB;IAE3D;;;OAGG;IACG,eAAe,CACjB,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,MAAkB,GAC9B,OAAO,CAAC,aAAa,CAAC;YA6BX,QAAQ;IA8CtB;;;OAGG;IACG,wBAAwB,CAC1B,QAAQ,EAAE;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,EAC7C,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GACzD,OAAO,CAAC,aAAa,EAAE,CAAC;CAQ9B"}