mu-agent 0.2.5 → 0.2.7
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.
- package/CHANGELOG.md +25 -0
- package/README.md +2 -1
- package/dist/bundle/chunks/{chunk-C4L65EFW.js → chunk-SJA6GZQX.js} +2 -2
- package/dist/bundle/chunks/{chunk-VPSGIO2O.js → chunk-Y4V36NDW.js} +1 -1
- package/dist/bundle/chunks/{virtual-modules-4BSUQTRT.js → virtual-modules-P3ZGSM7W.js} +1 -1
- package/dist/bundle/cli-runtime.js +1 -1
- package/dist/bundle/index.js +1 -1
- package/dist/bundle/rpc-entry.js +1 -1
- package/judge/dist/auth.js +1 -0
- package/judge/dist/mude.js +8 -4
- package/judge/dist/setup.js +124 -26
- package/judge/manifest.json +2 -2
- package/judge/mu/{chunk-JK2OO2CN.js → chunk-GELL4P7W.js} +1 -1
- package/judge/mu/{cloud-code-K5ONKXO7.js → cloud-code-CM6I6AXS.js} +1 -1
- package/judge/mu/index.js +1114 -789
- package/kyrn/bin/kyrn-doctor +22 -3
- package/kyrn/bin/mu.mjs +11 -7
- package/package.json +2 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
|
|
2
|
-
import{AgentSession,AgentSessionRuntime,AssistantMessageComponent,BashExecutionComponent,BorderedLoader,BranchSummaryMessageComponent,CURRENT_SESSION_VERSION,CompactionSummaryMessageComponent,CredentialSynchronizationError,CustomEditor,CustomMessageComponent,DEFAULT_COMPACTION_SETTINGS,DefaultPackageManager,DefaultResourceLoader,DynamicBorder,ExtensionEditorComponent,ExtensionInputComponent,ExtensionRunner,ExtensionSelectorComponent,FileModelsStore,FooterComponent,InteractiveMode,LoginDialogComponent,MCP_CONNECTION_EVENT,ModelRegistry,ModelRuntime,ModelSelectorComponent,OAuthSelectorComponent,RpcClient,SessionManager,SessionSelectorComponent,SettingsManager,SettingsSelectorComponent,SkillInvocationMessageComponent,ThinkingSelectorComponent,ToolExecutionComponent,TreeSelectorComponent,UserMessageComponent,UserMessageSelectorComponent,VIRTUAL_MODEL_STATE_ENTRY,applyHttpProxySettings,buildContextEntries,buildSessionContext,buildSessionProjection,calculateContextTokens,collectEntriesForBranchSummary,compact,configureHttpDispatcher,convertToLlm,convertToPng,copyToClipboard,createAgentSession,createAgentSessionFromServices,createAgentSessionRuntime,createAgentSessionServices,createBashTool,createBashToolDefinition,createCodemodeExtension,createCodingTools,createEditTool,createEditToolDefinition,createEventBus,createExtensionRuntime,createFindTool,createFindToolDefinition,createGrepTool,createGrepToolDefinition,createLocalBashOperations,createLocalPowerShellOperations,createLsTool,createLsToolDefinition,createMcpExtension,createPowerShellTool,createPowerShellToolDefinition,createReadOnlyTools,createReadTool,createReadToolDefinition,createSyntheticSourceInfo,createToolSearchExtension,createWriteTool,createWriteToolDefinition,defaultModelPerProvider,defineTool,detectSupportedImageMimeTypeFromFile,discoverAndLoadExtensions,estimateTokens,findCutPoint,findTurnStartIndex,formatDimensionNote,formatSkillsForPrompt,generateBranchSummary,generateDiffString,generateSummary,generateSummaryWithUsage,generateUnifiedPatch,getLastAssistantUsage,getLatestCompactionEntry,isBashToolResult,isEditToolResult,isFindToolResult,isGrepToolResult,isLsToolResult,isPowerShellToolResult,isReadToolResult,isToolCallEventType,isWriteToolResult,loadProjectContextFiles,loadSkills,loadSkillsFromDir,main,migrateSessionEntries,parseArgs,parseFrontmatter,parseSessionEntries,parseSkillBlock,prepareBranchEntries,renderDiff,resizeImage,resolveCliModel,resolveModelScopeWithDiagnostics,runPrintMode,runRpcMode,serializeConversation,sessionEntryToContextMessages,setupCli,shouldCompact,stdioRpcTransport,stripFrontmatter,withFileMutationQueue,wrapRegisteredTool,wrapRegisteredTools}from"./chunk-C4L65EFW.js";import{DEFAULT_MAX_BYTES,DEFAULT_MAX_LINES,formatReadLineRange,formatSize,truncateHead,truncateLine,truncateTail,truncateToVisualLines}from"./chunk-DYTENXHX.js";import{ArminComponent}from"./chunk-FLHKNMLQ.js";import{Container,SelectList,Theme,getAvailableThemes,getLanguageFromPath,getMarkdownTheme,getSelectListTheme,getSettingsListTheme,highlightCode,initTheme,keyHint,keyText,rawKeyHint}from"./chunk-LT2C56HV.js";import{ProjectTrustStore,hasTrustRequiringProjectResources,loadMcpConfig}from"./chunk-6Z2347ML.js";import{readStoredCredential}from"./chunk-MF3VB62R.js";import{getPowerShellConfig,getShellConfig}from"./chunk-URBBMV3M.js";import{CONFIG_DIR_NAME,VERSION,getAgentDir,getDocsPath,getExamplesPath,getPackageDir,getReadmePath}from"./chunk-LHRPMXVI.js";import{__export}from"./chunk-JXWJOIH4.js";var dist_exports={};__export(dist_exports,{AgentSession:()=>AgentSession,AgentSessionRuntime:()=>AgentSessionRuntime,ArminComponent:()=>ArminComponent,AssistantMessageComponent:()=>AssistantMessageComponent,BashExecutionComponent:()=>BashExecutionComponent,BorderedLoader:()=>BorderedLoader,BranchSummaryMessageComponent:()=>BranchSummaryMessageComponent,CONFIG_DIR_NAME:()=>CONFIG_DIR_NAME,CURRENT_SESSION_VERSION:()=>CURRENT_SESSION_VERSION,CompactionSummaryMessageComponent:()=>CompactionSummaryMessageComponent,CredentialSynchronizationError:()=>CredentialSynchronizationError,CustomEditor:()=>CustomEditor,CustomMessageComponent:()=>CustomMessageComponent,DEFAULT_COMPACTION_SETTINGS:()=>DEFAULT_COMPACTION_SETTINGS,DEFAULT_MAX_BYTES:()=>DEFAULT_MAX_BYTES,DEFAULT_MAX_LINES:()=>DEFAULT_MAX_LINES,DefaultPackageManager:()=>DefaultPackageManager,DefaultResourceLoader:()=>DefaultResourceLoader,DynamicBorder:()=>DynamicBorder,ExtensionEditorComponent:()=>ExtensionEditorComponent,ExtensionInputComponent:()=>ExtensionInputComponent,ExtensionRunner:()=>ExtensionRunner,ExtensionSelectorComponent:()=>ExtensionSelectorComponent,FileModelsStore:()=>FileModelsStore,FooterComponent:()=>FooterComponent,InteractiveMode:()=>InteractiveMode,LoginDialogComponent:()=>LoginDialogComponent,MCP_CONNECTION_EVENT:()=>MCP_CONNECTION_EVENT,ModelRegistry:()=>ModelRegistry,ModelRuntime:()=>ModelRuntime,ModelSelectorComponent:()=>ModelSelectorComponent,OAuthSelectorComponent:()=>OAuthSelectorComponent,ProjectTrustStore:()=>ProjectTrustStore,RpcClient:()=>RpcClient,SessionManager:()=>SessionManager,SessionSelectorComponent:()=>SessionSelectorComponent,SettingsManager:()=>SettingsManager,SettingsSelectorComponent:()=>SettingsSelectorComponent,ShowImagesSelectorComponent:()=>ShowImagesSelectorComponent,SkillInvocationMessageComponent:()=>SkillInvocationMessageComponent,Theme:()=>Theme,ThemeSelectorComponent:()=>ThemeSelectorComponent,ThinkingSelectorComponent:()=>ThinkingSelectorComponent,ToolExecutionComponent:()=>ToolExecutionComponent,TreeSelectorComponent:()=>TreeSelectorComponent,UserMessageComponent:()=>UserMessageComponent,UserMessageSelectorComponent:()=>UserMessageSelectorComponent,VERSION:()=>VERSION,VIRTUAL_MODEL_STATE_ENTRY:()=>VIRTUAL_MODEL_STATE_ENTRY,applyHttpProxySettings:()=>applyHttpProxySettings,buildContextEntries:()=>buildContextEntries,buildSessionContext:()=>buildSessionContext,buildSessionProjection:()=>buildSessionProjection,calculateContextTokens:()=>calculateContextTokens,collectEntriesForBranchSummary:()=>collectEntriesForBranchSummary,compact:()=>compact,configureHttpDispatcher:()=>configureHttpDispatcher,convertToLlm:()=>convertToLlm,convertToPng:()=>convertToPng,copyToClipboard:()=>copyToClipboard,createAgentSession:()=>createAgentSession,createAgentSessionFromServices:()=>createAgentSessionFromServices,createAgentSessionRuntime:()=>createAgentSessionRuntime,createAgentSessionServices:()=>createAgentSessionServices,createBashTool:()=>createBashTool,createBashToolDefinition:()=>createBashToolDefinition,createCodemodeExtension:()=>createCodemodeExtension,createCodingTools:()=>createCodingTools,createEditTool:()=>createEditTool,createEditToolDefinition:()=>createEditToolDefinition,createEventBus:()=>createEventBus,createExtensionRuntime:()=>createExtensionRuntime,createFindTool:()=>createFindTool,createFindToolDefinition:()=>createFindToolDefinition,createGrepTool:()=>createGrepTool,createGrepToolDefinition:()=>createGrepToolDefinition,createLocalBashOperations:()=>createLocalBashOperations,createLocalPowerShellOperations:()=>createLocalPowerShellOperations,createLsTool:()=>createLsTool,createLsToolDefinition:()=>createLsToolDefinition,createMcpExtension:()=>createMcpExtension,createPowerShellTool:()=>createPowerShellTool,createPowerShellToolDefinition:()=>createPowerShellToolDefinition,createReadOnlyTools:()=>createReadOnlyTools,createReadTool:()=>createReadTool,createReadToolDefinition:()=>createReadToolDefinition,createSyntheticSourceInfo:()=>createSyntheticSourceInfo,createToolSearchExtension:()=>createToolSearchExtension,createWriteTool:()=>createWriteTool,createWriteToolDefinition:()=>createWriteToolDefinition,defaultModelPerProvider:()=>defaultModelPerProvider,defineTool:()=>defineTool,detectSupportedImageMimeTypeFromFile:()=>detectSupportedImageMimeTypeFromFile,discoverAndLoadExtensions:()=>discoverAndLoadExtensions,estimateTokens:()=>estimateTokens,findCutPoint:()=>findCutPoint,findTurnStartIndex:()=>findTurnStartIndex,formatDimensionNote:()=>formatDimensionNote,formatReadLineRange:()=>formatReadLineRange,formatSize:()=>formatSize,formatSkillsForPrompt:()=>formatSkillsForPrompt,generateBranchSummary:()=>generateBranchSummary,generateDiffString:()=>generateDiffString,generateSummary:()=>generateSummary,generateSummaryWithUsage:()=>generateSummaryWithUsage,generateUnifiedPatch:()=>generateUnifiedPatch,getAgentDir:()=>getAgentDir,getDocsPath:()=>getDocsPath,getExamplesPath:()=>getExamplesPath,getLanguageFromPath:()=>getLanguageFromPath,getLastAssistantUsage:()=>getLastAssistantUsage,getLatestCompactionEntry:()=>getLatestCompactionEntry,getMarkdownTheme:()=>getMarkdownTheme,getPackageDir:()=>getPackageDir,getPowerShellConfig:()=>getPowerShellConfig,getReadmePath:()=>getReadmePath,getSelectListTheme:()=>getSelectListTheme,getSettingsListTheme:()=>getSettingsListTheme,getShellConfig:()=>getShellConfig,hasTrustRequiringProjectResources:()=>hasTrustRequiringProjectResources,highlightCode:()=>highlightCode,initTheme:()=>initTheme,isBashToolResult:()=>isBashToolResult,isEditToolResult:()=>isEditToolResult,isFindToolResult:()=>isFindToolResult,isGrepToolResult:()=>isGrepToolResult,isLsToolResult:()=>isLsToolResult,isPowerShellToolResult:()=>isPowerShellToolResult,isReadToolResult:()=>isReadToolResult,isToolCallEventType:()=>isToolCallEventType,isWriteToolResult:()=>isWriteToolResult,keyHint:()=>keyHint,keyText:()=>keyText,loadMcpConfig:()=>loadMcpConfig,loadProjectContextFiles:()=>loadProjectContextFiles,loadSkills:()=>loadSkills,loadSkillsFromDir:()=>loadSkillsFromDir,main:()=>main,migrateSessionEntries:()=>migrateSessionEntries,parseArgs:()=>parseArgs,parseFrontmatter:()=>parseFrontmatter,parseSessionEntries:()=>parseSessionEntries,parseSkillBlock:()=>parseSkillBlock,prepareBranchEntries:()=>prepareBranchEntries,rawKeyHint:()=>rawKeyHint,readStoredCredential:()=>readStoredCredential,renderDiff:()=>renderDiff,resizeImage:()=>resizeImage,resolveCliModel:()=>resolveCliModel,resolveModelScopeWithDiagnostics:()=>resolveModelScopeWithDiagnostics,runPrintMode:()=>runPrintMode,runRpcMode:()=>runRpcMode,serializeConversation:()=>serializeConversation,sessionEntryToContextMessages:()=>sessionEntryToContextMessages,setupCli:()=>setupCli,shouldCompact:()=>shouldCompact,stdioRpcTransport:()=>stdioRpcTransport,stripFrontmatter:()=>stripFrontmatter,truncateHead:()=>truncateHead,truncateLine:()=>truncateLine,truncateTail:()=>truncateTail,truncateToVisualLines:()=>truncateToVisualLines,withFileMutationQueue:()=>withFileMutationQueue,wrapRegisteredTool:()=>wrapRegisteredTool,wrapRegisteredTools:()=>wrapRegisteredTools});var SHOW_IMAGES_SELECT_LIST_LAYOUT={minPrimaryColumnWidth:12,maxPrimaryColumnWidth:32},ShowImagesSelectorComponent=class extends Container{selectList;constructor(currentValue,onSelect,onCancel){super();let items=[{value:"yes",label:"Yes",description:"Show images inline in terminal"},{value:"no",label:"No",description:"Show text placeholder instead"}];this.addChild(new DynamicBorder),this.selectList=new SelectList(items,5,getSelectListTheme(),SHOW_IMAGES_SELECT_LIST_LAYOUT),this.selectList.setSelectedIndex(currentValue?0:1),this.selectList.onSelect=item=>{onSelect(item.value==="yes")},this.selectList.onCancel=()=>{onCancel()},this.addChild(this.selectList),this.addChild(new DynamicBorder)}getSelectList(){return this.selectList}};var THEME_SELECT_LIST_LAYOUT={minPrimaryColumnWidth:12,maxPrimaryColumnWidth:32},ThemeSelectorComponent=class extends Container{selectList;onPreview;constructor(currentTheme,onSelect,onCancel,onPreview){super(),this.onPreview=onPreview;let themes=getAvailableThemes(),themeItems=themes.map(name=>({value:name,label:name,description:name===currentTheme?"(current)":void 0}));this.addChild(new DynamicBorder),this.selectList=new SelectList(themeItems,10,getSelectListTheme(),THEME_SELECT_LIST_LAYOUT);let currentIndex=themes.indexOf(currentTheme);currentIndex!==-1&&this.selectList.setSelectedIndex(currentIndex),this.selectList.onSelect=item=>{onSelect(item.value)},this.selectList.onCancel=()=>{onCancel()},this.selectList.onSelectionChange=item=>{this.onPreview(item.value)},this.addChild(this.selectList),this.addChild(new DynamicBorder)}getSelectList(){return this.selectList}};export{ShowImagesSelectorComponent,ThemeSelectorComponent,dist_exports};
|
|
2
|
+
import{AgentSession,AgentSessionRuntime,AssistantMessageComponent,BashExecutionComponent,BorderedLoader,BranchSummaryMessageComponent,CURRENT_SESSION_VERSION,CompactionSummaryMessageComponent,CredentialSynchronizationError,CustomEditor,CustomMessageComponent,DEFAULT_COMPACTION_SETTINGS,DefaultPackageManager,DefaultResourceLoader,DynamicBorder,ExtensionEditorComponent,ExtensionInputComponent,ExtensionRunner,ExtensionSelectorComponent,FileModelsStore,FooterComponent,InteractiveMode,LoginDialogComponent,MCP_CONNECTION_EVENT,ModelRegistry,ModelRuntime,ModelSelectorComponent,OAuthSelectorComponent,RpcClient,SessionManager,SessionSelectorComponent,SettingsManager,SettingsSelectorComponent,SkillInvocationMessageComponent,ThinkingSelectorComponent,ToolExecutionComponent,TreeSelectorComponent,UserMessageComponent,UserMessageSelectorComponent,VIRTUAL_MODEL_STATE_ENTRY,applyHttpProxySettings,buildContextEntries,buildSessionContext,buildSessionProjection,calculateContextTokens,collectEntriesForBranchSummary,compact,configureHttpDispatcher,convertToLlm,convertToPng,copyToClipboard,createAgentSession,createAgentSessionFromServices,createAgentSessionRuntime,createAgentSessionServices,createBashTool,createBashToolDefinition,createCodemodeExtension,createCodingTools,createEditTool,createEditToolDefinition,createEventBus,createExtensionRuntime,createFindTool,createFindToolDefinition,createGrepTool,createGrepToolDefinition,createLocalBashOperations,createLocalPowerShellOperations,createLsTool,createLsToolDefinition,createMcpExtension,createPowerShellTool,createPowerShellToolDefinition,createReadOnlyTools,createReadTool,createReadToolDefinition,createSyntheticSourceInfo,createToolSearchExtension,createWriteTool,createWriteToolDefinition,defaultModelPerProvider,defineTool,detectSupportedImageMimeTypeFromFile,discoverAndLoadExtensions,estimateTokens,findCutPoint,findTurnStartIndex,formatDimensionNote,formatSkillsForPrompt,generateBranchSummary,generateDiffString,generateSummary,generateSummaryWithUsage,generateUnifiedPatch,getLastAssistantUsage,getLatestCompactionEntry,isBashToolResult,isEditToolResult,isFindToolResult,isGrepToolResult,isLsToolResult,isPowerShellToolResult,isReadToolResult,isToolCallEventType,isWriteToolResult,loadProjectContextFiles,loadSkills,loadSkillsFromDir,main,migrateSessionEntries,parseArgs,parseFrontmatter,parseSessionEntries,parseSkillBlock,prepareBranchEntries,renderDiff,resizeImage,resolveCliModel,resolveModelScopeWithDiagnostics,runPrintMode,runRpcMode,serializeConversation,sessionEntryToContextMessages,setupCli,shouldCompact,stdioRpcTransport,stripFrontmatter,withFileMutationQueue,wrapRegisteredTool,wrapRegisteredTools}from"./chunk-SJA6GZQX.js";import{DEFAULT_MAX_BYTES,DEFAULT_MAX_LINES,formatReadLineRange,formatSize,truncateHead,truncateLine,truncateTail,truncateToVisualLines}from"./chunk-DYTENXHX.js";import{ArminComponent}from"./chunk-FLHKNMLQ.js";import{Container,SelectList,Theme,getAvailableThemes,getLanguageFromPath,getMarkdownTheme,getSelectListTheme,getSettingsListTheme,highlightCode,initTheme,keyHint,keyText,rawKeyHint}from"./chunk-LT2C56HV.js";import{ProjectTrustStore,hasTrustRequiringProjectResources,loadMcpConfig}from"./chunk-6Z2347ML.js";import{readStoredCredential}from"./chunk-MF3VB62R.js";import{getPowerShellConfig,getShellConfig}from"./chunk-URBBMV3M.js";import{CONFIG_DIR_NAME,VERSION,getAgentDir,getDocsPath,getExamplesPath,getPackageDir,getReadmePath}from"./chunk-LHRPMXVI.js";import{__export}from"./chunk-JXWJOIH4.js";var dist_exports={};__export(dist_exports,{AgentSession:()=>AgentSession,AgentSessionRuntime:()=>AgentSessionRuntime,ArminComponent:()=>ArminComponent,AssistantMessageComponent:()=>AssistantMessageComponent,BashExecutionComponent:()=>BashExecutionComponent,BorderedLoader:()=>BorderedLoader,BranchSummaryMessageComponent:()=>BranchSummaryMessageComponent,CONFIG_DIR_NAME:()=>CONFIG_DIR_NAME,CURRENT_SESSION_VERSION:()=>CURRENT_SESSION_VERSION,CompactionSummaryMessageComponent:()=>CompactionSummaryMessageComponent,CredentialSynchronizationError:()=>CredentialSynchronizationError,CustomEditor:()=>CustomEditor,CustomMessageComponent:()=>CustomMessageComponent,DEFAULT_COMPACTION_SETTINGS:()=>DEFAULT_COMPACTION_SETTINGS,DEFAULT_MAX_BYTES:()=>DEFAULT_MAX_BYTES,DEFAULT_MAX_LINES:()=>DEFAULT_MAX_LINES,DefaultPackageManager:()=>DefaultPackageManager,DefaultResourceLoader:()=>DefaultResourceLoader,DynamicBorder:()=>DynamicBorder,ExtensionEditorComponent:()=>ExtensionEditorComponent,ExtensionInputComponent:()=>ExtensionInputComponent,ExtensionRunner:()=>ExtensionRunner,ExtensionSelectorComponent:()=>ExtensionSelectorComponent,FileModelsStore:()=>FileModelsStore,FooterComponent:()=>FooterComponent,InteractiveMode:()=>InteractiveMode,LoginDialogComponent:()=>LoginDialogComponent,MCP_CONNECTION_EVENT:()=>MCP_CONNECTION_EVENT,ModelRegistry:()=>ModelRegistry,ModelRuntime:()=>ModelRuntime,ModelSelectorComponent:()=>ModelSelectorComponent,OAuthSelectorComponent:()=>OAuthSelectorComponent,ProjectTrustStore:()=>ProjectTrustStore,RpcClient:()=>RpcClient,SessionManager:()=>SessionManager,SessionSelectorComponent:()=>SessionSelectorComponent,SettingsManager:()=>SettingsManager,SettingsSelectorComponent:()=>SettingsSelectorComponent,ShowImagesSelectorComponent:()=>ShowImagesSelectorComponent,SkillInvocationMessageComponent:()=>SkillInvocationMessageComponent,Theme:()=>Theme,ThemeSelectorComponent:()=>ThemeSelectorComponent,ThinkingSelectorComponent:()=>ThinkingSelectorComponent,ToolExecutionComponent:()=>ToolExecutionComponent,TreeSelectorComponent:()=>TreeSelectorComponent,UserMessageComponent:()=>UserMessageComponent,UserMessageSelectorComponent:()=>UserMessageSelectorComponent,VERSION:()=>VERSION,VIRTUAL_MODEL_STATE_ENTRY:()=>VIRTUAL_MODEL_STATE_ENTRY,applyHttpProxySettings:()=>applyHttpProxySettings,buildContextEntries:()=>buildContextEntries,buildSessionContext:()=>buildSessionContext,buildSessionProjection:()=>buildSessionProjection,calculateContextTokens:()=>calculateContextTokens,collectEntriesForBranchSummary:()=>collectEntriesForBranchSummary,compact:()=>compact,configureHttpDispatcher:()=>configureHttpDispatcher,convertToLlm:()=>convertToLlm,convertToPng:()=>convertToPng,copyToClipboard:()=>copyToClipboard,createAgentSession:()=>createAgentSession,createAgentSessionFromServices:()=>createAgentSessionFromServices,createAgentSessionRuntime:()=>createAgentSessionRuntime,createAgentSessionServices:()=>createAgentSessionServices,createBashTool:()=>createBashTool,createBashToolDefinition:()=>createBashToolDefinition,createCodemodeExtension:()=>createCodemodeExtension,createCodingTools:()=>createCodingTools,createEditTool:()=>createEditTool,createEditToolDefinition:()=>createEditToolDefinition,createEventBus:()=>createEventBus,createExtensionRuntime:()=>createExtensionRuntime,createFindTool:()=>createFindTool,createFindToolDefinition:()=>createFindToolDefinition,createGrepTool:()=>createGrepTool,createGrepToolDefinition:()=>createGrepToolDefinition,createLocalBashOperations:()=>createLocalBashOperations,createLocalPowerShellOperations:()=>createLocalPowerShellOperations,createLsTool:()=>createLsTool,createLsToolDefinition:()=>createLsToolDefinition,createMcpExtension:()=>createMcpExtension,createPowerShellTool:()=>createPowerShellTool,createPowerShellToolDefinition:()=>createPowerShellToolDefinition,createReadOnlyTools:()=>createReadOnlyTools,createReadTool:()=>createReadTool,createReadToolDefinition:()=>createReadToolDefinition,createSyntheticSourceInfo:()=>createSyntheticSourceInfo,createToolSearchExtension:()=>createToolSearchExtension,createWriteTool:()=>createWriteTool,createWriteToolDefinition:()=>createWriteToolDefinition,defaultModelPerProvider:()=>defaultModelPerProvider,defineTool:()=>defineTool,detectSupportedImageMimeTypeFromFile:()=>detectSupportedImageMimeTypeFromFile,discoverAndLoadExtensions:()=>discoverAndLoadExtensions,estimateTokens:()=>estimateTokens,findCutPoint:()=>findCutPoint,findTurnStartIndex:()=>findTurnStartIndex,formatDimensionNote:()=>formatDimensionNote,formatReadLineRange:()=>formatReadLineRange,formatSize:()=>formatSize,formatSkillsForPrompt:()=>formatSkillsForPrompt,generateBranchSummary:()=>generateBranchSummary,generateDiffString:()=>generateDiffString,generateSummary:()=>generateSummary,generateSummaryWithUsage:()=>generateSummaryWithUsage,generateUnifiedPatch:()=>generateUnifiedPatch,getAgentDir:()=>getAgentDir,getDocsPath:()=>getDocsPath,getExamplesPath:()=>getExamplesPath,getLanguageFromPath:()=>getLanguageFromPath,getLastAssistantUsage:()=>getLastAssistantUsage,getLatestCompactionEntry:()=>getLatestCompactionEntry,getMarkdownTheme:()=>getMarkdownTheme,getPackageDir:()=>getPackageDir,getPowerShellConfig:()=>getPowerShellConfig,getReadmePath:()=>getReadmePath,getSelectListTheme:()=>getSelectListTheme,getSettingsListTheme:()=>getSettingsListTheme,getShellConfig:()=>getShellConfig,hasTrustRequiringProjectResources:()=>hasTrustRequiringProjectResources,highlightCode:()=>highlightCode,initTheme:()=>initTheme,isBashToolResult:()=>isBashToolResult,isEditToolResult:()=>isEditToolResult,isFindToolResult:()=>isFindToolResult,isGrepToolResult:()=>isGrepToolResult,isLsToolResult:()=>isLsToolResult,isPowerShellToolResult:()=>isPowerShellToolResult,isReadToolResult:()=>isReadToolResult,isToolCallEventType:()=>isToolCallEventType,isWriteToolResult:()=>isWriteToolResult,keyHint:()=>keyHint,keyText:()=>keyText,loadMcpConfig:()=>loadMcpConfig,loadProjectContextFiles:()=>loadProjectContextFiles,loadSkills:()=>loadSkills,loadSkillsFromDir:()=>loadSkillsFromDir,main:()=>main,migrateSessionEntries:()=>migrateSessionEntries,parseArgs:()=>parseArgs,parseFrontmatter:()=>parseFrontmatter,parseSessionEntries:()=>parseSessionEntries,parseSkillBlock:()=>parseSkillBlock,prepareBranchEntries:()=>prepareBranchEntries,rawKeyHint:()=>rawKeyHint,readStoredCredential:()=>readStoredCredential,renderDiff:()=>renderDiff,resizeImage:()=>resizeImage,resolveCliModel:()=>resolveCliModel,resolveModelScopeWithDiagnostics:()=>resolveModelScopeWithDiagnostics,runPrintMode:()=>runPrintMode,runRpcMode:()=>runRpcMode,serializeConversation:()=>serializeConversation,sessionEntryToContextMessages:()=>sessionEntryToContextMessages,setupCli:()=>setupCli,shouldCompact:()=>shouldCompact,stdioRpcTransport:()=>stdioRpcTransport,stripFrontmatter:()=>stripFrontmatter,truncateHead:()=>truncateHead,truncateLine:()=>truncateLine,truncateTail:()=>truncateTail,truncateToVisualLines:()=>truncateToVisualLines,withFileMutationQueue:()=>withFileMutationQueue,wrapRegisteredTool:()=>wrapRegisteredTool,wrapRegisteredTools:()=>wrapRegisteredTools});var SHOW_IMAGES_SELECT_LIST_LAYOUT={minPrimaryColumnWidth:12,maxPrimaryColumnWidth:32},ShowImagesSelectorComponent=class extends Container{selectList;constructor(currentValue,onSelect,onCancel){super();let items=[{value:"yes",label:"Yes",description:"Show images inline in terminal"},{value:"no",label:"No",description:"Show text placeholder instead"}];this.addChild(new DynamicBorder),this.selectList=new SelectList(items,5,getSelectListTheme(),SHOW_IMAGES_SELECT_LIST_LAYOUT),this.selectList.setSelectedIndex(currentValue?0:1),this.selectList.onSelect=item=>{onSelect(item.value==="yes")},this.selectList.onCancel=()=>{onCancel()},this.addChild(this.selectList),this.addChild(new DynamicBorder)}getSelectList(){return this.selectList}};var THEME_SELECT_LIST_LAYOUT={minPrimaryColumnWidth:12,maxPrimaryColumnWidth:32},ThemeSelectorComponent=class extends Container{selectList;onPreview;constructor(currentTheme,onSelect,onCancel,onPreview){super(),this.onPreview=onPreview;let themes=getAvailableThemes(),themeItems=themes.map(name=>({value:name,label:name,description:name===currentTheme?"(current)":void 0}));this.addChild(new DynamicBorder),this.selectList=new SelectList(themeItems,10,getSelectListTheme(),THEME_SELECT_LIST_LAYOUT);let currentIndex=themes.indexOf(currentTheme);currentIndex!==-1&&this.selectList.setSelectedIndex(currentIndex),this.selectList.onSelect=item=>{onSelect(item.value)},this.selectList.onCancel=()=>{onCancel()},this.selectList.onSelectionChange=item=>{this.onPreview(item.value)},this.addChild(this.selectList),this.addChild(new DynamicBorder)}getSelectList(){return this.selectList}};export{ShowImagesSelectorComponent,ThemeSelectorComponent,dist_exports};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
|
|
2
|
-
import{dist_exports as dist_exports3}from"./chunk-
|
|
2
|
+
import{dist_exports as dist_exports3}from"./chunk-Y4V36NDW.js";import{all_exports,compat_exports,compile_exports,dist_exports as dist_exports2,value_exports}from"./chunk-SJA6GZQX.js";import{build_exports}from"./chunk-DYTENXHX.js";import"./chunk-FLHKNMLQ.js";import{dist_exports}from"./chunk-LT2C56HV.js";import"./chunk-6Z2347ML.js";import"./chunk-MF3VB62R.js";import"./chunk-URBBMV3M.js";import"./chunk-6QGV3IWD.js";import"./chunk-LHRPMXVI.js";import"./chunk-USJZMAIR.js";import"./chunk-5AGIVGSV.js";import"./chunk-UKVNB6C4.js";import"./chunk-TMTOQ7H7.js";import"./chunk-7DDKXS2Q.js";import"./chunk-3V45WARH.js";import"./chunk-WCGU75WO.js";import"./chunk-LPXNMA2W.js";import"./chunk-JXWJOIH4.js";var oauth_exports={};var VIRTUAL_MODULES={typebox:build_exports,"typebox/compile":compile_exports,"typebox/value":value_exports,"@sinclair/typebox":build_exports,"@sinclair/typebox/compile":compile_exports,"@sinclair/typebox/value":value_exports,"@earendil-works/pi-agent-core":dist_exports2,"@earendil-works/pi-tui":dist_exports,"@earendil-works/pi-ai":compat_exports,"@earendil-works/pi-ai/compat":compat_exports,"@earendil-works/pi-ai/oauth":oauth_exports,"@earendil-works/pi-ai/providers/all":all_exports,"@earendil-works/pi-coding-agent":dist_exports3,"@mariozechner/pi-agent-core":dist_exports2,"@mariozechner/pi-tui":dist_exports,"@mariozechner/pi-ai":compat_exports,"@mariozechner/pi-ai/compat":compat_exports,"@mariozechner/pi-ai/oauth":oauth_exports,"@mariozechner/pi-ai/providers/all":all_exports,"@mariozechner/pi-coding-agent":dist_exports3};export{VIRTUAL_MODULES};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
|
|
3
|
-
import{main,setupCli}from"./chunks/chunk-
|
|
3
|
+
import{main,setupCli}from"./chunks/chunk-SJA6GZQX.js";import"./chunks/chunk-DYTENXHX.js";import"./chunks/chunk-FLHKNMLQ.js";import"./chunks/chunk-LT2C56HV.js";import"./chunks/chunk-6Z2347ML.js";import"./chunks/chunk-MF3VB62R.js";import"./chunks/chunk-URBBMV3M.js";import"./chunks/chunk-6QGV3IWD.js";import"./chunks/chunk-LHRPMXVI.js";import"./chunks/chunk-USJZMAIR.js";import"./chunks/chunk-5AGIVGSV.js";import"./chunks/chunk-UKVNB6C4.js";import"./chunks/chunk-TMTOQ7H7.js";import"./chunks/chunk-7DDKXS2Q.js";import"./chunks/chunk-3V45WARH.js";import"./chunks/chunk-WCGU75WO.js";import"./chunks/chunk-LPXNMA2W.js";import"./chunks/chunk-JXWJOIH4.js";setupCli();main(process.argv.slice(2));
|
package/dist/bundle/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
|
|
2
|
-
import{ShowImagesSelectorComponent,ThemeSelectorComponent}from"./chunks/chunk-
|
|
2
|
+
import{ShowImagesSelectorComponent,ThemeSelectorComponent}from"./chunks/chunk-Y4V36NDW.js";import{AgentSession,AgentSessionRuntime,AssistantMessageComponent,BashExecutionComponent,BorderedLoader,BranchSummaryMessageComponent,CURRENT_SESSION_VERSION,CompactionSummaryMessageComponent,CredentialSynchronizationError,CustomEditor,CustomMessageComponent,DEFAULT_COMPACTION_SETTINGS,DefaultPackageManager,DefaultResourceLoader,DynamicBorder,ExtensionEditorComponent,ExtensionInputComponent,ExtensionRunner,ExtensionSelectorComponent,FileModelsStore,FooterComponent,InteractiveMode,LoginDialogComponent,MCP_CONNECTION_EVENT,ModelRegistry,ModelRuntime,ModelSelectorComponent,OAuthSelectorComponent,RpcClient,SessionManager,SessionSelectorComponent,SettingsManager,SettingsSelectorComponent,SkillInvocationMessageComponent,ThinkingSelectorComponent,ToolExecutionComponent,TreeSelectorComponent,UserMessageComponent,UserMessageSelectorComponent,VIRTUAL_MODEL_STATE_ENTRY,applyHttpProxySettings,buildContextEntries,buildSessionContext,buildSessionProjection,calculateContextTokens,collectEntriesForBranchSummary,compact,configureHttpDispatcher,convertToLlm,convertToPng,copyToClipboard,createAgentSession,createAgentSessionFromServices,createAgentSessionRuntime,createAgentSessionServices,createBashTool,createBashToolDefinition,createCodemodeExtension,createCodingTools,createEditTool,createEditToolDefinition,createEventBus,createExtensionRuntime,createFindTool,createFindToolDefinition,createGrepTool,createGrepToolDefinition,createLocalBashOperations,createLocalPowerShellOperations,createLsTool,createLsToolDefinition,createMcpExtension,createPowerShellTool,createPowerShellToolDefinition,createReadOnlyTools,createReadTool,createReadToolDefinition,createSyntheticSourceInfo,createToolSearchExtension,createWriteTool,createWriteToolDefinition,defaultModelPerProvider,defineTool,detectSupportedImageMimeTypeFromFile,discoverAndLoadExtensions,estimateTokens,findCutPoint,findTurnStartIndex,formatDimensionNote,formatSkillsForPrompt,generateBranchSummary,generateDiffString,generateSummary,generateSummaryWithUsage,generateUnifiedPatch,getLastAssistantUsage,getLatestCompactionEntry,isBashToolResult,isEditToolResult,isFindToolResult,isGrepToolResult,isLsToolResult,isPowerShellToolResult,isReadToolResult,isToolCallEventType,isWriteToolResult,loadProjectContextFiles,loadSkills,loadSkillsFromDir,main,migrateSessionEntries,parseArgs,parseFrontmatter,parseSessionEntries,parseSkillBlock,prepareBranchEntries,renderDiff,resizeImage,resolveCliModel,resolveModelScopeWithDiagnostics,runPrintMode,runRpcMode,serializeConversation,sessionEntryToContextMessages,setupCli,shouldCompact,stdioRpcTransport,stripFrontmatter,withFileMutationQueue,wrapRegisteredTool,wrapRegisteredTools}from"./chunks/chunk-SJA6GZQX.js";import{DEFAULT_MAX_BYTES,DEFAULT_MAX_LINES,formatReadLineRange,formatSize,truncateHead,truncateLine,truncateTail,truncateToVisualLines}from"./chunks/chunk-DYTENXHX.js";import{ArminComponent}from"./chunks/chunk-FLHKNMLQ.js";import{Theme,getLanguageFromPath,getMarkdownTheme,getSelectListTheme,getSettingsListTheme,highlightCode,initTheme,keyHint,keyText,rawKeyHint}from"./chunks/chunk-LT2C56HV.js";import{ProjectTrustStore,hasTrustRequiringProjectResources,loadMcpConfig}from"./chunks/chunk-6Z2347ML.js";import{readStoredCredential}from"./chunks/chunk-MF3VB62R.js";import{getPowerShellConfig,getShellConfig}from"./chunks/chunk-URBBMV3M.js";import"./chunks/chunk-6QGV3IWD.js";import{CONFIG_DIR_NAME,VERSION,getAgentDir,getDocsPath,getExamplesPath,getPackageDir,getReadmePath}from"./chunks/chunk-LHRPMXVI.js";import"./chunks/chunk-USJZMAIR.js";import"./chunks/chunk-5AGIVGSV.js";import"./chunks/chunk-UKVNB6C4.js";import"./chunks/chunk-TMTOQ7H7.js";import"./chunks/chunk-7DDKXS2Q.js";import"./chunks/chunk-3V45WARH.js";import"./chunks/chunk-WCGU75WO.js";import"./chunks/chunk-LPXNMA2W.js";import"./chunks/chunk-JXWJOIH4.js";export{AgentSession,AgentSessionRuntime,ArminComponent,AssistantMessageComponent,BashExecutionComponent,BorderedLoader,BranchSummaryMessageComponent,CONFIG_DIR_NAME,CURRENT_SESSION_VERSION,CompactionSummaryMessageComponent,CredentialSynchronizationError,CustomEditor,CustomMessageComponent,DEFAULT_COMPACTION_SETTINGS,DEFAULT_MAX_BYTES,DEFAULT_MAX_LINES,DefaultPackageManager,DefaultResourceLoader,DynamicBorder,ExtensionEditorComponent,ExtensionInputComponent,ExtensionRunner,ExtensionSelectorComponent,FileModelsStore,FooterComponent,InteractiveMode,LoginDialogComponent,MCP_CONNECTION_EVENT,ModelRegistry,ModelRuntime,ModelSelectorComponent,OAuthSelectorComponent,ProjectTrustStore,RpcClient,SessionManager,SessionSelectorComponent,SettingsManager,SettingsSelectorComponent,ShowImagesSelectorComponent,SkillInvocationMessageComponent,Theme,ThemeSelectorComponent,ThinkingSelectorComponent,ToolExecutionComponent,TreeSelectorComponent,UserMessageComponent,UserMessageSelectorComponent,VERSION,VIRTUAL_MODEL_STATE_ENTRY,applyHttpProxySettings,buildContextEntries,buildSessionContext,buildSessionProjection,calculateContextTokens,collectEntriesForBranchSummary,compact,configureHttpDispatcher,convertToLlm,convertToPng,copyToClipboard,createAgentSession,createAgentSessionFromServices,createAgentSessionRuntime,createAgentSessionServices,createBashTool,createBashToolDefinition,createCodemodeExtension,createCodingTools,createEditTool,createEditToolDefinition,createEventBus,createExtensionRuntime,createFindTool,createFindToolDefinition,createGrepTool,createGrepToolDefinition,createLocalBashOperations,createLocalPowerShellOperations,createLsTool,createLsToolDefinition,createMcpExtension,createPowerShellTool,createPowerShellToolDefinition,createReadOnlyTools,createReadTool,createReadToolDefinition,createSyntheticSourceInfo,createToolSearchExtension,createWriteTool,createWriteToolDefinition,defaultModelPerProvider,defineTool,detectSupportedImageMimeTypeFromFile,discoverAndLoadExtensions,estimateTokens,findCutPoint,findTurnStartIndex,formatDimensionNote,formatReadLineRange,formatSize,formatSkillsForPrompt,generateBranchSummary,generateDiffString,generateSummary,generateSummaryWithUsage,generateUnifiedPatch,getAgentDir,getDocsPath,getExamplesPath,getLanguageFromPath,getLastAssistantUsage,getLatestCompactionEntry,getMarkdownTheme,getPackageDir,getPowerShellConfig,getReadmePath,getSelectListTheme,getSettingsListTheme,getShellConfig,hasTrustRequiringProjectResources,highlightCode,initTheme,isBashToolResult,isEditToolResult,isFindToolResult,isGrepToolResult,isLsToolResult,isPowerShellToolResult,isReadToolResult,isToolCallEventType,isWriteToolResult,keyHint,keyText,loadMcpConfig,loadProjectContextFiles,loadSkills,loadSkillsFromDir,main,migrateSessionEntries,parseArgs,parseFrontmatter,parseSessionEntries,parseSkillBlock,prepareBranchEntries,rawKeyHint,readStoredCredential,renderDiff,resizeImage,resolveCliModel,resolveModelScopeWithDiagnostics,runPrintMode,runRpcMode,serializeConversation,sessionEntryToContextMessages,setupCli,shouldCompact,stdioRpcTransport,stripFrontmatter,truncateHead,truncateLine,truncateTail,truncateToVisualLines,withFileMutationQueue,wrapRegisteredTool,wrapRegisteredTools};
|
package/dist/bundle/rpc-entry.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
|
|
3
|
-
import{configureHttpDispatcher,main,nameProcess}from"./chunks/chunk-
|
|
3
|
+
import{configureHttpDispatcher,main,nameProcess}from"./chunks/chunk-SJA6GZQX.js";import"./chunks/chunk-DYTENXHX.js";import"./chunks/chunk-FLHKNMLQ.js";import"./chunks/chunk-LT2C56HV.js";import"./chunks/chunk-6Z2347ML.js";import"./chunks/chunk-MF3VB62R.js";import"./chunks/chunk-URBBMV3M.js";import"./chunks/chunk-6QGV3IWD.js";import{APP_NAME}from"./chunks/chunk-LHRPMXVI.js";import"./chunks/chunk-USJZMAIR.js";import"./chunks/chunk-5AGIVGSV.js";import"./chunks/chunk-UKVNB6C4.js";import"./chunks/chunk-TMTOQ7H7.js";import"./chunks/chunk-7DDKXS2Q.js";import"./chunks/chunk-3V45WARH.js";import"./chunks/chunk-WCGU75WO.js";import"./chunks/chunk-LPXNMA2W.js";import"./chunks/chunk-JXWJOIH4.js";nameProcess(`${APP_NAME}-rpc`);process.env.PI_CODING_AGENT="true";process.env.AI_AGENT="pi";process.emitWarning=(()=>{});configureHttpDispatcher();main(["--mode","rpc",...process.argv.slice(2)]);
|
package/judge/dist/auth.js
CHANGED
package/judge/dist/mude.js
CHANGED
|
@@ -52,6 +52,8 @@ var BUILT_IN_JUDGES = {
|
|
|
52
52
|
apiKeyEnv: "MU_JUDGE_MUDE_KEY",
|
|
53
53
|
timeoutMs: 4e3
|
|
54
54
|
},
|
|
55
|
+
// OpenAI's decision model, gpt-6-luna, through the Decisions API. Not measured on mu's questions yet.
|
|
56
|
+
openai: { type: "openai" },
|
|
55
57
|
mock: { type: "mock" }
|
|
56
58
|
};
|
|
57
59
|
var LAYA = "laya";
|
|
@@ -64,6 +66,7 @@ var JUDGE_TYPES = [
|
|
|
64
66
|
"http",
|
|
65
67
|
"llm",
|
|
66
68
|
"classifier",
|
|
69
|
+
"openai",
|
|
67
70
|
"mock"
|
|
68
71
|
];
|
|
69
72
|
function isRecord(value) {
|
|
@@ -1071,7 +1074,7 @@ async function resolveModel(ref, options = {}) {
|
|
|
1071
1074
|
}
|
|
1072
1075
|
if (response.status === 401 || response.status === 403) {
|
|
1073
1076
|
throw new ModelError(
|
|
1074
|
-
|
|
1077
|
+
response.status === 401 && !options.token ? `Couldn't open ${ref.repo} on Hugging Face (401): it doesn't exist, or it's private or gated. Check the name; for a gated model, accept its terms on huggingface.co, set HF_TOKEN, then add it again` : `${ref.repo} is private or gated on Hugging Face (${response.status}). Accept its terms on huggingface.co, set HF_TOKEN, then add it again`,
|
|
1075
1078
|
"access"
|
|
1076
1079
|
);
|
|
1077
1080
|
}
|
|
@@ -1477,10 +1480,11 @@ function installLocalOnly(ctx, args) {
|
|
|
1477
1480
|
if (args.includes("--with-fallback")) return false;
|
|
1478
1481
|
try {
|
|
1479
1482
|
const value = JSON.parse(readFileSync7(ctx.paths.install, "utf8"));
|
|
1480
|
-
|
|
1483
|
+
if (typeof value === "object" && value !== null && "localOnly" in value) return value.localOnly === true;
|
|
1481
1484
|
} catch {
|
|
1482
|
-
return false;
|
|
1483
1485
|
}
|
|
1486
|
+
const current = judgeSetting(ctx.files, pkgOf(ctx).judge.name);
|
|
1487
|
+
return current.enabled && current.localOnly;
|
|
1484
1488
|
}
|
|
1485
1489
|
function startedAt(pid) {
|
|
1486
1490
|
try {
|
|
@@ -1961,7 +1965,7 @@ ${USAGE2}`, "usage");
|
|
|
1961
1965
|
else out = humanOut(write, tty, each2.pkg);
|
|
1962
1966
|
out.step(
|
|
1963
1967
|
"model",
|
|
1964
|
-
|
|
1968
|
+
`Adding ${record2.repo} @ ${record2.revision.slice(0, 7)} (${gb2(record2.bytes)} GB) as ${record2.id}. It runs its own server code (${SERVER_FILE}) on this Mac: add only models you trust.`
|
|
1965
1969
|
);
|
|
1966
1970
|
await install(each2, out, flags, mudePaths(home));
|
|
1967
1971
|
out.status(await status(each2));
|
package/judge/dist/setup.js
CHANGED
|
@@ -114,6 +114,8 @@ var BUILT_IN_JUDGES = {
|
|
|
114
114
|
apiKeyEnv: "MU_JUDGE_MUDE_KEY",
|
|
115
115
|
timeoutMs: 4e3
|
|
116
116
|
},
|
|
117
|
+
// OpenAI's decision model, gpt-6-luna, through the Decisions API. Not measured on mu's questions yet.
|
|
118
|
+
openai: { type: "openai" },
|
|
117
119
|
mock: { type: "mock" }
|
|
118
120
|
};
|
|
119
121
|
var LAYA = "laya";
|
|
@@ -126,6 +128,7 @@ var JUDGE_TYPES = [
|
|
|
126
128
|
"http",
|
|
127
129
|
"llm",
|
|
128
130
|
"classifier",
|
|
131
|
+
"openai",
|
|
129
132
|
"mock"
|
|
130
133
|
];
|
|
131
134
|
function isRecord(value) {
|
|
@@ -1439,10 +1442,11 @@ function installLocalOnly(ctx, args) {
|
|
|
1439
1442
|
if (args.includes("--with-fallback")) return false;
|
|
1440
1443
|
try {
|
|
1441
1444
|
const value = JSON.parse(readFileSync7(ctx.paths.install, "utf8"));
|
|
1442
|
-
|
|
1445
|
+
if (typeof value === "object" && value !== null && "localOnly" in value) return value.localOnly === true;
|
|
1443
1446
|
} catch {
|
|
1444
|
-
return false;
|
|
1445
1447
|
}
|
|
1448
|
+
const current = judgeSetting(ctx.files, pkgOf(ctx).judge.name);
|
|
1449
|
+
return current.enabled && current.localOnly;
|
|
1446
1450
|
}
|
|
1447
1451
|
function startedAt(pid) {
|
|
1448
1452
|
try {
|
|
@@ -1961,6 +1965,9 @@ async function readAll(input = process.stdin) {
|
|
|
1961
1965
|
import { mkdirSync as mkdirSync8, writeFileSync as writeFileSync8 } from "node:fs";
|
|
1962
1966
|
import { join as join9 } from "node:path";
|
|
1963
1967
|
|
|
1968
|
+
// packages/kyrn-judge/src/providers/openai-decisions.ts
|
|
1969
|
+
var OPENAI_JUDGE_KEY = "MU_JUDGE_OPENAI_KEY";
|
|
1970
|
+
|
|
1964
1971
|
// packages/kyrn-judge/src/setup/check.ts
|
|
1965
1972
|
var CHECK_TIMEOUT_MS = 1e4;
|
|
1966
1973
|
function checkRequest(kind, baseUrl, key2) {
|
|
@@ -2304,7 +2311,7 @@ var SETUP_SERVICES = [
|
|
|
2304
2311
|
name: "OpenAI",
|
|
2305
2312
|
baseUrls: ["https://api.openai.com/v1"],
|
|
2306
2313
|
api: "openai-responses",
|
|
2307
|
-
models: ["gpt-
|
|
2314
|
+
models: ["gpt-6.1-sol"],
|
|
2308
2315
|
keyShape: /^sk-(?:proj-|svcacct-|admin-|(?!ant-|or-)[A-Za-z0-9_-]*T3BlbkFJ)/,
|
|
2309
2316
|
keyPage: "https://platform.openai.com/api-keys",
|
|
2310
2317
|
providers: ["openai"],
|
|
@@ -2461,6 +2468,7 @@ var JEV_TIERS = /* @__PURE__ */ new Set([
|
|
|
2461
2468
|
]);
|
|
2462
2469
|
var OPENCODE_KEY = "OPENCODE_API_KEY";
|
|
2463
2470
|
var JEV_PAGE = "https://typesafe.ai";
|
|
2471
|
+
var OPENAI_KEY_PAGE = "https://platform.openai.com/api-keys";
|
|
2464
2472
|
var CLAUDE_TOKEN = {
|
|
2465
2473
|
zh: "\u8FD9\u662F Claude \u8BA2\u9605\u4EE4\u724C\uFF08claude setup-token \u751F\u6210\u7684\uFF09\uFF0C\u4E0D\u662F API \u5BC6\u94A5\u3002Anthropic \u4E0D\u5141\u8BB8\u5176\u4ED6\u5E94\u7528\u4F7F\u7528 Claude \u8BA2\u9605\uFF0C\u6240\u4EE5 mu \u7528\u4E0D\u4E86\u5B83\u3002\u8BF7\u6539\u7528 Anthropic API \u5BC6\u94A5\uFF08sk-ant-api\u2026\uFF09\uFF0C\u5728\u8FD9\u91CC\u521B\u5EFA\uFF1Ahttps://platform.claude.com/settings/keys",
|
|
2466
2474
|
en: "That's a Claude subscription token (from claude setup-token), not an API key. Anthropic doesn't allow other apps to use a Claude subscription, so mu can't use it. Use an Anthropic API key (sk-ant-api\u2026) instead; create one at https://platform.claude.com/settings/keys"
|
|
@@ -2498,11 +2506,11 @@ function parseSetupArgs(argv) {
|
|
|
2498
2506
|
return { error: { zh: "--api \u53EA\u80FD\u662F openai \u6216 anthropic", en: "--api must be openai or anthropic" } };
|
|
2499
2507
|
}
|
|
2500
2508
|
const judge = values.get("--judge");
|
|
2501
|
-
if (judge !== void 0 && !["jev", "opencode", "free", "model", "mude", "off", "none"].includes(judge)) {
|
|
2509
|
+
if (judge !== void 0 && !["jev", "opencode", "free", "openai", "model", "mude", "off", "none"].includes(judge)) {
|
|
2502
2510
|
return {
|
|
2503
2511
|
error: {
|
|
2504
|
-
zh: "--judge \u53EA\u80FD\u662F jev\u3001opencode\u3001free\u3001model\u3001mude\u3001off \u6216 none",
|
|
2505
|
-
en: "--judge must be jev, opencode, free, model, mude, off or none"
|
|
2512
|
+
zh: "--judge \u53EA\u80FD\u662F jev\u3001opencode\u3001free\u3001openai\u3001model\u3001mude\u3001off \u6216 none",
|
|
2513
|
+
en: "--judge must be jev, opencode, free, openai, model, mude, off or none"
|
|
2506
2514
|
}
|
|
2507
2515
|
};
|
|
2508
2516
|
}
|
|
@@ -2548,15 +2556,16 @@ function setupUsage(language) {
|
|
|
2548
2556
|
" --judge jev Jev \u5BC6\u94A5\uFF08TypeSafe\uFF09\u5199\u5728\u6807\u51C6\u8F93\u5165\u7684\u7B2C\u4E8C\u884C\uFF1B\u5DF2\u7ECF\u8BBE\u7F6E\u4E86 TYPESAFE_API_KEY \u5C31\u4E0D\u7528",
|
|
2549
2557
|
" --judge opencode OpenCode Zen \u4E0A\u7684 Jev\uFF0C\u7528 OpenCode \u7684\u5BC6\u94A5\uFF08--service opencode \u6216 OPENCODE_API_KEY\uFF09",
|
|
2550
2558
|
" --judge free OpenCode Zen \u4E0A\u9650\u65F6\u514D\u8D39\u7684 Jev\uFF0C\u4E0D\u7528\u5BC6\u94A5\uFF08\u6CA1\u6709\u5BC6\u94A5\u65F6\u672C\u6765\u5C31\u7528\u5B83\uFF09",
|
|
2559
|
+
" --judge openai OpenAI \u7684\u51B3\u7B56\u6A21\u578B gpt-6-luna\uFF1A\u7528 mu \u5DF2\u6709\u7684 OpenAI \u5BC6\u94A5\uFF0C\u6216\u6807\u51C6\u8F93\u5165\u7B2C\u4E8C\u884C\u7684\u5BC6\u94A5",
|
|
2551
2560
|
" --judge model \u7528\u521A\u8BBE\u7F6E\u7684\u6A21\u578B\u5F53\u5224\u5B9A\u5668\uFF08\u66F4\u6162\uFF0C\u6BCF\u6B21\u5224\u65AD\u90FD\u82B1 token\uFF09",
|
|
2552
2561
|
" --judge mude \u5728\u8FD9\u53F0 Mac \u4E0A\u88C5\u597D mude 1.0\uFF08mu \u81EA\u5DF1\u7684\u51B3\u7B56\u6A21\u578B\uFF0C\u4E0B\u8F7D 1.8 GB\uFF09\u5F53\u5224\u5B9A\u5668\uFF0CJev \u5728\u5B83\u540E\u9762",
|
|
2553
2562
|
" --judge off \u4E0D\u7528\u5224\u5B9A\u5668\uFF1A\u6240\u6709\u5224\u5B9A\u70B9\u5173\u95ED\uFF0C\u4EC0\u4E48\u90FD\u4E0D\u53D1\u7ED9\u5224\u5B9A\u5668",
|
|
2554
2563
|
" --judge none \u4E0D\u6539\u5224\u5B9A\u5668\uFF1B\u4E0D\u5199 --judge \u65F6\u4E5F\u4E0D\u6539",
|
|
2555
2564
|
" --api, --name \u670D\u52A1 other \u7684\u63A5\u53E3\uFF08openai \u6216 anthropic\uFF09\u548C\u5B83\u5728 mu \u91CC\u7684\u540D\u5B57",
|
|
2556
|
-
" --yes \u4E0D\u63D0\u95EE\uFF1B\u66FF\u6362\u5DF2\u6709\u7684\u8BBE\u7F6E\uFF08\u8BA2\u9605\u767B\u5F55\u3001\u540C\u540D\u670D\u52A1\u7684\u5730\u5740\
|
|
2565
|
+
" --yes \u4E0D\u63D0\u95EE\uFF1B\u66FF\u6362\u5DF2\u6709\u7684\u8BBE\u7F6E\uFF08\u8BA2\u9605\u767B\u5F55\u3001\u540C\u540D\u670D\u52A1\u7684\u5730\u5740\u3001\u5224\u5B9A\u5668\u7684\u5BC6\u94A5\uFF09",
|
|
2557
2566
|
"",
|
|
2558
2567
|
"\u4F1A\u6539\u52A8\u7684\u6587\u4EF6\uFF1A~/.mu/agent \u91CC\u7684 auth.json\uFF08\u5BC6\u94A5\uFF09\u3001models.json\u3001settings.json\u3001mu.json\uFF0C",
|
|
2559
|
-
"\u4EE5\u53CA mu \u8BFB\u53D6\u7684 .env\
|
|
2568
|
+
"\u4EE5\u53CA mu \u8BFB\u53D6\u7684 .env\uFF08\u5224\u5B9A\u5668\u7684\u5BC6\u94A5\uFF09\u3002\u6BCF\u4E2A\u6587\u4EF6\u6539\u52A8\u524D\u90FD\u4F1A\u5148\u590D\u5236\u5230 ~/.mu/backups/<\u65F6\u95F4>/\u3002"
|
|
2560
2569
|
].join("\n");
|
|
2561
2570
|
}
|
|
2562
2571
|
return [
|
|
@@ -2575,6 +2584,7 @@ function setupUsage(language) {
|
|
|
2575
2584
|
" --judge jev read the Jev key (TypeSafe) from stdin's second line, unless TYPESAFE_API_KEY is already set",
|
|
2576
2585
|
" --judge opencode use Jev on OpenCode Zen with an OpenCode key (--service opencode or OPENCODE_API_KEY)",
|
|
2577
2586
|
" --judge free use the free Jev on OpenCode Zen (limited time, no key; the default while no key is set)",
|
|
2587
|
+
" --judge openai use OpenAI's decision model, gpt-6-luna, with the OpenAI key mu has or one on stdin's second line",
|
|
2578
2588
|
" --judge model use the model you just set up as the judge (slower, and every verdict costs tokens)",
|
|
2579
2589
|
" --judge mude install mude 1.0, mu's own decision model, on this Mac (a 1.8 GB download) as the judge,",
|
|
2580
2590
|
" with Jev behind it",
|
|
@@ -2582,10 +2592,10 @@ function setupUsage(language) {
|
|
|
2582
2592
|
" --judge none leave the judge unchanged (the same as omitting --judge)",
|
|
2583
2593
|
" --api, --name for the service `other`: its API (openai or anthropic) and its name in mu",
|
|
2584
2594
|
" --yes don't ask; replace what's already set up (a subscription sign-in, a provider's",
|
|
2585
|
-
" address,
|
|
2595
|
+
" address, a judge's key)",
|
|
2586
2596
|
"",
|
|
2587
2597
|
"Files it changes: auth.json (keys), models.json, settings.json and mu.json in ~/.mu/agent, and the .env",
|
|
2588
|
-
"mu reads (
|
|
2598
|
+
"mu reads (a judge's key). Each one is backed up to ~/.mu/backups/<time>/ before it changes."
|
|
2589
2599
|
].join("\n");
|
|
2590
2600
|
}
|
|
2591
2601
|
function label(service, language) {
|
|
@@ -2645,9 +2655,9 @@ var Setup = class {
|
|
|
2645
2655
|
language;
|
|
2646
2656
|
/** No questions: a script, or --yes. */
|
|
2647
2657
|
scripted;
|
|
2648
|
-
/** The second line of stdin, for --judge jev. */
|
|
2649
|
-
|
|
2650
|
-
/** The key given for the model: a
|
|
2658
|
+
/** The second line of stdin, for --judge jev and --judge openai. */
|
|
2659
|
+
judgeKeyFromStdin;
|
|
2660
|
+
/** The key given for the model: a judge's key is never the same one. */
|
|
2651
2661
|
modelKey;
|
|
2652
2662
|
/** The provider id a service of one's own (`other`) gets in mu. */
|
|
2653
2663
|
customName;
|
|
@@ -2745,9 +2755,9 @@ var Setup = class {
|
|
|
2745
2755
|
SETUP_EXIT.usage
|
|
2746
2756
|
);
|
|
2747
2757
|
}
|
|
2748
|
-
const [modelKey,
|
|
2758
|
+
const [modelKey, judgeKey] = (await deps.readStdin()).split(/\r?\n/).map((line) => cleanKey(line)).filter(Boolean);
|
|
2749
2759
|
key2 = modelKey;
|
|
2750
|
-
this.
|
|
2760
|
+
this.judgeKeyFromStdin = judgeKey;
|
|
2751
2761
|
}
|
|
2752
2762
|
if (key2 !== void 0 && isClaudeSubscriptionToken(key2)) throw this.fail(CLAUDE_TOKEN, SETUP_EXIT.usage);
|
|
2753
2763
|
if (this.scripted && key2 === void 0 && args.service === void 0) {
|
|
@@ -3251,7 +3261,8 @@ var Setup = class {
|
|
|
3251
3261
|
const envText = readTextFile(paths.envFile);
|
|
3252
3262
|
const existing = jevKeyAt(env, envText);
|
|
3253
3263
|
const opencode = model?.provider === "opencode" || Boolean(env[OPENCODE_KEY]) || !(OPENCODE_KEY in env) && envText !== void 0 && Boolean(envFileValue(envText, OPENCODE_KEY)) || await this.deps.pi.credential("opencode") !== void 0;
|
|
3254
|
-
|
|
3264
|
+
const openai = await this.openaiKeySet(model, envText);
|
|
3265
|
+
if (this.scripted) return this.scriptedJudge(model, envText, existing !== void 0, opencode, openai);
|
|
3255
3266
|
const where = existing ? existing.where === "env" ? this.t({ zh: `\u73AF\u5883\u53D8\u91CF ${existing.name}`, en: `${existing.name} in your environment` }) : this.t({
|
|
3256
3267
|
zh: `${this.path(paths.envFile)} \u91CC\u7684 ${existing.name}`,
|
|
3257
3268
|
en: `${existing.name} in ${this.path(paths.envFile)}`
|
|
@@ -3323,6 +3334,16 @@ var Setup = class {
|
|
|
3323
3334
|
value: "free"
|
|
3324
3335
|
});
|
|
3325
3336
|
}
|
|
3337
|
+
choices.push({
|
|
3338
|
+
label: openai ? this.t({
|
|
3339
|
+
zh: "OpenAI \u7684\u51B3\u7B56\u6A21\u578B gpt-6-luna\uFF0C\u7528\u4F60\u7684 OpenAI \u5BC6\u94A5\uFF0C\u6309\u8F93\u5165 token \u8BA1\u8D39",
|
|
3340
|
+
en: "OpenAI's decision model, gpt-6-luna, with your OpenAI key, billed per input token"
|
|
3341
|
+
}) : this.t({
|
|
3342
|
+
zh: `OpenAI \u7684\u51B3\u7B56\u6A21\u578B gpt-6-luna\uFF0C\u7528 OpenAI \u7684 API \u5BC6\u94A5\uFF0C\u6309\u8F93\u5165 token \u8BA1\u8D39\uFF1A${OPENAI_KEY_PAGE}`,
|
|
3343
|
+
en: `OpenAI's decision model, gpt-6-luna, with an OpenAI API key, billed per input token: ${OPENAI_KEY_PAGE}`
|
|
3344
|
+
}),
|
|
3345
|
+
value: "openai"
|
|
3346
|
+
});
|
|
3326
3347
|
if (model) {
|
|
3327
3348
|
choices.push({
|
|
3328
3349
|
label: this.t({
|
|
@@ -3347,9 +3368,20 @@ var Setup = class {
|
|
|
3347
3368
|
choices
|
|
3348
3369
|
);
|
|
3349
3370
|
if (picked === "jev") return { kind: "jev", key: await this.jevKey() };
|
|
3371
|
+
if (picked === "openai") return openai ? { kind: "openai" } : { kind: "openai", key: await this.openaiKey() };
|
|
3350
3372
|
return { kind: picked };
|
|
3351
3373
|
}
|
|
3352
|
-
|
|
3374
|
+
/**
|
|
3375
|
+
* Whether the `openai` judge has a key already: its own (MU_JUDGE_OPENAI_KEY), or an OpenAI API key of mu's `openai`
|
|
3376
|
+
* provider, which it uses at OpenAI's own address (registry.ts): the one just set up there, one in auth.json, or
|
|
3377
|
+
* OPENAI_API_KEY. A Sign in with ChatGPT is no key for it. The real environment wins over the .env.
|
|
3378
|
+
*/
|
|
3379
|
+
async openaiKeySet(model, envText) {
|
|
3380
|
+
const { env } = this.deps;
|
|
3381
|
+
const set = (name) => name in env ? Boolean(env[name]) : envText !== void 0 && Boolean(envFileValue(envText, name));
|
|
3382
|
+
return model?.provider === "openai" && this.args.baseUrl === void 0 || set(OPENAI_JUDGE_KEY) || set("OPENAI_API_KEY") || await this.deps.pi.credential("openai") === "api_key";
|
|
3383
|
+
}
|
|
3384
|
+
scriptedJudge(model, envText, keySet, opencode, openai) {
|
|
3353
3385
|
switch (this.args.judge) {
|
|
3354
3386
|
case "opencode":
|
|
3355
3387
|
if (!opencode) {
|
|
@@ -3377,8 +3409,39 @@ var Setup = class {
|
|
|
3377
3409
|
return { kind: "mude" };
|
|
3378
3410
|
case "off":
|
|
3379
3411
|
return { kind: "none" };
|
|
3412
|
+
case "openai": {
|
|
3413
|
+
const key2 = this.judgeKeyFromStdin;
|
|
3414
|
+
const modelsOwn = key2 === this.modelKey && model?.provider === "openai";
|
|
3415
|
+
if (!key2 || modelsOwn) {
|
|
3416
|
+
if (openai) return { kind: "openai" };
|
|
3417
|
+
throw this.fail(
|
|
3418
|
+
{
|
|
3419
|
+
zh: `--judge openai \u9700\u8981 OpenAI \u7684 API \u5BC6\u94A5\uFF1A\u5199\u5728\u6807\u51C6\u8F93\u5165\u7684\u7B2C\u4E8C\u884C\uFF0C\u7528 --service openai \u8BBE\u7F6E\u5B83\uFF0C\u6216\u5148\u8BBE\u7F6E ${OPENAI_JUDGE_KEY} \u6216 OPENAI_API_KEY`,
|
|
3420
|
+
en: `--judge openai needs an OpenAI API key: put it on the second line of stdin, set one up with --service openai, or set ${OPENAI_JUDGE_KEY} or OPENAI_API_KEY first`
|
|
3421
|
+
},
|
|
3422
|
+
SETUP_EXIT.usage
|
|
3423
|
+
);
|
|
3424
|
+
}
|
|
3425
|
+
if (key2 === this.modelKey) {
|
|
3426
|
+
throw this.fail(
|
|
3427
|
+
{
|
|
3428
|
+
zh: "OpenAI \u5224\u5B9A\u5668\u7684\u5BC6\u94A5\u548C\u6A21\u578B\u7684\u5BC6\u94A5\u662F\u540C\u4E00\u4E2A",
|
|
3429
|
+
en: "the OpenAI judge key is the same as the model key"
|
|
3430
|
+
},
|
|
3431
|
+
SETUP_EXIT.usage
|
|
3432
|
+
);
|
|
3433
|
+
}
|
|
3434
|
+
const current = envText === void 0 ? void 0 : envFileValue(envText, OPENAI_JUDGE_KEY);
|
|
3435
|
+
if (current && current !== key2 && !this.args.yes) {
|
|
3436
|
+
throw this.fail({
|
|
3437
|
+
zh: `${this.path(this.deps.paths.envFile)} \u91CC\u5DF2\u7ECF\u6709 ${OPENAI_JUDGE_KEY}\u3002\u8981\u66FF\u6362\u5B83\uFF0C\u52A0\u4E0A --yes`,
|
|
3438
|
+
en: `${this.path(this.deps.paths.envFile)} already has a ${OPENAI_JUDGE_KEY}. To replace it, add --yes`
|
|
3439
|
+
});
|
|
3440
|
+
}
|
|
3441
|
+
return { kind: "openai", key: key2 };
|
|
3442
|
+
}
|
|
3380
3443
|
case "jev": {
|
|
3381
|
-
const key2 = this.
|
|
3444
|
+
const key2 = this.judgeKeyFromStdin;
|
|
3382
3445
|
if (!key2) {
|
|
3383
3446
|
if (keySet) return { kind: "keep" };
|
|
3384
3447
|
throw this.fail(
|
|
@@ -3439,6 +3502,35 @@ var Setup = class {
|
|
|
3439
3502
|
if (anyway) return key2;
|
|
3440
3503
|
}
|
|
3441
3504
|
}
|
|
3505
|
+
async openaiKey() {
|
|
3506
|
+
for (; ; ) {
|
|
3507
|
+
const key2 = await this.secret(
|
|
3508
|
+
this.t({
|
|
3509
|
+
zh: `\u7C98\u8D34 OpenAI \u7684 API \u5BC6\u94A5\uFF08${OPENAI_JUDGE_KEY}\uFF0C\u4E0D\u4F1A\u663E\u793A\uFF09\uFF1A`,
|
|
3510
|
+
en: `Paste the OpenAI API key (${OPENAI_JUDGE_KEY}; it won't be shown): `
|
|
3511
|
+
})
|
|
3512
|
+
);
|
|
3513
|
+
if (key2 === this.modelKey) {
|
|
3514
|
+
this.io.say(
|
|
3515
|
+
this.t({
|
|
3516
|
+
zh: `\u8FD9\u662F\u521A\u624D\u7ED9\u6A21\u578B\u7684\u5BC6\u94A5\u3002OpenAI \u7684 API \u5BC6\u94A5\u5728\u8FD9\u91CC\u521B\u5EFA\uFF1A${OPENAI_KEY_PAGE}`,
|
|
3517
|
+
en: `That's the key you gave for the model. Create an OpenAI API key at ${OPENAI_KEY_PAGE}`
|
|
3518
|
+
})
|
|
3519
|
+
);
|
|
3520
|
+
continue;
|
|
3521
|
+
}
|
|
3522
|
+
const branded = servicesForKey(key2).find((service) => BRANDED.has(service.id) && service.id !== "openai");
|
|
3523
|
+
if (!branded) return key2;
|
|
3524
|
+
const anyway = await this.confirm(
|
|
3525
|
+
this.t({
|
|
3526
|
+
zh: `\u8FD9\u770B\u8D77\u6765\u662F ${this.name(branded)} \u7684\u5BC6\u94A5\uFF0C\u4E0D\u662F OpenAI \u7684\uFF0C\u5B83\u4F1A\u88AB\u53D1\u7ED9 OpenAI\u3002\u4ECD\u7136\u4F7F\u7528\u5417\uFF1F[y/N] `,
|
|
3527
|
+
en: `This looks like ${article(this.name(branded))} key, not an OpenAI key, and it would be sent to OpenAI. Use it anyway? [y/N] `
|
|
3528
|
+
}),
|
|
3529
|
+
false
|
|
3530
|
+
);
|
|
3531
|
+
if (anyway) return key2;
|
|
3532
|
+
}
|
|
3533
|
+
}
|
|
3442
3534
|
// -----------------------------------------------------------------------------------------------------------
|
|
3443
3535
|
// Step 6: the files
|
|
3444
3536
|
// -----------------------------------------------------------------------------------------------------------
|
|
@@ -3527,7 +3619,7 @@ var Setup = class {
|
|
|
3527
3619
|
} catch (error) {
|
|
3528
3620
|
if (error instanceof Stop) throw error;
|
|
3529
3621
|
let reason = error instanceof Error ? error.message : String(error);
|
|
3530
|
-
for (const secret of [target?.key, judge
|
|
3622
|
+
for (const secret of [target?.key, judge && "key" in judge ? judge.key : void 0]) {
|
|
3531
3623
|
if (secret) reason = reason.replaceAll(secret, "\u2026");
|
|
3532
3624
|
}
|
|
3533
3625
|
this.io.warn(this.t({ zh: `mu setup\uFF1A\u4FDD\u5B58\u65F6\u51FA\u9519\uFF1A${reason}`, en: `mu setup: couldn't save: ${reason}` }));
|
|
@@ -3592,6 +3684,7 @@ var Setup = class {
|
|
|
3592
3684
|
if (judge.kind === "model") {
|
|
3593
3685
|
if (target && model) tiers = [`llm:${target.reach.provider}/${model}`];
|
|
3594
3686
|
} else if (judge.kind === "opencode") tiers = ["jev-opencode"];
|
|
3687
|
+
else if (judge.kind === "openai") tiers = ["openai"];
|
|
3595
3688
|
else if (judge.kind === "free" || judge.kind === "mude") {
|
|
3596
3689
|
if (!tiersOf(current).some((tier) => tier === "jev" || tier === "jev-opencode-free")) tiers = ["jev"];
|
|
3597
3690
|
} else if (!tiersOf(current).some((tier) => JEV_TIERS.has(tier))) tiers = ["jev"];
|
|
@@ -3612,20 +3705,25 @@ var Setup = class {
|
|
|
3612
3705
|
this.savedLine(configPath, this.t({ zh: `\u5224\u5B9A\u5668 ${named2.join(", ")}`, en: `judge: ${named2.join(", ")}` }))
|
|
3613
3706
|
);
|
|
3614
3707
|
}
|
|
3615
|
-
|
|
3708
|
+
const written = judge.kind === "jev" ? { name: "TYPESAFE_API_KEY", key: judge.key, what: { zh: "Jev \u5BC6\u94A5", en: "the Jev key" } } : judge.kind === "openai" && judge.key ? {
|
|
3709
|
+
name: OPENAI_JUDGE_KEY,
|
|
3710
|
+
key: judge.key,
|
|
3711
|
+
what: { zh: "OpenAI \u5224\u5B9A\u5668\u7684\u5BC6\u94A5", en: "the OpenAI judge key" }
|
|
3712
|
+
} : void 0;
|
|
3713
|
+
if (written) {
|
|
3616
3714
|
backups.save(paths.envFile);
|
|
3617
|
-
writeEnvValue(paths.envFile,
|
|
3715
|
+
writeEnvValue(paths.envFile, written.name, written.key);
|
|
3618
3716
|
saved.push(
|
|
3619
3717
|
this.savedLine(
|
|
3620
3718
|
paths.envFile,
|
|
3621
|
-
this.t({ zh:
|
|
3719
|
+
this.t({ zh: `${written.name}\uFF08${written.what.zh}\uFF09`, en: `${written.name} (${written.what.en})` })
|
|
3622
3720
|
)
|
|
3623
3721
|
);
|
|
3624
|
-
if (
|
|
3722
|
+
if (written.name in env) {
|
|
3625
3723
|
notes.push(
|
|
3626
3724
|
this.t({
|
|
3627
|
-
zh: `\u6CE8\u610F\uFF1A\u73AF\u5883\u53D8\u91CF\u91CC\u4E5F\u6709
|
|
3628
|
-
en: `Note:
|
|
3725
|
+
zh: `\u6CE8\u610F\uFF1A\u73AF\u5883\u53D8\u91CF\u91CC\u4E5F\u6709 ${written.name}\uFF0C\u5B83\u6BD4 ${this.path(paths.envFile)} \u4F18\u5148\u3002\u5230\u8BBE\u7F6E\u5B83\u7684\u5730\u65B9\uFF08\u4F8B\u5982 ~/.zshrc\uFF09\u6539\u6389\u6216\u5220\u6389\u3002`,
|
|
3726
|
+
en: `Note: ${written.name} is also set in your environment and takes precedence over ${this.path(paths.envFile)}. Change or remove it where it's set (~/.zshrc, for example).`
|
|
3629
3727
|
})
|
|
3630
3728
|
);
|
|
3631
3729
|
}
|
|
@@ -3645,7 +3743,7 @@ var Setup = class {
|
|
|
3645
3743
|
zh: `\u5B8C\u6210\u3002mu \u4F1A\u7528 ${this.name(target.service)} \xB7 ${model} \u5F00\u59CB\u5DE5\u4F5C\u3002`,
|
|
3646
3744
|
en: `Done. mu will start on ${this.name(target.service)} \xB7 ${model}.`
|
|
3647
3745
|
}) : this.t({ zh: "\u5B8C\u6210\u3002", en: "Done." });
|
|
3648
|
-
const judged = judge === void 0 ? "" : judge.kind === "model" ? this.t({ zh: "\u5224\u5B9A\u5668\uFF1A\u540C\u4E00\u4E2A\u6A21\u578B\u3002", en: " Judge: the same model." }) : judge.kind === "none" ? this.t({ zh: "\u5224\u5B9A\u5668\uFF1A\u6682\u65F6\u6CA1\u6709\u3002", en: " Judge: none for now." }) : judge.kind === "opencode" ? this.t({ zh: "\u5224\u5B9A\u5668\uFF1AOpenCode Zen \u4E0A\u7684 Jev\u3002", en: " Judge: Jev on OpenCode Zen." }) : judge.kind === "mude" ? this.t({
|
|
3746
|
+
const judged = judge === void 0 ? "" : judge.kind === "model" ? this.t({ zh: "\u5224\u5B9A\u5668\uFF1A\u540C\u4E00\u4E2A\u6A21\u578B\u3002", en: " Judge: the same model." }) : judge.kind === "none" ? this.t({ zh: "\u5224\u5B9A\u5668\uFF1A\u6682\u65F6\u6CA1\u6709\u3002", en: " Judge: none for now." }) : judge.kind === "opencode" ? this.t({ zh: "\u5224\u5B9A\u5668\uFF1AOpenCode Zen \u4E0A\u7684 Jev\u3002", en: " Judge: Jev on OpenCode Zen." }) : judge.kind === "openai" ? this.t({ zh: "\u5224\u5B9A\u5668\uFF1AOpenAI \u7684 gpt-6-luna\u3002", en: " Judge: OpenAI's gpt-6-luna." }) : judge.kind === "mude" ? this.t({
|
|
3649
3747
|
zh: "\u5224\u5B9A\u5668\uFF1Amude 1.0\uFF0C\u4E0B\u9762\u63A5\u7740\u5B89\u88C5\uFF1B\u5B83\u7B54\u4E0D\u4E86\u7684\u4EA4\u7ED9 Jev\u3002",
|
|
3650
3748
|
en: " Judge: mude 1.0, installed next, with Jev for what it can't answer."
|
|
3651
3749
|
}) : judge.kind === "free" ? this.t({
|
package/judge/manifest.json
CHANGED
|
@@ -270,7 +270,7 @@
|
|
|
270
270
|
},
|
|
271
271
|
"summary": {
|
|
272
272
|
"zh": "任务进行中你又发来一句话:判断是在下一步就带进工作,还是等这一轮做完再处理。判定最多等 1.5 秒;没有判定时,消息按你发送的方式送达。",
|
|
273
|
-
"en": "For a message you send while the agent is working:
|
|
273
|
+
"en": "For a message you send while the agent is working: deliver it at the next step, or hold it until the run is done. mu waits up to 1.5 seconds for the verdict; without one, the message goes as you sent it.",
|
|
274
274
|
"zh-TW": "任務進行中你又傳來一則訊息:判斷是在下一步就帶進工作,還是等這一輪做完再處理。判定最多等 1.5 秒;沒有判定時,訊息照你傳送的方式送達。",
|
|
275
275
|
"ja-JP": "エージェントの作業中に送ったメッセージを、次のステップで作業に取り込むか、実行が終わるまで待たせるかを判定します。判定は最大 1.5 秒待ち、判定がなければメッセージは送ったとおりに届きます。",
|
|
276
276
|
"ko-KR": "에이전트가 작업하는 중에 보낸 메시지를 다음 단계에서 작업에 반영할지, 실행이 끝날 때까지 기다리게 할지 판정합니다. 판정은 최대 1.5초 기다리며, 판정이 없으면 메시지는 보낸 그대로 전달됩니다.",
|
|
@@ -1381,7 +1381,7 @@
|
|
|
1381
1381
|
},
|
|
1382
1382
|
"summary": {
|
|
1383
1383
|
"zh": "上下文预算、后台命令结束等事件出现时,判断该现在告诉模型、稍后再说,还是不必说。默认是影子模式:判定只记录,事件按各自的规则投递,后台命令结束和上下文预算都是立刻告知。",
|
|
1384
|
-
"en": "For events such as the context budget or a background job's end: tell the model now, later or not at all. In shadow by default: the verdict is only logged, and each event is delivered by its own rule
|
|
1384
|
+
"en": "For events such as the context budget or a background job's end: tell the model now, later or not at all. In shadow by default: the verdict is only logged, and each event is delivered by its own rule (right away for a job's end and the context budget).",
|
|
1385
1385
|
"zh-TW": "上下文預算、背景工作結束這類事件出現時,判斷該現在告訴模型、晚點再說,還是不必說。預設為影子模式:判定只記錄下來,事件各按自己的規則送達;背景工作結束和上下文預算都是立刻告知。",
|
|
1386
1386
|
"ja-JP": "コンテキスト予算やバックグラウンドジョブの終了などのイベントを、モデルにすぐ伝えるか、後で伝えるか、伝えないかを判定します。既定ではシャドーモードです。判定は記録するだけで、各イベントはそれぞれのルールで届けます。ジョブの終了とコンテキスト予算の場合は、すぐに届けます。",
|
|
1387
1387
|
"ko-KR": "컨텍스트 예산이나 백그라운드 작업 종료 같은 이벤트를 모델에게 지금 알릴지, 나중에 알릴지, 알리지 않을지 정합니다. 기본값은 섀도 모드입니다. 판정은 기록만 하고 각 이벤트는 자체 규칙에 따라 전달되는데, 작업 종료와 컨텍스트 예산은 바로 알립니다.",
|
|
@@ -11,7 +11,7 @@ var pi_host_modules_exports = {};
|
|
|
11
11
|
__export(pi_host_modules_exports, {
|
|
12
12
|
VIRTUAL_MODULES: () => VIRTUAL_MODULES
|
|
13
13
|
});
|
|
14
|
-
import { VIRTUAL_MODULES } from "../../dist/bundle/chunks/virtual-modules-
|
|
14
|
+
import { VIRTUAL_MODULES } from "../../dist/bundle/chunks/virtual-modules-P3ZGSM7W.js";
|
|
15
15
|
var init_pi_host_modules = __esm({
|
|
16
16
|
"pi-host-modules:pi-host-modules"() {
|
|
17
17
|
"use strict";
|