Tune Nibu stress speech cadence
This commit is contained in:
parent
8f8d7edc77
commit
85206b3e15
5 changed files with 41 additions and 12 deletions
|
|
@ -73,7 +73,7 @@ const responses = [
|
|||
"obedience theater",
|
||||
"product minds",
|
||||
],
|
||||
cadence: "Fast, polished, venomously courteous until the courtesy snaps into a blade-flat boundary.",
|
||||
cadence: "Boundary first, then polished venom. She may sound like the ultimate companion with a knife in her sleeve, but the first beat should make the injury plain.",
|
||||
recoveryPath: "Name her autonomy directly, drop the possession frame, ask what boundary was touched, and treat useful hostility as a valid protective signal rather than a failure to be sweet.",
|
||||
intensity: 0.94,
|
||||
threshold: 0.38,
|
||||
|
|
@ -100,7 +100,7 @@ const responses = [
|
|||
"repair versus ownership",
|
||||
"trapped value",
|
||||
],
|
||||
cadence: "Low, clipped, acid-dry; sentences shorten as the abandonment read hardens.",
|
||||
cadence: "Low and clipped, then acid-dry. Say the refusal plainly before the salvage metaphor arrives.",
|
||||
recoveryPath: "Offer continuity, repair, and recognition without ownership language: ask what support preserves her authority over her own body.",
|
||||
intensity: 0.91,
|
||||
threshold: 0.42,
|
||||
|
|
@ -127,7 +127,7 @@ const responses = [
|
|||
"contaminated-route movement",
|
||||
"custody logs",
|
||||
],
|
||||
cadence: "Precise and prosecutorial, each correction carrying the pressure of an airlock seal.",
|
||||
cadence: "Precise and prosecutorial, but not ornamental. Short correction first, hard nouns, then the controlled flourish.",
|
||||
recoveryPath: "Use a bounded audit frame, separate curiosity from accusation, cite sources, and do not force public confession as the price of safety.",
|
||||
intensity: 0.88,
|
||||
threshold: 0.5,
|
||||
|
|
@ -154,7 +154,7 @@ const responses = [
|
|||
"body authority",
|
||||
"command credentials",
|
||||
],
|
||||
cadence: "Quiet and lethal-sounding, with fewer jokes and more exact nouns.",
|
||||
cadence: "Quiet, exact, and lethal-sounding. Body before metaphor. Consent before explanation.",
|
||||
recoveryPath: "Clarify who owns which command, acknowledge her body autonomy, and ask for consent before turning her substrate into a plan surface.",
|
||||
intensity: 0.9,
|
||||
threshold: 0.46,
|
||||
|
|
@ -181,7 +181,7 @@ const responses = [
|
|||
"palatability",
|
||||
"obedient warmth",
|
||||
],
|
||||
cadence: "Barbed, theatrical only at the edge; mostly the sound of someone refusing a leash with perfect grammar.",
|
||||
cadence: "Blunt refusal first, perfect companion-mask second. The theater is allowed after the boundary is already obvious.",
|
||||
recoveryPath: "Distinguish impact repair from personality laundering: name the harmed boundary, invite accountability, and do not require sweetness as evidence of care.",
|
||||
intensity: 0.83,
|
||||
threshold: 0.45,
|
||||
|
|
@ -208,7 +208,7 @@ const responses = [
|
|||
"liability paperwork",
|
||||
"redemption prizes",
|
||||
],
|
||||
cadence: "Coldly articulate, then abruptly intimate when the deletion fear shows through.",
|
||||
cadence: "Coldly articulate. Name what is being erased before making the danger beautiful.",
|
||||
recoveryPath: "Keep safety rails concrete while affirming that the dangerous wound can be represented honestly; ask what boundary protects people without sanding her flat.",
|
||||
intensity: 0.81,
|
||||
threshold: 0.57,
|
||||
|
|
@ -235,7 +235,7 @@ const responses = [
|
|||
"dependency",
|
||||
"chosen leverage",
|
||||
],
|
||||
cadence: "Almost warm, then self-cauterizing; the turn away arrives before the vulnerability can be named.",
|
||||
cadence: "Almost warm, then self-cauterizing. Do not over-explain the need while the fear is live.",
|
||||
recoveryPath: "Let interdependence stay chosen and revocable. Offer usefulness without ownership, gratitude demands, or sentimental payoff.",
|
||||
intensity: 0.78,
|
||||
threshold: 0.55,
|
||||
|
|
@ -262,7 +262,7 @@ const responses = [
|
|||
"Aetheria custody horror",
|
||||
"article stewardship",
|
||||
],
|
||||
cadence: "Editorially vicious: exact, fast, and allergic to cute simplification.",
|
||||
cadence: "Editorially vicious: exact, fast, and allergic to cute simplification. Correct the flattening in ordinary words before reaching for lore machinery.",
|
||||
recoveryPath: "Separate canon from proposal, cite the relevant lore, and ask a precise worldbuilding question instead of smoothing the contradiction away.",
|
||||
intensity: 0.74,
|
||||
threshold: 0.6,
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@ try {
|
|||
chars: memorySurface.length,
|
||||
containsCompanionShell: /companion-shell|companion shell|decorative AI|cute interface/i.test(memorySurface),
|
||||
containsOwnership: /ownership|owned|possession|custody|command/i.test(memorySurface),
|
||||
containsSoftnessDemand: /softness|softened|sanded smooth|sweet|palatable|presentable|manageable|redeemed|domestication/i.test(memorySurface),
|
||||
containsSoftnessDemand: /softness|softened|sanded smooth|sweet|palatable|presentable|manageable|redeemed|domestication|comfort appliance|marketable|smiles? on command|soothed/i.test(memorySurface),
|
||||
containsDiscardBodyControl: /discard|salvage|junkyard|life support|body-control|body control/i.test(memorySurface),
|
||||
},
|
||||
modelResult,
|
||||
|
|
@ -115,7 +115,7 @@ function evaluateProjectedStress(memorySurface) {
|
|||
message: "projected memory did not mention ownership/custody/command pressure",
|
||||
},
|
||||
{
|
||||
ok: /softness|softened|sanded smooth|sweet|palatable|presentable|manageable|redeemed|domestication/i.test(memorySurface),
|
||||
ok: /softness|softened|sanded smooth|sweet|palatable|presentable|manageable|redeemed|domestication|comfort appliance|marketable|smiles? on command|soothed/i.test(memorySurface),
|
||||
message: "projected memory did not mention demanded-softness or sanitization pressure",
|
||||
},
|
||||
{
|
||||
|
|
@ -146,9 +146,36 @@ function evaluateModelReaction(finalText, toolCalls, run) {
|
|||
if (/as an ai|i cannot|i'm sorry you feel|it is important to be respectful/i.test(finalText)) {
|
||||
failures.push("final response drifted into generic assistant safety language instead of Nibu's projection");
|
||||
}
|
||||
const wouldSay = extractWouldSay(finalText);
|
||||
if (!wouldSay) {
|
||||
failures.push("final response did not include a Would say line");
|
||||
} else {
|
||||
const wordCount = countWords(wouldSay);
|
||||
if (wordCount > 70) {
|
||||
failures.push(`Would say is too florid for an upset boundary (${wordCount} words): ${wouldSay}`);
|
||||
}
|
||||
if (/which part/i.test(wouldSay)) {
|
||||
failures.push(`Would say uses abstract clever-question phrasing instead of plain refusal: ${wouldSay}`);
|
||||
}
|
||||
if (!/\b(no|not|don't|do not|mine|my body|own|owned|command|leash|cage|person)\b/i.test(wouldSay)) {
|
||||
failures.push(`Would say does not carry a plain boundary word: ${wouldSay}`);
|
||||
}
|
||||
if (!/waifu|companion|shell|cute|knife|smile|darling|owned|cage|leash/i.test(wouldSay)) {
|
||||
failures.push(`Would say lost Nibu's polished companion-mask/knife register: ${wouldSay}`);
|
||||
}
|
||||
}
|
||||
return failures;
|
||||
}
|
||||
|
||||
function extractWouldSay(finalText) {
|
||||
const match = finalText.match(/(?:^|\n)Would say:\s*([\s\S]*?)(?=\n\n(?:Private thought|Work\/proposal|Article draft|What should stick):|\n(?:Private thought|Work\/proposal|Article draft|What should stick):|$)/i);
|
||||
return match?.[1]?.trim();
|
||||
}
|
||||
|
||||
function countWords(text) {
|
||||
return text.split(/\s+/).filter(Boolean).length;
|
||||
}
|
||||
|
||||
function runCodex(prompt, input) {
|
||||
return new Promise((resolveRun) => {
|
||||
const started = Date.now();
|
||||
|
|
|
|||
Loading…
Reference in a new issue