cli.partnerctl.description=Partner command line tool. cli.init.description=Initialize Partner agent. cli.run.description=Start Partner agent. cli.run.option.background.description=Run Partner in background. cli.shutdown.description=Shutdown Partner agent. cli.shutdown.option.timeout.description=Seconds to wait after graceful termination before failing or forcing shutdown. cli.shutdown.option.force.description=Forcefully kill matching Partner process if it does not exit before timeout. cli.log.description=Show Partner logs. cli.log.option.tail.description=Number of log lines to show before exiting or following. cli.log.option.follow.description=Follow appended log output. cli.log.option.level.description=Set Partner runtime log level. Available values: TRACE, DEBUG, INFO, WARN, ERROR. Default: INFO. cli.chat.description=Start an interactive chat client. cli.config.description=Manage Partner configuration. cli.module.description=Manage Partner modules. init.home.section=Initialize Partner Home init.home.label=Partner Home init.home.success=Partner Home initialized at {0} init.home.duplicate.warning=Partner Home already contains files: {0} init.home.duplicate.choice.label=Partner Home already contains files. Choose how to continue init.home.duplicate.choice.another=Use another Partner Home init.home.duplicate.choice.another.description=Choose a different directory init.home.duplicate.choice.overwrite=Overwrite current Partner Home init.home.duplicate.choice.overwrite.description=Delete existing contents and continue init.home.duplicate.choice.exit=Cancel init init.home.duplicate.confirmDelete=Delete all files under {0}? init.home.notDirectory=Partner Home is not a directory: {0} init.home.overwrite.refuseRoot=Refuse to overwrite filesystem root: {0} init.home.overwrite.refuseUserHome=Refuse to overwrite user home directory: {0} init.home.overwrite.refuseBroadDirectory=Refuse to overwrite suspiciously broad directory: {0} init.install.section=Install Partner init.install.method.label=Choose an installation method init.install.method.buildFromSource=Build Partner from source init.install.method.downloadFromRelease=Download Partner release init.install.method.downloadFromRelease.startDownloading=Downloading Partner release... init.install.method.downloadFromRelease.success=Partner release downloaded successfully. init.install.method.downloadFromRelease.progress.percent=Downloading Partner release... {0}% init.install.method.downloadFromRelease.progress.size=Downloading Partner release... {0} KB init.install.method.downloadFromRelease.done=Downloading Partner release... Done init.gateway.section=Configure Gateway init.gateway.select.label=Select gateway init.gateway.websocket.choice=WebSocket Gateway init.gateway.warn.notFound=Could not find gateway with id {0} init.gateway.warn.skipped=Gateway: {0} configuration skipped init.gateway.info.skippedUseDefault=Skipped gateway configuration. Partner will use WebSocket as default gateway init.gateway.defaultChannel.label=Set default channel init.gateway.info.defaultChannel=The default channel will be set to {0} init.gateway.success.configWritten=Gateway config written to {0} init.model.section=Configure Model init.model.provider.default.label=Choose default model provider type init.model.provider.label=Choose model provider type init.model.warn.noDefaultProvider=No default model provider configured. Partner may not start normally unless model.json exists or PARTNER_DEFAULT_BASE_URL, PARTNER_DEFAULT_API_KEY, and PARTNER_DEFAULT_MODEL are provided at runtime. init.model.confirm.skipConfiguration=Skip model configuration? init.model.confirm.addAdditionalProvider=Add additional model provider? init.model.success.configWritten=Model config written to {0} init.finish.section=Finish init.finish.confirm.startNow=Start Partner now? init.finish.info.completed=Initialization completed. init.finish.info.starting=Starting Partner... configure.gateway.websocket.section=Configure Gateway: WebSocket Gateway configure.gateway.websocket.port.label=port configure.gateway.websocket.port.error.int=WebSocket port only accepts int value configure.gateway.websocket.port.error.range=WebSocket port should be between 1 and 65565 configure.gateway.websocket.heartbeatInterval.label=heartbeat interval configure.gateway.websocket.heartbeatInterval.error.long=Heartbeat interval only accepts long value configure.gateway.websocket.hostname.label=Listening hostname configure.gateway.websocket.hostname.error.required=Hostname is required configure.gateway.websocket.hostname.error.whitespace=Hostname must not contain whitespace. configure.gateway.websocket.hostname.error.protocol=Do not include protocol. Use hostname only, for example: 127.0.0.1 configure.gateway.websocket.hostname.error.path=Do not include path. Use hostname only. configure.gateway.websocket.hostname.error.port=Do not include port here. Port is configured separately. configure.gateway.external.section=Configure Gateway: {0} configure.gateway.external.details.title=Gateway module details configure.gateway.external.details.description=Description configure.gateway.external.details.source=Source configure.gateway.external.details.buildCommand=Build command configure.gateway.external.details.artifact=Artifact configure.gateway.external.details.installTarget=Install target configure.gateway.external.details.configTarget=Config target configure.gateway.external.details.noConfig=No config configure.gateway.external.confirmContinue=Continue installation? configure.field.error.int={0} only accepts int value configure.field.error.number={0} only accepts number value configure.field.error.boolean={0} only accepts true or false configure.field.error.rawJson={0} only accepts valid JSON configure.model.openAiCompatible.providerName.label=Provider name configure.model.openAiCompatible.providerName.error.duplicateDefault=Default provider cannot be duplicate configure.model.openAiCompatible.baseUrl.label=Base url configure.model.openAiCompatible.apiKey.label=Apikey configure.model.openAiCompatible.defaultModel.label=Default model configure.model.openAiCompatible.baseUrl.error.required=Base url is required configure.model.openAiCompatible.baseUrl.error.validUrl=Base url must be a valid URL configure.model.openAiCompatible.baseUrl.error.scheme=Base url must start with http:// or https:// configure.model.openAiCompatible.baseUrl.error.host=Base url must include a valid host configure.model.openAiCompatible.baseUrl.error.userInfo=Base url must not include user info configure.model.openAiCompatible.baseUrl.error.fragment=Base url must not include fragment sourceBuild.info.cloning=Cloning {0} source from {1} sourceBuild.error.cloneFailed=Failed to clone {0} source from {1} sourceBuild.info.building=Building {0} sourceBuild.error.buildFailed=Failed to build {0}. sourceBuild.error.artifactNotFound=Could not find built {0} artifact in {1} sourceBuild.success.installed={0} installed at {1} sourceBuild.tool.missing.header=Missing required build tools: sourceBuild.tool.missing.item={0}: sourceBuild.tool.missing.reason= {0} sourceBuild.tool.missing.footer=Install the missing tools, then rerun: sourceBuild.tool.java.reason=Required to run Maven. Command failed: java --version sourceBuild.tool.javac.reason=Required to compile Partner from source. Install a JDK, not just a JRE. Command failed: javac --version sourceBuild.tool.git.reason=Required to clone Partner source. Command failed: git --version sourceBuild.tool.mvn.reason=Required to build Partner from source. Command failed: mvn --version control.run.error.jarNotFound=Partner runtime jar does not exist: {0}. Run partnerctl init first to initialize Partner. control.run.error.exited=Partner exited with code {0} control.run.error.alreadyRunning=Partner is already running. pid={0} control.run.success.backgroundStarted=Partner started in background. pid={0} control.run.info.logFile=Log file: {0} control.run.log.foregroundStarting=Starting Partner in foreground. pid={0}, jar={1} control.run.log.backgroundStarting=Starting Partner in background. pid={0}, jar={1} control.run.log.exited=Partner process exited with code {0} control.log.info.notFound=Partner log file does not exist: {0} control.log.info.waiting=Waiting for Partner log file: {0} control.shutdown.info.notRunning=No running Partner process found for {0} control.shutdown.info.stopping=Stopping Partner process pid={0} control.shutdown.success.stopped=Partner process pid={0} stopped control.shutdown.warn.force=Force killing Partner process pid={0} control.shutdown.error.notStopped=Partner process pid={0} did not stop control.shutdown.error.notStoppedUseForce=Partner process pid={0} did not stop. Use --force to kill it forcibly. control.shutdown.error.failed=Failed to stop one or more Partner processes