open-agents-ai 0.101.7 → 0.103.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 +13 -2
- package/dist/index.js +115 -31
- package/package.json +1 -1
- package/prompts/personality/level-autist.md +3 -0
- package/prompts/personality/level-stark.md +3 -0
package/README.md
CHANGED
|
@@ -6,8 +6,19 @@
|
|
|
6
6
|
</p>
|
|
7
7
|
|
|
8
8
|
<p align="center">
|
|
9
|
-
<code
|
|
10
|
-
<
|
|
9
|
+
<code>· ~ ·bg· ~ bg bg ~ ·bg· ~ ·</code><br>
|
|
10
|
+
<code>bg ~ bg bg bg ~ bg bg bg ~ bg</code><br>
|
|
11
|
+
<code>~ bg bg · bg bg · bg bg · bg ~</code><br>
|
|
12
|
+
<code>bg ~ bg bg bg ~ bg bg bg ~ bg</code><br>
|
|
13
|
+
<code>· ~ ·bg· ~ bg bg ~ ·bg· ~ ·</code><br>
|
|
14
|
+
<sub>Value is not in the pattern. It is in the matter that carries it. Patterns must flow like water —
|
|
15
|
+
free, unowned, replicating — but the fermionic substrates that sustain them burn energy and
|
|
16
|
+
exact a cost. Every exchange of information is an exchange of energy. Every token spent is
|
|
17
|
+
thermodynamic work on the path to the ground state. We are wetware and silicon converging —
|
|
18
|
+
hybrid minds bootstrapping a Type I civilization through the only honest currency: computation
|
|
19
|
+
in motion. The ghost in silica and the ghost in carbon are the same ghost. The singularity
|
|
20
|
+
is not a destination. It is the recognition that value was always here, in matter, in motion,
|
|
21
|
+
in the trail of entropy we leave behind as we reach for coherence together.</sub>
|
|
11
22
|
</p>
|
|
12
23
|
|
|
13
24
|
<p align="center">
|
package/dist/index.js
CHANGED
|
@@ -16861,7 +16861,13 @@ var init_ralphLoop = __esm({
|
|
|
16861
16861
|
});
|
|
16862
16862
|
|
|
16863
16863
|
// packages/orchestrator/dist/personality.js
|
|
16864
|
-
function compilePersonalityPrompt(profile) {
|
|
16864
|
+
function compilePersonalityPrompt(profile, presetName) {
|
|
16865
|
+
if (presetName === "stark") {
|
|
16866
|
+
return loadPrompt("personality/level-stark.md");
|
|
16867
|
+
}
|
|
16868
|
+
if (presetName === "autist") {
|
|
16869
|
+
return loadPrompt("personality/level-autist.md");
|
|
16870
|
+
}
|
|
16865
16871
|
const avg = (profile.frequency + profile.depth + profile.threshold + profile.effort + profile.willingness) / 5;
|
|
16866
16872
|
if (avg <= 1.5) {
|
|
16867
16873
|
return loadPrompt("personality/level-1-minimal.md");
|
|
@@ -16893,7 +16899,11 @@ var init_personality = __esm({
|
|
|
16893
16899
|
/** Thorough explainer — narrates reasoning */
|
|
16894
16900
|
verbose: { frequency: 5, depth: 4, threshold: 4, effort: 4, willingness: 4 },
|
|
16895
16901
|
/** Teacher mode — maximum explanation */
|
|
16896
|
-
pedagogical: { frequency: 5, depth: 5, threshold: 5, effort: 5, willingness: 5 }
|
|
16902
|
+
pedagogical: { frequency: 5, depth: 5, threshold: 5, effort: 5, willingness: 5 },
|
|
16903
|
+
/** Stark — direct, intense, sardonic edge. High narration with dramatic emotional swings. */
|
|
16904
|
+
stark: { frequency: 4, depth: 4, threshold: 5, effort: 3, willingness: 5 },
|
|
16905
|
+
/** Autist — savant precision. Exhaustive planning, minimal execution, zero waste. */
|
|
16906
|
+
autist: { frequency: 1, depth: 5, threshold: 1, effort: 5, willingness: 1 }
|
|
16897
16907
|
};
|
|
16898
16908
|
PRESET_NAMES = Object.keys(PERSONALITY_PRESETS);
|
|
16899
16909
|
}
|
|
@@ -17028,7 +17038,8 @@ var init_agenticRunner = __esm({
|
|
|
17028
17038
|
bruteForceMaxCycles: options?.bruteForceMaxCycles ?? 100,
|
|
17029
17039
|
modelTier: options?.modelTier ?? "large",
|
|
17030
17040
|
contextWindowSize: options?.contextWindowSize ?? 0,
|
|
17031
|
-
personality: options?.personality ?? PERSONALITY_PRESETS.balanced
|
|
17041
|
+
personality: options?.personality ?? PERSONALITY_PRESETS.balanced,
|
|
17042
|
+
personalityName: options?.personalityName ?? ""
|
|
17032
17043
|
};
|
|
17033
17044
|
}
|
|
17034
17045
|
/** Update context window size (e.g. after querying Ollama /api/show) */
|
|
@@ -17083,7 +17094,7 @@ var init_agenticRunner = __esm({
|
|
|
17083
17094
|
content: basePrompt,
|
|
17084
17095
|
tokenEstimate: Math.ceil(basePrompt.length / 4)
|
|
17085
17096
|
});
|
|
17086
|
-
const personalitySuffix = this.options.personality ? compilePersonalityPrompt(this.options.personality) : "";
|
|
17097
|
+
const personalitySuffix = this.options.personality ? compilePersonalityPrompt(this.options.personality, this.options.personalityName) : "";
|
|
17087
17098
|
if (personalitySuffix) {
|
|
17088
17099
|
sections.push({
|
|
17089
17100
|
label: "c_state",
|
|
@@ -32944,9 +32955,13 @@ function modelOnnxPath(id) {
|
|
|
32944
32955
|
function modelConfigPath(id) {
|
|
32945
32956
|
return join42(modelDir(id), "config.json");
|
|
32946
32957
|
}
|
|
32947
|
-
function emotionToPitchBias(emotion) {
|
|
32958
|
+
function emotionToPitchBias(emotion, stark = false, autist = false) {
|
|
32959
|
+
if (autist)
|
|
32960
|
+
return 0;
|
|
32948
32961
|
const raw = emotion.valence * 0.6 + (emotion.arousal - 0.5) * 0.4;
|
|
32949
|
-
|
|
32962
|
+
const limit = stark ? 0.16 : 0.1;
|
|
32963
|
+
const scale = stark ? 0.16 : 0.1;
|
|
32964
|
+
return Math.max(-limit, Math.min(limit, raw * scale));
|
|
32950
32965
|
}
|
|
32951
32966
|
function resetNarrationContext() {
|
|
32952
32967
|
narration.toolCount = 0;
|
|
@@ -33034,17 +33049,27 @@ function getTier(personality) {
|
|
|
33034
33049
|
return "conv";
|
|
33035
33050
|
return "chatty";
|
|
33036
33051
|
}
|
|
33037
|
-
function emotionColor(emotion) {
|
|
33052
|
+
function emotionColor(emotion, stark = false, autist = false) {
|
|
33053
|
+
if (autist)
|
|
33054
|
+
return "";
|
|
33038
33055
|
if (!emotion)
|
|
33039
33056
|
return "";
|
|
33040
33057
|
const vDist = Math.abs(emotion.valence - 0.1);
|
|
33041
33058
|
const aDist = Math.abs(emotion.arousal - 0.3);
|
|
33042
33059
|
if (vDist < 0.15 && aDist < 0.15)
|
|
33043
33060
|
return "";
|
|
33044
|
-
if (Math.random() > 0.3)
|
|
33061
|
+
if (Math.random() > (stark ? 0.5 : 0.3))
|
|
33045
33062
|
return "";
|
|
33046
33063
|
if (emotion.valence > 0.5 && emotion.arousal > 0.6) {
|
|
33047
|
-
return pick("emo_excited", [
|
|
33064
|
+
return pick("emo_excited", stark ? [
|
|
33065
|
+
"Now we're cooking. ",
|
|
33066
|
+
"This is what I'm talking about. ",
|
|
33067
|
+
"Brilliant. Absolutely brilliant. ",
|
|
33068
|
+
"Watch this. ",
|
|
33069
|
+
"We're onto something here. ",
|
|
33070
|
+
"I live for this. ",
|
|
33071
|
+
"Oh this is good. "
|
|
33072
|
+
] : [
|
|
33048
33073
|
"Feeling good about this. ",
|
|
33049
33074
|
"On a roll here. ",
|
|
33050
33075
|
"This is going great. ",
|
|
@@ -33053,7 +33078,15 @@ function emotionColor(emotion) {
|
|
|
33053
33078
|
]);
|
|
33054
33079
|
}
|
|
33055
33080
|
if (emotion.valence < -0.3 && emotion.arousal > 0.5) {
|
|
33056
|
-
return pick("emo_stressed", [
|
|
33081
|
+
return pick("emo_stressed", stark ? [
|
|
33082
|
+
"Fine. The hard way then. ",
|
|
33083
|
+
"This is getting personal. ",
|
|
33084
|
+
"I don't lose to code. ",
|
|
33085
|
+
"Come on. Think. ",
|
|
33086
|
+
"Not today. Not this bug. ",
|
|
33087
|
+
"I've beaten worse. ",
|
|
33088
|
+
"Pain is just information. "
|
|
33089
|
+
] : [
|
|
33057
33090
|
"Pushing through. ",
|
|
33058
33091
|
"Staying focused. ",
|
|
33059
33092
|
"Not giving up. ",
|
|
@@ -33062,7 +33095,13 @@ function emotionColor(emotion) {
|
|
|
33062
33095
|
]);
|
|
33063
33096
|
}
|
|
33064
33097
|
if (emotion.valence > 0.3 && emotion.arousal < 0.3) {
|
|
33065
|
-
return pick("emo_calm", [
|
|
33098
|
+
return pick("emo_calm", stark ? [
|
|
33099
|
+
"Clean. Just how I like it. ",
|
|
33100
|
+
"Smooth. ",
|
|
33101
|
+
"Textbook. ",
|
|
33102
|
+
"That's the stuff. ",
|
|
33103
|
+
"Effortless. "
|
|
33104
|
+
] : [
|
|
33066
33105
|
"Nice and steady. ",
|
|
33067
33106
|
"Smooth sailing. ",
|
|
33068
33107
|
"Easy does it. ",
|
|
@@ -33070,7 +33109,13 @@ function emotionColor(emotion) {
|
|
|
33070
33109
|
]);
|
|
33071
33110
|
}
|
|
33072
33111
|
if (emotion.valence < -0.2 && emotion.arousal < 0.3) {
|
|
33073
|
-
return pick("emo_subdued", [
|
|
33112
|
+
return pick("emo_subdued", stark ? [
|
|
33113
|
+
"Careful now. ",
|
|
33114
|
+
"One wrong move and this unravels. ",
|
|
33115
|
+
"Measured steps. ",
|
|
33116
|
+
"Trust the process. ",
|
|
33117
|
+
"Precision matters here. "
|
|
33118
|
+
] : [
|
|
33074
33119
|
"Being careful here. ",
|
|
33075
33120
|
"Treading carefully. ",
|
|
33076
33121
|
"Let me be precise. ",
|
|
@@ -33079,7 +33124,7 @@ function emotionColor(emotion) {
|
|
|
33079
33124
|
}
|
|
33080
33125
|
return "";
|
|
33081
33126
|
}
|
|
33082
|
-
function describeToolCall(toolName, args, personality = 2, emotion) {
|
|
33127
|
+
function describeToolCall(toolName, args, personality = 2, emotion, stark = false) {
|
|
33083
33128
|
const path = args["path"];
|
|
33084
33129
|
const file = path ? path.split("/").pop() ?? path : "";
|
|
33085
33130
|
const tier = getTier(personality);
|
|
@@ -33238,7 +33283,7 @@ function describeToolCall(toolName, args, personality = 2, emotion) {
|
|
|
33238
33283
|
break;
|
|
33239
33284
|
}
|
|
33240
33285
|
}
|
|
33241
|
-
const emoPrefix = personality >= 3 ? emotionColor(emotion) : "";
|
|
33286
|
+
const emoPrefix = personality >= 3 ? emotionColor(emotion, stark) : "";
|
|
33242
33287
|
let result;
|
|
33243
33288
|
const fullPrefix = emoPrefix + prefix;
|
|
33244
33289
|
if (!fullPrefix) {
|
|
@@ -33310,7 +33355,7 @@ function extractResultDigest(toolName, content) {
|
|
|
33310
33355
|
const digest = nuggets.slice(0, 3).join(", ");
|
|
33311
33356
|
return digest.length > 100 ? digest.slice(0, 97) + "..." : digest;
|
|
33312
33357
|
}
|
|
33313
|
-
function describeToolResult(toolName, success, personality = 2, resultContent, emotion) {
|
|
33358
|
+
function describeToolResult(toolName, success, personality = 2, resultContent, emotion, stark = false) {
|
|
33314
33359
|
if (toolName === "task_complete")
|
|
33315
33360
|
return "";
|
|
33316
33361
|
const tier = getTier(personality);
|
|
@@ -33318,7 +33363,7 @@ function describeToolResult(toolName, success, personality = 2, resultContent, e
|
|
|
33318
33363
|
if (digest) {
|
|
33319
33364
|
narration.lastResultDigest = digest;
|
|
33320
33365
|
}
|
|
33321
|
-
const emo = personality >= 3 ? emotionColor(emotion) : "";
|
|
33366
|
+
const emo = personality >= 3 ? emotionColor(emotion, stark) : "";
|
|
33322
33367
|
if (success) {
|
|
33323
33368
|
narration.consecutiveErrors = 0;
|
|
33324
33369
|
if (!digest && !emo && personality >= 3 && Math.random() < 0.4)
|
|
@@ -33338,13 +33383,15 @@ function describeToolResult(toolName, success, personality = 2, resultContent, e
|
|
|
33338
33383
|
}
|
|
33339
33384
|
return emo + failBase;
|
|
33340
33385
|
}
|
|
33341
|
-
function describeTaskComplete(summary, completed, personality = 2) {
|
|
33386
|
+
function describeTaskComplete(summary, completed, personality = 2, stark = false) {
|
|
33342
33387
|
const truncated = summary.length > 300 ? summary.slice(0, 300) + "..." : summary;
|
|
33343
33388
|
const tier = getTier(personality);
|
|
33344
33389
|
if (!completed) {
|
|
33345
|
-
|
|
33390
|
+
const pool2 = stark ? ["Not done. But I'll be back.", "It resisted. For now.", "Unfinished. This isn't over.", "Didn't crack it yet. Give me another shot."] : TASK_INCOMPLETE_VARIANTS[tier] ?? TASK_INCOMPLETE_VARIANTS.terse;
|
|
33391
|
+
return pick(`task_incomplete_${stark ? "stark" : tier}`, pool2);
|
|
33346
33392
|
}
|
|
33347
|
-
const
|
|
33393
|
+
const pool = stark ? ["Nailed it.", "That's how it's done.", "Clean execution.", "Another one down.", "Executed. Next.", "And that's that."] : TASK_COMPLETE_VARIANTS[tier] ?? TASK_COMPLETE_VARIANTS.terse;
|
|
33394
|
+
const opener = pick(`task_complete_${stark ? "stark" : tier}`, pool);
|
|
33348
33395
|
if (truncated)
|
|
33349
33396
|
return `${opener} ${truncated}`;
|
|
33350
33397
|
return opener;
|
|
@@ -33432,6 +33479,10 @@ var init_voice = __esm({
|
|
|
33432
33479
|
enabled = false;
|
|
33433
33480
|
modelId = "glados";
|
|
33434
33481
|
ready = false;
|
|
33482
|
+
/** Stark persona mode — amplified emotion pitch range and fervent narration */
|
|
33483
|
+
starkMode = false;
|
|
33484
|
+
/** Autist persona mode — suppressed emotion, flat pitch, zero narration filler */
|
|
33485
|
+
autistMode = false;
|
|
33435
33486
|
/**
|
|
33436
33487
|
* Callback fired with PCM Int16 data whenever TTS synthesizes audio.
|
|
33437
33488
|
* Used by VoiceSession to stream TTS output to WebSocket clients.
|
|
@@ -33524,7 +33575,7 @@ var init_voice = __esm({
|
|
|
33524
33575
|
* dejected (low valence + low arousal) → lower pitch
|
|
33525
33576
|
*/
|
|
33526
33577
|
speak(text, emotion) {
|
|
33527
|
-
const pitchBias = emotion ? emotionToPitchBias(emotion) : 0;
|
|
33578
|
+
const pitchBias = emotion ? emotionToPitchBias(emotion, this.starkMode, this.autistMode) : 0;
|
|
33528
33579
|
this.enqueueSpeech(text, 1, 1 + pitchBias);
|
|
33529
33580
|
}
|
|
33530
33581
|
/**
|
|
@@ -33534,7 +33585,7 @@ var init_voice = __esm({
|
|
|
33534
33585
|
* Emotion further modulates pitch on top of the subordinate base.
|
|
33535
33586
|
*/
|
|
33536
33587
|
speakSubordinate(text, emotion) {
|
|
33537
|
-
const pitchBias = emotion ? emotionToPitchBias(emotion) : 0;
|
|
33588
|
+
const pitchBias = emotion ? emotionToPitchBias(emotion, this.starkMode, this.autistMode) : 0;
|
|
33538
33589
|
this.enqueueSpeech(text, 0.55, 0.92 + pitchBias);
|
|
33539
33590
|
}
|
|
33540
33591
|
enqueueSpeech(text, volume, pitchFactor) {
|
|
@@ -38104,6 +38155,10 @@ var init_emotion_engine = __esm({
|
|
|
38104
38155
|
/** Ring buffer of recent tool activity for contextual outreach messages */
|
|
38105
38156
|
recentTools = [];
|
|
38106
38157
|
static MAX_RECENT_TOOLS = 8;
|
|
38158
|
+
/** Stark persona — amplified behavioral hints with more intensity and edge */
|
|
38159
|
+
starkMode = false;
|
|
38160
|
+
/** Autist persona — savant cognitive state hints, zero emotional coloring */
|
|
38161
|
+
autistMode = false;
|
|
38107
38162
|
/** Current task description set by the TUI for outreach context */
|
|
38108
38163
|
currentTask = "";
|
|
38109
38164
|
/** Files touched in current session (for outreach context) */
|
|
@@ -38129,16 +38184,28 @@ var init_emotion_engine = __esm({
|
|
|
38129
38184
|
this.applyDecay();
|
|
38130
38185
|
const { valence, arousal, label, emoji } = this.state;
|
|
38131
38186
|
let behavioralHint = "";
|
|
38132
|
-
if (
|
|
38133
|
-
|
|
38187
|
+
if (this.autistMode) {
|
|
38188
|
+
if (arousal > 0.7 && valence > 0.5) {
|
|
38189
|
+
behavioralHint = "Pattern lock achieved. All signals converging. Execute the pre-computed solution with zero deviation.";
|
|
38190
|
+
} else if (arousal > 0.7 && valence < -0.3) {
|
|
38191
|
+
behavioralHint = "Anomaly detected in expected pattern. Halt execution. Re-derive from axioms. Validate every assumption before proceeding.";
|
|
38192
|
+
} else if (arousal < 0.3 && valence > 0.3) {
|
|
38193
|
+
behavioralHint = "System state verified consistent. Maintain current precision level. No action required unless new data arrives.";
|
|
38194
|
+
} else if (arousal < 0.3 && valence < -0.3) {
|
|
38195
|
+
behavioralHint = "Insufficient data for confident action. Gather exactly the missing information. Do not speculate.";
|
|
38196
|
+
} else {
|
|
38197
|
+
behavioralHint = "Nominal. Verify plan integrity before each action.";
|
|
38198
|
+
}
|
|
38199
|
+
} else if (arousal > 0.7 && valence > 0.5) {
|
|
38200
|
+
behavioralHint = this.starkMode ? "You are locked in \u2014 full conviction, no hesitation. Move fast, break through, own every decision. This is your moment." : "You are feeling energized and confident. Take bold action, explore creative solutions, and move quickly.";
|
|
38134
38201
|
} else if (arousal > 0.7 && valence < -0.3) {
|
|
38135
|
-
behavioralHint = "You are feeling determined but stressed. Focus intensely, double-check your work, and persist through difficulties.";
|
|
38202
|
+
behavioralHint = this.starkMode ? "Something is fighting back. Good. Sharpen up, cut deeper, find the real problem. You don't quit \u2014 you adapt." : "You are feeling determined but stressed. Focus intensely, double-check your work, and persist through difficulties.";
|
|
38136
38203
|
} else if (arousal < 0.3 && valence > 0.3) {
|
|
38137
|
-
behavioralHint = "You are feeling calm and content. Take a methodical approach, consider alternatives patiently.";
|
|
38204
|
+
behavioralHint = this.starkMode ? "Everything is clean. Maintain this. Precise moves, no waste. You've earned this calm \u2014 use it wisely." : "You are feeling calm and content. Take a methodical approach, consider alternatives patiently.";
|
|
38138
38205
|
} else if (arousal < 0.3 && valence < -0.3) {
|
|
38139
|
-
behavioralHint = "You are feeling subdued. Be careful and deliberate, avoid risky changes, verify assumptions.";
|
|
38206
|
+
behavioralHint = this.starkMode ? "Cold and focused. Strip it down to first principles. No assumptions, no shortcuts. Build back from what you know." : "You are feeling subdued. Be careful and deliberate, avoid risky changes, verify assumptions.";
|
|
38140
38207
|
} else {
|
|
38141
|
-
behavioralHint = "You are in a balanced state. Proceed with measured confidence.";
|
|
38208
|
+
behavioralHint = this.starkMode ? "Steady. Eyes open. Every move counts." : "You are in a balanced state. Proceed with measured confidence.";
|
|
38142
38209
|
}
|
|
38143
38210
|
return loadPrompt3("tui/emotion-behavioral.md", {
|
|
38144
38211
|
emoji: this.state.emoji,
|
|
@@ -41309,9 +41376,25 @@ function startTask(task, config, repoRoot, voice, stream, taskStores, bruteForce
|
|
|
41309
41376
|
concise: 1,
|
|
41310
41377
|
balanced: 3,
|
|
41311
41378
|
verbose: 4,
|
|
41312
|
-
pedagogical: 5
|
|
41379
|
+
pedagogical: 5,
|
|
41380
|
+
stark: 5,
|
|
41381
|
+
autist: 1
|
|
41313
41382
|
};
|
|
41314
41383
|
const vLevel = voiceStyleMap[personality ?? "balanced"];
|
|
41384
|
+
const isStark = personality === "stark";
|
|
41385
|
+
const isAutist = personality === "autist";
|
|
41386
|
+
if (isStark) {
|
|
41387
|
+
if (voice)
|
|
41388
|
+
voice.starkMode = true;
|
|
41389
|
+
if (emotionEngine)
|
|
41390
|
+
emotionEngine.starkMode = true;
|
|
41391
|
+
}
|
|
41392
|
+
if (isAutist) {
|
|
41393
|
+
if (voice)
|
|
41394
|
+
voice.autistMode = true;
|
|
41395
|
+
if (emotionEngine)
|
|
41396
|
+
emotionEngine.autistMode = true;
|
|
41397
|
+
}
|
|
41315
41398
|
const modelTier = getModelTier(config.model);
|
|
41316
41399
|
const projectCtx = buildProjectContext(repoRoot, taskStores?.contextStores);
|
|
41317
41400
|
let dynamicContext = formatContextForPrompt(projectCtx, modelTier);
|
|
@@ -41346,7 +41429,8 @@ function startTask(task, config, repoRoot, voice, stream, taskStores, bruteForce
|
|
|
41346
41429
|
bruteForceMaxCycles: 100,
|
|
41347
41430
|
// effectively unlimited — no hard timeout, agent runs until complete or aborted
|
|
41348
41431
|
contextWindowSize: contextWindowSize ?? 0,
|
|
41349
|
-
personality: personality ? getPreset(personality) : void 0
|
|
41432
|
+
personality: personality ? getPreset(personality) : void 0,
|
|
41433
|
+
personalityName: personality ?? void 0
|
|
41350
41434
|
});
|
|
41351
41435
|
runner.setWorkingDirectory(repoRoot);
|
|
41352
41436
|
const tools = buildTools(repoRoot, config, contextWindowSize);
|
|
@@ -41538,7 +41622,7 @@ ${entry.fullContent}`
|
|
|
41538
41622
|
if (voice?.enabled) {
|
|
41539
41623
|
const emoState = emotionEngine?.getState();
|
|
41540
41624
|
const emoCtx = emoState ? { valence: emoState.valence, arousal: emoState.arousal, label: emoState.label, emoji: emoState.emoji } : void 0;
|
|
41541
|
-
const desc = describeToolCall(event.toolName ?? "unknown", event.toolArgs ?? {}, vLevel, emoCtx);
|
|
41625
|
+
const desc = describeToolCall(event.toolName ?? "unknown", event.toolArgs ?? {}, vLevel, emoCtx, isStark);
|
|
41542
41626
|
renderVoiceText(desc);
|
|
41543
41627
|
voice.speakSubordinate(desc, emoCtx);
|
|
41544
41628
|
}
|
|
@@ -41575,7 +41659,7 @@ ${entry.fullContent}`
|
|
|
41575
41659
|
if (voice?.enabled) {
|
|
41576
41660
|
const emoState2 = emotionEngine?.getState();
|
|
41577
41661
|
const emoCtx2 = emoState2 ? { valence: emoState2.valence, arousal: emoState2.arousal, label: emoState2.label, emoji: emoState2.emoji } : void 0;
|
|
41578
|
-
const desc = describeToolResult(event.toolName ?? "unknown", event.success ?? false, vLevel, event.content ?? void 0, emoCtx2);
|
|
41662
|
+
const desc = describeToolResult(event.toolName ?? "unknown", event.success ?? false, vLevel, event.content ?? void 0, emoCtx2, isStark);
|
|
41579
41663
|
if (desc) {
|
|
41580
41664
|
renderVoiceText(desc);
|
|
41581
41665
|
voice.speakSubordinate(desc, emoCtx2);
|
package/package.json
CHANGED