wave-agent-sdk 0.19.0 → 0.19.2
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/builtin/skills/settings/ENV.md +1 -1
- package/builtin/skills/settings/MODELS.md +19 -11
- package/builtin/skills/settings/SKILL.md +8 -4
- package/dist/services/aiService.d.ts.map +1 -1
- package/dist/services/aiService.js +11 -46
- package/dist/services/authService.d.ts.map +1 -1
- package/dist/services/authService.js +2 -5
- package/dist/services/configurationService.d.ts.map +1 -1
- package/dist/services/configurationService.js +10 -15
- package/dist/types/config.d.ts +4 -2
- package/dist/types/config.d.ts.map +1 -1
- package/dist/utils/constants.d.ts +5 -0
- package/dist/utils/constants.d.ts.map +1 -1
- package/dist/utils/constants.js +5 -0
- package/package.json +1 -1
- package/src/services/aiService.ts +11 -88
- package/src/services/authService.ts +2 -7
- package/src/services/configurationService.ts +11 -21
- package/src/types/config.ts +4 -2
- package/src/utils/constants.ts +6 -0
|
@@ -23,7 +23,7 @@ Wave uses several environment variables to control its core functionality.
|
|
|
23
23
|
| :--- | :--- | :--- |
|
|
24
24
|
| `WAVE_API_KEY` | API key for the AI gateway. | - |
|
|
25
25
|
| `WAVE_BASE_URL` | Base URL for the AI gateway. | - |
|
|
26
|
-
| `WAVE_SERVER_URL` | Server URL for SSO authentication. |
|
|
26
|
+
| `WAVE_SERVER_URL` | Server URL for SSO authentication. | `https://codechat.codewave.163.com` |
|
|
27
27
|
| `WAVE_CUSTOM_HEADERS` | Custom HTTP headers for the AI gateway. Newline-separated `Key: Value` pairs (e.g., `"X-Foo: bar\nAuthorization: Bearer xxx"`). | - |
|
|
28
28
|
| `WAVE_MODEL` | The primary AI model to use for the agent. | `gemini-3-flash` |
|
|
29
29
|
| `WAVE_FAST_MODEL` | The fast AI model to use for quick tasks. | `gemini-2.5-flash` |
|
|
@@ -10,17 +10,23 @@ You can define overrides for specific models in the `models` field. The key shou
|
|
|
10
10
|
{
|
|
11
11
|
"models": {
|
|
12
12
|
"claude-3-7-sonnet-20250219": {
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
"options": {
|
|
14
|
+
"thinking": {
|
|
15
|
+
"type": "enabled",
|
|
16
|
+
"budget_tokens": 1024
|
|
17
|
+
},
|
|
18
|
+
"temperature": 1.0
|
|
19
|
+
}
|
|
18
20
|
},
|
|
19
21
|
"o3-mini": {
|
|
20
|
-
"
|
|
22
|
+
"options": {
|
|
23
|
+
"reasoning_effort": "high"
|
|
24
|
+
}
|
|
21
25
|
},
|
|
22
26
|
"gpt-4o": {
|
|
23
|
-
"
|
|
27
|
+
"options": {
|
|
28
|
+
"temperature": 0.5
|
|
29
|
+
}
|
|
24
30
|
}
|
|
25
31
|
}
|
|
26
32
|
}
|
|
@@ -28,7 +34,7 @@ You can define overrides for specific models in the `models` field. The key shou
|
|
|
28
34
|
|
|
29
35
|
## Supported Parameters
|
|
30
36
|
|
|
31
|
-
Wave supports passing arbitrary parameters to the underlying AI provider. Common parameters include:
|
|
37
|
+
Generation parameters are nested under the `options` field within each model's configuration. Wave supports passing arbitrary parameters to the underlying AI provider. Common parameters include:
|
|
32
38
|
|
|
33
39
|
- `temperature`: Controls randomness (0.0 to 2.0).
|
|
34
40
|
- `maxTokens`: Maximum number of tokens to generate in the response.
|
|
@@ -39,7 +45,7 @@ Wave supports passing arbitrary parameters to the underlying AI provider. Common
|
|
|
39
45
|
|
|
40
46
|
## Model Capabilities
|
|
41
47
|
|
|
42
|
-
Wave needs to know whether a model supports certain features. Instead of guessing from the model name, you declare these explicitly via the `capabilities` field
|
|
48
|
+
Wave needs to know whether a model supports certain features. Instead of guessing from the model name, you declare these explicitly via the `capabilities` field. Note that `capabilities` is set at the top level of the model configuration, **not** inside the `options` field — `options` is reserved for generation parameters only.
|
|
43
49
|
|
|
44
50
|
- `vision` (default: `true`): Whether the model can accept image inputs. When `false`, images are stripped and replaced with text placeholders.
|
|
45
51
|
- `promptCaching` (default: `false`): Whether the model supports ephemeral prompt caching (e.g., Anthropic's `cache_control` markers). When `true`, Wave injects cache markers on the system prompt and last user message.
|
|
@@ -76,13 +82,15 @@ You can also set `capabilities` at the top level of `settings.json` to apply to
|
|
|
76
82
|
|
|
77
83
|
## Unsetting Default Parameters
|
|
78
84
|
|
|
79
|
-
If a model does not support a default parameter (like `temperature` for some reasoning models), you can explicitly set it to `null` to ensure it is not sent to the provider.
|
|
85
|
+
If a model does not support a default parameter (like `temperature` for some reasoning models), you can explicitly set it to `null` inside the `options` field to ensure it is not sent to the provider.
|
|
80
86
|
|
|
81
87
|
```json
|
|
82
88
|
{
|
|
83
89
|
"models": {
|
|
84
90
|
"o1-preview": {
|
|
85
|
-
"
|
|
91
|
+
"options": {
|
|
92
|
+
"temperature": null
|
|
93
|
+
}
|
|
86
94
|
}
|
|
87
95
|
}
|
|
88
96
|
}
|
|
@@ -63,13 +63,17 @@ For detailed model configuration, see [MODELS.md](${WAVE_SKILL_DIR}/MODELS.md).
|
|
|
63
63
|
{
|
|
64
64
|
"models": {
|
|
65
65
|
"claude-3-7-sonnet-20250219": {
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
|
|
66
|
+
"options": {
|
|
67
|
+
"thinking": {
|
|
68
|
+
"type": "enabled",
|
|
69
|
+
"budget_tokens": 1024
|
|
70
|
+
}
|
|
69
71
|
}
|
|
70
72
|
},
|
|
71
73
|
"o3-mini": {
|
|
72
|
-
"
|
|
74
|
+
"options": {
|
|
75
|
+
"reasoning_effort": "high"
|
|
76
|
+
}
|
|
73
77
|
}
|
|
74
78
|
}
|
|
75
79
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aiService.d.ts","sourceRoot":"","sources":["../../src/services/aiService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAGL,0BAA0B,EAC1B,0BAA0B,EAE3B,MAAM,qBAAqB,CAAC;AAI7B,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,EAGL,KAAK,WAAW,EAEjB,MAAM,+BAA+B,CAAC;AAOvC,OAAO,EAIL,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAC;AAuD7B;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AA6DD,MAAM,WAAW,gBAAgB;IAE/B,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,EAAE,WAAW,CAAC;IAGzB,QAAQ,EAAE,0BAA0B,EAAE,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,0BAA0B,EAAE,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EACP,MAAM,GACN,MAAM,GACN,UAAU,GACV;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,QAAQ,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IAGrD,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE;QACxB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,KAAK,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,SAAS,GAAG,KAAK,CAAC;KACnD,KAAK,IAAI,CAAC;IACX,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/C;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,6BAA6B,EAAE,CAAC;IAC7C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,aAAa,CAAC,EACV,MAAM,GACN,QAAQ,GACR,YAAY,GACZ,gBAAgB,GAChB,eAAe,GACf,IAAI,CAAC;IACT,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C;AAuBD,wBAAsB,SAAS,CAC7B,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"aiService.d.ts","sourceRoot":"","sources":["../../src/services/aiService.ts"],"names":[],"mappings":"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"}
|
|
@@ -144,16 +144,9 @@ export async function callAgent(options) {
|
|
|
144
144
|
if (supportsPromptCaching(modelConfig.capabilities)) {
|
|
145
145
|
openaiMessages = transformMessagesForExplicitCache(openaiMessages, modelConfig.capabilities);
|
|
146
146
|
}
|
|
147
|
-
// Get model configuration - use injected modelConfig with optional override
|
|
148
|
-
const { model: _model, fastModel: _fastModel, maxTokens: _maxTokens, permissionMode: _permissionMode, capabilities: _capabilities, ...extraParams } = modelConfig;
|
|
149
|
-
void _model;
|
|
150
|
-
void _fastModel;
|
|
151
|
-
void _maxTokens;
|
|
152
|
-
void _permissionMode;
|
|
153
|
-
void _capabilities;
|
|
154
147
|
const openaiModelConfig = getModelConfig(model || modelConfig.model, {
|
|
155
148
|
max_tokens: resolvedMaxTokens,
|
|
156
|
-
...
|
|
149
|
+
...(modelConfig.options || {}),
|
|
157
150
|
});
|
|
158
151
|
// Determine if streaming is needed
|
|
159
152
|
const isStreaming = !!(onContentUpdate ||
|
|
@@ -522,18 +515,11 @@ export async function compactMessages(options) {
|
|
|
522
515
|
fetchOptions: gatewayConfig.fetchOptions,
|
|
523
516
|
fetch: gatewayConfig.fetch,
|
|
524
517
|
});
|
|
525
|
-
//
|
|
526
|
-
|
|
527
|
-
void _model;
|
|
528
|
-
void _fastModel;
|
|
529
|
-
void _maxTokens;
|
|
530
|
-
void _permissionMode;
|
|
531
|
-
void _capabilities;
|
|
532
|
-
// When a fast model override is provided, use the fast model's hyperparams
|
|
533
|
-
// (if configured); otherwise fall back to the agent model's extraParams.
|
|
518
|
+
// When a fast model override is provided, use the fast model's options
|
|
519
|
+
// (if configured); otherwise fall back to the agent model's options.
|
|
534
520
|
const activeExtraParams = options.model
|
|
535
|
-
?
|
|
536
|
-
:
|
|
521
|
+
? modelConfig.fastModelOptions || {}
|
|
522
|
+
: modelConfig.options || {};
|
|
537
523
|
const openaiModelConfig = getModelConfig(options.model || modelConfig.model, {
|
|
538
524
|
temperature: 0.1,
|
|
539
525
|
max_tokens: 8192,
|
|
@@ -600,18 +586,11 @@ export async function processWebContent(options) {
|
|
|
600
586
|
fetchOptions: gatewayConfig.fetchOptions,
|
|
601
587
|
fetch: gatewayConfig.fetch,
|
|
602
588
|
});
|
|
603
|
-
//
|
|
604
|
-
|
|
605
|
-
void _model;
|
|
606
|
-
void _fastModel;
|
|
607
|
-
void _maxTokens;
|
|
608
|
-
void _permissionMode;
|
|
609
|
-
void _capabilities;
|
|
610
|
-
// When a fast model override is provided, use the fast model's hyperparams
|
|
611
|
-
// (if configured); otherwise fall back to the agent model's extraParams.
|
|
589
|
+
// When a fast model override is provided, use the fast model's options
|
|
590
|
+
// (if configured); otherwise fall back to the agent model's options.
|
|
612
591
|
const activeExtraParams = options.model
|
|
613
|
-
?
|
|
614
|
-
:
|
|
592
|
+
? modelConfig.fastModelOptions || {}
|
|
593
|
+
: modelConfig.options || {};
|
|
615
594
|
const openaiModelConfig = getModelConfig(options.model || modelConfig.model, {
|
|
616
595
|
temperature: 0.1,
|
|
617
596
|
max_tokens: 4096,
|
|
@@ -675,17 +654,10 @@ export async function btw(options) {
|
|
|
675
654
|
fetchOptions: gatewayConfig.fetchOptions,
|
|
676
655
|
fetch: gatewayConfig.fetch,
|
|
677
656
|
});
|
|
678
|
-
// Get model configuration - use injected agent model
|
|
679
|
-
const { model: _model, fastModel: _fastModel, maxTokens: _maxTokens, permissionMode: _permissionMode, capabilities: _capabilities, ...extraParams } = modelConfig;
|
|
680
|
-
void _model;
|
|
681
|
-
void _fastModel;
|
|
682
|
-
void _maxTokens;
|
|
683
|
-
void _permissionMode;
|
|
684
|
-
void _capabilities;
|
|
685
657
|
const openaiModelConfig = getModelConfig(options.model || modelConfig.model, {
|
|
686
658
|
temperature: 0.1,
|
|
687
659
|
max_tokens: 4096,
|
|
688
|
-
...
|
|
660
|
+
...(modelConfig.options || {}),
|
|
689
661
|
});
|
|
690
662
|
try {
|
|
691
663
|
const response = await openai.chat.completions.create({
|
|
@@ -739,17 +711,10 @@ export async function evaluateGoal(options) {
|
|
|
739
711
|
fetchOptions: gatewayConfig.fetchOptions,
|
|
740
712
|
fetch: gatewayConfig.fetch,
|
|
741
713
|
});
|
|
742
|
-
const { model: _model, fastModel: _fastModel, maxTokens: _maxTokens, permissionMode: _permissionMode, fastModelConfig: _fastModelConfig, } = modelConfig;
|
|
743
|
-
void _model;
|
|
744
|
-
void _fastModel;
|
|
745
|
-
void _maxTokens;
|
|
746
|
-
void _permissionMode;
|
|
747
|
-
// evaluateGoal always uses the fast model; use its hyperparams if configured.
|
|
748
|
-
const activeExtraParams = _fastModelConfig || {};
|
|
749
714
|
const openaiModelConfig = getModelConfig(model, {
|
|
750
715
|
temperature: 0,
|
|
751
716
|
max_tokens: 200,
|
|
752
|
-
...
|
|
717
|
+
...(modelConfig.fastModelOptions || {}),
|
|
753
718
|
});
|
|
754
719
|
// Strip images from messages to reduce token usage (same as compact)
|
|
755
720
|
const cleanedMessages = messages.map((msg) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authService.d.ts","sourceRoot":"","sources":["../../src/services/authService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgBH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAiB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"authService.d.ts","sourceRoot":"","sources":["../../src/services/authService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgBH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAiB,MAAM,kBAAkB,CAAC;AAO5E,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAc;IACrC,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,qBAAqB,CAEtB;IACP,OAAO,CAAC,eAAe,CAAiC;IACxD,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAiB;IAE1D,MAAM,CAAC,WAAW,IAAI,WAAW;IAOjC;;;OAGG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI/B;;;OAGG;IACH,YAAY,CACV,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAC5D,MAAM,IAAI;YASC,gBAAgB;IAU9B,WAAW,IAAI,MAAM;IAKrB,QAAQ,IAAI,UAAU;IAmBtB,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAgB5B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBhC,WAAW,IAAI,MAAM,GAAG,SAAS;IAKjC,YAAY,IAAI,MAAM;IAIhB,KAAK,CAAC,OAAO,CAAC,EAAE;QACpB,6DAA6D;QAC7D,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QAClC,mGAAmG;QACnG,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;QAClC,oFAAoF;QACpF,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,MAAM,CAAC;IAgCnB;;;OAGG;YACW,YAAY;IAyB1B,OAAO,CAAC,oBAAoB;IA6F5B,kBAAkB,IAAI,OAAO;IAW7B;;;OAGG;IACH,cAAc,IAAI,OAAO;IAgBzB;;;OAGG;IACG,4BAA4B,IAAI,OAAO,CAAC,OAAO,CAAC;IAkBtD;;;OAGG;YACW,YAAY;IA4D1B;;;OAGG;IACH,yEAAyE;IACzE,6BAA6B,IAAI,OAAO;IAwBxC,WAAW,IAAI,QAAQ,GAAG,SAAS;CAIpC;AAED,eAAO,MAAM,WAAW,aAA4B,CAAC;AAErD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,OAAO,KAAK,GAAG,OAAO,KAAK,CA+C3E;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAsC/C;AAED,4DAA4D;AAC5D,wBAAgB,4BAA4B,IAAI,IAAI,CAEnD"}
|
|
@@ -11,6 +11,7 @@ import { randomBytes } from "crypto";
|
|
|
11
11
|
import { createServer } from "http";
|
|
12
12
|
import { URL } from "url";
|
|
13
13
|
import { logger } from "../utils/globalLogger.js";
|
|
14
|
+
import { DEFAULT_SERVER_URL } from "../utils/constants.js";
|
|
14
15
|
/** Persistent anonymous ID for telemetry fallback when SSO is not authenticated. */
|
|
15
16
|
let _anonymousId;
|
|
16
17
|
export class AuthService {
|
|
@@ -113,11 +114,7 @@ export class AuthService {
|
|
|
113
114
|
return config.SSO_TOKEN;
|
|
114
115
|
}
|
|
115
116
|
getServerUrl() {
|
|
116
|
-
|
|
117
|
-
if (!url) {
|
|
118
|
-
throw new Error("WAVE_SERVER_URL environment variable is not set. SSO authentication requires this to be configured.");
|
|
119
|
-
}
|
|
120
|
-
return url;
|
|
117
|
+
return this._serverUrl || process.env.WAVE_SERVER_URL || DEFAULT_SERVER_URL;
|
|
121
118
|
}
|
|
122
119
|
async login(options) {
|
|
123
120
|
const serverUrl = options?.serverUrl || this.getServerUrl();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configurationService.d.ts","sourceRoot":"","sources":["../../src/services/configurationService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EACV,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,KAAK,EACL,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AAOnC,OAAO,EACL,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAE7B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,aAAa,EACb,WAAW,EACX,cAAc,EACd,YAAY,EACb,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"configurationService.d.ts","sourceRoot":"","sources":["../../src/services/configurationService.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ import { isValidHookEvent } from "../types/hooks.js";
|
|
|
11
11
|
import { logger } from "../utils/globalLogger.js";
|
|
12
12
|
import { getAllConfigPaths, getExistingConfigPaths, getUserConfigPaths, getProjectConfigPaths, } from "../utils/configPaths.js";
|
|
13
13
|
import { isValidEnvironmentVars, } from "../types/environment.js";
|
|
14
|
-
import { DEFAULT_WAVE_MAX_INPUT_TOKENS, DEFAULT_WAVE_MAX_OUTPUT_TOKENS, } from "../utils/constants.js";
|
|
14
|
+
import { DEFAULT_WAVE_MAX_INPUT_TOKENS, DEFAULT_WAVE_MAX_OUTPUT_TOKENS, DEFAULT_SERVER_URL, } from "../utils/constants.js";
|
|
15
15
|
import { parseCustomHeaders } from "../utils/stringUtils.js";
|
|
16
16
|
import { getRemoteSettingsSync, mergeRemoteSettings, } from "./remoteSettingsService.js";
|
|
17
17
|
import { createAuthAwareFetch } from "./authService.js";
|
|
@@ -325,9 +325,11 @@ export class ConfigurationService {
|
|
|
325
325
|
*/
|
|
326
326
|
resolveGatewayConfig(apiKey, baseURL, defaultHeaders, fetchOptions, fetch) {
|
|
327
327
|
// Check for SSO token first - if present and server URL is available, use SSO mode
|
|
328
|
-
// Server URL resolution: options > process.env
|
|
328
|
+
// Server URL resolution: options > process.env > default
|
|
329
329
|
const ssoToken = this.readSSOToken();
|
|
330
|
-
const serverUrl = this.options.serverUrl ||
|
|
330
|
+
const serverUrl = this.options.serverUrl ||
|
|
331
|
+
process.env.WAVE_SERVER_URL ||
|
|
332
|
+
DEFAULT_SERVER_URL;
|
|
331
333
|
if (ssoToken && serverUrl) {
|
|
332
334
|
const baseFetch = fetch ?? this.options.fetch ?? globalThis.fetch;
|
|
333
335
|
const authAwareFetch = createAuthAwareFetch(baseFetch);
|
|
@@ -420,19 +422,12 @@ export class ConfigurationService {
|
|
|
420
422
|
maxTokens: resolvedMaxTokens,
|
|
421
423
|
permissionMode: permissionMode ?? this.options.permissionMode,
|
|
422
424
|
};
|
|
423
|
-
// Resolve fast model
|
|
424
|
-
//
|
|
425
|
-
|
|
426
|
-
const fastModelConfigSource = resolvedFastModel &&
|
|
425
|
+
// Resolve fast model generation params from models[fastModel].options.
|
|
426
|
+
// Set on baseConfig before the modelSpecificConfig spread so it isn't overwritten.
|
|
427
|
+
const fastModelSource = resolvedFastModel &&
|
|
427
428
|
this.currentConfiguration?.models?.[resolvedFastModel];
|
|
428
|
-
if (
|
|
429
|
-
|
|
430
|
-
void _fm;
|
|
431
|
-
void _ffm;
|
|
432
|
-
void _fmt;
|
|
433
|
-
void _fpm;
|
|
434
|
-
void _fcap;
|
|
435
|
-
baseConfig.fastModelConfig = fastHyperparams;
|
|
429
|
+
if (fastModelSource && fastModelSource.options) {
|
|
430
|
+
baseConfig.fastModelOptions = fastModelSource.options;
|
|
436
431
|
}
|
|
437
432
|
// Merge model-specific settings from configuration
|
|
438
433
|
const modelSpecificConfig = resolvedAgentModel &&
|
package/dist/types/config.d.ts
CHANGED
|
@@ -22,8 +22,10 @@ export interface ModelConfig {
|
|
|
22
22
|
fastModel?: string;
|
|
23
23
|
maxTokens?: number;
|
|
24
24
|
permissionMode?: PermissionMode;
|
|
25
|
-
fastModelConfig?: Record<string, unknown>;
|
|
26
25
|
capabilities?: ModelCapabilities;
|
|
27
|
-
|
|
26
|
+
/** Generation params passed through to the API provider (temperature, thinking, etc.) */
|
|
27
|
+
options?: Record<string, unknown>;
|
|
28
|
+
/** Fast model generation params (resolved from models[fastModel].options) */
|
|
29
|
+
fastModelOptions?: Record<string, unknown>;
|
|
28
30
|
}
|
|
29
31
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,oEAAoE;IACpE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mGAAmG;IACnG,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,oEAAoE;IACpE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mGAAmG;IACnG,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,yFAAyF;IACzF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,6EAA6E;IAC7E,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C"}
|
|
@@ -23,4 +23,9 @@ export declare const USER_MEMORY_FILE: string;
|
|
|
23
23
|
*/
|
|
24
24
|
export declare const DEFAULT_WAVE_MAX_INPUT_TOKENS = 200000;
|
|
25
25
|
export declare const DEFAULT_WAVE_MAX_OUTPUT_TOKENS = 32000;
|
|
26
|
+
/**
|
|
27
|
+
* Default server URL for SSO authentication.
|
|
28
|
+
* Overridden by WAVE_SERVER_URL env var or programmatic AgentOptions.serverUrl.
|
|
29
|
+
*/
|
|
30
|
+
export declare const DEFAULT_SERVER_URL = "https://codechat.codewave.163.com";
|
|
26
31
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAmC,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAA6C,CAAC;AAE9E;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAA0C,CAAC;AAE3E;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAAyC,CAAC;AAEvE;;GAEG;AACH,eAAO,MAAM,6BAA6B,SAAS,CAAC;AACpD,eAAO,MAAM,8BAA8B,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAmC,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAA6C,CAAC;AAE9E;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAA0C,CAAC;AAE3E;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAAyC,CAAC;AAEvE;;GAEG;AACH,eAAO,MAAM,6BAA6B,SAAS,CAAC;AACpD,eAAO,MAAM,8BAA8B,QAAQ,CAAC;AAEpD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,sCAAsC,CAAC"}
|
package/dist/utils/constants.js
CHANGED
|
@@ -25,3 +25,8 @@ export const USER_MEMORY_FILE = path.join(DATA_DIRECTORY, "AGENTS.md");
|
|
|
25
25
|
*/
|
|
26
26
|
export const DEFAULT_WAVE_MAX_INPUT_TOKENS = 200000; // Default token limit
|
|
27
27
|
export const DEFAULT_WAVE_MAX_OUTPUT_TOKENS = 32000; // Default output token limit (aligned with Claude Code)
|
|
28
|
+
/**
|
|
29
|
+
* Default server URL for SSO authentication.
|
|
30
|
+
* Overridden by WAVE_SERVER_URL env var or programmatic AgentOptions.serverUrl.
|
|
31
|
+
*/
|
|
32
|
+
export const DEFAULT_SERVER_URL = "https://codechat.codewave.163.com";
|
package/package.json
CHANGED
|
@@ -313,24 +313,9 @@ export async function callAgent(
|
|
|
313
313
|
);
|
|
314
314
|
}
|
|
315
315
|
|
|
316
|
-
// Get model configuration - use injected modelConfig with optional override
|
|
317
|
-
const {
|
|
318
|
-
model: _model,
|
|
319
|
-
fastModel: _fastModel,
|
|
320
|
-
maxTokens: _maxTokens,
|
|
321
|
-
permissionMode: _permissionMode,
|
|
322
|
-
capabilities: _capabilities,
|
|
323
|
-
...extraParams
|
|
324
|
-
} = modelConfig;
|
|
325
|
-
void _model;
|
|
326
|
-
void _fastModel;
|
|
327
|
-
void _maxTokens;
|
|
328
|
-
void _permissionMode;
|
|
329
|
-
void _capabilities;
|
|
330
|
-
|
|
331
316
|
const openaiModelConfig = getModelConfig(model || modelConfig.model, {
|
|
332
317
|
max_tokens: resolvedMaxTokens,
|
|
333
|
-
...
|
|
318
|
+
...(modelConfig.options || {}),
|
|
334
319
|
});
|
|
335
320
|
|
|
336
321
|
// Determine if streaming is needed
|
|
@@ -861,27 +846,11 @@ export async function compactMessages(
|
|
|
861
846
|
fetch: gatewayConfig.fetch,
|
|
862
847
|
});
|
|
863
848
|
|
|
864
|
-
//
|
|
865
|
-
|
|
866
|
-
model: _model,
|
|
867
|
-
fastModel: _fastModel,
|
|
868
|
-
maxTokens: _maxTokens,
|
|
869
|
-
permissionMode: _permissionMode,
|
|
870
|
-
capabilities: _capabilities,
|
|
871
|
-
fastModelConfig: _fastModelConfig,
|
|
872
|
-
...extraParams
|
|
873
|
-
} = modelConfig;
|
|
874
|
-
void _model;
|
|
875
|
-
void _fastModel;
|
|
876
|
-
void _maxTokens;
|
|
877
|
-
void _permissionMode;
|
|
878
|
-
void _capabilities;
|
|
879
|
-
|
|
880
|
-
// When a fast model override is provided, use the fast model's hyperparams
|
|
881
|
-
// (if configured); otherwise fall back to the agent model's extraParams.
|
|
849
|
+
// When a fast model override is provided, use the fast model's options
|
|
850
|
+
// (if configured); otherwise fall back to the agent model's options.
|
|
882
851
|
const activeExtraParams = options.model
|
|
883
|
-
?
|
|
884
|
-
:
|
|
852
|
+
? modelConfig.fastModelOptions || {}
|
|
853
|
+
: modelConfig.options || {};
|
|
885
854
|
|
|
886
855
|
const openaiModelConfig = getModelConfig(options.model || modelConfig.model, {
|
|
887
856
|
temperature: 0.1,
|
|
@@ -986,27 +955,11 @@ export async function processWebContent(
|
|
|
986
955
|
fetch: gatewayConfig.fetch,
|
|
987
956
|
});
|
|
988
957
|
|
|
989
|
-
//
|
|
990
|
-
|
|
991
|
-
model: _model,
|
|
992
|
-
fastModel: _fastModel,
|
|
993
|
-
maxTokens: _maxTokens,
|
|
994
|
-
permissionMode: _permissionMode,
|
|
995
|
-
capabilities: _capabilities,
|
|
996
|
-
fastModelConfig: _fastModelConfig,
|
|
997
|
-
...extraParams
|
|
998
|
-
} = modelConfig;
|
|
999
|
-
void _model;
|
|
1000
|
-
void _fastModel;
|
|
1001
|
-
void _maxTokens;
|
|
1002
|
-
void _permissionMode;
|
|
1003
|
-
void _capabilities;
|
|
1004
|
-
|
|
1005
|
-
// When a fast model override is provided, use the fast model's hyperparams
|
|
1006
|
-
// (if configured); otherwise fall back to the agent model's extraParams.
|
|
958
|
+
// When a fast model override is provided, use the fast model's options
|
|
959
|
+
// (if configured); otherwise fall back to the agent model's options.
|
|
1007
960
|
const activeExtraParams = options.model
|
|
1008
|
-
?
|
|
1009
|
-
:
|
|
961
|
+
? modelConfig.fastModelOptions || {}
|
|
962
|
+
: modelConfig.options || {};
|
|
1010
963
|
|
|
1011
964
|
const openaiModelConfig = getModelConfig(options.model || modelConfig.model, {
|
|
1012
965
|
temperature: 0.1,
|
|
@@ -1105,25 +1058,10 @@ export async function btw(options: BtwOptions): Promise<BtwResult> {
|
|
|
1105
1058
|
fetch: gatewayConfig.fetch,
|
|
1106
1059
|
});
|
|
1107
1060
|
|
|
1108
|
-
// Get model configuration - use injected agent model
|
|
1109
|
-
const {
|
|
1110
|
-
model: _model,
|
|
1111
|
-
fastModel: _fastModel,
|
|
1112
|
-
maxTokens: _maxTokens,
|
|
1113
|
-
permissionMode: _permissionMode,
|
|
1114
|
-
capabilities: _capabilities,
|
|
1115
|
-
...extraParams
|
|
1116
|
-
} = modelConfig;
|
|
1117
|
-
void _model;
|
|
1118
|
-
void _fastModel;
|
|
1119
|
-
void _maxTokens;
|
|
1120
|
-
void _permissionMode;
|
|
1121
|
-
void _capabilities;
|
|
1122
|
-
|
|
1123
1061
|
const openaiModelConfig = getModelConfig(options.model || modelConfig.model, {
|
|
1124
1062
|
temperature: 0.1,
|
|
1125
1063
|
max_tokens: 4096,
|
|
1126
|
-
...
|
|
1064
|
+
...(modelConfig.options || {}),
|
|
1127
1065
|
});
|
|
1128
1066
|
|
|
1129
1067
|
try {
|
|
@@ -1214,25 +1152,10 @@ export async function evaluateGoal(
|
|
|
1214
1152
|
fetch: gatewayConfig.fetch,
|
|
1215
1153
|
});
|
|
1216
1154
|
|
|
1217
|
-
const {
|
|
1218
|
-
model: _model,
|
|
1219
|
-
fastModel: _fastModel,
|
|
1220
|
-
maxTokens: _maxTokens,
|
|
1221
|
-
permissionMode: _permissionMode,
|
|
1222
|
-
fastModelConfig: _fastModelConfig,
|
|
1223
|
-
} = modelConfig;
|
|
1224
|
-
void _model;
|
|
1225
|
-
void _fastModel;
|
|
1226
|
-
void _maxTokens;
|
|
1227
|
-
void _permissionMode;
|
|
1228
|
-
|
|
1229
|
-
// evaluateGoal always uses the fast model; use its hyperparams if configured.
|
|
1230
|
-
const activeExtraParams = _fastModelConfig || {};
|
|
1231
|
-
|
|
1232
1155
|
const openaiModelConfig = getModelConfig(model, {
|
|
1233
1156
|
temperature: 0,
|
|
1234
1157
|
max_tokens: 200,
|
|
1235
|
-
...
|
|
1158
|
+
...(modelConfig.fastModelOptions || {}),
|
|
1236
1159
|
});
|
|
1237
1160
|
|
|
1238
1161
|
// Strip images from messages to reduce token usage (same as compact)
|
|
@@ -21,6 +21,7 @@ import { createServer, Server } from "http";
|
|
|
21
21
|
import { URL } from "url";
|
|
22
22
|
import type { AuthConfig, AuthUser, TokenResponse } from "../types/auth.js";
|
|
23
23
|
import { logger } from "../utils/globalLogger.js";
|
|
24
|
+
import { DEFAULT_SERVER_URL } from "../utils/constants.js";
|
|
24
25
|
|
|
25
26
|
/** Persistent anonymous ID for telemetry fallback when SSO is not authenticated. */
|
|
26
27
|
let _anonymousId: string | undefined;
|
|
@@ -137,13 +138,7 @@ export class AuthService {
|
|
|
137
138
|
}
|
|
138
139
|
|
|
139
140
|
getServerUrl(): string {
|
|
140
|
-
|
|
141
|
-
if (!url) {
|
|
142
|
-
throw new Error(
|
|
143
|
-
"WAVE_SERVER_URL environment variable is not set. SSO authentication requires this to be configured.",
|
|
144
|
-
);
|
|
145
|
-
}
|
|
146
|
-
return url;
|
|
141
|
+
return this._serverUrl || process.env.WAVE_SERVER_URL || DEFAULT_SERVER_URL;
|
|
147
142
|
}
|
|
148
143
|
|
|
149
144
|
async login(options?: {
|
|
@@ -39,6 +39,7 @@ import {
|
|
|
39
39
|
import {
|
|
40
40
|
DEFAULT_WAVE_MAX_INPUT_TOKENS,
|
|
41
41
|
DEFAULT_WAVE_MAX_OUTPUT_TOKENS,
|
|
42
|
+
DEFAULT_SERVER_URL,
|
|
42
43
|
} from "../utils/constants.js";
|
|
43
44
|
import { ClientOptions } from "openai";
|
|
44
45
|
import { parseCustomHeaders } from "../utils/stringUtils.js";
|
|
@@ -420,9 +421,12 @@ export class ConfigurationService {
|
|
|
420
421
|
fetch?: ClientOptions["fetch"],
|
|
421
422
|
): GatewayConfig {
|
|
422
423
|
// Check for SSO token first - if present and server URL is available, use SSO mode
|
|
423
|
-
// Server URL resolution: options > process.env
|
|
424
|
+
// Server URL resolution: options > process.env > default
|
|
424
425
|
const ssoToken = this.readSSOToken();
|
|
425
|
-
const serverUrl =
|
|
426
|
+
const serverUrl =
|
|
427
|
+
this.options.serverUrl ||
|
|
428
|
+
process.env.WAVE_SERVER_URL ||
|
|
429
|
+
DEFAULT_SERVER_URL;
|
|
426
430
|
if (ssoToken && serverUrl) {
|
|
427
431
|
const baseFetch = fetch ?? this.options.fetch ?? globalThis.fetch;
|
|
428
432
|
const authAwareFetch = createAuthAwareFetch(
|
|
@@ -534,27 +538,13 @@ export class ConfigurationService {
|
|
|
534
538
|
permissionMode: permissionMode ?? this.options.permissionMode,
|
|
535
539
|
};
|
|
536
540
|
|
|
537
|
-
// Resolve fast model
|
|
538
|
-
//
|
|
539
|
-
|
|
540
|
-
const fastModelConfigSource =
|
|
541
|
+
// Resolve fast model generation params from models[fastModel].options.
|
|
542
|
+
// Set on baseConfig before the modelSpecificConfig spread so it isn't overwritten.
|
|
543
|
+
const fastModelSource =
|
|
541
544
|
resolvedFastModel &&
|
|
542
545
|
this.currentConfiguration?.models?.[resolvedFastModel];
|
|
543
|
-
if (
|
|
544
|
-
|
|
545
|
-
model: _fm,
|
|
546
|
-
fastModel: _ffm,
|
|
547
|
-
maxTokens: _fmt,
|
|
548
|
-
permissionMode: _fpm,
|
|
549
|
-
capabilities: _fcap,
|
|
550
|
-
...fastHyperparams
|
|
551
|
-
} = fastModelConfigSource;
|
|
552
|
-
void _fm;
|
|
553
|
-
void _ffm;
|
|
554
|
-
void _fmt;
|
|
555
|
-
void _fpm;
|
|
556
|
-
void _fcap;
|
|
557
|
-
baseConfig.fastModelConfig = fastHyperparams;
|
|
546
|
+
if (fastModelSource && fastModelSource.options) {
|
|
547
|
+
baseConfig.fastModelOptions = fastModelSource.options;
|
|
558
548
|
}
|
|
559
549
|
|
|
560
550
|
// Merge model-specific settings from configuration
|
package/src/types/config.ts
CHANGED
|
@@ -26,7 +26,9 @@ export interface ModelConfig {
|
|
|
26
26
|
fastModel?: string;
|
|
27
27
|
maxTokens?: number;
|
|
28
28
|
permissionMode?: PermissionMode;
|
|
29
|
-
fastModelConfig?: Record<string, unknown>;
|
|
30
29
|
capabilities?: ModelCapabilities;
|
|
31
|
-
|
|
30
|
+
/** Generation params passed through to the API provider (temperature, thinking, etc.) */
|
|
31
|
+
options?: Record<string, unknown>;
|
|
32
|
+
/** Fast model generation params (resolved from models[fastModel].options) */
|
|
33
|
+
fastModelOptions?: Record<string, unknown>;
|
|
32
34
|
}
|
package/src/utils/constants.ts
CHANGED
|
@@ -31,3 +31,9 @@ export const USER_MEMORY_FILE = path.join(DATA_DIRECTORY, "AGENTS.md");
|
|
|
31
31
|
*/
|
|
32
32
|
export const DEFAULT_WAVE_MAX_INPUT_TOKENS = 200000; // Default token limit
|
|
33
33
|
export const DEFAULT_WAVE_MAX_OUTPUT_TOKENS = 32000; // Default output token limit (aligned with Claude Code)
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Default server URL for SSO authentication.
|
|
37
|
+
* Overridden by WAVE_SERVER_URL env var or programmatic AgentOptions.serverUrl.
|
|
38
|
+
*/
|
|
39
|
+
export const DEFAULT_SERVER_URL = "https://codechat.codewave.163.com";
|