@quanvo99/ai-rules 0.1.4 → 0.1.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 (46) hide show
  1. package/dist/cli/commands/generate-questions.d.ts +7 -0
  2. package/dist/cli/commands/generate-questions.d.ts.map +1 -0
  3. package/dist/cli/commands/generate-questions.js +120 -0
  4. package/dist/cli/commands/generate-questions.js.map +1 -0
  5. package/dist/cli/commands/init.d.ts.map +1 -1
  6. package/dist/cli/commands/init.js +108 -7
  7. package/dist/cli/commands/init.js.map +1 -1
  8. package/dist/cli/index.js +4 -0
  9. package/dist/cli/index.js.map +1 -1
  10. package/dist/cli/lib/files.d.ts +8 -0
  11. package/dist/cli/lib/files.d.ts.map +1 -1
  12. package/dist/cli/lib/files.js +27 -0
  13. package/dist/cli/lib/files.js.map +1 -1
  14. package/dist/cli/lib/github.d.ts +18 -0
  15. package/dist/cli/lib/github.d.ts.map +1 -1
  16. package/dist/cli/lib/github.js +40 -0
  17. package/dist/cli/lib/github.js.map +1 -1
  18. package/dist/cli/lib/ollama-client.d.ts +66 -0
  19. package/dist/cli/lib/ollama-client.d.ts.map +1 -0
  20. package/dist/cli/lib/ollama-client.js +198 -0
  21. package/dist/cli/lib/ollama-client.js.map +1 -0
  22. package/dist/cli/lib/question-prompt.d.ts +37 -0
  23. package/dist/cli/lib/question-prompt.d.ts.map +1 -0
  24. package/dist/cli/lib/question-prompt.js +204 -0
  25. package/dist/cli/lib/question-prompt.js.map +1 -0
  26. package/dist/cli/lib/question-schema.d.ts +84 -0
  27. package/dist/cli/lib/question-schema.d.ts.map +1 -0
  28. package/dist/cli/lib/question-schema.js +135 -0
  29. package/dist/cli/lib/question-schema.js.map +1 -0
  30. package/dist/cli/lib/question-types.d.ts +72 -0
  31. package/dist/cli/lib/question-types.d.ts.map +1 -0
  32. package/dist/cli/lib/question-types.js +28 -0
  33. package/dist/cli/lib/question-types.js.map +1 -0
  34. package/dist/cli/lib/types.d.ts +9 -1
  35. package/dist/cli/lib/types.d.ts.map +1 -1
  36. package/dist/cli/lib/types.js +2 -0
  37. package/dist/cli/lib/types.js.map +1 -1
  38. package/dist/lib/question-types.d.ts +69 -0
  39. package/dist/lib/question-types.d.ts.map +1 -0
  40. package/dist/lib/question-types.js +3 -0
  41. package/dist/lib/question-types.js.map +1 -0
  42. package/dist/server/types.d.ts +84 -1
  43. package/dist/server/types.d.ts.map +1 -1
  44. package/dist/server/types.js +4 -1
  45. package/dist/server/types.js.map +1 -1
  46. package/package.json +1 -1
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env tsx
2
+ /**
3
+ * Question generation script for AI rules
4
+ * Generates questions using local LLM (Ollama) and validates with Zod
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=generate-questions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-questions.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/generate-questions.ts"],"names":[],"mappings":";AAEA;;;GAGG"}
@@ -0,0 +1,120 @@
1
+ #!/usr/bin/env tsx
2
+ "use strict";
3
+ /**
4
+ * Question generation script for AI rules
5
+ * Generates questions using local LLM (Ollama) and validates with Zod
6
+ */
7
+ var __importDefault = (this && this.__importDefault) || function (mod) {
8
+ return (mod && mod.__esModule) ? mod : { "default": mod };
9
+ };
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ const node_fs_1 = require("node:fs");
12
+ const node_path_1 = require("node:path");
13
+ const chalk_1 = __importDefault(require("chalk"));
14
+ const commander_1 = require("commander");
15
+ const ollama_client_1 = require("../lib/ollama-client");
16
+ const question_prompt_1 = require("../lib/question-prompt");
17
+ const question_schema_1 = require("../lib/question-schema");
18
+ /**
19
+ * Ensures the suggested_questions directory exists
20
+ */
21
+ function ensureSuggestedQuestionsDir() {
22
+ const dir = (0, node_path_1.join)(process.cwd(), "suggested_questions");
23
+ if (!(0, node_fs_1.existsSync)(dir)) {
24
+ (0, node_fs_1.mkdirSync)(dir, { recursive: true });
25
+ console.log(chalk_1.default.gray("Created suggested_questions directory"));
26
+ }
27
+ }
28
+ /**
29
+ * Writes questions to file with pretty formatting
30
+ * @param questions - Questions to write
31
+ * @param ruleId - Rule ID for filename
32
+ * @param customOutput - Custom output path (optional)
33
+ */
34
+ function writeQuestionsFile(questions, ruleId, customOutput) {
35
+ const filename = customOutput || `${ruleId}.json`;
36
+ const filepath = customOutput ? (0, node_path_1.join)(process.cwd(), filename) : (0, node_path_1.join)(process.cwd(), "suggested_questions", filename);
37
+ const jsonContent = JSON.stringify(questions, null, 2);
38
+ (0, node_fs_1.writeFileSync)(filepath, jsonContent, "utf-8");
39
+ console.log(chalk_1.default.green(`✅ Questions written to: ${filepath}`));
40
+ }
41
+ /**
42
+ * Main function for question generation
43
+ */
44
+ async function generateQuestions(rulePath, options) {
45
+ // Extract rule ID from path for display and filename
46
+ const ruleId = rulePath.split("/").pop() || rulePath;
47
+ console.log(chalk_1.default.blue(`🔍 Generating questions for rule: ${ruleId}`));
48
+ console.log(chalk_1.default.gray(`Using model: ${options.model}`));
49
+ try {
50
+ // Build prompt from rule content
51
+ console.log(chalk_1.default.gray("📖 Reading rule content..."));
52
+ const prompt = (0, question_prompt_1.buildQuestionPrompt)(rulePath);
53
+ // Generate questions using Ollama
54
+ console.log(chalk_1.default.gray("🤖 Calling Ollama LLM..."));
55
+ const jsonResponse = await (0, ollama_client_1.generateQuestionsWithOllama)(prompt, options.model);
56
+ // Parse and validate response
57
+ console.log(chalk_1.default.gray("✅ Validating response..."));
58
+ const parseResult = JSON.parse(jsonResponse);
59
+ const validationResult = (0, question_schema_1.validateQuestionResponse)(parseResult);
60
+ // TODO: Add a way to retry the generation
61
+ if (validationResult.success === false) {
62
+ console.error(chalk_1.default.red("❌ Validation failed:"));
63
+ console.error(chalk_1.default.red(validationResult.error));
64
+ console.log(chalk_1.default.yellow("\nRaw LLM response:"));
65
+ console.log(chalk_1.default.gray(jsonResponse));
66
+ process.exit(1);
67
+ }
68
+ // TypeScript now knows validationResult is success case
69
+ const validatedQuestions = validationResult.data;
70
+ // Ensure output directory exists
71
+ ensureSuggestedQuestionsDir();
72
+ // Write questions to file
73
+ writeQuestionsFile(validatedQuestions, ruleId, options.output);
74
+ // Show summary
75
+ const questionCount = validatedQuestions.questions.length;
76
+ console.log(chalk_1.default.green(`\n🎉 Successfully generated ${questionCount} questions for '${ruleId}'`));
77
+ // Show question preview
78
+ console.log(chalk_1.default.blue("\n📋 Generated questions:"));
79
+ validatedQuestions.questions.forEach((q, index) => {
80
+ console.log(chalk_1.default.gray(`${index + 1}. [${q.type}] ${q.text}`));
81
+ });
82
+ console.log(chalk_1.default.yellow("\n💡 Next steps:"));
83
+ console.log(chalk_1.default.gray("1. Review the generated questions"));
84
+ console.log(chalk_1.default.gray("2. Edit if needed"));
85
+ console.log(chalk_1.default.gray("3. Move to questions/ folder when ready"));
86
+ }
87
+ catch (error) {
88
+ if (error instanceof ollama_client_1.OllamaError) {
89
+ console.error(chalk_1.default.red(`❌ Ollama Error: ${error.message}`));
90
+ if (error.message.includes("not running")) {
91
+ console.log(chalk_1.default.yellow("\n💡 To fix this:"));
92
+ console.log(chalk_1.default.gray("1. Install Ollama: https://ollama.ai"));
93
+ console.log(chalk_1.default.gray("2. Start Ollama server"));
94
+ console.log(chalk_1.default.gray("3. Pull a model: ollama pull llama3.2"));
95
+ }
96
+ }
97
+ else {
98
+ console.error(chalk_1.default.red(`❌ Error: ${error instanceof Error ? error.message : "Unknown error"}`));
99
+ }
100
+ process.exit(1);
101
+ }
102
+ }
103
+ // Create CLI program using Commander.js
104
+ const program = new commander_1.Command();
105
+ program
106
+ .name("generate-questions")
107
+ .description("Generate questions for AI rules using local LLM (Ollama)")
108
+ .argument("<rule-path>", "Path to rule directory (e.g., 'rules/cursor/brainstorming')")
109
+ .argument("[model]", "Model name (alternative to --model flag)", "")
110
+ .option("-m, --model <model>", "Ollama model to use")
111
+ .option("-o, --output <file>", "Custom output filename")
112
+ .action(async (rulePath, modelArg, options) => {
113
+ // Use option model, then fall back to positional model arg
114
+ const model = options.model || modelArg || "llama3.2";
115
+ // Call with merged options including model
116
+ await generateQuestions(rulePath, { ...options, model });
117
+ });
118
+ // Parse arguments and run
119
+ program.parse();
120
+ //# sourceMappingURL=generate-questions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-questions.js","sourceRoot":"","sources":["../../../../src/cli/commands/generate-questions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAmB,WAAW,EAAE,MAAM,cAAc,CAAC;AAEjE;;;GAGG;AACH,wBAAsB,WAAW,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6J1E"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAmB,WAAW,EAAE,MAAM,cAAc,CAAC;AAEjE;;;GAGG;AACH,wBAAsB,WAAW,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkR1E"}
@@ -20,7 +20,7 @@ async function initCommand(options = {}) {
20
20
  // Fetch available agents
21
21
  const agents = await (0, github_1.fetchAvailableAgents)();
22
22
  if (agents.length === 0) {
23
- console.log(chalk_1.default.red("❌ No AI agents found. Make sure the API server is running."));
23
+ console.error(chalk_1.default.red("❌ No AI agents found. Make sure the API server is running."));
24
24
  process.exit(1);
25
25
  }
26
26
  // Agent selection: use provided option or prompt
@@ -28,7 +28,7 @@ async function initCommand(options = {}) {
28
28
  if (options.agent) {
29
29
  // Validate provided agent
30
30
  if (!agents.includes(options.agent)) {
31
- console.log(chalk_1.default.red(`❌ Invalid agent: ${options.agent}`));
31
+ console.error(chalk_1.default.red(`❌ Invalid agent: ${options.agent}`));
32
32
  console.log(chalk_1.default.yellow(`Available agents: ${agents.join(", ")}`));
33
33
  process.exit(1);
34
34
  }
@@ -42,7 +42,7 @@ async function initCommand(options = {}) {
42
42
  // Fetch manifests for selected agent
43
43
  const manifests = await (0, github_1.fetchManifests)(selectedAgent);
44
44
  if (manifests.length === 0) {
45
- console.log(chalk_1.default.red("❌ No rule categories found for this agent"));
45
+ console.error(chalk_1.default.red("❌ No rule categories found for this agent"));
46
46
  return;
47
47
  }
48
48
  // Category selection: use provided options or prompt
@@ -58,7 +58,7 @@ async function initCommand(options = {}) {
58
58
  const validCategories = manifests.map((m) => m.id);
59
59
  const invalidCategories = options.categories.filter((cat) => !validCategories.includes(cat));
60
60
  if (invalidCategories.length > 0) {
61
- console.log(chalk_1.default.red(`❌ Invalid categories: ${invalidCategories.join(", ")}`));
61
+ console.error(chalk_1.default.red(`❌ Invalid categories: ${invalidCategories.join(", ")}`));
62
62
  console.log(chalk_1.default.yellow(`Available categories: ${validCategories.join(", ")}`));
63
63
  process.exit(1);
64
64
  }
@@ -95,7 +95,7 @@ async function initCommand(options = {}) {
95
95
  for (const categoryId of selectedCategories) {
96
96
  const manifest = manifests.find((m) => m.id === categoryId);
97
97
  if (!manifest) {
98
- console.log(chalk_1.default.red(`❌ Manifest not found for category: ${categoryId}`));
98
+ console.error(chalk_1.default.red(`❌ Manifest not found for category: ${categoryId}`));
99
99
  continue;
100
100
  }
101
101
  console.log(chalk_1.default.blue(`📦 Installing ${manifest.id}...`));
@@ -105,7 +105,7 @@ async function initCommand(options = {}) {
105
105
  // Fetch file content
106
106
  const content = await (0, github_1.fetchRuleFile)(selectedAgent, manifest.category, file.path);
107
107
  if (!content) {
108
- console.log(chalk_1.default.red(`❌ Failed to fetch file: ${file.path}`));
108
+ console.error(chalk_1.default.red(`❌ Failed to fetch file: ${file.path}`));
109
109
  continue;
110
110
  }
111
111
  // Extract filename from path (last segment)
@@ -137,7 +137,7 @@ async function initCommand(options = {}) {
137
137
  console.log(chalk_1.default.green(`✓ Installed: ${targetPath}`));
138
138
  }
139
139
  catch (error) {
140
- console.log(chalk_1.default.red(`❌ Error processing ${file.path}: ${error}`));
140
+ console.error(chalk_1.default.red(`❌ Error processing ${file.path}: ${error}`));
141
141
  }
142
142
  }
143
143
  // Add category to config
@@ -145,6 +145,107 @@ async function initCommand(options = {}) {
145
145
  Object.assign(config, updatedConfig);
146
146
  installedRules.push(manifest.id);
147
147
  }
148
+ // Install skills if requested via CLI
149
+ if (options.skills && options.skills.length > 0) {
150
+ console.log(chalk_1.default.blue("\n🎯 Checking for available skills..."));
151
+ const skills = await (0, github_1.fetchSkills)(selectedAgent);
152
+ // Filter to only selected skills
153
+ const selectedSkills = skills.filter((skill) => options.skills?.includes(skill.name));
154
+ // Check for non-existent skills and warn
155
+ const availableSkillNames = skills.map((s) => s.name);
156
+ const requestedSkillNames = options.skills;
157
+ const notFoundSkills = requestedSkillNames.filter((name) => !availableSkillNames.includes(name));
158
+ if (notFoundSkills.length > 0) {
159
+ console.error(chalk_1.default.red(`\n❌ Error: The following skills were not found and will be skipped: ${notFoundSkills.join(", ")}`));
160
+ }
161
+ if (selectedSkills.length > 0) {
162
+ let installedSkillsCount = 0;
163
+ for (const skill of selectedSkills) {
164
+ try {
165
+ // Apply skill naming convention for this agent
166
+ const targetPath = (0, files_1.applySkillNamingConvention)(selectedAgent, skill.name);
167
+ // Check for conflicts
168
+ const conflict = await (0, files_1.detectConflict)((0, node_path_1.join)(process.cwd(), targetPath));
169
+ if (conflict.hasConflict) {
170
+ // Handle conflict based on strategy
171
+ if (overwriteStrategy === "skip") {
172
+ console.log(chalk_1.default.yellow(`⏭️ Skipped (file exists): ${targetPath}`));
173
+ continue;
174
+ }
175
+ if (overwriteStrategy === "force") {
176
+ console.log(chalk_1.default.yellow(`⚠️ Overwriting: ${targetPath}`));
177
+ }
178
+ else {
179
+ // prompt strategy
180
+ const shouldOverwrite = await (0, prompts_1.promptConflictResolution)(targetPath);
181
+ if (!shouldOverwrite) {
182
+ console.log(chalk_1.default.yellow(`⏭️ Skipped: ${targetPath}`));
183
+ continue;
184
+ }
185
+ }
186
+ }
187
+ // Write skill file
188
+ await (0, files_1.writeRuleFile)(skill.content, (0, node_path_1.join)(process.cwd(), targetPath));
189
+ console.log(chalk_1.default.green(`✓ Installed skill: ${skill.name}`));
190
+ installedSkillsCount++;
191
+ }
192
+ catch (error) {
193
+ console.error(chalk_1.default.red(`❌ Error installing skill ${skill.name}: ${error}`));
194
+ }
195
+ }
196
+ console.log(chalk_1.default.green(`\n🎉 Successfully installed ${installedSkillsCount} skills`));
197
+ }
198
+ else {
199
+ console.log(chalk_1.default.yellow("No matching skills found"));
200
+ }
201
+ }
202
+ // Install workflows if requested via CLI
203
+ if (options.workflows && options.workflows.length > 0) {
204
+ console.log(chalk_1.default.blue("\n🎯 Installing workflows..."));
205
+ const allWorkflows = await (0, github_1.fetchWorkflows)(selectedAgent);
206
+ // Filter to only selected workflows
207
+ const selectedWorkflows = allWorkflows.filter((w) => options.workflows?.includes(w.name));
208
+ if (selectedWorkflows.length > 0) {
209
+ let installedWorkflowsCount = 0;
210
+ for (const workflow of selectedWorkflows) {
211
+ try {
212
+ // Workflows go to .agent/workflows/<name>.md
213
+ const targetPath = `.agent/workflows/${workflow.name}.md`;
214
+ // Check for conflicts
215
+ const conflict = await (0, files_1.detectConflict)((0, node_path_1.join)(process.cwd(), targetPath));
216
+ if (conflict.hasConflict) {
217
+ // Handle conflict based on strategy
218
+ if (overwriteStrategy === "skip") {
219
+ console.log(chalk_1.default.yellow(`⏭️ Skipped (file exists): ${targetPath}`));
220
+ continue;
221
+ }
222
+ if (overwriteStrategy === "force") {
223
+ console.log(chalk_1.default.yellow(`⚠️ Overwriting: ${targetPath}`));
224
+ }
225
+ else {
226
+ // prompt strategy
227
+ const shouldOverwrite = await (0, prompts_1.promptConflictResolution)(targetPath);
228
+ if (!shouldOverwrite) {
229
+ console.log(chalk_1.default.yellow(`⏭️ Skipped: ${targetPath}`));
230
+ continue;
231
+ }
232
+ }
233
+ }
234
+ // Write workflow file
235
+ await (0, files_1.writeRuleFile)(workflow.content, (0, node_path_1.join)(process.cwd(), targetPath));
236
+ console.log(chalk_1.default.green(`✓ Installed workflow: ${workflow.name}`));
237
+ installedWorkflowsCount++;
238
+ }
239
+ catch (error) {
240
+ console.error(chalk_1.default.red(`❌ Error installing workflow ${workflow.name}: ${error}`));
241
+ }
242
+ }
243
+ console.log(chalk_1.default.green(`\n🎉 Successfully installed ${installedWorkflowsCount} workflows`));
244
+ }
245
+ else {
246
+ console.log(chalk_1.default.yellow("No matching workflows found"));
247
+ }
248
+ }
148
249
  // Save updated config
149
250
  await (0, config_1.saveConfig)(process.cwd(), config);
150
251
  // Display success message
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -17,6 +17,8 @@ program
17
17
  .description("Initialize AI rules for the current project")
18
18
  .option("--agent <name>", "Specify the AI agent (cursor, windsurf, etc.)")
19
19
  .option("--categories <list>", "Comma-separated list of category IDs to install")
20
+ .option("--workflows <list>", "Comma-separated list of workflow IDs to install")
21
+ .option("--skills <list>", "Comma-separated list of skill IDs to install")
20
22
  .option("--overwrite-strategy <strategy>", "Conflict resolution strategy: prompt (ask), force (overwrite), or skip (keep existing)", "prompt")
21
23
  .action(async (options) => {
22
24
  try {
@@ -24,6 +26,8 @@ program
24
26
  const parsedOptions = {
25
27
  agent: options.agent,
26
28
  categories: options.categories ? options.categories.split(",").map((c) => c.trim()) : undefined,
29
+ workflows: options.workflows ? options.workflows.split(",").map((w) => w.trim()) : undefined,
30
+ skills: options.skills ? options.skills.split(",").map((s) => s.trim()) : undefined,
27
31
  overwriteStrategy: options.overwriteStrategy,
28
32
  };
29
33
  // Validate overwrite strategy
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":";;;;;;AAEA,kDAA0B;AAC1B,yCAAoC;AACpC,0CAA8C;AAE9C,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACL,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CACX,yHAAyH,CACzH;KACA,OAAO,CAAC,OAAO,CAAC,CAAC;AAEnB,OAAO;KACL,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,6CAA6C,CAAC;KAC1D,MAAM,CAAC,gBAAgB,EAAE,+CAA+C,CAAC;KACzE,MAAM,CAAC,qBAAqB,EAAE,iDAAiD,CAAC;KAChF,MAAM,CAAC,oBAAoB,EAAE,iDAAiD,CAAC;KAC/E,MAAM,CAAC,iBAAiB,EAAE,8CAA8C,CAAC;KACzE,MAAM,CACN,iCAAiC,EACjC,wFAAwF,EACxF,QAAQ,CACR;KACA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACzB,IAAI,CAAC;QACJ,+CAA+C;QAC/C,MAAM,aAAa,GAAG;YACrB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;YACvG,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;YACpG,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;YAC3F,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;SAC5C,CAAC;QAEF,8BAA8B;QAC9B,IAAI,aAAa,CAAC,iBAAiB,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC/G,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,iCAAiC,aAAa,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;YAC7F,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QAED,MAAM,IAAA,kBAAW,EAAC,aAAa,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;AACF,CAAC,CAAC,CAAC;AAEJ,OAAO;KACL,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,uBAAuB,CAAC;KACpC,MAAM,CAAC,GAAG,EAAE;IACZ,OAAO,CAAC,IAAI,EAAE,CAAC;AAChB,CAAC,CAAC,CAAC;AAEJ,0BAA0B;AAC1B,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;IAC5B,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,sBAAsB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC,CAAC;IAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH,gBAAgB;AAChB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;IAC7B,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH,+BAA+B;AAC/B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,mCAAmC;AACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACnC,OAAO,CAAC,IAAI,EAAE,CAAC;AAChB,CAAC"}
@@ -18,4 +18,12 @@ export declare function writeRuleFile(content: string, targetPath: string): Prom
18
18
  * @returns Target file path following agent conventions
19
19
  */
20
20
  export declare function applyNamingConvention(agent: AIAgent, filename: string): string;
21
+ /**
22
+ * Applies skill-specific naming conventions for skill files
23
+ * Converts flat file structure (skill-name.md) to directory structure (skill-name/SKILL.md)
24
+ * @param agent - AI agent type
25
+ * @param skillName - Name of the skill (without .md extension)
26
+ * @returns Target file path for the skill
27
+ */
28
+ export declare function applySkillNamingConvention(agent: AIAgent, skillName: string): string;
21
29
  //# sourceMappingURL=files.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../../src/cli/lib/files.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC;AAEvD;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAW9E;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOtF;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAqB9E"}
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../../src/cli/lib/files.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC;AAEvD;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAW9E;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOtF;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CA2B9E;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAiBpF"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.detectConflict = detectConflict;
4
4
  exports.writeRuleFile = writeRuleFile;
5
5
  exports.applyNamingConvention = applyNamingConvention;
6
+ exports.applySkillNamingConvention = applySkillNamingConvention;
6
7
  const node_fs_1 = require("node:fs");
7
8
  const promises_1 = require("node:fs/promises");
8
9
  const node_path_1 = require("node:path");
@@ -56,8 +57,34 @@ function applyNamingConvention(agent, filename) {
56
57
  return `.continue/rules/${filename}`;
57
58
  case types_1.AIAgent.CODY:
58
59
  return `.cody/rules/${filename}`;
60
+ case types_1.AIAgent.CLAUDE_CODE:
61
+ return `.claude/rules/${filename}`;
62
+ case types_1.AIAgent.ANTIGRAVITY:
63
+ return `.agent/rules/${filename}`;
59
64
  default:
60
65
  throw new Error(`Unsupported AI agent: ${agent}`);
61
66
  }
62
67
  }
68
+ /**
69
+ * Applies skill-specific naming conventions for skill files
70
+ * Converts flat file structure (skill-name.md) to directory structure (skill-name/SKILL.md)
71
+ * @param agent - AI agent type
72
+ * @param skillName - Name of the skill (without .md extension)
73
+ * @returns Target file path for the skill
74
+ */
75
+ function applySkillNamingConvention(agent, skillName) {
76
+ switch (agent) {
77
+ case types_1.AIAgent.CURSOR:
78
+ // Cursor uses .cursor/skills/ directory
79
+ return `.cursor/skills/${skillName}/SKILL.md`;
80
+ case types_1.AIAgent.CLAUDE_CODE:
81
+ // Convert skill-name to skill-name/SKILL.md
82
+ return `.claude/skills/${skillName}/SKILL.md`;
83
+ case types_1.AIAgent.ANTIGRAVITY:
84
+ // Follows agentskills.io standard: skill-name/SKILL.md
85
+ return `.agent/skills/${skillName}/SKILL.md`;
86
+ default:
87
+ throw new Error(`Skills are not supported for agent: ${agent}`);
88
+ }
89
+ }
63
90
  //# sourceMappingURL=files.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../../../../src/cli/lib/files.ts"],"names":[],"mappings":";;AAUA,wCAWC;AAOD,sCAOC;AAQD,sDAqBC;AAhED,qCAAoC;AACpC,+CAA4D;AAC5D,yCAAoC;AACpC,mCAAuD;AAEvD;;;;GAIG;AACI,KAAK,UAAU,cAAc,CAAC,QAAgB;IACpD,IAAI,CAAC;QACJ,MAAM,IAAA,iBAAM,EAAC,QAAQ,EAAE,mBAAS,CAAC,IAAI,CAAC,CAAC;QACvC,OAAO;YACN,WAAW,EAAE,IAAI;SACjB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACR,OAAO;YACN,WAAW,EAAE,KAAK;SAClB,CAAC;IACH,CAAC;AACF,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,aAAa,CAAC,OAAe,EAAE,UAAkB;IACtE,iDAAiD;IACjD,MAAM,GAAG,GAAG,IAAA,mBAAO,EAAC,UAAU,CAAC,CAAC;IAChC,MAAM,IAAA,gBAAK,EAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEtC,iBAAiB;IACjB,MAAM,IAAA,oBAAS,EAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;GAKG;AACH,SAAgB,qBAAqB,CAAC,KAAc,EAAE,QAAgB;IACrE,QAAQ,KAAK,EAAE,CAAC;QACf,KAAK,eAAO,CAAC,MAAM;YAClB,OAAO,iBAAiB,QAAQ,EAAE,CAAC;QAEpC,KAAK,eAAO,CAAC,QAAQ;YACpB,kFAAkF;YAClF,OAAO,mBAAmB,QAAQ,EAAE,CAAC;QAEtC,KAAK,eAAO,CAAC,KAAK;YACjB,OAAO,gBAAgB,QAAQ,EAAE,CAAC;QAEnC,KAAK,eAAO,CAAC,QAAQ;YACpB,OAAO,mBAAmB,QAAQ,EAAE,CAAC;QAEtC,KAAK,eAAO,CAAC,IAAI;YAChB,OAAO,eAAe,QAAQ,EAAE,CAAC;QAElC;YACC,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;IACpD,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../../../src/cli/lib/files.ts"],"names":[],"mappings":";;AAUA,wCAWC;AAOD,sCAOC;AAQD,sDA2BC;AASD,gEAiBC;AAhGD,qCAAoC;AACpC,+CAA4D;AAC5D,yCAAoC;AACpC,mCAAuD;AAEvD;;;;GAIG;AACI,KAAK,UAAU,cAAc,CAAC,QAAgB;IACpD,IAAI,CAAC;QACJ,MAAM,IAAA,iBAAM,EAAC,QAAQ,EAAE,mBAAS,CAAC,IAAI,CAAC,CAAC;QACvC,OAAO;YACN,WAAW,EAAE,IAAI;SACjB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACR,OAAO;YACN,WAAW,EAAE,KAAK;SAClB,CAAC;IACH,CAAC;AACF,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,aAAa,CAAC,OAAe,EAAE,UAAkB;IACtE,iDAAiD;IACjD,MAAM,GAAG,GAAG,IAAA,mBAAO,EAAC,UAAU,CAAC,CAAC;IAChC,MAAM,IAAA,gBAAK,EAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEtC,iBAAiB;IACjB,MAAM,IAAA,oBAAS,EAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;GAKG;AACH,SAAgB,qBAAqB,CAAC,KAAc,EAAE,QAAgB;IACrE,QAAQ,KAAK,EAAE,CAAC;QACf,KAAK,eAAO,CAAC,MAAM;YAClB,OAAO,iBAAiB,QAAQ,EAAE,CAAC;QAEpC,KAAK,eAAO,CAAC,QAAQ;YACpB,kFAAkF;YAClF,OAAO,mBAAmB,QAAQ,EAAE,CAAC;QAEtC,KAAK,eAAO,CAAC,KAAK;YACjB,OAAO,gBAAgB,QAAQ,EAAE,CAAC;QAEnC,KAAK,eAAO,CAAC,QAAQ;YACpB,OAAO,mBAAmB,QAAQ,EAAE,CAAC;QAEtC,KAAK,eAAO,CAAC,IAAI;YAChB,OAAO,eAAe,QAAQ,EAAE,CAAC;QAElC,KAAK,eAAO,CAAC,WAAW;YACvB,OAAO,iBAAiB,QAAQ,EAAE,CAAC;QAEpC,KAAK,eAAO,CAAC,WAAW;YACvB,OAAO,gBAAgB,QAAQ,EAAE,CAAC;QAEnC;YACC,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;IACpD,CAAC;AACF,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,0BAA0B,CAAC,KAAc,EAAE,SAAiB;IAC3E,QAAQ,KAAK,EAAE,CAAC;QACf,KAAK,eAAO,CAAC,MAAM;YAClB,wCAAwC;YACxC,OAAO,kBAAkB,SAAS,WAAW,CAAC;QAE/C,KAAK,eAAO,CAAC,WAAW;YACvB,4CAA4C;YAC5C,OAAO,kBAAkB,SAAS,WAAW,CAAC;QAE/C,KAAK,eAAO,CAAC,WAAW;YACvB,uDAAuD;YACvD,OAAO,iBAAiB,SAAS,WAAW,CAAC;QAE9C;YACC,MAAM,IAAI,KAAK,CAAC,uCAAuC,KAAK,EAAE,CAAC,CAAC;IAClE,CAAC;AACF,CAAC"}
@@ -18,4 +18,22 @@ export declare function fetchManifests(agent: string): Promise<Manifest[]>;
18
18
  * @returns File content as string, or null if file doesn't exist
19
19
  */
20
20
  export declare function fetchRuleFile(agent: string, category: string, filename: string): Promise<string | null>;
21
+ /**
22
+ * Fetches all skills for a specific agent from the API
23
+ * @param agent - AI agent name (e.g., 'claude-code')
24
+ * @returns Array of skill objects with name and content, or empty array if no skills
25
+ */
26
+ export declare function fetchSkills(agent: string): Promise<Array<{
27
+ name: string;
28
+ content: string;
29
+ }>>;
30
+ /**
31
+ * Fetches all workflows for a specific agent from the API
32
+ * @param agent - AI agent name (e.g., 'antigravity')
33
+ * @returns Array of workflow objects with name and content, or empty array if no workflows
34
+ */
35
+ export declare function fetchWorkflows(agent: string): Promise<Array<{
36
+ name: string;
37
+ content: string;
38
+ }>>;
21
39
  //# sourceMappingURL=github.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../../../src/cli/lib/github.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AA0DnD;;;GAGG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAQ9D;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAcvE;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAqB7G"}
1
+ {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../../../src/cli/lib/github.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAoEnD;;;GAGG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAQ9D;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAcvE;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAqB7G;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAclG;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAcrG"}
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.fetchAvailableAgents = fetchAvailableAgents;
4
4
  exports.fetchManifests = fetchManifests;
5
5
  exports.fetchRuleFile = fetchRuleFile;
6
+ exports.fetchSkills = fetchSkills;
7
+ exports.fetchWorkflows = fetchWorkflows;
6
8
  // API configuration
7
9
  const API_BASE_URL = process.env.AI_RULES_API_URL || "https://ai-rules-setup.vercel.app";
8
10
  // Cache for API responses to avoid multiple calls
@@ -94,4 +96,42 @@ async function fetchRuleFile(agent, category, filename) {
94
96
  return null;
95
97
  }
96
98
  }
99
+ /**
100
+ * Fetches all skills for a specific agent from the API
101
+ * @param agent - AI agent name (e.g., 'claude-code')
102
+ * @returns Array of skill objects with name and content, or empty array if no skills
103
+ */
104
+ async function fetchSkills(agent) {
105
+ try {
106
+ const data = await fetchRulesData();
107
+ const agentData = data.agents[agent];
108
+ if (!agentData || !agentData.skills) {
109
+ return [];
110
+ }
111
+ return agentData.skills;
112
+ }
113
+ catch (error) {
114
+ console.error(`Error fetching skills for agent ${agent}:`, error);
115
+ return [];
116
+ }
117
+ }
118
+ /**
119
+ * Fetches all workflows for a specific agent from the API
120
+ * @param agent - AI agent name (e.g., 'antigravity')
121
+ * @returns Array of workflow objects with name and content, or empty array if no workflows
122
+ */
123
+ async function fetchWorkflows(agent) {
124
+ try {
125
+ const data = await fetchRulesData();
126
+ const agentData = data.agents[agent];
127
+ if (!agentData || !agentData.workflows) {
128
+ return [];
129
+ }
130
+ return agentData.workflows;
131
+ }
132
+ catch (error) {
133
+ console.error(`Error fetching workflows for agent ${agent}:`, error);
134
+ return [];
135
+ }
136
+ }
97
137
  //# sourceMappingURL=github.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"github.js","sourceRoot":"","sources":["../../../../src/cli/lib/github.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github.js","sourceRoot":"","sources":["../../../../src/cli/lib/github.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Ollama LLM client for generating questions
3
+ * Handles connection, API calls, and response parsing
4
+ */
5
+ /**
6
+ * Configuration for Ollama client
7
+ */
8
+ interface OllamaConfig {
9
+ /** Ollama server URL */
10
+ baseUrl: string;
11
+ /** Default model to use */
12
+ defaultModel: string;
13
+ /** Request timeout in milliseconds */
14
+ timeout: number;
15
+ }
16
+ /**
17
+ * Error class for Ollama-specific errors
18
+ */
19
+ export declare class OllamaError extends Error {
20
+ statusCode?: number | undefined;
21
+ constructor(message: string, statusCode?: number | undefined);
22
+ }
23
+ /**
24
+ * Checks if Ollama server is running and accessible
25
+ * @param config - Ollama configuration
26
+ * @returns Promise that resolves to true if server is accessible, false on any error
27
+ */
28
+ export declare function checkOllamaHealth(config?: OllamaConfig): Promise<boolean>;
29
+ /**
30
+ * Calls Ollama API to generate text
31
+ * @param prompt - The prompt to send to the LLM
32
+ * @param model - Model to use (defaults to config default)
33
+ * @param config - Ollama configuration
34
+ * @returns Promise that resolves to the generated text
35
+ */
36
+ export declare function callOllama(prompt: string, model?: string, config?: OllamaConfig): Promise<string>;
37
+ /**
38
+ * Extracts JSON from LLM response text
39
+ * Handles cases where LLM returns pure JSON or wraps it in markdown code blocks
40
+ *
41
+ * @example
42
+ * // Pure JSON object
43
+ * extractJsonFromResponse('{"questions": [{"id": "1", "text": "test"}]}')
44
+ *
45
+ * // Pure JSON array
46
+ * extractJsonFromResponse('[{"id": "1", "text": "test"}]')
47
+ *
48
+ * // JSON in markdown code block
49
+ * extractJsonFromResponse('```json\n{"questions": []}\n```')
50
+ *
51
+ * // JSON with extra text
52
+ * extractJsonFromResponse('Here is the JSON: {"id": "1"}')
53
+ *
54
+ * @param response - Raw response from LLM
55
+ * @returns Extracted JSON string or null if not found
56
+ */
57
+ export declare function extractJsonFromResponse(response: string): string | null;
58
+ /**
59
+ * Generates questions using Ollama with error handling
60
+ * @param prompt - The prompt to send to the LLM
61
+ * @param model - Model to use (optional)
62
+ * @returns Promise that resolves to the generated JSON string
63
+ */
64
+ export declare function generateQuestionsWithOllama(prompt: string, model?: string): Promise<string>;
65
+ export {};
66
+ //# sourceMappingURL=ollama-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ollama-client.d.ts","sourceRoot":"","sources":["../../../../src/cli/lib/ollama-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,UAAU,YAAY;IACrB,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,2BAA2B;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;CAChB;AAoCD;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK;IAG7B,UAAU,CAAC,EAAE,MAAM;gBAD1B,OAAO,EAAE,MAAM,EACR,UAAU,CAAC,EAAE,MAAM,YAAA;CAK3B;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,GAAE,YAA6B,GAAG,OAAO,CAAC,OAAO,CAAC,CAkB/F;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC/B,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,GAAE,YAA6B,GACnC,OAAO,CAAC,MAAM,CAAC,CAkDjB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAmDvE;AAED;;;;;GAKG;AACH,wBAAsB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsBjG"}