@vybestack/llxprt-code-core 0.1.19 → 0.1.20

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 (156) hide show
  1. package/README.md +9 -0
  2. package/dist/src/auth/anthropic-device-flow.d.ts +1 -1
  3. package/dist/src/auth/anthropic-device-flow.js +4 -2
  4. package/dist/src/auth/anthropic-device-flow.js.map +1 -1
  5. package/dist/src/code_assist/setup.js +49 -15
  6. package/dist/src/code_assist/setup.js.map +1 -1
  7. package/dist/src/config/config.d.ts +9 -6
  8. package/dist/src/config/config.js +24 -21
  9. package/dist/src/config/config.js.map +1 -1
  10. package/dist/src/core/client.d.ts +3 -1
  11. package/dist/src/core/client.js +22 -6
  12. package/dist/src/core/client.js.map +1 -1
  13. package/dist/src/core/contentGenerator.js +0 -2
  14. package/dist/src/core/contentGenerator.js.map +1 -1
  15. package/dist/src/core/coreToolScheduler.d.ts +0 -1
  16. package/dist/src/core/coreToolScheduler.js +0 -3
  17. package/dist/src/core/coreToolScheduler.js.map +1 -1
  18. package/dist/src/core/geminiChat.js +57 -5
  19. package/dist/src/core/geminiChat.js.map +1 -1
  20. package/dist/src/core/nonInteractiveToolExecutor.js +158 -3
  21. package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
  22. package/dist/src/core/prompts.js +19 -2
  23. package/dist/src/core/prompts.js.map +1 -1
  24. package/dist/src/filters/EmojiFilter.d.ts +122 -0
  25. package/dist/src/filters/EmojiFilter.js +327 -0
  26. package/dist/src/filters/EmojiFilter.js.map +1 -0
  27. package/dist/src/ide/detect-ide.d.ts +2 -0
  28. package/dist/src/ide/detect-ide.js +18 -2
  29. package/dist/src/ide/detect-ide.js.map +1 -1
  30. package/dist/src/ide/ide-installer.js +1 -26
  31. package/dist/src/ide/ide-installer.js.map +1 -1
  32. package/dist/src/ide/ideContext.d.ts +6 -6
  33. package/dist/src/index.d.ts +3 -0
  34. package/dist/src/index.js +3 -0
  35. package/dist/src/index.js.map +1 -1
  36. package/dist/src/mcp/oauth-provider.d.ts +0 -1
  37. package/dist/src/mcp/oauth-provider.js +2 -3
  38. package/dist/src/mcp/oauth-provider.js.map +1 -1
  39. package/dist/src/prompt-config/defaults/core-defaults.js +190 -6
  40. package/dist/src/prompt-config/defaults/core-defaults.js.map +1 -1
  41. package/dist/src/prompt-config/defaults/provider-defaults.js +162 -6
  42. package/dist/src/prompt-config/defaults/provider-defaults.js.map +1 -1
  43. package/dist/src/prompt-config/defaults/providers/anthropic/core.md +81 -0
  44. package/dist/src/prompt-config/defaults/providers/anthropic/tools/glob.md +34 -0
  45. package/dist/src/prompt-config/defaults/providers/anthropic/tools/list-directory.md +11 -0
  46. package/dist/src/prompt-config/defaults/providers/anthropic/tools/read-file.md +14 -0
  47. package/dist/src/prompt-config/defaults/providers/anthropic/tools/read-many-files.md +31 -0
  48. package/dist/src/prompt-config/defaults/providers/anthropic/tools/replace.md +41 -0
  49. package/dist/src/prompt-config/defaults/providers/anthropic/tools/run-shell-command.md +32 -0
  50. package/dist/src/prompt-config/defaults/providers/anthropic/tools/save-memory.md +35 -0
  51. package/dist/src/prompt-config/defaults/providers/anthropic/tools/search-file-content.md +44 -0
  52. package/dist/src/prompt-config/defaults/providers/anthropic/tools/todo-write.md +45 -0
  53. package/dist/src/prompt-config/defaults/providers/anthropic/tools/write-file.md +11 -0
  54. package/dist/src/prompt-config/defaults/tool-defaults.js +163 -6
  55. package/dist/src/prompt-config/defaults/tool-defaults.js.map +1 -1
  56. package/dist/src/prompt-config/prompt-service.d.ts +1 -1
  57. package/dist/src/prompt-config/prompt-service.js +5 -3
  58. package/dist/src/prompt-config/prompt-service.js.map +1 -1
  59. package/dist/src/providers/LoggingProviderWrapper.js +0 -12
  60. package/dist/src/providers/LoggingProviderWrapper.js.map +1 -1
  61. package/dist/src/providers/ProviderContentGenerator.d.ts +2 -2
  62. package/dist/src/providers/ProviderContentGenerator.js +5 -3
  63. package/dist/src/providers/ProviderContentGenerator.js.map +1 -1
  64. package/dist/src/providers/adapters/GeminiCompatibleWrapper.js +1 -1
  65. package/dist/src/providers/adapters/GeminiCompatibleWrapper.js.map +1 -1
  66. package/dist/src/providers/anthropic/AnthropicProvider.d.ts +1 -1
  67. package/dist/src/providers/anthropic/AnthropicProvider.js +95 -33
  68. package/dist/src/providers/anthropic/AnthropicProvider.js.map +1 -1
  69. package/dist/src/providers/gemini/GeminiProvider.d.ts +0 -5
  70. package/dist/src/providers/gemini/GeminiProvider.js +0 -25
  71. package/dist/src/providers/gemini/GeminiProvider.js.map +1 -1
  72. package/dist/src/providers/openai/OpenAIProvider.js +2 -1
  73. package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
  74. package/dist/src/providers/openai/parseResponsesStream.js +6 -6
  75. package/dist/src/providers/openai/parseResponsesStream.js.map +1 -1
  76. package/dist/src/services/todo-context-tracker.d.ts +1 -1
  77. package/dist/src/services/todo-context-tracker.js +5 -3
  78. package/dist/src/services/todo-context-tracker.js.map +1 -1
  79. package/dist/src/settings/SettingsService.js.map +1 -1
  80. package/dist/src/settings/types.d.ts +16 -0
  81. package/dist/src/telemetry/integration.test.circular.js +2 -40
  82. package/dist/src/telemetry/integration.test.circular.js.map +1 -1
  83. package/dist/src/telemetry/loggers.js +0 -20
  84. package/dist/src/telemetry/loggers.js.map +1 -1
  85. package/dist/src/telemetry/sdk.d.ts +1 -1
  86. package/dist/src/telemetry/sdk.js +13 -29
  87. package/dist/src/telemetry/sdk.js.map +1 -1
  88. package/dist/src/test-utils/tools.js +2 -2
  89. package/dist/src/test-utils/tools.js.map +1 -1
  90. package/dist/src/tools/edit.js +85 -20
  91. package/dist/src/tools/edit.js.map +1 -1
  92. package/dist/src/tools/glob.js +2 -2
  93. package/dist/src/tools/glob.js.map +1 -1
  94. package/dist/src/tools/grep.js +2 -2
  95. package/dist/src/tools/grep.js.map +1 -1
  96. package/dist/src/tools/ls.d.ts +3 -22
  97. package/dist/src/tools/ls.js +84 -113
  98. package/dist/src/tools/ls.js.map +1 -1
  99. package/dist/src/tools/mcp-client.js +2 -2
  100. package/dist/src/tools/mcp-client.js.map +1 -1
  101. package/dist/src/tools/mcp-tool.d.ts +3 -5
  102. package/dist/src/tools/mcp-tool.js +41 -18
  103. package/dist/src/tools/mcp-tool.js.map +1 -1
  104. package/dist/src/tools/memoryTool.d.ts +9 -13
  105. package/dist/src/tools/memoryTool.js +124 -117
  106. package/dist/src/tools/memoryTool.js.map +1 -1
  107. package/dist/src/tools/read-file.js +2 -2
  108. package/dist/src/tools/read-file.js.map +1 -1
  109. package/dist/src/tools/read-many-files.d.ts +4 -6
  110. package/dist/src/tools/read-many-files.js +118 -110
  111. package/dist/src/tools/read-many-files.js.map +1 -1
  112. package/dist/src/tools/shell.d.ts +7 -14
  113. package/dist/src/tools/shell.js +120 -116
  114. package/dist/src/tools/shell.js.map +1 -1
  115. package/dist/src/tools/todo-pause.js +2 -2
  116. package/dist/src/tools/todo-pause.js.map +1 -1
  117. package/dist/src/tools/todo-read.js +8 -8
  118. package/dist/src/tools/todo-read.js.map +1 -1
  119. package/dist/src/tools/todo-write.js +2 -2
  120. package/dist/src/tools/todo-write.js.map +1 -1
  121. package/dist/src/tools/tool-registry.d.ts +5 -0
  122. package/dist/src/tools/tool-registry.js +13 -2
  123. package/dist/src/tools/tool-registry.js.map +1 -1
  124. package/dist/src/tools/tools.d.ts +16 -15
  125. package/dist/src/tools/tools.js +19 -18
  126. package/dist/src/tools/tools.js.map +1 -1
  127. package/dist/src/tools/web-fetch.d.ts +4 -7
  128. package/dist/src/tools/web-fetch.js +81 -82
  129. package/dist/src/tools/web-fetch.js.map +1 -1
  130. package/dist/src/tools/web-search.js +23 -5
  131. package/dist/src/tools/web-search.js.map +1 -1
  132. package/dist/src/tools/write-file.d.ts +2 -1
  133. package/dist/src/tools/write-file.js +85 -24
  134. package/dist/src/tools/write-file.js.map +1 -1
  135. package/dist/src/utils/errorParsing.d.ts +8 -0
  136. package/dist/src/utils/errorParsing.js +109 -0
  137. package/dist/src/utils/errorParsing.js.map +1 -0
  138. package/dist/src/utils/filesearch/fileSearch.js +1 -1
  139. package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
  140. package/dist/src/utils/filesearch/result-cache.d.ts +1 -2
  141. package/dist/src/utils/filesearch/result-cache.js +1 -3
  142. package/dist/src/utils/filesearch/result-cache.js.map +1 -1
  143. package/dist/src/utils/memoryImportProcessor.js +1 -1
  144. package/dist/src/utils/memoryImportProcessor.js.map +1 -1
  145. package/dist/src/utils/quotaErrorDetection.d.ts +1 -5
  146. package/dist/src/utils/quotaErrorDetection.js.map +1 -1
  147. package/package.json +2 -2
  148. package/dist/src/core/modelCheck.d.ts +0 -14
  149. package/dist/src/core/modelCheck.js +0 -62
  150. package/dist/src/core/modelCheck.js.map +0 -1
  151. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +0 -48
  152. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +0 -577
  153. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +0 -1
  154. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +0 -58
  155. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +0 -157
  156. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +0 -1
@@ -6,6 +6,87 @@
6
6
  import { logToolCall, ToolErrorType, } from '../index.js';
7
7
  import { convertToFunctionResponse } from './coreToolScheduler.js';
8
8
  import { ToolCallDecision } from '../telemetry/types.js';
9
+ import { EmojiFilter } from '../filters/EmojiFilter.js';
10
+ /**
11
+ * Global emoji filter instance for reuse across tool calls
12
+ */
13
+ let emojiFilter = null;
14
+ /**
15
+ * Gets or creates the emoji filter instance based on current configuration
16
+ * Always checks current configuration to ensure filter is up-to-date
17
+ */
18
+ function getOrCreateFilter(config) {
19
+ // Get emojifilter from ephemeral settings or default to 'auto'
20
+ const mode = config.getEphemeralSetting('emojifilter') || 'auto';
21
+ /**
22
+ * @requirement REQ-004.1 - Silent filtering in auto mode
23
+ * Use mode directly from settings
24
+ */
25
+ const filterMode = mode;
26
+ // Always create a new filter to ensure current configuration is applied
27
+ // Tool execution is infrequent enough that this performance cost is acceptable
28
+ const filterConfig = { mode: filterMode };
29
+ emojiFilter = new EmojiFilter(filterConfig);
30
+ return emojiFilter;
31
+ }
32
+ /**
33
+ * Filters file modification tool arguments
34
+ */
35
+ function filterFileModificationArgs(filter, toolName, args) {
36
+ // Never filter file paths - they might legitimately contain emojis
37
+ // Only filter the content being written to files
38
+ if (toolName === 'edit_file' ||
39
+ toolName === 'edit' ||
40
+ toolName === 'replace') {
41
+ const oldString = args?.old_string;
42
+ const newString = args?.new_string;
43
+ // CRITICAL: Never filter old_string - it must match exactly what's in the file
44
+ // Only filter new_string to prevent emojis from being written
45
+ const newResult = filter.filterFileContent(newString, toolName);
46
+ if (newResult.blocked) {
47
+ return {
48
+ filtered: null,
49
+ emojiDetected: true,
50
+ blocked: true,
51
+ error: 'Cannot write emojis to code files',
52
+ };
53
+ }
54
+ return {
55
+ filtered: {
56
+ ...args,
57
+ // Preserve file_path unchanged - never filter paths
58
+ file_path: args.file_path,
59
+ // MUST preserve old_string exactly for matching
60
+ old_string: oldString,
61
+ // Filter new_string to remove emojis
62
+ new_string: newResult.filtered,
63
+ },
64
+ emojiDetected: newResult.emojiDetected,
65
+ blocked: false,
66
+ systemFeedback: newResult.systemFeedback,
67
+ };
68
+ }
69
+ if (toolName === 'write_file' || toolName === 'create_file') {
70
+ const content = args.content;
71
+ const result = filter.filterFileContent(content, toolName);
72
+ if (result.blocked) {
73
+ return result;
74
+ }
75
+ return {
76
+ filtered: {
77
+ ...args,
78
+ // Preserve file_path unchanged - never filter paths
79
+ file_path: args.file_path,
80
+ content: result.filtered,
81
+ },
82
+ emojiDetected: result.emojiDetected,
83
+ blocked: false,
84
+ systemFeedback: result.systemFeedback,
85
+ };
86
+ }
87
+ // Fallback for other tools
88
+ return filter.filterToolArgs(args);
89
+ }
9
90
  /**
10
91
  * Executes a single tool call non-interactively.
11
92
  * It does not handle confirmations, multiple calls, or live updates.
@@ -49,9 +130,78 @@ export async function executeToolCall(config, toolCallRequest, toolRegistry, abo
49
130
  };
50
131
  }
51
132
  try {
133
+ // Get emoji filter instance
134
+ const filter = getOrCreateFilter(config);
135
+ // Check if this is a search tool that should bypass filtering
136
+ const isSearchTool = [
137
+ 'shell',
138
+ 'bash',
139
+ 'exec',
140
+ 'run_shell_command',
141
+ 'grep',
142
+ 'search_file_content',
143
+ 'glob',
144
+ 'find',
145
+ 'ls',
146
+ 'list_directory',
147
+ 'read_file',
148
+ 'read_many_files',
149
+ ].includes(toolCallRequest.name);
150
+ let filteredArgs = toolCallRequest.args;
151
+ let systemFeedback;
152
+ // Search tools need unfiltered access for finding emojis
153
+ if (!isSearchTool) {
154
+ // Check if this is a file modification tool
155
+ const isFileModTool = [
156
+ 'edit_file',
157
+ 'edit',
158
+ 'write_file',
159
+ 'create_file',
160
+ 'replace',
161
+ 'replace_all',
162
+ ].includes(toolCallRequest.name);
163
+ // Filter tool arguments
164
+ let filterResult;
165
+ if (isFileModTool) {
166
+ filterResult = filterFileModificationArgs(filter, toolCallRequest.name, toolCallRequest.args);
167
+ }
168
+ else {
169
+ filterResult = filter.filterToolArgs(toolCallRequest.args);
170
+ }
171
+ // Handle blocking in error mode
172
+ if (filterResult.blocked) {
173
+ const durationMs = Date.now() - startTime;
174
+ logToolCall(config, {
175
+ 'event.name': 'tool_call',
176
+ 'event.timestamp': new Date().toISOString(),
177
+ function_name: toolCallRequest.name,
178
+ function_args: toolCallRequest.args,
179
+ duration_ms: durationMs,
180
+ success: false,
181
+ error: filterResult.error,
182
+ prompt_id: toolCallRequest.prompt_id,
183
+ });
184
+ return {
185
+ callId: toolCallRequest.callId,
186
+ responseParts: {
187
+ functionResponse: {
188
+ id: toolCallRequest.callId,
189
+ name: toolCallRequest.name,
190
+ response: { error: filterResult.error },
191
+ },
192
+ },
193
+ resultDisplay: filterResult.error || 'Tool execution blocked',
194
+ error: new Error(filterResult.error || 'Tool execution blocked'),
195
+ errorType: ToolErrorType.INVALID_TOOL_PARAMS,
196
+ };
197
+ }
198
+ // Use filtered arguments
199
+ filteredArgs = filterResult.filtered;
200
+ systemFeedback = filterResult.systemFeedback;
201
+ }
52
202
  // Directly execute without confirmation or live output handling
53
203
  const effectiveAbortSignal = abortSignal ?? new AbortController().signal;
54
- const toolResult = await tool.buildAndExecute(toolCallRequest.args, effectiveAbortSignal);
204
+ const toolResult = await tool.buildAndExecute(filteredArgs, effectiveAbortSignal);
55
205
  const tool_output = toolResult.llmContent;
56
206
  const tool_display = toolResult.returnDisplay;
57
207
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -84,10 +234,15 @@ export async function executeToolCall(config, toolCallRequest, toolRegistry, abo
84
234
  metadata,
85
235
  decision: ToolCallDecision.AUTO_ACCEPT,
86
236
  });
87
- const response = convertToFunctionResponse(toolCallRequest.name, toolCallRequest.callId, tool_output);
237
+ // Add system feedback for warn mode if emojis were detected and filtered
238
+ let finalLlmContent = tool_output;
239
+ if (systemFeedback) {
240
+ finalLlmContent = `${tool_output}\n\n<system-reminder>\n${systemFeedback}\n</system-reminder>`;
241
+ }
242
+ const finalResponse = convertToFunctionResponse(toolCallRequest.name, toolCallRequest.callId, finalLlmContent);
88
243
  return {
89
244
  callId: toolCallRequest.callId,
90
- responseParts: response,
245
+ responseParts: finalResponse,
91
246
  resultDisplay: tool_display,
92
247
  error: toolResult.error === undefined
93
248
  ? undefined
@@ -1 +1 @@
1
- {"version":3,"file":"nonInteractiveToolExecutor.js","sourceRoot":"","sources":["../../../src/core/nonInteractiveToolExecutor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nonInteractiveToolExecutor.js","sourceRoot":"","sources":["../../../src/core/nonInteractiveToolExecutor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEL,WAAW,EAGX,aAAa,GAGd,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAgB,MAAM,2BAA2B,CAAC;AAEtE;;GAEG;AACH,IAAI,WAAW,GAAuB,IAAI,CAAC;AAE3C;;;GAGG;AACH,SAAS,iBAAiB,CAAC,MAAc;IACvC,+DAA+D;IAC/D,MAAM,IAAI,GACP,MAAM,CAAC,mBAAmB,CAAC,aAAa,CAI7B,IAAI,MAAM,CAAC;IAEzB;;;OAGG;IACH,MAAM,UAAU,GAA0C,IAAI,CAAC;IAE/D,wEAAwE;IACxE,+EAA+E;IAC/E,MAAM,YAAY,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAC1C,WAAW,GAAG,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC;IAE5C,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,SAAS,0BAA0B,CACjC,MAAmB,EACnB,QAAgB,EAChB,IAA6B;IAE7B,mEAAmE;IACnE,iDAAiD;IAEjD,IACE,QAAQ,KAAK,WAAW;QACxB,QAAQ,KAAK,MAAM;QACnB,QAAQ,KAAK,SAAS,EACtB,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,EAAE,UAAoB,CAAC;QAC7C,MAAM,SAAS,GAAG,IAAI,EAAE,UAAoB,CAAC;QAE7C,+EAA+E;QAC/E,8DAA8D;QAC9D,MAAM,SAAS,GAAG,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAEhE,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,aAAa,EAAE,IAAI;gBACnB,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,mCAAmC;aAC3C,CAAC;QACJ,CAAC;QAED,OAAO;YACL,QAAQ,EAAE;gBACR,GAAG,IAAI;gBACP,oDAAoD;gBACpD,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,gDAAgD;gBAChD,UAAU,EAAE,SAAS;gBACrB,qCAAqC;gBACrC,UAAU,EAAE,SAAS,CAAC,QAAQ;aAC/B;YACD,aAAa,EAAE,SAAS,CAAC,aAAa;YACtC,OAAO,EAAE,KAAK;YACd,cAAc,EAAE,SAAS,CAAC,cAAc;SACzC,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,KAAK,YAAY,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAiB,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAE3D,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,OAAO;YACL,QAAQ,EAAE;gBACR,GAAG,IAAI;gBACP,oDAAoD;gBACpD,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,OAAO,EAAE,MAAM,CAAC,QAAQ;aACzB;YACD,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,OAAO,EAAE,KAAK;YACd,cAAc,EAAE,MAAM,CAAC,cAAc;SACtC,CAAC;IACJ,CAAC;IAED,2BAA2B;IAC3B,OAAO,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAc,EACd,eAAoC,EACpC,YAA0B,EAC1B,WAAyB;IAEzB,6BAA6B;IAC7B,MAAM,OAAO,GAAgB;QAC3B,SAAS,EACP,OAAO,MAAM,CAAC,YAAY,KAAK,UAAU;YACvC,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE;YACvB,CAAC,CAAC,iBAAiB;QACvB,kDAAkD;KACnD,CAAC;IAEF,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEjE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,IAAI,KAAK,CACrB,SAAS,eAAe,CAAC,IAAI,0BAA0B,CACxD,CAAC;QACF,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAC1C,WAAW,CAAC,MAAM,EAAE;YAClB,YAAY,EAAE,WAAW;YACzB,iBAAiB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC3C,aAAa,EAAE,eAAe,CAAC,IAAI;YACnC,aAAa,EAAE,eAAe,CAAC,IAAI;YACnC,WAAW,EAAE,UAAU;YACvB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK,CAAC,OAAO;YACpB,SAAS,EAAE,eAAe,CAAC,SAAS;SACrC,CAAC,CAAC;QACH,0EAA0E;QAC1E,OAAO;YACL,MAAM,EAAE,eAAe,CAAC,MAAM;YAC9B,aAAa,EAAE;gBACb,gBAAgB,EAAE;oBAChB,EAAE,EAAE,eAAe,CAAC,MAAM;oBAC1B,IAAI,EAAE,eAAe,CAAC,IAAI;oBAC1B,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE;iBACnC;aACF;YACD,aAAa,EAAE,KAAK,CAAC,OAAO;YAC5B,KAAK;YACL,SAAS,EAAE,aAAa,CAAC,mBAAmB;SAC7C,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,4BAA4B;QAC5B,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAEzC,8DAA8D;QAC9D,MAAM,YAAY,GAAG;YACnB,OAAO;YACP,MAAM;YACN,MAAM;YACN,mBAAmB;YACnB,MAAM;YACN,qBAAqB;YACrB,MAAM;YACN,MAAM;YACN,IAAI;YACJ,gBAAgB;YAChB,WAAW;YACX,iBAAiB;SAClB,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAEjC,IAAI,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC;QACxC,IAAI,cAAkC,CAAC;QAEvC,yDAAyD;QACzD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,4CAA4C;YAC5C,MAAM,aAAa,GAAG;gBACpB,WAAW;gBACX,MAAM;gBACN,YAAY;gBACZ,aAAa;gBACb,SAAS;gBACT,aAAa;aACd,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAEjC,wBAAwB;YACxB,IAAI,YAA0B,CAAC;YAC/B,IAAI,aAAa,EAAE,CAAC;gBAClB,YAAY,GAAG,0BAA0B,CACvC,MAAM,EACN,eAAe,CAAC,IAAI,EACpB,eAAe,CAAC,IAAI,CACrB,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC7D,CAAC;YAED,gCAAgC;YAChC,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;gBACzB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBAC1C,WAAW,CAAC,MAAM,EAAE;oBAClB,YAAY,EAAE,WAAW;oBACzB,iBAAiB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBAC3C,aAAa,EAAE,eAAe,CAAC,IAAI;oBACnC,aAAa,EAAE,eAAe,CAAC,IAAI;oBACnC,WAAW,EAAE,UAAU;oBACvB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,YAAY,CAAC,KAAK;oBACzB,SAAS,EAAE,eAAe,CAAC,SAAS;iBACrC,CAAC,CAAC;gBAEH,OAAO;oBACL,MAAM,EAAE,eAAe,CAAC,MAAM;oBAC9B,aAAa,EAAE;wBACb,gBAAgB,EAAE;4BAChB,EAAE,EAAE,eAAe,CAAC,MAAM;4BAC1B,IAAI,EAAE,eAAe,CAAC,IAAI;4BAC1B,QAAQ,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE;yBACxC;qBACF;oBACD,aAAa,EAAE,YAAY,CAAC,KAAK,IAAI,wBAAwB;oBAC7D,KAAK,EAAE,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,IAAI,wBAAwB,CAAC;oBAChE,SAAS,EAAE,aAAa,CAAC,mBAAmB;iBAC7C,CAAC;YACJ,CAAC;YAED,yBAAyB;YACzB,YAAY,GAAG,YAAY,CAAC,QAAmC,CAAC;YAChE,cAAc,GAAG,YAAY,CAAC,cAAc,CAAC;QAC/C,CAAC;QAED,gEAAgE;QAChE,MAAM,oBAAoB,GAAG,WAAW,IAAI,IAAI,eAAe,EAAE,CAAC,MAAM,CAAC;QACzE,MAAM,UAAU,GAAe,MAAM,IAAI,CAAC,eAAe,CACvD,YAAY,EACZ,oBAAoB,CAErB,CAAC;QAEF,MAAM,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC;QAE1C,MAAM,YAAY,GAAG,UAAU,CAAC,aAAa,CAAC;QAE9C,8DAA8D;QAC9D,IAAI,QAAQ,GAA2B,EAAE,CAAC;QAC1C,IACE,UAAU,CAAC,KAAK,KAAK,SAAS;YAC9B,OAAO,YAAY,KAAK,QAAQ;YAChC,YAAY,KAAK,IAAI;YACrB,UAAU,IAAI,YAAY,EAC1B,CAAC;YACD,MAAM,QAAQ,GAAI,YAAyB,CAAC,QAAQ,CAAC;YACrD,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,GAAG;oBACT,cAAc,EAAE,QAAQ,CAAC,cAAc;oBACvC,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;oBAC3C,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;oBAC3C,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;iBAChD,CAAC;YACJ,CAAC;QACH,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAC1C,WAAW,CAAC,MAAM,EAAE;YAClB,YAAY,EAAE,WAAW;YACzB,iBAAiB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC3C,aAAa,EAAE,eAAe,CAAC,IAAI;YACnC,aAAa,EAAE,eAAe,CAAC,IAAI;YACnC,WAAW,EAAE,UAAU;YACvB,OAAO,EAAE,UAAU,CAAC,KAAK,KAAK,SAAS;YACvC,KAAK,EACH,UAAU,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO;YACvE,UAAU,EACR,UAAU,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI;YACpE,SAAS,EAAE,eAAe,CAAC,SAAS;YACpC,QAAQ;YACR,QAAQ,EAAE,gBAAgB,CAAC,WAAW;SACvC,CAAC,CAAC;QAEH,yEAAyE;QACzE,IAAI,eAAe,GAAG,WAAW,CAAC;QAClC,IAAI,cAAc,EAAE,CAAC;YACnB,eAAe,GAAG,GAAG,WAAW,0BAA0B,cAAc,sBAAsB,CAAC;QACjG,CAAC;QAED,MAAM,aAAa,GAAG,yBAAyB,CAC7C,eAAe,CAAC,IAAI,EACpB,eAAe,CAAC,MAAM,EACtB,eAAe,CAChB,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,eAAe,CAAC,MAAM;YAC9B,aAAa,EAAE,aAAa;YAC5B,aAAa,EAAE,YAAY;YAC3B,KAAK,EACH,UAAU,CAAC,KAAK,KAAK,SAAS;gBAC5B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC;YACzC,SAAS,EACP,UAAU,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI;SACrE,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,KAAK,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAC1C,WAAW,CAAC,MAAM,EAAE;YAClB,YAAY,EAAE,WAAW;YACzB,iBAAiB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC3C,aAAa,EAAE,eAAe,CAAC,IAAI;YACnC,aAAa,EAAE,eAAe,CAAC,IAAI;YACnC,WAAW,EAAE,UAAU;YACvB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK,CAAC,OAAO;YACpB,UAAU,EAAE,aAAa,CAAC,mBAAmB;YAC7C,SAAS,EAAE,eAAe,CAAC,SAAS;YACpC,QAAQ,EAAE,gBAAgB,CAAC,WAAW;SACvC,CAAC,CAAC;QACH,OAAO;YACL,MAAM,EAAE,eAAe,CAAC,MAAM;YAC9B,aAAa,EAAE;gBACb,gBAAgB,EAAE;oBAChB,EAAE,EAAE,eAAe,CAAC,MAAM;oBAC1B,IAAI,EAAE,eAAe,CAAC,IAAI;oBAC1B,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE;iBACnC;aACF;YACD,aAAa,EAAE,KAAK,CAAC,OAAO;YAC5B,KAAK;YACL,SAAS,EAAE,aAAa,CAAC,mBAAmB;SAC7C,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -8,6 +8,7 @@ import os from 'node:os';
8
8
  import process from 'node:process';
9
9
  import { isGitRepository } from '../utils/gitUtils.js';
10
10
  import { PromptService } from '../prompt-config/prompt-service.js';
11
+ import { getSettingsService } from '../settings/settingsServiceInstance.js';
11
12
  // Singleton instance of PromptService
12
13
  let promptService = null;
13
14
  let promptServiceInitialized = false;
@@ -62,7 +63,7 @@ function getToolNameMapping() {
62
63
  /**
63
64
  * Build PromptContext from current environment and parameters
64
65
  */
65
- function buildPromptContext(model, tools) {
66
+ function buildPromptContext(model, tools, provider) {
66
67
  const environment = {
67
68
  isGitRepository: isGitRepository(process.cwd()),
68
69
  isSandboxed: !!process.env.SANDBOX,
@@ -86,8 +87,24 @@ function buildPromptContext(model, tools) {
86
87
  if (enabledTools.length === 0) {
87
88
  enabledTools.push('Ls', 'Edit', 'Glob', 'Grep', 'ReadFile', 'ReadManyFiles', 'Shell', 'WriteFile', 'Memory', 'TodoRead', 'TodoWrite', 'WebFetch', 'WebSearch');
88
89
  }
90
+ // Use provider if explicitly passed, otherwise get from settings or default to gemini
91
+ let resolvedProvider = provider || 'gemini';
92
+ // If provider wasn't explicitly passed, try to get it from settings
93
+ if (!provider) {
94
+ try {
95
+ const settingsService = getSettingsService();
96
+ const activeProvider = settingsService.get('activeProvider');
97
+ if (activeProvider) {
98
+ resolvedProvider = activeProvider;
99
+ }
100
+ }
101
+ catch (_error) {
102
+ // If we can't get settings (e.g., during tests), use default
103
+ // Don't log in production to avoid noise
104
+ }
105
+ }
89
106
  return {
90
- provider: 'gemini', // Default provider for now
107
+ provider: resolvedProvider,
91
108
  model: model || 'gemini-1.5-pro',
92
109
  enabledTools,
93
110
  environment,
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/core/prompts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/core/prompts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,122 @@
1
+ /**
2
+ * EmojiFilter - Filters emojis from text content based on configuration
3
+ * Implementation stub based on pseudocode lines 01-186
4
+ */
5
+ /**
6
+ * Emoji filter modes
7
+ */
8
+ export type EmojiFilterMode = 'allowed' | 'auto' | 'warn' | 'error';
9
+ /**
10
+ * Configuration for emoji filtering behavior
11
+ * @requirement REQ-004.1 - Silent filtering in auto mode
12
+ */
13
+ export interface FilterConfiguration {
14
+ mode: EmojiFilterMode;
15
+ }
16
+ /**
17
+ * Result of emoji filtering operation
18
+ */
19
+ export interface FilterResult {
20
+ filtered: string | object | null;
21
+ emojiDetected: boolean;
22
+ blocked: boolean;
23
+ error?: string;
24
+ systemFeedback?: string;
25
+ }
26
+ /**
27
+ * EmojiFilter class for filtering emojis from various content types
28
+ * @pseudocode lines 01-186
29
+ */
30
+ export declare class EmojiFilter {
31
+ private patterns;
32
+ private conversions;
33
+ private buffer;
34
+ private config;
35
+ /**
36
+ * Creates new EmojiFilter instance
37
+ * @param config Filter configuration
38
+ * @pseudocode lines 07-12
39
+ */
40
+ constructor(config: FilterConfiguration);
41
+ /**
42
+ * Filters text content for emojis
43
+ * @param text Text to filter
44
+ * @returns Filter result with processed text
45
+ * @pseudocode lines 14-45
46
+ */
47
+ filterText(text: string): FilterResult;
48
+ /**
49
+ * Filters streaming text chunks for emojis
50
+ * @param chunk Text chunk to filter
51
+ * @returns Filter result with processed chunk
52
+ * @pseudocode lines 47-60
53
+ */
54
+ filterStreamChunk(chunk: string): FilterResult;
55
+ /**
56
+ * Filters tool arguments for emojis
57
+ * @param args Tool arguments object
58
+ * @returns Filter result with processed arguments
59
+ * @pseudocode lines 62-95
60
+ */
61
+ filterToolArgs(args: object): FilterResult;
62
+ /**
63
+ * Filters file content for emojis
64
+ * @param content File content to filter
65
+ * @param toolName Name of the tool writing the file
66
+ * @returns Filter result with processed content
67
+ * @pseudocode lines 97-128
68
+ */
69
+ filterFileContent(content: string, toolName: string): FilterResult;
70
+ /**
71
+ * Flushes remaining buffered content
72
+ * @returns Remaining filtered content
73
+ * @pseudocode lines 130-138
74
+ */
75
+ flushBuffer(): string;
76
+ /**
77
+ * Detects if text contains emojis
78
+ * @param text Text to check
79
+ * @returns True if emojis detected
80
+ * @pseudocode lines 140-147
81
+ */
82
+ private detectEmojis;
83
+ /**
84
+ * Applies emoji-to-text conversions
85
+ * @param text Text to convert
86
+ * @returns Text with emojis converted
87
+ * @pseudocode lines 149-155
88
+ */
89
+ private applyConversions;
90
+ /**
91
+ * Removes decorative emojis from text
92
+ * @param text Text to clean
93
+ * @returns Text with decorative emojis removed
94
+ * @pseudocode lines 157-163
95
+ */
96
+ private removeDecorativeEmojis;
97
+ /**
98
+ * Finds last safe boundary to avoid splitting multi-byte characters
99
+ * @param text Text to analyze
100
+ * @returns Safe boundary position or -1 if none found
101
+ * @pseudocode lines 165-180
102
+ */
103
+ private findLastSafeBoundary;
104
+ /**
105
+ * Compiles emoji detection patterns
106
+ * @returns Array of compiled regex patterns
107
+ * @pseudocode line 09
108
+ */
109
+ private compileEmojiPatterns;
110
+ /**
111
+ * Loads emoji-to-text conversion map
112
+ * @returns Map of emoji conversions
113
+ * @pseudocode line 10
114
+ */
115
+ private loadConversionMap;
116
+ /**
117
+ * Recursively filters emojis from object properties
118
+ * @param obj Object to filter
119
+ * @returns Filtered object
120
+ */
121
+ private deepFilterObject;
122
+ }