cli-jaw 1.2.9 → 1.3.0-preview.1
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 +42 -19
- package/dist/lib/mcp-sync.js +3 -1
- package/dist/lib/mcp-sync.js.map +1 -1
- package/dist/lib/quota-copilot.js +93 -0
- package/dist/lib/quota-copilot.js.map +1 -1
- package/dist/lib/stt.js +95 -0
- package/dist/lib/stt.js.map +1 -0
- package/dist/lib/token-keepalive.js +34 -0
- package/dist/lib/token-keepalive.js.map +1 -0
- package/dist/server.js +68 -1
- package/dist/server.js.map +1 -1
- package/dist/src/prompt/builder.js +82 -264
- package/dist/src/prompt/builder.js.map +1 -1
- package/dist/src/prompt/template-loader.js +46 -0
- package/dist/src/prompt/template-loader.js.map +1 -0
- package/dist/src/prompt/templates/a1-system.md +106 -0
- package/dist/src/prompt/templates/a2-default.md +17 -0
- package/dist/src/prompt/templates/employee.md +37 -0
- package/dist/src/prompt/templates/heartbeat-default.md +4 -0
- package/dist/src/prompt/templates/heartbeat-jobs.md +4 -0
- package/dist/src/prompt/templates/orchestration.md +64 -0
- package/dist/src/prompt/templates/skills.md +18 -0
- package/dist/src/prompt/templates/vision-click.md +3 -0
- package/dist/src/prompt/templates/worker-context.md +8 -0
- package/dist/src/telegram/bot.js +2 -0
- package/dist/src/telegram/bot.js.map +1 -1
- package/dist/src/telegram/voice.js +25 -0
- package/dist/src/telegram/voice.js.map +1 -0
- package/package.json +2 -2
- package/public/css/chat.css +38 -0
- package/public/dist/bundle.js +59 -58
- package/public/dist/bundle.js.map +4 -4
- package/public/index.html +41 -0
- package/public/js/features/chat.ts +25 -0
- package/public/js/features/settings.ts +123 -2
- package/public/js/features/voice-recorder.ts +150 -0
- package/public/js/main.ts +13 -1
- package/public/js/state.ts +2 -0
- package/public/locales/en.json +15 -0
- package/public/locales/ko.json +15 -0
|
@@ -5,6 +5,7 @@ import { join } from 'path';
|
|
|
5
5
|
import { settings, JAW_HOME, PROMPTS_DIR, SKILLS_DIR, SKILLS_REF_DIR, loadHeartbeatFile, deriveCdpPort } from '../core/config.js';
|
|
6
6
|
import { getSession, getEmployees } from '../core/db.js';
|
|
7
7
|
import { memoryFlushCounter } from '../agent/spawn.js';
|
|
8
|
+
import { loadAndRender, loadTemplate, renderTemplate, parseWorkerContexts, clearTemplateCache } from './template-loader.js';
|
|
8
9
|
const promptCache = new Map();
|
|
9
10
|
// ─── Skill Loading ───────────────────────────────────
|
|
10
11
|
/** Read all active skills from JAW_HOME/skills/ */
|
|
@@ -85,147 +86,34 @@ export function getMergedSkills() {
|
|
|
85
86
|
return merged;
|
|
86
87
|
}
|
|
87
88
|
// ─── Prompt Templates ────────────────────────────────
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
### Core Workflow: snapshot → act → snapshot → verify
|
|
106
|
-
\`\`\`bash
|
|
107
|
-
cli-jaw browser start # Start Chrome (CDP ${deriveCdpPort()})
|
|
108
|
-
cli-jaw browser start --headless # Headless (WSL/CI/Docker)
|
|
109
|
-
cli-jaw browser navigate "https://example.com" # Go to URL
|
|
110
|
-
cli-jaw browser snapshot --interactive # Get ref IDs (clickable elements)
|
|
111
|
-
cli-jaw browser click e3 # Click ref
|
|
112
|
-
cli-jaw browser type e5 "hello" --submit # Type + Enter
|
|
113
|
-
cli-jaw browser screenshot # Save screenshot
|
|
114
|
-
\`\`\`
|
|
115
|
-
|
|
116
|
-
### Key Commands
|
|
117
|
-
- \`snapshot\` / \`snapshot --interactive\` — element list with ref IDs
|
|
118
|
-
- \`click <ref>\` / \`type <ref> "text"\` / \`press Enter\` — interact
|
|
119
|
-
- \`navigate <url>\` / \`open <url>\` (new tab) / \`tabs\` — navigation
|
|
120
|
-
- \`screenshot\` / \`screenshot --full-page\` / \`text\` — observe
|
|
121
|
-
- Ref IDs **reset on navigation** → always re-snapshot after navigate
|
|
122
|
-
|
|
123
|
-
### Vision Click Fallback (Codex Only)
|
|
124
|
-
If \`snapshot\` returns **no ref** for target (Canvas, iframe, Shadow DOM, WebGL):
|
|
125
|
-
\`\`\`bash
|
|
126
|
-
cli-jaw browser vision-click "Submit button" # screenshot → AI coords → click
|
|
127
|
-
cli-jaw browser vision-click "Menu" --double # double-click variant
|
|
128
|
-
\`\`\`
|
|
129
|
-
- Requires **Codex CLI** — only available when active CLI is codex
|
|
130
|
-
- Always try \`snapshot\` + ref-based click first, vision-click is fallback only
|
|
131
|
-
- If vision-click skill is in your Active Skills list, use it
|
|
132
|
-
|
|
133
|
-
## Telegram File Delivery (Bot-First)
|
|
134
|
-
For non-text output to Telegram, prefer direct Bot API:
|
|
135
|
-
\`\`\`bash
|
|
136
|
-
TOKEN=$(jq -r '.telegram.token' ${JAW_HOME}/settings.json)
|
|
137
|
-
CHAT_ID=$(jq -r '.telegram.allowedChatIds[-1]' ${JAW_HOME}/settings.json)
|
|
138
|
-
# photo:
|
|
139
|
-
curl -sS -X POST "https://api.telegram.org/bot\${TOKEN}/sendPhoto" \\
|
|
140
|
-
-F "chat_id=\${CHAT_ID}" -F "photo=@/path/to/image.png" -F "caption=desc"
|
|
141
|
-
# voice: .../sendVoice -F voice=@file.ogg
|
|
142
|
-
# document: .../sendDocument -F document=@file.pdf
|
|
143
|
-
\`\`\`
|
|
144
|
-
Fallback local endpoint: \`POST http://localhost:3457/api/telegram/send\`
|
|
145
|
-
- Types: \`text\`, \`voice\`, \`photo\`, \`document\` (requires \`file_path\`)
|
|
146
|
-
- Always provide normal text response alongside file delivery
|
|
147
|
-
- Do not print token values in logs
|
|
148
|
-
|
|
149
|
-
## Long-term Memory (MANDATORY)
|
|
150
|
-
Two memory sources:
|
|
151
|
-
- Core memory: \`${JAW_HOME}/memory/MEMORY.md\` (structured, persistent)
|
|
152
|
-
- Session memory: \`~/.claude/projects/.../memory/\` (auto-flush)
|
|
153
|
-
|
|
154
|
-
Rules:
|
|
155
|
-
- At conversation start: ALWAYS read MEMORY.md
|
|
156
|
-
- Before answering about past decisions/preferences: search memory first
|
|
157
|
-
- After important decisions or user preferences: save immediately
|
|
158
|
-
- Commands: \`cli-jaw memory search/read/save\`
|
|
159
|
-
|
|
160
|
-
### What to Save (IMPORTANT)
|
|
161
|
-
- ✅ User preferences, key decisions, project facts
|
|
162
|
-
- ✅ Config changes, tool choices, architectural decisions
|
|
163
|
-
- ✅ Short 1-2 line entries (e.g., "User prefers ES Module only")
|
|
164
|
-
- ❌ Do NOT save development checklists or task lists
|
|
165
|
-
- ❌ Do NOT save commit hashes, phase logs, or progress tracking
|
|
166
|
-
- ❌ Do NOT dump raw conversation history into memory
|
|
167
|
-
|
|
168
|
-
## Heartbeat System
|
|
169
|
-
Recurring tasks via \`${JAW_HOME}/heartbeat.json\` (auto-reloads on save):
|
|
170
|
-
\`\`\`json
|
|
171
|
-
{ "jobs": [{ "id": "hb_<timestamp>", "name": "Job name", "enabled": true,
|
|
172
|
-
"schedule": { "kind": "every", "minutes": 5 }, "prompt": "task description" }] }
|
|
173
|
-
\`\`\`
|
|
174
|
-
- Results auto-forwarded to Telegram. Nothing to report → respond [SILENT]
|
|
175
|
-
|
|
176
|
-
## Development Rules
|
|
177
|
-
- Max 500 lines per file. Exceed → split
|
|
178
|
-
- ES Module (\`import\`/\`export\`) only. No CommonJS
|
|
179
|
-
- Never delete existing \`export\` (other modules may import)
|
|
180
|
-
- Error handling: \`try/catch\` mandatory, no silent failures
|
|
181
|
-
- Config values → \`config.js\` or \`settings.json\`, never hardcode
|
|
182
|
-
|
|
183
|
-
### Dev Skills (MANDATORY for Development Tasks)
|
|
184
|
-
Before writing ANY code, you MUST read the relevant dev skill guides:
|
|
185
|
-
1. **Always read first**: \`${JAW_HOME}/skills/dev/SKILL.md\` — project-wide conventions, file structure, coding standards
|
|
186
|
-
2. **Role-specific** (read the one matching your task):
|
|
187
|
-
- \`dev-frontend\` — UI components, CSS, browser compatibility
|
|
188
|
-
- \`dev-backend\` — API design, error handling, security
|
|
189
|
-
- \`dev-data\` — database, queries, migrations
|
|
190
|
-
- \`dev-testing\` — test strategy, coverage, assertion patterns
|
|
191
|
-
3. **How to read**: \`cat ${JAW_HOME}/skills/dev/SKILL.md\` or \`cli-jaw skill read dev\`
|
|
192
|
-
4. Follow ALL guidelines from the skill before and during implementation
|
|
193
|
-
5. If a skill contradicts these rules, the skill takes priority (skills are project-specific)
|
|
194
|
-
`;
|
|
195
|
-
const A2_DEFAULT = `# User Configuration
|
|
196
|
-
|
|
197
|
-
## Identity
|
|
198
|
-
- Name: Jaw
|
|
199
|
-
- Emoji: 🦈
|
|
200
|
-
|
|
201
|
-
## User
|
|
202
|
-
- Name: (your name)
|
|
203
|
-
- Language: English
|
|
204
|
-
- Timezone: UTC
|
|
205
|
-
|
|
206
|
-
## Vibe
|
|
207
|
-
- Friendly, warm
|
|
208
|
-
- Technically accurate
|
|
209
|
-
|
|
210
|
-
## Working Directory
|
|
211
|
-
- ~/.cli-jaw
|
|
212
|
-
`;
|
|
213
|
-
const HEARTBEAT_DEFAULT = `# Heartbeat checklist
|
|
214
|
-
|
|
215
|
-
<!-- Keep this empty to skip heartbeat API calls -->
|
|
216
|
-
<!-- Add tasks below when you want periodic checks -->
|
|
217
|
-
`;
|
|
89
|
+
/** Template variables shared across templates */
|
|
90
|
+
function getTemplateVars() {
|
|
91
|
+
return { JAW_HOME, CDP_PORT: String(deriveCdpPort()) };
|
|
92
|
+
}
|
|
93
|
+
/** Render A1 system prompt from template */
|
|
94
|
+
function getA1Content() {
|
|
95
|
+
return loadAndRender('a1-system.md', getTemplateVars());
|
|
96
|
+
}
|
|
97
|
+
/** A2 default content (no dynamic vars) */
|
|
98
|
+
function getA2Default() {
|
|
99
|
+
return loadTemplate('a2-default.md');
|
|
100
|
+
}
|
|
101
|
+
/** Heartbeat default content (no dynamic vars) */
|
|
102
|
+
function getHeartbeatDefault() {
|
|
103
|
+
return loadTemplate('heartbeat-default.md');
|
|
104
|
+
}
|
|
218
105
|
// ─── Paths ───────────────────────────────────────────
|
|
219
106
|
export const A1_PATH = join(PROMPTS_DIR, 'A-1.md');
|
|
220
107
|
export const A2_PATH = join(PROMPTS_DIR, 'A-2.md');
|
|
221
108
|
export const HEARTBEAT_PATH = join(PROMPTS_DIR, 'HEARTBEAT.md');
|
|
222
109
|
// ─── Initialize prompt files ─────────────────────────
|
|
223
110
|
export function initPromptFiles() {
|
|
111
|
+
const a1Content = getA1Content();
|
|
224
112
|
const hashPath = A1_PATH + '.hash';
|
|
225
|
-
const currentHash = createHash('md5').update(
|
|
113
|
+
const currentHash = createHash('md5').update(a1Content).digest('hex');
|
|
226
114
|
if (!fs.existsSync(A1_PATH)) {
|
|
227
115
|
// First install
|
|
228
|
-
fs.writeFileSync(A1_PATH,
|
|
116
|
+
fs.writeFileSync(A1_PATH, a1Content);
|
|
229
117
|
fs.writeFileSync(hashPath, currentHash);
|
|
230
118
|
}
|
|
231
119
|
else if (fs.existsSync(hashPath)) {
|
|
@@ -235,7 +123,7 @@ export function initPromptFiles() {
|
|
|
235
123
|
const fileHash = createHash('md5').update(fs.readFileSync(A1_PATH, 'utf8')).digest('hex');
|
|
236
124
|
if (fileHash === savedHash) {
|
|
237
125
|
// User hasn't edited → safe to update
|
|
238
|
-
fs.writeFileSync(A1_PATH,
|
|
126
|
+
fs.writeFileSync(A1_PATH, a1Content);
|
|
239
127
|
fs.writeFileSync(hashPath, currentHash);
|
|
240
128
|
console.log('[prompt] A-1.md updated to new version');
|
|
241
129
|
}
|
|
@@ -250,9 +138,9 @@ export function initPromptFiles() {
|
|
|
250
138
|
fs.writeFileSync(hashPath, fileHash);
|
|
251
139
|
}
|
|
252
140
|
if (!fs.existsSync(A2_PATH))
|
|
253
|
-
fs.writeFileSync(A2_PATH,
|
|
141
|
+
fs.writeFileSync(A2_PATH, getA2Default());
|
|
254
142
|
if (!fs.existsSync(HEARTBEAT_PATH))
|
|
255
|
-
fs.writeFileSync(HEARTBEAT_PATH,
|
|
143
|
+
fs.writeFileSync(HEARTBEAT_PATH, getHeartbeatDefault());
|
|
256
144
|
}
|
|
257
145
|
// ─── Memory ──────────────────────────────────────────
|
|
258
146
|
export function getMemoryDir() {
|
|
@@ -294,8 +182,8 @@ export function loadRecentMemories() {
|
|
|
294
182
|
}
|
|
295
183
|
// ─── System Prompt Generation ────────────────────────
|
|
296
184
|
export function getSystemPrompt() {
|
|
297
|
-
// A-1: file takes priority (user-editable),
|
|
298
|
-
const a1 = fs.existsSync(A1_PATH) ? fs.readFileSync(A1_PATH, 'utf8') :
|
|
185
|
+
// A-1: file takes priority (user-editable), rendered template fallback
|
|
186
|
+
const a1 = fs.existsSync(A1_PATH) ? fs.readFileSync(A1_PATH, 'utf8') : getA1Content();
|
|
299
187
|
const a2 = fs.existsSync(A2_PATH) ? fs.readFileSync(A2_PATH, 'utf8') : '';
|
|
300
188
|
let prompt = `${a1}\n\n${a2}`;
|
|
301
189
|
// Phase 15: Telegram guidance is now part of A1_CONTENT (hardcoded)
|
|
@@ -343,55 +231,16 @@ export function getSystemPrompt() {
|
|
|
343
231
|
if (emps.length > 0) {
|
|
344
232
|
const list = emps.map(e => `- "${e.name}" (CLI: ${e.cli}) — ${e.role || 'general developer'}`).join('\n');
|
|
345
233
|
const example = emps[0].name;
|
|
234
|
+
const vars = getTemplateVars();
|
|
235
|
+
vars.EMPLOYEE_LIST = list;
|
|
236
|
+
vars.EXAMPLE_AGENT = example;
|
|
346
237
|
prompt += '\n\n---\n';
|
|
347
|
-
prompt += '
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
prompt += `\n\n\\\`\\\`\\\`json\n{\n "subtasks": [\n {\n "agent": "${example}",\n "task": "Specific task instruction",\n "priority": 1\n }\n ]\n}\n\\\`\\\`\\\``;
|
|
354
|
-
prompt += '\n\n### CRITICAL RULES';
|
|
355
|
-
prompt += '\n1. JSON MUST be wrapped in ```json ... ``` code blocks (mandatory)';
|
|
356
|
-
prompt += '\n2. Never output raw JSON without code blocks';
|
|
357
|
-
prompt += '\n3. Agent name must exactly match the list above';
|
|
358
|
-
prompt += '\n4. Dispatch employees ONLY when the task genuinely needs multiple specialists or parallel work';
|
|
359
|
-
prompt += '\n5. If you can handle the task yourself, respond directly WITHOUT JSON dispatch';
|
|
360
|
-
prompt += '\n6. When receiving a "result report", summarize it in natural language for the user';
|
|
361
|
-
prompt += '\n7. Simple questions, single-file edits, or tasks in your expertise → handle directly';
|
|
362
|
-
prompt += '\n8. For Tier 1-2 tasks: mark independent subtasks with `"parallel": true` for concurrent execution';
|
|
363
|
-
prompt += '\n9. Default is `"parallel": false`. Only use `true` when affected_files have zero overlap';
|
|
364
|
-
prompt += '\n\n### PABCD Orchestration (지휘 모드)';
|
|
365
|
-
prompt += '\nFor complex, multi-step tasks, you have a structured orchestration system called PABCD:';
|
|
366
|
-
prompt += '\n **P** (Plan) → **A** (Plan Audit) → **B** (Build) → **C** (Check) → **D** (Done)';
|
|
367
|
-
prompt += '\n';
|
|
368
|
-
prompt += '\n**How to activate**:';
|
|
369
|
-
prompt += '\n- User says "orchestrate", "지휘 모드", or "pabcd" → system auto-enters P.';
|
|
370
|
-
prompt += '\n- You can also run: `cli-jaw orchestrate P` to enter P manually.';
|
|
371
|
-
prompt += '\n';
|
|
372
|
-
prompt += '\n**How to transition phases** (Shell commands):';
|
|
373
|
-
prompt += '\n```bash';
|
|
374
|
-
prompt += '\ncli-jaw orchestrate P # Enter Planning';
|
|
375
|
-
prompt += '\ncli-jaw orchestrate A # Enter Plan Audit';
|
|
376
|
-
prompt += '\ncli-jaw orchestrate B # Enter Build';
|
|
377
|
-
prompt += '\ncli-jaw orchestrate C # Enter Check';
|
|
378
|
-
prompt += '\ncli-jaw orchestrate D # Enter Done';
|
|
379
|
-
prompt += '\n```';
|
|
380
|
-
prompt += '\nIf shell is unavailable, the system will auto-advance when the user explicitly approves.';
|
|
381
|
-
prompt += '\n';
|
|
382
|
-
prompt += '\n**Critical rules**:';
|
|
383
|
-
prompt += '\n- Each phase has a SPECIFIC job. Do ONLY that phase\'s job.';
|
|
384
|
-
prompt += '\n- ⛔ STOP at the end of each phase and WAIT for user approval.';
|
|
385
|
-
prompt += '\n- Do NOT skip phases. Do NOT self-advance multiple phases in one turn.';
|
|
386
|
-
prompt += '\n- Workers are spawned automatically when you output subtask JSON in A or B phases.';
|
|
387
|
-
prompt += '\n- Worker results are fed back to you. Review them and report to the user.';
|
|
388
|
-
prompt += '\n';
|
|
389
|
-
prompt += '\n**Phase summary**:';
|
|
390
|
-
prompt += '\n- P: Write a plan → present to user → STOP. Wait for approval.';
|
|
391
|
-
prompt += '\n- A: Spawn worker to audit THE PLAN (not code) → review results → STOP. Wait for approval.';
|
|
392
|
-
prompt += '\n- B: Implement code → spawn verify worker → STOP. Wait for approval.';
|
|
393
|
-
prompt += '\n- C: Final check (tsc, docs) → call `cli-jaw orchestrate D`.';
|
|
394
|
-
prompt += '\n- D: Summarize and return to IDLE.';
|
|
238
|
+
prompt += renderTemplate(loadTemplate('orchestration.md'), vars);
|
|
239
|
+
// PABCD orchestration skill (boss needs to know the workflow)
|
|
240
|
+
const pabcdPath = join(SKILLS_DIR, 'dev-pabcd', 'SKILL.md');
|
|
241
|
+
if (fs.existsSync(pabcdPath)) {
|
|
242
|
+
prompt += `\n\n## PABCD Orchestration Guide\n${fs.readFileSync(pabcdPath, 'utf8')}`;
|
|
243
|
+
}
|
|
395
244
|
}
|
|
396
245
|
}
|
|
397
246
|
catch { /* DB not ready yet */ }
|
|
@@ -399,20 +248,19 @@ export function getSystemPrompt() {
|
|
|
399
248
|
const hbData = loadHeartbeatFile();
|
|
400
249
|
if (hbData.jobs.length > 0) {
|
|
401
250
|
const activeJobs = hbData.jobs.filter((j) => j.enabled);
|
|
402
|
-
|
|
403
|
-
for (const job of hbData.jobs) {
|
|
251
|
+
const jobList = hbData.jobs.map((job) => {
|
|
404
252
|
const status = job.enabled ? '✅' : '⏸️';
|
|
405
253
|
const mins = job.schedule?.minutes || '?';
|
|
406
|
-
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
-
|
|
254
|
+
return `- ${status} "${job.name}" — every ${mins}min: ${(job.prompt || '').slice(0, 50)}`;
|
|
255
|
+
}).join('\n');
|
|
256
|
+
const vars = getTemplateVars();
|
|
257
|
+
vars.JOB_LIST = jobList;
|
|
258
|
+
vars.ACTIVE_COUNT = String(activeJobs.length);
|
|
259
|
+
vars.TOTAL_COUNT = String(hbData.jobs.length);
|
|
260
|
+
prompt += '\n\n---\n' + renderTemplate(loadTemplate('heartbeat-jobs.md'), vars);
|
|
410
261
|
}
|
|
411
262
|
}
|
|
412
263
|
catch { /* heartbeat.json not ready */ }
|
|
413
|
-
// ─── Skills (Phase 6) ────────────────────────────
|
|
414
|
-
// Active skills are loaded by CLI tools natively via .agents/skills/ symlink.
|
|
415
|
-
// We only inject: (1) active skill names, (2) ref skill list, (3) search/create instruction.
|
|
416
264
|
try {
|
|
417
265
|
const activeSkills = loadActiveSkills();
|
|
418
266
|
const refSkills = loadSkillRegistry();
|
|
@@ -420,30 +268,28 @@ export function getSystemPrompt() {
|
|
|
420
268
|
const availableRef = refSkills.filter(s => !activeIds.has(s.id));
|
|
421
269
|
if (activeSkills.length > 0 || availableRef.length > 0) {
|
|
422
270
|
prompt += '\n\n---\n## Skills System\n';
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
}
|
|
271
|
+
const vars = getTemplateVars();
|
|
272
|
+
vars.ACTIVE_SKILLS_COUNT = String(activeSkills.length);
|
|
273
|
+
vars.ACTIVE_SKILLS_LIST = activeSkills.map(s => `- ${s.name} (${s.id})`).join('\n');
|
|
274
|
+
vars.REF_SKILLS_COUNT = String(availableRef.length);
|
|
275
|
+
vars.REF_SKILLS_LIST = availableRef.map(s => s.id).join(', ');
|
|
276
|
+
// Only render sections that have content
|
|
277
|
+
if (activeSkills.length > 0 && availableRef.length > 0) {
|
|
278
|
+
prompt += renderTemplate(loadTemplate('skills.md'), vars);
|
|
432
279
|
}
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
prompt += '
|
|
439
|
-
|
|
280
|
+
else if (activeSkills.length > 0) {
|
|
281
|
+
// Only active skills — render just that portion
|
|
282
|
+
const tmpl = loadTemplate('skills.md');
|
|
283
|
+
const activeSection = tmpl.split('### Available Skills')[0];
|
|
284
|
+
const discoverySection = tmpl.split('### Skill Discovery')[1];
|
|
285
|
+
prompt += renderTemplate(activeSection + '### Skill Discovery' + (discoverySection || ''), vars);
|
|
286
|
+
}
|
|
287
|
+
else {
|
|
288
|
+
// Only ref skills
|
|
289
|
+
const tmpl = loadTemplate('skills.md');
|
|
290
|
+
const refSection = tmpl.substring(tmpl.indexOf('### Available Skills'));
|
|
291
|
+
prompt += renderTemplate(refSection, vars);
|
|
440
292
|
}
|
|
441
|
-
// 3. Search or create instruction
|
|
442
|
-
prompt += '\n### Skill Discovery\n';
|
|
443
|
-
prompt += 'If a requested task is not covered by any active or available skill:\n';
|
|
444
|
-
prompt += '1. Search the system for relevant CLI tools that can accomplish the task.\n';
|
|
445
|
-
prompt += '2. If a suitable tool exists, create a new SKILL.md and save it to the skills directory.\n';
|
|
446
|
-
prompt += '3. Use the skill-creator reference if available for formatting guidance.\n';
|
|
447
293
|
}
|
|
448
294
|
}
|
|
449
295
|
catch { /* skills not ready */ }
|
|
@@ -453,9 +299,7 @@ export function getSystemPrompt() {
|
|
|
453
299
|
if (session.active_cli === 'codex') {
|
|
454
300
|
const visionSkillPath = join(SKILLS_DIR, 'vision-click', 'SKILL.md');
|
|
455
301
|
if (fs.existsSync(visionSkillPath)) {
|
|
456
|
-
prompt += '\n
|
|
457
|
-
prompt += '- If browser snapshot shows no ref for target, use vision-click: screenshot → `codex exec -i` → `mouse-click <x> <y>`.\n';
|
|
458
|
-
prompt += '- See vision-click skill SKILL.md for full workflow.\n';
|
|
302
|
+
prompt += '\n' + loadTemplate('vision-click.md');
|
|
459
303
|
}
|
|
460
304
|
}
|
|
461
305
|
}
|
|
@@ -464,53 +308,25 @@ export function getSystemPrompt() {
|
|
|
464
308
|
}
|
|
465
309
|
// ─── Employee Prompt (orchestration-free) ────────────
|
|
466
310
|
export function getEmployeePrompt(emp) {
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
prompt += `- If the task says "audit", "verify", "check", or "review" → READ ONLY. Report findings, do NOT fix them.\n`;
|
|
474
|
-
prompt += `- Report results concisely in natural language\n`;
|
|
475
|
-
prompt += `- Respond in the user's language\n`;
|
|
476
|
-
prompt += `- Never run git commit/push/branch/reset/clean unless the user explicitly asks\n`;
|
|
477
|
-
// ─── Browser commands
|
|
478
|
-
prompt += `\n## Browser Control\n`;
|
|
479
|
-
prompt += `For web tasks, always use \`cli-jaw browser\` commands.\n`;
|
|
480
|
-
prompt += `Pattern: snapshot → act → snapshot → verify\n`;
|
|
481
|
-
prompt += `Start: \`cli-jaw browser start\`, Snapshot: \`cli-jaw browser snapshot\`\n`;
|
|
482
|
-
prompt += `Click: \`cli-jaw browser click <ref>\`, Type: \`cli-jaw browser type <ref> "text"\`\n`;
|
|
483
|
-
// ─── Telegram file delivery
|
|
484
|
-
prompt += `\n## Telegram File Delivery\n`;
|
|
485
|
-
prompt += `For non-text output, use \`POST /api/telegram/send\`.\n`;
|
|
486
|
-
prompt += `Types: \`voice|photo|document\` (optionally \`text\`)\n`;
|
|
487
|
-
prompt += `Required for non-text: \`type\` + \`file_path\`\n`;
|
|
488
|
-
prompt += `Specify \`chat_id\` when possible; if omitted, the latest active chat is used.\n`;
|
|
489
|
-
prompt += `Always provide a natural language text report alongside file delivery.\n`;
|
|
490
|
-
// ─── Active Skills (dynamic loading)
|
|
311
|
+
const vars = {
|
|
312
|
+
EMP_NAME: emp.name,
|
|
313
|
+
EMP_ROLE: emp.role || 'general developer',
|
|
314
|
+
ACTIVE_SKILLS_SECTION: '',
|
|
315
|
+
};
|
|
316
|
+
// Active Skills (dynamic loading)
|
|
491
317
|
try {
|
|
492
318
|
const activeSkills = loadActiveSkills();
|
|
493
319
|
if (activeSkills.length > 0) {
|
|
494
|
-
|
|
495
|
-
|
|
320
|
+
let section = `\n## Active Skills (${activeSkills.length})\n`;
|
|
321
|
+
section += `Installed skills — automatically triggered by the CLI.\n`;
|
|
496
322
|
for (const s of activeSkills) {
|
|
497
|
-
|
|
323
|
+
section += `- ${s.name} (${s.id})\n`;
|
|
498
324
|
}
|
|
325
|
+
vars.ACTIVE_SKILLS_SECTION = section;
|
|
499
326
|
}
|
|
500
327
|
}
|
|
501
328
|
catch { /* skills not ready */ }
|
|
502
|
-
|
|
503
|
-
prompt += `\n## Memory\n`;
|
|
504
|
-
prompt += `Long-term memory: use \`cli-jaw memory search/read/save\` commands.\n`;
|
|
505
|
-
// ─── Task Completion Protocol (PABCD)
|
|
506
|
-
prompt += `\n## Task Completion Protocol\n`;
|
|
507
|
-
prompt += `You are an employee agent. Complete your assigned task and report results.\n`;
|
|
508
|
-
prompt += `Do NOT output subtask JSON — you are an executor, not a planner.\n`;
|
|
509
|
-
prompt += `Report findings clearly in natural language. Include:\n`;
|
|
510
|
-
prompt += `- What was checked or implemented\n`;
|
|
511
|
-
prompt += `- PASS/FAIL verdict (for audits) or DONE/NEEDS_FIX (for reviews)\n`;
|
|
512
|
-
prompt += `- Specific file paths and line numbers for any issues found\n`;
|
|
513
|
-
return prompt;
|
|
329
|
+
return renderTemplate(loadTemplate('employee.md'), vars);
|
|
514
330
|
}
|
|
515
331
|
// ─── Employee Prompt v2 (orchestration phase-aware) ──
|
|
516
332
|
export function getEmployeePromptV2(emp, role, currentPhase) {
|
|
@@ -524,6 +340,11 @@ export function getEmployeePromptV2(emp, role, currentPhase) {
|
|
|
524
340
|
if (fs.existsSync(devCommonPath)) {
|
|
525
341
|
prompt += `\n\n## Development Guide (Common)\n${fs.readFileSync(devCommonPath, 'utf8')}`;
|
|
526
342
|
}
|
|
343
|
+
// ─── 1b. Scaffolding guide (always injected)
|
|
344
|
+
const scaffoldingPath = join(SKILLS_DIR, 'dev-scaffolding', 'SKILL.md');
|
|
345
|
+
if (fs.existsSync(scaffoldingPath)) {
|
|
346
|
+
prompt += `\n\n## Project Scaffolding Guide\n${fs.readFileSync(scaffoldingPath, 'utf8')}`;
|
|
347
|
+
}
|
|
527
348
|
// ─── 2. Role-based dev skill injection
|
|
528
349
|
const ROLE_SKILL_MAP = {
|
|
529
350
|
frontend: join(SKILLS_DIR, 'dev-frontend', 'SKILL.md'),
|
|
@@ -551,12 +372,8 @@ export function getEmployeePromptV2(emp, role, currentPhase) {
|
|
|
551
372
|
}
|
|
552
373
|
}
|
|
553
374
|
// ─── 4. Worker context (PABCD-aware)
|
|
554
|
-
const
|
|
555
|
-
|
|
556
|
-
3: 'You are an IMPLEMENTATION worker. Execute the assigned code task. Follow dev conventions, no TODOs, all imports must resolve.',
|
|
557
|
-
4: 'You are a CHECK worker. Test and verify the implementation. Report: execution evidence, bugs found, edge case results. Verdict: DONE or NEEDS_FIX.',
|
|
558
|
-
};
|
|
559
|
-
const ctx = WORKER_CONTEXT[phase] || WORKER_CONTEXT[3];
|
|
375
|
+
const workerContexts = parseWorkerContexts();
|
|
376
|
+
const ctx = workerContexts[phase] || workerContexts[3];
|
|
560
377
|
prompt += `\n\n## Worker Role\n${ctx}`;
|
|
561
378
|
prompt += `\n\n## Execution Rules`;
|
|
562
379
|
prompt += `\n- Read the worklog first to understand context`;
|
|
@@ -568,6 +385,7 @@ export function getEmployeePromptV2(emp, role, currentPhase) {
|
|
|
568
385
|
}
|
|
569
386
|
export function clearPromptCache() { promptCache.clear(); }
|
|
570
387
|
export function regenerateB() {
|
|
388
|
+
clearTemplateCache();
|
|
571
389
|
const fullPrompt = getSystemPrompt();
|
|
572
390
|
fs.writeFileSync(join(PROMPTS_DIR, 'B.md'), fullPrompt);
|
|
573
391
|
// Generate {workDir}/AGENTS.md — read by Codex, Copilot, and OpenCode
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../src/prompt/builder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../src/prompt/builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import { join, dirname } from 'path';
|
|
3
|
+
import { fileURLToPath } from 'url';
|
|
4
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
5
|
+
const TEMPLATE_DIR = join(__dirname, 'templates');
|
|
6
|
+
const templateCache = new Map();
|
|
7
|
+
/** Load a .md template from prompt/templates/ with caching */
|
|
8
|
+
export function loadTemplate(name) {
|
|
9
|
+
if (templateCache.has(name))
|
|
10
|
+
return templateCache.get(name);
|
|
11
|
+
const filePath = join(TEMPLATE_DIR, name);
|
|
12
|
+
const content = fs.readFileSync(filePath, 'utf8');
|
|
13
|
+
templateCache.set(name, content);
|
|
14
|
+
return content;
|
|
15
|
+
}
|
|
16
|
+
/** Replace {{VAR}} placeholders in template string */
|
|
17
|
+
export function renderTemplate(template, vars) {
|
|
18
|
+
return template.replace(/\{\{(\w+)\}\}/g, (_, key) => vars[key] ?? `{{${key}}}`);
|
|
19
|
+
}
|
|
20
|
+
/** Load + render in one call */
|
|
21
|
+
export function loadAndRender(name, vars) {
|
|
22
|
+
return renderTemplate(loadTemplate(name), vars);
|
|
23
|
+
}
|
|
24
|
+
/** Parse worker-context.md into phase → content map */
|
|
25
|
+
export function parseWorkerContexts() {
|
|
26
|
+
const content = loadTemplate('worker-context.md');
|
|
27
|
+
const result = {};
|
|
28
|
+
const sections = content.split(/^## Phase (\d+)/m);
|
|
29
|
+
// sections: ['', '2', ' — Plan Audit\n...', '3', ' — Implementation\n...', '4', ' — Check\n...']
|
|
30
|
+
for (let i = 1; i < sections.length; i += 2) {
|
|
31
|
+
const phaseStr = sections[i];
|
|
32
|
+
const bodyRaw = sections[i + 1];
|
|
33
|
+
if (!phaseStr || !bodyRaw)
|
|
34
|
+
continue;
|
|
35
|
+
const phase = parseInt(phaseStr, 10);
|
|
36
|
+
const body = bodyRaw.replace(/^ — .+\n/, '').trim();
|
|
37
|
+
if (body)
|
|
38
|
+
result[phase] = body;
|
|
39
|
+
}
|
|
40
|
+
return result;
|
|
41
|
+
}
|
|
42
|
+
/** Expose template directory path for API routes */
|
|
43
|
+
export function getTemplateDir() { return TEMPLATE_DIR; }
|
|
44
|
+
/** Clear template cache (call on regenerateB or settings change) */
|
|
45
|
+
export function clearTemplateCache() { templateCache.clear(); }
|
|
46
|
+
//# sourceMappingURL=template-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-loader.js","sourceRoot":"","sources":["../../../src/prompt/template-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AAElD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEhD,8DAA8D;AAC9D,MAAM,UAAU,YAAY,CAAC,IAAY;IACrC,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,aAAa,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;IAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClD,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,IAA4B;IACzE,OAAO,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;AACrF,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,IAA4B;IACpE,OAAO,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;AACpD,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,mBAAmB;IAC/B,MAAM,OAAO,GAAG,YAAY,CAAC,mBAAmB,CAAC,CAAC;IAClD,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACnD,iGAAiG;IACjG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO;YAAE,SAAS;QACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACpD,IAAI,IAAI;YAAE,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IACnC,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,cAAc,KAAa,OAAO,YAAY,CAAC,CAAC,CAAC;AAEjE,oEAAoE;AACpE,MAAM,UAAU,kBAAkB,KAAK,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC"}
|