@@ -45,21 +45,33 @@ export function normalizeFormatAssignments(argv: string[]): void {
4545 }
4646}
4747
48- export function shouldStartVaultDaemon ( argv : readonly string [ ] , hasDirectApiKey = false ) : boolean {
48+ export function shouldStartVaultDaemon (
49+ argv : readonly string [ ] ,
50+ options : { hasDirectApiKey ?: boolean ; hasInitializedVault ?: boolean ; isAgent ?: boolean } = { } ,
51+ ) : boolean {
4952 if ( shouldBypassVault ( argv ) ) return false ;
5053 const [ group , subcommand ] = commandPath ( argv ) ;
5154 if ( group === 'auth' ) {
52- return isOneOf ( subcommand , 'login' , 'logout' ) || ( ! hasDirectApiKey && subcommand === 'status' ) ;
55+ return (
56+ isOneOf ( subcommand , 'login' , 'logout' ) ||
57+ ( options . hasDirectApiKey !== true &&
58+ subcommand === 'status' &&
59+ ( options . isAgent !== true || options . hasInitializedVault !== false ) )
60+ ) ;
5361 }
5462 if ( group === 'vault' ) return subcommand === 'status' ;
5563 if ( group === 'aep' ) return isOneOf ( subcommand , 'enroll' , 'fetch' , 'grant' , 'revoke' , 'status' ) ;
64+ if ( group === 'inspect' ) return shouldConfigureOdpServiceTransport ( argv ) ;
5665 if ( group === 'odp' ) return shouldConfigureOdpServiceTransport ( argv ) ;
5766 if ( group === 'mpp' ) {
5867 return (
59- requiresMppLocalState ( argv , subcommand ) || ( ! hasDirectApiKey && isOneOf ( subcommand , 'pay' , 'status' , 'supported' ) )
68+ requiresMppLocalState ( argv , subcommand ) ||
69+ ( options . hasDirectApiKey !== true && isOneOf ( subcommand , 'cancel' , 'pay' , 'status' , 'supported' ) )
6070 ) ;
6171 }
62- if ( group === 'x402' ) return ! hasDirectApiKey && isOneOf ( subcommand , 'fetch' , 'pay' , 'status' , 'supported' ) ;
72+ if ( group === 'x402' ) {
73+ return options . hasDirectApiKey !== true && isOneOf ( subcommand , 'cancel' , 'fetch' , 'pay' , 'status' , 'supported' ) ;
74+ }
6375 if ( group === 'subscriptions' ) return isOneOf ( subcommand , 'cancel' , 'fetch' ) ;
6476 return false ;
6577}
@@ -71,13 +83,15 @@ export function shouldReconcileVaultDaemon(argv: readonly string[], hasDirectApi
7183 return isOneOf ( subcommand , 'login' , 'logout' ) || ( ! hasDirectApiKey && subcommand === 'status' ) ;
7284 }
7385 if ( group === 'aep' ) return isOneOf ( subcommand , 'enroll' , 'fetch' , 'grant' , 'revoke' , 'status' ) ;
86+ if ( group === 'inspect' ) return shouldConfigureOdpServiceTransport ( argv ) ;
7487 if ( group === 'odp' ) return shouldConfigureOdpServiceTransport ( argv ) ;
7588 if ( group === 'mpp' ) {
7689 return (
77- requiresMppLocalState ( argv , subcommand ) || ( ! hasDirectApiKey && isOneOf ( subcommand , 'pay' , 'status' , 'supported' ) )
90+ requiresMppLocalState ( argv , subcommand ) ||
91+ ( ! hasDirectApiKey && isOneOf ( subcommand , 'cancel' , 'pay' , 'status' , 'supported' ) )
7892 ) ;
7993 }
80- if ( group === 'x402' ) return ! hasDirectApiKey && isOneOf ( subcommand , 'fetch' , 'pay' , 'status' , 'supported' ) ;
94+ if ( group === 'x402' ) return ! hasDirectApiKey && isOneOf ( subcommand , 'cancel' , ' fetch', 'pay' , 'status' , 'supported' ) ;
8195 if ( group === 'subscriptions' && isOneOf ( subcommand , 'cancel' , 'fetch' ) ) return true ;
8296 if ( hasDirectApiKey ) return false ;
8397 if ( group === 'balances' || group === 'deposit-addresses' ) return subcommand === 'list' ;
@@ -91,17 +105,20 @@ export function shouldUnlockVault(
91105) : boolean {
92106 if ( options . isAgent === true || shouldBypassVault ( argv ) ) return false ;
93107 const [ group , subcommand ] = commandPath ( argv ) ;
94- if ( group === 'auth' ) return subcommand === 'login' ;
108+ if ( group === 'auth' ) {
109+ return subcommand === 'login' || ( options . hasDirectApiKey !== true && subcommand === 'status' ) ;
110+ }
95111 if ( group === 'aep' ) return isOneOf ( subcommand , 'enroll' , 'fetch' , 'grant' , 'revoke' , 'status' ) ;
112+ if ( group === 'inspect' ) return shouldConfigureOdpServiceTransport ( argv ) ;
96113 if ( group === 'odp' ) return shouldConfigureOdpServiceTransport ( argv ) ;
97114 if ( group === 'mpp' ) {
98115 return (
99116 requiresMppLocalState ( argv , subcommand ) ||
100- ( options . hasDirectApiKey !== true && isOneOf ( subcommand , 'pay' , 'status' , 'supported' ) )
117+ ( options . hasDirectApiKey !== true && isOneOf ( subcommand , 'cancel' , ' pay', 'status' , 'supported' ) )
101118 ) ;
102119 }
103120 if ( group === 'x402' ) {
104- return options . hasDirectApiKey !== true && isOneOf ( subcommand , 'fetch' , 'pay' , 'status' , 'supported' ) ;
121+ return options . hasDirectApiKey !== true && isOneOf ( subcommand , 'cancel' , ' fetch', 'pay' , 'status' , 'supported' ) ;
105122 }
106123 if ( group === 'subscriptions' && isOneOf ( subcommand , 'cancel' , 'fetch' ) ) return true ;
107124 if ( options . hasDirectApiKey === true ) return false ;
0 commit comments