holomime 3.3.6 → 3.3.7

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.
Files changed (2) hide show
  1. package/dist/cli.js +17 -17
  2. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -3593,7 +3593,7 @@ import { Command } from "commander";
3593
3593
  // src/ui/branding.ts
3594
3594
  import chalk from "chalk";
3595
3595
  import gradientString from "gradient-string";
3596
- var VERSION = "3.3.6";
3596
+ var VERSION = "3.3.7";
3597
3597
  var LOGO = ` _ _ _
3598
3598
  | |__ ___ | | ___ _ __ (_)_ __ ___ ___
3599
3599
  | '_ \\ / _ \\| |/ _ \\| '_ \\| | '_ \` _ \\ / _ \\
@@ -21901,8 +21901,8 @@ function printNextSteps() {
21901
21901
  console.log(chalk49.cyan(" holomime identity") + chalk49.dim(" Full 8-file identity stack with body.api"));
21902
21902
  console.log();
21903
21903
  console.log(chalk49.dim(" Then fix and verify:"));
21904
- console.log(chalk49.cyan(" holomime therapy") + chalk49.dim(" Autonomous behavioral therapy"));
21905
- console.log(chalk49.cyan(" holomime cure") + chalk49.dim(" End-to-end fix (diagnose + train + verify)"));
21904
+ console.log(chalk49.cyan(" holomime therapy") + chalk49.dim(" Run in background \u2014 generate data, detect regression"));
21905
+ console.log(chalk49.cyan(" holomime cure") + chalk49.dim(" Full pipeline \u2014 diagnose, fine-tune, verify"));
21906
21906
  console.log();
21907
21907
  }
21908
21908
 
@@ -22192,12 +22192,12 @@ async function therapyStart(options) {
22192
22192
  };
22193
22193
  saveTherapyState(state);
22194
22194
  printBox(
22195
- `Autonomous therapy started.
22195
+ `Background process running. Generating training data, detecting regression, auto-tuning.
22196
22196
 
22197
- ${chalk50.cyan("holomime therapy status")} \u2014 Check progress
22198
- ${chalk50.cyan("holomime therapy stop")} \u2014 Stop therapy`,
22197
+ ${chalk50.cyan("holomime therapy status")} \u2014 Check progress and metrics
22198
+ ${chalk50.cyan("holomime therapy stop")} \u2014 Stop background process`,
22199
22199
  "success",
22200
- "Autonomous Therapy Started"
22200
+ "Therapy Running"
22201
22201
  );
22202
22202
  console.log();
22203
22203
  const scenarios = getBenchmarkScenarios();
@@ -22494,7 +22494,7 @@ program.command("compile-stack").description("Compile identity stack (soul + min
22494
22494
  program.command("compile").description("Compile .personality.json into a provider-specific runtime config").option("--provider <provider>", "Target provider (anthropic, openai, gemini, ollama)", "anthropic").option("--surface <surface>", "Target surface (chat, email, code_review, slack, api, embodied)", "chat").option("--for <format>", "Compile for a specific format (openclaw)").option("--tier <tier>", "Personality loading tier (L0, L1, L2)", "L2").option("-o, --output <path>", "Write output to file instead of stdout").action(compileCommand);
22495
22495
  program.command("validate").description("Validate .personality.json schema and psychological coherence").action(validateCommand);
22496
22496
  program.command("profile").description("Pretty-print a human-readable personality summary").option("--format <format>", "Output format (terminal, md)", "terminal").option("-o, --output <path>", "Write output to file (for md format)").action(profileCommand);
22497
- program.command("diagnose").description("Detect behavioral patterns from conversation logs (rule-based, no LLM)").requiredOption("--log <path>", "Path to conversation log (JSON)").option("--format <format>", "Log format (auto, holomime, chatgpt, claude, openai-api, anthropic-api, otel, jsonl)", "auto").action(diagnoseCommand);
22497
+ program.command("diagnose").description("Detect behavioral drift from conversation logs").requiredOption("--log <path>", "Path to conversation log (JSON)").option("--format <format>", "Log format (auto, holomime, chatgpt, claude, openai-api, anthropic-api, otel, jsonl)", "auto").action(diagnoseCommand);
22498
22498
  program.command("assess").description("Full Big Five alignment check \u2014 compare spec vs actual behavior").requiredOption("--personality <path>", "Path to .personality.json").requiredOption("--log <path>", "Path to conversation log (JSON)").option("--format <format>", "Log format (auto, holomime, chatgpt, claude, openai-api, anthropic-api, otel, jsonl)", "auto").action(assessCommand);
22499
22499
  program.command("browse").description("Browse the community marketplace").option("--tag <tag>", "Filter by tag").option("--type <type>", "Asset type: personality, detector, intervention, training-pairs").option("--search <query>", "Full-text search query").option("--sort <field>", "Sort by: downloads, rating, created_at, updated_at, name", "downloads").option("--page <number>", "Page number for paginated results").action(browseCommand);
22500
22500
  program.command("use").description("Use a personality from the registry").argument("<handle>", "Personality handle to use").option("-o, --output <path>", "Output path", ".personality.json").action(useCommand);
@@ -22522,7 +22522,7 @@ program.command("evolve").description("Recursive behavioral alignment \u2014 ite
22522
22522
  if (!options.model) options.model = resolved.model;
22523
22523
  await evolveCommand(options);
22524
22524
  });
22525
- program.command("benchmark").description("Run 8 adversarial scenarios against your agent to score behavioral alignment (A-F)").addHelpText("after", `
22525
+ program.command("benchmark").description("Score alignment (A-F) across 8 adversarial scenarios").addHelpText("after", `
22526
22526
  Examples:
22527
22527
  $ holomime benchmark --personality .personality.json
22528
22528
  $ holomime benchmark --personality .personality.json --provider anthropic
@@ -22565,14 +22565,14 @@ program.command("share").description("Share DPO training pairs to the marketplac
22565
22565
  program.command("interview").description("Self-awareness interview \u2014 score your agent's metacognition across 4 dimensions [Pro]").requiredOption("--personality <path>", "Path to .personality.json").option("--provider <provider>", "LLM provider (ollama, anthropic, openai)", "ollama").option("--model <model>", "Model override").action(interviewCommand);
22566
22566
  program.command("prescribe").description("Diagnose and prescribe DPO treatments from the behavioral corpus [Pro]").requiredOption("--personality <path>", "Path to .personality.json").requiredOption("--log <path>", "Path to conversation log").option("--format <format>", "Log format (holomime, chatgpt, claude, openai-api, anthropic-api, otel, jsonl)").option("--source <source>", "Correction source (corpus, marketplace, both)", "corpus").option("--apply", "Apply found treatments").option("-o, --output <path>", "Write prescription to file").action(prescribeCommand);
22567
22567
  program.command("voice").description("Monitor voice conversations for behavioral drift in real-time [Pro]").requiredOption("--personality <path>", "Path to .personality.json").option("--platform <name>", "Voice platform: livekit, vapi, retell, generic", "generic").option("--room <name>", "LiveKit room name").option("--server-url <url>", "LiveKit server URL").option("--webhook-port <port>", "Vapi webhook port (default: 3001)").option("--agent-id <id>", "Retell agent ID").option("--input <path>", "Input transcript file (JSONL) for offline analysis").option("--interval <ms>", "Diagnosis interval in milliseconds (default: 15000)").option("--threshold <level>", "Alert threshold: warning or concern (default: warning)").action(voiceCommand);
22568
- program.command("cure").description("End-to-end behavioral fix \u2014 just run it, everything auto-detected").option("--personality <path>", "Path to .personality.json (auto-detected)").option("--log <path>", "Path to conversation log (JSON). If omitted, auto-generates from benchmark scenarios").option("--provider <provider>", "Training provider (openai, huggingface)", "openai").option("--base-model <model>", "Base model to fine-tune", "gpt-4o-mini-2024-07-18").option("--method <method>", "Training method (auto, sft, dpo)", "auto").option("--epochs <n>", "Number of training epochs").option("--suffix <name>", "Model name suffix").option("--skip-train", "Skip training step (diagnose + export only)").option("--skip-verify", "Skip post-training verification").option("--dry-run", "Preview pipeline plan without executing").option("--push", "Push trained model to HuggingFace Hub").option("--hub-repo <repo>", "HuggingFace Hub repo (user/model-name)").option("--pass-threshold <n>", "Minimum verification score (0-100)", "50").action(async (options) => {
22568
+ program.command("cure").description("Full pipeline \u2014 diagnose, generate training data, fine-tune, verify").option("--personality <path>", "Path to .personality.json (auto-detected)").option("--log <path>", "Path to conversation log (JSON). If omitted, auto-generates from benchmark scenarios").option("--provider <provider>", "Training provider (openai, huggingface)", "openai").option("--base-model <model>", "Base model to fine-tune", "gpt-4o-mini-2024-07-18").option("--method <method>", "Training method (auto, sft, dpo)", "auto").option("--epochs <n>", "Number of training epochs").option("--suffix <name>", "Model name suffix").option("--skip-train", "Skip training step (diagnose + export only)").option("--skip-verify", "Skip post-training verification").option("--dry-run", "Preview pipeline plan without executing").option("--push", "Push trained model to HuggingFace Hub").option("--hub-repo <repo>", "HuggingFace Hub repo (user/model-name)").option("--pass-threshold <n>", "Minimum verification score (0-100)", "50").action(async (options) => {
22569
22569
  const resolved = autoDetect({ personality: options.personality, provider: options.provider, model: options.model });
22570
22570
  options.personality = resolved.personalityPath;
22571
22571
  if (!options.provider || options.provider === "ollama") options.provider = resolved.provider;
22572
22572
  if (!options.model) options.model = resolved.model;
22573
22573
  await cureCommand(options);
22574
22574
  });
22575
- program.command("therapy [action]").description("Autonomous behavioral therapy \u2014 generates DPO pairs and self-improves").option("--interval <ms>", "Practice interval in ms (default: 600000)").option("--max-cycles <n>", "Max cycles per run (default: 50)").action(async (action, options) => {
22575
+ program.command("therapy [action]").description("Run in background \u2014 generate training data, detect regression, auto-tune").option("--interval <ms>", "Practice interval in ms (default: 600000)").option("--max-cycles <n>", "Max cycles per run (default: 50)").action(async (action, options) => {
22576
22576
  options.action = action;
22577
22577
  await miraCommand(options);
22578
22578
  });
@@ -22595,14 +22595,14 @@ program.addHelpText("before", `
22595
22595
  config Set up your API key (one time)
22596
22596
 
22597
22597
  WORKFLOW
22598
- diagnose See what's wrong
22599
- cure Fix it permanently
22600
- benchmark Verify the fix
22598
+ diagnose Detect behavioral drift from logs
22599
+ cure Full pipeline \u2014 diagnose, generate training data, fine-tune, verify
22600
+ benchmark Score alignment (A-F) across 8 adversarial scenarios
22601
22601
 
22602
22602
  THERAPY
22603
- therapy Start autonomous therapy
22604
- therapy status Check therapy progress
22605
- therapy stop Stop therapy
22603
+ therapy Run in background \u2014 generate training data, detect regression, auto-tune
22604
+ therapy status Check progress and metrics
22605
+ therapy stop Stop background process
22606
22606
 
22607
22607
  ADVANCED
22608
22608
  align Single therapy session
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "holomime",
3
- "version": "3.3.6",
3
+ "version": "3.3.7",
4
4
  "description": "Behavioral therapy infrastructure for AI agents — Big Five psychology, structured treatment, behavioral alignment",
5
5
  "type": "module",
6
6
  "bin": {