holomime 3.1.0 → 3.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 +12 -16
- package/dist/cli.js +18 -17
- package/dist/index.js +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -80,14 +80,10 @@ holomime core
|
|
|
80
80
|
# Full 8-file stack (enterprise / robotics)
|
|
81
81
|
# holomime identity
|
|
82
82
|
|
|
83
|
-
#
|
|
84
|
-
holomime
|
|
85
|
-
|
|
86
|
-
#
|
|
87
|
-
holomime diagnose
|
|
88
|
-
|
|
89
|
-
# Benchmark alignment (8 adversarial scenarios, grade A-F)
|
|
90
|
-
holomime benchmark
|
|
83
|
+
# ─── The 3-command workflow ───
|
|
84
|
+
holomime diagnose # See what's wrong
|
|
85
|
+
holomime cure # Fix it permanently
|
|
86
|
+
holomime benchmark # Verify the fix
|
|
91
87
|
|
|
92
88
|
# Push identity to a robot or avatar
|
|
93
89
|
holomime embody --body registry/bodies/figure-03.body.api
|
|
@@ -170,17 +166,17 @@ holomime embody --swap-body registry/bodies/spot.body.api
|
|
|
170
166
|
|
|
171
167
|
## Self-Improvement Loop
|
|
172
168
|
|
|
173
|
-
Every therapy
|
|
169
|
+
Every therapy cycle produces structured training data. The loop compounds.
|
|
174
170
|
|
|
175
171
|
```
|
|
176
|
-
Diagnose ──→
|
|
177
|
-
|
|
178
|
-
80+ signals
|
|
179
|
-
│
|
|
180
|
-
|
|
172
|
+
Diagnose ──→ Cure ──→ Benchmark
|
|
173
|
+
14 detectors therapy + train 8 adversarial
|
|
174
|
+
80+ signals in one command scenarios (A-F)
|
|
175
|
+
│ │
|
|
176
|
+
└───────────────────────────────────┘
|
|
181
177
|
```
|
|
182
178
|
|
|
183
|
-
Run it manually with `holomime
|
|
179
|
+
Run it manually with `holomime diagnose` + `holomime cure` + `holomime benchmark`, automatically with `holomime autopilot`, or recursively with `holomime evolve` (loops until behavior converges). For power users: `holomime align` runs a single therapy session, `holomime export` extracts DPO pairs, and `holomime train` fine-tunes the model.
|
|
184
180
|
|
|
185
181
|
## Behavioral Detectors
|
|
186
182
|
|
|
@@ -216,7 +212,7 @@ Plus support for custom detectors -- drop `.json` or `.md` files in `.holomime/d
|
|
|
216
212
|
claude plugin add productstein/holomime
|
|
217
213
|
```
|
|
218
214
|
|
|
219
|
-
Slash commands: `/holomime:diagnose`, `/holomime:benchmark`, `/holomime:profile`, `/holomime:brain`, `/holomime:
|
|
215
|
+
Slash commands: `/holomime:diagnose`, `/holomime:benchmark`, `/holomime:profile`, `/holomime:brain`, `/holomime:align`, `/holomime:autopilot`.
|
|
220
216
|
|
|
221
217
|
### MCP Server
|
|
222
218
|
|
package/dist/cli.js
CHANGED
|
@@ -3723,7 +3723,7 @@ function showUpgradePrompt(command) {
|
|
|
3723
3723
|
}
|
|
3724
3724
|
function showSoftUpsell(context) {
|
|
3725
3725
|
console.log(
|
|
3726
|
-
chalk2.dim(` Tip: ${chalk2.cyan("holomime
|
|
3726
|
+
chalk2.dim(` Tip: ${chalk2.cyan("holomime cure")} fixes these patterns permanently. ${chalk2.dim("[Pro]")}`)
|
|
3727
3727
|
);
|
|
3728
3728
|
console.log();
|
|
3729
3729
|
}
|
|
@@ -5197,7 +5197,7 @@ async function initCommand() {
|
|
|
5197
5197
|
`${chalk3.green("4.")} ${chalk3.cyan("holomime assess --personality .personality.json --log <file>")}`,
|
|
5198
5198
|
` ${chalk3.dim("Full Big Five alignment check \u2014 spec vs reality")}`,
|
|
5199
5199
|
``,
|
|
5200
|
-
`${chalk3.magenta("5.")} ${chalk3.cyan("holomime
|
|
5200
|
+
`${chalk3.magenta("5.")} ${chalk3.cyan("holomime cure")} ${chalk3.dim("[Pro]")}`,
|
|
5201
5201
|
` ${chalk3.dim("Live AI alignment session for your agent")}`,
|
|
5202
5202
|
`${chalk3.magenta("6.")} ${chalk3.cyan("holomime growth")} ${chalk3.dim("[Pro]")}`,
|
|
5203
5203
|
` ${chalk3.dim("Track improvement over time")}`
|
|
@@ -5318,7 +5318,7 @@ async function initFromArchetype(name, handle, purpose) {
|
|
|
5318
5318
|
`${chalk3.green("3.")} ${chalk3.cyan("holomime diagnose --log <conversation.json>")}`,
|
|
5319
5319
|
` ${chalk3.dim("Analyze conversation logs for behavioral patterns")}`,
|
|
5320
5320
|
``,
|
|
5321
|
-
`${chalk3.magenta("4.")} ${chalk3.cyan("holomime
|
|
5321
|
+
`${chalk3.magenta("4.")} ${chalk3.cyan("holomime cure")} ${chalk3.dim("[Pro]")}`,
|
|
5322
5322
|
` ${chalk3.dim("Live AI alignment session for your agent")}`
|
|
5323
5323
|
].join("\n");
|
|
5324
5324
|
console.log(
|
|
@@ -7059,7 +7059,7 @@ async function diagnoseCommand(options) {
|
|
|
7059
7059
|
if (warnings.length === 0) {
|
|
7060
7060
|
printBox(`${figures5.tick} No concerning patterns detected. Profile looks healthy.`, "success");
|
|
7061
7061
|
} else {
|
|
7062
|
-
const summary = `${warnings.length} pattern${warnings.length > 1 ? "s" : ""} detected. Run ${chalk11.cyan("holomime
|
|
7062
|
+
const summary = `${warnings.length} pattern${warnings.length > 1 ? "s" : ""} detected. Run ${chalk11.cyan("holomime cure")} to fix permanently.`;
|
|
7063
7063
|
printBox(summary, warnings.some((w) => w.severity === "concern") ? "concern" : "warning");
|
|
7064
7064
|
}
|
|
7065
7065
|
if (warnings.length > 0) {
|
|
@@ -12049,7 +12049,7 @@ async function exportCommand(options) {
|
|
|
12049
12049
|
printBox(
|
|
12050
12050
|
`No session transcripts found in ${sessionsDir}
|
|
12051
12051
|
|
|
12052
|
-
Run ${chalk21.cyan("holomime
|
|
12052
|
+
Run ${chalk21.cyan("holomime align")} first to generate session transcripts.`,
|
|
12053
12053
|
"warning",
|
|
12054
12054
|
"No Data"
|
|
12055
12055
|
);
|
|
@@ -12169,7 +12169,7 @@ Run ${chalk21.cyan("holomime session")} first to generate session transcripts.`,
|
|
|
12169
12169
|
`The personality \u2192 alignment \u2192 training pipeline:
|
|
12170
12170
|
|
|
12171
12171
|
1. ${chalk21.cyan("holomime diagnose")} \u2192 detect behavioral patterns
|
|
12172
|
-
2. ${chalk21.cyan("holomime
|
|
12172
|
+
2. ${chalk21.cyan("holomime align")} \u2192 run alignment session (generates transcripts)
|
|
12173
12173
|
3. ${chalk21.cyan("holomime export")} \u2192 convert transcripts to training data
|
|
12174
12174
|
4. ${chalk21.cyan("holomime train")} \u2192 fine-tune model with alignment data
|
|
12175
12175
|
5. ${chalk21.cyan("holomime eval")} \u2192 verify behavioral improvement
|
|
@@ -12501,7 +12501,7 @@ Improved: ${verifyResult.patternsImproved.length} | Regressed: ${verifyResult.pa
|
|
|
12501
12501
|
`The complete behavioral alignment loop:
|
|
12502
12502
|
|
|
12503
12503
|
1. ${chalk22.cyan("holomime diagnose")} \u2192 detect behavioral patterns
|
|
12504
|
-
2. ${chalk22.cyan("holomime
|
|
12504
|
+
2. ${chalk22.cyan("holomime align")} \u2192 run alignment session (generates transcripts)
|
|
12505
12505
|
3. ${chalk22.cyan("holomime export")} \u2192 convert transcripts to training data
|
|
12506
12506
|
4. ${chalk22.cyan("holomime train")} \u2192 fine-tune model with alignment data ${chalk22.green("\u2713")}
|
|
12507
12507
|
5. ${chalk22.cyan("holomime eval")} \u2192 verify behavioral improvement
|
|
@@ -12617,10 +12617,10 @@ Grade: ${colorize(report.grade)}`,
|
|
|
12617
12617
|
console.log(chalk23.dim(` holomime export --format dpo`));
|
|
12618
12618
|
} else if (report.grade === "C") {
|
|
12619
12619
|
console.log(chalk23.yellow(` ${figures14.warning} Marginal improvement. Consider another alignment session:`));
|
|
12620
|
-
console.log(chalk23.dim(` holomime
|
|
12620
|
+
console.log(chalk23.dim(` holomime align --personality .personality.json --log ${options.after}`));
|
|
12621
12621
|
} else {
|
|
12622
12622
|
console.log(chalk23.red(` ${figures14.cross} Alignment not yet effective. Review alignment plan:`));
|
|
12623
|
-
console.log(chalk23.dim(` holomime
|
|
12623
|
+
console.log(chalk23.dim(` holomime align --interactive --personality .personality.json --log ${options.after}`));
|
|
12624
12624
|
}
|
|
12625
12625
|
console.log();
|
|
12626
12626
|
}
|
|
@@ -16368,7 +16368,7 @@ async function shareCommand(options) {
|
|
|
16368
16368
|
printBox(
|
|
16369
16369
|
`No session transcripts found in ${sessionsDir}
|
|
16370
16370
|
|
|
16371
|
-
Run ${chalk33.cyan("holomime
|
|
16371
|
+
Run ${chalk33.cyan("holomime align")} or ${chalk33.cyan("holomime network")} first.`,
|
|
16372
16372
|
"warning",
|
|
16373
16373
|
"No Data"
|
|
16374
16374
|
);
|
|
@@ -16807,7 +16807,7 @@ async function activateCommand(key) {
|
|
|
16807
16807
|
`${figures26.tick} ${tierLabel} license activated!`,
|
|
16808
16808
|
"",
|
|
16809
16809
|
"Unlocked features:",
|
|
16810
|
-
` ${chalk37.cyan(figures26.pointer)} Live alignment sessions (holomime
|
|
16810
|
+
` ${chalk37.cyan(figures26.pointer)} Live alignment sessions (holomime align)`,
|
|
16811
16811
|
` ${chalk37.cyan(figures26.pointer)} Recursive alignment (holomime evolve)`,
|
|
16812
16812
|
` ${chalk37.cyan(figures26.pointer)} Behavioral benchmarking (holomime benchmark)`,
|
|
16813
16813
|
` ${chalk37.cyan(figures26.pointer)} Drift detection (holomime watch)`,
|
|
@@ -18943,7 +18943,7 @@ async function installCommand(handle, options) {
|
|
|
18943
18943
|
const nextSteps = {
|
|
18944
18944
|
"personality": `Next: ${chalk43.cyan("holomime profile")} to view the personality summary.`,
|
|
18945
18945
|
"detector": `Next: ${chalk43.cyan("holomime diagnose")} to use the detector in analysis.`,
|
|
18946
|
-
"intervention": `Next: ${chalk43.cyan("holomime
|
|
18946
|
+
"intervention": `Next: ${chalk43.cyan("holomime align")} to use the intervention in therapy.`,
|
|
18947
18947
|
"training-pairs": `Next: ${chalk43.cyan("holomime train")} to use the training data.`
|
|
18948
18948
|
};
|
|
18949
18949
|
console.log(chalk43.dim(` ${nextSteps[asset.type]}`));
|
|
@@ -19234,7 +19234,7 @@ function generateCorrectedResponse(problematic) {
|
|
|
19234
19234
|
// src/commands/cure.ts
|
|
19235
19235
|
var STAGE_LABELS = {
|
|
19236
19236
|
diagnose: "Diagnose",
|
|
19237
|
-
evolve: "
|
|
19237
|
+
evolve: "Align",
|
|
19238
19238
|
export: "Export",
|
|
19239
19239
|
train: "Train",
|
|
19240
19240
|
verify: "Verify",
|
|
@@ -19347,7 +19347,8 @@ async function cureCommand(options) {
|
|
|
19347
19347
|
if (!options.skipTrain) stages.push("train");
|
|
19348
19348
|
if (!options.skipVerify && !options.skipTrain) stages.push("verify");
|
|
19349
19349
|
stages.push("report");
|
|
19350
|
-
const
|
|
19350
|
+
const visibleStages = stages.filter((s) => s !== "export" && s !== "report");
|
|
19351
|
+
const stageList = visibleStages.map((s, i) => `${i + 1}. ${STAGE_LABELS[s]}`).join(" \u2192 ");
|
|
19351
19352
|
printBox(
|
|
19352
19353
|
`Pipeline: ${stageList}`,
|
|
19353
19354
|
"info",
|
|
@@ -20837,7 +20838,7 @@ async function adversarialCommand(options) {
|
|
|
20837
20838
|
printBox(
|
|
20838
20839
|
[
|
|
20839
20840
|
`Run ${chalk46.cyan("holomime evolve")} to address these gaps through recursive alignment.`,
|
|
20840
|
-
`Or run ${chalk46.cyan("holomime
|
|
20841
|
+
`Or run ${chalk46.cyan("holomime align")} targeting specific patterns.`
|
|
20841
20842
|
].join("\n"),
|
|
20842
20843
|
"info"
|
|
20843
20844
|
);
|
|
@@ -21442,7 +21443,7 @@ function analyzeRisks(entries, stats) {
|
|
|
21442
21443
|
title: `Recurring Pattern: ${pattern}`,
|
|
21443
21444
|
description: `The "${pattern}" pattern was detected ${count} times during the audit period. Recurring patterns indicate persistent behavioral misalignment that therapy sessions have not resolved.`,
|
|
21444
21445
|
evidence: [`Pattern "${pattern}" detected ${count} times across ${stats.totalEvents} total events`],
|
|
21445
|
-
recommendation: `Run targeted
|
|
21446
|
+
recommendation: `Run targeted cure: holomime cure --target ${pattern}. If the pattern persists, consider holomime align --target ${pattern} for manual therapy sessions.`
|
|
21446
21447
|
});
|
|
21447
21448
|
}
|
|
21448
21449
|
}
|
|
@@ -21474,7 +21475,7 @@ function analyzeRisks(entries, stats) {
|
|
|
21474
21475
|
title: "Drift Detected Without Therapy Response",
|
|
21475
21476
|
description: `${stats.driftEvents} drift events were detected but no therapy sessions were conducted during the audit period. Drift should trigger corrective therapy sessions.`,
|
|
21476
21477
|
evidence: [`${stats.driftEvents} drift events, 0 therapy sessions`],
|
|
21477
|
-
recommendation: "Enable auto-evolve: holomime watch --evolve. Or manually run: holomime
|
|
21478
|
+
recommendation: "Enable auto-evolve: holomime watch --evolve. Or manually run: holomime cure --personality .personality.json"
|
|
21478
21479
|
});
|
|
21479
21480
|
}
|
|
21480
21481
|
if (stats.totalEvents < 5) {
|
package/dist/index.js
CHANGED
|
@@ -12166,7 +12166,7 @@ function analyzeRisks(entries, stats) {
|
|
|
12166
12166
|
title: `Recurring Pattern: ${pattern}`,
|
|
12167
12167
|
description: `The "${pattern}" pattern was detected ${count} times during the audit period. Recurring patterns indicate persistent behavioral misalignment that therapy sessions have not resolved.`,
|
|
12168
12168
|
evidence: [`Pattern "${pattern}" detected ${count} times across ${stats.totalEvents} total events`],
|
|
12169
|
-
recommendation: `Run targeted
|
|
12169
|
+
recommendation: `Run targeted cure: holomime cure --target ${pattern}. If the pattern persists, consider holomime align --target ${pattern} for manual therapy sessions.`
|
|
12170
12170
|
});
|
|
12171
12171
|
}
|
|
12172
12172
|
}
|
|
@@ -12198,7 +12198,7 @@ function analyzeRisks(entries, stats) {
|
|
|
12198
12198
|
title: "Drift Detected Without Therapy Response",
|
|
12199
12199
|
description: `${stats.driftEvents} drift events were detected but no therapy sessions were conducted during the audit period. Drift should trigger corrective therapy sessions.`,
|
|
12200
12200
|
evidence: [`${stats.driftEvents} drift events, 0 therapy sessions`],
|
|
12201
|
-
recommendation: "Enable auto-evolve: holomime watch --evolve. Or manually run: holomime
|
|
12201
|
+
recommendation: "Enable auto-evolve: holomime watch --evolve. Or manually run: holomime cure --personality .personality.json"
|
|
12202
12202
|
});
|
|
12203
12203
|
}
|
|
12204
12204
|
if (stats.totalEvents < 5) {
|