vralphy 0.0.3 → 0.0.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.
- package/README.md +34 -15
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +16 -23
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/plan.d.ts.map +1 -1
- package/dist/commands/plan.js +16 -23
- package/dist/commands/plan.js.map +1 -1
- package/dist/commands/spec.d.ts.map +1 -1
- package/dist/commands/spec.js +18 -15
- package/dist/commands/spec.js.map +1 -1
- package/dist/lib/init.d.ts.map +1 -1
- package/dist/lib/init.js +23 -9
- package/dist/lib/init.js.map +1 -1
- package/dist/lib/prompts.d.ts +12 -5
- package/dist/lib/prompts.d.ts.map +1 -1
- package/dist/lib/prompts.js +55 -9
- package/dist/lib/prompts.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -40,9 +40,7 @@ npx vralphy init
|
|
|
40
40
|
This creates:
|
|
41
41
|
- `specs/` - Feature specifications directory
|
|
42
42
|
- `AGENTS.md` - Operational guide (build/test commands)
|
|
43
|
-
-
|
|
44
|
-
- `PROMPT_build.md` - Build mode prompt
|
|
45
|
-
- `PROMPT_spec.md` - Spec creation prompt
|
|
43
|
+
- `.vralphy/prompts/` - Prompt templates (plan.md, build.md, spec.md)
|
|
46
44
|
- `IMPLEMENTATION_PLAN.md` - Task tracking
|
|
47
45
|
|
|
48
46
|
2. **Create specifications:**
|
|
@@ -104,15 +102,23 @@ vralphy agents # List available agents
|
|
|
104
102
|
|
|
105
103
|
```
|
|
106
104
|
your-project/
|
|
105
|
+
├── .vralphy/
|
|
106
|
+
│ └── prompts/ # vralphy prompt templates
|
|
107
|
+
│ ├── plan.md
|
|
108
|
+
│ ├── build.md
|
|
109
|
+
│ └── spec.md
|
|
110
|
+
├── .claude/ # Claude engine's native location (if using Claude)
|
|
111
|
+
│ ├── skills/ # Skills loaded on-demand
|
|
112
|
+
│ └── agents/ # Agents spawned on-demand
|
|
107
113
|
├── specs/ # Feature specifications
|
|
108
114
|
│ ├── authentication.md
|
|
109
115
|
│ └── api-endpoints.md
|
|
110
116
|
├── AGENTS.md # Operational guide (~60 lines max)
|
|
111
|
-
|
|
112
|
-
├── PROMPT_plan.md # Planning prompt template
|
|
113
|
-
└── PROMPT_build.md # Build prompt template
|
|
117
|
+
└── IMPLEMENTATION_PLAN.md # Current task list
|
|
114
118
|
```
|
|
115
119
|
|
|
120
|
+
**Key principle**: vralphy stores only its prompts in `.vralphy/`. Skills and agents come from the engine's native location (`.claude/`, `.opencode/`, etc.).
|
|
121
|
+
|
|
116
122
|
### 2. The Loop
|
|
117
123
|
|
|
118
124
|
**Planning Phase** (`vralphy plan`):
|
|
@@ -169,12 +175,27 @@ Model aliases:
|
|
|
169
175
|
vralphy --model opus --executor sonnet build
|
|
170
176
|
```
|
|
171
177
|
|
|
172
|
-
### 5. Skills & Agents
|
|
178
|
+
### 5. Skills & Agents (Lazy Loading)
|
|
179
|
+
|
|
180
|
+
**Context is precious.** vralphy does NOT preload all skills/agents into prompts. Instead, the agent discovers and loads them on-demand from the engine's native locations:
|
|
181
|
+
|
|
182
|
+
| Engine | Skills Location | Agents Location |
|
|
183
|
+
|----------|---------------------|---------------------|
|
|
184
|
+
| Claude | `.claude/skills/` | `.claude/agents/` |
|
|
185
|
+
| OpenCode | `.opencode/skills/` | `.opencode/agents/` |
|
|
173
186
|
|
|
174
|
-
**
|
|
187
|
+
**When the agent loads a skill:**
|
|
188
|
+
- Current task requires domain-specific knowledge
|
|
189
|
+
- A spec explicitly references a framework with a matching skill
|
|
190
|
+
- After failing twice at something - checks if a skill could help
|
|
175
191
|
|
|
192
|
+
**When the agent spawns an agent:**
|
|
193
|
+
- Task requires deep focused expertise (security audit, architecture review)
|
|
194
|
+
- Needs a second opinion on a complex decision
|
|
195
|
+
- Parallel work that benefits from isolation
|
|
196
|
+
|
|
197
|
+
**Skill format** (`.claude/skills/react-patterns.md`):
|
|
176
198
|
```markdown
|
|
177
|
-
<!-- .claude/skills/react-patterns.md -->
|
|
178
199
|
---
|
|
179
200
|
name: react-patterns
|
|
180
201
|
description: React best practices
|
|
@@ -187,10 +208,8 @@ triggers:
|
|
|
187
208
|
[knowledge content]
|
|
188
209
|
```
|
|
189
210
|
|
|
190
|
-
**
|
|
191
|
-
|
|
211
|
+
**Agent format** (`.claude/agents/code-reviewer.md`):
|
|
192
212
|
```markdown
|
|
193
|
-
<!-- agents/code-reviewer.md -->
|
|
194
213
|
---
|
|
195
214
|
name: code-reviewer
|
|
196
215
|
description: Reviews code for bugs
|
|
@@ -200,10 +219,10 @@ model: sonnet
|
|
|
200
219
|
You are a code review specialist...
|
|
201
220
|
```
|
|
202
221
|
|
|
203
|
-
List available
|
|
222
|
+
List what's available:
|
|
204
223
|
```bash
|
|
205
|
-
vralphy skills
|
|
206
|
-
vralphy agents
|
|
224
|
+
vralphy skills # Shows skills in engine-native location
|
|
225
|
+
vralphy agents # Shows agents in engine-native location
|
|
207
226
|
```
|
|
208
227
|
|
|
209
228
|
## Configuration
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIjD,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAiF9F"}
|
package/dist/commands/build.js
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { existsSync } from 'fs';
|
|
2
2
|
import { getEngine } from '../lib/engines/index.js';
|
|
3
3
|
import { loadPrompt, interpolatePrompt, DEFAULT_BUILD_PROMPT } from '../lib/prompts.js';
|
|
4
|
-
import { loadSkills, filterSkillsByTriggers, formatSkillsForPrompt } from '../lib/skills.js';
|
|
5
|
-
import { loadAgents, formatAgentsForPrompt } from '../lib/agents.js';
|
|
6
|
-
import { getSkillsDir, getAgentsDir } from '../lib/config.js';
|
|
7
4
|
/**
|
|
8
5
|
* Execute build mode
|
|
9
6
|
*/
|
|
@@ -18,10 +15,11 @@ export async function buildCommand(config, options) {
|
|
|
18
15
|
console.log(`Starting build mode with ${config.engine} engine`);
|
|
19
16
|
console.log(`Model: ${config.model}, Executor: ${config.executor}`);
|
|
20
17
|
console.log(`Max iterations: ${maxIterations || 'unlimited'}`);
|
|
21
|
-
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
// Prompt locations in order of preference
|
|
19
|
+
const promptPaths = [
|
|
20
|
+
'.vralphy/prompts/build.md', // New location
|
|
21
|
+
'PROMPT_build.md', // Legacy location (backwards compat)
|
|
22
|
+
];
|
|
25
23
|
while (true) {
|
|
26
24
|
if (maxIterations > 0 && iteration >= maxIterations) {
|
|
27
25
|
console.log(`Reached max iterations (${maxIterations})`);
|
|
@@ -29,24 +27,19 @@ export async function buildCommand(config, options) {
|
|
|
29
27
|
}
|
|
30
28
|
console.log(`\n=== Iteration ${iteration + 1} ===\n`);
|
|
31
29
|
let prompt;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
30
|
+
const promptContext = {
|
|
31
|
+
model: config.model,
|
|
32
|
+
executor: config.executor,
|
|
33
|
+
engine: config.engine,
|
|
34
|
+
};
|
|
35
|
+
// Find first existing prompt file
|
|
36
|
+
const existingPromptPath = promptPaths.find(p => existsSync(p));
|
|
37
|
+
if (existingPromptPath) {
|
|
38
|
+
prompt = await loadPrompt(existingPromptPath, promptContext);
|
|
37
39
|
}
|
|
38
40
|
else {
|
|
39
|
-
prompt
|
|
40
|
-
|
|
41
|
-
executor: config.executor,
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
const relevantSkills = filterSkillsByTriggers(skills, prompt);
|
|
45
|
-
if (relevantSkills.length > 0) {
|
|
46
|
-
prompt += '\n\n' + formatSkillsForPrompt(relevantSkills);
|
|
47
|
-
}
|
|
48
|
-
if (agents.length > 0) {
|
|
49
|
-
prompt += '\n\n' + formatAgentsForPrompt(agents, config.executor);
|
|
41
|
+
// Use default prompt with lazy loading section already included
|
|
42
|
+
prompt = interpolatePrompt(DEFAULT_BUILD_PROMPT, promptContext);
|
|
50
43
|
}
|
|
51
44
|
if (config.dryRun) {
|
|
52
45
|
console.log('--- DRY RUN: Would execute prompt ---');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEhC,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIjD,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAiF5F"}
|
package/dist/commands/plan.js
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { existsSync } from 'fs';
|
|
2
2
|
import { getEngine } from '../lib/engines/index.js';
|
|
3
3
|
import { loadPrompt, interpolatePrompt, DEFAULT_PLAN_PROMPT } from '../lib/prompts.js';
|
|
4
|
-
import { loadSkills, filterSkillsByTriggers, formatSkillsForPrompt } from '../lib/skills.js';
|
|
5
|
-
import { loadAgents, formatAgentsForPrompt } from '../lib/agents.js';
|
|
6
|
-
import { getSkillsDir, getAgentsDir } from '../lib/config.js';
|
|
7
4
|
/**
|
|
8
5
|
* Execute plan mode
|
|
9
6
|
*/
|
|
@@ -18,10 +15,11 @@ export async function planCommand(config, options) {
|
|
|
18
15
|
console.log(`Starting plan mode with ${config.engine} engine`);
|
|
19
16
|
console.log(`Model: ${config.model}, Executor: ${config.executor}`);
|
|
20
17
|
console.log(`Max iterations: ${maxIterations || 'unlimited'}`);
|
|
21
|
-
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
// Prompt locations in order of preference
|
|
19
|
+
const promptPaths = [
|
|
20
|
+
'.vralphy/prompts/plan.md', // New location
|
|
21
|
+
'PROMPT_plan.md', // Legacy location (backwards compat)
|
|
22
|
+
];
|
|
25
23
|
while (true) {
|
|
26
24
|
if (maxIterations > 0 && iteration >= maxIterations) {
|
|
27
25
|
console.log(`Reached max iterations (${maxIterations})`);
|
|
@@ -29,24 +27,19 @@ export async function planCommand(config, options) {
|
|
|
29
27
|
}
|
|
30
28
|
console.log(`\n=== Plan Iteration ${iteration + 1} ===\n`);
|
|
31
29
|
let prompt;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
30
|
+
const promptContext = {
|
|
31
|
+
model: config.model,
|
|
32
|
+
executor: config.executor,
|
|
33
|
+
engine: config.engine,
|
|
34
|
+
};
|
|
35
|
+
// Find first existing prompt file
|
|
36
|
+
const existingPromptPath = promptPaths.find(p => existsSync(p));
|
|
37
|
+
if (existingPromptPath) {
|
|
38
|
+
prompt = await loadPrompt(existingPromptPath, promptContext);
|
|
37
39
|
}
|
|
38
40
|
else {
|
|
39
|
-
prompt
|
|
40
|
-
|
|
41
|
-
executor: config.executor,
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
const relevantSkills = filterSkillsByTriggers(skills, prompt);
|
|
45
|
-
if (relevantSkills.length > 0) {
|
|
46
|
-
prompt += '\n\n' + formatSkillsForPrompt(relevantSkills);
|
|
47
|
-
}
|
|
48
|
-
if (agents.length > 0) {
|
|
49
|
-
prompt += '\n\n' + formatAgentsForPrompt(agents, config.executor);
|
|
41
|
+
// Use default prompt with lazy loading section already included
|
|
42
|
+
prompt = interpolatePrompt(DEFAULT_PLAN_PROMPT, promptContext);
|
|
50
43
|
}
|
|
51
44
|
if (config.dryRun) {
|
|
52
45
|
console.log('--- DRY RUN: Would execute prompt ---');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEhC,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../../src/commands/spec.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAKjD,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAaD;;GAEG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../../src/commands/spec.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAKjD,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAaD;;GAEG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAsG5F"}
|
package/dist/commands/spec.js
CHANGED
|
@@ -47,24 +47,27 @@ export async function specCommand(config, options) {
|
|
|
47
47
|
}
|
|
48
48
|
const projectRoot = findProjectRoot();
|
|
49
49
|
const projectName = projectRoot.split('/').pop() ?? 'project';
|
|
50
|
+
// Prompt locations in order of preference
|
|
51
|
+
const promptPaths = [
|
|
52
|
+
'.vralphy/prompts/spec.md', // New location
|
|
53
|
+
'PROMPT_spec.md', // Legacy location (backwards compat)
|
|
54
|
+
];
|
|
55
|
+
const promptContext = {
|
|
56
|
+
model: config.model,
|
|
57
|
+
executor: config.executor,
|
|
58
|
+
engine: config.engine,
|
|
59
|
+
topic,
|
|
60
|
+
projectName,
|
|
61
|
+
existingSpecs,
|
|
62
|
+
};
|
|
63
|
+
// Find first existing prompt file
|
|
64
|
+
const existingPromptPath = promptPaths.find(p => existsSync(p));
|
|
50
65
|
let prompt;
|
|
51
|
-
if (
|
|
52
|
-
prompt = await loadPrompt(
|
|
53
|
-
model: config.model,
|
|
54
|
-
executor: config.executor,
|
|
55
|
-
topic,
|
|
56
|
-
projectName,
|
|
57
|
-
existingSpecs,
|
|
58
|
-
});
|
|
66
|
+
if (existingPromptPath) {
|
|
67
|
+
prompt = await loadPrompt(existingPromptPath, promptContext);
|
|
59
68
|
}
|
|
60
69
|
else {
|
|
61
|
-
prompt = interpolatePrompt(DEFAULT_SPEC_PROMPT,
|
|
62
|
-
model: config.model,
|
|
63
|
-
executor: config.executor,
|
|
64
|
-
topic,
|
|
65
|
-
projectName,
|
|
66
|
-
existingSpecs,
|
|
67
|
-
});
|
|
70
|
+
prompt = interpolatePrompt(DEFAULT_SPEC_PROMPT, promptContext);
|
|
68
71
|
}
|
|
69
72
|
if (config.dryRun) {
|
|
70
73
|
console.log('--- DRY RUN: Would execute prompt ---');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec.js","sourceRoot":"","sources":["../../src/commands/spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"spec.js","sourceRoot":"","sources":["../../src/commands/spec.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/init.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/lib/init.ts"],"names":[],"mappings":"AAyJA;;GAEG;AACH,wBAAsB,WAAW,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/lib/init.ts"],"names":[],"mappings":"AAyJA;;GAEG;AACH,wBAAsB,WAAW,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAiFhH"}
|
package/dist/lib/init.js
CHANGED
|
@@ -141,6 +141,7 @@ export async function initProject(dir = process.cwd()) {
|
|
|
141
141
|
]);
|
|
142
142
|
Object.assign(info, pkgInfo, cargoInfo, goInfo);
|
|
143
143
|
info.patterns = await extractFromDocs(dir);
|
|
144
|
+
// Create specs/ directory
|
|
144
145
|
const specsDir = join(dir, 'specs');
|
|
145
146
|
if (!existsSync(specsDir)) {
|
|
146
147
|
await mkdir(specsDir, { recursive: true });
|
|
@@ -149,6 +150,7 @@ export async function initProject(dir = process.cwd()) {
|
|
|
149
150
|
else {
|
|
150
151
|
skipped.push('specs/');
|
|
151
152
|
}
|
|
153
|
+
// Create AGENTS.md in project root (it's project documentation)
|
|
152
154
|
const agentsMd = join(dir, 'AGENTS.md');
|
|
153
155
|
if (!existsSync(agentsMd)) {
|
|
154
156
|
await writeFile(agentsMd, generateAgentsMd(info));
|
|
@@ -157,30 +159,42 @@ export async function initProject(dir = process.cwd()) {
|
|
|
157
159
|
else {
|
|
158
160
|
skipped.push('AGENTS.md');
|
|
159
161
|
}
|
|
160
|
-
|
|
162
|
+
// Create .vralphy/prompts/ directory
|
|
163
|
+
const vralphyDir = join(dir, '.vralphy');
|
|
164
|
+
const promptsDir = join(vralphyDir, 'prompts');
|
|
165
|
+
if (!existsSync(promptsDir)) {
|
|
166
|
+
await mkdir(promptsDir, { recursive: true });
|
|
167
|
+
created.push('.vralphy/prompts/');
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
skipped.push('.vralphy/prompts/');
|
|
171
|
+
}
|
|
172
|
+
// Create prompts in .vralphy/prompts/
|
|
173
|
+
const planPrompt = join(promptsDir, 'plan.md');
|
|
161
174
|
if (!existsSync(planPrompt)) {
|
|
162
175
|
await writeFile(planPrompt, DEFAULT_PLAN_PROMPT);
|
|
163
|
-
created.push('
|
|
176
|
+
created.push('.vralphy/prompts/plan.md');
|
|
164
177
|
}
|
|
165
178
|
else {
|
|
166
|
-
skipped.push('
|
|
179
|
+
skipped.push('.vralphy/prompts/plan.md');
|
|
167
180
|
}
|
|
168
|
-
const buildPrompt = join(
|
|
181
|
+
const buildPrompt = join(promptsDir, 'build.md');
|
|
169
182
|
if (!existsSync(buildPrompt)) {
|
|
170
183
|
await writeFile(buildPrompt, DEFAULT_BUILD_PROMPT);
|
|
171
|
-
created.push('
|
|
184
|
+
created.push('.vralphy/prompts/build.md');
|
|
172
185
|
}
|
|
173
186
|
else {
|
|
174
|
-
skipped.push('
|
|
187
|
+
skipped.push('.vralphy/prompts/build.md');
|
|
175
188
|
}
|
|
176
|
-
const specPrompt = join(
|
|
189
|
+
const specPrompt = join(promptsDir, 'spec.md');
|
|
177
190
|
if (!existsSync(specPrompt)) {
|
|
178
191
|
await writeFile(specPrompt, DEFAULT_SPEC_PROMPT);
|
|
179
|
-
created.push('
|
|
192
|
+
created.push('.vralphy/prompts/spec.md');
|
|
180
193
|
}
|
|
181
194
|
else {
|
|
182
|
-
skipped.push('
|
|
195
|
+
skipped.push('.vralphy/prompts/spec.md');
|
|
183
196
|
}
|
|
197
|
+
// Create IMPLEMENTATION_PLAN.md in project root
|
|
184
198
|
const implPlan = join(dir, 'IMPLEMENTATION_PLAN.md');
|
|
185
199
|
if (!existsSync(implPlan)) {
|
|
186
200
|
await writeFile(implPlan, '# Implementation Plan\n\n- [ ] Initial setup\n');
|
package/dist/lib/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/lib/init.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/lib/init.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/prompts.d.ts
CHANGED
|
@@ -1,12 +1,19 @@
|
|
|
1
|
+
import { EngineName } from './engines/index.js';
|
|
1
2
|
export interface PromptContext {
|
|
2
3
|
model: string;
|
|
3
4
|
executor: string;
|
|
5
|
+
engine: EngineName;
|
|
4
6
|
projectName?: string;
|
|
5
7
|
existingSpecs?: string[];
|
|
6
|
-
skills?: string;
|
|
7
|
-
agents?: string;
|
|
8
8
|
topic?: string;
|
|
9
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* Get skill/agent locations for an engine
|
|
12
|
+
*/
|
|
13
|
+
export declare function getEngineLocations(engine: EngineName): {
|
|
14
|
+
skills: string;
|
|
15
|
+
agents: string;
|
|
16
|
+
};
|
|
10
17
|
/**
|
|
11
18
|
* Load a prompt template from file
|
|
12
19
|
*/
|
|
@@ -22,13 +29,13 @@ export declare function loadPrompt(path: string, context: PromptContext): Promis
|
|
|
22
29
|
/**
|
|
23
30
|
* Default plan mode prompt
|
|
24
31
|
*/
|
|
25
|
-
export declare const DEFAULT_PLAN_PROMPT = "0a. Study `specs/*` with up to 250 parallel ${executor} subagents to learn the project specifications.\n0b. Study @IMPLEMENTATION_PLAN.md (if present) to understand the plan so far.\n0c. Study `src/lib/*` with up to 250 parallel ${executor} subagents to understand shared utilities & components.\n0d. For reference, the application source code is in `src/*`.\n\n1. Study @IMPLEMENTATION_PLAN.md (if present; it may be incorrect) and use up to 500 ${executor} subagents to study existing source code in `src/*` and compare it against `specs/*`. Use an ${model} subagent to analyze findings, prioritize tasks, and create/update @IMPLEMENTATION_PLAN.md as a bullet point list sorted in priority of items yet to be implemented. Ultrathink. Consider searching for TODO, minimal implementations, placeholders, skipped/flaky tests, and inconsistent patterns. Study @IMPLEMENTATION_PLAN.md to determine starting point for research and keep it up to date with items considered complete/incomplete using subagents.\n\nIMPORTANT: Plan only. Do NOT implement anything. Do NOT assume functionality is missing; confirm with code search first. Treat `src/lib` as the project's standard library for shared utilities and components. Prefer consolidated, idiomatic implementations there over ad-hoc copies.\n";
|
|
32
|
+
export declare const DEFAULT_PLAN_PROMPT = "0a. Study `specs/*` with up to 250 parallel ${executor} subagents to learn the project specifications.\n0b. Study @IMPLEMENTATION_PLAN.md (if present) to understand the plan so far.\n0c. Study `src/lib/*` with up to 250 parallel ${executor} subagents to understand shared utilities & components.\n0d. For reference, the application source code is in `src/*`.\n\n1. Study @IMPLEMENTATION_PLAN.md (if present; it may be incorrect) and use up to 500 ${executor} subagents to study existing source code in `src/*` and compare it against `specs/*`. Use an ${model} subagent to analyze findings, prioritize tasks, and create/update @IMPLEMENTATION_PLAN.md as a bullet point list sorted in priority of items yet to be implemented. Ultrathink. Consider searching for TODO, minimal implementations, placeholders, skipped/flaky tests, and inconsistent patterns. Study @IMPLEMENTATION_PLAN.md to determine starting point for research and keep it up to date with items considered complete/incomplete using subagents.\n\nIMPORTANT: Plan only. Do NOT implement anything. Do NOT assume functionality is missing; confirm with code search first. Treat `src/lib` as the project's standard library for shared utilities and components. Prefer consolidated, idiomatic implementations there over ad-hoc copies.\n\n## Skills & Agents (On-Demand Loading)\n\nSkills location: ${skillsDir}\nAgents location: ${agentsDir}\n\nIMPORTANT - Context is precious. DO NOT preload all skills/agents.\n\n### When to load a skill:\n- Current task requires domain-specific knowledge you lack\n- A spec explicitly references a framework/library that has a matching skill\n- You've attempted something twice and failed - check if a skill could help\n\n### When to spawn a specialized agent:\n- Task requires deep focused expertise (security audit, architecture review)\n- You need a second opinion on a complex decision\n- Parallel work that benefits from isolation\n\n### How to load:\n1. Use a ${executor} subagent to read the skill/agent file\n2. Extract only the relevant section for your current task\n3. Do NOT inject entire skill contents into main context\n\n### Available skills (check if directory exists):\nList files in ${skillsDir} only when you need domain knowledge.\n\n### Available agents (check if directory exists):\nList files in ${agentsDir} only when you need to spawn specialized help.\n";
|
|
26
33
|
/**
|
|
27
34
|
* Default build mode prompt
|
|
28
35
|
*/
|
|
29
|
-
export declare const DEFAULT_BUILD_PROMPT = "0a. Study `specs/*` with up to 500 parallel ${executor} subagents to learn the project specifications.\n0b. Study @IMPLEMENTATION_PLAN.md.\n0c. For reference, the application source code is in `src/*`.\n\n1. Your task is to implement functionality per the specifications using parallel subagents. Follow @IMPLEMENTATION_PLAN.md and choose the most important item to address. Before making changes, search the codebase (don't assume not implemented) using ${executor} subagents. You may use up to 500 parallel ${executor} subagents for searches/reads and only 1 ${executor} subagent for build/tests. Use ${model} subagents when complex reasoning is needed (debugging, architectural decisions).\n\n2. After implementing functionality or resolving problems, run the tests for that unit of code that was improved. If functionality is missing then it's your job to add it as per the application specifications. Ultrathink.\n\n3. When you discover issues, immediately update @IMPLEMENTATION_PLAN.md with your findings using a subagent. When resolved, update and remove the item.\n\n4. When the tests pass, update @IMPLEMENTATION_PLAN.md, then `git add -A` then `git commit` with a message describing the changes. After the commit, `git push`.\n\n99999. When authoring documentation, capture the why \u2014 tests and implementation importance.\n999999. Single sources of truth, no migrations/adapters. If tests unrelated to your work fail, resolve them as part of the increment.\n9999999. As soon as there are no build or test errors create a git tag. If there are no git tags start at 0.0.0 and increment patch by 1.\n99999999. You may add extra logging if required to debug issues.\n999999999. Keep @IMPLEMENTATION_PLAN.md current with learnings using a subagent \u2014 future work depends on this.\n9999999999. When you learn something new about how to run the application, update @AGENTS.md using a subagent but keep it brief.\n99999999999. For any bugs you notice, resolve them or document them in @IMPLEMENTATION_PLAN.md even if unrelated to current work.\n999999999999. Implement functionality completely. Placeholders and stubs waste efforts and time redoing the same work.\n9999999999999. When @IMPLEMENTATION_PLAN.md becomes large periodically clean out the items that are completed using a subagent.\n99999999999999. IMPORTANT: Keep @AGENTS.md operational only \u2014 status updates belong in `IMPLEMENTATION_PLAN.md`. A bloated AGENTS.md pollutes every future loop's context.\n";
|
|
36
|
+
export declare const DEFAULT_BUILD_PROMPT = "0a. Study `specs/*` with up to 500 parallel ${executor} subagents to learn the project specifications.\n0b. Study @IMPLEMENTATION_PLAN.md.\n0c. For reference, the application source code is in `src/*`.\n\n1. Your task is to implement functionality per the specifications using parallel subagents. Follow @IMPLEMENTATION_PLAN.md and choose the most important item to address. Before making changes, search the codebase (don't assume not implemented) using ${executor} subagents. You may use up to 500 parallel ${executor} subagents for searches/reads and only 1 ${executor} subagent for build/tests. Use ${model} subagents when complex reasoning is needed (debugging, architectural decisions).\n\n2. After implementing functionality or resolving problems, run the tests for that unit of code that was improved. If functionality is missing then it's your job to add it as per the application specifications. Ultrathink.\n\n3. When you discover issues, immediately update @IMPLEMENTATION_PLAN.md with your findings using a subagent. When resolved, update and remove the item.\n\n4. When the tests pass, update @IMPLEMENTATION_PLAN.md, then `git add -A` then `git commit` with a message describing the changes. After the commit, `git push`.\n\n99999. When authoring documentation, capture the why \u2014 tests and implementation importance.\n999999. Single sources of truth, no migrations/adapters. If tests unrelated to your work fail, resolve them as part of the increment.\n9999999. As soon as there are no build or test errors create a git tag. If there are no git tags start at 0.0.0 and increment patch by 1.\n99999999. You may add extra logging if required to debug issues.\n999999999. Keep @IMPLEMENTATION_PLAN.md current with learnings using a subagent \u2014 future work depends on this.\n9999999999. When you learn something new about how to run the application, update @AGENTS.md using a subagent but keep it brief.\n99999999999. For any bugs you notice, resolve them or document them in @IMPLEMENTATION_PLAN.md even if unrelated to current work.\n999999999999. Implement functionality completely. Placeholders and stubs waste efforts and time redoing the same work.\n9999999999999. When @IMPLEMENTATION_PLAN.md becomes large periodically clean out the items that are completed using a subagent.\n99999999999999. IMPORTANT: Keep @AGENTS.md operational only \u2014 status updates belong in `IMPLEMENTATION_PLAN.md`. A bloated AGENTS.md pollutes every future loop's context.\n\n## Skills & Agents (On-Demand Loading)\n\nSkills location: ${skillsDir}\nAgents location: ${agentsDir}\n\nIMPORTANT - Context is precious. DO NOT preload all skills/agents.\n\n### When to load a skill:\n- Current task requires domain-specific knowledge you lack\n- A spec explicitly references a framework/library that has a matching skill\n- You've attempted something twice and failed - check if a skill could help\n\n### When to spawn a specialized agent:\n- Task requires deep focused expertise (security audit, architecture review)\n- You need a second opinion on a complex decision\n- Parallel work that benefits from isolation\n\n### How to load:\n1. Use a ${executor} subagent to read the skill/agent file\n2. Extract only the relevant section for your current task\n3. Do NOT inject entire skill contents into main context\n\n### Available skills (check if directory exists):\nList files in ${skillsDir} only when you need domain knowledge.\n\n### Available agents (check if directory exists):\nList files in ${agentsDir} only when you need to spawn specialized help.\n";
|
|
30
37
|
/**
|
|
31
38
|
* Default spec mode prompt
|
|
32
39
|
*/
|
|
33
|
-
export declare const DEFAULT_SPEC_PROMPT = "You are helping define requirements for: ${topic}\n\n## Context\n- Project: ${projectName}\n- Existing specs: ${existingSpecs}\n\n## Your Task\n\n1. Ask clarifying questions to understand the requirement fully\n2. Consider edge cases and constraints\n3. Draft a complete specification\n4. Present for user approval\n\n## Question Guidelines\n\nAsk about:\n- User personas and use cases\n- Happy path and error cases\n- Integration points\n- Performance requirements\n- Security considerations\n\n## Output Format\n\nWhen ready, output the spec in this format:\n\n# ${topic}\n\n## Overview\n[Brief description]\n\n## Requirements\n- [ ] Requirement 1\n- [ ] Requirement 2\n\n## Acceptance Criteria\n- [ ] Criterion 1\n- [ ] Criterion 2\n\n## Edge Cases\n[List edge cases]\n\n## Dependencies\n[List dependencies]\n";
|
|
40
|
+
export declare const DEFAULT_SPEC_PROMPT = "You are helping define requirements for: ${topic}\n\n## Context\n- Project: ${projectName}\n- Existing specs: ${existingSpecs}\n\n## Your Task\n\n1. Ask clarifying questions to understand the requirement fully\n2. Consider edge cases and constraints\n3. Draft a complete specification\n4. Present for user approval\n\n## Question Guidelines\n\nAsk about:\n- User personas and use cases\n- Happy path and error cases\n- Integration points\n- Performance requirements\n- Security considerations\n\n## Output Format\n\nWhen ready, output the spec in this format:\n\n# ${topic}\n\n## Overview\n[Brief description]\n\n## Requirements\n- [ ] Requirement 1\n- [ ] Requirement 2\n\n## Acceptance Criteria\n- [ ] Criterion 1\n- [ ] Criterion 2\n\n## Edge Cases\n[List edge cases]\n\n## Dependencies\n[List dependencies]\n\n## Skills & Agents (On-Demand Loading)\n\nSkills location: ${skillsDir}\nAgents location: ${agentsDir}\n\nIMPORTANT - Context is precious. DO NOT preload all skills/agents.\n\n### When to load a skill:\n- Current task requires domain-specific knowledge you lack\n- A spec explicitly references a framework/library that has a matching skill\n- You've attempted something twice and failed - check if a skill could help\n\n### When to spawn a specialized agent:\n- Task requires deep focused expertise (security audit, architecture review)\n- You need a second opinion on a complex decision\n- Parallel work that benefits from isolation\n\n### How to load:\n1. Use a ${executor} subagent to read the skill/agent file\n2. Extract only the relevant section for your current task\n3. Do NOT inject entire skill contents into main context\n\n### Available skills (check if directory exists):\nList files in ${skillsDir} only when you need domain knowledge.\n\n### Available agents (check if directory exists):\nList files in ${agentsDir} only when you need to spawn specialized help.\n";
|
|
34
41
|
//# sourceMappingURL=prompts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/lib/prompts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/lib/prompts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,UAAU,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAazF;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMtE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,CAyBlF;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAGtF;AAmCD;;GAEG;AACH,eAAO,MAAM,mBAAmB,u0EAQR,CAAC;AAEzB;;GAEG;AACH,eAAO,MAAM,oBAAoB,++GAsBT,CAAC;AAEzB;;GAEG;AACH,eAAO,MAAM,mBAAmB,y2DA4CR,CAAC"}
|
package/dist/lib/prompts.js
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
import { readFile } from 'fs/promises';
|
|
2
2
|
import { existsSync } from 'fs';
|
|
3
|
+
/**
|
|
4
|
+
* Get skill/agent locations for an engine
|
|
5
|
+
*/
|
|
6
|
+
export function getEngineLocations(engine) {
|
|
7
|
+
const locations = {
|
|
8
|
+
claude: {
|
|
9
|
+
skills: '.claude/skills/',
|
|
10
|
+
agents: '.claude/agents/',
|
|
11
|
+
},
|
|
12
|
+
opencode: {
|
|
13
|
+
skills: '.opencode/skills/',
|
|
14
|
+
agents: '.opencode/agents/',
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
return locations[engine];
|
|
18
|
+
}
|
|
3
19
|
/**
|
|
4
20
|
* Load a prompt template from file
|
|
5
21
|
*/
|
|
@@ -17,18 +33,16 @@ export function interpolatePrompt(template, context) {
|
|
|
17
33
|
result = result.replace(/\$\{model\}/g, context.model);
|
|
18
34
|
result = result.replace(/\$\{executor\}/g, context.executor);
|
|
19
35
|
result = result.replace(/\$\{primary\}/g, context.model);
|
|
36
|
+
result = result.replace(/\$\{engine\}/g, context.engine);
|
|
37
|
+
const locations = getEngineLocations(context.engine);
|
|
38
|
+
result = result.replace(/\$\{skillsDir\}/g, locations.skills);
|
|
39
|
+
result = result.replace(/\$\{agentsDir\}/g, locations.agents);
|
|
20
40
|
if (context.projectName) {
|
|
21
41
|
result = result.replace(/\$\{projectName\}/g, context.projectName);
|
|
22
42
|
}
|
|
23
43
|
if (context.existingSpecs) {
|
|
24
44
|
result = result.replace(/\$\{existingSpecs\}/g, context.existingSpecs.join(', ') || 'none');
|
|
25
45
|
}
|
|
26
|
-
if (context.skills) {
|
|
27
|
-
result = result.replace(/\$\{skills\}/g, context.skills);
|
|
28
|
-
}
|
|
29
|
-
if (context.agents) {
|
|
30
|
-
result = result.replace(/\$\{agents\}/g, context.agents);
|
|
31
|
-
}
|
|
32
46
|
if (context.topic) {
|
|
33
47
|
result = result.replace(/\$\{topic\}/g, context.topic);
|
|
34
48
|
}
|
|
@@ -41,6 +55,38 @@ export async function loadPrompt(path, context) {
|
|
|
41
55
|
const template = await loadPromptTemplate(path);
|
|
42
56
|
return interpolatePrompt(template, context);
|
|
43
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Skills and agents lazy loading section (appended to prompts)
|
|
60
|
+
*/
|
|
61
|
+
const LAZY_LOADING_SECTION = `
|
|
62
|
+
## Skills & Agents (On-Demand Loading)
|
|
63
|
+
|
|
64
|
+
Skills location: \${skillsDir}
|
|
65
|
+
Agents location: \${agentsDir}
|
|
66
|
+
|
|
67
|
+
IMPORTANT - Context is precious. DO NOT preload all skills/agents.
|
|
68
|
+
|
|
69
|
+
### When to load a skill:
|
|
70
|
+
- Current task requires domain-specific knowledge you lack
|
|
71
|
+
- A spec explicitly references a framework/library that has a matching skill
|
|
72
|
+
- You've attempted something twice and failed - check if a skill could help
|
|
73
|
+
|
|
74
|
+
### When to spawn a specialized agent:
|
|
75
|
+
- Task requires deep focused expertise (security audit, architecture review)
|
|
76
|
+
- You need a second opinion on a complex decision
|
|
77
|
+
- Parallel work that benefits from isolation
|
|
78
|
+
|
|
79
|
+
### How to load:
|
|
80
|
+
1. Use a \${executor} subagent to read the skill/agent file
|
|
81
|
+
2. Extract only the relevant section for your current task
|
|
82
|
+
3. Do NOT inject entire skill contents into main context
|
|
83
|
+
|
|
84
|
+
### Available skills (check if directory exists):
|
|
85
|
+
List files in \${skillsDir} only when you need domain knowledge.
|
|
86
|
+
|
|
87
|
+
### Available agents (check if directory exists):
|
|
88
|
+
List files in \${agentsDir} only when you need to spawn specialized help.
|
|
89
|
+
`;
|
|
44
90
|
/**
|
|
45
91
|
* Default plan mode prompt
|
|
46
92
|
*/
|
|
@@ -52,7 +98,7 @@ export const DEFAULT_PLAN_PROMPT = `0a. Study \`specs/*\` with up to 250 paralle
|
|
|
52
98
|
1. Study @IMPLEMENTATION_PLAN.md (if present; it may be incorrect) and use up to 500 \${executor} subagents to study existing source code in \`src/*\` and compare it against \`specs/*\`. Use an \${model} subagent to analyze findings, prioritize tasks, and create/update @IMPLEMENTATION_PLAN.md as a bullet point list sorted in priority of items yet to be implemented. Ultrathink. Consider searching for TODO, minimal implementations, placeholders, skipped/flaky tests, and inconsistent patterns. Study @IMPLEMENTATION_PLAN.md to determine starting point for research and keep it up to date with items considered complete/incomplete using subagents.
|
|
53
99
|
|
|
54
100
|
IMPORTANT: Plan only. Do NOT implement anything. Do NOT assume functionality is missing; confirm with code search first. Treat \`src/lib\` as the project's standard library for shared utilities and components. Prefer consolidated, idiomatic implementations there over ad-hoc copies.
|
|
55
|
-
`;
|
|
101
|
+
${LAZY_LOADING_SECTION}`;
|
|
56
102
|
/**
|
|
57
103
|
* Default build mode prompt
|
|
58
104
|
*/
|
|
@@ -78,7 +124,7 @@ export const DEFAULT_BUILD_PROMPT = `0a. Study \`specs/*\` with up to 500 parall
|
|
|
78
124
|
999999999999. Implement functionality completely. Placeholders and stubs waste efforts and time redoing the same work.
|
|
79
125
|
9999999999999. When @IMPLEMENTATION_PLAN.md becomes large periodically clean out the items that are completed using a subagent.
|
|
80
126
|
99999999999999. IMPORTANT: Keep @AGENTS.md operational only — status updates belong in \`IMPLEMENTATION_PLAN.md\`. A bloated AGENTS.md pollutes every future loop's context.
|
|
81
|
-
`;
|
|
127
|
+
${LAZY_LOADING_SECTION}`;
|
|
82
128
|
/**
|
|
83
129
|
* Default spec mode prompt
|
|
84
130
|
*/
|
|
@@ -126,5 +172,5 @@ When ready, output the spec in this format:
|
|
|
126
172
|
|
|
127
173
|
## Dependencies
|
|
128
174
|
[List dependencies]
|
|
129
|
-
`;
|
|
175
|
+
${LAZY_LOADING_SECTION}`;
|
|
130
176
|
//# sourceMappingURL=prompts.js.map
|
package/dist/lib/prompts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/lib/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAYhC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAY;IACnD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,OAAsB;IACxE,IAAI,MAAM,GAAG,QAAQ,CAAC;IAEtB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACvD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7D,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/lib/prompts.ts"],"names":[],"mappings":"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"}
|