mu-agent 0.1.0 → 0.1.3
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 +27 -0
- package/README.md +4 -1
- package/dist/bundle/chunks/anthropic.js +25 -14
- package/dist/bundle/chunks/{chunk-QB4HYZZE.js → chunk-AIR4ZKSM.js} +90 -6
- package/dist/bundle/chunks/chunk-WSSPR443.js +2 -0
- package/dist/bundle/chunks/github-copilot.js +1 -1
- package/dist/bundle/chunks/openai-codex.js +25 -14
- package/dist/bundle/chunks/openrouter.js +25 -14
- package/dist/bundle/chunks/radius.js +25 -14
- package/dist/bundle/chunks/{virtual-modules-ROULVYS3.js → virtual-modules-I4HUN7PP.js} +1 -1
- package/dist/bundle/cli.js +1 -1
- package/dist/bundle/index.js +1 -1
- package/dist/bundle/rpc-entry.js +1 -1
- package/judge/agents/browser.md +1 -0
- package/judge/agents/investigator.md +1 -0
- package/judge/agents/planner.md +1 -0
- package/judge/agents/reviewer.md +1 -0
- package/judge/agents/scout.md +1 -0
- package/judge/agents/worker.md +1 -0
- package/judge/dist/auth.js +1248 -0
- package/judge/dist/import.js +1785 -0
- package/judge/dist/kyrn-judge.js +35571 -4446
- package/judge/manifest.json +8050 -0
- package/kyrn/bin/mu.mjs +118 -1
- package/package.json +5 -5
- package/dist/bundle/chunks/chunk-Z2DUOAN4.js +0 -2
package/kyrn/bin/mu.mjs
CHANGED
|
@@ -102,7 +102,10 @@ export function usage(platform) {
|
|
|
102
102
|
" mu -c | -r continue the last session | pick one to resume",
|
|
103
103
|
" mu judge <cmd> the local judge (Laya): setup | start | stop | status | run",
|
|
104
104
|
" mu ledger [n] [--json] what the judge decided in the last n sessions",
|
|
105
|
+
" mu import --list | <file>... bring Claude Code and Codex conversations into mu (mu import --help)",
|
|
105
106
|
" mu doctor check the installation",
|
|
107
|
+
" mu auth <cmd> subscription sign-in for the desktop app, as JSON lines:",
|
|
108
|
+
" status | login <provider> | logout <provider>",
|
|
106
109
|
` mu link | unlink put the \`mu\` command on your PATH (${linkDir}) | remove it`,
|
|
107
110
|
" mu migrate [--dry-run] once: move the home from before the rename, ~/.kyrn, to ~/.mu",
|
|
108
111
|
" mu help | version",
|
|
@@ -313,12 +316,14 @@ export function layoutOf({ root, platform, exists }) {
|
|
|
313
316
|
return exists(path.join(root, "dist", "bundle", "cli.js")) ? "package" : "repo";
|
|
314
317
|
}
|
|
315
318
|
|
|
316
|
-
/** The
|
|
319
|
+
/** The files the npm package runs: pi, the judgment layer, the sign-in of `mu auth` and the importer of `mu import`. */
|
|
317
320
|
export function packageEntries({ root, platform }) {
|
|
318
321
|
const path = pathFor(platform);
|
|
319
322
|
return {
|
|
320
323
|
cli: path.join(root, "dist", "bundle", "cli.js"),
|
|
321
324
|
extension: path.join(root, "judge", "dist", "kyrn-judge.js"),
|
|
325
|
+
auth: path.join(root, "judge", "dist", "auth.js"),
|
|
326
|
+
import: path.join(root, "judge", "dist", "import.js"),
|
|
322
327
|
};
|
|
323
328
|
}
|
|
324
329
|
|
|
@@ -505,6 +510,43 @@ export function planLaunch({ platform, env, argv, root, home, execPath, fs, canE
|
|
|
505
510
|
};
|
|
506
511
|
}
|
|
507
512
|
|
|
513
|
+
// ---------------------------------------------------------------------------------------------------------
|
|
514
|
+
// mu auth
|
|
515
|
+
// ---------------------------------------------------------------------------------------------------------
|
|
516
|
+
|
|
517
|
+
/** What `mu auth` answers itself. Every other `auth` command (check, print-api-key, ...) is pi's own. */
|
|
518
|
+
export const AUTH_COMMANDS = ["status", "login", "logout"];
|
|
519
|
+
|
|
520
|
+
/**
|
|
521
|
+
* `mu auth status | login <provider> | logout <provider>`: the sign-in the desktop app runs, with pi's own OAuth
|
|
522
|
+
* flows and credential store (packages/kyrn-judge/src/auth). It is pi's code, so it runs the way pi does here:
|
|
523
|
+
* through tsx in a checkout, built in the package. It reads no key, so no .env is read for it.
|
|
524
|
+
*/
|
|
525
|
+
export function planAuth({ platform, env, argv, root, home, execPath, fs, canExec = false }) {
|
|
526
|
+
const path = pathFor(platform);
|
|
527
|
+
let entry;
|
|
528
|
+
if (layoutOf({ root, platform, exists: fs.exists }) === "package") {
|
|
529
|
+
const { auth } = packageEntries({ root, platform });
|
|
530
|
+
if (!fs.exists(auth)) {
|
|
531
|
+
return { error: `This mu-agent package is incomplete (${auth} is missing). Reinstall it: npm i -g mu-agent` };
|
|
532
|
+
}
|
|
533
|
+
entry = [auth];
|
|
534
|
+
} else {
|
|
535
|
+
const tsx = resolveTsx({ root, platform, exists: fs.exists, readFile: fs.readFile });
|
|
536
|
+
if (!tsx) return { error: installHint({ root, platform }) };
|
|
537
|
+
const main = path.join(root, "packages", "kyrn-judge", "src", "auth", "main.ts");
|
|
538
|
+
entry = [tsx, "--tsconfig", path.join(root, "tsconfig.json"), main];
|
|
539
|
+
}
|
|
540
|
+
const agentDir = agentDirFor({ env, muDir: muHome({ home, platform, isDir: fs.isDir }), platform });
|
|
541
|
+
const childEnv = {};
|
|
542
|
+
for (const [key, value] of Object.entries(env)) {
|
|
543
|
+
if (typeof value === "string") childEnv[key] = value;
|
|
544
|
+
}
|
|
545
|
+
childEnv.MU_AGENT_DIR = agentDir;
|
|
546
|
+
const strategy = launchStrategy({ platform, env, canExec });
|
|
547
|
+
return { command: execPath, args: [...entry, ...argv], env: childEnv, strategy, agentDir };
|
|
548
|
+
}
|
|
549
|
+
|
|
508
550
|
// ---------------------------------------------------------------------------------------------------------
|
|
509
551
|
// mu judge
|
|
510
552
|
// ---------------------------------------------------------------------------------------------------------
|
|
@@ -518,6 +560,44 @@ export function planJudge({ platform, env, argv, bin, wsl = false }) {
|
|
|
518
560
|
return { kind: "unsupported", message: support.message };
|
|
519
561
|
}
|
|
520
562
|
|
|
563
|
+
// ---------------------------------------------------------------------------------------------------------
|
|
564
|
+
// mu import
|
|
565
|
+
// ---------------------------------------------------------------------------------------------------------
|
|
566
|
+
|
|
567
|
+
/**
|
|
568
|
+
* `mu import`: Claude Code and Codex conversations into mu's sessions (packages/kyrn-judge/src/import). The importer
|
|
569
|
+
* needs nothing but Node: the npm package runs its build, judge/dist/import.js, and a checkout its TypeScript with
|
|
570
|
+
* Node's own type stripping (on by default from 22.18). A runtime that does not strip types (`stripsTypes` false;
|
|
571
|
+
* an Electron that runs mu as Node may not) takes the sources through tsx, as pi runs in a checkout.
|
|
572
|
+
*/
|
|
573
|
+
export function planImport({ platform, env, argv, root, home, execPath, fs, stripsTypes = true }) {
|
|
574
|
+
const path = pathFor(platform);
|
|
575
|
+
let entry;
|
|
576
|
+
if (layoutOf({ root, platform, exists: fs.exists }) === "package") {
|
|
577
|
+
const built = packageEntries({ root, platform }).import;
|
|
578
|
+
if (!fs.exists(built)) {
|
|
579
|
+
return { error: `This mu-agent package has no mu import (${built} is missing). Update it: npm i -g mu-agent` };
|
|
580
|
+
}
|
|
581
|
+
entry = [built];
|
|
582
|
+
} else {
|
|
583
|
+
const source = path.join(root, "packages", "kyrn-judge", "src", "import", "cli.ts");
|
|
584
|
+
if (!fs.exists(source)) return { error: `mu import is missing from this checkout (${source})` };
|
|
585
|
+
if (stripsTypes) entry = ["--disable-warning=ExperimentalWarning", source];
|
|
586
|
+
else {
|
|
587
|
+
const tsx = resolveTsx({ root, platform, exists: fs.exists, readFile: fs.readFile });
|
|
588
|
+
if (!tsx) return { error: installHint({ root, platform }) };
|
|
589
|
+
entry = [tsx, "--tsconfig", path.join(root, "tsconfig.json"), source];
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
const agentDir = agentDirFor({ env, muDir: muHome({ home, platform, isDir: fs.isDir }), platform });
|
|
593
|
+
const childEnv = {};
|
|
594
|
+
for (const [key, value] of Object.entries(env)) if (typeof value === "string") childEnv[key] = value;
|
|
595
|
+
childEnv.MU_CODING_AGENT_DIR = agentDir;
|
|
596
|
+
childEnv.KYRN_CODING_AGENT_DIR = agentDir;
|
|
597
|
+
childEnv.PI_CODING_AGENT_DIR = agentDir;
|
|
598
|
+
return { command: execPath, args: [...entry, ...argv], env: childEnv, agentDir };
|
|
599
|
+
}
|
|
600
|
+
|
|
521
601
|
// ---------------------------------------------------------------------------------------------------------
|
|
522
602
|
// mu link | unlink
|
|
523
603
|
// ---------------------------------------------------------------------------------------------------------
|
|
@@ -958,6 +1038,26 @@ export async function main(argv = process.argv.slice(2)) {
|
|
|
958
1038
|
out(usage(platform));
|
|
959
1039
|
return 0;
|
|
960
1040
|
}
|
|
1041
|
+
if (command === "auth" && AUTH_COMMANDS.includes(rest[0])) {
|
|
1042
|
+
const plan = planAuth({
|
|
1043
|
+
platform,
|
|
1044
|
+
env,
|
|
1045
|
+
argv: rest,
|
|
1046
|
+
root,
|
|
1047
|
+
home,
|
|
1048
|
+
execPath: process.execPath,
|
|
1049
|
+
canExec,
|
|
1050
|
+
fs: { exists: existsSync, isDir, readFile: readText },
|
|
1051
|
+
});
|
|
1052
|
+
if (plan.error) {
|
|
1053
|
+
// The one reader is the desktop app, which reads stdout line by line.
|
|
1054
|
+
out(JSON.stringify({ type: "error", message: plan.error }));
|
|
1055
|
+
return 1;
|
|
1056
|
+
}
|
|
1057
|
+
// A fresh home has no agent folder yet, and the credential store is written into it.
|
|
1058
|
+
mkdirSync(plan.agentDir, { recursive: true });
|
|
1059
|
+
return handOver(plan);
|
|
1060
|
+
}
|
|
961
1061
|
if (command === "migrate") {
|
|
962
1062
|
return migrate({
|
|
963
1063
|
platform,
|
|
@@ -1007,6 +1107,23 @@ export async function main(argv = process.argv.slice(2)) {
|
|
|
1007
1107
|
if (command === "ledger") {
|
|
1008
1108
|
return handOver({ command: process.execPath, args: [path.join(bin, "kyrn-ledger"), ...rest], env, strategy });
|
|
1009
1109
|
}
|
|
1110
|
+
if (command === "import") {
|
|
1111
|
+
const plan = planImport({
|
|
1112
|
+
platform,
|
|
1113
|
+
env,
|
|
1114
|
+
argv: rest,
|
|
1115
|
+
root,
|
|
1116
|
+
home,
|
|
1117
|
+
execPath: process.execPath,
|
|
1118
|
+
stripsTypes: Boolean(process.features.typescript),
|
|
1119
|
+
fs: { exists: existsSync, isDir, readFile: readText },
|
|
1120
|
+
});
|
|
1121
|
+
if (plan.error) {
|
|
1122
|
+
err(plan.error);
|
|
1123
|
+
return 1;
|
|
1124
|
+
}
|
|
1125
|
+
return handOver({ command: plan.command, args: plan.args, env: plan.env, strategy });
|
|
1126
|
+
}
|
|
1010
1127
|
if (command === "doctor") {
|
|
1011
1128
|
const link = linkPath({ platform, env, home });
|
|
1012
1129
|
return handOver({
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mu-agent",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "mu: a coding agent that thinks before it acts. A small, fast judge makes the routine calls; the big model keeps its attention for the work. Built on pi.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -20,13 +20,13 @@
|
|
|
20
20
|
"judge",
|
|
21
21
|
"pi"
|
|
22
22
|
],
|
|
23
|
-
"homepage": "https://github.com/qybaihe/
|
|
23
|
+
"homepage": "https://github.com/qybaihe/mu",
|
|
24
24
|
"repository": {
|
|
25
25
|
"type": "git",
|
|
26
|
-
"url": "git+https://github.com/qybaihe/
|
|
26
|
+
"url": "git+https://github.com/qybaihe/mu.git"
|
|
27
27
|
},
|
|
28
28
|
"bugs": {
|
|
29
|
-
"url": "https://github.com/qybaihe/
|
|
29
|
+
"url": "https://github.com/qybaihe/mu/issues"
|
|
30
30
|
},
|
|
31
31
|
"license": "MIT",
|
|
32
32
|
"engines": {
|
|
@@ -40,6 +40,6 @@
|
|
|
40
40
|
"muBuild": {
|
|
41
41
|
"pi": "0.86.0",
|
|
42
42
|
"judge": "0.1.0",
|
|
43
|
-
"commit": "
|
|
43
|
+
"commit": "4d90ca9a8"
|
|
44
44
|
}
|
|
45
45
|
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
|
|
2
|
-
import{AgentSession,AgentSessionRuntime,ArminComponent,AssistantMessageComponent,BashExecutionComponent,BorderedLoader,BranchSummaryMessageComponent,CONFIG_DIR_NAME,CURRENT_SESSION_VERSION,CompactionSummaryMessageComponent,Container,CredentialSynchronizationError,CustomEditor,CustomMessageComponent,DEFAULT_COMPACTION_SETTINGS,DEFAULT_MAX_BYTES,DEFAULT_MAX_LINES,DefaultPackageManager,DefaultResourceLoader,DynamicBorder,ExtensionEditorComponent,ExtensionInputComponent,ExtensionRunner,ExtensionSelectorComponent,FooterComponent,InteractiveMode,LoginDialogComponent,ModelRegistry,ModelRuntime,ModelSelectorComponent,OAuthSelectorComponent,ProjectTrustStore,RpcClient,SelectList,SessionManager,SessionSelectorComponent,SettingsManager,SettingsSelectorComponent,SkillInvocationMessageComponent,Theme,ThinkingSelectorComponent,ToolExecutionComponent,TreeSelectorComponent,UserMessageComponent,UserMessageSelectorComponent,VERSION,buildContextEntries,buildSessionContext,calculateContextTokens,collectEntriesForBranchSummary,compact,convertToLlm,convertToPng,copyToClipboard,createAgentSession,createAgentSessionFromServices,createAgentSessionRuntime,createAgentSessionServices,createBashTool,createBashToolDefinition,createCodingTools,createEditTool,createEditToolDefinition,createEventBus,createExtensionRuntime,createFindTool,createFindToolDefinition,createGrepTool,createGrepToolDefinition,createLocalBashOperations,createLocalPowerShellOperations,createLsTool,createLsToolDefinition,createPowerShellTool,createPowerShellToolDefinition,createReadOnlyTools,createReadTool,createReadToolDefinition,createSyntheticSourceInfo,createWriteTool,createWriteToolDefinition,defineTool,detectSupportedImageMimeTypeFromFile,discoverAndLoadExtensions,estimateTokens,findCutPoint,findTurnStartIndex,formatDimensionNote,formatSize,formatSkillsForPrompt,generateBranchSummary,generateDiffString,generateSummary,generateSummaryWithUsage,generateUnifiedPatch,getAgentDir,getAvailableThemes,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,loadProjectContextFiles,loadSkills,loadSkillsFromDir,main,migrateSessionEntries,parseArgs,parseFrontmatter,parseSessionEntries,parseSkillBlock,prepareBranchEntries,rawKeyHint,readStoredCredential,renderDiff,resizeImage,resolveCliModel,resolveModelScopeWithDiagnostics,runPrintMode,runRpcMode,serializeConversation,sessionEntryToContextMessages,shouldCompact,stripFrontmatter,truncateHead,truncateLine,truncateTail,truncateToVisualLines,withFileMutationQueue,wrapRegisteredTool,wrapRegisteredTools}from"./chunk-QB4HYZZE.js";import{__export}from"./chunk-4L3WN2XY.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,FooterComponent:()=>FooterComponent,InteractiveMode:()=>InteractiveMode,LoginDialogComponent:()=>LoginDialogComponent,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,buildContextEntries:()=>buildContextEntries,buildSessionContext:()=>buildSessionContext,calculateContextTokens:()=>calculateContextTokens,collectEntriesForBranchSummary:()=>collectEntriesForBranchSummary,compact:()=>compact,convertToLlm:()=>convertToLlm,convertToPng:()=>convertToPng,copyToClipboard:()=>copyToClipboard,createAgentSession:()=>createAgentSession,createAgentSessionFromServices:()=>createAgentSessionFromServices,createAgentSessionRuntime:()=>createAgentSessionRuntime,createAgentSessionServices:()=>createAgentSessionServices,createBashTool:()=>createBashTool,createBashToolDefinition:()=>createBashToolDefinition,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,createPowerShellTool:()=>createPowerShellTool,createPowerShellToolDefinition:()=>createPowerShellToolDefinition,createReadOnlyTools:()=>createReadOnlyTools,createReadTool:()=>createReadTool,createReadToolDefinition:()=>createReadToolDefinition,createSyntheticSourceInfo:()=>createSyntheticSourceInfo,createWriteTool:()=>createWriteTool,createWriteToolDefinition:()=>createWriteToolDefinition,defineTool:()=>defineTool,detectSupportedImageMimeTypeFromFile:()=>detectSupportedImageMimeTypeFromFile,discoverAndLoadExtensions:()=>discoverAndLoadExtensions,estimateTokens:()=>estimateTokens,findCutPoint:()=>findCutPoint,findTurnStartIndex:()=>findTurnStartIndex,formatDimensionNote:()=>formatDimensionNote,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,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,shouldCompact:()=>shouldCompact,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};
|