@omaikit/agents 0.1.3 → 0.1.4

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 (102) hide show
  1. package/README.md +17 -0
  2. package/dist/ai-provider/openai.d.ts +2 -2
  3. package/dist/ai-provider/openai.d.ts.map +1 -1
  4. package/dist/ai-provider/openai.js +38 -111
  5. package/dist/ai-provider/openai.js.map +1 -1
  6. package/dist/ai-provider/provider.d.ts +7 -6
  7. package/dist/ai-provider/provider.d.ts.map +1 -1
  8. package/dist/analysis/cache-manager.d.ts +9 -0
  9. package/dist/analysis/cache-manager.d.ts.map +1 -0
  10. package/dist/analysis/cache-manager.js +33 -0
  11. package/dist/analysis/cache-manager.js.map +1 -0
  12. package/dist/analysis/context-writer.d.ts +29 -0
  13. package/dist/analysis/context-writer.d.ts.map +1 -0
  14. package/dist/analysis/context-writer.js +168 -0
  15. package/dist/analysis/context-writer.js.map +1 -0
  16. package/dist/analysis/index.d.ts +5 -0
  17. package/dist/analysis/index.d.ts.map +1 -0
  18. package/dist/analysis/index.js +5 -0
  19. package/dist/analysis/index.js.map +1 -0
  20. package/dist/analysis/plan-writer.d.ts +11 -0
  21. package/dist/analysis/plan-writer.d.ts.map +1 -0
  22. package/dist/analysis/plan-writer.js +87 -0
  23. package/dist/analysis/plan-writer.js.map +1 -0
  24. package/dist/analysis/test-writer.d.ts +9 -0
  25. package/dist/analysis/test-writer.d.ts.map +1 -0
  26. package/dist/analysis/test-writer.js +42 -0
  27. package/dist/analysis/test-writer.js.map +1 -0
  28. package/dist/coder/coder.d.ts.map +1 -1
  29. package/dist/coder/coder.js +27 -38
  30. package/dist/coder/coder.js.map +1 -1
  31. package/dist/coder/prompt-templates.d.ts +1 -1
  32. package/dist/coder/prompt-templates.d.ts.map +1 -1
  33. package/dist/coder/prompt-templates.js +25 -60
  34. package/dist/coder/prompt-templates.js.map +1 -1
  35. package/dist/index.d.ts +1 -1
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +1 -1
  38. package/dist/index.js.map +1 -1
  39. package/dist/manager/manager.d.ts.map +1 -1
  40. package/dist/manager/manager.js +5 -16
  41. package/dist/manager/manager.js.map +1 -1
  42. package/dist/planner/clarification-handler.d.ts.map +1 -1
  43. package/dist/planner/clarification-handler.js +2 -12
  44. package/dist/planner/clarification-handler.js.map +1 -1
  45. package/dist/planner/plan-parser.d.ts.map +1 -1
  46. package/dist/planner/plan-parser.js +33 -31
  47. package/dist/planner/plan-parser.js.map +1 -1
  48. package/dist/planner/planner.d.ts +3 -7
  49. package/dist/planner/planner.d.ts.map +1 -1
  50. package/dist/planner/planner.js +77 -230
  51. package/dist/planner/planner.js.map +1 -1
  52. package/dist/planner/prompt-templates.d.ts +4 -2
  53. package/dist/planner/prompt-templates.d.ts.map +1 -1
  54. package/dist/planner/prompt-templates.js +38 -137
  55. package/dist/planner/prompt-templates.js.map +1 -1
  56. package/dist/tester/prompt-templates.d.ts.map +1 -1
  57. package/dist/tester/prompt-templates.js +14 -21
  58. package/dist/tester/prompt-templates.js.map +1 -1
  59. package/dist/tools/list-files.d.ts.map +1 -1
  60. package/dist/tools/list-files.js +8 -1
  61. package/dist/tools/list-files.js.map +1 -1
  62. package/dist/tools/registry.js +1 -1
  63. package/dist/tools/registry.js.map +1 -1
  64. package/dist/tools/utils.d.ts.map +1 -1
  65. package/dist/tools/utils.js +34 -3
  66. package/dist/tools/utils.js.map +1 -1
  67. package/dist/utils/cache-manager.d.ts +9 -0
  68. package/dist/utils/cache-manager.d.ts.map +1 -0
  69. package/dist/utils/cache-manager.js +33 -0
  70. package/dist/utils/cache-manager.js.map +1 -0
  71. package/dist/utils/context-writer.d.ts +29 -0
  72. package/dist/utils/context-writer.d.ts.map +1 -0
  73. package/dist/utils/context-writer.js +168 -0
  74. package/dist/utils/context-writer.js.map +1 -0
  75. package/dist/utils/index.d.ts +7 -0
  76. package/dist/utils/index.d.ts.map +1 -0
  77. package/dist/utils/index.js +7 -0
  78. package/dist/utils/index.js.map +1 -0
  79. package/dist/utils/plan-writer.d.ts +17 -0
  80. package/dist/utils/plan-writer.d.ts.map +1 -0
  81. package/dist/utils/plan-writer.js +175 -0
  82. package/dist/utils/plan-writer.js.map +1 -0
  83. package/dist/utils/prompt.d.ts +3 -0
  84. package/dist/utils/prompt.d.ts.map +1 -0
  85. package/dist/utils/prompt.js +55 -0
  86. package/dist/utils/prompt.js.map +1 -0
  87. package/dist/utils/test-writer.d.ts +9 -0
  88. package/dist/utils/test-writer.d.ts.map +1 -0
  89. package/dist/utils/test-writer.js +42 -0
  90. package/dist/utils/test-writer.js.map +1 -0
  91. package/package.json +3 -3
  92. package/prompts/coder/task.md +59 -0
  93. package/prompts/manager/context.md +11 -0
  94. package/prompts/planner/clarification.md +12 -0
  95. package/prompts/planner/clarification.questions.md +10 -0
  96. package/prompts/planner/optimize.md +75 -0
  97. package/prompts/planner/plan-milestones.md +73 -0
  98. package/prompts/planner/repair.md +6 -0
  99. package/prompts/planner/summary.md +22 -0
  100. package/prompts/planner/system.md +4 -0
  101. package/prompts/planner/tasks.md +82 -0
  102. package/prompts/tester/prompt.md +19 -0
@@ -1,75 +1,40 @@
1
+ import { readPrompt } from '../utils/prompt.js';
1
2
  export class PromptTemplates {
2
- generatePrompt(description, projectType, techStack) {
3
- const techStackStr = techStack && techStack.length > 0 ? `Technology Stack: ${techStack.join(', ')}` : '';
4
- const projectTypeStr = projectType ? `Project Type: ${projectType}` : '';
3
+ generatePlanMilestonesPrompt(description, projectType, techStack) {
4
+ const techStackLine = techStack && techStack.length > 0 ? `Technology Stack: ${techStack.join(', ')}` : '';
5
+ const projectTypeLine = projectType ? `Project Type: ${projectType}` : '';
5
6
  const languageHint = this.getLanguageHint(projectType, techStack);
6
- const structureHint = this.getStructureHint(languageHint, projectType);
7
- return `You are an expert project planner. Generate a detailed Agile project plan for the following feature request.
8
-
9
- Feature Description: ${description}
10
-
11
- ${projectTypeStr}
12
- ${techStackStr}
13
- ${languageHint ? `Programming Language: ${languageHint}` : ''}
14
-
15
- Project Structure Guidance:
16
- ${structureHint}
17
-
18
- Generate a comprehensive plan with the following JSON structure:
19
- {
20
- "id": "P-0",
21
- "title": "Brief project title",
22
- "description": "Full description",
23
- "clarifications": [],
24
- "milestones": [
25
- {
26
- "id": "M1",
27
- "title": "Milestone name",
28
- "description": "Milestone description",
29
- "duration": 5,
30
- "successCriteria": ["Milestone success criteria"],
31
- "tasks": [
32
- {
33
- "id": "T1",
34
- "title": "Task name",
35
- "description": "Task description",
36
- "type": "feature",
37
- "estimatedEffort": 3,
38
- "acceptanceCriteria": ["Acceptance criteria"],
39
- "inputDependencies": ["T0"],
40
- "outputDependencies": ["T2"],
41
- "targetModule": "module-path",
42
- "affectedModules": ["module-path"],
43
- "suggestedApproach": "Brief implementation guidance",
44
- "technicalNotes": "Optional technical notes",
45
- "riskFactors": [
46
- {
47
- "description": "Risk description",
48
- "likelihood": "low",
49
- "impact": "medium",
50
- "mitigation": "Mitigation steps"
51
- }
52
- ],
53
- "status": "planned",
54
- "blockers": []
55
- }
56
- ]
7
+ const languageHintLine = languageHint ? `Programming Language: ${languageHint}` : '';
8
+ return readPrompt('planner.plan-milestones', {
9
+ description,
10
+ projectTypeLine,
11
+ techStackLine,
12
+ languageHintLine,
13
+ });
57
14
  }
58
- ]
59
- }
60
-
61
- Requirements:
62
- 1. Create 2-5 milestones
63
- 2. Each milestone should have 3-8 tasks
64
- 3. Effort estimates should be in hours (1-40)
65
- 4. Include realistic dependencies between tasks
66
- 5. Tasks should cover all aspects: design, implementation, testing, documentation
67
- 6. Use clear, actionable task titles
68
- 7. Ensure each task includes all required fields in the schema
69
- 8. Ensure dependency DAG is acyclic
70
- 9. Each task must reference the intended files/folders via targetModule and affectedModules using the project structure guidance
71
-
72
- Return ONLY valid JSON, no markdown or extra text.`;
15
+ generateTasksPrompt(context, plan, milestone) {
16
+ const languages = Array.isArray(context?.analysis?.languages)
17
+ ? context.analysis.languages.join(', ')
18
+ : 'unknown';
19
+ const summary = [
20
+ `Project Name: ${context?.project.name || 'Unknown project'}`,
21
+ `Project Description: ${context?.project?.description || 'No description provided.'}`,
22
+ `Project Root Path: ${context?.project?.rootPath || 'Unknown root path'}`,
23
+ `Languages Used: ${languages}`,
24
+ `Current Plan ID: ${plan?.id || 'P001'}`,
25
+ `Current Plan Title: ${plan?.title || 'No plan title provided.'}`,
26
+ `Current Plan Description: ${plan?.description || 'No plan description provided.'}`,
27
+ `Current Milestone ID: ${milestone.id || 'M001'}`,
28
+ `Current Milestone Title: ${milestone.title}`,
29
+ `Current Milestone Description: ${milestone.description || 'No description provided.'}`,
30
+ ].join('\n');
31
+ return readPrompt('planner.tasks', { summary });
32
+ }
33
+ generateOptimizePrompt(fullPlan) {
34
+ return readPrompt('planner.optimize', { fullPlan });
35
+ }
36
+ generateSummaryPrompt() {
37
+ return readPrompt('planner.summary');
73
38
  }
74
39
  getLanguageHint(projectType, techStack) {
75
40
  const entries = [projectType, ...(techStack ?? [])].filter((value) => Boolean(value));
@@ -90,79 +55,15 @@ Return ONLY valid JSON, no markdown or extra text.`;
90
55
  return 'PHP';
91
56
  return undefined;
92
57
  }
93
- getStructureHint(languageHint, projectType) {
94
- const type = (projectType || '').toLowerCase();
95
- if (languageHint === 'Go') {
96
- return `Use standard Go layout:
97
- - cmd/<app>/ (entrypoints)
98
- - internal/ (private packages)
99
- - pkg/ (public packages)
100
- - api/ (OpenAPI/protos)
101
- - configs/ (config files)
102
- - scripts/ (tooling)`;
103
- }
104
- if (languageHint === 'PHP') {
105
- return `Use PSR-4 layout:
106
- - src/ (application code)
107
- - tests/ (tests)
108
- - public/ (entrypoint)
109
- - config/ (configuration)
110
- - routes/ (routing)`;
111
- }
112
- if (type.includes('api') || type.includes('backend')) {
113
- return `Use a service-style layout:
114
- - src/
115
- - api/ (routes/controllers)
116
- - services/
117
- - repositories/
118
- - models/
119
- - middleware/
120
- - tests/
121
- - config/`;
122
- }
123
- if (type.includes('frontend') || type.includes('web')) {
124
- return `Use a web-app layout:
125
- - src/
126
- - components/
127
- - pages/ (or routes/)
128
- - hooks/ or utils/
129
- - styles/
130
- - public/
131
- - tests/`;
132
- }
133
- return `Use a standard modular layout:
134
- - src/ (core code)
135
- - tests/ (unit/integration tests)
136
- - config/ (configuration)
137
- - scripts/ (tooling)`;
138
- }
139
58
  generateClarificationPrompt(description, ambiguities) {
140
- return `Given this feature description: "${description}"
141
-
142
- I need clarification on these points:
143
- ${ambiguities.map((a) => `- ${a}`).join('\n')}
144
-
145
- Please provide brief, specific clarifications for each point. Format as JSON:
146
- {
147
- "clarifications": {
148
- "point1": "answer",
149
- "point2": "answer"
150
- }
151
- }`;
59
+ const ambiguitiesList = ambiguities.map((a) => `- ${a}`).join('\n');
60
+ return readPrompt('planner.clarification', { description, ambiguitiesList });
152
61
  }
153
62
  getSystemPrompt() {
154
- return `You are an expert Agile project planner with 10+ years of experience planning software projects.
155
- You excel at breaking down complex features into manageable tasks, identifying dependencies, and creating realistic effort estimates.
156
- You always think about the critical path and bottlenecks.
157
- You prefer generating plans in valid JSON format without any markdown formatting.`;
63
+ return readPrompt('planner.system');
158
64
  }
159
65
  generateRepairPrompt(rawResponse) {
160
- return `You are a JSON repair assistant. Fix the following malformed JSON and return ONLY valid JSON with the same schema as the planner output.
161
-
162
- Malformed JSON:
163
- ${rawResponse}
164
-
165
- Return ONLY valid JSON, no markdown or extra text.`;
66
+ return readPrompt('planner.repair', { rawResponse });
166
67
  }
167
68
  }
168
69
  //# sourceMappingURL=prompt-templates.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-templates.js","sourceRoot":"","sources":["../../src/planner/prompt-templates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-templates.js","sourceRoot":"","sources":["../../src/planner/prompt-templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,OAAO,eAAe;IAC1B,4BAA4B,CAC1B,WAAmB,EACnB,WAAoB,EACpB,SAAoB;QAEpB,MAAM,aAAa,GACjB,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAEvF,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC,iBAAiB,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAClE,MAAM,gBAAgB,GAAG,YAAY,CAAC,CAAC,CAAC,yBAAyB,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAErF,OAAO,UAAU,CAAC,yBAAyB,EAAE;YAC3C,WAAW;YACX,eAAe;YACf,aAAa;YACb,gBAAgB;SACjB,CAAC,CAAC;IACL,CAAC;IAED,mBAAmB,CAAC,OAAY,EAAE,IAAS,EAAE,SAAc;QACzD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC;YAC3D,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;YACvC,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,OAAO,GAAG;YACd,iBAAiB,OAAO,EAAE,OAAO,CAAC,IAAI,IAAI,iBAAiB,EAAE;YAC7D,wBAAwB,OAAO,EAAE,OAAO,EAAE,WAAW,IAAI,0BAA0B,EAAE;YACrF,sBAAsB,OAAO,EAAE,OAAO,EAAE,QAAQ,IAAI,mBAAmB,EAAE;YACzE,mBAAmB,SAAS,EAAE;YAC9B,oBAAoB,IAAI,EAAE,EAAE,IAAI,MAAM,EAAE;YACxC,uBAAuB,IAAI,EAAE,KAAK,IAAI,yBAAyB,EAAE;YACjE,6BAA6B,IAAI,EAAE,WAAW,IAAI,+BAA+B,EAAE;YACnF,yBAAyB,SAAS,CAAC,EAAE,IAAI,MAAM,EAAE;YACjD,4BAA4B,SAAS,CAAC,KAAK,EAAE;YAC7C,kCAAkC,SAAS,CAAC,WAAW,IAAI,0BAA0B,EAAE;SACxF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,OAAO,UAAU,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,sBAAsB,CAAC,QAAgB;QACrC,OAAO,UAAU,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,qBAAqB;QACnB,OAAO,UAAU,CAAC,iBAAiB,CAAC,CAAC;IACvC,CAAC;IAEO,eAAe,CAAC,WAAoB,EAAE,SAAoB;QAChE,MAAM,OAAO,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CACpF,OAAO,CAAC,KAAK,CAAC,CACf,CAAC;QACF,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAEjD,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1E,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,YAAY,CAAC;QACpF,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC5F,OAAO,YAAY,CAAC;QACtB,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,OAAO,QAAQ,CAAC;QACjD,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC;QAC7C,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;YACrF,OAAO,IAAI,CAAC;QACd,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO,KAAK,CAAC;QAE3E,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,2BAA2B,CAAC,WAAmB,EAAE,WAAqB;QACpE,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpE,OAAO,UAAU,CAAC,uBAAuB,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,eAAe;QACb,OAAO,UAAU,CAAC,gBAAgB,CAAC,CAAC;IACtC,CAAC;IAED,oBAAoB,CAAC,WAAmB;QACtC,OAAO,UAAU,CAAC,gBAAgB,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IACvD,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-templates.d.ts","sourceRoot":"","sources":["../../src/tester/prompt-templates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAG5C,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAsB;IAEhC,cAAc,CAClB,IAAI,EAAE,IAAI,EACV,cAAc,EAAE,GAAG,EACnB,IAAI,EAAE,GAAG,EACT,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC;CA4BnB"}
1
+ {"version":3,"file":"prompt-templates.d.ts","sourceRoot":"","sources":["../../src/tester/prompt-templates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAI5C,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAsB;IAEhC,cAAc,CAClB,IAAI,EAAE,IAAI,EACV,cAAc,EAAE,GAAG,EACnB,IAAI,EAAE,GAAG,EACT,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC;CAmBnB"}
@@ -1,30 +1,23 @@
1
1
  import { TestPatterns } from './test-patterns.js';
2
+ import { readPrompt } from '../utils/prompt.js';
2
3
  export class TestPromptTemplates {
3
4
  patterns = new TestPatterns();
4
5
  async generatePrompt(task, projectContext, plan, language, framework) {
5
6
  const patterns = this.patterns.getPatterns(language, framework);
6
7
  const projectName = projectContext?.name || projectContext?.project?.name || 'the project';
7
- return [
8
- `You are a test engineer generating ${framework} tests for ${projectName}.`,
9
- '',
10
- `Task: ${task.title}`,
11
- `Description: ${task.description || 'No description provided.'}`,
12
- '',
13
- 'Requirements:',
14
- ...task.acceptanceCriteria.map((criteria) => `- ${criteria}`),
15
- '',
16
- 'Generate comprehensive unit, integration, and edge case tests.',
17
- 'Return tests as code blocks. Include a file header in each block like:',
18
- ' // File: tests/<name>.test.ts',
19
- '',
20
- 'Patterns:',
21
- ...patterns.map((pattern) => `- ${pattern.name}: ${pattern.description}\n Example: ${pattern.example}`),
22
- '',
23
- `Target language: ${language}`,
24
- `Test framework: ${framework}`,
25
- '',
26
- 'Ensure tests include error handling, clear assertions, and descriptive names.',
27
- ].join('\n');
8
+ const acceptanceCriteria = task.acceptanceCriteria.map((criteria) => `- ${criteria}`).join('\n');
9
+ const patternLines = patterns
10
+ .map((pattern) => `- ${pattern.name}: ${pattern.description}\n Example: ${pattern.example}`)
11
+ .join('\n');
12
+ return readPrompt('tester.prompt', {
13
+ framework,
14
+ projectName,
15
+ taskTitle: task.title,
16
+ taskDescription: task.description || 'No description provided.',
17
+ acceptanceCriteria,
18
+ patterns: patternLines,
19
+ language,
20
+ });
28
21
  }
29
22
  }
30
23
  //# sourceMappingURL=prompt-templates.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-templates.js","sourceRoot":"","sources":["../../src/tester/prompt-templates.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,OAAO,mBAAmB;IACtB,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;IAEtC,KAAK,CAAC,cAAc,CAClB,IAAU,EACV,cAAmB,EACnB,IAAS,EACT,QAAgB,EAChB,SAAiB;QAEjB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,cAAc,EAAE,IAAI,IAAI,cAAc,EAAE,OAAO,EAAE,IAAI,IAAI,aAAa,CAAC;QAE3F,OAAO;YACL,sCAAsC,SAAS,cAAc,WAAW,GAAG;YAC3E,EAAE;YACF,SAAS,IAAI,CAAC,KAAK,EAAE;YACrB,gBAAgB,IAAI,CAAC,WAAW,IAAI,0BAA0B,EAAE;YAChE,EAAE;YACF,eAAe;YACf,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC7D,EAAE;YACF,gEAAgE;YAChE,wEAAwE;YACxE,iCAAiC;YACjC,EAAE;YACF,WAAW;YACX,GAAG,QAAQ,CAAC,GAAG,CACb,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,WAAW,gBAAgB,OAAO,CAAC,OAAO,EAAE,CACxF;YACD,EAAE;YACF,oBAAoB,QAAQ,EAAE;YAC9B,mBAAmB,SAAS,EAAE;YAC9B,EAAE;YACF,+EAA+E;SAChF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;CACF"}
1
+ {"version":3,"file":"prompt-templates.js","sourceRoot":"","sources":["../../src/tester/prompt-templates.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,OAAO,mBAAmB;IACtB,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;IAEtC,KAAK,CAAC,cAAc,CAClB,IAAU,EACV,cAAmB,EACnB,IAAS,EACT,QAAgB,EAChB,SAAiB;QAEjB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,cAAc,EAAE,IAAI,IAAI,cAAc,EAAE,OAAO,EAAE,IAAI,IAAI,aAAa,CAAC;QAE3F,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjG,MAAM,YAAY,GAAG,QAAQ;aAC1B,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,WAAW,gBAAgB,OAAO,CAAC,OAAO,EAAE,CAAC;aAC5F,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,OAAO,UAAU,CAAC,eAAe,EAAE;YACjC,SAAS;YACT,WAAW;YACX,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,eAAe,EAAE,IAAI,CAAC,WAAW,IAAI,0BAA0B;YAC/D,kBAAkB;YAClB,QAAQ,EAAE,YAAY;YACtB,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"list-files.d.ts","sourceRoot":"","sources":["../../src/tools/list-files.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGtD,eAAO,MAAM,uBAAuB,EAAE,cAiBrC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,WAoBlC,CAAC"}
1
+ {"version":3,"file":"list-files.d.ts","sourceRoot":"","sources":["../../src/tools/list-files.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGtD,eAAO,MAAM,uBAAuB,EAAE,cAiBrC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,WA0BlC,CAAC"}
@@ -32,7 +32,14 @@ export const listFilesToolHandler = (args, context) => {
32
32
  : undefined;
33
33
  const files = walkFiles(absolutePath, includePattern);
34
34
  const maxResults = typeof args.maxResults === 'number' ? Math.max(args.maxResults, 1) : files.length;
35
- const sliced = files.slice(0, maxResults).map((file) => path.relative(root, file));
35
+ const baseRoot = path.resolve(root);
36
+ const sliced = files.slice(0, maxResults).map((file) => {
37
+ const relativeToRoot = path.relative(baseRoot, file);
38
+ if (relativeToRoot && !relativeToRoot.startsWith('..') && !path.isAbsolute(relativeToRoot)) {
39
+ return relativeToRoot;
40
+ }
41
+ return path.relative(absolutePath, file);
42
+ });
36
43
  return { ok: true, data: { path: relativePath, files: sliced } };
37
44
  };
38
45
  //# sourceMappingURL=list-files.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-files.js","sourceRoot":"","sources":["../../src/tools/list-files.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAElE,MAAM,CAAC,MAAM,uBAAuB,GAAmB;IACrD,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,uDAAuD;IACpE,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,oEAAoE;aAClF;YACD,cAAc,EAAE;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,6CAA6C;aAC3D;YACD,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,oCAAoC,EAAE;SACnF;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IACjE,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IACxF,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC9D,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAEtE,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACvC,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QAClB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;IAC3E,CAAC;IAED,MAAM,cAAc,GAClB,OAAO,IAAI,CAAC,cAAc,KAAK,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;QACvE,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC;QAClC,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,KAAK,GAAG,SAAS,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;IACrG,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAEnF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC;AACnE,CAAC,CAAC"}
1
+ {"version":3,"file":"list-files.js","sourceRoot":"","sources":["../../src/tools/list-files.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAElE,MAAM,CAAC,MAAM,uBAAuB,GAAmB;IACrD,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,uDAAuD;IACpE,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,oEAAoE;aAClF;YACD,cAAc,EAAE;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,6CAA6C;aAC3D;YACD,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,oCAAoC,EAAE;SACnF;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IACjE,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IACxF,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC9D,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAEtE,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACvC,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QAClB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;IAC3E,CAAC;IAED,MAAM,cAAc,GAClB,OAAO,IAAI,CAAC,cAAc,KAAK,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;QACvE,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC;QAClC,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,KAAK,GAAG,SAAS,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;IACrG,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACrD,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACrD,IAAI,cAAc,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YAC3F,OAAO,cAAc,CAAC;QACxB,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC;AACnE,CAAC,CAAC"}
@@ -23,7 +23,7 @@ export class ToolRegistry {
23
23
  return await handler(args, context);
24
24
  }
25
25
  catch (error) {
26
- console.error(error);
26
+ // console.error(error);
27
27
  const message = error.message || String(error);
28
28
  return { ok: false, error: { message, code: 'TOOL_EXEC_ERROR' } };
29
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,YAAY;IACf,WAAW,GAAG,IAAI,GAAG,EAA0B,CAAC;IAChD,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;IAElD,QAAQ,CAAC,UAA0B,EAAE,OAAoB;QACvD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,aAAa,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,cAAc;QACZ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,IAAI,CACR,IAAY,EACZ,IAA6B,EAC7B,OAAoB;QAEpB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,mBAAmB,IAAI,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,CAAC;QAC9F,CAAC;QACD,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,MAAM,OAAO,GAAI,KAAe,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,CAAC;QACpE,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,YAAY;IACf,WAAW,GAAG,IAAI,GAAG,EAA0B,CAAC;IAChD,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;IAElD,QAAQ,CAAC,UAA0B,EAAE,OAAoB;QACvD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,aAAa,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,cAAc;QACZ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,IAAI,CACR,IAAY,EACZ,IAA6B,EAC7B,OAAoB;QAEpB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,mBAAmB,IAAI,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,CAAC;QAC9F,CAAC;QACD,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,wBAAwB;YACxB,MAAM,OAAO,GAAI,KAAe,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,CAAC;QACpE,CAAC;IACH,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/tools/utils.ts"],"names":[],"mappings":"AAaA,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,GAChB;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAchD;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAIvD;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,cAAwB,GAAG,MAAM,EAAE,CAG5F;AAED,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EAAE,EACf,QAAQ,GAAE,cAAwB,GACjC,IAAI,CAEN;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAuB7E;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIhD"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/tools/utils.ts"],"names":[],"mappings":"AAaA,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,GAChB;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAchD;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAIvD;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,cAAwB,GAAG,MAAM,EAAE,CAG5F;AAED,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EAAE,EACf,QAAQ,GAAE,cAAwB,GACjC,IAAI,CAEN;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAwB7E;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAqChD"}
@@ -50,7 +50,8 @@ export function walkFiles(rootPath, includePattern) {
50
50
  else if (entry.isFile()) {
51
51
  const filePath = path.join(current, entry.name);
52
52
  const relative = path.relative(rootPath, filePath);
53
- if (!includePattern || includePattern.test(relative)) {
53
+ const normalizedRelative = relative.replace(/\\/g, '/');
54
+ if (!includePattern || includePattern.test(normalizedRelative)) {
54
55
  results.push(filePath);
55
56
  }
56
57
  }
@@ -59,10 +60,40 @@ export function walkFiles(rootPath, includePattern) {
59
60
  return results;
60
61
  }
61
62
  export function globToRegex(glob) {
62
- const escaped = glob.replace(/[.+^${}()|[\]\\]/g, '\\$&');
63
- const regex = escaped.replace(/\*\*/g, '.*').replace(/\*/g, '[^/\\\\]*').replace(/\?/g, '.');
63
+ const normalizedGlob = glob.replace(/\\/g, '/');
64
+ let regex = '';
65
+ let i = 0;
66
+ while (i < normalizedGlob.length) {
67
+ const char = normalizedGlob[i];
68
+ if (char === '/') {
69
+ regex += '/';
70
+ i += 1;
71
+ continue;
72
+ }
73
+ if (char === '*') {
74
+ const isDouble = glob[i + 1] === '*';
75
+ if (isDouble) {
76
+ regex += '.*';
77
+ i += 2;
78
+ continue;
79
+ }
80
+ regex += '[^/\\\\]*';
81
+ i += 1;
82
+ continue;
83
+ }
84
+ if (char === '?') {
85
+ regex += '[^/\\\\]';
86
+ i += 1;
87
+ continue;
88
+ }
89
+ regex += escapeRegexChar(char);
90
+ i += 1;
91
+ }
64
92
  return new RegExp(`^${regex}$`, 'i');
65
93
  }
94
+ function escapeRegexChar(value) {
95
+ return value.replace(/[\\^$.*+?()[\]{}|]/g, '\\$&');
96
+ }
66
97
  function normalizePath(input) {
67
98
  const normalized = path.resolve(input);
68
99
  return process.platform === 'win32' ? normalized.toLowerCase() : normalized;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/tools/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/tools/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export declare class CacheManager {
2
+ private cacheDir;
3
+ constructor(baseDir?: string);
4
+ getCachePath(key: string): string;
5
+ has(key: string): boolean;
6
+ read<T = unknown>(key: string): T | null;
7
+ write(key: string, value: unknown): void;
8
+ }
9
+ //# sourceMappingURL=cache-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-manager.d.ts","sourceRoot":"","sources":["../../src/utils/cache-manager.ts"],"names":[],"mappings":"AAGA,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAS;gBAEb,OAAO,GAAE,MAAsB;IAK3C,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAIjC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAWxC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;CAIzC"}
@@ -0,0 +1,33 @@
1
+ import * as fs from 'fs';
2
+ import * as path from 'path';
3
+ export class CacheManager {
4
+ cacheDir;
5
+ constructor(baseDir = process.cwd()) {
6
+ this.cacheDir = path.join(baseDir, '.omaikit', 'cache');
7
+ if (!fs.existsSync(this.cacheDir))
8
+ fs.mkdirSync(this.cacheDir, { recursive: true });
9
+ }
10
+ getCachePath(key) {
11
+ return path.join(this.cacheDir, encodeURIComponent(key) + '.json');
12
+ }
13
+ has(key) {
14
+ return fs.existsSync(this.getCachePath(key));
15
+ }
16
+ read(key) {
17
+ const p = this.getCachePath(key);
18
+ if (!fs.existsSync(p))
19
+ return null;
20
+ const raw = fs.readFileSync(p, 'utf-8');
21
+ try {
22
+ return JSON.parse(raw);
23
+ }
24
+ catch (_e) {
25
+ return null;
26
+ }
27
+ }
28
+ write(key, value) {
29
+ const p = this.getCachePath(key);
30
+ fs.writeFileSync(p, JSON.stringify(value, null, 2), 'utf-8');
31
+ }
32
+ }
33
+ //# sourceMappingURL=cache-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-manager.js","sourceRoot":"","sources":["../../src/utils/cache-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,MAAM,OAAO,YAAY;IACf,QAAQ,CAAS;IAEzB,YAAY,UAAkB,OAAO,CAAC,GAAG,EAAE;QACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACxD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,YAAY,CAAC,GAAW;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IACrE,CAAC;IAED,GAAG,CAAC,GAAW;QACb,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,CAAc,GAAW;QAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACnC,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,CAAC;QAC9B,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAW,EAAE,KAAc;QAC/B,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACjC,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC;CACF"}
@@ -0,0 +1,29 @@
1
+ interface ContextSummary {
2
+ project: {
3
+ name: string;
4
+ rootPath: string;
5
+ description?: string;
6
+ };
7
+ analysis: {
8
+ languages: string[];
9
+ fileCount: number;
10
+ totalLOC: number;
11
+ dependencies: string[];
12
+ };
13
+ generatedAt: string;
14
+ }
15
+ export declare class ContextWriter {
16
+ private baseDir;
17
+ private contextFile;
18
+ constructor(baseDir?: string);
19
+ writeContext(rootPath?: string, descriptionOverride?: string): Promise<string>;
20
+ readContext(): Promise<ContextSummary | null>;
21
+ private writeContextFile;
22
+ private buildContext;
23
+ private readDescription;
24
+ private readDependencies;
25
+ private scanProject;
26
+ private countLines;
27
+ }
28
+ export {};
29
+ //# sourceMappingURL=context-writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-writer.d.ts","sourceRoot":"","sources":["../../src/utils/context-writer.ts"],"names":[],"mappings":"AAGA,UAAU,cAAc;IACtB,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,QAAQ,EAAE;QACR,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;CACrB;AAqCD,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,WAAW,CAAkB;gBAEzB,OAAO,CAAC,EAAE,MAAM;IAMtB,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK9E,WAAW,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAanD,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,WAAW;IAmCnB,OAAO,CAAC,UAAU;CAQnB"}