mindweave 2.1.3 → 2.2.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/README.md +8 -24
- package/dist/cli/App.js +44 -19
- package/dist/cli/App.js.map +1 -1
- package/dist/cli/revealPace.js +56 -27
- package/dist/cli/revealPace.js.map +1 -1
- package/dist/drivers/anthropic/manifest.js +7 -1
- package/dist/drivers/anthropic/manifest.js.map +1 -1
- package/dist/drivers/glm/manifest.js +11 -9
- package/dist/drivers/glm/manifest.js.map +1 -1
- package/dist/drivers/meta/manifest.js +16 -5
- package/dist/drivers/meta/manifest.js.map +1 -1
- package/dist/drivers/registry.js +3 -0
- package/dist/drivers/registry.js.map +1 -1
- package/dist/drivers/tencent/client.js +52 -0
- package/dist/drivers/tencent/client.js.map +1 -0
- package/dist/drivers/tencent/index.js +9 -0
- package/dist/drivers/tencent/index.js.map +1 -0
- package/dist/drivers/tencent/manifest.js +123 -0
- package/dist/drivers/tencent/manifest.js.map +1 -0
- package/dist/dynamo/cacheBreak.js +57 -0
- package/dist/dynamo/cacheBreak.js.map +1 -1
- package/dist/dynamo/engine.js +13 -1
- package/dist/dynamo/engine.js.map +1 -1
- package/dist/tools/guard.js +20 -1
- package/dist/tools/guard.js.map +1 -1
- package/dist/tools/screenshot.js +33 -12
- package/dist/tools/screenshot.js.map +1 -1
- package/package.json +2 -2
package/dist/cli/revealPace.js
CHANGED
|
@@ -1,42 +1,71 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* revealPace.ts — the tempo the transcript reveals at.
|
|
3
3
|
*
|
|
4
|
-
* A turn's events arrive
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
4
|
+
* A turn's events do not arrive evenly. A model may work one step at a time, or
|
|
5
|
+
* decide to fan out and ask for eight things at once; the engine runs the safe ones
|
|
6
|
+
* concurrently, so their rows finish within milliseconds of each other. Without a
|
|
7
|
+
* beat those two behaviours look completely different on screen: a calm sequence,
|
|
8
|
+
* then a stall, then eight rows landing in one paint. The work was fine. The screen
|
|
9
|
+
* was reporting the model's internal batching, which is not something a reader can
|
|
10
|
+
* act on and not something they asked to see.
|
|
11
|
+
*
|
|
12
|
+
* This beat was three seconds once, was removed, and is back deliberately. Both
|
|
13
|
+
* decisions were right about different things, and the distinction is the whole
|
|
14
|
+
* point of this file:
|
|
15
|
+
*
|
|
16
|
+
* - Removing it was right about TEXT. Words arriving with motion read as a
|
|
17
|
+
* typewriter, and a tool that is quick should look quick.
|
|
18
|
+
* - Removing it was wrong about TOOL ROWS. There the burst is not decoration, it
|
|
19
|
+
* is the model's concurrency leaking into the interface, and the reader loses
|
|
20
|
+
* the thread of what happened.
|
|
21
|
+
*
|
|
22
|
+
* So the rhythm is uniform and unconditional: every block that appears waits the
|
|
23
|
+
* same beat since the last one, whatever produced it and whatever the queue is
|
|
24
|
+
* doing behind it. A turn that finished a second ago drains at the same pace as one
|
|
25
|
+
* still running — deliberately, because a queue that speeds up once the work is
|
|
26
|
+
* done is the interface getting impatient with itself, which is the thing that
|
|
27
|
+
* reads as animation. Esc still flushes; that is the user overriding the rhythm,
|
|
28
|
+
* which outranks it.
|
|
29
|
+
*
|
|
30
|
+
* What this is NOT: an added sleep. The wait is a MINIMUM since the last reveal, so
|
|
31
|
+
* a model that thought for three seconds between calls pays nothing here. Only a
|
|
32
|
+
* burst — rows that genuinely arrived together — is spaced out. Turns that already
|
|
33
|
+
* had the right rhythm are untouched.
|
|
20
34
|
*/
|
|
35
|
+
/** Read at import. Accepts 0, which restores the old instant behaviour. */
|
|
36
|
+
function pacingFromEnv(name, fallback) {
|
|
37
|
+
const raw = process.env[name];
|
|
38
|
+
if (raw == null || raw.trim() === "")
|
|
39
|
+
return fallback;
|
|
40
|
+
const v = Number(raw);
|
|
41
|
+
return Number.isFinite(v) && v >= 0 ? v : fallback;
|
|
42
|
+
}
|
|
21
43
|
/**
|
|
22
|
-
* The beat, in milliseconds.
|
|
44
|
+
* The beat, in milliseconds.
|
|
23
45
|
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* not by a test.
|
|
46
|
+
* Two seconds: fast enough that a short turn does not feel withheld, slow enough
|
|
47
|
+
* that eight rows are eight readable events rather than one paint. Overridable with
|
|
48
|
+
* `MINDWEAVE_REVEAL_GAP_MS` because this is a question of feel, and the file has
|
|
49
|
+
* always said so — it is settled by using it, not by a test. Zero restores the
|
|
50
|
+
* previous behaviour exactly.
|
|
28
51
|
*/
|
|
29
|
-
export const REVEAL_GAP_MS =
|
|
52
|
+
export const REVEAL_GAP_MS = pacingFromEnv("MINDWEAVE_REVEAL_GAP_MS", 2000);
|
|
30
53
|
/**
|
|
31
|
-
* How long to hold before revealing the next block.
|
|
54
|
+
* How long to hold before revealing the next block. The beat, every time.
|
|
32
55
|
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
56
|
+
* It ADDS to whatever the model already spent; it is not a minimum that the
|
|
57
|
+
* model's own thinking can absorb. That is the correction to a wrong assumption
|
|
58
|
+
* this file used to make: subtracting elapsed time meant a model that paused three
|
|
59
|
+
* seconds between calls produced no beat at all, so the calm turns stayed calm and
|
|
60
|
+
* the fast ones — the batches, the ones that needed the beat — got nothing. Worse,
|
|
61
|
+
* it made the rhythm a function of model speed, which is the one thing the reader
|
|
62
|
+
* should never be able to feel. Thinking time is the model's; the beat is the
|
|
63
|
+
* screen's; a reader gets both.
|
|
35
64
|
*/
|
|
36
|
-
export function revealWait({
|
|
65
|
+
export function revealWait({ flush }) {
|
|
37
66
|
if (flush)
|
|
38
67
|
return 0;
|
|
39
|
-
return
|
|
68
|
+
return REVEAL_GAP_MS;
|
|
40
69
|
}
|
|
41
70
|
/**
|
|
42
71
|
* Whether unsealed narration is waiting, and would actually become a visible block.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revealPace.js","sourceRoot":"","sources":["../../src/cli/revealPace.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"revealPace.js","sourceRoot":"","sources":["../../src/cli/revealPace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,2EAA2E;AAC3E,SAAS,aAAa,CAAC,IAAY,EAAE,QAAgB;IACnD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,QAAQ,CAAC;IACtD,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACrD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAC;AAQ5E;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,UAAU,CAAC,EAAE,KAAK,EAAa;IAC7C,IAAI,KAAK;QAAE,OAAO,CAAC,CAAC;IACpB,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,gBAAgB,CAAC,CAAgE;IAC/F,OAAO,CAAC,CAAC,UAAU,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AACzE,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export const FABLE_51 = "claude-fable-5-1";
|
|
1
2
|
export const FABLE = "claude-fable-5";
|
|
2
3
|
export const OPUS = "claude-opus-5";
|
|
3
4
|
export const OPUS_48 = "claude-opus-4-8";
|
|
@@ -17,7 +18,8 @@ export const MODELS = [
|
|
|
17
18
|
{ id: SONNET, label: "Claude Sonnet 5", description: "fast, strong at code — the default" },
|
|
18
19
|
{ id: OPUS, label: "Claude Opus 5", description: "deep reasoning for long, complex work" },
|
|
19
20
|
{ id: OPUS_48, label: "Claude Opus 4.8", description: "the previous Opus — proven and steady" },
|
|
20
|
-
{ id:
|
|
21
|
+
{ id: FABLE_51, label: "Claude Fable 5.1", description: "the toughest challenges, at the highest rate" },
|
|
22
|
+
{ id: FABLE, label: "Claude Fable 5", description: "the previous Fable, at the same rate" },
|
|
21
23
|
{ id: HAIKU, label: "Claude Haiku 4.5", description: "cheapest and quickest, for simple work" },
|
|
22
24
|
];
|
|
23
25
|
const CURRENT = {
|
|
@@ -34,6 +36,7 @@ const CURRENT = {
|
|
|
34
36
|
const SURFACES = {
|
|
35
37
|
// Thinking is always on and any explicit `thinking` config is rejected — see
|
|
36
38
|
// `client.ts`, which omits the field entirely for this model.
|
|
39
|
+
[FABLE_51]: { ...CURRENT, canDisableThinking: false },
|
|
37
40
|
[FABLE]: { ...CURRENT, canDisableThinking: false },
|
|
38
41
|
// Thinking may be turned off, but only at effort `high` or below.
|
|
39
42
|
[OPUS]: { ...CURRENT, maxDisabledEffort: "high" },
|
|
@@ -106,6 +109,9 @@ export function thinkLevels(model) {
|
|
|
106
109
|
* a new prefix segment constantly. */
|
|
107
110
|
const CACHE_WRITE_MULTIPLIER = 1.25;
|
|
108
111
|
const PRICES = {
|
|
112
|
+
// A quarter of Fable 5's cache read at the same input and output rate: 2.5% of base
|
|
113
|
+
// input, where every other model on this surface reads back at 10%.
|
|
114
|
+
[FABLE_51]: { cacheHit: 0.25, cacheMiss: 10, output: 50, cacheWrite: 10 * CACHE_WRITE_MULTIPLIER },
|
|
109
115
|
[FABLE]: { cacheHit: 1, cacheMiss: 10, output: 50, cacheWrite: 10 * CACHE_WRITE_MULTIPLIER },
|
|
110
116
|
[OPUS]: { cacheHit: 0.5, cacheMiss: 5, output: 25, cacheWrite: 5 * CACHE_WRITE_MULTIPLIER },
|
|
111
117
|
[OPUS_48]: { cacheHit: 0.5, cacheMiss: 5, output: 25, cacheWrite: 5 * CACHE_WRITE_MULTIPLIER },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/drivers/anthropic/manifest.ts"],"names":[],"mappings":"AAyBA,MAAM,CAAC,MAAM,KAAK,GAAG,gBAAgB,CAAC;AACtC,MAAM,CAAC,MAAM,IAAI,GAAG,eAAe,CAAC;AACpC,MAAM,CAAC,MAAM,OAAO,GAAG,iBAAiB,CAAC;AACzC,MAAM,CAAC,MAAM,MAAM,GAAG,iBAAiB,CAAC;AACxC,MAAM,CAAC,MAAM,KAAK,GAAG,kBAAkB,CAAC;AAExC,uEAAuE;AACvE,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC;AAEpC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,MAAM,GAAkB;IACnC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,oCAAoC,EAAE;IAC3F,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,uCAAuC,EAAE;IAC1F,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,uCAAuC,EAAE;IAC/F,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/drivers/anthropic/manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@ export const MODELS = [
|
|
|
24
24
|
{ id: GLM_47_FLASHX, label: "GLM-4.7 FlashX", description: "very cheap and quick, for simple work" },
|
|
25
25
|
];
|
|
26
26
|
/**
|
|
27
|
-
* Whether a model takes the `reasoning_effort` dial.
|
|
27
|
+
* Whether a model takes the `reasoning_effort` dial. GLM-5.2 and both 5.3 models do; the rest
|
|
28
28
|
* have thinking as a plain on/off toggle, and sending them an effort would be a
|
|
29
29
|
* parameter they do not know.
|
|
30
30
|
*/
|
|
@@ -45,20 +45,22 @@ export function takesEffort(model) {
|
|
|
45
45
|
* a switch that is wired to the same place as the one above it.
|
|
46
46
|
*/
|
|
47
47
|
export function thinkLevels(model) {
|
|
48
|
-
//
|
|
49
|
-
// lightest rung is still thinking, so it is not labelled
|
|
50
|
-
|
|
48
|
+
// Both 5.3 models: three documented depths — `low`, `high` and `max` — and no way to
|
|
49
|
+
// answer without reasoning. The lightest rung is still thinking, so it is not labelled
|
|
50
|
+
// as though it skips it.
|
|
51
|
+
//
|
|
52
|
+
// Flash was offered the top rung alone, on the reading that it documented a single
|
|
53
|
+
// effort value. It documents the same three, and `max` is only what it falls back to
|
|
54
|
+
// when nothing is passed. A model with no way down reasons at its deepest setting for
|
|
55
|
+
// every step of every turn, including the ones that are a file read, and the user has
|
|
56
|
+
// nothing to turn.
|
|
57
|
+
if (alwaysThinks(model)) {
|
|
51
58
|
return [
|
|
52
59
|
{ label: "Light", description: "reasons briefly — fastest", thinking: true, effort: "low" },
|
|
53
60
|
{ label: "Thinking", description: "think first, then answer", thinking: true, effort: "high" },
|
|
54
61
|
{ label: "Maximum", description: "maximum reasoning budget", thinking: true, effort: "max" },
|
|
55
62
|
];
|
|
56
63
|
}
|
|
57
|
-
// GLM-5.3 Flash documents one effort value and no way to disable thinking, so it
|
|
58
|
-
// gets one honest rung rather than a menu of switches wired to the same place.
|
|
59
|
-
if (model === GLM_53_FLASH) {
|
|
60
|
-
return [{ label: "Thinking", description: "always reasons — this model cannot skip it", thinking: true, effort: "max" }];
|
|
61
|
-
}
|
|
62
64
|
if (takesEffort(model)) {
|
|
63
65
|
return [
|
|
64
66
|
{ label: "Standard", description: "answer directly — fastest", thinking: false, effort: "high" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/drivers/glm/manifest.ts"],"names":[],"mappings":"AA4BA,MAAM,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC;AAChC,MAAM,CAAC,MAAM,YAAY,GAAG,eAAe,CAAC;AAC5C,MAAM,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC;AAChC,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAC;AAC7B,MAAM,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC;AAChC,MAAM,CAAC,MAAM,aAAa,GAAG,gBAAgB,CAAC;AAE9C,uEAAuE;AACvE,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC;AAEpC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,MAAM,GAAkB;IACnC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,oDAAoD,EAAE;IACnG,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,+CAA+C,EAAE;IAC1G,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,8CAA8C,EAAE;IAC7F,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,+BAA+B,EAAE;IAC3E,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,gCAAgC,EAAE;IAC/E,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,uCAAuC,EAAE;CACrG,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,KAAK,KAAK,MAAM,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;AACjD,CAAC;AACD,sNAAsN,CAAA,MAAM,UAAU,YAAY,CAAC,KAAc,IAAc,OAAO,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,YAAY,CAAC,CAAA,CAAC;AAElU;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/drivers/glm/manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
export const MUSE_SPARK_13 = "muse-spark-1.3";
|
|
2
|
+
export const MUSE_SPARK_13_CONTRIBUTOR = "muse-spark-1.3-contributor";
|
|
1
3
|
export const MUSE_SPARK_12 = "muse-spark-1.2";
|
|
2
4
|
export const MUSE_SPARK_12_CONTRIBUTOR = "muse-spark-1.2-contributor";
|
|
3
5
|
/** The model used when nothing is saved and no env override is set. Standard
|
|
4
6
|
* tier, so no one is opted into sharing their data with anything but a choice. */
|
|
5
|
-
export const DEFAULT_MODEL =
|
|
7
|
+
export const DEFAULT_MODEL = MUSE_SPARK_13;
|
|
6
8
|
/**
|
|
7
9
|
* The models offered by `/model`. First entry is this provider's default, which is
|
|
8
10
|
* also where `/provider` lands when someone switches to Meta.
|
|
@@ -12,11 +14,17 @@ export const DEFAULT_MODEL = MUSE_SPARK_12;
|
|
|
12
14
|
* give up for that price. A model this consequential does not get a euphemism.
|
|
13
15
|
*/
|
|
14
16
|
export const MODELS = [
|
|
15
|
-
{ id:
|
|
17
|
+
{ id: MUSE_SPARK_13, label: "Muse Spark 1.3", description: "the default — your prompts stay yours" },
|
|
18
|
+
{
|
|
19
|
+
id: MUSE_SPARK_13_CONTRIBUTOR,
|
|
20
|
+
label: "Muse Spark 1.3 (Contributor)",
|
|
21
|
+
description: "~12x cheaper input — in exchange, Meta trains on your prompts and completions",
|
|
22
|
+
},
|
|
23
|
+
{ id: MUSE_SPARK_12, label: "Muse Spark 1.2", description: "the previous Spark, at the same rate" },
|
|
16
24
|
{
|
|
17
25
|
id: MUSE_SPARK_12_CONTRIBUTOR,
|
|
18
26
|
label: "Muse Spark 1.2 (Contributor)",
|
|
19
|
-
description: "
|
|
27
|
+
description: "the previous Spark, on the same data-for-price trade",
|
|
20
28
|
},
|
|
21
29
|
];
|
|
22
30
|
/**
|
|
@@ -36,6 +44,9 @@ export function thinkLevels(_model) {
|
|
|
36
44
|
* volume deal.
|
|
37
45
|
*/
|
|
38
46
|
const PRICES = {
|
|
47
|
+
// 1.3 ships at 1.2's rates, on both tiers.
|
|
48
|
+
[MUSE_SPARK_13]: { cacheHit: 0.15, cacheMiss: 1.25, output: 4.25 },
|
|
49
|
+
[MUSE_SPARK_13_CONTRIBUTOR]: { cacheHit: 0.002, cacheMiss: 0.1, output: 0.2 },
|
|
39
50
|
[MUSE_SPARK_12]: { cacheHit: 0.15, cacheMiss: 1.25, output: 4.25 },
|
|
40
51
|
[MUSE_SPARK_12_CONTRIBUTOR]: { cacheHit: 0.002, cacheMiss: 0.1, output: 0.2 },
|
|
41
52
|
};
|
|
@@ -44,7 +55,7 @@ export function price(model) {
|
|
|
44
55
|
return PRICES[model] ?? PRICES[DEFAULT_MODEL];
|
|
45
56
|
}
|
|
46
57
|
/**
|
|
47
|
-
* The model's USABLE context window.
|
|
58
|
+
* The model's USABLE context window. Every model here stores 1,048,576 tokens with no
|
|
48
59
|
* documented billing cliff inside it, unlike xAI's or Gemini's Pro tier — but on
|
|
49
60
|
* BYOK every token in the window is still the user's money on every turn, so this
|
|
50
61
|
* is the same 200K ceiling used elsewhere once a window is chosen for cost rather
|
|
@@ -76,7 +87,7 @@ const EFFORTS = ["high"];
|
|
|
76
87
|
/**
|
|
77
88
|
* Coerce a stored or unknown config onto a model this provider actually serves.
|
|
78
89
|
*
|
|
79
|
-
* There is no per-model rule to enforce:
|
|
90
|
+
* There is no per-model rule to enforce: no model here has a reasoning dial, so
|
|
80
91
|
* thinking is always false and the effort is inert filler, present only because
|
|
81
92
|
* the shared `ModelConfig` shape requires one.
|
|
82
93
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/drivers/meta/manifest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/drivers/meta/manifest.ts"],"names":[],"mappings":"AAwBA,MAAM,CAAC,MAAM,aAAa,GAAG,gBAAgB,CAAC;AAC9C,MAAM,CAAC,MAAM,yBAAyB,GAAG,4BAA4B,CAAC;AACtE,MAAM,CAAC,MAAM,aAAa,GAAG,gBAAgB,CAAC;AAC9C,MAAM,CAAC,MAAM,yBAAyB,GAAG,4BAA4B,CAAC;AAEtE;mFACmF;AACnF,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC;AAE3C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,MAAM,GAAkB;IACnC,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,uCAAuC,EAAE;IACpG;QACE,EAAE,EAAE,yBAAyB;QAC7B,KAAK,EAAE,8BAA8B;QACrC,WAAW,EAAE,+EAA+E;KAC7F;IACD,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,sCAAsC,EAAE;IACnG;QACE,EAAE,EAAE,yBAAyB;QAC7B,KAAK,EAAE,8BAA8B;QACrC,WAAW,EAAE,sDAAsD;KACpE;CACF,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,MAAe;IACzC,OAAO,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,kCAAkC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AACnH,CAAC;AAED;;;;GAIG;AACH,MAAM,MAAM,GAA+B;IACzC,2CAA2C;IAC3C,CAAC,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IAClE,CAAC,yBAAyB,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IAC7E,CAAC,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IAClE,CAAC,yBAAyB,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;CAC9E,CAAC;AAEF,+EAA+E;AAC/E,MAAM,UAAU,KAAK,CAAC,KAAc;IAClC,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,aAAa,CAAE,CAAC;AACjD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,MAAe;IAC3C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,CAAC;AAE5C,MAAM,UAAU,oBAAoB,CAAC,MAAe;IAClD,OAAO,sBAAsB,CAAC;AAChC,CAAC;AAED;;;;;;;GAOG;AAEH;+EAC+E;AAC/E,MAAM,OAAO,GAAa,CAAC,MAAM,CAAC,CAAC;AAEnC;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,MAAmB;IAC3C,MAAM,KAAK,GAAY,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC;IAC3E,MAAM,MAAM,GAAW,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAChF,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC5C,CAAC;AAED,iFAAiF;AACjF,MAAM,CAAC,MAAM,YAAY,GAAmB;IAC1C,EAAE,EAAE,MAAM;IACV,KAAK,EAAE,MAAM;IACb,SAAS,EAAE,eAAe;IAC1B,OAAO,EAAE,wDAAwD;IACjE,MAAM,EAAE,MAAM;IACd,WAAW;IACX,KAAK;IACL,aAAa;IACb,oBAAoB;IACpB,SAAS;CACV,CAAC"}
|
package/dist/drivers/registry.js
CHANGED
|
@@ -11,6 +11,7 @@ import { cerebrasManifest } from "./cerebras/manifest.js";
|
|
|
11
11
|
import { geminiManifest } from "./gemini/manifest.js";
|
|
12
12
|
import { metaManifest } from "./meta/manifest.js";
|
|
13
13
|
import { minimaxManifest } from "./minimax/manifest.js";
|
|
14
|
+
import { tencentManifest } from "./tencent/manifest.js";
|
|
14
15
|
/** Every provider's cheap metadata, in display order. Always loaded. */
|
|
15
16
|
const MANIFESTS = [
|
|
16
17
|
deepseekManifest,
|
|
@@ -26,6 +27,7 @@ const MANIFESTS = [
|
|
|
26
27
|
geminiManifest,
|
|
27
28
|
metaManifest,
|
|
28
29
|
minimaxManifest,
|
|
30
|
+
tencentManifest,
|
|
29
31
|
];
|
|
30
32
|
/** How to load each provider's wire code, on demand. Keyed by manifest id. */
|
|
31
33
|
const LOADERS = {
|
|
@@ -42,6 +44,7 @@ const LOADERS = {
|
|
|
42
44
|
gemini: async () => (await import("./gemini/index.js")).geminiDriver,
|
|
43
45
|
meta: async () => (await import("./meta/index.js")).metaDriver,
|
|
44
46
|
minimax: async () => (await import("./minimax/index.js")).minimaxDriver,
|
|
47
|
+
tencent: async () => (await import("./tencent/index.js")).tencentDriver,
|
|
45
48
|
};
|
|
46
49
|
/** The provider used when a model id doesn't match any other. */
|
|
47
50
|
const FALLBACK = MANIFESTS[0];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/drivers/registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/drivers/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { compatStreamTurn, compatToolTurn, standardCacheSplit } from "../openaiCompat/wire.js";
|
|
2
|
+
import { BUFFERED_OUTPUT_TOKENS, DEFAULT_MODEL } from "./manifest.js";
|
|
3
|
+
/**
|
|
4
|
+
* TokenHub's international endpoint. The mainland console serves the same weights
|
|
5
|
+
* under different model ids on a different host, so it is an override rather than a
|
|
6
|
+
* guess: a user on that account sets `MINDWEAVE_TENCENT_URL` and selects the id their
|
|
7
|
+
* own console lists.
|
|
8
|
+
*/
|
|
9
|
+
const BASE_URL = process.env.MINDWEAVE_TENCENT_URL ?? "https://tokenhub-intl.tencentcloudmaas.com/v1";
|
|
10
|
+
/**
|
|
11
|
+
* Tencent's reasoning fields.
|
|
12
|
+
*
|
|
13
|
+
* `thinking` is ALWAYS sent, both ways. The provider's default is enabled with an
|
|
14
|
+
* effort of `high`, so omitting the field does not mean "no thinking" — it means the
|
|
15
|
+
* model reasons and bills for it. Every internal call that never sets `req.model`
|
|
16
|
+
* (the session summarizer, the page distiller) would quietly pay for reasoning the UI
|
|
17
|
+
* discards.
|
|
18
|
+
*
|
|
19
|
+
* `reasoning_effort` rides along only when thinking is on, and only ever as `low` or
|
|
20
|
+
* `high`: those are the two values documented, and the manifest's ladder holds
|
|
21
|
+
* nothing else, so a config from another provider is already snapped to one of them
|
|
22
|
+
* before it reaches here.
|
|
23
|
+
*/
|
|
24
|
+
export function reasoningFields(config) {
|
|
25
|
+
const thinking = config?.thinking === true;
|
|
26
|
+
const fields = { thinking: { type: thinking ? "enabled" : "disabled" } };
|
|
27
|
+
if (thinking)
|
|
28
|
+
fields.reasoning_effort = config?.effort === "low" ? "low" : "high";
|
|
29
|
+
return fields;
|
|
30
|
+
}
|
|
31
|
+
export const tencentProvider = {
|
|
32
|
+
label: "Tencent",
|
|
33
|
+
baseUrl: BASE_URL,
|
|
34
|
+
apiKeyEnv: "TOKENHUB_API_KEY",
|
|
35
|
+
defaultModel: process.env.MINDWEAVE_MODEL ?? DEFAULT_MODEL,
|
|
36
|
+
reasoningFields,
|
|
37
|
+
// The OpenAI-standard `prompt_tokens_details.cached_tokens`, which this endpoint
|
|
38
|
+
// reports; no provider-specific reader is needed.
|
|
39
|
+
cacheSplit: standardCacheSplit,
|
|
40
|
+
// Must match the manifest's `bufferedOutputTokens`, which is what core reserves
|
|
41
|
+
// room for below the context window.
|
|
42
|
+
bufferedMaxTokens: BUFFERED_OUTPUT_TOKENS,
|
|
43
|
+
};
|
|
44
|
+
/** Ask the model for one turn. */
|
|
45
|
+
export async function toolTurn(req, options = {}) {
|
|
46
|
+
return compatToolTurn(tencentProvider, req, options.signal);
|
|
47
|
+
}
|
|
48
|
+
/** Ask the model for one turn, streaming deltas to `options.onEvent`. */
|
|
49
|
+
export async function streamTurn(req, options = {}) {
|
|
50
|
+
return compatStreamTurn(tencentProvider, req, options.onEvent, options.signal);
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/drivers/tencent/client.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,kBAAkB,EAAuB,MAAM,yBAAyB,CAAC;AACpH,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEtE;;;;;GAKG;AACH,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,+CAA+C,CAAC;AAEtG;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,eAAe,CAAC,MAA+B;IAC7D,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC3C,MAAM,MAAM,GAA4B,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC;IAClG,IAAI,QAAQ;QAAE,MAAM,CAAC,gBAAgB,GAAG,MAAM,EAAE,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAClF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAmB;IAC7C,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,QAAQ;IACjB,SAAS,EAAE,kBAAkB;IAC7B,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,aAAa;IAC1D,eAAe;IACf,iFAAiF;IACjF,kDAAkD;IAClD,UAAU,EAAE,kBAAkB;IAC9B,gFAAgF;IAChF,qCAAqC;IACrC,iBAAiB,EAAE,sBAAsB;CAC1C,CAAC;AAEF,kCAAkC;AAClC,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,GAAiB,EAAE,UAAuB,EAAE;IACzE,OAAO,cAAc,CAAC,eAAe,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AAC9D,CAAC;AAED,yEAAyE;AACzE,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAiB,EAAE,UAAyB,EAAE;IAC7E,OAAO,gBAAgB,CAAC,eAAe,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AACjF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/drivers/tencent/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,CAAC,MAAM,aAAa,GAAW;IACnC,GAAG,eAAe;IAClB,QAAQ;IACR,UAAU;CACX,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
export const HY4_PREVIEW = "hy4-preview";
|
|
2
|
+
export const HY3 = "hy3";
|
|
3
|
+
/** The model used when nothing is saved and no env override is set. */
|
|
4
|
+
export const DEFAULT_MODEL = HY3;
|
|
5
|
+
/**
|
|
6
|
+
* The models offered by `/model`. First entry is this provider's default, which is
|
|
7
|
+
* also where `/provider` lands when someone switches to Tencent.
|
|
8
|
+
*
|
|
9
|
+
* Hy3 leads rather than the newer model, and deliberately: hy4-preview is a preview
|
|
10
|
+
* that costs about six times as much per input token, and a provider whose default
|
|
11
|
+
* is the expensive preview picks a bill on the user's behalf. Both are listed; the
|
|
12
|
+
* choice is theirs to make.
|
|
13
|
+
*/
|
|
14
|
+
export const MODELS = [
|
|
15
|
+
{ id: HY3, label: "Hy3", description: "the value model — strong at code, 256K context" },
|
|
16
|
+
{ id: HY4_PREVIEW, label: "Hy4 Preview", description: "the newest, for agentic and long-context work" },
|
|
17
|
+
];
|
|
18
|
+
/**
|
|
19
|
+
* The reasoning levels offered by `/think`.
|
|
20
|
+
*
|
|
21
|
+
* Three rungs, and the lowest one genuinely stops the model reasoning: Tencent's API
|
|
22
|
+
* takes `thinking.type` `enabled`/`disabled` as well as `reasoning_effort` of `low`
|
|
23
|
+
* or `high`. There is no `max`, so none is offered — a rung wired to a value the
|
|
24
|
+
* provider does not accept is worse than no rung.
|
|
25
|
+
*/
|
|
26
|
+
export function thinkLevels(_model) {
|
|
27
|
+
return [
|
|
28
|
+
{ label: "Standard", description: "answer directly — fastest", thinking: false, effort: "high" },
|
|
29
|
+
{ label: "Light", description: "reasons briefly", thinking: true, effort: "low" },
|
|
30
|
+
{ label: "Thinking", description: "think first, then answer", thinking: true, effort: "high" },
|
|
31
|
+
];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* List prices (USD / 1M tokens), international endpoint.
|
|
35
|
+
*
|
|
36
|
+
* Cached input is billed at a quarter of fresh input on hy3 and at a twentieth on
|
|
37
|
+
* hy4-preview, which is why the two are carried separately rather than as one input
|
|
38
|
+
* rate — an agentic loop re-sends its prefix on every step, and on hy4-preview that
|
|
39
|
+
* difference is most of the bill.
|
|
40
|
+
*/
|
|
41
|
+
const PRICES = {
|
|
42
|
+
[HY3]: { cacheHit: 0.033, cacheMiss: 0.132, output: 0.528 },
|
|
43
|
+
[HY4_PREVIEW]: { cacheHit: 0.042, cacheMiss: 0.834, output: 2.501 },
|
|
44
|
+
};
|
|
45
|
+
/** Cache-aware list price for a model, falling back to the default model's. */
|
|
46
|
+
export function price(model) {
|
|
47
|
+
return PRICES[model] ?? PRICES[DEFAULT_MODEL];
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* The model's USABLE context window. Hy3 stores 256K and hy4-preview 1M, but this is
|
|
51
|
+
* deliberately the sharp window rather than the storage cap: on BYOK every token in
|
|
52
|
+
* the window is the user's money on every turn, so anchoring compaction at the cap
|
|
53
|
+
* would mean carrying an enormous prompt long after it stopped earning its cost.
|
|
54
|
+
* Same reasoning, and the same figure, as the other drivers.
|
|
55
|
+
*/
|
|
56
|
+
export function contextWindow(_model) {
|
|
57
|
+
return 200_000;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* The ceiling this driver puts on a single BUFFERED (non-streaming) call. Both models
|
|
61
|
+
* accept far more, but a non-streaming request that runs long risks an HTTP timeout,
|
|
62
|
+
* so the buffered path — core's small internal calls — is capped far lower.
|
|
63
|
+
* `client.ts` sends the same constant, and core reserves exactly this much room below
|
|
64
|
+
* the context window, so the request and the reservation cannot drift apart.
|
|
65
|
+
*/
|
|
66
|
+
export const BUFFERED_OUTPUT_TOKENS = 8_000;
|
|
67
|
+
export function bufferedOutputTokens(_model) {
|
|
68
|
+
return BUFFERED_OUTPUT_TOKENS;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Vision is deliberately NOT declared. Neither model is documented as taking image
|
|
72
|
+
* input on this endpoint, and the shared OpenAI-compatible wire layer never renders
|
|
73
|
+
* `ChatMessage.images` into the request body regardless. Declaring it would mean core
|
|
74
|
+
* attaching bytes this path silently never sends.
|
|
75
|
+
*/
|
|
76
|
+
/**
|
|
77
|
+
* Coerce a stored or unknown config onto a model this provider actually serves.
|
|
78
|
+
*
|
|
79
|
+
* The effort is snapped onto a rung the ladder above actually lists, which is what
|
|
80
|
+
* keeps the request legal: the shared `ModelConfig` carries five rungs and this
|
|
81
|
+
* provider accepts two, so a config arriving from another model must be brought down
|
|
82
|
+
* to one of them rather than sent as it stands.
|
|
83
|
+
*/
|
|
84
|
+
export function normalize(config) {
|
|
85
|
+
const model = PRICES[config.model] ? config.model : DEFAULT_MODEL;
|
|
86
|
+
const thinking = config.thinking === true;
|
|
87
|
+
return { model, thinking, effort: snapToOfferedRung(thinking, config.effort) };
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Move an effort onto the nearest rung the ladder offers. Ties break DOWNWARD: an
|
|
91
|
+
* unlisted setting resolves to the cheaper neighbour, because silently spending more
|
|
92
|
+
* of the user's money is the worse way to be wrong.
|
|
93
|
+
*/
|
|
94
|
+
function snapToOfferedRung(thinking, effort) {
|
|
95
|
+
const ladder = ["low", "medium", "high", "xhigh", "max"];
|
|
96
|
+
const offered = thinkLevels(DEFAULT_MODEL).filter((l) => l.thinking === thinking);
|
|
97
|
+
if (offered.some((l) => l.effort === effort))
|
|
98
|
+
return effort;
|
|
99
|
+
const want = ladder.indexOf(effort);
|
|
100
|
+
let best = offered[0];
|
|
101
|
+
for (const level of offered) {
|
|
102
|
+
const d = Math.abs(ladder.indexOf(level.effort) - want);
|
|
103
|
+
const bestD = Math.abs(ladder.indexOf(best.effort) - want);
|
|
104
|
+
if (d < bestD || (d === bestD && ladder.indexOf(level.effort) < ladder.indexOf(best.effort))) {
|
|
105
|
+
best = level;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return best.effort;
|
|
109
|
+
}
|
|
110
|
+
/** The cheap metadata half of this driver — see `index.ts` for the wire half. */
|
|
111
|
+
export const tencentManifest = {
|
|
112
|
+
id: "tencent",
|
|
113
|
+
label: "Tencent",
|
|
114
|
+
apiKeyEnv: "TOKENHUB_API_KEY",
|
|
115
|
+
keysUrl: "https://console.tencentcloud.com/tokenhub",
|
|
116
|
+
models: MODELS,
|
|
117
|
+
thinkLevels,
|
|
118
|
+
price,
|
|
119
|
+
contextWindow,
|
|
120
|
+
bufferedOutputTokens,
|
|
121
|
+
normalize,
|
|
122
|
+
};
|
|
123
|
+
//# sourceMappingURL=manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/drivers/tencent/manifest.ts"],"names":[],"mappings":"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"}
|