2026-05-25 22:24:37 +09:00
#!/usr/bin/env node
import { ultragoalCommand } from "./cli-commands.js" ;
2026-05-28 14:19:14 +09:00
import { runPreToolUseGoalBudgetGuardCli , runUltragoalHookCli } from "./codex-hook.js" ;
2026-05-25 22:24:37 +09:00
const TOP _LEVEL _HELP =
"Usage:\n omo ultragoal <subcommand> [args]\n omo hook user-prompt-submit (Codex UserPromptSubmit hook)\n omo help | --help | -h (this message)\n\nRun `omo ultragoal help` for ultragoal subcommands.\n" ;
async function main ( ) : Promise < number > {
const argv = process . argv . slice ( 2 ) ;
const command = argv [ 0 ] ;
if ( command === undefined || command === "help" || command === "--help" || command === "-h" ) {
process . stdout . write ( TOP _LEVEL _HELP ) ;
return 0 ;
}
if ( command === "ultragoal" ) return ultragoalCommand ( argv . slice ( 1 ) ) ;
if ( command === "hook" ) {
const sub = argv [ 1 ] ;
if ( sub === "user-prompt-submit" ) {
await runUltragoalHookCli ( process . stdin , process . stdout ) ;
return 0 ;
}
2026-05-28 14:19:14 +09:00
if ( sub === "pre-tool-use" ) {
await runPreToolUseGoalBudgetGuardCli ( process . stdin , process . stdout ) ;
return 0 ;
}
2026-05-25 22:24:37 +09:00
process . stderr . write ( ` [omo] unknown hook subcommand: ${ sub ? ? "(none)" } \n ` ) ;
return 1 ;
}
process . stderr . write ( ` [omo] unknown command: ${ command } \n ${ TOP _LEVEL _HELP } ` ) ;
return 1 ;
}
main ( )
. then ( ( code ) => {
process . exit ( code ) ;
} )
. catch ( ( error : unknown ) => {
process . stderr . write ( ` [omo] ${ error instanceof Error ? error . message : String ( error ) } \n ` ) ;
process . exit ( 1 ) ;
} ) ;