@agiflowai/agent-cli 0.1.9 → 0.1.10

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.
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.js","sources":["../src/systems/cli/apps/daemon/components/DaemonConnectionManager.tsx","../src/systems/cli/apps/daemon/components/TokenInput.tsx","../src/systems/cli/apps/daemon/guards/OauthSetup.tsx","../src/systems/cli/apps/daemon/components/AgentTabs.tsx","../src/systems/cli/apps/daemon/screens/Agents/index.tsx","../src/systems/cli/apps/daemon/screens/Onboarding/index.tsx","../src/systems/cli/apps/daemon/index.tsx"],"sourcesContent":["import { cliContainer } from '@cli/container';\nimport React, { useEffect, useRef } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport type { DaemonManager } from '@/services';\nimport type { AppDispatch } from '@/store';\nimport { RootState } from '@/store';\nimport { launchDaemon } from '@/store/slices/daemonStatusSlice';\nimport { GLOBAL_TYPES } from '@/types';\nimport { useInk } from '../../../contexts/InkContext';\nimport { clearShutdownCallback, setShutdownCallback } from '../../../services/StdinManager';\n\ninterface DaemonConnectionManagerProps {\n children: React.ReactNode;\n}\n\nexport const DaemonConnectionManager: React.FC<DaemonConnectionManagerProps> = ({ children }) => {\n const { Box, Text } = useInk();\n const dispatch = useDispatch<AppDispatch>();\n const status = useSelector((state: RootState) => state.daemonStatus.status);\n const error = useSelector((state: RootState) => state.daemonStatus.error);\n const isShuttingDown = useRef(false);\n\n useEffect(() => {\n dispatch(launchDaemon());\n\n // Register shutdown callback for Ctrl+C handling\n const handleShutdown = async () => {\n if (isShuttingDown.current) return;\n isShuttingDown.current = true;\n\n try {\n const daemonManager = cliContainer.get<DaemonManager>(GLOBAL_TYPES.DaemonManager);\n if (daemonManager.isRunning()) {\n await daemonManager.stop();\n }\n } catch {\n // Ignore errors during shutdown\n }\n // daemonManager.stop() calls process.exit() at the end\n };\n\n setShutdownCallback(handleShutdown);\n\n return () => {\n clearShutdownCallback();\n };\n }, [dispatch]);\n\n if (status === 'starting') {\n return (\n <Box flexDirection=\"column\" padding={1}>\n <Text color=\"yellow\">Connecting to Agiflow...</Text>\n </Box>\n );\n }\n\n if (status === 'error') {\n return (\n <Box flexDirection=\"column\" padding={1} borderStyle=\"round\" borderColor=\"red\">\n <Text color=\"red\" bold>\n Connection Error\n </Text>\n <Text>{error}</Text>\n <Text dimColor>Retrying in background...</Text>\n </Box>\n );\n }\n\n if (status === 'connected') {\n return <>{children}</>;\n }\n\n return null;\n};\n","import React, { useRef, useState } from 'react';\nimport { useInk } from '../../../contexts/InkContext';\n\ninterface TokenInputProps {\n onSubmit: (token: string) => void;\n onCancel?: () => void;\n}\n\nexport const TokenInput: React.FC<TokenInputProps> = ({ onSubmit, onCancel }) => {\n const { Box, Text, useInput } = useInk();\n const [value, setValue] = useState('');\n const valueRef = useRef('');\n\n useInput((input, key) => {\n // Ctrl+C clears text if there's any, otherwise allows default behavior (exit)\n if (key.ctrl && input === 'c' && valueRef.current.length > 0) {\n valueRef.current = '';\n setValue('');\n return;\n }\n\n if (key.return) {\n const currentValue = valueRef.current.trim();\n if (currentValue) {\n onSubmit(currentValue);\n }\n return;\n }\n\n if (key.escape) {\n onCancel?.();\n return;\n }\n\n if (key.backspace || key.delete) {\n const newValue = valueRef.current.slice(0, -1);\n valueRef.current = newValue;\n setValue(newValue);\n return;\n }\n\n if (input && !key.ctrl && !key.meta) {\n const newValue = valueRef.current + input;\n valueRef.current = newValue;\n setValue(newValue);\n }\n });\n\n return (\n <Box flexDirection=\"column\">\n <Text>\n <Text bold color=\"cyan\">\n Token:{' '}\n </Text>\n <Text color=\"green\">{value.length > 0 ? `${value.slice(0, 20)}...` : <Text dimColor>(paste token)</Text>}</Text>\n </Text>\n <Text dimColor>\n <Text bold>Enter</Text> to submit • <Text bold>Esc</Text> to cancel\n </Text>\n </Box>\n );\n};\n","import { cliContainer } from '@cli/container';\nimport { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\nimport React, { useEffect, useState } from 'react';\nimport { CredentialsService, DeviceCodeAuthService, type DeviceCodeResponse } from '@/services';\nimport { GLOBAL_TYPES } from '@/types';\nimport { useInk } from '../../../contexts/InkContext';\nimport { TokenInput } from '../components/TokenInput';\n\ninterface OauthSetupProps {\n children: (props: { isAuthenticated: boolean }) => React.ReactNode;\n}\n\nexport const OauthSetup: React.FC<OauthSetupProps> = ({ children }) => {\n const { Box, Text, Newline, Static, Link } = useInk();\n const queryClient = useQueryClient();\n const [deviceCode, setDeviceCode] = useState<DeviceCodeResponse | null>(null);\n const [showTokenInput, setShowTokenInput] = useState(false);\n\n // Get services from DI container\n const authService = cliContainer.get<DeviceCodeAuthService>(GLOBAL_TYPES.DeviceCodeAuthService);\n const credentialsService = cliContainer.get<CredentialsService>(GLOBAL_TYPES.CredentialsService);\n\n // Check existing authentication\n const { data: existingAuth, isLoading: isCheckingAuth } = useQuery({\n queryKey: ['auth', 'check'],\n queryFn: async () => {\n const creds = await credentialsService.load();\n if (creds && creds.apiKey && creds.expiresAt && authService.isTokenValid(creds.expiresAt)) {\n return { authenticated: true };\n }\n return { authenticated: false };\n },\n retry: false,\n });\n\n // Request device code\n const deviceCodeMutation = useMutation({\n mutationFn: async () => {\n const baseUrl = authService.getServerUrl();\n const clientId = authService.getClientId();\n\n const response = await fetch(`${baseUrl}/api/v1/oauth/device/authorize`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n client_id: clientId,\n scope: 'openid profile email',\n }),\n });\n\n if (!response.ok) {\n const errorData = await response.json();\n throw new Error(errorData.error_description || `Device authorization failed: ${response.status}`);\n }\n\n return response.json() as Promise<DeviceCodeResponse>;\n },\n onSuccess: (data) => {\n setDeviceCode(data);\n setShowTokenInput(true);\n },\n });\n\n // Verify token mutation\n const verifyTokenMutation = useMutation({\n mutationFn: async (token: string) => {\n if (!deviceCode) {\n throw new Error('Device code not available');\n }\n const apiKeyToken = await authService.exchangeTokenForApiKey(token, deviceCode.device_code);\n // Save to credentials.json\n await credentialsService.setApiKey({\n apiKey: apiKeyToken.api_key,\n organizationId: apiKeyToken.organization_id,\n expiresAt: apiKeyToken.expires_at,\n deviceId: apiKeyToken.device_id,\n });\n return { success: true };\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['auth', 'check'] });\n },\n });\n\n // Trigger device code request when not authenticated\n useEffect(() => {\n if (existingAuth && !existingAuth.authenticated && !deviceCodeMutation.isPending && !deviceCode) {\n deviceCodeMutation.mutate();\n }\n }, [existingAuth, deviceCodeMutation, deviceCode]);\n\n // Authenticated - render children\n if (existingAuth?.authenticated) {\n return <>{children({ isAuthenticated: true })}</>;\n }\n\n // Checking authentication\n if (isCheckingAuth) {\n return (\n <Box flexDirection=\"column\" padding={1}>\n <Box marginBottom={1}>\n <Text bold color=\"cyan\">\n 🔐 Agiflow Authentication\n </Text>\n </Box>\n <Box borderStyle=\"round\" borderColor=\"cyan\" padding={1}>\n <Box flexDirection=\"column\">\n <Text>\n <Text color=\"cyan\">◉ </Text>\n <Text>Checking existing credentials...</Text>\n </Text>\n </Box>\n </Box>\n </Box>\n );\n }\n\n // Requesting device code\n if (deviceCodeMutation.isPending) {\n return (\n <Box flexDirection=\"column\" padding={1}>\n <Box marginBottom={1}>\n <Text bold color=\"cyan\">\n 🔐 Agiflow Authentication\n </Text>\n </Box>\n <Box borderStyle=\"round\" borderColor=\"cyan\" padding={1}>\n <Box flexDirection=\"column\">\n <Text>\n <Text color=\"green\">✓ </Text>\n <Text dimColor>Checked existing credentials</Text>\n </Text>\n <Text>\n <Text color=\"cyan\">◉ </Text>\n <Text>Requesting device authorization...</Text>\n </Text>\n </Box>\n </Box>\n </Box>\n );\n }\n\n // Show authentication instructions\n if (deviceCode) {\n const verificationUrl = `${deviceCode.verification_uri}?code=${encodeURIComponent(deviceCode.user_code)}`;\n\n return (\n <>\n <Static items={[1]}>\n {() => (\n <Box flexDirection=\"column\" padding={1}>\n <Box marginBottom={1}>\n <Text bold color=\"cyan\">\n 🔐 Agiflow Authentication\n </Text>\n </Box>\n\n <Box borderStyle=\"round\" borderColor=\"green\" padding={1} marginBottom={1}>\n <Box flexDirection=\"column\">\n <Text>\n <Text color=\"green\">✓ </Text>\n <Text dimColor>Checked existing credentials</Text>\n </Text>\n <Text>\n <Text color=\"green\">✓ </Text>\n <Text dimColor>Device authorization requested</Text>\n </Text>\n <Text>\n <Text color=\"cyan\">◉ </Text>\n <Text bold>Waiting for browser confirmation</Text>\n </Text>\n </Box>\n </Box>\n\n <Box borderStyle=\"double\" borderColor=\"yellow\" padding={1} marginBottom={1}>\n <Box flexDirection=\"column\">\n <Text bold color=\"yellow\">\n 📋 Authentication Steps:\n </Text>\n <Newline />\n\n <Text>\n <Text bold color=\"cyan\">\n 1.{' '}\n </Text>\n <Text>Open this URL in your browser:</Text>\n </Text>\n <Box paddingLeft={3} marginBottom={1}>\n <Link url={verificationUrl}>\n <Text color=\"blue\" bold>\n {verificationUrl}\n </Text>\n </Link>\n </Box>\n\n <Text>\n <Text bold color=\"cyan\">\n 2.{' '}\n </Text>\n <Text>Enter this verification code:</Text>\n </Text>\n <Box paddingLeft={3} marginBottom={1} borderStyle=\"single\" borderColor=\"green\" paddingX={2}>\n <Text color=\"green\" bold>\n {deviceCode.user_code}\n </Text>\n </Box>\n\n <Text>\n <Text bold color=\"cyan\">\n 3.{' '}\n </Text>\n <Text>Sign in and authorize the device</Text>\n </Text>\n <Newline />\n\n <Text>\n <Text bold color=\"cyan\">\n 4.{' '}\n </Text>\n <Text>Copy the verification token (JWT) shown after confirmation</Text>\n </Text>\n <Newline />\n\n <Text dimColor>The browser will show a long token that starts with \"eyJ...\"</Text>\n </Box>\n </Box>\n\n <Box borderStyle=\"round\" borderColor=\"gray\" padding={1} marginBottom={1}>\n <Box flexDirection=\"column\">\n <Text dimColor>⏱️ Expires in: {Math.floor(deviceCode.expires_in / 60)} minutes</Text>\n <Text dimColor>💡 Tip: The URL includes your verification code for convenience</Text>\n </Box>\n </Box>\n </Box>\n )}\n </Static>\n\n {showTokenInput && (\n <Box borderStyle=\"round\" borderColor=\"cyan\" padding={1}>\n <TokenInput\n onSubmit={(token) => verifyTokenMutation.mutate(token)}\n onCancel={() => setShowTokenInput(false)}\n />\n </Box>\n )}\n </>\n );\n }\n\n // Verifying token\n if (verifyTokenMutation.isPending) {\n return (\n <Box flexDirection=\"column\" padding={1}>\n <Box marginBottom={1}>\n <Text bold color=\"cyan\">\n 🔐 Agiflow Authentication\n </Text>\n </Box>\n <Box borderStyle=\"round\" borderColor=\"cyan\" padding={1}>\n <Box flexDirection=\"column\">\n <Text>\n <Text color=\"cyan\">◉ </Text>\n <Text>Verifying token...</Text>\n </Text>\n </Box>\n </Box>\n </Box>\n );\n }\n\n // Error state\n if (deviceCodeMutation.isError || verifyTokenMutation.isError) {\n const error = deviceCodeMutation.error || verifyTokenMutation.error;\n return (\n <Box flexDirection=\"column\" padding={1}>\n <Box marginBottom={1}>\n <Text bold color=\"red\">\n ❌ Authentication Error\n </Text>\n </Box>\n <Box borderStyle=\"round\" borderColor=\"red\" padding={1} marginBottom={1}>\n <Text color=\"red\">{error?.message || 'Unknown error occurred'}</Text>\n </Box>\n <Box borderStyle=\"single\" borderColor=\"gray\" padding={1}>\n <Box flexDirection=\"column\">\n <Text dimColor>💡 Troubleshooting:</Text>\n <Text dimColor> • Check your internet connection</Text>\n <Text dimColor> • Verify the server URL is correct</Text>\n <Text dimColor> • Ensure the token is valid and not expired</Text>\n <Text dimColor> • Try running the daemon again</Text>\n <Newline />\n <Text dimColor>⌨️ Press Ctrl+C to exit</Text>\n </Box>\n </Box>\n </Box>\n );\n }\n\n // Default loading state\n return null;\n};\n","import { useSelector } from 'react-redux';\nimport { RootState } from '@/store';\nimport { LaunchAgent } from '../../../components/LaunchAgent';\nimport { useInk } from '../../../contexts/InkContext';\n\nexport const AgentTabs = () => {\n const { Box, Text } = useInk();\n const tabs = useSelector((state: RootState) => state.agentTabs.tabs);\n const activeTabId = useSelector((state: RootState) => state.agentTabs.activeTabId);\n\n return (\n <Box marginTop={1} borderStyle=\"single\" borderColor=\"gray\">\n {tabs.map((tab, index) => {\n const fKeyLabel = `^F${index + 1}`; // Ctrl+F on macOS\n return (\n <Box key={tab.id} paddingRight={2}>\n <Text\n color={activeTabId === tab.id ? '#ffffff' : '#d1d5db'}\n bold={activeTabId === tab.id}\n dimColor={activeTabId !== tab.id}\n backgroundColor={activeTabId === tab.id ? '#10b981' : undefined}\n >\n [{fKeyLabel}] {tab.label}\n {tab.unreadCount && tab.unreadCount > 0 && tab.id !== activeTabId ? ` (${tab.unreadCount})` : ''}\n </Text>\n <LaunchAgent tab={tab} />\n </Box>\n );\n })}\n </Box>\n );\n};\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport { RootState } from '@/store';\nimport { StdinForwarder } from '@/systems/cli/components/StdinForwarder';\nimport { AgentView } from '../../../../components/AgentView';\nimport { BoxSizeMeasure } from '../../../../components/BoxSizeMeasure';\nimport { CAPermissionGuard } from '../../../../components/CAPermissionGuard';\nimport { useInk } from '../../../../contexts/InkContext';\nimport { AgentTabs } from '../../components/AgentTabs';\n\nexport const Agents: React.FC = () => {\n const { Box } = useInk();\n const activeTabId = useSelector((state: RootState) => state.agentTabs.activeTabId);\n // F-key tab switching is handled by StdinForwarder via escape sequences\n\n return (\n <Box flexDirection=\"column\" flexGrow={1}>\n <CAPermissionGuard>\n <AgentView key={activeTabId} />\n </CAPermissionGuard>\n <BoxSizeMeasure>\n <AgentTabs />\n </BoxSizeMeasure>\n <StdinForwarder />\n </Box>\n );\n};\n","import React from 'react';\nimport { useInk } from '../../../../contexts/InkContext';\n\nexport const Onboarding: React.FC = () => {\n const { Box, Text } = useInk();\n\n return (\n <Box flexDirection=\"column\" borderStyle=\"round\" borderColor=\"green\" padding={1} flexGrow={1}>\n <Text bold color=\"green\">\n Welcome to Agent CLI Daemon!\n </Text>\n <Box marginTop={1}>\n <Text>It looks like you don't have any active agent sessions.</Text>\n </Box>\n <Box marginTop={1}>\n <Text>\n Please use the Agiflow UI Dashboard to start a{' '}\n <Text bold color=\"blue\">\n Project Plan\n </Text>\n ,{' '}\n <Text bold color=\"blue\">\n Work Unit\n </Text>\n , or{' '}\n <Text bold color=\"blue\">\n Task Chat\n </Text>{' '}\n to begin.\n </Text>\n </Box>\n <Box marginTop={1}>\n <Text dimColor>The Agiflow UI Dashboard can be accessed in your browser.</Text>\n </Box>\n </Box>\n );\n};\n","import 'reflect-metadata'; // Must be first import for InversifyJS\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport React from 'react';\nimport { Provider, useSelector } from 'react-redux';\nimport { RootState, store } from '@/store';\nimport { InkProvider, useInk } from '../../contexts/InkContext';\nimport { DaemonConnectionManager } from './components/DaemonConnectionManager';\nimport { OauthSetup } from './guards/OauthSetup';\nimport { Agents } from './screens/Agents';\nimport { Onboarding } from './screens/Onboarding';\n\n// Create a client with memory management\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n retry: false,\n refetchOnWindowFocus: false,\n gcTime: 5 * 60 * 1000, // Garbage collect unused queries after 5 minutes\n staleTime: 30 * 1000, // Consider data stale after 30 seconds\n },\n },\n});\n\nconst DaemonAppContent: React.FC = () => {\n const { Box } = useInk();\n\n const tabs = useSelector((state: RootState) => state.agentTabs.tabs);\n const hasAgentTabs = tabs.length > 0; // No dashboard, so any tab is an agent\n\n return (\n <OauthSetup>\n {({ isAuthenticated }) => (\n <DaemonConnectionManager>\n <Box flexGrow={1} flexDirection=\"column\">\n {isAuthenticated && !hasAgentTabs ? <Onboarding /> : <Agents />}\n </Box>\n </DaemonConnectionManager>\n )}\n </OauthSetup>\n );\n};\n\nconst DaemonApp: React.FC = () => {\n return (\n <InkProvider>\n <Provider store={store}>\n <QueryClientProvider client={queryClient}>\n <DaemonAppContent />\n </QueryClientProvider>\n </Provider>\n </InkProvider>\n );\n};\n\nexport const startDaemonApp = async () => {\n // Dynamically import Ink's render function to avoid top-level yoga-layout import\n const { render } = await import('ink');\n // Disable Ink's stdin handling - we use StdinManager instead\n const { waitUntilExit } = render(<DaemonApp />, {\n stdin: process.stdin,\n stdout: process.stdout,\n stderr: process.stderr,\n });\n return waitUntilExit();\n};\n"],"names":["DaemonConnectionManager","children","Box","Text","useInk","dispatch","useDispatch","status","useSelector","state","error","isShuttingDown","useRef","useEffect","launchDaemon","setShutdownCallback","daemonManager","cliContainer","GLOBAL_TYPES","clearShutdownCallback","jsxDEV","this","TokenInput","onSubmit","onCancel","useInput","value","setValue","useState","valueRef","input","key","currentValue","newValue","OauthSetup","Newline","Static","Link","queryClient","useQueryClient","deviceCode","setDeviceCode","showTokenInput","setShowTokenInput","authService","credentialsService","existingAuth","isCheckingAuth","useQuery","creds","deviceCodeMutation","useMutation","baseUrl","clientId","response","errorData","data","verifyTokenMutation","token","apiKeyToken","verificationUrl","Fragment","AgentTabs","tabs","activeTabId","tab","index","fKeyLabel","LaunchAgent","Agents","CAPermissionGuard","AgentView","BoxSizeMeasure","StdinForwarder","Onboarding","QueryClient","DaemonAppContent","hasAgentTabs","isAuthenticated","DaemonApp","InkProvider","Provider","store","QueryClientProvider","startDaemonApp","render","waitUntilExit"],"mappings":"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"}
1
+ {"version":3,"file":"daemon.js","sources":["../src/systems/cli/apps/daemon/components/DaemonConnectionManager.tsx","../src/systems/cli/apps/daemon/components/TokenInput.tsx","../src/systems/cli/apps/daemon/guards/OauthSetup.tsx","../src/systems/cli/apps/daemon/components/AgentTabs.tsx","../src/systems/cli/apps/daemon/screens/Agents/index.tsx","../src/systems/cli/apps/daemon/screens/Onboarding/index.tsx","../src/systems/cli/apps/daemon/index.tsx"],"sourcesContent":["import { cliContainer } from '@cli/container';\nimport React, { useEffect, useRef } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport type { DaemonManager } from '@/services';\nimport type { AppDispatch } from '@/store';\nimport { RootState } from '@/store';\nimport { launchDaemon } from '@/store/slices/daemonStatusSlice';\nimport { GLOBAL_TYPES } from '@/types';\nimport { useInk } from '../../../contexts/InkContext';\nimport { clearShutdownCallback, setShutdownCallback } from '../../../services/StdinManager';\n\ninterface DaemonConnectionManagerProps {\n children: React.ReactNode;\n}\n\nexport const DaemonConnectionManager: React.FC<DaemonConnectionManagerProps> = ({ children }) => {\n const { Box, Text } = useInk();\n const dispatch = useDispatch<AppDispatch>();\n const status = useSelector((state: RootState) => state.daemonStatus.status);\n const error = useSelector((state: RootState) => state.daemonStatus.error);\n const isShuttingDown = useRef(false);\n\n useEffect(() => {\n dispatch(launchDaemon());\n\n // Register shutdown callback for Ctrl+C handling\n const handleShutdown = async () => {\n if (isShuttingDown.current) return;\n isShuttingDown.current = true;\n\n try {\n const daemonManager = cliContainer.get<DaemonManager>(GLOBAL_TYPES.DaemonManager);\n if (daemonManager.isRunning()) {\n await daemonManager.stop();\n }\n } catch {\n // Ignore errors during shutdown\n }\n // daemonManager.stop() calls process.exit() at the end\n };\n\n setShutdownCallback(handleShutdown);\n\n return () => {\n clearShutdownCallback();\n };\n }, [dispatch]);\n\n if (status === 'starting') {\n return (\n <Box flexDirection=\"column\" padding={1}>\n <Text color=\"yellow\">Connecting to Agiflow...</Text>\n </Box>\n );\n }\n\n if (status === 'error') {\n return (\n <Box flexDirection=\"column\" padding={1} borderStyle=\"round\" borderColor=\"red\">\n <Text color=\"red\" bold>\n Connection Error\n </Text>\n <Text>{error}</Text>\n <Text dimColor>Retrying in background...</Text>\n </Box>\n );\n }\n\n if (status === 'connected') {\n return <>{children}</>;\n }\n\n return null;\n};\n","import React, { useRef, useState } from 'react';\nimport { useInk } from '../../../contexts/InkContext';\n\ninterface TokenInputProps {\n onSubmit: (token: string) => void;\n onCancel?: () => void;\n}\n\nexport const TokenInput: React.FC<TokenInputProps> = ({ onSubmit, onCancel }) => {\n const { Box, Text, useInput } = useInk();\n const [value, setValue] = useState('');\n const valueRef = useRef('');\n\n useInput((input, key) => {\n // Ctrl+C clears text if there's any, otherwise allows default behavior (exit)\n if (key.ctrl && input === 'c' && valueRef.current.length > 0) {\n valueRef.current = '';\n setValue('');\n return;\n }\n\n if (key.return) {\n const currentValue = valueRef.current.trim();\n if (currentValue) {\n onSubmit(currentValue);\n }\n return;\n }\n\n if (key.escape) {\n onCancel?.();\n return;\n }\n\n if (key.backspace || key.delete) {\n const newValue = valueRef.current.slice(0, -1);\n valueRef.current = newValue;\n setValue(newValue);\n return;\n }\n\n if (input && !key.ctrl && !key.meta) {\n const newValue = valueRef.current + input;\n valueRef.current = newValue;\n setValue(newValue);\n }\n });\n\n return (\n <Box flexDirection=\"column\">\n <Text>\n <Text bold color=\"cyan\">\n Token:{' '}\n </Text>\n <Text color=\"green\">{value.length > 0 ? `${value.slice(0, 20)}...` : <Text dimColor>(paste token)</Text>}</Text>\n </Text>\n <Text dimColor>\n <Text bold>Enter</Text> to submit • <Text bold>Esc</Text> to cancel\n </Text>\n </Box>\n );\n};\n","import { cliContainer } from '@cli/container';\nimport { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\nimport React, { useEffect, useState } from 'react';\nimport { CredentialsService, DeviceCodeAuthService, type DeviceCodeResponse } from '@/services';\nimport { GLOBAL_TYPES } from '@/types';\nimport { useInk } from '../../../contexts/InkContext';\nimport { TokenInput } from '../components/TokenInput';\n\ninterface OauthSetupProps {\n children: (props: { isAuthenticated: boolean }) => React.ReactNode;\n}\n\nexport const OauthSetup: React.FC<OauthSetupProps> = ({ children }) => {\n const { Box, Text, Newline, Static, Link } = useInk();\n const queryClient = useQueryClient();\n const [deviceCode, setDeviceCode] = useState<DeviceCodeResponse | null>(null);\n const [showTokenInput, setShowTokenInput] = useState(false);\n\n // Get services from DI container\n const authService = cliContainer.get<DeviceCodeAuthService>(GLOBAL_TYPES.DeviceCodeAuthService);\n const credentialsService = cliContainer.get<CredentialsService>(GLOBAL_TYPES.CredentialsService);\n\n // Check existing authentication\n const { data: existingAuth, isLoading: isCheckingAuth } = useQuery({\n queryKey: ['auth', 'check'],\n queryFn: async () => {\n const creds = await credentialsService.load();\n if (creds && creds.apiKey && creds.expiresAt && authService.isTokenValid(creds.expiresAt)) {\n return { authenticated: true };\n }\n return { authenticated: false };\n },\n retry: false,\n });\n\n // Request device code\n const deviceCodeMutation = useMutation({\n mutationFn: async () => {\n const baseUrl = authService.getServerUrl();\n const clientId = authService.getClientId();\n\n const response = await fetch(`${baseUrl}/api/v1/oauth/device/authorize`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n client_id: clientId,\n scope: 'openid profile email',\n }),\n });\n\n if (!response.ok) {\n const errorData = await response.json();\n throw new Error(errorData.error_description || `Device authorization failed: ${response.status}`);\n }\n\n return response.json() as Promise<DeviceCodeResponse>;\n },\n onSuccess: (data) => {\n setDeviceCode(data);\n setShowTokenInput(true);\n },\n });\n\n // Verify token mutation\n const verifyTokenMutation = useMutation({\n mutationFn: async (token: string) => {\n if (!deviceCode) {\n throw new Error('Device code not available');\n }\n const apiKeyToken = await authService.exchangeTokenForApiKey(token, deviceCode.device_code);\n // Save to credentials.json\n await credentialsService.setApiKey({\n apiKey: apiKeyToken.api_key,\n organizationId: apiKeyToken.organization_id,\n expiresAt: apiKeyToken.expires_at,\n deviceId: apiKeyToken.device_id,\n });\n return { success: true };\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['auth', 'check'] });\n },\n });\n\n // Trigger device code request when not authenticated\n useEffect(() => {\n if (existingAuth && !existingAuth.authenticated && !deviceCodeMutation.isPending && !deviceCode) {\n deviceCodeMutation.mutate();\n }\n }, [existingAuth, deviceCodeMutation, deviceCode]);\n\n // Authenticated - render children\n if (existingAuth?.authenticated) {\n return <>{children({ isAuthenticated: true })}</>;\n }\n\n // Checking authentication\n if (isCheckingAuth) {\n return (\n <Box flexDirection=\"column\" padding={1}>\n <Box marginBottom={1}>\n <Text bold color=\"cyan\">\n 🔐 Agiflow Authentication\n </Text>\n </Box>\n <Box borderStyle=\"round\" borderColor=\"cyan\" padding={1}>\n <Box flexDirection=\"column\">\n <Text>\n <Text color=\"cyan\">◉ </Text>\n <Text>Checking existing credentials...</Text>\n </Text>\n </Box>\n </Box>\n </Box>\n );\n }\n\n // Requesting device code\n if (deviceCodeMutation.isPending) {\n return (\n <Box flexDirection=\"column\" padding={1}>\n <Box marginBottom={1}>\n <Text bold color=\"cyan\">\n 🔐 Agiflow Authentication\n </Text>\n </Box>\n <Box borderStyle=\"round\" borderColor=\"cyan\" padding={1}>\n <Box flexDirection=\"column\">\n <Text>\n <Text color=\"green\">✓ </Text>\n <Text dimColor>Checked existing credentials</Text>\n </Text>\n <Text>\n <Text color=\"cyan\">◉ </Text>\n <Text>Requesting device authorization...</Text>\n </Text>\n </Box>\n </Box>\n </Box>\n );\n }\n\n // Show authentication instructions\n if (deviceCode) {\n const verificationUrl = `${deviceCode.verification_uri}?code=${encodeURIComponent(deviceCode.user_code)}`;\n\n return (\n <>\n <Static items={[1]}>\n {() => (\n <Box flexDirection=\"column\" padding={1}>\n <Box marginBottom={1}>\n <Text bold color=\"cyan\">\n 🔐 Agiflow Authentication\n </Text>\n </Box>\n\n <Box borderStyle=\"round\" borderColor=\"green\" padding={1} marginBottom={1}>\n <Box flexDirection=\"column\">\n <Text>\n <Text color=\"green\">✓ </Text>\n <Text dimColor>Checked existing credentials</Text>\n </Text>\n <Text>\n <Text color=\"green\">✓ </Text>\n <Text dimColor>Device authorization requested</Text>\n </Text>\n <Text>\n <Text color=\"cyan\">◉ </Text>\n <Text bold>Waiting for browser confirmation</Text>\n </Text>\n </Box>\n </Box>\n\n <Box borderStyle=\"double\" borderColor=\"yellow\" padding={1} marginBottom={1}>\n <Box flexDirection=\"column\">\n <Text bold color=\"yellow\">\n 📋 Authentication Steps:\n </Text>\n <Newline />\n\n <Text>\n <Text bold color=\"cyan\">\n 1.{' '}\n </Text>\n <Text>Open this URL in your browser:</Text>\n </Text>\n <Box paddingLeft={3} marginBottom={1}>\n <Link url={verificationUrl}>\n <Text color=\"blue\" bold>\n {verificationUrl}\n </Text>\n </Link>\n </Box>\n\n <Text>\n <Text bold color=\"cyan\">\n 2.{' '}\n </Text>\n <Text>Enter this verification code:</Text>\n </Text>\n <Box paddingLeft={3} marginBottom={1} borderStyle=\"single\" borderColor=\"green\" paddingX={2}>\n <Text color=\"green\" bold>\n {deviceCode.user_code}\n </Text>\n </Box>\n\n <Text>\n <Text bold color=\"cyan\">\n 3.{' '}\n </Text>\n <Text>Sign in and authorize the device</Text>\n </Text>\n <Newline />\n\n <Text>\n <Text bold color=\"cyan\">\n 4.{' '}\n </Text>\n <Text>Copy the verification token (JWT) shown after confirmation</Text>\n </Text>\n <Newline />\n\n <Text dimColor>The browser will show a long token that starts with \"eyJ...\"</Text>\n </Box>\n </Box>\n\n <Box borderStyle=\"round\" borderColor=\"gray\" padding={1} marginBottom={1}>\n <Box flexDirection=\"column\">\n <Text dimColor>⏱️ Expires in: {Math.floor(deviceCode.expires_in / 60)} minutes</Text>\n <Text dimColor>💡 Tip: The URL includes your verification code for convenience</Text>\n </Box>\n </Box>\n </Box>\n )}\n </Static>\n\n {showTokenInput && (\n <Box borderStyle=\"round\" borderColor=\"cyan\" padding={1}>\n <TokenInput\n onSubmit={(token) => verifyTokenMutation.mutate(token)}\n onCancel={() => setShowTokenInput(false)}\n />\n </Box>\n )}\n </>\n );\n }\n\n // Verifying token\n if (verifyTokenMutation.isPending) {\n return (\n <Box flexDirection=\"column\" padding={1}>\n <Box marginBottom={1}>\n <Text bold color=\"cyan\">\n 🔐 Agiflow Authentication\n </Text>\n </Box>\n <Box borderStyle=\"round\" borderColor=\"cyan\" padding={1}>\n <Box flexDirection=\"column\">\n <Text>\n <Text color=\"cyan\">◉ </Text>\n <Text>Verifying token...</Text>\n </Text>\n </Box>\n </Box>\n </Box>\n );\n }\n\n // Error state\n if (deviceCodeMutation.isError || verifyTokenMutation.isError) {\n const error = deviceCodeMutation.error || verifyTokenMutation.error;\n return (\n <Box flexDirection=\"column\" padding={1}>\n <Box marginBottom={1}>\n <Text bold color=\"red\">\n ❌ Authentication Error\n </Text>\n </Box>\n <Box borderStyle=\"round\" borderColor=\"red\" padding={1} marginBottom={1}>\n <Text color=\"red\">{error?.message || 'Unknown error occurred'}</Text>\n </Box>\n <Box borderStyle=\"single\" borderColor=\"gray\" padding={1}>\n <Box flexDirection=\"column\">\n <Text dimColor>💡 Troubleshooting:</Text>\n <Text dimColor> • Check your internet connection</Text>\n <Text dimColor> • Verify the server URL is correct</Text>\n <Text dimColor> • Ensure the token is valid and not expired</Text>\n <Text dimColor> • Try running the daemon again</Text>\n <Newline />\n <Text dimColor>⌨️ Press Ctrl+C to exit</Text>\n </Box>\n </Box>\n </Box>\n );\n }\n\n // Default loading state\n return null;\n};\n","import React, { useMemo } from 'react';\nimport { useSelector } from 'react-redux';\nimport type { AgentManager } from '@/services';\nimport { RootState } from '@/store';\nimport { GLOBAL_TYPES } from '@/types';\nimport { LaunchAgent } from '../../../components/LaunchAgent';\nimport { cliContainer } from '../../../container';\nimport { useInk } from '../../../contexts/InkContext';\nimport { AgentConfigService } from '../../../services/agent/AgentConfigService';\nimport { AGENT_TYPES } from '../../../types';\n\nconst isMacOS = process.platform === 'darwin';\n\nexport const AgentTabs: React.FC = () => {\n const { Box, Text } = useInk();\n const tabs = useSelector((state: RootState) => state.agentTabs.tabs);\n const activeTabId = useSelector((state: RootState) => state.agentTabs.activeTabId);\n\n // Get the effective working directory for the active tab\n const activeWorkingDir = useMemo(() => {\n if (!activeTabId) return null;\n\n try {\n const agentManager = cliContainer.get<AgentManager>(GLOBAL_TYPES.AgentManager);\n const agentContainer = agentManager.getAgentContainer(activeTabId);\n\n if (agentContainer) {\n const agentConfigService = agentContainer.get<AgentConfigService>(AGENT_TYPES.AgentConfigService);\n return agentConfigService.getEffectiveWorkingDir();\n }\n } catch {\n // Container or service not available yet\n }\n\n // Fallback to request config working directory\n const activeTab = tabs.find((t) => t.id === activeTabId);\n return activeTab?.request.payload.agentConfig?.workingDirectory || process.cwd();\n }, [activeTabId, tabs]);\n\n return (\n <Box flexDirection=\"column\" marginTop={1}>\n <Box borderStyle=\"single\" borderColor=\"gray\">\n {tabs.map((tab, index) => {\n const fKeyLabel = `^F${index + 1}`; // Ctrl+F on macOS\n return (\n <Box key={tab.id} marginRight={2} borderStyle={activeTabId === tab.id ? 'round' : undefined}>\n <Text color={'#d1d5db'} bold={activeTabId === tab.id} dimColor={activeTabId !== tab.id}>\n [{fKeyLabel}] {tab.label}\n {tab.unreadCount && tab.unreadCount > 0 && tab.id !== activeTabId ? ` (${tab.unreadCount})` : ''}\n </Text>\n <LaunchAgent tab={tab} />\n </Box>\n );\n })}\n </Box>\n {activeWorkingDir && <Text dimColor>{activeWorkingDir}</Text>}\n {isMacOS && <Text dimColor>Press fn + Shift + F[num] to switch tabs</Text>}\n </Box>\n );\n};\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport { RootState } from '@/store';\nimport { StdinForwarder } from '@/systems/cli/components/StdinForwarder';\nimport { AgentView } from '../../../../components/AgentView';\nimport { BoxSizeMeasure } from '../../../../components/BoxSizeMeasure';\nimport { CAPermissionGuard } from '../../../../components/CAPermissionGuard';\nimport { useInk } from '../../../../contexts/InkContext';\nimport { AgentTabs } from '../../components/AgentTabs';\n\nexport const Agents: React.FC = () => {\n const { Box } = useInk();\n const activeTabId = useSelector((state: RootState) => state.agentTabs.activeTabId);\n // F-key tab switching is handled by StdinForwarder via escape sequences\n\n return (\n <Box flexDirection=\"column\" flexGrow={1}>\n <CAPermissionGuard>\n <AgentView key={activeTabId} />\n </CAPermissionGuard>\n <BoxSizeMeasure>\n <AgentTabs />\n </BoxSizeMeasure>\n <StdinForwarder />\n </Box>\n );\n};\n","import React from 'react';\nimport { useInk } from '../../../../contexts/InkContext';\n\nexport const Onboarding: React.FC = () => {\n const { Box, Text } = useInk();\n\n return (\n <Box flexDirection=\"column\" borderStyle=\"round\" borderColor=\"green\" padding={1} flexGrow={1}>\n <Text bold color=\"green\">\n Welcome to Agent CLI Daemon!\n </Text>\n <Box marginTop={1}>\n <Text>It looks like you don't have any active agent sessions.</Text>\n </Box>\n <Box marginTop={1}>\n <Text>\n Please use the Agiflow UI Dashboard to start a{' '}\n <Text bold color=\"blue\">\n Project Plan\n </Text>\n ,{' '}\n <Text bold color=\"blue\">\n Work Unit\n </Text>\n , or{' '}\n <Text bold color=\"blue\">\n Task Chat\n </Text>{' '}\n to begin.\n </Text>\n </Box>\n <Box marginTop={1}>\n <Text dimColor>The Agiflow UI Dashboard can be accessed in your browser.</Text>\n </Box>\n </Box>\n );\n};\n","import 'reflect-metadata'; // Must be first import for InversifyJS\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport React from 'react';\nimport { Provider, useSelector } from 'react-redux';\nimport { RootState, store } from '@/store';\nimport { InkProvider, useInk } from '../../contexts/InkContext';\nimport { DaemonConnectionManager } from './components/DaemonConnectionManager';\nimport { OauthSetup } from './guards/OauthSetup';\nimport { Agents } from './screens/Agents';\nimport { Onboarding } from './screens/Onboarding';\n\n// Create a client with memory management\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n retry: false,\n refetchOnWindowFocus: false,\n gcTime: 5 * 60 * 1000, // Garbage collect unused queries after 5 minutes\n staleTime: 30 * 1000, // Consider data stale after 30 seconds\n },\n },\n});\n\nconst DaemonAppContent: React.FC = () => {\n const { Box } = useInk();\n\n const tabs = useSelector((state: RootState) => state.agentTabs.tabs);\n const hasAgentTabs = tabs.length > 0; // No dashboard, so any tab is an agent\n\n return (\n <OauthSetup>\n {({ isAuthenticated }) => (\n <DaemonConnectionManager>\n <Box flexGrow={1} flexDirection=\"column\">\n {isAuthenticated && !hasAgentTabs ? <Onboarding /> : <Agents />}\n </Box>\n </DaemonConnectionManager>\n )}\n </OauthSetup>\n );\n};\n\nconst DaemonApp: React.FC = () => {\n return (\n <InkProvider>\n <Provider store={store}>\n <QueryClientProvider client={queryClient}>\n <DaemonAppContent />\n </QueryClientProvider>\n </Provider>\n </InkProvider>\n );\n};\n\nexport const startDaemonApp = async () => {\n // Dynamically import Ink's render function to avoid top-level yoga-layout import\n const { render } = await import('ink');\n // Disable Ink's stdin handling - we use StdinManager instead\n const { waitUntilExit } = render(<DaemonApp />, {\n stdin: process.stdin,\n stdout: process.stdout,\n stderr: process.stderr,\n });\n return waitUntilExit();\n};\n"],"names":["DaemonConnectionManager","children","Box","Text","useInk","dispatch","useDispatch","status","useSelector","state","error","isShuttingDown","useRef","useEffect","launchDaemon","setShutdownCallback","daemonManager","cliContainer","GLOBAL_TYPES","clearShutdownCallback","jsxDEV","this","TokenInput","onSubmit","onCancel","useInput","value","setValue","useState","valueRef","input","key","currentValue","newValue","OauthSetup","Newline","Static","Link","queryClient","useQueryClient","deviceCode","setDeviceCode","showTokenInput","setShowTokenInput","authService","credentialsService","existingAuth","isCheckingAuth","useQuery","creds","deviceCodeMutation","useMutation","baseUrl","clientId","response","errorData","data","verifyTokenMutation","token","apiKeyToken","verificationUrl","Fragment","isMacOS","AgentTabs","tabs","activeTabId","activeWorkingDir","useMemo","agentContainer","AGENT_TYPES","tab","index","fKeyLabel","LaunchAgent","Agents","CAPermissionGuard","AgentView","BoxSizeMeasure","StdinForwarder","Onboarding","QueryClient","DaemonAppContent","hasAgentTabs","isAuthenticated","DaemonApp","InkProvider","Provider","store","QueryClientProvider","startDaemonApp","render","waitUntilExit"],"mappings":"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"}