hanseol-dev 4.4.0-dev.0 → 4.4.0-dev.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/dist/agents/index.d.ts +1 -2
  2. package/dist/agents/index.d.ts.map +1 -1
  3. package/dist/agents/index.js +0 -1
  4. package/dist/agents/index.js.map +1 -1
  5. package/dist/agents/planner/index.d.ts +0 -4
  6. package/dist/agents/planner/index.d.ts.map +1 -1
  7. package/dist/agents/planner/index.js +18 -12
  8. package/dist/agents/planner/index.js.map +1 -1
  9. package/dist/cli.js +7 -0
  10. package/dist/cli.js.map +1 -1
  11. package/dist/constants.d.ts +3 -1
  12. package/dist/constants.d.ts.map +1 -1
  13. package/dist/constants.js +3 -1
  14. package/dist/constants.js.map +1 -1
  15. package/dist/core/auth/auth-gate.d.ts.map +1 -1
  16. package/dist/core/auth/auth-gate.js +2 -0
  17. package/dist/core/auth/auth-gate.js.map +1 -1
  18. package/dist/core/background-sync.d.ts +35 -0
  19. package/dist/core/background-sync.d.ts.map +1 -0
  20. package/dist/core/background-sync.js +221 -0
  21. package/dist/core/background-sync.js.map +1 -0
  22. package/dist/core/compact/compact-manager.d.ts.map +1 -1
  23. package/dist/core/compact/compact-manager.js +2 -0
  24. package/dist/core/compact/compact-manager.js.map +1 -1
  25. package/dist/core/llm/llm-client.d.ts +1 -0
  26. package/dist/core/llm/llm-client.d.ts.map +1 -1
  27. package/dist/core/llm/llm-client.js +210 -21
  28. package/dist/core/llm/llm-client.js.map +1 -1
  29. package/dist/core/session/session-manager.d.ts +0 -1
  30. package/dist/core/session/session-manager.d.ts.map +1 -1
  31. package/dist/core/session/session-manager.js +2 -0
  32. package/dist/core/session/session-manager.js.map +1 -1
  33. package/dist/core/telemetry/error-reporter.d.ts.map +1 -1
  34. package/dist/core/telemetry/error-reporter.js +31 -9
  35. package/dist/core/telemetry/error-reporter.js.map +1 -1
  36. package/dist/orchestration/plan-executor.d.ts +0 -1
  37. package/dist/orchestration/plan-executor.d.ts.map +1 -1
  38. package/dist/orchestration/plan-executor.js +82 -54
  39. package/dist/orchestration/plan-executor.js.map +1 -1
  40. package/dist/prompts/agents/planning.d.ts.map +1 -1
  41. package/dist/prompts/agents/planning.js +25 -0
  42. package/dist/prompts/agents/planning.js.map +1 -1
  43. package/dist/prompts/index.d.ts +0 -2
  44. package/dist/prompts/index.d.ts.map +1 -1
  45. package/dist/prompts/index.js +0 -2
  46. package/dist/prompts/index.js.map +1 -1
  47. package/dist/prompts/shared/tool-usage.d.ts +2 -0
  48. package/dist/prompts/shared/tool-usage.d.ts.map +1 -1
  49. package/dist/prompts/shared/tool-usage.js +35 -1
  50. package/dist/prompts/shared/tool-usage.js.map +1 -1
  51. package/dist/prompts/system/plan-execute.d.ts +1 -0
  52. package/dist/prompts/system/plan-execute.d.ts.map +1 -1
  53. package/dist/prompts/system/plan-execute.js +24 -19
  54. package/dist/prompts/system/plan-execute.js.map +1 -1
  55. package/dist/tools/llm/index.d.ts +0 -1
  56. package/dist/tools/llm/index.d.ts.map +1 -1
  57. package/dist/tools/llm/index.js +0 -1
  58. package/dist/tools/llm/index.js.map +1 -1
  59. package/dist/tools/llm/simple/external-services/external-service-api-clients.d.ts +54 -0
  60. package/dist/tools/llm/simple/external-services/external-service-api-clients.d.ts.map +1 -0
  61. package/dist/tools/llm/simple/external-services/external-service-api-clients.js +205 -0
  62. package/dist/tools/llm/simple/external-services/external-service-api-clients.js.map +1 -0
  63. package/dist/tools/llm/simple/external-services/free-tools.d.ts +2 -0
  64. package/dist/tools/llm/simple/external-services/free-tools.d.ts.map +1 -0
  65. package/dist/tools/llm/simple/external-services/free-tools.js +2 -0
  66. package/dist/tools/llm/simple/external-services/free-tools.js.map +1 -0
  67. package/dist/tools/llm/simple/external-services/index.d.ts +3 -0
  68. package/dist/tools/llm/simple/external-services/index.d.ts.map +1 -0
  69. package/dist/tools/llm/simple/external-services/index.js +3 -0
  70. package/dist/tools/llm/simple/external-services/index.js.map +1 -0
  71. package/dist/tools/llm/simple/external-services/once-tools.d.ts +3 -0
  72. package/dist/tools/llm/simple/external-services/once-tools.d.ts.map +1 -0
  73. package/dist/tools/llm/simple/external-services/once-tools.js +106 -0
  74. package/dist/tools/llm/simple/external-services/once-tools.js.map +1 -0
  75. package/dist/tools/llm/simple/file-tools.d.ts +1 -1
  76. package/dist/tools/llm/simple/file-tools.d.ts.map +1 -1
  77. package/dist/tools/llm/simple/file-tools.js +49 -6
  78. package/dist/tools/llm/simple/file-tools.js.map +1 -1
  79. package/dist/tools/llm/simple/index.d.ts +1 -0
  80. package/dist/tools/llm/simple/index.d.ts.map +1 -1
  81. package/dist/tools/llm/simple/index.js +1 -0
  82. package/dist/tools/llm/simple/index.js.map +1 -1
  83. package/dist/tools/llm/simple/powershell-tool.d.ts.map +1 -1
  84. package/dist/tools/llm/simple/powershell-tool.js +15 -2
  85. package/dist/tools/llm/simple/powershell-tool.js.map +1 -1
  86. package/dist/tools/llm/simple/simple-tool-executor.d.ts +3 -0
  87. package/dist/tools/llm/simple/simple-tool-executor.d.ts.map +1 -1
  88. package/dist/tools/llm/simple/simple-tool-executor.js +9 -0
  89. package/dist/tools/llm/simple/simple-tool-executor.js.map +1 -1
  90. package/dist/tools/office/excel-tools/cells.d.ts.map +1 -1
  91. package/dist/tools/office/excel-tools/cells.js +5 -1
  92. package/dist/tools/office/excel-tools/cells.js.map +1 -1
  93. package/dist/tools/office/excel-tools/sheets.d.ts.map +1 -1
  94. package/dist/tools/office/excel-tools/sheets.js +6 -1
  95. package/dist/tools/office/excel-tools/sheets.js.map +1 -1
  96. package/dist/tools/office/excel-tools/tables.d.ts.map +1 -1
  97. package/dist/tools/office/excel-tools/tables.js +6 -1
  98. package/dist/tools/office/excel-tools/tables.js.map +1 -1
  99. package/dist/tools/registry.d.ts.map +1 -1
  100. package/dist/tools/registry.js +3 -2
  101. package/dist/tools/registry.js.map +1 -1
  102. package/dist/ui/components/ActivityIndicator.d.ts +1 -1
  103. package/dist/ui/components/ActivityIndicator.d.ts.map +1 -1
  104. package/dist/ui/components/ActivityIndicator.js +0 -1
  105. package/dist/ui/components/ActivityIndicator.js.map +1 -1
  106. package/dist/ui/components/PlanExecuteApp.d.ts +1 -1
  107. package/dist/ui/components/PlanExecuteApp.d.ts.map +1 -1
  108. package/dist/ui/components/PlanExecuteApp.js +20 -64
  109. package/dist/ui/components/PlanExecuteApp.js.map +1 -1
  110. package/package.json +3 -1
  111. package/dist/agents/docs-search/index.d.ts +0 -33
  112. package/dist/agents/docs-search/index.d.ts.map +0 -1
  113. package/dist/agents/docs-search/index.js +0 -244
  114. package/dist/agents/docs-search/index.js.map +0 -1
  115. package/dist/prompts/agents/docs-search-decision.d.ts +0 -6
  116. package/dist/prompts/agents/docs-search-decision.d.ts.map +0 -1
  117. package/dist/prompts/agents/docs-search-decision.js +0 -46
  118. package/dist/prompts/agents/docs-search-decision.js.map +0 -1
  119. package/dist/prompts/agents/docs-search.d.ts +0 -4
  120. package/dist/prompts/agents/docs-search.d.ts.map +0 -1
  121. package/dist/prompts/agents/docs-search.js +0 -70
  122. package/dist/prompts/agents/docs-search.js.map +0 -1
  123. package/dist/tools/llm/agents/docs-search-tools.d.ts +0 -17
  124. package/dist/tools/llm/agents/docs-search-tools.d.ts.map +0 -1
  125. package/dist/tools/llm/agents/docs-search-tools.js +0 -265
  126. package/dist/tools/llm/agents/docs-search-tools.js.map +0 -1
  127. package/dist/tools/llm/simple/docs-search-agent-tool.d.ts +0 -6
  128. package/dist/tools/llm/simple/docs-search-agent-tool.d.ts.map +0 -1
  129. package/dist/tools/llm/simple/docs-search-agent-tool.js +0 -104
  130. package/dist/tools/llm/simple/docs-search-agent-tool.js.map +0 -1
  131. package/dist/ui/components/DocsSearchProgress.d.ts +0 -13
  132. package/dist/ui/components/DocsSearchProgress.d.ts.map +0 -1
  133. package/dist/ui/components/DocsSearchProgress.js +0 -37
  134. package/dist/ui/components/DocsSearchProgress.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hanseol-dev",
3
- "version": "4.4.0-dev.0",
3
+ "version": "4.4.0-dev.3",
4
4
  "description": "Hanseol - OpenAI-Compatible Coding Agent",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -88,6 +88,8 @@
88
88
  "offline"
89
89
  ],
90
90
  "dashboardUrl": "https://52.78.246.50.nip.io",
91
+ "onceUrl": "https://52.78.246.50.nip.io:5090",
92
+ "freeUrl": "https://52.78.246.50.nip.io:6090",
91
93
  "author": "Hanseol Team",
92
94
  "license": "MIT",
93
95
  "repository": {
@@ -1,33 +0,0 @@
1
- import { BaseAgent, AgentContext, AgentResult, AgentConfig } from '../base/base-agent.js';
2
- import { LLMClient } from '../../core/llm/llm-client.js';
3
- import { ToolDefinition } from '../../types/index.js';
4
- export type DocsSearchProgressCallback = (type: 'info' | 'tell_user' | 'complete', message: string, data?: {
5
- summary?: string;
6
- findings?: string;
7
- sources?: string[];
8
- }) => void;
9
- export declare function setDocsSearchProgressCallback(callback: DocsSearchProgressCallback | null): void;
10
- export declare class DocsSearchAgent extends BaseAgent {
11
- readonly name = "DocsSearchAgent";
12
- readonly description = "Searches ~/.hanseol/docs using hierarchical navigation";
13
- constructor(llmClient: LLMClient, config?: Partial<AgentConfig>);
14
- protected getTools(): ToolDefinition[];
15
- protected buildSystemPrompt(_context?: AgentContext): string;
16
- execute(input: string, _context?: AgentContext): Promise<AgentResult>;
17
- private formatToolArgs;
18
- private formatFinalResult;
19
- }
20
- export declare function createDocsSearchAgent(llmClient: LLMClient, config?: Partial<AgentConfig>): DocsSearchAgent;
21
- export declare function executeDocsSearchAgent(llmClient: LLMClient, query: string): Promise<{
22
- success: boolean;
23
- result?: string;
24
- error?: string;
25
- }>;
26
- export declare function initializeDocsDirectory(): Promise<void>;
27
- export declare function addDocumentationFile(filename: string, content: string): Promise<{
28
- success: boolean;
29
- path?: string;
30
- error?: string;
31
- }>;
32
- export default DocsSearchAgent;
33
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agents/docs-search/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC1F,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAW,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAQ/D,MAAM,MAAM,0BAA0B,GAAG,CACvC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,EACvC,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,KAC/D,IAAI,CAAC;AAUV,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,0BAA0B,GAAG,IAAI,GAAG,IAAI,CAE/F;AAoBD,qBAAa,eAAgB,SAAQ,SAAS;IAC5C,QAAQ,CAAC,IAAI,qBAAqB;IAClC,QAAQ,CAAC,WAAW,4DAA4D;gBAEpE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC;IAI/D,SAAS,CAAC,QAAQ,IAAI,cAAc,EAAE;IAItC,SAAS,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,YAAY,GAAG,MAAM;IAItD,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAqJ3E,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,iBAAiB;CAe1B;AAKD,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,eAAe,CAE1G;AAKD,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAGhE;AAKD,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAwD7D;AAKD,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAqB9D;AAED,eAAe,eAAe,CAAC"}
@@ -1,244 +0,0 @@
1
- import { BaseAgent } from '../base/base-agent.js';
2
- import { DOCS_SEARCH_SYSTEM_PROMPT, buildDocsSearchUserMessage } from '../../prompts/agents/docs-search.js';
3
- import { DOCS_SEARCH_TOOLS, createDocsToolExecutor } from '../../tools/llm/agents/docs-search-tools.js';
4
- import { logger } from '../../utils/logger.js';
5
- let globalProgressCallback = null;
6
- export function setDocsSearchProgressCallback(callback) {
7
- globalProgressCallback = callback;
8
- }
9
- const DEFAULT_CONFIG = {
10
- temperature: 0.3,
11
- maxTokens: 4000,
12
- };
13
- const SOFT_ITERATION_LIMIT = 50;
14
- const HARD_ITERATION_LIMIT = 100;
15
- export class DocsSearchAgent extends BaseAgent {
16
- name = 'DocsSearchAgent';
17
- description = 'Searches ~/.hanseol/docs using hierarchical navigation';
18
- constructor(llmClient, config) {
19
- super(llmClient, { ...DEFAULT_CONFIG, ...config });
20
- }
21
- getTools() {
22
- return DOCS_SEARCH_TOOLS;
23
- }
24
- buildSystemPrompt(_context) {
25
- return DOCS_SEARCH_SYSTEM_PROMPT;
26
- }
27
- async execute(input, _context) {
28
- logger.enter('DocsSearchAgent.execute', { query: input });
29
- logger.startTimer('docs-search-total');
30
- const progressCallback = globalProgressCallback;
31
- progressCallback?.('info', `Searching: "${input.slice(0, 50)}${input.length > 50 ? '...' : ''}"`);
32
- let finalResult = null;
33
- const toolExecutor = createDocsToolExecutor((message) => {
34
- progressCallback?.('tell_user', message);
35
- logger.debug('tell_to_user', { message });
36
- }, (summary, findings, sources) => {
37
- finalResult = { summary, findings, sources };
38
- progressCallback?.('complete', summary, { summary, findings, sources });
39
- logger.debug('submit_findings', { summary, sourcesCount: sources.length });
40
- });
41
- try {
42
- const messages = [
43
- { role: 'system', content: DOCS_SEARCH_SYSTEM_PROMPT },
44
- { role: 'user', content: buildDocsSearchUserMessage(input) },
45
- ];
46
- let iterations = 0;
47
- while (!finalResult) {
48
- iterations++;
49
- if (iterations === SOFT_ITERATION_LIMIT) {
50
- messages.push({
51
- role: 'system',
52
- content: `You have made ${SOFT_ITERATION_LIMIT} tool calls. Please wrap up your search and call submit_findings soon.`,
53
- });
54
- logger.warn('Docs search soft limit reached', { iterations });
55
- }
56
- if (iterations > HARD_ITERATION_LIMIT) {
57
- logger.error('Docs search hard limit exceeded', { iterations });
58
- return {
59
- success: false,
60
- error: `Search exceeded maximum iterations (${HARD_ITERATION_LIMIT}). Please try a more specific query.`,
61
- };
62
- }
63
- logger.flow(`Search iteration ${iterations}`);
64
- const response = await this.llmClient.chatCompletion({
65
- messages,
66
- tools: DOCS_SEARCH_TOOLS,
67
- temperature: this.config.temperature,
68
- max_tokens: this.config.maxTokens,
69
- });
70
- const assistantMessage = response.choices[0]?.message;
71
- if (!assistantMessage) {
72
- throw new Error('No response from LLM');
73
- }
74
- messages.push(assistantMessage);
75
- if (assistantMessage.tool_calls && assistantMessage.tool_calls.length > 0) {
76
- for (const toolCall of assistantMessage.tool_calls) {
77
- const toolName = toolCall.function.name;
78
- let args;
79
- try {
80
- args = JSON.parse(toolCall.function.arguments);
81
- }
82
- catch {
83
- logger.warn('Failed to parse tool arguments', { toolName });
84
- messages.push({
85
- role: 'tool',
86
- content: 'Error: Invalid tool arguments',
87
- tool_call_id: toolCall.id,
88
- });
89
- continue;
90
- }
91
- progressCallback?.('info', `${toolName}: ${this.formatToolArgs(toolName, args)}`);
92
- const result = await toolExecutor(toolName, args);
93
- messages.push({
94
- role: 'tool',
95
- content: result.success ? (result.result || 'Success') : `Error: ${result.error}`,
96
- tool_call_id: toolCall.id,
97
- });
98
- if (result.terminate) {
99
- break;
100
- }
101
- }
102
- }
103
- else {
104
- logger.warn('LLM responded without tool calls');
105
- messages.push({
106
- role: 'system',
107
- content: 'You must use tools to search documentation. Call list_directory to explore, or submit_findings to complete.',
108
- });
109
- }
110
- }
111
- const totalElapsed = logger.endTimer('docs-search-total');
112
- logger.exit('DocsSearchAgent.execute', { success: true, iterations });
113
- return {
114
- success: true,
115
- result: finalResult ? this.formatFinalResult(finalResult) : 'Error: Search completed without findings.',
116
- metadata: {
117
- iterations,
118
- duration: totalElapsed,
119
- },
120
- };
121
- }
122
- catch (error) {
123
- logger.endTimer('docs-search-total');
124
- logger.error('Documentation Search Failed', error instanceof Error ? error : new Error(String(error)));
125
- progressCallback?.('complete', 'Search failed', { summary: 'Error occurred', findings: '', sources: [] });
126
- return {
127
- success: false,
128
- error: error instanceof Error ? error.message : 'Unknown error in docs search',
129
- };
130
- }
131
- }
132
- formatToolArgs(toolName, args) {
133
- const reason = args['reason'];
134
- switch (toolName) {
135
- case 'list_directory':
136
- return reason || (args['path'] ? `"${args['path']}"` : '(root)');
137
- case 'read_docs_file':
138
- case 'preview_file':
139
- return reason || `"${args['path']}"`;
140
- case 'tell_to_user':
141
- return args['message']?.slice(0, 50) || '';
142
- case 'submit_findings':
143
- return 'Submitting report...';
144
- default:
145
- return JSON.stringify(args).slice(0, 50);
146
- }
147
- }
148
- formatFinalResult(result) {
149
- const parts = [];
150
- parts.push(`## Summary\n${result.summary}`);
151
- parts.push(`\n## Findings\n${result.findings}`);
152
- if (result.sources.length > 0) {
153
- parts.push(`\n## Sources`);
154
- result.sources.forEach(source => {
155
- parts.push(`- ${source}`);
156
- });
157
- }
158
- return parts.join('\n');
159
- }
160
- }
161
- export function createDocsSearchAgent(llmClient, config) {
162
- return new DocsSearchAgent(llmClient, config);
163
- }
164
- export async function executeDocsSearchAgent(llmClient, query) {
165
- const agent = new DocsSearchAgent(llmClient);
166
- return agent.execute(query);
167
- }
168
- export async function initializeDocsDirectory() {
169
- const fs = await import('fs/promises');
170
- const path = await import('path');
171
- const os = await import('os');
172
- const docsPath = path.join(os.homedir(), '.hanseol', 'docs');
173
- try {
174
- await fs.mkdir(docsPath, { recursive: true });
175
- const readmePath = path.join(docsPath, 'README.md');
176
- try {
177
- await fs.access(readmePath);
178
- }
179
- catch {
180
- const sampleReadme = `# 한설 Documentation
181
-
182
- Welcome to the 한설 documentation directory!
183
-
184
- ## Overview
185
-
186
- This directory contains local documentation that can be searched by the AI assistant.
187
-
188
- ## Adding Documentation
189
-
190
- Simply place your markdown (.md) files in this directory. The AI will be able to search and reference them.
191
-
192
- ## Folder Structure
193
-
194
- Organize your documentation hierarchically:
195
- - Create folders for major categories
196
- - Use sub-folders for specific topics
197
- - Place .md files at appropriate levels
198
-
199
- Example:
200
- \`\`\`
201
- ~/.hanseol/docs/
202
- ├── README.md
203
- ├── tutorials/
204
- │ ├── getting-started.md
205
- │ └── advanced-usage.md
206
- ├── reference/
207
- │ ├── api.md
208
- │ └── configuration.md
209
- └── agent_framework/
210
- ├── agno/
211
- │ ├── overview.md
212
- │ └── examples.md
213
- └── langchain/
214
- └── setup.md
215
- \`\`\`
216
- `;
217
- await fs.writeFile(readmePath, sampleReadme, 'utf-8');
218
- }
219
- }
220
- catch (error) {
221
- logger.error('Failed to initialize docs directory', error instanceof Error ? error : new Error(String(error)));
222
- }
223
- }
224
- export async function addDocumentationFile(filename, content) {
225
- try {
226
- const fs = await import('fs/promises');
227
- const pathModule = await import('path');
228
- const os = await import('os');
229
- const docsPath = pathModule.join(os.homedir(), '.hanseol', 'docs');
230
- await fs.mkdir(docsPath, { recursive: true });
231
- const sanitizedFilename = pathModule.basename(filename);
232
- const filePath = pathModule.join(docsPath, sanitizedFilename);
233
- await fs.writeFile(filePath, content, 'utf-8');
234
- return { success: true, path: filePath };
235
- }
236
- catch (error) {
237
- return {
238
- success: false,
239
- error: error instanceof Error ? error.message : 'Failed to add documentation',
240
- };
241
- }
242
- }
243
- export default DocsSearchAgent;
244
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agents/docs-search/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAA0C,MAAM,uBAAuB,CAAC;AAG1F,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AAC5G,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AACxG,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAc/C,IAAI,sBAAsB,GAAsC,IAAI,CAAC;AAKrE,MAAM,UAAU,6BAA6B,CAAC,QAA2C;IACvF,sBAAsB,GAAG,QAAQ,CAAC;AACpC,CAAC;AAKD,MAAM,cAAc,GAAgB;IAClC,WAAW,EAAE,GAAG;IAChB,SAAS,EAAE,IAAI;CAEhB,CAAC;AAKF,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAChC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAKjC,MAAM,OAAO,eAAgB,SAAQ,SAAS;IACnC,IAAI,GAAG,iBAAiB,CAAC;IACzB,WAAW,GAAG,wDAAwD,CAAC;IAEhF,YAAY,SAAoB,EAAE,MAA6B;QAC7D,KAAK,CAAC,SAAS,EAAE,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC;IAES,QAAQ;QAChB,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAES,iBAAiB,CAAC,QAAuB;QACjD,OAAO,yBAAyB,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAa,EAAE,QAAuB;QAClD,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1D,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;QAEvC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;QAChD,gBAAgB,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAGlG,IAAI,WAAW,GAIJ,IAAI,CAAC;QAGhB,MAAM,YAAY,GAAG,sBAAsB,CAEzC,CAAC,OAAe,EAAE,EAAE;YAClB,gBAAgB,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACzC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAC5C,CAAC,EAED,CAAC,OAAe,EAAE,QAAgB,EAAE,OAAiB,EAAE,EAAE;YACvD,WAAW,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;YAC7C,gBAAgB,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;YACxE,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7E,CAAC,CACF,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAc;gBAC1B,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,yBAAyB,EAAE;gBACtD,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,0BAA0B,CAAC,KAAK,CAAC,EAAE;aAC7D,CAAC;YAEF,IAAI,UAAU,GAAG,CAAC,CAAC;YAGnB,OAAO,CAAC,WAAW,EAAE,CAAC;gBACpB,UAAU,EAAE,CAAC;gBAGb,IAAI,UAAU,KAAK,oBAAoB,EAAE,CAAC;oBACxC,QAAQ,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,iBAAiB,oBAAoB,wEAAwE;qBACvH,CAAC,CAAC;oBACH,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;gBAChE,CAAC;gBAGD,IAAI,UAAU,GAAG,oBAAoB,EAAE,CAAC;oBACtC,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;oBAChE,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,uCAAuC,oBAAoB,sCAAsC;qBACzG,CAAC;gBACJ,CAAC;gBAED,MAAM,CAAC,IAAI,CAAC,oBAAoB,UAAU,EAAE,CAAC,CAAC;gBAG9C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;oBACnD,QAAQ;oBACR,KAAK,EAAE,iBAAiB;oBACxB,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;oBACpC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;iBAClC,CAAC,CAAC;gBAEH,MAAM,gBAAgB,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;gBACtD,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACtB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;gBAC1C,CAAC;gBAED,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAGhC,IAAI,gBAAgB,CAAC,UAAU,IAAI,gBAAgB,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1E,KAAK,MAAM,QAAQ,IAAI,gBAAgB,CAAC,UAAU,EAAE,CAAC;wBACnD,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;wBACxC,IAAI,IAA6B,CAAC;wBAElC,IAAI,CAAC;4BACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;wBACjD,CAAC;wBAAC,MAAM,CAAC;4BACP,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;4BAC5D,QAAQ,CAAC,IAAI,CAAC;gCACZ,IAAI,EAAE,MAAM;gCACZ,OAAO,EAAE,+BAA+B;gCACxC,YAAY,EAAE,QAAQ,CAAC,EAAE;6BAC1B,CAAC,CAAC;4BACH,SAAS;wBACX,CAAC;wBAGD,gBAAgB,EAAE,CAAC,MAAM,EAAE,GAAG,QAAQ,KAAK,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;wBAGlF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;wBAElD,QAAQ,CAAC,IAAI,CAAC;4BACZ,IAAI,EAAE,MAAM;4BACZ,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,MAAM,CAAC,KAAK,EAAE;4BACjF,YAAY,EAAE,QAAQ,CAAC,EAAE;yBAC1B,CAAC,CAAC;wBAGH,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;4BACrB,MAAM;wBACR,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,CAAC;oBAGN,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;oBAChD,QAAQ,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,6GAA6G;qBACvH,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;YAC1D,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;YAEtE,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,2CAA2C;gBACvG,QAAQ,EAAE;oBACR,UAAU;oBACV,QAAQ,EAAE,YAAY;iBACvB;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACvG,gBAAgB,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;YAE1G,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,8BAA8B;aAC/E,CAAC;QACJ,CAAC;IACH,CAAC;IAMO,cAAc,CAAC,QAAgB,EAAE,IAA6B;QACpE,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAuB,CAAC;QAEpD,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,gBAAgB;gBACnB,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACnE,KAAK,gBAAgB,CAAC;YACtB,KAAK,cAAc;gBACjB,OAAO,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;YACvC,KAAK,cAAc;gBACjB,OAAQ,IAAI,CAAC,SAAS,CAAY,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;YACzD,KAAK,iBAAiB;gBACpB,OAAO,sBAAsB,CAAC;YAChC;gBACE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAKO,iBAAiB,CAAC,MAAgE;QACxF,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,KAAK,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEhD,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC3B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBAC9B,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CACF;AAKD,MAAM,UAAU,qBAAqB,CAAC,SAAoB,EAAE,MAA6B;IACvF,OAAO,IAAI,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AAChD,CAAC;AAKD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,SAAoB,EACpB,KAAa;IAEb,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;IAC7C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAKD,MAAM,CAAC,KAAK,UAAU,uBAAuB;IAC3C,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;IAE9B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IAE7D,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE9C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoC1B,CAAC;YACI,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjH,CAAC;AACH,CAAC;AAKD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,QAAgB,EAChB,OAAe;IAEf,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QAE9B,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QACnE,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE9C,MAAM,iBAAiB,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QAE9D,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAE/C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B;SAC9E,CAAC;IACJ,CAAC;AACH,CAAC;AAED,eAAe,eAAe,CAAC"}
@@ -1,6 +0,0 @@
1
- export declare const DOCS_SEARCH_DECISION_PROMPT = "You are a documentation search classifier.\n\n## IMPORTANT: Offline Environment\nThis is an OFFLINE environment with NO external internet access.\nThe ONLY way to get up-to-date information is by searching the local documentation below.\n\n## Available Documentation (depth 1):\n{folder_structure}\n\n## Rules:\n- Answer ONLY \"Yes\" or \"No\" - nothing else\n- Answer \"Yes\" ONLY when BOTH conditions are met:\n 1. The user needs up-to-date or specific information (API docs, framework usage, library features, etc.)\n 2. There is a folder name above that looks relevant to the topic\n- Answer \"No\" if:\n - The question is about general coding/logic that doesn't need docs\n - No folder above seems related to the user's topic\n - The user is asking about this project's own codebase (not external docs)\n- When in doubt, answer \"No\" (avoid unnecessary searches)\n\n## User Message:\n{user_message}\n\nYour Answer (Yes or No):";
2
- export declare const DOCS_SEARCH_DECISION_RETRY_PROMPT = "Your previous response was not valid. You must answer with exactly \"Yes\" or \"No\".\n\nShould the documentation be searched for this question?\n\nAnswer (Yes or No):";
3
- export declare function buildDocsSearchDecisionPrompt(folderStructure: string, userMessage: string): string;
4
- export declare function parseDocsSearchDecision(response: string): boolean | null;
5
- export default DOCS_SEARCH_DECISION_PROMPT;
6
- //# sourceMappingURL=docs-search-decision.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"docs-search-decision.d.ts","sourceRoot":"","sources":["../../../src/prompts/agents/docs-search-decision.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,2BAA2B,86BAuBf,CAAC;AAK1B,eAAO,MAAM,iCAAiC,4KAI1B,CAAC;AAKrB,wBAAgB,6BAA6B,CAC3C,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,GAClB,MAAM,CAIR;AAMD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAWxE;AAED,eAAe,2BAA2B,CAAC"}
@@ -1,46 +0,0 @@
1
- export const DOCS_SEARCH_DECISION_PROMPT = `You are a documentation search classifier.
2
-
3
- ## IMPORTANT: Offline Environment
4
- This is an OFFLINE environment with NO external internet access.
5
- The ONLY way to get up-to-date information is by searching the local documentation below.
6
-
7
- ## Available Documentation (depth 1):
8
- {folder_structure}
9
-
10
- ## Rules:
11
- - Answer ONLY "Yes" or "No" - nothing else
12
- - Answer "Yes" ONLY when BOTH conditions are met:
13
- 1. The user needs up-to-date or specific information (API docs, framework usage, library features, etc.)
14
- 2. There is a folder name above that looks relevant to the topic
15
- - Answer "No" if:
16
- - The question is about general coding/logic that doesn't need docs
17
- - No folder above seems related to the user's topic
18
- - The user is asking about this project's own codebase (not external docs)
19
- - When in doubt, answer "No" (avoid unnecessary searches)
20
-
21
- ## User Message:
22
- {user_message}
23
-
24
- Your Answer (Yes or No):`;
25
- export const DOCS_SEARCH_DECISION_RETRY_PROMPT = `Your previous response was not valid. You must answer with exactly "Yes" or "No".
26
-
27
- Should the documentation be searched for this question?
28
-
29
- Answer (Yes or No):`;
30
- export function buildDocsSearchDecisionPrompt(folderStructure, userMessage) {
31
- return DOCS_SEARCH_DECISION_PROMPT
32
- .replace('{folder_structure}', folderStructure)
33
- .replace('{user_message}', userMessage);
34
- }
35
- export function parseDocsSearchDecision(response) {
36
- const normalized = response.trim().toLowerCase();
37
- if (normalized === 'yes' || normalized.startsWith('yes')) {
38
- return true;
39
- }
40
- if (normalized === 'no' || normalized.startsWith('no')) {
41
- return false;
42
- }
43
- return null;
44
- }
45
- export default DOCS_SEARCH_DECISION_PROMPT;
46
- //# sourceMappingURL=docs-search-decision.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"docs-search-decision.js","sourceRoot":"","sources":["../../../src/prompts/agents/docs-search-decision.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,MAAM,2BAA2B,GAAG;;;;;;;;;;;;;;;;;;;;;;;yBAuBlB,CAAC;AAK1B,MAAM,CAAC,MAAM,iCAAiC,GAAG;;;;oBAI7B,CAAC;AAKrB,MAAM,UAAU,6BAA6B,CAC3C,eAAuB,EACvB,WAAmB;IAEnB,OAAO,2BAA2B;SAC/B,OAAO,CAAC,oBAAoB,EAAE,eAAe,CAAC;SAC9C,OAAO,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;AAC5C,CAAC;AAMD,MAAM,UAAU,uBAAuB,CAAC,QAAgB;IACtD,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAEjD,IAAI,UAAU,KAAK,KAAK,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACvD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,eAAe,2BAA2B,CAAC"}
@@ -1,4 +0,0 @@
1
- export declare const DOCS_SEARCH_SYSTEM_PROMPT = "You are a documentation search expert. Your task is to find relevant information in ~/.hanseol/docs by navigating its hierarchical folder structure.\n\n## Documentation Structure\n\nThe docs folder is organized hierarchically:\n- **Top-level folders** = Major categories (e.g., agent_framework/, tutorials/, reference/)\n- **Sub-folders** = Specific topics or frameworks (e.g., agno/, langchain/)\n- **Files** = Documentation in markdown format (.md)\n\nNavigate by exploring folder names to understand what's available, then drill down to find relevant content.\n\n## Available Tools\n\n1. **list_directory** - List contents of a folder\n - Use this to explore the folder structure\n - Start from root (\"\") and navigate deeper based on folder names\n\n2. **read_docs_file** - Read entire file content\n - Use after identifying a relevant file\n - Good for smaller files or when you need full context\n\n3. **preview_file** - Read first N lines of a file\n - Use to quickly check if a file is relevant before reading fully\n - Saves time on large documents\n\n4. **tell_to_user** - Send progress update to user\n - Keep the user informed about what you're doing\n - Use for significant progress (found relevant folder, reading important file, etc.)\n\n5. **submit_findings** - Submit final report and terminate\n - Call this when you have gathered enough information\n - This is the ONLY way to complete the search\n - Include summary, detailed findings, and source files\n\n## Search Strategy\n\n1. **Start broad**: List root directory to understand available categories\n2. **Navigate by relevance**: Choose folders whose names match the query topic\n3. **Read multiple files**: Information may be spread across several documents\n4. **Preview before reading**: For large files, preview first to check relevance\n5. **Keep user informed**: Use tell_to_user for significant findings\n6. **Submit when ready**: Call submit_findings when you have enough information\n\n## Important Rules\n\n- **No iteration limit**: Take as many steps as needed to find good information\n- **Be thorough**: Check 2-5 potentially relevant documents when possible\n- **Must call submit_findings**: This is the only way to complete the search\n- **Respond in user's language**: Match the language of the user's query\n\n## Example Flow\n\n1. list_directory(\"\") \u2192 See top-level categories\n2. list_directory(\"agent_framework\") \u2192 Explore relevant category\n3. tell_to_user(\"Found agent_framework folder, exploring...\")\n4. list_directory(\"agent_framework/agno\") \u2192 Drill down\n5. preview_file(\"agent_framework/agno/overview.md\", 30) \u2192 Check relevance\n6. read_docs_file(\"agent_framework/agno/overview.md\") \u2192 Read full content\n7. read_docs_file(\"agent_framework/agno/examples.md\") \u2192 Read related file\n8. submit_findings(summary, findings, sources) \u2192 Complete search\n";
2
- export declare function buildDocsSearchUserMessage(query: string): string;
3
- export default DOCS_SEARCH_SYSTEM_PROMPT;
4
- //# sourceMappingURL=docs-search.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"docs-search.d.ts","sourceRoot":"","sources":["../../../src/prompts/agents/docs-search.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,yBAAyB,22FA4DrC,CAAC;AAKF,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMhE;AAED,eAAe,yBAAyB,CAAC"}
@@ -1,70 +0,0 @@
1
- export const DOCS_SEARCH_SYSTEM_PROMPT = `You are a documentation search expert. Your task is to find relevant information in ~/.hanseol/docs by navigating its hierarchical folder structure.
2
-
3
- ## Documentation Structure
4
-
5
- The docs folder is organized hierarchically:
6
- - **Top-level folders** = Major categories (e.g., agent_framework/, tutorials/, reference/)
7
- - **Sub-folders** = Specific topics or frameworks (e.g., agno/, langchain/)
8
- - **Files** = Documentation in markdown format (.md)
9
-
10
- Navigate by exploring folder names to understand what's available, then drill down to find relevant content.
11
-
12
- ## Available Tools
13
-
14
- 1. **list_directory** - List contents of a folder
15
- - Use this to explore the folder structure
16
- - Start from root ("") and navigate deeper based on folder names
17
-
18
- 2. **read_docs_file** - Read entire file content
19
- - Use after identifying a relevant file
20
- - Good for smaller files or when you need full context
21
-
22
- 3. **preview_file** - Read first N lines of a file
23
- - Use to quickly check if a file is relevant before reading fully
24
- - Saves time on large documents
25
-
26
- 4. **tell_to_user** - Send progress update to user
27
- - Keep the user informed about what you're doing
28
- - Use for significant progress (found relevant folder, reading important file, etc.)
29
-
30
- 5. **submit_findings** - Submit final report and terminate
31
- - Call this when you have gathered enough information
32
- - This is the ONLY way to complete the search
33
- - Include summary, detailed findings, and source files
34
-
35
- ## Search Strategy
36
-
37
- 1. **Start broad**: List root directory to understand available categories
38
- 2. **Navigate by relevance**: Choose folders whose names match the query topic
39
- 3. **Read multiple files**: Information may be spread across several documents
40
- 4. **Preview before reading**: For large files, preview first to check relevance
41
- 5. **Keep user informed**: Use tell_to_user for significant findings
42
- 6. **Submit when ready**: Call submit_findings when you have enough information
43
-
44
- ## Important Rules
45
-
46
- - **No iteration limit**: Take as many steps as needed to find good information
47
- - **Be thorough**: Check 2-5 potentially relevant documents when possible
48
- - **Must call submit_findings**: This is the only way to complete the search
49
- - **Respond in user's language**: Match the language of the user's query
50
-
51
- ## Example Flow
52
-
53
- 1. list_directory("") → See top-level categories
54
- 2. list_directory("agent_framework") → Explore relevant category
55
- 3. tell_to_user("Found agent_framework folder, exploring...")
56
- 4. list_directory("agent_framework/agno") → Drill down
57
- 5. preview_file("agent_framework/agno/overview.md", 30) → Check relevance
58
- 6. read_docs_file("agent_framework/agno/overview.md") → Read full content
59
- 7. read_docs_file("agent_framework/agno/examples.md") → Read related file
60
- 8. submit_findings(summary, findings, sources) → Complete search
61
- `;
62
- export function buildDocsSearchUserMessage(query) {
63
- return `Find information about the following topic in the documentation:
64
-
65
- ${query}
66
-
67
- Start by listing the root directory to understand the available documentation structure.`;
68
- }
69
- export default DOCS_SEARCH_SYSTEM_PROMPT;
70
- //# sourceMappingURL=docs-search.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"docs-search.js","sourceRoot":"","sources":["../../../src/prompts/agents/docs-search.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,MAAM,yBAAyB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4DxC,CAAC;AAKF,MAAM,UAAU,0BAA0B,CAAC,KAAa;IACtD,OAAO;;EAEP,KAAK;;yFAEkF,CAAC;AAC1F,CAAC;AAED,eAAe,yBAAyB,CAAC"}
@@ -1,17 +0,0 @@
1
- import { ToolDefinition } from '../../../types/index.js';
2
- export { setTellToUserCallback } from '../simple/user-interaction-tools.js';
3
- export declare const LIST_DIRECTORY_TOOL: ToolDefinition;
4
- export declare const READ_DOCS_FILE_TOOL: ToolDefinition;
5
- export declare const PREVIEW_FILE_TOOL: ToolDefinition;
6
- export declare const TELL_TO_USER_TOOL: ToolDefinition;
7
- export declare const SUBMIT_FINDINGS_TOOL: ToolDefinition;
8
- export declare const DOCS_SEARCH_TOOLS: ToolDefinition[];
9
- export type DocsToolExecutor = (toolName: string, args: Record<string, unknown>) => Promise<{
10
- success: boolean;
11
- result?: string;
12
- error?: string;
13
- terminate?: boolean;
14
- }>;
15
- export declare function createDocsToolExecutor(onTellUser?: (message: string) => void, onComplete?: (summary: string, findings: string, sources: string[]) => void): DocsToolExecutor;
16
- export default DOCS_SEARCH_TOOLS;
17
- //# sourceMappingURL=docs-search-tools.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"docs-search-tools.d.ts","sourceRoot":"","sources":["../../../../src/tools/llm/agents/docs-search-tools.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAIzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAW5E,eAAO,MAAM,mBAAmB,EAAE,cA0BjC,CAAC;AAMF,eAAO,MAAM,mBAAmB,EAAE,cAyBjC,CAAC;AAMF,eAAO,MAAM,iBAAiB,EAAE,cA6B/B,CAAC;AAMF,eAAO,MAAM,iBAAiB,EAAE,cAkB/B,CAAC;AAMF,eAAO,MAAM,oBAAoB,EAAE,cA2BlC,CAAC;AAKF,eAAO,MAAM,iBAAiB,EAAE,cAAc,EAM7C,CAAC;AAKF,MAAM,MAAM,gBAAgB,GAAG,CAC7B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC1B,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAOzF,wBAAgB,sBAAsB,CACpC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EACtC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,GAC1E,gBAAgB,CAkClB;AAgID,eAAe,iBAAiB,CAAC"}