agent-sory 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +265 -0
- package/dist/commands/base.d.ts +26 -0
- package/dist/commands/base.d.ts.map +1 -0
- package/dist/commands/base.js +3 -0
- package/dist/commands/base.js.map +1 -0
- package/dist/commands/definitions/clear.d.ts +3 -0
- package/dist/commands/definitions/clear.d.ts.map +1 -0
- package/dist/commands/definitions/clear.js +12 -0
- package/dist/commands/definitions/clear.js.map +1 -0
- package/dist/commands/definitions/help.d.ts +3 -0
- package/dist/commands/definitions/help.d.ts.map +1 -0
- package/dist/commands/definitions/help.js +28 -0
- package/dist/commands/definitions/help.js.map +1 -0
- package/dist/commands/definitions/init.d.ts +3 -0
- package/dist/commands/definitions/init.d.ts.map +1 -0
- package/dist/commands/definitions/init.js +23 -0
- package/dist/commands/definitions/init.js.map +1 -0
- package/dist/commands/definitions/login.d.ts +3 -0
- package/dist/commands/definitions/login.d.ts.map +1 -0
- package/dist/commands/definitions/login.js +8 -0
- package/dist/commands/definitions/login.js.map +1 -0
- package/dist/commands/definitions/model.d.ts +3 -0
- package/dist/commands/definitions/model.d.ts.map +1 -0
- package/dist/commands/definitions/model.js +10 -0
- package/dist/commands/definitions/model.js.map +1 -0
- package/dist/commands/definitions/reasoning.d.ts +3 -0
- package/dist/commands/definitions/reasoning.d.ts.map +1 -0
- package/dist/commands/definitions/reasoning.js +21 -0
- package/dist/commands/definitions/reasoning.js.map +1 -0
- package/dist/commands/definitions/stats.d.ts +3 -0
- package/dist/commands/definitions/stats.d.ts.map +1 -0
- package/dist/commands/definitions/stats.js +22 -0
- package/dist/commands/definitions/stats.js.map +1 -0
- package/dist/commands/index.d.ts +6 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +38 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/core/agent.d.ts +41 -0
- package/dist/core/agent.d.ts.map +1 -0
- package/dist/core/agent.js +266 -0
- package/dist/core/agent.js.map +1 -0
- package/dist/core/cli.d.ts +3 -0
- package/dist/core/cli.d.ts.map +1 -0
- package/dist/core/cli.js +48 -0
- package/dist/core/cli.js.map +1 -0
- package/dist/core/llm/factory.d.ts +12 -0
- package/dist/core/llm/factory.d.ts.map +1 -0
- package/dist/core/llm/factory.js +44 -0
- package/dist/core/llm/factory.js.map +1 -0
- package/dist/core/llm/providers/gemini.d.ts +22 -0
- package/dist/core/llm/providers/gemini.d.ts.map +1 -0
- package/dist/core/llm/providers/gemini.js +167 -0
- package/dist/core/llm/providers/gemini.js.map +1 -0
- package/dist/core/llm/providers/groq.d.ts +23 -0
- package/dist/core/llm/providers/groq.d.ts.map +1 -0
- package/dist/core/llm/providers/groq.js +96 -0
- package/dist/core/llm/providers/groq.js.map +1 -0
- package/dist/core/llm/providers/openai-compatible.d.ts +24 -0
- package/dist/core/llm/providers/openai-compatible.d.ts.map +1 -0
- package/dist/core/llm/providers/openai-compatible.js +86 -0
- package/dist/core/llm/providers/openai-compatible.js.map +1 -0
- package/dist/core/llm/types.d.ts +37 -0
- package/dist/core/llm/types.d.ts.map +1 -0
- package/dist/core/llm/types.js +2 -0
- package/dist/core/llm/types.js.map +1 -0
- package/dist/core/prompts/system.d.ts +6 -0
- package/dist/core/prompts/system.d.ts.map +1 -0
- package/dist/core/prompts/system.js +36 -0
- package/dist/core/prompts/system.js.map +1 -0
- package/dist/tests/proxy-config.test.d.ts +2 -0
- package/dist/tests/proxy-config.test.d.ts.map +1 -0
- package/dist/tests/proxy-config.test.js +169 -0
- package/dist/tests/proxy-config.test.js.map +1 -0
- package/dist/tools/tool-schemas.d.ts +36 -0
- package/dist/tools/tool-schemas.d.ts.map +1 -0
- package/dist/tools/tool-schemas.js +482 -0
- package/dist/tools/tool-schemas.js.map +1 -0
- package/dist/tools/tools.d.ts +114 -0
- package/dist/tools/tools.d.ts.map +1 -0
- package/dist/tools/tools.js +1015 -0
- package/dist/tools/tools.js.map +1 -0
- package/dist/tools/utils/edit-logic.d.ts +9 -0
- package/dist/tools/utils/edit-logic.d.ts.map +1 -0
- package/dist/tools/utils/edit-logic.js +149 -0
- package/dist/tools/utils/edit-logic.js.map +1 -0
- package/dist/tools/utils/ripgrep-runner.d.ts +15 -0
- package/dist/tools/utils/ripgrep-runner.d.ts.map +1 -0
- package/dist/tools/utils/ripgrep-runner.js +90 -0
- package/dist/tools/utils/ripgrep-runner.js.map +1 -0
- package/dist/tools/validators.d.ts +4 -0
- package/dist/tools/validators.d.ts.map +1 -0
- package/dist/tools/validators.js +18 -0
- package/dist/tools/validators.js.map +1 -0
- package/dist/ui/App.d.ts +7 -0
- package/dist/ui/App.d.ts.map +1 -0
- package/dist/ui/App.js +12 -0
- package/dist/ui/App.js.map +1 -0
- package/dist/ui/components/core/Chat.d.ts +7 -0
- package/dist/ui/components/core/Chat.d.ts.map +1 -0
- package/dist/ui/components/core/Chat.js +60 -0
- package/dist/ui/components/core/Chat.js.map +1 -0
- package/dist/ui/components/core/MessageHistory.d.ts +7 -0
- package/dist/ui/components/core/MessageHistory.d.ts.map +1 -0
- package/dist/ui/components/core/MessageHistory.js +39 -0
- package/dist/ui/components/core/MessageHistory.js.map +1 -0
- package/dist/ui/components/core/MessageInput.d.ts +10 -0
- package/dist/ui/components/core/MessageInput.d.ts.map +1 -0
- package/dist/ui/components/core/MessageInput.js +130 -0
- package/dist/ui/components/core/MessageInput.js.map +1 -0
- package/dist/ui/components/display/DiffPreview.d.ts +15 -0
- package/dist/ui/components/display/DiffPreview.d.ts.map +1 -0
- package/dist/ui/components/display/DiffPreview.js +298 -0
- package/dist/ui/components/display/DiffPreview.js.map +1 -0
- package/dist/ui/components/display/Stats.d.ts +19 -0
- package/dist/ui/components/display/Stats.d.ts.map +1 -0
- package/dist/ui/components/display/Stats.js +31 -0
- package/dist/ui/components/display/Stats.js.map +1 -0
- package/dist/ui/components/display/TokenMetrics.d.ts +11 -0
- package/dist/ui/components/display/TokenMetrics.d.ts.map +1 -0
- package/dist/ui/components/display/TokenMetrics.js +16 -0
- package/dist/ui/components/display/TokenMetrics.js.map +1 -0
- package/dist/ui/components/display/ToolHistoryItem.d.ts +7 -0
- package/dist/ui/components/display/ToolHistoryItem.d.ts.map +1 -0
- package/dist/ui/components/display/ToolHistoryItem.js +102 -0
- package/dist/ui/components/display/ToolHistoryItem.js.map +1 -0
- package/dist/ui/components/input-overlays/ErrorRetry.d.ts +8 -0
- package/dist/ui/components/input-overlays/ErrorRetry.d.ts.map +1 -0
- package/dist/ui/components/input-overlays/ErrorRetry.js +6 -0
- package/dist/ui/components/input-overlays/ErrorRetry.js.map +1 -0
- package/dist/ui/components/input-overlays/Login.d.ts +7 -0
- package/dist/ui/components/input-overlays/Login.d.ts.map +1 -0
- package/dist/ui/components/input-overlays/Login.js +32 -0
- package/dist/ui/components/input-overlays/Login.js.map +1 -0
- package/dist/ui/components/input-overlays/MaxIterationsContinue.d.ts +8 -0
- package/dist/ui/components/input-overlays/MaxIterationsContinue.d.ts.map +1 -0
- package/dist/ui/components/input-overlays/MaxIterationsContinue.js +32 -0
- package/dist/ui/components/input-overlays/MaxIterationsContinue.js.map +1 -0
- package/dist/ui/components/input-overlays/ModelSelector.d.ts +12 -0
- package/dist/ui/components/input-overlays/ModelSelector.d.ts.map +1 -0
- package/dist/ui/components/input-overlays/ModelSelector.js +114 -0
- package/dist/ui/components/input-overlays/ModelSelector.js.map +1 -0
- package/dist/ui/components/input-overlays/PendingToolApproval.d.ts +10 -0
- package/dist/ui/components/input-overlays/PendingToolApproval.d.ts.map +1 -0
- package/dist/ui/components/input-overlays/PendingToolApproval.js +51 -0
- package/dist/ui/components/input-overlays/PendingToolApproval.js.map +1 -0
- package/dist/ui/components/input-overlays/SlashCommandSuggestions.d.ts +8 -0
- package/dist/ui/components/input-overlays/SlashCommandSuggestions.d.ts.map +1 -0
- package/dist/ui/components/input-overlays/SlashCommandSuggestions.js +13 -0
- package/dist/ui/components/input-overlays/SlashCommandSuggestions.js.map +1 -0
- package/dist/ui/hooks/useAgent.d.ts +41 -0
- package/dist/ui/hooks/useAgent.d.ts.map +1 -0
- package/dist/ui/hooks/useAgent.js +205 -0
- package/dist/ui/hooks/useAgent.js.map +1 -0
- package/dist/ui/hooks/useMouseScroll.d.ts +3 -0
- package/dist/ui/hooks/useMouseScroll.d.ts.map +1 -0
- package/dist/ui/hooks/useMouseScroll.js +32 -0
- package/dist/ui/hooks/useMouseScroll.js.map +1 -0
- package/dist/ui/hooks/useSessionStats.d.ts +20 -0
- package/dist/ui/hooks/useSessionStats.d.ts.map +1 -0
- package/dist/ui/hooks/useSessionStats.js +36 -0
- package/dist/ui/hooks/useSessionStats.js.map +1 -0
- package/dist/ui/hooks/useTokenMetrics.d.ts +21 -0
- package/dist/ui/hooks/useTokenMetrics.d.ts.map +1 -0
- package/dist/ui/hooks/useTokenMetrics.js +102 -0
- package/dist/ui/hooks/useTokenMetrics.js.map +1 -0
- package/dist/ui/utils/CodeColorizer.d.ts +5 -0
- package/dist/ui/utils/CodeColorizer.d.ts.map +1 -0
- package/dist/ui/utils/CodeColorizer.js +47 -0
- package/dist/ui/utils/CodeColorizer.js.map +1 -0
- package/dist/utils/constants.d.ts +8 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/constants.js +104 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/context.d.ts +36 -0
- package/dist/utils/context.d.ts.map +1 -0
- package/dist/utils/context.js +239 -0
- package/dist/utils/context.js.map +1 -0
- package/dist/utils/file-ops.d.ts +21 -0
- package/dist/utils/file-ops.d.ts.map +1 -0
- package/dist/utils/file-ops.js +125 -0
- package/dist/utils/file-ops.js.map +1 -0
- package/dist/utils/local-settings.d.ts +18 -0
- package/dist/utils/local-settings.d.ts.map +1 -0
- package/dist/utils/local-settings.js +176 -0
- package/dist/utils/local-settings.js.map +1 -0
- package/dist/utils/markdown.d.ts +13 -0
- package/dist/utils/markdown.d.ts.map +1 -0
- package/dist/utils/markdown.js +122 -0
- package/dist/utils/markdown.js.map +1 -0
- package/dist/utils/proxy-config.d.ts +25 -0
- package/dist/utils/proxy-config.d.ts.map +1 -0
- package/dist/utils/proxy-config.js +145 -0
- package/dist/utils/proxy-config.js.map +1 -0
- package/package.json +76 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-settings.js","sourceRoot":"","sources":["../../src/utils/local-settings.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface MarkdownElement {
|
|
2
|
+
type: 'text' | 'code-block' | 'heading' | 'mixed-line';
|
|
3
|
+
content: string;
|
|
4
|
+
level?: number;
|
|
5
|
+
language?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface InlineElement {
|
|
8
|
+
type: 'text' | 'code' | 'bold' | 'italic';
|
|
9
|
+
content: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function parseMarkdown(content: string): MarkdownElement[];
|
|
12
|
+
export declare function parseInlineElements(content: string): InlineElement[];
|
|
13
|
+
//# sourceMappingURL=markdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/utils/markdown.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,GAAG,YAAY,CAAC;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC1C,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE,CA0EhE;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE,CAuEpE"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
export function parseMarkdown(content) {
|
|
2
|
+
const lines = content.split('\n');
|
|
3
|
+
const elements = [];
|
|
4
|
+
for (let i = 0; i < lines.length; i++) {
|
|
5
|
+
const line = lines[i];
|
|
6
|
+
// Handle code blocks - improved parsing
|
|
7
|
+
if (line.startsWith('```')) {
|
|
8
|
+
const language = line.slice(3).trim();
|
|
9
|
+
const codeBlocks = [];
|
|
10
|
+
i++; // Skip opening ```
|
|
11
|
+
// Parse until closing ``` or end of content
|
|
12
|
+
while (i < lines.length && !lines[i].startsWith('```')) {
|
|
13
|
+
codeBlocks.push(lines[i]);
|
|
14
|
+
i++;
|
|
15
|
+
}
|
|
16
|
+
// Handle case where code block is not closed
|
|
17
|
+
if (i >= lines.length) {
|
|
18
|
+
// Treat unclosed code block as text
|
|
19
|
+
elements.push({
|
|
20
|
+
type: 'text',
|
|
21
|
+
content: '```' + language + '\n' + codeBlocks.join('\n'),
|
|
22
|
+
});
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
25
|
+
// Skip the closing ```
|
|
26
|
+
i++;
|
|
27
|
+
elements.push({
|
|
28
|
+
type: 'code-block',
|
|
29
|
+
content: codeBlocks.join('\n'),
|
|
30
|
+
level: language ? 1 : 0,
|
|
31
|
+
language: language,
|
|
32
|
+
});
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
// Handle headings
|
|
36
|
+
if (line.startsWith('#')) {
|
|
37
|
+
const level = line.match(/^#{1,6}/)?.[0].length || 1;
|
|
38
|
+
const text = line.replace(/^#{1,6}\s*/, '');
|
|
39
|
+
elements.push({
|
|
40
|
+
type: 'heading',
|
|
41
|
+
content: text,
|
|
42
|
+
level,
|
|
43
|
+
});
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
// Handle mixed content lines (with inline code, bold, italic)
|
|
47
|
+
if (line.includes('`') ||
|
|
48
|
+
line.includes('**') ||
|
|
49
|
+
(line.includes('*') && !line.includes('**'))) {
|
|
50
|
+
elements.push({
|
|
51
|
+
type: 'mixed-line',
|
|
52
|
+
content: line,
|
|
53
|
+
});
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
// Regular text
|
|
57
|
+
elements.push({
|
|
58
|
+
type: 'text',
|
|
59
|
+
content: line || ' ',
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
return elements;
|
|
63
|
+
}
|
|
64
|
+
export function parseInlineElements(content) {
|
|
65
|
+
const elements = [];
|
|
66
|
+
let remaining = content;
|
|
67
|
+
while (remaining.length > 0) {
|
|
68
|
+
// Check for inline code first (highest priority)
|
|
69
|
+
const codeMatch = remaining.match(/^`[^`]+`/);
|
|
70
|
+
if (codeMatch) {
|
|
71
|
+
const codeText = codeMatch[0];
|
|
72
|
+
const beforeText = remaining.substring(0, remaining.indexOf(codeText));
|
|
73
|
+
if (beforeText) {
|
|
74
|
+
elements.push({ type: 'text', content: beforeText });
|
|
75
|
+
}
|
|
76
|
+
elements.push({
|
|
77
|
+
type: 'code',
|
|
78
|
+
content: codeText.slice(1, -1), // Remove backticks
|
|
79
|
+
});
|
|
80
|
+
remaining = remaining.substring(beforeText.length + codeText.length);
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
// Check for bold (but avoid conflicting with italic)
|
|
84
|
+
const boldMatch = remaining.match(/^\*\*[^*]+\*\*/);
|
|
85
|
+
if (boldMatch) {
|
|
86
|
+
const boldText = boldMatch[0];
|
|
87
|
+
const beforeText = remaining.substring(0, remaining.indexOf(boldText));
|
|
88
|
+
if (beforeText) {
|
|
89
|
+
elements.push({ type: 'text', content: beforeText });
|
|
90
|
+
}
|
|
91
|
+
elements.push({
|
|
92
|
+
type: 'bold',
|
|
93
|
+
content: boldText.slice(2, -2), // Remove **
|
|
94
|
+
});
|
|
95
|
+
remaining = remaining.substring(beforeText.length + boldText.length);
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
// Check for italic (but avoid matching within bold)
|
|
99
|
+
const italicMatch = remaining.match(/^\*[^*]+\*/);
|
|
100
|
+
if (italicMatch && !remaining.startsWith('**')) {
|
|
101
|
+
const italicText = italicMatch[0];
|
|
102
|
+
const beforeText = remaining.substring(0, remaining.indexOf(italicText));
|
|
103
|
+
if (beforeText) {
|
|
104
|
+
elements.push({ type: 'text', content: beforeText });
|
|
105
|
+
}
|
|
106
|
+
elements.push({
|
|
107
|
+
type: 'italic',
|
|
108
|
+
content: italicText.slice(1, -1), // Remove *
|
|
109
|
+
});
|
|
110
|
+
remaining = remaining.substring(beforeText.length + italicText.length);
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
// No more markdown found, add remaining as text
|
|
114
|
+
elements.push({
|
|
115
|
+
type: 'text',
|
|
116
|
+
content: remaining,
|
|
117
|
+
});
|
|
118
|
+
break;
|
|
119
|
+
}
|
|
120
|
+
return elements;
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=markdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/utils/markdown.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Agent } from 'http';
|
|
2
|
+
/**
|
|
3
|
+
* Creates an HTTP/SOCKS proxy agent based on an explicit override or environment variables.
|
|
4
|
+
*
|
|
5
|
+
* Resolves a proxy URL (override -> HTTPS_PROXY/https_proxy -> HTTP_PROXY/http_proxy). If no proxy is configured, returns `undefined`. If the resolved URL is not a valid URL, the function logs an error and returns `undefined`. Otherwise it returns a `SocksProxyAgent` for SOCKS schemes (`socks://`, `socks5://`, `socks4://`) or an `HttpsProxyAgent` for other schemes. If agent construction fails the error is logged and `undefined` is returned.
|
|
6
|
+
*
|
|
7
|
+
* @param proxyOverride - Optional explicit proxy URL to use instead of environment variables.
|
|
8
|
+
* @returns A Node `Agent` configured for the proxy, or `undefined` when no valid proxy is available or agent creation fails.
|
|
9
|
+
*/
|
|
10
|
+
export declare function getProxyAgent(proxyOverride?: string): Agent | undefined;
|
|
11
|
+
/**
|
|
12
|
+
* Returns information about the configured proxy (from an explicit override or environment).
|
|
13
|
+
*
|
|
14
|
+
* If a proxy URL is found returns an object with `enabled: true`, a sanitized `url` (credentials removed or obfuscated) and the proxy `type` (`'socks'` or `'http'`). If no proxy is configured returns `{ enabled: false }`.
|
|
15
|
+
*
|
|
16
|
+
* The `enabled` field indicates whether the proxy URL is valid and usable.
|
|
17
|
+
*
|
|
18
|
+
* @param proxyOverride - Optional explicit proxy URL to use instead of environment variables.
|
|
19
|
+
*/
|
|
20
|
+
export declare function getProxyInfo(proxyOverride?: string): {
|
|
21
|
+
enabled: boolean;
|
|
22
|
+
url?: string;
|
|
23
|
+
type?: string;
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=proxy-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy-config.d.ts","sourceRoot":"","sources":["../../src/utils/proxy-config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAiGlC;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAuBvE;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CActG"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { HttpsProxyAgent } from 'https-proxy-agent';
|
|
2
|
+
import { SocksProxyAgent } from 'socks-proxy-agent';
|
|
3
|
+
import { ConfigManager } from './local-settings.js';
|
|
4
|
+
// Module-level instance to avoid repeated instantiation
|
|
5
|
+
const configManager = new ConfigManager();
|
|
6
|
+
/**
|
|
7
|
+
* Resolves the proxy URL to use from an explicit override, environment variables, or config file.
|
|
8
|
+
*
|
|
9
|
+
* If `proxyOverride` is provided it is returned directly. Otherwise the function
|
|
10
|
+
* returns the first non-empty value found in priority order:
|
|
11
|
+
* SORY_PROXY > HTTPS_PROXY/https_proxy > HTTP_PROXY/http_proxy > config file.
|
|
12
|
+
* If none are set, returns undefined.
|
|
13
|
+
*
|
|
14
|
+
* @param proxyOverride - Optional explicit proxy URL that takes precedence over env vars and config.
|
|
15
|
+
* @returns The resolved proxy URL string, or `undefined` if no proxy is configured.
|
|
16
|
+
*/
|
|
17
|
+
function getProxyUrl(proxyOverride) {
|
|
18
|
+
if (proxyOverride) {
|
|
19
|
+
return proxyOverride;
|
|
20
|
+
}
|
|
21
|
+
// Check for proxy environment variables first (in order of priority)
|
|
22
|
+
// Check SORY_PROXY first, then standard environment variables
|
|
23
|
+
const soryProxy = process.env.SORY_PROXY;
|
|
24
|
+
const httpsProxy = process.env.HTTPS_PROXY || process.env.https_proxy;
|
|
25
|
+
const httpProxy = process.env.HTTP_PROXY || process.env.http_proxy;
|
|
26
|
+
// Priority: SORY_PROXY > HTTPS_PROXY > HTTP_PROXY > config file
|
|
27
|
+
if (soryProxy || httpsProxy || httpProxy) {
|
|
28
|
+
return soryProxy || httpsProxy || httpProxy;
|
|
29
|
+
}
|
|
30
|
+
// If no environment variable, check config file
|
|
31
|
+
return configManager.getProxy() || undefined;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Determine whether a proxy URL refers to a SOCKS proxy or an HTTP(S) proxy.
|
|
35
|
+
*
|
|
36
|
+
* Recognizes `socks://`, `socks5://`, and `socks4://` schemes as SOCKS; any other scheme is treated as HTTP.
|
|
37
|
+
*
|
|
38
|
+
* @param url - The proxy URL or scheme string to inspect.
|
|
39
|
+
* @returns `'socks'` if the URL uses a SOCKS scheme, otherwise `'http'`.
|
|
40
|
+
*/
|
|
41
|
+
function getProxyType(url) {
|
|
42
|
+
if (url.startsWith('socks://') || url.startsWith('socks5://') || url.startsWith('socks4://') || url.startsWith('socks4a://')) {
|
|
43
|
+
return 'socks';
|
|
44
|
+
}
|
|
45
|
+
return 'http';
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Returns a proxy URL safe for logging by removing any embedded credentials.
|
|
49
|
+
*
|
|
50
|
+
* Attempts to parse the input as a URL and, if username or password are present,
|
|
51
|
+
* returns a sanitized string with credentials removed. If parsing fails and the
|
|
52
|
+
* input appears to contain credentials (contains '@'), returns the literal
|
|
53
|
+
* "[proxy with credentials]" to avoid exposing secrets; otherwise returns the
|
|
54
|
+
* original input unchanged.
|
|
55
|
+
*
|
|
56
|
+
* @param url - The proxy URL to sanitize; may include credentials (e.g., `user:pass@host`).
|
|
57
|
+
* @returns A sanitized URL string suitable for logging or the original input when no sanitization is needed.
|
|
58
|
+
*/
|
|
59
|
+
function sanitizeProxyUrl(url) {
|
|
60
|
+
try {
|
|
61
|
+
const parsed = new URL(url);
|
|
62
|
+
if (parsed.username || parsed.password) {
|
|
63
|
+
parsed.username = '';
|
|
64
|
+
parsed.password = '';
|
|
65
|
+
return parsed.toString();
|
|
66
|
+
}
|
|
67
|
+
return url;
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
// If URL parsing fails, return a safe message
|
|
71
|
+
return url.includes('@') ? '[proxy with credentials]' : url;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Checks whether a string is a valid URL suitable for a proxy.
|
|
76
|
+
*
|
|
77
|
+
* Attempts to parse the provided `url` using the WHATWG URL parser and
|
|
78
|
+
* returns true if parsing succeeds, false otherwise.
|
|
79
|
+
*
|
|
80
|
+
* @param url - The candidate proxy URL string to validate.
|
|
81
|
+
* @returns True when `url` can be parsed as a valid URL; otherwise false.
|
|
82
|
+
*/
|
|
83
|
+
function isValidProxyUrl(url) {
|
|
84
|
+
try {
|
|
85
|
+
new URL(url);
|
|
86
|
+
return true;
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Creates an HTTP/SOCKS proxy agent based on an explicit override or environment variables.
|
|
94
|
+
*
|
|
95
|
+
* Resolves a proxy URL (override -> HTTPS_PROXY/https_proxy -> HTTP_PROXY/http_proxy). If no proxy is configured, returns `undefined`. If the resolved URL is not a valid URL, the function logs an error and returns `undefined`. Otherwise it returns a `SocksProxyAgent` for SOCKS schemes (`socks://`, `socks5://`, `socks4://`) or an `HttpsProxyAgent` for other schemes. If agent construction fails the error is logged and `undefined` is returned.
|
|
96
|
+
*
|
|
97
|
+
* @param proxyOverride - Optional explicit proxy URL to use instead of environment variables.
|
|
98
|
+
* @returns A Node `Agent` configured for the proxy, or `undefined` when no valid proxy is available or agent creation fails.
|
|
99
|
+
*/
|
|
100
|
+
export function getProxyAgent(proxyOverride) {
|
|
101
|
+
const proxyUrl = getProxyUrl(proxyOverride);
|
|
102
|
+
if (!proxyUrl) {
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
if (!isValidProxyUrl(proxyUrl)) {
|
|
106
|
+
console.error(`Invalid proxy URL: ${sanitizeProxyUrl(proxyUrl)}`);
|
|
107
|
+
return undefined;
|
|
108
|
+
}
|
|
109
|
+
try {
|
|
110
|
+
// Create appropriate agent based on proxy type
|
|
111
|
+
if (getProxyType(proxyUrl) === 'socks') {
|
|
112
|
+
return new SocksProxyAgent(proxyUrl);
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
return new HttpsProxyAgent(proxyUrl);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
console.error(`Failed to create proxy agent: ${sanitizeProxyUrl(proxyUrl)}`);
|
|
120
|
+
return undefined;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Returns information about the configured proxy (from an explicit override or environment).
|
|
125
|
+
*
|
|
126
|
+
* If a proxy URL is found returns an object with `enabled: true`, a sanitized `url` (credentials removed or obfuscated) and the proxy `type` (`'socks'` or `'http'`). If no proxy is configured returns `{ enabled: false }`.
|
|
127
|
+
*
|
|
128
|
+
* The `enabled` field indicates whether the proxy URL is valid and usable.
|
|
129
|
+
*
|
|
130
|
+
* @param proxyOverride - Optional explicit proxy URL to use instead of environment variables.
|
|
131
|
+
*/
|
|
132
|
+
export function getProxyInfo(proxyOverride) {
|
|
133
|
+
const proxyUrl = getProxyUrl(proxyOverride);
|
|
134
|
+
if (!proxyUrl) {
|
|
135
|
+
return { enabled: false };
|
|
136
|
+
}
|
|
137
|
+
const isValid = isValidProxyUrl(proxyUrl);
|
|
138
|
+
// Return info for debugging even if URL is invalid, but enabled reflects validity
|
|
139
|
+
return {
|
|
140
|
+
enabled: isValid,
|
|
141
|
+
url: sanitizeProxyUrl(proxyUrl),
|
|
142
|
+
type: getProxyType(proxyUrl)
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=proxy-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy-config.js","sourceRoot":"","sources":["../../src/utils/proxy-config.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "agent-sory",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"license": "MIT",
|
|
5
|
+
"bin": {
|
|
6
|
+
"sory": "dist/core/cli.js"
|
|
7
|
+
},
|
|
8
|
+
"type": "module",
|
|
9
|
+
"engines": {
|
|
10
|
+
"node": ">=16"
|
|
11
|
+
},
|
|
12
|
+
"scripts": {
|
|
13
|
+
"build": "tsc",
|
|
14
|
+
"dev": "tsc --watch",
|
|
15
|
+
"test": "ava"
|
|
16
|
+
},
|
|
17
|
+
"files": [
|
|
18
|
+
"dist"
|
|
19
|
+
],
|
|
20
|
+
"dependencies": {
|
|
21
|
+
"@google/generative-ai": "^0.24.1",
|
|
22
|
+
"@joshua.litt/get-ripgrep": "^0.0.3",
|
|
23
|
+
"@types/diff": "^7.0.2",
|
|
24
|
+
"@types/html-to-text": "^9.0.4",
|
|
25
|
+
"chalk": "^5.4.1",
|
|
26
|
+
"commander": "^14.0.0",
|
|
27
|
+
"diff": "^8.0.3",
|
|
28
|
+
"fast-glob": "^3.3.3",
|
|
29
|
+
"glob": "^13.0.0",
|
|
30
|
+
"groq-sdk": "^0.27.0",
|
|
31
|
+
"html-to-text": "^9.0.5",
|
|
32
|
+
"https-proxy-agent": "^7.0.6",
|
|
33
|
+
"ink": "^6.0.1",
|
|
34
|
+
"lowlight": "^3.3.0",
|
|
35
|
+
"meow": "^11.0.0",
|
|
36
|
+
"openai": "^6.16.0",
|
|
37
|
+
"react": "^19.1.0",
|
|
38
|
+
"socks-proxy-agent": "^8.0.5"
|
|
39
|
+
},
|
|
40
|
+
"devDependencies": {
|
|
41
|
+
"@sindresorhus/tsconfig": "^3.0.1",
|
|
42
|
+
"@types/react": "^19.1.8",
|
|
43
|
+
"@vdemedes/prettier-config": "^2.0.1",
|
|
44
|
+
"ava": "^5.2.0",
|
|
45
|
+
"chalk": "^5.2.0",
|
|
46
|
+
"eslint-config-xo-react": "^0.27.0",
|
|
47
|
+
"eslint-plugin-react": "^7.32.2",
|
|
48
|
+
"eslint-plugin-react-hooks": "^4.6.0",
|
|
49
|
+
"ink-testing-library": "^3.0.0",
|
|
50
|
+
"prettier": "^2.8.7",
|
|
51
|
+
"ts-node": "^10.9.1",
|
|
52
|
+
"typescript": "^5.0.3",
|
|
53
|
+
"xo": "^1.2.1"
|
|
54
|
+
},
|
|
55
|
+
"ava": {
|
|
56
|
+
"extensions": {
|
|
57
|
+
"ts": "module",
|
|
58
|
+
"tsx": "module"
|
|
59
|
+
},
|
|
60
|
+
"nodeArguments": [
|
|
61
|
+
"--loader=ts-node/esm"
|
|
62
|
+
],
|
|
63
|
+
"files": [
|
|
64
|
+
"src/**/*.test.ts",
|
|
65
|
+
"!**/*.d.ts"
|
|
66
|
+
]
|
|
67
|
+
},
|
|
68
|
+
"xo": {
|
|
69
|
+
"extends": "xo-react",
|
|
70
|
+
"prettier": true,
|
|
71
|
+
"rules": {
|
|
72
|
+
"react/prop-types": "off"
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
"prettier": "@vdemedes/prettier-config"
|
|
76
|
+
}
|