@defai.digital/ax-cli 3.4.6 → 3.5.4
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 +2 -6
- package/README.md +109 -2
- package/dist/analyzers/ast/index.d.ts +9 -0
- package/dist/analyzers/ast/index.js +10 -0
- package/dist/analyzers/ast/index.js.map +1 -0
- package/dist/analyzers/ast/node-helpers.d.ts +81 -0
- package/dist/analyzers/ast/node-helpers.js +128 -0
- package/dist/analyzers/ast/node-helpers.js.map +1 -0
- package/dist/analyzers/ast/parser.d.ts +59 -0
- package/dist/analyzers/ast/parser.js +293 -0
- package/dist/analyzers/ast/parser.js.map +1 -0
- package/dist/analyzers/ast/traverser.d.ts +67 -0
- package/dist/analyzers/ast/traverser.js +156 -0
- package/dist/analyzers/ast/traverser.js.map +1 -0
- package/dist/analyzers/ast/types.d.ts +107 -0
- package/dist/analyzers/ast/types.js +7 -0
- package/dist/analyzers/ast/types.js.map +1 -0
- package/dist/analyzers/best-practices/index.d.ts +10 -0
- package/dist/analyzers/best-practices/index.js +11 -0
- package/dist/analyzers/best-practices/index.js.map +1 -0
- package/dist/analyzers/code-smells/base-smell-detector.d.ts +30 -0
- package/dist/analyzers/code-smells/base-smell-detector.js +44 -0
- package/dist/analyzers/code-smells/base-smell-detector.js.map +1 -0
- package/dist/analyzers/code-smells/code-smell-analyzer.d.ts +30 -0
- package/dist/analyzers/code-smells/code-smell-analyzer.js +167 -0
- package/dist/analyzers/code-smells/code-smell-analyzer.js.map +1 -0
- package/dist/analyzers/code-smells/detectors/data-clumps-detector.d.ts +11 -0
- package/dist/analyzers/code-smells/detectors/data-clumps-detector.js +66 -0
- package/dist/analyzers/code-smells/detectors/data-clumps-detector.js.map +1 -0
- package/dist/analyzers/code-smells/detectors/dead-code-detector.d.ts +11 -0
- package/dist/analyzers/code-smells/detectors/dead-code-detector.js +53 -0
- package/dist/analyzers/code-smells/detectors/dead-code-detector.js.map +1 -0
- package/dist/analyzers/code-smells/detectors/duplicate-code-detector.d.ts +11 -0
- package/dist/analyzers/code-smells/detectors/duplicate-code-detector.js +51 -0
- package/dist/analyzers/code-smells/detectors/duplicate-code-detector.js.map +1 -0
- package/dist/analyzers/code-smells/detectors/feature-envy-detector.d.ts +11 -0
- package/dist/analyzers/code-smells/detectors/feature-envy-detector.js +64 -0
- package/dist/analyzers/code-smells/detectors/feature-envy-detector.js.map +1 -0
- package/dist/analyzers/code-smells/detectors/inappropriate-intimacy-detector.d.ts +11 -0
- package/dist/analyzers/code-smells/detectors/inappropriate-intimacy-detector.js +56 -0
- package/dist/analyzers/code-smells/detectors/inappropriate-intimacy-detector.js.map +1 -0
- package/dist/analyzers/code-smells/detectors/large-class-detector.d.ts +13 -0
- package/dist/analyzers/code-smells/detectors/large-class-detector.js +58 -0
- package/dist/analyzers/code-smells/detectors/large-class-detector.js.map +1 -0
- package/dist/analyzers/code-smells/detectors/long-method-detector.d.ts +12 -0
- package/dist/analyzers/code-smells/detectors/long-method-detector.js +52 -0
- package/dist/analyzers/code-smells/detectors/long-method-detector.js.map +1 -0
- package/dist/analyzers/code-smells/detectors/long-parameter-list-detector.d.ts +12 -0
- package/dist/analyzers/code-smells/detectors/long-parameter-list-detector.js +50 -0
- package/dist/analyzers/code-smells/detectors/long-parameter-list-detector.js.map +1 -0
- package/dist/analyzers/code-smells/detectors/magic-numbers-detector.d.ts +12 -0
- package/dist/analyzers/code-smells/detectors/magic-numbers-detector.js +54 -0
- package/dist/analyzers/code-smells/detectors/magic-numbers-detector.js.map +1 -0
- package/dist/analyzers/code-smells/detectors/nested-conditionals-detector.d.ts +13 -0
- package/dist/analyzers/code-smells/detectors/nested-conditionals-detector.js +71 -0
- package/dist/analyzers/code-smells/detectors/nested-conditionals-detector.js.map +1 -0
- package/dist/analyzers/code-smells/index.d.ts +16 -0
- package/dist/analyzers/code-smells/index.js +19 -0
- package/dist/analyzers/code-smells/index.js.map +1 -0
- package/dist/analyzers/code-smells/types.d.ts +82 -0
- package/dist/analyzers/code-smells/types.js +30 -0
- package/dist/analyzers/code-smells/types.js.map +1 -0
- package/dist/analyzers/dependency/circular-detector.d.ts +17 -0
- package/dist/analyzers/dependency/circular-detector.js +71 -0
- package/dist/analyzers/dependency/circular-detector.js.map +1 -0
- package/dist/analyzers/dependency/coupling-calculator.d.ts +24 -0
- package/dist/analyzers/dependency/coupling-calculator.js +86 -0
- package/dist/analyzers/dependency/coupling-calculator.js.map +1 -0
- package/dist/analyzers/dependency/dependency-analyzer.d.ts +40 -0
- package/dist/analyzers/dependency/dependency-analyzer.js +214 -0
- package/dist/analyzers/dependency/dependency-analyzer.js.map +1 -0
- package/dist/analyzers/dependency/dependency-graph.d.ts +57 -0
- package/dist/analyzers/dependency/dependency-graph.js +186 -0
- package/dist/analyzers/dependency/dependency-graph.js.map +1 -0
- package/dist/analyzers/dependency/index.d.ts +8 -0
- package/dist/analyzers/dependency/index.js +8 -0
- package/dist/analyzers/dependency/index.js.map +1 -0
- package/dist/analyzers/dependency/types.d.ts +105 -0
- package/dist/analyzers/dependency/types.js +5 -0
- package/dist/analyzers/dependency/types.js.map +1 -0
- package/dist/analyzers/git/churn-calculator.d.ts +34 -0
- package/dist/analyzers/git/churn-calculator.js +214 -0
- package/dist/analyzers/git/churn-calculator.js.map +1 -0
- package/dist/analyzers/git/git-analyzer.d.ts +19 -0
- package/dist/analyzers/git/git-analyzer.js +71 -0
- package/dist/analyzers/git/git-analyzer.js.map +1 -0
- package/dist/analyzers/git/hotspot-detector.d.ts +34 -0
- package/dist/analyzers/git/hotspot-detector.js +170 -0
- package/dist/analyzers/git/hotspot-detector.js.map +1 -0
- package/dist/analyzers/git/index.d.ts +7 -0
- package/dist/analyzers/git/index.js +7 -0
- package/dist/analyzers/git/index.js.map +1 -0
- package/dist/analyzers/git/types.d.ts +88 -0
- package/dist/analyzers/git/types.js +5 -0
- package/dist/analyzers/git/types.js.map +1 -0
- package/dist/analyzers/metrics/halstead-calculator.d.ts +30 -0
- package/dist/analyzers/metrics/halstead-calculator.js +150 -0
- package/dist/analyzers/metrics/halstead-calculator.js.map +1 -0
- package/dist/analyzers/metrics/index.d.ts +9 -0
- package/dist/analyzers/metrics/index.js +9 -0
- package/dist/analyzers/metrics/index.js.map +1 -0
- package/dist/analyzers/metrics/maintainability-calculator.d.ts +17 -0
- package/dist/analyzers/metrics/maintainability-calculator.js +46 -0
- package/dist/analyzers/metrics/maintainability-calculator.js.map +1 -0
- package/dist/analyzers/metrics/metrics-analyzer.d.ts +32 -0
- package/dist/analyzers/metrics/metrics-analyzer.js +140 -0
- package/dist/analyzers/metrics/metrics-analyzer.js.map +1 -0
- package/dist/analyzers/metrics/types.d.ts +67 -0
- package/dist/analyzers/metrics/types.js +5 -0
- package/dist/analyzers/metrics/types.js.map +1 -0
- package/dist/analyzers/security/base-detector.d.ts +58 -0
- package/dist/analyzers/security/base-detector.js +104 -0
- package/dist/analyzers/security/base-detector.js.map +1 -0
- package/dist/analyzers/security/detectors/command-injection-detector.d.ts +12 -0
- package/dist/analyzers/security/detectors/command-injection-detector.js +84 -0
- package/dist/analyzers/security/detectors/command-injection-detector.js.map +1 -0
- package/dist/analyzers/security/detectors/hardcoded-secrets-detector.d.ts +16 -0
- package/dist/analyzers/security/detectors/hardcoded-secrets-detector.js +140 -0
- package/dist/analyzers/security/detectors/hardcoded-secrets-detector.js.map +1 -0
- package/dist/analyzers/security/detectors/insecure-deserialization-detector.d.ts +12 -0
- package/dist/analyzers/security/detectors/insecure-deserialization-detector.js +109 -0
- package/dist/analyzers/security/detectors/insecure-deserialization-detector.js.map +1 -0
- package/dist/analyzers/security/detectors/insecure-random-detector.d.ts +12 -0
- package/dist/analyzers/security/detectors/insecure-random-detector.js +61 -0
- package/dist/analyzers/security/detectors/insecure-random-detector.js.map +1 -0
- package/dist/analyzers/security/detectors/path-traversal-detector.d.ts +12 -0
- package/dist/analyzers/security/detectors/path-traversal-detector.js +82 -0
- package/dist/analyzers/security/detectors/path-traversal-detector.js.map +1 -0
- package/dist/analyzers/security/detectors/sql-injection-detector.d.ts +12 -0
- package/dist/analyzers/security/detectors/sql-injection-detector.js +88 -0
- package/dist/analyzers/security/detectors/sql-injection-detector.js.map +1 -0
- package/dist/analyzers/security/detectors/weak-crypto-detector.d.ts +12 -0
- package/dist/analyzers/security/detectors/weak-crypto-detector.js +104 -0
- package/dist/analyzers/security/detectors/weak-crypto-detector.js.map +1 -0
- package/dist/analyzers/security/detectors/xss-detector.d.ts +12 -0
- package/dist/analyzers/security/detectors/xss-detector.js +90 -0
- package/dist/analyzers/security/detectors/xss-detector.js.map +1 -0
- package/dist/analyzers/security/index.d.ts +16 -0
- package/dist/analyzers/security/index.js +18 -0
- package/dist/analyzers/security/index.js.map +1 -0
- package/dist/analyzers/security/security-analyzer.d.ts +38 -0
- package/dist/analyzers/security/security-analyzer.js +215 -0
- package/dist/analyzers/security/security-analyzer.js.map +1 -0
- package/dist/analyzers/security/types.d.ts +95 -0
- package/dist/analyzers/security/types.js +7 -0
- package/dist/analyzers/security/types.js.map +1 -0
- package/dist/hooks/use-enhanced-input.d.ts +0 -1
- package/dist/hooks/use-enhanced-input.js.map +1 -1
- package/dist/index.js +0 -0
- package/dist/mcp/validation.js +12 -6
- package/dist/mcp/validation.js.map +1 -1
- package/dist/tools/analysis-tools.d.ts +73 -0
- package/dist/tools/analysis-tools.js +422 -0
- package/dist/tools/analysis-tools.js.map +1 -0
- package/dist/tools/bash.js +2 -1
- package/dist/tools/bash.js.map +1 -1
- package/dist/ui/components/toast-notification.js +0 -1
- package/dist/ui/components/toast-notification.js.map +1 -1
- package/dist/ui/components/welcome-panel.js +1 -1
- package/dist/ui/components/welcome-panel.js.map +1 -1
- package/dist/ui/hooks/use-input-history.d.ts +9 -0
- package/dist/ui/hooks/use-input-history.js +117 -0
- package/dist/ui/hooks/use-input-history.js.map +1 -0
- package/dist/utils/parallel-analyzer.js +30 -17
- package/dist/utils/parallel-analyzer.js.map +1 -1
- package/eslint.config.js +3 -0
- package/package.json +5 -5
- package/vitest.config.ts +1 -0
- package/.ax-cli/checkpoints/2025-11-20/checkpoint-11e9e0ba-c39d-4fd2-aa77-bc818811c921.json +0 -69
- package/.ax-cli/checkpoints/2025-11-20/checkpoint-2b260b98-b418-4c7c-9694-e2b94967e662.json +0 -24
- package/.ax-cli/checkpoints/2025-11-20/checkpoint-7e03601e-e8ab-4cd7-9841-a74b66adf78f.json +0 -69
- package/.ax-cli/checkpoints/2025-11-20/checkpoint-7f9c6562-771f-4fd0-adcf-9e7e9ac34ae8.json +0 -44
- package/.ax-cli/checkpoints/2025-11-20/checkpoint-e1ebe666-4c3a-4367-ba5c-27fe512a9c70.json +0 -24
- package/.ax-cli/checkpoints/2025-11-21/checkpoint-15743e7d-430c-4d76-b6fc-955d7a5c250c.json +0 -44
- package/.ax-cli/checkpoints/2025-11-21/checkpoint-25cf7679-0b3f-4988-83d7-704548fbba91.json +0 -69
- package/.ax-cli/checkpoints/2025-11-21/checkpoint-54aedbac-6db0-464e-8ebb-dbb3979e6dca.json +0 -24
- package/.ax-cli/checkpoints/2025-11-21/checkpoint-7658aed8-fe5d-4222-903f-1a7c63717ea7.json +0 -24
- package/.ax-cli/checkpoints/2025-11-21/checkpoint-c9c13497-40dc-4294-a327-6a5fc854eaa1.json +0 -69
- package/automatosx.config.json +0 -333
- package/config/messages.yaml +0 -75
- package/config/models.yaml +0 -66
- package/config/prompts.yaml +0 -156
- package/config/settings.yaml +0 -86
- package/dist/commands/weather.d.ts +0 -8
- package/dist/commands/weather.js +0 -160
- package/dist/commands/weather.js.map +0 -1
- package/dist/grok/client.d.ts +0 -144
- package/dist/grok/client.js +0 -237
- package/dist/grok/client.js.map +0 -1
- package/dist/grok/tools.d.ts +0 -8
- package/dist/grok/tools.js +0 -318
- package/dist/grok/tools.js.map +0 -1
- package/dist/grok/types.d.ts +0 -291
- package/dist/grok/types.js +0 -127
- package/dist/grok/types.js.map +0 -1
- package/dist/tools/morph-editor.d.ts +0 -36
- package/dist/tools/morph-editor.js +0 -308
- package/dist/tools/morph-editor.js.map +0 -1
- package/dist/ui/components/session-recovery.d.ts +0 -12
- package/dist/ui/components/session-recovery.js +0 -93
- package/dist/ui/components/session-recovery.js.map +0 -1
- package/dist/utils/model-config.d.ts +0 -28
- package/dist/utils/model-config.js +0 -43
- package/dist/utils/model-config.js.map +0 -1
- package/dist/utils/tool-helpers.d.ts +0 -25
- package/dist/utils/tool-helpers.js +0 -79
- package/dist/utils/tool-helpers.js.map +0 -1
- package/packages/schemas/dist/index.d.ts +0 -14
- package/packages/schemas/dist/index.d.ts.map +0 -1
- package/packages/schemas/dist/index.js +0 -19
- package/packages/schemas/dist/index.js.map +0 -1
- package/packages/schemas/dist/public/core/brand-types.d.ts +0 -308
- package/packages/schemas/dist/public/core/brand-types.d.ts.map +0 -1
- package/packages/schemas/dist/public/core/brand-types.js +0 -243
- package/packages/schemas/dist/public/core/brand-types.js.map +0 -1
- package/packages/schemas/dist/public/core/enums.d.ts +0 -227
- package/packages/schemas/dist/public/core/enums.d.ts.map +0 -1
- package/packages/schemas/dist/public/core/enums.js +0 -222
- package/packages/schemas/dist/public/core/enums.js.map +0 -1
- package/packages/schemas/dist/public/core/id-types.d.ts +0 -286
- package/packages/schemas/dist/public/core/id-types.d.ts.map +0 -1
- package/packages/schemas/dist/public/core/id-types.js +0 -136
- package/packages/schemas/dist/public/core/id-types.js.map +0 -1
package/dist/grok/client.js
DELETED
|
@@ -1,237 +0,0 @@
|
|
|
1
|
-
import OpenAI from "openai";
|
|
2
|
-
import { safeValidateGrokResponse } from "../schemas/api-schemas.js";
|
|
3
|
-
import { ErrorCategory, createErrorMessage } from "../utils/error-handler.js";
|
|
4
|
-
import { GLM_MODELS, DEFAULT_MODEL } from "../constants.js";
|
|
5
|
-
/**
|
|
6
|
-
* GrokClient - Enhanced client for GLM-4.6 API
|
|
7
|
-
*
|
|
8
|
-
* Supports advanced features including:
|
|
9
|
-
* - Thinking/reasoning mode
|
|
10
|
-
* - Configurable temperature (0.6-1.0 for GLM-4.6)
|
|
11
|
-
* - Extended context windows (up to 200K tokens)
|
|
12
|
-
* - Multiple model support
|
|
13
|
-
*/
|
|
14
|
-
export class GrokClient {
|
|
15
|
-
client;
|
|
16
|
-
currentModel;
|
|
17
|
-
defaultMaxTokens;
|
|
18
|
-
defaultTemperature;
|
|
19
|
-
constructor(apiKey, model, baseURL) {
|
|
20
|
-
this.client = new OpenAI({
|
|
21
|
-
apiKey,
|
|
22
|
-
baseURL: baseURL || process.env.GROK_BASE_URL || "https://api.x.ai/v1",
|
|
23
|
-
timeout: 360000,
|
|
24
|
-
});
|
|
25
|
-
// Set model with validation
|
|
26
|
-
this.currentModel = this.validateModel(model || DEFAULT_MODEL);
|
|
27
|
-
// Get model configuration
|
|
28
|
-
const modelConfig = GLM_MODELS[this.currentModel];
|
|
29
|
-
// Set defaults from environment or model config
|
|
30
|
-
const envMax = Number(process.env.GROK_MAX_TOKENS);
|
|
31
|
-
this.defaultMaxTokens = Number.isFinite(envMax) && envMax > 0
|
|
32
|
-
? Math.min(envMax, modelConfig.maxOutputTokens)
|
|
33
|
-
: modelConfig.defaultMaxTokens;
|
|
34
|
-
const envTemp = Number(process.env.GROK_TEMPERATURE);
|
|
35
|
-
this.defaultTemperature = Number.isFinite(envTemp) &&
|
|
36
|
-
envTemp >= modelConfig.temperatureRange.min &&
|
|
37
|
-
envTemp <= modelConfig.temperatureRange.max
|
|
38
|
-
? envTemp
|
|
39
|
-
: modelConfig.defaultTemperature;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Validate and normalize model name
|
|
43
|
-
*/
|
|
44
|
-
validateModel(model) {
|
|
45
|
-
if (model in GLM_MODELS) {
|
|
46
|
-
return model;
|
|
47
|
-
}
|
|
48
|
-
console.warn(`Unknown model "${model}", using default: ${DEFAULT_MODEL}`);
|
|
49
|
-
return DEFAULT_MODEL;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Validate temperature for current model
|
|
53
|
-
*/
|
|
54
|
-
validateTemperature(temperature, model) {
|
|
55
|
-
const config = GLM_MODELS[model];
|
|
56
|
-
const { min, max } = config.temperatureRange;
|
|
57
|
-
if (temperature < min || temperature > max) {
|
|
58
|
-
throw new Error(`Temperature ${temperature} is out of range for model ${model}. ` +
|
|
59
|
-
`Valid range: ${min} - ${max}`);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Validate max tokens for current model
|
|
64
|
-
*/
|
|
65
|
-
validateMaxTokens(maxTokens, model) {
|
|
66
|
-
const config = GLM_MODELS[model];
|
|
67
|
-
if (maxTokens > config.maxOutputTokens) {
|
|
68
|
-
throw new Error(`Max tokens ${maxTokens} exceeds limit for model ${model}. ` +
|
|
69
|
-
`Maximum: ${config.maxOutputTokens}`);
|
|
70
|
-
}
|
|
71
|
-
if (maxTokens < 1) {
|
|
72
|
-
throw new Error(`Max tokens must be at least 1, got ${maxTokens}`);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Validate thinking configuration for current model
|
|
77
|
-
*/
|
|
78
|
-
validateThinking(thinking, model) {
|
|
79
|
-
if (thinking && thinking.type === "enabled") {
|
|
80
|
-
const config = GLM_MODELS[model];
|
|
81
|
-
if (!config.supportsThinking) {
|
|
82
|
-
throw new Error(`Thinking mode is not supported by model ${model}. ` +
|
|
83
|
-
`Use glm-4.6 for thinking capabilities.`);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
setModel(model) {
|
|
88
|
-
this.currentModel = this.validateModel(model);
|
|
89
|
-
}
|
|
90
|
-
getCurrentModel() {
|
|
91
|
-
return this.currentModel;
|
|
92
|
-
}
|
|
93
|
-
getModelConfig() {
|
|
94
|
-
return GLM_MODELS[this.currentModel];
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Chat completion with GLM-4.6 support
|
|
98
|
-
*
|
|
99
|
-
* @param messages - Conversation messages
|
|
100
|
-
* @param tools - Available tools/functions
|
|
101
|
-
* @param options - Chat options including temperature, thinking mode, etc.
|
|
102
|
-
* @returns Promise<GrokResponse>
|
|
103
|
-
*
|
|
104
|
-
* @example
|
|
105
|
-
* ```typescript
|
|
106
|
-
* const response = await client.chat(messages, tools, {
|
|
107
|
-
* model: 'glm-4.6',
|
|
108
|
-
* temperature: 0.7,
|
|
109
|
-
* thinking: { type: 'enabled' },
|
|
110
|
-
* maxTokens: 8192
|
|
111
|
-
* });
|
|
112
|
-
* ```
|
|
113
|
-
*/
|
|
114
|
-
async chat(messages, tools, options) {
|
|
115
|
-
try {
|
|
116
|
-
// Merge options with defaults
|
|
117
|
-
const model = this.validateModel(options?.model || this.currentModel);
|
|
118
|
-
const temperature = options?.temperature ?? this.defaultTemperature;
|
|
119
|
-
const maxTokens = options?.maxTokens ?? this.defaultMaxTokens;
|
|
120
|
-
const thinking = options?.thinking;
|
|
121
|
-
const searchOptions = options?.searchOptions;
|
|
122
|
-
// Validate parameters
|
|
123
|
-
this.validateTemperature(temperature, model);
|
|
124
|
-
this.validateMaxTokens(maxTokens, model);
|
|
125
|
-
this.validateThinking(thinking, model);
|
|
126
|
-
const requestPayload = {
|
|
127
|
-
model,
|
|
128
|
-
messages,
|
|
129
|
-
tools: tools || [],
|
|
130
|
-
tool_choice: tools && tools.length > 0 ? "auto" : undefined,
|
|
131
|
-
temperature,
|
|
132
|
-
max_tokens: maxTokens,
|
|
133
|
-
};
|
|
134
|
-
// Add GLM-4.6 thinking parameter if specified
|
|
135
|
-
if (thinking) {
|
|
136
|
-
requestPayload.thinking = thinking;
|
|
137
|
-
}
|
|
138
|
-
// Add search parameters if specified
|
|
139
|
-
if (searchOptions?.search_parameters) {
|
|
140
|
-
requestPayload.search_parameters = searchOptions.search_parameters;
|
|
141
|
-
}
|
|
142
|
-
const response = await this.client.chat.completions.create(requestPayload);
|
|
143
|
-
// Validate response structure
|
|
144
|
-
const validationResult = safeValidateGrokResponse(response);
|
|
145
|
-
if (!validationResult.success) {
|
|
146
|
-
console.warn(createErrorMessage(ErrorCategory.VALIDATION, 'Grok API response validation', validationResult.error || 'Invalid response structure'));
|
|
147
|
-
// Return response anyway for backward compatibility, but log warning
|
|
148
|
-
}
|
|
149
|
-
return response;
|
|
150
|
-
}
|
|
151
|
-
catch (error) {
|
|
152
|
-
// Enhance error message with context
|
|
153
|
-
const modelInfo = options?.model || this.currentModel;
|
|
154
|
-
throw new Error(`Grok API error (model: ${modelInfo}): ${error.message}`);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* Streaming chat completion with GLM-4.6 support
|
|
159
|
-
*
|
|
160
|
-
* Yields chunks including reasoning_content when thinking is enabled
|
|
161
|
-
*
|
|
162
|
-
* @param messages - Conversation messages
|
|
163
|
-
* @param tools - Available tools/functions
|
|
164
|
-
* @param options - Chat options including temperature, thinking mode, etc.
|
|
165
|
-
* @returns AsyncGenerator yielding GLM46StreamChunk
|
|
166
|
-
*
|
|
167
|
-
* @example
|
|
168
|
-
* ```typescript
|
|
169
|
-
* const stream = client.chatStream(messages, tools, {
|
|
170
|
-
* thinking: { type: 'enabled' }
|
|
171
|
-
* });
|
|
172
|
-
*
|
|
173
|
-
* for await (const chunk of stream) {
|
|
174
|
-
* if (chunk.choices[0]?.delta?.reasoning_content) {
|
|
175
|
-
* console.log('Reasoning:', chunk.choices[0].delta.reasoning_content);
|
|
176
|
-
* }
|
|
177
|
-
* if (chunk.choices[0]?.delta?.content) {
|
|
178
|
-
* console.log('Content:', chunk.choices[0].delta.content);
|
|
179
|
-
* }
|
|
180
|
-
* }
|
|
181
|
-
* ```
|
|
182
|
-
*/
|
|
183
|
-
async *chatStream(messages, tools, options) {
|
|
184
|
-
try {
|
|
185
|
-
// Merge options with defaults
|
|
186
|
-
const model = this.validateModel(options?.model || this.currentModel);
|
|
187
|
-
const temperature = options?.temperature ?? this.defaultTemperature;
|
|
188
|
-
const maxTokens = options?.maxTokens ?? this.defaultMaxTokens;
|
|
189
|
-
const thinking = options?.thinking;
|
|
190
|
-
const searchOptions = options?.searchOptions;
|
|
191
|
-
// Validate parameters
|
|
192
|
-
this.validateTemperature(temperature, model);
|
|
193
|
-
this.validateMaxTokens(maxTokens, model);
|
|
194
|
-
this.validateThinking(thinking, model);
|
|
195
|
-
const requestPayload = {
|
|
196
|
-
model,
|
|
197
|
-
messages,
|
|
198
|
-
tools: tools || [],
|
|
199
|
-
tool_choice: tools && tools.length > 0 ? "auto" : undefined,
|
|
200
|
-
temperature,
|
|
201
|
-
max_tokens: maxTokens,
|
|
202
|
-
stream: true,
|
|
203
|
-
};
|
|
204
|
-
// Add GLM-4.6 thinking parameter if specified
|
|
205
|
-
if (thinking) {
|
|
206
|
-
requestPayload.thinking = thinking;
|
|
207
|
-
}
|
|
208
|
-
// Add search parameters if specified
|
|
209
|
-
if (searchOptions?.search_parameters) {
|
|
210
|
-
requestPayload.search_parameters = searchOptions.search_parameters;
|
|
211
|
-
}
|
|
212
|
-
const stream = (await this.client.chat.completions.create(requestPayload));
|
|
213
|
-
for await (const chunk of stream) {
|
|
214
|
-
yield chunk;
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
catch (error) {
|
|
218
|
-
const modelInfo = options?.model || this.currentModel;
|
|
219
|
-
throw new Error(`Grok API streaming error (model: ${modelInfo}): ${error.message}`);
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
/**
|
|
223
|
-
* Search with web context (deprecated - use chat with searchOptions)
|
|
224
|
-
* @deprecated Use chat() with searchOptions parameter instead
|
|
225
|
-
*/
|
|
226
|
-
async search(query, searchParameters) {
|
|
227
|
-
const searchMessage = {
|
|
228
|
-
role: "user",
|
|
229
|
-
content: query,
|
|
230
|
-
};
|
|
231
|
-
const searchOptions = {
|
|
232
|
-
search_parameters: searchParameters || { mode: "on" },
|
|
233
|
-
};
|
|
234
|
-
return this.chat([searchMessage], [], { searchOptions });
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
//# sourceMappingURL=client.js.map
|
package/dist/grok/client.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/grok/client.ts"],"names":[],"mappings":"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"}
|
package/dist/grok/tools.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { GrokTool } from "./client.js";
|
|
2
|
-
import { MCPManager, MCPTool } from "../mcp/client.js";
|
|
3
|
-
export declare const GROK_TOOLS: GrokTool[];
|
|
4
|
-
export declare function getMCPManager(): MCPManager;
|
|
5
|
-
export declare function initializeMCPServers(): Promise<void>;
|
|
6
|
-
export declare function convertMCPToolToGrokTool(mcpTool: MCPTool): GrokTool;
|
|
7
|
-
export declare function addMCPToolsToGrokTools(baseTools: GrokTool[]): GrokTool[];
|
|
8
|
-
export declare function getAllGrokTools(): Promise<GrokTool[]>;
|
package/dist/grok/tools.js
DELETED
|
@@ -1,318 +0,0 @@
|
|
|
1
|
-
import { MCPManager } from "../mcp/client.js";
|
|
2
|
-
import { loadMCPConfig } from "../mcp/config.js";
|
|
3
|
-
const BASE_GROK_TOOLS = [
|
|
4
|
-
{
|
|
5
|
-
type: "function",
|
|
6
|
-
function: {
|
|
7
|
-
name: "view_file",
|
|
8
|
-
description: "View contents of a file or list directory contents",
|
|
9
|
-
parameters: {
|
|
10
|
-
type: "object",
|
|
11
|
-
properties: {
|
|
12
|
-
path: {
|
|
13
|
-
type: "string",
|
|
14
|
-
description: "Path to file or directory to view",
|
|
15
|
-
},
|
|
16
|
-
start_line: {
|
|
17
|
-
type: "number",
|
|
18
|
-
description: "Starting line number for partial file view (optional)",
|
|
19
|
-
},
|
|
20
|
-
end_line: {
|
|
21
|
-
type: "number",
|
|
22
|
-
description: "Ending line number for partial file view (optional)",
|
|
23
|
-
},
|
|
24
|
-
},
|
|
25
|
-
required: ["path"],
|
|
26
|
-
},
|
|
27
|
-
},
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
type: "function",
|
|
31
|
-
function: {
|
|
32
|
-
name: "create_file",
|
|
33
|
-
description: "Create a new file with specified content",
|
|
34
|
-
parameters: {
|
|
35
|
-
type: "object",
|
|
36
|
-
properties: {
|
|
37
|
-
path: {
|
|
38
|
-
type: "string",
|
|
39
|
-
description: "Path where the file should be created",
|
|
40
|
-
},
|
|
41
|
-
content: {
|
|
42
|
-
type: "string",
|
|
43
|
-
description: "Content to write to the file",
|
|
44
|
-
},
|
|
45
|
-
},
|
|
46
|
-
required: ["path", "content"],
|
|
47
|
-
},
|
|
48
|
-
},
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
type: "function",
|
|
52
|
-
function: {
|
|
53
|
-
name: "str_replace_editor",
|
|
54
|
-
description: "Replace specific text in a file. Use this for single line edits only",
|
|
55
|
-
parameters: {
|
|
56
|
-
type: "object",
|
|
57
|
-
properties: {
|
|
58
|
-
path: {
|
|
59
|
-
type: "string",
|
|
60
|
-
description: "Path to the file to edit",
|
|
61
|
-
},
|
|
62
|
-
old_str: {
|
|
63
|
-
type: "string",
|
|
64
|
-
description: "Text to replace (must match exactly, or will use fuzzy matching for multi-line strings)",
|
|
65
|
-
},
|
|
66
|
-
new_str: {
|
|
67
|
-
type: "string",
|
|
68
|
-
description: "Text to replace with",
|
|
69
|
-
},
|
|
70
|
-
replace_all: {
|
|
71
|
-
type: "boolean",
|
|
72
|
-
description: "Replace all occurrences (default: false, only replaces first occurrence)",
|
|
73
|
-
},
|
|
74
|
-
},
|
|
75
|
-
required: ["path", "old_str", "new_str"],
|
|
76
|
-
},
|
|
77
|
-
},
|
|
78
|
-
},
|
|
79
|
-
{
|
|
80
|
-
type: "function",
|
|
81
|
-
function: {
|
|
82
|
-
name: "bash",
|
|
83
|
-
description: "Execute a bash command",
|
|
84
|
-
parameters: {
|
|
85
|
-
type: "object",
|
|
86
|
-
properties: {
|
|
87
|
-
command: {
|
|
88
|
-
type: "string",
|
|
89
|
-
description: "The bash command to execute",
|
|
90
|
-
},
|
|
91
|
-
},
|
|
92
|
-
required: ["command"],
|
|
93
|
-
},
|
|
94
|
-
},
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
type: "function",
|
|
98
|
-
function: {
|
|
99
|
-
name: "search",
|
|
100
|
-
description: "Unified search tool for finding text content or files (similar to Cursor's search)",
|
|
101
|
-
parameters: {
|
|
102
|
-
type: "object",
|
|
103
|
-
properties: {
|
|
104
|
-
query: {
|
|
105
|
-
type: "string",
|
|
106
|
-
description: "Text to search for or file name/path pattern",
|
|
107
|
-
},
|
|
108
|
-
search_type: {
|
|
109
|
-
type: "string",
|
|
110
|
-
enum: ["text", "files", "both"],
|
|
111
|
-
description: "Type of search: 'text' for content search, 'files' for file names, 'both' for both (default: 'both')",
|
|
112
|
-
},
|
|
113
|
-
include_pattern: {
|
|
114
|
-
type: "string",
|
|
115
|
-
description: "Glob pattern for files to include (e.g. '*.ts', '*.js')",
|
|
116
|
-
},
|
|
117
|
-
exclude_pattern: {
|
|
118
|
-
type: "string",
|
|
119
|
-
description: "Glob pattern for files to exclude (e.g. '*.log', 'node_modules')",
|
|
120
|
-
},
|
|
121
|
-
case_sensitive: {
|
|
122
|
-
type: "boolean",
|
|
123
|
-
description: "Whether search should be case sensitive (default: false)",
|
|
124
|
-
},
|
|
125
|
-
whole_word: {
|
|
126
|
-
type: "boolean",
|
|
127
|
-
description: "Whether to match whole words only (default: false)",
|
|
128
|
-
},
|
|
129
|
-
regex: {
|
|
130
|
-
type: "boolean",
|
|
131
|
-
description: "Whether query is a regex pattern (default: false)",
|
|
132
|
-
},
|
|
133
|
-
max_results: {
|
|
134
|
-
type: "number",
|
|
135
|
-
description: "Maximum number of results to return (default: 50)",
|
|
136
|
-
},
|
|
137
|
-
file_types: {
|
|
138
|
-
type: "array",
|
|
139
|
-
items: { type: "string" },
|
|
140
|
-
description: "File types to search (e.g. ['js', 'ts', 'py'])",
|
|
141
|
-
},
|
|
142
|
-
include_hidden: {
|
|
143
|
-
type: "boolean",
|
|
144
|
-
description: "Whether to include hidden files (default: false)",
|
|
145
|
-
},
|
|
146
|
-
},
|
|
147
|
-
required: ["query"],
|
|
148
|
-
},
|
|
149
|
-
},
|
|
150
|
-
},
|
|
151
|
-
{
|
|
152
|
-
type: "function",
|
|
153
|
-
function: {
|
|
154
|
-
name: "create_todo_list",
|
|
155
|
-
description: "Create a new todo list for planning and tracking tasks",
|
|
156
|
-
parameters: {
|
|
157
|
-
type: "object",
|
|
158
|
-
properties: {
|
|
159
|
-
todos: {
|
|
160
|
-
type: "array",
|
|
161
|
-
description: "Array of todo items",
|
|
162
|
-
items: {
|
|
163
|
-
type: "object",
|
|
164
|
-
properties: {
|
|
165
|
-
id: {
|
|
166
|
-
type: "string",
|
|
167
|
-
description: "Unique identifier for the todo item",
|
|
168
|
-
},
|
|
169
|
-
content: {
|
|
170
|
-
type: "string",
|
|
171
|
-
description: "Description of the todo item",
|
|
172
|
-
},
|
|
173
|
-
status: {
|
|
174
|
-
type: "string",
|
|
175
|
-
enum: ["pending", "in_progress", "completed"],
|
|
176
|
-
description: "Current status of the todo item",
|
|
177
|
-
},
|
|
178
|
-
priority: {
|
|
179
|
-
type: "string",
|
|
180
|
-
enum: ["high", "medium", "low"],
|
|
181
|
-
description: "Priority level of the todo item",
|
|
182
|
-
},
|
|
183
|
-
},
|
|
184
|
-
required: ["id", "content", "status", "priority"],
|
|
185
|
-
},
|
|
186
|
-
},
|
|
187
|
-
},
|
|
188
|
-
required: ["todos"],
|
|
189
|
-
},
|
|
190
|
-
},
|
|
191
|
-
},
|
|
192
|
-
{
|
|
193
|
-
type: "function",
|
|
194
|
-
function: {
|
|
195
|
-
name: "update_todo_list",
|
|
196
|
-
description: "Update existing todos in the todo list",
|
|
197
|
-
parameters: {
|
|
198
|
-
type: "object",
|
|
199
|
-
properties: {
|
|
200
|
-
updates: {
|
|
201
|
-
type: "array",
|
|
202
|
-
description: "Array of todo updates",
|
|
203
|
-
items: {
|
|
204
|
-
type: "object",
|
|
205
|
-
properties: {
|
|
206
|
-
id: {
|
|
207
|
-
type: "string",
|
|
208
|
-
description: "ID of the todo item to update",
|
|
209
|
-
},
|
|
210
|
-
status: {
|
|
211
|
-
type: "string",
|
|
212
|
-
enum: ["pending", "in_progress", "completed"],
|
|
213
|
-
description: "New status for the todo item",
|
|
214
|
-
},
|
|
215
|
-
content: {
|
|
216
|
-
type: "string",
|
|
217
|
-
description: "New content for the todo item",
|
|
218
|
-
},
|
|
219
|
-
priority: {
|
|
220
|
-
type: "string",
|
|
221
|
-
enum: ["high", "medium", "low"],
|
|
222
|
-
description: "New priority for the todo item",
|
|
223
|
-
},
|
|
224
|
-
},
|
|
225
|
-
required: ["id"],
|
|
226
|
-
},
|
|
227
|
-
},
|
|
228
|
-
},
|
|
229
|
-
required: ["updates"],
|
|
230
|
-
},
|
|
231
|
-
},
|
|
232
|
-
},
|
|
233
|
-
];
|
|
234
|
-
// Function to build tools array
|
|
235
|
-
function buildGrokTools() {
|
|
236
|
-
return [...BASE_GROK_TOOLS];
|
|
237
|
-
}
|
|
238
|
-
// Export dynamic tools array
|
|
239
|
-
export const GROK_TOOLS = buildGrokTools();
|
|
240
|
-
// Global MCP manager instance
|
|
241
|
-
let mcpManager = null;
|
|
242
|
-
export function getMCPManager() {
|
|
243
|
-
if (!mcpManager) {
|
|
244
|
-
mcpManager = new MCPManager();
|
|
245
|
-
}
|
|
246
|
-
return mcpManager;
|
|
247
|
-
}
|
|
248
|
-
export async function initializeMCPServers() {
|
|
249
|
-
const manager = getMCPManager();
|
|
250
|
-
const config = loadMCPConfig();
|
|
251
|
-
// Store original stderr.write
|
|
252
|
-
const originalStderrWrite = process.stderr.write;
|
|
253
|
-
// Temporarily suppress stderr to hide verbose MCP connection logs
|
|
254
|
-
process.stderr.write = function (chunk, encoding, callback) {
|
|
255
|
-
// Filter out mcp-remote verbose logs
|
|
256
|
-
const chunkStr = chunk.toString();
|
|
257
|
-
if (chunkStr.includes('[') && (chunkStr.includes('Using existing client port') ||
|
|
258
|
-
chunkStr.includes('Connecting to remote server') ||
|
|
259
|
-
chunkStr.includes('Using transport strategy') ||
|
|
260
|
-
chunkStr.includes('Connected to remote server') ||
|
|
261
|
-
chunkStr.includes('Local STDIO server running') ||
|
|
262
|
-
chunkStr.includes('Proxy established successfully') ||
|
|
263
|
-
chunkStr.includes('Local→Remote') ||
|
|
264
|
-
chunkStr.includes('Remote→Local'))) {
|
|
265
|
-
// Suppress these verbose logs
|
|
266
|
-
if (callback)
|
|
267
|
-
callback();
|
|
268
|
-
return true;
|
|
269
|
-
}
|
|
270
|
-
// Allow other stderr output
|
|
271
|
-
return originalStderrWrite.call(this, chunk, encoding, callback);
|
|
272
|
-
};
|
|
273
|
-
try {
|
|
274
|
-
for (const serverConfig of config.servers) {
|
|
275
|
-
try {
|
|
276
|
-
await manager.addServer(serverConfig);
|
|
277
|
-
}
|
|
278
|
-
catch (error) {
|
|
279
|
-
console.warn(`Failed to initialize MCP server ${serverConfig.name}:`, error);
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
finally {
|
|
284
|
-
// Restore original stderr.write
|
|
285
|
-
process.stderr.write = originalStderrWrite;
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
export function convertMCPToolToGrokTool(mcpTool) {
|
|
289
|
-
return {
|
|
290
|
-
type: "function",
|
|
291
|
-
function: {
|
|
292
|
-
name: mcpTool.name,
|
|
293
|
-
description: mcpTool.description,
|
|
294
|
-
parameters: mcpTool.inputSchema || {
|
|
295
|
-
type: "object",
|
|
296
|
-
properties: {},
|
|
297
|
-
required: []
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
};
|
|
301
|
-
}
|
|
302
|
-
export function addMCPToolsToGrokTools(baseTools) {
|
|
303
|
-
if (!mcpManager) {
|
|
304
|
-
return baseTools;
|
|
305
|
-
}
|
|
306
|
-
const mcpTools = mcpManager.getTools();
|
|
307
|
-
const grokMCPTools = mcpTools.map(convertMCPToolToGrokTool);
|
|
308
|
-
return [...baseTools, ...grokMCPTools];
|
|
309
|
-
}
|
|
310
|
-
export async function getAllGrokTools() {
|
|
311
|
-
const manager = getMCPManager();
|
|
312
|
-
// Try to initialize servers if not already done, but don't block
|
|
313
|
-
manager.ensureServersInitialized().catch(() => {
|
|
314
|
-
// Ignore initialization errors to avoid blocking
|
|
315
|
-
});
|
|
316
|
-
return addMCPToolsToGrokTools(GROK_TOOLS);
|
|
317
|
-
}
|
|
318
|
-
//# sourceMappingURL=tools.js.map
|
package/dist/grok/tools.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/grok/tools.ts"],"names":[],"mappings":"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"}
|