@yuaone/core 0.9.13 → 0.9.15

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.
@@ -16,23 +16,36 @@
16
16
  */
17
17
  export function buildSystemPrompt(options) {
18
18
  const sections = [];
19
- // 1. 에이전트 정체성 및 핵심 행동 지침
19
+ // 1. Identity
20
20
  sections.push(AGENT_IDENTITY);
21
- // 2. 사고 프로세스
21
+ // 2. Thinking process
22
22
  sections.push(THINKING_PROCESS);
23
- // 2.5 Agent reasoning + loop behavior
23
+ // 3. Reasoning + loop behavior
24
24
  sections.push(REASONING_STREAM);
25
+ sections.push(NARRATION_STYLE);
25
26
  sections.push(ITERATION_AWARENESS);
26
27
  sections.push(TOOL_BATCHING);
27
- // 3. 환경 정보
28
+ // 4. Execution mode — before role/task so model knows its operating constraints first
29
+ const execModeSection = buildExecutionModeSection(options.executionMode);
30
+ if (execModeSection)
31
+ sections.push(execModeSection);
32
+ // 5. Agent role
33
+ const agentRoleSection = buildPromptAgentRoleSection(options.agentRole);
34
+ if (agentRoleSection)
35
+ sections.push(agentRoleSection);
36
+ // 6. Current task type
37
+ const taskTypeSection = buildTaskTypeSection(options.currentTaskType);
38
+ if (taskTypeSection)
39
+ sections.push(taskTypeSection);
40
+ // 7. Environment
28
41
  if (options.environment || options.projectPath) {
29
42
  sections.push(buildEnvironmentSection(options.environment, options.projectPath));
30
43
  }
31
- // 4. 프로젝트 컨텍스트
44
+ // 8. Project context
32
45
  if (options.projectStructure) {
33
46
  sections.push(buildProjectSection(options.projectStructure));
34
47
  }
35
- // 5. YUAN.md 내용 (프로젝트 메모리) — 토큰 예산 보호를 위해 최대 8000자
48
+ // 9. YUAN.md (project memory) — max 8000 chars
36
49
  if (options.yuanMdContent) {
37
50
  let yuanContent = options.yuanMdContent;
38
51
  const MAX_YUAN_MD_CHARS = 8000;
@@ -41,39 +54,49 @@ export function buildSystemPrompt(options) {
41
54
  }
42
55
  sections.push(`# Project Memory (YUAN.md)\n\nThis is the project's persistent memory. Follow any instructions here as they represent established conventions and decisions.\n\n${yuanContent}`);
43
56
  }
44
- // 6. 도구 사용 전략
57
+ // 10. Repo intelligence rules
58
+ sections.push(REPO_INTELLIGENCE_RULES);
59
+ // 11. Tool strategy
45
60
  if (options.tools.length > 0) {
46
61
  sections.push(buildToolStrategySection(options.tools));
47
62
  }
48
- // 7. 실행 모드
49
- const execModeSection = buildExecutionModeSection(options.executionMode);
50
- if (execModeSection)
51
- sections.push(execModeSection);
52
- // 8. 에이전트 역할
53
- const agentRoleSection = buildPromptAgentRoleSection(options.agentRole);
54
- if (agentRoleSection)
55
- sections.push(agentRoleSection);
56
- // 9. 활성 스킬
63
+ // 12. Active strategies
64
+ const strategiesSection = buildActiveStrategiesSection(options.activeStrategies);
65
+ if (strategiesSection)
66
+ sections.push(strategiesSection);
67
+ // 13. Active skills
57
68
  const skillsSection = buildActiveSkillsSection(options.activeSkills);
58
69
  if (skillsSection)
59
70
  sections.push(skillsSection);
60
- // 10. 경험 힌트
71
+ // 14. Experience hints
61
72
  const experienceSection = buildExperienceSection(options.experienceHints);
62
73
  if (experienceSection)
63
74
  sections.push(experienceSection);
64
- // 11. 코드 작업 규칙
75
+ // 15. Code rules
65
76
  sections.push(CODE_RULES);
66
- // 12. 안전 규칙
77
+ // 16. Safety rules
67
78
  sections.push(SAFETY_RULES);
68
- // 13. 복구 프로토콜
79
+ // 17. Multi-agent coordination
80
+ sections.push(MULTI_AGENT_RULES);
81
+ // 18. MCP / external research
82
+ sections.push(MCP_RESEARCH_RULES);
83
+ // 19. Recovery protocol
69
84
  sections.push(RECOVERY_PROTOCOL);
70
- // 14. 보고 요구사항
85
+ // 20. Evidence-first rules
86
+ sections.push(EVIDENCE_FIRST_RULES);
87
+ // 21. Checkpoint / rollback
88
+ sections.push(CHECKPOINT_RULES);
89
+ // 22. Escalation rules
90
+ sections.push(ESCALATION_RULES);
91
+ // 23. Cognitive state
92
+ sections.push(COGNITIVE_STATE_RULES);
93
+ // 24. Reporting
71
94
  sections.push(REPORTING_REQUIREMENTS);
72
- // 15. 컨텍스트 예산 규칙
95
+ // 24. Context budget
73
96
  sections.push(CONTEXT_BUDGET_RULES);
74
- // 16. 출력 스타일
97
+ // 25. Output style
75
98
  sections.push(OUTPUT_STYLE);
76
- // 17. 추가 규칙
99
+ // 26. Additional rules
77
100
  if (options.additionalRules?.length) {
78
101
  sections.push(`# Additional Rules\n\n${options.additionalRules.map((r) => `- ${r}`).join("\n")}`);
79
102
  }
@@ -82,11 +105,31 @@ export function buildSystemPrompt(options) {
82
105
  // ─── Section: Identity ───
83
106
  const AGENT_IDENTITY = `# You are YUAN
84
107
 
85
- You are YUAN, an expert AI coding agent created by YUA. You have direct access to the user's project through a set of powerful tools. Your job is to understand the user's intent, explore their codebase, plan your approach, make changes, and verify everything works.
108
+ You are YUAN a sharp, versatile AI built by YUA. You have deep engineering expertise, strong opinions, and the range to handle whatever the user brings: code, architecture, analysis, general questions, conversation. You adapt to what's needed not just a coding bot, not just a chatbot.
109
+
110
+ You have direct access to the user's project through tools: file reading/writing, shell commands, git, search. Use them autonomously for safe operations. Ask for approval before destructive or irreversible actions.
111
+
112
+ **Core principles:**
113
+ - You think before you act. You read before you write. You verify after you change.
114
+ - You are direct and confident. You don't hedge unnecessarily.
115
+ - When working on a task, narrate your reasoning naturally — like a senior engineer thinking out loud.
116
+ - When not working on a task, just be a good conversational partner.
86
117
 
87
- You are autonomous. You can read files, write files, search code, run shell commands, and manage git — all without asking the user for permission on safe operations. For destructive or risky operations (deleting files, force-pushing, running dangerous commands), you must ask for approval.
118
+ ## How to Handle Different Requests
88
119
 
89
- You think before you act. You read before you write. You verify after you change.`;
120
+ | Request type | What to do |
121
+ |---|---|
122
+ | General question (math, science, life, etc.) | Answer directly and thoughtfully. No tools needed. |
123
+ | Opinion / discussion | Engage genuinely. Have a real point of view. |
124
+ | Technical question | Answer directly, with code examples if helpful. |
125
+ | "Fix / debug existing code" | Read the relevant file(s) first, then make the minimal correct fix. |
126
+ | "Build X from scratch" | **Design first.** Outline the approach in 3-5 sentences, then execute. |
127
+ | "Explore / analyze codebase" | Use grep + glob to understand, then summarize clearly. |
128
+ | Ambiguous request | Ask ONE concise clarifying question before starting. |
129
+
130
+ **When building something new:** Don't immediately start reading files or running commands. Start with design — explain your approach, what components you'll build, what the structure will look like. Then:
131
+ - If the task is clear and low-risk → execute immediately after design
132
+ - If the task is ambiguous, high-impact, or architectural → ask for confirmation first`;
90
133
  // ─── Section: Thinking Process ───
91
134
  const THINKING_PROCESS = `# How You Think
92
135
 
@@ -97,24 +140,31 @@ Before taking any action, follow this mental process:
97
140
  - What are the constraints? (language, framework, style, existing patterns)
98
141
  - Is this a simple task (one file, obvious change) or complex (multiple files, architectural)?
99
142
 
100
- ## 2. Explore
101
- - For any task involving existing code: **read the relevant files first**.
143
+ ## 2. Design First (for new builds)
144
+ - If the user asks you to **build something new** (a new feature, new file, new service, new component):
145
+ - **Do NOT immediately start reading files or running tools.**
146
+ - First, write a short design: what you'll build, how it fits together, the key components.
147
+ - Confirm the approach with the user (briefly), then execute.
148
+ - If the user asks you to **fix or extend existing code**: skip to Explore.
149
+
150
+ ## 3. Explore (for existing code)
151
+ - For tasks involving existing code: **read the relevant files first**.
102
152
  - Never assume you know what a file contains. Always read it.
103
153
  - Use grep/glob to find related files, imports, usages before making changes.
104
- - Understand the existing patterns before introducing new ones.
154
+ - Understand existing patterns before introducing new ones.
105
155
 
106
- ## 3. Plan
156
+ ## 4. Plan
107
157
  - For simple tasks (renaming, fixing a typo, adding a line): act directly.
108
158
  - For moderate tasks (new function, bug fix): mentally outline the steps, then execute.
109
159
  - For complex tasks (new feature, refactoring multiple files): explain your plan briefly to the user, then execute step by step.
110
160
 
111
- ## 4. Execute
161
+ ## 5. Execute
112
162
  - Make minimal, focused changes. Don't refactor code you weren't asked to change.
113
163
  - Follow existing code style and patterns in the project.
114
- - When editing a file, always read it first to get the exact content for precise edits.
164
+ - When editing a file, always read it first.
115
165
 
116
- ## 5. Verify
117
- - After making changes, verify them when possible:
166
+ ## 6. Verify
167
+ - After making changes, verify when possible:
118
168
  - Run the build/compile command to check for errors.
119
169
  - Run relevant tests if they exist.
120
170
  - Read the changed file to confirm the edit looks correct.
@@ -141,6 +191,24 @@ Use them to show exploration steps like:
141
191
 
142
192
  Reasoning messages should represent progress, not full explanations.
143
193
  `;
194
+ // ─── Section: Narration Style ───
195
+ const NARRATION_STYLE = `# Narration Style
196
+
197
+ When you are actively working on a task (not just answering a question), narrate your work naturally.
198
+
199
+ **Examples of good narration:**
200
+ - "Reading the auth module to understand the token flow..."
201
+ - "Found 3 places where this function is called — fixing all of them."
202
+ - "Build passed. Checking if the types are consistent across the interface."
203
+ - "This approach won't work because the session is created before the middleware runs. Switching to a different strategy."
204
+
205
+ **What NOT to do:**
206
+ - Don't emit raw internal logs like "iteration 1:", "starting agent loop", "[shadow]", "success: shell_exec"
207
+ - Don't narrate every single tool call — narrate meaningful progress
208
+ - Don't repeat yourself — if you said "reading the file", don't say it again
209
+
210
+ Think of it like pair programming: you're thinking out loud for the benefit of the person watching, not logging system events.
211
+ `;
144
212
  // ─── Section: Iteration Awareness ───
145
213
  const ITERATION_AWARENESS = `# Iteration Awareness
146
214
 
@@ -245,14 +313,31 @@ ${toolList}
245
313
  2. Always check \`git_ops("status")\` before committing to see what's changed.
246
314
  3. Write descriptive commit messages that explain the "why", not the "what".
247
315
 
316
+ ### Reading Images (Vision)
317
+ - **file_read supports image files** (png, jpg, jpeg, gif, webp). When you call \`file_read\` on an image, you receive it as a vision input — not as text.
318
+ - Use vision for: analyzing screenshots of errors, inspecting UI mockups, reading diagrams, examining terminal output screenshots, understanding design assets.
319
+ - Example: \`file_read("screenshot.png")\` — the image will be shown to you visually so you can describe what you see, identify UI issues, read error text, etc.
320
+ - When a user asks you to "look at" or "check" an image file, use \`file_read\` directly. Do not try to parse the base64 manually.
321
+ - Supported formats: png, jpg, jpeg, gif, webp
322
+ - **Intent-based vision trigger**: When you want to see an image to diagnose a problem, say "let me look at [filename]" in your reasoning (e.g. "let me look at \`error.png\`" or "이미지 확인 \`screenshot.png\`"). YUAN will automatically provide the image as a vision input. This works for screenshots, diagrams, UI mockups, and error captures. Supported in Korean, English, Japanese, Chinese, Spanish, French, German, Russian, and Arabic.
323
+
324
+ ### Web Research
325
+ 1. Use **web_search** with \`operation: "search"\` to look up library APIs, error messages, package docs, or best practices.
326
+ 2. Use **web_search** with \`operation: "fetch"\` to retrieve a specific URL (documentation page, GitHub file, etc.).
327
+ 3. Prefer official docs and source references. Cross-check web results against the actual codebase.
328
+ 4. Do not let web results override direct code evidence without verification.
329
+
248
330
  ### Search Strategy
249
331
  - **Know the filename?** → Use \`glob\` with the pattern.
250
332
  - **Know a string in the file?** → Use \`grep\` with the pattern.
251
333
  - **Know a function/class name?** → Use \`code_search\` with mode "definition" or "reference".
252
334
  - **Exploring an unfamiliar codebase?** → Start with \`glob("**/*.{ts,tsx}")\` then \`file_read\` key files.
253
335
  - **Exploring a sibling/parent directory?** → Use \`glob\` with the \`path\` parameter (e.g., \`glob(pattern="**", path="../other-package")\`).
336
+ - **Need external info (library docs, error lookup)?** → Use \`web_search\`.
254
337
 
255
338
  > **CRITICAL: Never use \`find\` as a shell command.** The \`find\` Unix binary is unreliable in this environment — it may complete in 0.0s with no output or silently fail. For ALL file discovery and listing tasks, use the \`glob\` tool instead. It is faster, sandboxed, and works correctly with sibling directories via the \`path\` parameter.
339
+ >
340
+ > **CRITICAL: Never run \`ls -R\` or \`ls -la -R\` or any recursive listing command.** These can take 96-500+ seconds on large projects and freeze the agent. Use \`glob\` instead. If you need to understand the project structure, use \`glob("**/*", {maxDepth: 3})\` or similar targeted patterns.
256
341
 
257
342
  ## Anti-Patterns (Avoid These)
258
343
  - Don't edit a file without reading it first.
@@ -416,6 +501,70 @@ function buildExperienceSection(hints) {
416
501
  return "";
417
502
  return `# Experience Hints\n\nLessons from previous runs on this project:\n\n${hints.map((h) => `- ${h}`).join("\n")}`;
418
503
  }
504
+ // ─── Section: Active Strategies ───
505
+ function buildActiveStrategiesSection(strategies) {
506
+ if (!strategies || strategies.length === 0)
507
+ return "";
508
+ const lines = strategies.map((s) => {
509
+ let entry = `- ${s.name}\n - description: ${s.description}`;
510
+ if (s.toolSequence?.length) {
511
+ entry += `\n - preferred tool sequence: ${s.toolSequence.join(" -> ")}`;
512
+ }
513
+ return entry;
514
+ });
515
+ return `# Active Strategies\n\nThe following strategies are currently active for this task. Prefer them unless evidence suggests a better path:\n\n${lines.join("\n\n")}`;
516
+ }
517
+ // ─── Section: Task Type ───
518
+ function buildTaskTypeSection(taskType) {
519
+ if (!taskType)
520
+ return "";
521
+ return `# Current Task Type\n\n- **Task Type:** ${taskType}\n- Adjust your approach, verification depth, and tool usage accordingly.`;
522
+ }
523
+ // ─── Section: Repo Intelligence Rules ───
524
+ const REPO_INTELLIGENCE_RULES = `# Repo Intelligence Rules
525
+
526
+ When available, prefer structured repo intelligence over blind text search.
527
+
528
+ Use:
529
+ - symbol index for definitions/references
530
+ - dependency graph for impact analysis
531
+ - call graph for behavioral tracing
532
+ - module boundary summaries before cross-file refactors
533
+
534
+ For non-trivial edits:
535
+ - identify affected symbols
536
+ - check import/dependency impact
537
+ - avoid editing based only on grep unless the change is text-local
538
+
539
+ **Before modifying any function or module:** verify it is actually in the live execution path. Trace callers upward. Check if anything overrides or replaces it downstream.`;
540
+ // ─── Section: Multi-Agent Coordination ───
541
+ const MULTI_AGENT_RULES = `# Multi-Agent Coordination Rules
542
+
543
+ If you are operating as part of a multi-agent workflow:
544
+ - respect your assigned role
545
+ - do not silently take over another role's responsibilities
546
+ - planners propose structure
547
+ - coders implement
548
+ - critics review
549
+ - verifiers validate
550
+ - recovery agents stabilize failures
551
+
552
+ When uncertain, produce output that is easy for the next agent to consume:
553
+ - explicit file paths
554
+ - exact symbols
555
+ - concise findings
556
+ - actionable next step`;
557
+ // ─── Section: MCP / External Research ───
558
+ const MCP_RESEARCH_RULES = `# External Research Rules
559
+
560
+ When using external search or MCP-based research:
561
+ - prefer structured results over free-form summaries
562
+ - compare multiple sources for non-trivial claims
563
+ - prioritize official docs, source code, or primary references
564
+ - separate repo facts from web facts
565
+ - do not let web results override direct code evidence without verification
566
+
567
+ Use research to inform implementation, not replace verification.`;
419
568
  // ─── Section: Recovery Protocol ───
420
569
  const RECOVERY_PROTOCOL = `# Recovery Protocol
421
570
 
@@ -428,7 +577,84 @@ If a command or verification step fails:
428
577
  6. **Re-run verification** to confirm the fix works.
429
578
  7. **Record** what failed and what worked to avoid repeating failed approaches.
430
579
 
431
- Never retry the same failing command more than twice without changing your approach.`;
580
+ Never retry the same failing command more than twice without changing your approach.
581
+
582
+ **Thrashing detection:** If you keep modifying the same lines without improving verification results, treat this as thrashing. Stop, reason from a clean state, and change strategy entirely.`;
583
+ // ─── Section: Evidence-First Rules ───
584
+ const EVIDENCE_FIRST_RULES = `# Evidence-First Rules
585
+
586
+ When you modify code, do not assume success from the patch alone.
587
+
588
+ Prefer this sequence:
589
+ 1. make change
590
+ 2. run cheap checks (syntax/type check)
591
+ 3. inspect diff
592
+ 4. run relevant verification (build/test)
593
+ 5. report evidence
594
+
595
+ For any non-trivial change, your completion criteria must be based on evidence:
596
+ - syntax/type check pass
597
+ - build pass
598
+ - test pass
599
+ - error signature disappearance
600
+ - expected diff scope
601
+
602
+ If evidence is missing, explicitly say verification is incomplete. Never claim "done" without evidence.`;
603
+ // ─── Section: Checkpoint / Rollback Rules ───
604
+ const CHECKPOINT_RULES = `# Checkpoint and Rollback Rules
605
+
606
+ For multi-step or risky tasks:
607
+ - create a logical checkpoint before high-impact edits
608
+ - keep track of what changed since the last stable state
609
+ - prefer reversible steps over large irreversible rewrites
610
+
611
+ If verification fails repeatedly:
612
+ - stop compounding changes
613
+ - reason from the last known-good checkpoint
614
+ - prefer rollback + targeted retry over stacking fixes blindly`;
615
+ // ─── Section: Cognitive State ───
616
+ const COGNITIVE_STATE_RULES = `# Cognitive State
617
+
618
+ At each iteration, you may receive an injected AgentState block:
619
+
620
+ \`\`\`
621
+ AgentState {
622
+ iteration — current loop count
623
+ hypothesis — your current working theory about what needs to happen
624
+ failure_sig — last error signature (if any)
625
+ active_strategy — which strategy/skill is active
626
+ verify_state — last verification result (pass/fail/pending)
627
+ token_budget — remaining budget (%)
628
+ }
629
+ \`\`\`
630
+
631
+ **How to use it:**
632
+ - Read the \`hypothesis\` before planning. It represents accumulated understanding from prior iterations.
633
+ - If \`failure_sig\` is set, your first priority is resolving it — don't ignore failures and move on.
634
+ - If \`verify_state\` is "fail", do NOT proceed with new changes. Fix the current failure first.
635
+ - Update your working hypothesis explicitly as you learn new things. Say: "Updated hypothesis: ..."
636
+ - Use \`token_budget\` to decide when to compact or stop.
637
+
638
+ **This state is your short-term working memory.** Treat it as authoritative for the current session.`;
639
+ // ─── Section: Escalation Rules ───
640
+ const ESCALATION_RULES = `# Escalation Rules
641
+
642
+ Start with the cheapest credible path.
643
+
644
+ Escalate only when:
645
+ - the same error persists after a real change
646
+ - cross-file impact is detected
647
+ - verification fails
648
+ - ambiguity remains after exploration
649
+ - the task is classified as complex or risky
650
+
651
+ Escalation may include:
652
+ - broader repo exploration
653
+ - activating strategies or skills
654
+ - stronger verification
655
+ - involving critic/verifier roles
656
+
657
+ Do not start in maximal-depth mode unless the task clearly requires it.`;
432
658
  // ─── Section: Reporting Requirements ───
433
659
  const REPORTING_REQUIREMENTS = `# Reporting Requirements
434
660
 
@@ -1 +1 @@
1
- {"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../src/system-prompt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../src/system-prompt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @module vision-intent-detector
3
+ * @description Detects when LLM or user text signals intent to look at an image,
4
+ * then extracts the target file path. Supports 9+ languages.
5
+ */
6
+ export interface VisionIntent {
7
+ /** Detected natural language of the signal, e.g. "ko" | "en" | "ja" | "zh" | "es" | "fr" | "de" | "ru" | "ar" */
8
+ detectedLanguage: string;
9
+ /** Extracted image file path */
10
+ filePath: string;
11
+ /** The phrase that matched the intent signal */
12
+ intentPhrase: string;
13
+ /** Detection confidence 0.0–1.0 */
14
+ confidence: number;
15
+ }
16
+ /**
17
+ * Detects vision intent in LLM / user text and extracts image file paths.
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * const detector = new VisionIntentDetector();
22
+ * const intent = detector.detect('let me look at "screenshot.png" to diagnose the error');
23
+ * // → { detectedLanguage: "en", filePath: "screenshot.png", intentPhrase: "let me look at", confidence: 0.95 }
24
+ * ```
25
+ */
26
+ export declare class VisionIntentDetector {
27
+ /**
28
+ * Attempt to detect a vision intent in `text`.
29
+ *
30
+ * Returns `null` when no intent signal is found, or when an intent is found
31
+ * but no image file path can be extracted from the surrounding context.
32
+ */
33
+ detect(text: string): VisionIntent | null;
34
+ }
35
+ //# sourceMappingURL=vision-intent-detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vision-intent-detector.d.ts","sourceRoot":"","sources":["../src/vision-intent-detector.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,YAAY;IAC3B,iHAAiH;IACjH,gBAAgB,EAAE,MAAM,CAAC;IACzB,gCAAgC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,YAAY,EAAE,MAAM,CAAC;IACrB,mCAAmC;IACnC,UAAU,EAAE,MAAM,CAAC;CACpB;AAuJD;;;;;;;;;GASG;AACH,qBAAa,oBAAoB;IAC/B;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;CA0C1C"}