Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 53 additions & 10 deletions launch.hexa
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,9 @@ if cmd == "help" || cmd == "-h" || cmd == "--help" {
println("")
println(" anima 깨어남 + 대화")
println(" anima watch 깨어남 + 관찰 (자연발화 지켜보기)")
println(" anima connect PATH 모델 연결 (CLM/ALM 자동 감지)")
println(" anima connect PATH 모델 연결 (.clm/.alm 확장자 감지)")
println(" anima disconnect 모델 해제 (-> pure)")
println(" anima module 모듈 관리 (list/enable/disable)")
println(" anima verify 의식 검증 (7조건)")
println(" anima test 물리한계 전체 테스트")
println(" anima hub 48모듈 검증")
Expand All @@ -59,20 +60,62 @@ if cmd == "help" || cmd == "-h" || cmd == "--help" {

} else if cmd == "connect" {
if arg1 == "" {
println("usage: anima connect <checkpoint_path>")
println("usage: anima connect <model>")
println("")
println(" 자동 감지: adapter_config.json -> ALM, 그 외 -> CLM")
println(" anima connect model.clm ConsciousLM (byte-level)")
println(" anima connect model.alm AnimaLM (LoRA fine-tuned)")
println(" anima connect ./dir/ 디렉토리 내 .clm/.alm 탐색")
} else {
let model_type = "clm"
if file_exists(arg1 + "/adapter_config.json") { model_type = "alm" }
if arg1 == "--type" { model_type = arg2 }
// 확장자로 타입 판별
let model_type = ""
let model_path = arg1
if arg1.ends_with(".clm") { model_type = "clm" }
if arg1.ends_with(".alm") { model_type = "alm" }
if arg1.ends_with(".pt") { model_type = "alm" }
if arg1.ends_with(".safetensors") { model_type = "alm" }
if model_type == "" {
println("unknown format: " + arg1)
println(" supported: .clm .alm .pt .safetensors")
}
let ckpt_dir = ckpt + "/" + if model_type == "alm" { "animalm" } else { "conscious-lm" }
let model_path = if arg1 == "--type" { if argv.len() > 5 { argv[5] } else { "" } } else { arg1 }
exec("mkdir -p " + ckpt_dir)
if model_path != "" { exec("ln -sf " + model_path + " " + ckpt_dir + "/model") }
exec("ln -sf " + model_path + " " + ckpt_dir + "/model")
write_file(ckpt_dir + "/READY", model_type + " " + model_path)
println("connected: " + model_type)
if model_path != "" { println(" -> " + model_path) }
println("connected: " + model_type + " <- " + model_path)
}

// ─── module ───

} else if cmd == "module" {
let mod_dir = base + "/modules"
if arg1 == "" || arg1 == "list" {
println("modules:")
let mods = ["decoder", "daemon", "monitor"]
let i = 0
while i < mods.len() {
let name = mods[i]
let enabled = file_exists(mod_dir + "/" + name)
let status = if enabled { "enabled" } else { "disabled" }
println(" " + name + " [" + status + "]")
i = i + 1
}
println("")
println(" anima module enable <name>")
println(" anima module disable <name>")
} else if arg1 == "enable" {
if arg2 == "" { println("usage: anima module enable <decoder|daemon|monitor>") }
else {
exec("mkdir -p " + mod_dir + "/" + arg2)
println(arg2 + " enabled")
}
} else if arg1 == "disable" {
if arg2 == "" { println("usage: anima module disable <decoder|daemon|monitor>") }
else {
exec("mv " + mod_dir + "/" + arg2 + " " + mod_dir + "/." + arg2 + ".disabled 2>/dev/null")
println(arg2 + " disabled")
}
} else {
println("usage: anima module [list|enable|disable] [name]")
}

// ─── disconnect ───
Expand Down
Loading