bluelamp 6.6.26 → 6.6.27
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/dist/auth/InteractiveLogin.js +1 -1
- package/dist/auth/PortalAuthClient.js +1 -1
- package/dist/auth/TokenManager.js +1 -1
- package/dist/bin/bluelamp-vscode-base.mjs +1 -1
- package/dist/i18n/en.d.ts +31 -6
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +1 -1
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/ja.d.ts +31 -6
- package/dist/i18n/ja.d.ts.map +1 -1
- package/dist/i18n/ja.js +1 -1
- package/dist/i18n/ja.js.map +1 -1
- package/dist/lib/claudeExitDiagnosis.d.ts +94 -0
- package/dist/lib/claudeExitDiagnosis.d.ts.map +1 -0
- package/dist/lib/claudeExitDiagnosis.js +1 -0
- package/dist/lib/claudeExitDiagnosis.js.map +1 -0
- package/dist/lib/mcp-server/index.cjs +1 -1
- package/dist/lib/mcp-server/portal-api-client.cjs +1 -1
- package/dist/lib/transcriptFree.d.ts +20 -7
- package/dist/lib/transcriptFree.d.ts.map +1 -1
- package/dist/lib/transcriptFree.js +1 -1
- package/dist/lib/transcriptFree.js.map +1 -1
- package/package.json +1 -1
package/dist/i18n/en.d.ts
CHANGED
|
@@ -6,31 +6,56 @@ export declare const en: {
|
|
|
6
6
|
readonly loadedEnvLocal: "Loaded .env.local";
|
|
7
7
|
readonly loadedEnv: "Loaded .env";
|
|
8
8
|
readonly undefinedCommand: "Undefined command: {commandName}";
|
|
9
|
-
readonly customSlotConfig: "
|
|
9
|
+
readonly customSlotConfig: "Slot config: slot{slotNumber} loaded";
|
|
10
10
|
readonly brandTitle: "B l u e L a m p";
|
|
11
11
|
readonly commandInfo: "Command: {commandName}{slotInfo}";
|
|
12
12
|
readonly debugMode: "Debug mode: enabled";
|
|
13
13
|
readonly logFile: "Log file: {path}";
|
|
14
|
-
readonly promptInfo: "Prompt: {keyword}";
|
|
15
14
|
readonly initialPromptTitle: "Let's get started";
|
|
16
15
|
readonly initialPromptInputHint: "Type your request in the \"❯\" box below and press Enter (if typing does nothing, click this panel once).";
|
|
17
|
-
readonly initialPromptLoadContext: "BlueLamp MCP reference materials \"{keyword}\" are available for this session.\nPlease use the load_knowledge tool to load \"{keyword}\" before starting.";
|
|
18
|
-
readonly initialPromptKeywordNote: "If MCP tools are not yet loaded, please wait a moment and try again.";
|
|
19
16
|
readonly initialPromptReady: "";
|
|
20
17
|
readonly launchingClaude: "Launching Claude...";
|
|
21
18
|
readonly startInstruction: "Your main prompt has already been loaded. Follow its definition and begin naturally by greeting the user.";
|
|
22
19
|
readonly mcpServer: "MCP Server: BlueLamp";
|
|
23
|
-
readonly knowledge: "Knowledge:
|
|
20
|
+
readonly knowledge: "Knowledge: loaded";
|
|
21
|
+
readonly knowledgeNotLoaded: "Knowledge: not loaded (guidance follows in the conversation)";
|
|
24
22
|
readonly debugInfo: "Debug info:";
|
|
25
23
|
readonly debugCommand: "Command: {command}";
|
|
26
24
|
readonly debugArgs: "Args: {args}";
|
|
27
25
|
readonly debugConfigFile: "MCP config file: {path}";
|
|
28
|
-
readonly debugEnvKeyword: "Env
|
|
26
|
+
readonly debugEnvKeyword: "Env MUSUHI_KEYWORD: {state}";
|
|
27
|
+
readonly debugEnvKeywordSet: "set";
|
|
28
|
+
readonly debugEnvKeywordUnset: "unset";
|
|
29
29
|
readonly debugEnvToken: "CLI token (portal-token.enc): {token}...";
|
|
30
30
|
readonly debugEnvPortal: "Env PORTAL_URL: {url}";
|
|
31
31
|
readonly debugConfigContent: "MCP config file contents:";
|
|
32
32
|
readonly claudeStartError: "Claude launch error: {error}";
|
|
33
33
|
readonly sessionEnd: "BlueLamp session ended";
|
|
34
|
+
readonly claudeExit: {
|
|
35
|
+
readonly title: "Claude exited abnormally ({ended}, {seconds}s after launch)";
|
|
36
|
+
readonly cause: {
|
|
37
|
+
readonly notFound: "Reason: the claude command was not found (Claude Code is not installed or not on PATH).";
|
|
38
|
+
readonly notExecutable: "Reason: the claude command cannot be executed (permission denied).";
|
|
39
|
+
readonly brokenInstall: "Reason: claude --version failed (the Claude Code installation is broken).";
|
|
40
|
+
readonly outdated: "Reason: your Claude Code ({version}) is too old and does not know the launch options {flags}.";
|
|
41
|
+
readonly earlyExit: "Reason: Claude Code exited right after starting (usually not logged in, an expired login, or a broken config).";
|
|
42
|
+
readonly crashed: "Reason: Claude Code exited with an error while running.";
|
|
43
|
+
readonly killed: "Reason: Claude Code was stopped from outside (possibly by the OS due to low memory).";
|
|
44
|
+
};
|
|
45
|
+
readonly version: "Claude Code version: {version}";
|
|
46
|
+
readonly probeOutput: "Output of claude --version (last lines):";
|
|
47
|
+
readonly aboveHint: "Any message from Claude Code itself is shown above this.";
|
|
48
|
+
readonly nextSteps: "Next step:";
|
|
49
|
+
readonly step: {
|
|
50
|
+
readonly checkVersion: "Run claude --version in the terminal and check that a version is printed";
|
|
51
|
+
readonly install: "Reinstall Claude Code: npm i -g @anthropic-ai/claude-code";
|
|
52
|
+
readonly update: "Update Claude Code: npm i -g @anthropic-ai/claude-code@latest";
|
|
53
|
+
readonly loginAlone: "Run just claude in the terminal to start it on its own and check for a login prompt or error (/exit to leave)";
|
|
54
|
+
readonly relaunch: "Launch the agent again from its card";
|
|
55
|
+
readonly freeMemory: "Close other apps to free memory, then launch again";
|
|
56
|
+
readonly askSupport: "If it still fails, send a screenshot of this screen to support";
|
|
57
|
+
};
|
|
58
|
+
};
|
|
34
59
|
readonly shuttingDown: "Shutting down BlueLamp...";
|
|
35
60
|
readonly unexpectedError: "Unexpected error: {error}";
|
|
36
61
|
readonly authActivated: "Connected to BlueLamp";
|
package/dist/i18n/en.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,EAAE
|
|
1
|
+
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2IL,CAAC"}
|
package/dist/i18n/en.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.en=void 0,exports.en={base:{loadedEnvLocal:"Loaded .env.local",loadedEnv:"Loaded .env",undefinedCommand:"Undefined command: {commandName}",customSlotConfig:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.en=void 0,exports.en={base:{loadedEnvLocal:"Loaded .env.local",loadedEnv:"Loaded .env",undefinedCommand:"Undefined command: {commandName}",customSlotConfig:"Slot config: slot{slotNumber} loaded",brandTitle:"B l u e L a m p",commandInfo:"Command: {commandName}{slotInfo}",debugMode:"Debug mode: enabled",logFile:"Log file: {path}",initialPromptTitle:"Let's get started",initialPromptInputHint:'Type your request in the "❯" box below and press Enter (if typing does nothing, click this panel once).',initialPromptReady:"",launchingClaude:"Launching Claude...",startInstruction:"Your main prompt has already been loaded. Follow its definition and begin naturally by greeting the user.",mcpServer:"MCP Server: BlueLamp",knowledge:"Knowledge: loaded",knowledgeNotLoaded:"Knowledge: not loaded (guidance follows in the conversation)",debugInfo:"Debug info:",debugCommand:"Command: {command}",debugArgs:"Args: {args}",debugConfigFile:"MCP config file: {path}",debugEnvKeyword:"Env MUSUHI_KEYWORD: {state}",debugEnvKeywordSet:"set",debugEnvKeywordUnset:"unset",debugEnvToken:"CLI token (portal-token.enc): {token}...",debugEnvPortal:"Env PORTAL_URL: {url}",debugConfigContent:"MCP config file contents:",claudeStartError:"Claude launch error: {error}",sessionEnd:"BlueLamp session ended",claudeExit:{title:"Claude exited abnormally ({ended}, {seconds}s after launch)",cause:{notFound:"Reason: the claude command was not found (Claude Code is not installed or not on PATH).",notExecutable:"Reason: the claude command cannot be executed (permission denied).",brokenInstall:"Reason: claude --version failed (the Claude Code installation is broken).",outdated:"Reason: your Claude Code ({version}) is too old and does not know the launch options {flags}.",earlyExit:"Reason: Claude Code exited right after starting (usually not logged in, an expired login, or a broken config).",crashed:"Reason: Claude Code exited with an error while running.",killed:"Reason: Claude Code was stopped from outside (possibly by the OS due to low memory)."},version:"Claude Code version: {version}",probeOutput:"Output of claude --version (last lines):",aboveHint:"Any message from Claude Code itself is shown above this.",nextSteps:"Next step:",step:{checkVersion:"Run claude --version in the terminal and check that a version is printed",install:"Reinstall Claude Code: npm i -g @anthropic-ai/claude-code",update:"Update Claude Code: npm i -g @anthropic-ai/claude-code@latest",loginAlone:"Run just claude in the terminal to start it on its own and check for a login prompt or error (/exit to leave)",relaunch:"Launch the agent again from its card",freeMemory:"Close other apps to free memory, then launch again",askSupport:"If it still fails, send a screenshot of this screen to support"}},shuttingDown:"Shutting down BlueLamp...",unexpectedError:"Unexpected error: {error}",authActivated:"Connected to BlueLamp",extendedMode:"Connected to BlueLamp",claudeAccountLabel:"Claude: {email}",claudeAccountNotLoggedIn:"Claude: not logged in (the login screen appears on first launch)"},auth:{portalAuthTitle:"BlueLamp - Portal Auth",checkingSavedToken:"Checking saved token...",validationResult:"Validation result:",existingTokenValid:"Existing token is valid",savedTokenInvalid:"Saved token is invalid",savedTokenUnverifiable:"Could not verify the saved token ({error}). Keeping it and continuing with the saved token",verifyUnreachable:"could not reach the BlueLamp server; this is not a password problem",enterCredentials:"Enter your Portal login credentials",invalidEmail:"Invalid email address format",emptyPassword:"Password was not entered",kiLimitExceeded:"Knowledge injection usage limit reached",kiLimitCheckPortal:"Check your usage on the Portal",authError:"Auth error: {error}",savingToken:"Saving token...",tokenSaveFailed:"Token save failed (auth succeeded)",tokenSaved:"Token saved securely",unexpectedError:"Unexpected error: {error}",authSuccess:"Portal auth successful",userLabel:"User: {name}",emailLabel:"Email: {email}",roleLabel:"Role: {role}",usingCachedToken:"Using cached token",firstLoginComplete:"First login complete",logoutTitle:"BlueLamp - Logout",confirmLogout:"Delete login credentials? (y/N): ",logoutSuccess:"Login credentials deleted",logoutNotFound:"No login credentials found",logoutCancelled:"Cancelled",envUpdateFailed:"Failed to update .env file: {error}",authAttempt:"Auth attempt {attempt}/{max}...",authOk:"Portal auth successful",tokenOk:"Token acquired",tokenPinned:"Pinned this machine's token to tenant {tenant} (~/.musuhi/pinned-tenant.json)",pinDeclarationInvalid:"Login aborted: the machine declaration file could not be read: {error}",authRetry:"Retrying in {delay}ms...",portalAuthError:"Portal auth error: {error}",portalAuthHelp1:"1. Check your internet connection",portalAuthHelp2:"2. Verify your Portal credentials",portalAuthHelp3:"3. Check if {url} is accessible",portalAuthHelpTitle:"Troubleshooting:",tokenSaveComplete:"Token saved",tokenSaveError:"Token save error: {error}",tokenLoadError:"Token load error: {error}",tokenDeleteError:"Token delete error: {error}",invalidTokenFormat:"Only Portal-issued cli_ format tokens are supported",networkError:"Network error: {error}",requestTimeout:"Request timed out",responseParseError:"Response parse error: {error}"},mcp:{toolDescriptionLoadKnowledge:"Retrieve project reference materials from BlueLamp",keywordDescription:"Keyword (e.g. @相談 — use as-is, no prefix needed)",knowledgeLoadSuccess:"BlueLamp Specialized Context Loaded",knowledgeApplied:"Reference information loaded. Please refer to the above content for assistance.",knowledgeNotFound:'No knowledge found for keyword "{keyword}"',knowledgeLoadError:"Error loading knowledge: {error}",promptNotFoundForKeyword:'No prompt found for keyword "{keyword}"',apiReturnedError:"API returned an error",portalApiError:"Portal API error (HTTP {status})",portalApiFailed:"Failed to retrieve knowledge from Portal API: {error}",portalCommunicationError:"Portal API communication error: {error}",noAuthToken:"No auth token set. Run any of bluelamp1-300 in a terminal to open the login screen (this creates ~/.musuhi/portal-token.enc).",listMcpsFailed:"Failed to list MCPs: {error}",getMcpInfoFailed:"Failed to get MCP info: {error}",callToolFailed:"Tool execution failed: {error}",violationNoToken:"No auth token set",violationApiError:"Violation report error (HTTP {status})",violationCommunicationError:"Violation report communication error: {error}"}};
|
package/dist/i18n/en.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,EAAE,GAAG;IAChB,IAAI,EAAE;QACJ,cAAc,EAAE,mBAAmB;QACnC,SAAS,EAAE,aAAa;QACxB,gBAAgB,EAAE,kCAAkC;QACpD,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,EAAE,GAAG;IAChB,IAAI,EAAE;QACJ,cAAc,EAAE,mBAAmB;QACnC,SAAS,EAAE,aAAa;QACxB,gBAAgB,EAAE,kCAAkC;QACpD,yDAAyD;QACzD,gBAAgB,EAAE,sCAAsC;QACxD,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,kCAAkC;QAC/C,SAAS,EAAE,qBAAqB;QAChC,OAAO,EAAE,kBAAkB;QAC3B,kBAAkB,EAAE,mBAAmB;QACvC,sBAAsB,EACpB,yGAAyG;QAC3G,kBAAkB,EAAE,EAAE;QACtB,eAAe,EAAE,qBAAqB;QACtC,gBAAgB,EACd,2GAA2G;QAC7G,SAAS,EAAE,sBAAsB;QACjC,SAAS,EAAE,mBAAmB;QAC9B,kBAAkB,EAAE,8DAA8D;QAClF,SAAS,EAAE,aAAa;QACxB,YAAY,EAAE,oBAAoB;QAClC,SAAS,EAAE,cAAc;QACzB,eAAe,EAAE,yBAAyB;QAC1C,eAAe,EAAE,6BAA6B;QAC9C,kBAAkB,EAAE,KAAK;QACzB,oBAAoB,EAAE,OAAO;QAC7B,aAAa,EAAE,0CAA0C;QACzD,cAAc,EAAE,uBAAuB;QACvC,kBAAkB,EAAE,2BAA2B;QAC/C,gBAAgB,EAAE,8BAA8B;QAChD,UAAU,EAAE,wBAAwB;QACpC,uGAAuG;QACvG,UAAU,EAAE;YACV,KAAK,EAAE,6DAA6D;YACpE,KAAK,EAAE;gBACL,QAAQ,EAAE,yFAAyF;gBACnG,aAAa,EAAE,oEAAoE;gBACnF,aAAa,EAAE,2EAA2E;gBAC1F,QAAQ,EAAE,+FAA+F;gBACzG,SAAS,EAAE,gHAAgH;gBAC3H,OAAO,EAAE,yDAAyD;gBAClE,MAAM,EAAE,sFAAsF;aAC/F;YACD,OAAO,EAAE,gCAAgC;YACzC,WAAW,EAAE,0CAA0C;YACvD,SAAS,EAAE,0DAA0D;YACrE,SAAS,EAAE,YAAY;YACvB,IAAI,EAAE;gBACJ,YAAY,EAAE,0EAA0E;gBACxF,OAAO,EAAE,2DAA2D;gBACpE,MAAM,EAAE,+DAA+D;gBACvE,UAAU,EAAE,+GAA+G;gBAC3H,QAAQ,EAAE,sCAAsC;gBAChD,UAAU,EAAE,oDAAoD;gBAChE,UAAU,EAAE,gEAAgE;aAC7E;SACF;QACD,YAAY,EAAE,2BAA2B;QACzC,eAAe,EAAE,2BAA2B;QAC5C,aAAa,EAAE,uBAAuB;QACtC,YAAY,EAAE,uBAAuB;QACrC,qFAAqF;QACrF,qFAAqF;QACrF,kBAAkB,EAAE,iBAAiB;QACrC,wBAAwB,EAAE,kEAAkE;KAC7F;IACD,IAAI,EAAE;QACJ,eAAe,EAAE,wBAAwB;QACzC,kBAAkB,EAAE,yBAAyB;QAC7C,gBAAgB,EAAE,oBAAoB;QACtC,kBAAkB,EAAE,yBAAyB;QAC7C,iBAAiB,EAAE,wBAAwB;QAC3C,sBAAsB,EAAE,4FAA4F;QACpH,iBAAiB,EAAE,qEAAqE;QACxF,gBAAgB,EAAE,qCAAqC;QACvD,YAAY,EAAE,8BAA8B;QAC5C,aAAa,EAAE,0BAA0B;QACzC,eAAe,EAAE,yCAAyC;QAC1D,kBAAkB,EAAE,gCAAgC;QACpD,SAAS,EAAE,qBAAqB;QAChC,WAAW,EAAE,iBAAiB;QAC9B,eAAe,EAAE,oCAAoC;QACrD,UAAU,EAAE,sBAAsB;QAClC,eAAe,EAAE,2BAA2B;QAC5C,WAAW,EAAE,wBAAwB;QACrC,SAAS,EAAE,cAAc;QACzB,UAAU,EAAE,gBAAgB;QAC5B,SAAS,EAAE,cAAc;QACzB,gBAAgB,EAAE,oBAAoB;QACtC,kBAAkB,EAAE,sBAAsB;QAC1C,WAAW,EAAE,mBAAmB;QAChC,aAAa,EAAE,mCAAmC;QAClD,aAAa,EAAE,2BAA2B;QAC1C,cAAc,EAAE,4BAA4B;QAC5C,eAAe,EAAE,WAAW;QAC5B,eAAe,EAAE,qCAAqC;QACtD,WAAW,EAAE,iCAAiC;QAC9C,MAAM,EAAE,wBAAwB;QAChC,OAAO,EAAE,gBAAgB;QACzB,WAAW,EAAE,gFAAgF;QAC7F,qBAAqB,EAAE,wEAAwE;QAC/F,SAAS,EAAE,0BAA0B;QACrC,eAAe,EAAE,4BAA4B;QAC7C,eAAe,EAAE,mCAAmC;QACpD,eAAe,EAAE,mCAAmC;QACpD,eAAe,EAAE,iCAAiC;QAClD,mBAAmB,EAAE,kBAAkB;QACvC,iBAAiB,EAAE,aAAa;QAChC,cAAc,EAAE,2BAA2B;QAC3C,cAAc,EAAE,2BAA2B;QAC3C,gBAAgB,EAAE,6BAA6B;QAC/C,kBAAkB,EAAE,qDAAqD;QACzE,YAAY,EAAE,wBAAwB;QACtC,cAAc,EAAE,mBAAmB;QACnC,kBAAkB,EAAE,+BAA+B;KACpD;IACD,GAAG,EAAE;QACH,4BAA4B,EAAE,oDAAoD;QAClF,kBAAkB,EAAE,kDAAkD;QACtE,oBAAoB,EAAE,qCAAqC;QAC3D,gBAAgB,EAAE,iFAAiF;QACnG,iBAAiB,EAAE,4CAA4C;QAC/D,kBAAkB,EAAE,kCAAkC;QACtD,wBAAwB,EAAE,yCAAyC;QACnE,gBAAgB,EAAE,uBAAuB;QACzC,cAAc,EAAE,kCAAkC;QAClD,eAAe,EAAE,uDAAuD;QACxE,wBAAwB,EAAE,yCAAyC;QACnE,WAAW,EACT,+HAA+H;QACjI,cAAc,EAAE,8BAA8B;QAC9C,gBAAgB,EAAE,iCAAiC;QACnD,cAAc,EAAE,gCAAgC;QAChD,gBAAgB,EAAE,mBAAmB;QACrC,iBAAiB,EAAE,wCAAwC;QAC3D,2BAA2B,EAAE,+CAA+C;KAC7E;CACO,CAAC"}
|
package/dist/i18n/ja.d.ts
CHANGED
|
@@ -7,31 +7,56 @@ export declare const ja: {
|
|
|
7
7
|
readonly loadedEnvLocal: "Loaded .env.local";
|
|
8
8
|
readonly loadedEnv: "Loaded .env";
|
|
9
9
|
readonly undefinedCommand: "未定義のコマンド: {commandName}";
|
|
10
|
-
readonly customSlotConfig: "
|
|
10
|
+
readonly customSlotConfig: "スロット設定: slot{slotNumber} 読み込み済み";
|
|
11
11
|
readonly brandTitle: "B l u e L a m p";
|
|
12
12
|
readonly commandInfo: "コマンド: {commandName}{slotInfo}";
|
|
13
13
|
readonly debugMode: "デバッグモード: 有効";
|
|
14
14
|
readonly logFile: "ログファイル: {path}";
|
|
15
|
-
readonly promptInfo: "プロンプト: {keyword}";
|
|
16
15
|
readonly initialPromptTitle: "さあ始めましょう";
|
|
17
16
|
readonly initialPromptInputHint: "ご用件は、この下の「❯」の欄に日本語で入力して Enter を押してください(文字が打てない時は、この画面を一度クリックしてください)。";
|
|
18
|
-
readonly initialPromptLoadContext: "このセッションではBlueLamp MCPの参考資料 \"{keyword}\" が利用可能です。\nload_knowledge ツールで \"{keyword}\" を読み込んでから始めてください。";
|
|
19
|
-
readonly initialPromptKeywordNote: "MCPツールがまだ読み込まれていない場合は、少し待ってから再度お試しください。";
|
|
20
17
|
readonly initialPromptReady: "";
|
|
21
18
|
readonly launchingClaude: "Claude 起動中...";
|
|
22
19
|
readonly startInstruction: "あなたの本体プロンプトは読み込み済みです。本体の定義に従い、ユーザーへの挨拶から自然に開始してください。";
|
|
23
20
|
readonly mcpServer: "MCP Server: BlueLamp";
|
|
24
|
-
readonly knowledge: "Knowledge:
|
|
21
|
+
readonly knowledge: "Knowledge: 読み込み済み";
|
|
22
|
+
readonly knowledgeNotLoaded: "Knowledge: 読み込めていません(会話の中で案内します)";
|
|
25
23
|
readonly debugInfo: "デバッグ情報:";
|
|
26
24
|
readonly debugCommand: "コマンド: {command}";
|
|
27
25
|
readonly debugArgs: "引数: {args}";
|
|
28
26
|
readonly debugConfigFile: "MCP設定ファイル: {path}";
|
|
29
|
-
readonly debugEnvKeyword: "環境変数 MUSUHI_KEYWORD: {
|
|
27
|
+
readonly debugEnvKeyword: "環境変数 MUSUHI_KEYWORD: {state}";
|
|
28
|
+
readonly debugEnvKeywordSet: "設定あり";
|
|
29
|
+
readonly debugEnvKeywordUnset: "無し";
|
|
30
30
|
readonly debugEnvToken: "CLI トークン (portal-token.enc): {token}...";
|
|
31
31
|
readonly debugEnvPortal: "環境変数 PORTAL_URL: {url}";
|
|
32
32
|
readonly debugConfigContent: "MCP設定ファイル内容:";
|
|
33
33
|
readonly claudeStartError: "Claude 起動エラー: {error}";
|
|
34
34
|
readonly sessionEnd: "BlueLamp セッション終了";
|
|
35
|
+
readonly claudeExit: {
|
|
36
|
+
readonly title: "Claude が異常終了しました({ended}・起動から {seconds} 秒)";
|
|
37
|
+
readonly cause: {
|
|
38
|
+
readonly notFound: "理由: claude コマンドが見つかりません(Claude Code が入っていないか、PATH にありません)。";
|
|
39
|
+
readonly notExecutable: "理由: claude コマンドを実行できません(実行の権限がありません)。";
|
|
40
|
+
readonly brokenInstall: "理由: claude --version が失敗しました(Claude Code の導入が壊れています)。";
|
|
41
|
+
readonly outdated: "理由: Claude Code の版({version})が古く、起動に使う引数 {flags} を知りません。";
|
|
42
|
+
readonly earlyExit: "理由: Claude Code が起動直後に終了しました(未ログイン・ログインの期限切れ・設定の破損が多い原因です)。";
|
|
43
|
+
readonly crashed: "理由: Claude Code が動作中にエラーで終了しました。";
|
|
44
|
+
readonly killed: "理由: Claude Code が外から止められました(メモリ不足などで OS が止めた可能性があります)。";
|
|
45
|
+
};
|
|
46
|
+
readonly version: "Claude Code の版: {version}";
|
|
47
|
+
readonly probeOutput: "claude --version の出力(末尾):";
|
|
48
|
+
readonly aboveHint: "Claude Code 自身のメッセージがあれば、この上に表示されています。";
|
|
49
|
+
readonly nextSteps: "次の 1 手:";
|
|
50
|
+
readonly step: {
|
|
51
|
+
readonly checkVersion: "ターミナルで claude --version を実行し、版が表示されるか確かめる";
|
|
52
|
+
readonly install: "npm i -g @anthropic-ai/claude-code で Claude Code を入れ直す";
|
|
53
|
+
readonly update: "npm i -g @anthropic-ai/claude-code@latest で Claude Code を最新にする";
|
|
54
|
+
readonly loginAlone: "ターミナルで claude とだけ打って単体で起動し、ログインやエラーの表示を確かめる(/exit で抜ける)";
|
|
55
|
+
readonly relaunch: "エージェントのカードからもう一度起動する";
|
|
56
|
+
readonly freeMemory: "他のアプリを閉じてメモリを空けてから起動し直す";
|
|
57
|
+
readonly askSupport: "直らなければ、この画面のスクリーンショットをサポートへ送る";
|
|
58
|
+
};
|
|
59
|
+
};
|
|
35
60
|
readonly shuttingDown: "BlueLamp を終了しています...";
|
|
36
61
|
readonly unexpectedError: "予期しないエラー: {error}";
|
|
37
62
|
readonly authActivated: "BlueLamp に接続しました";
|
package/dist/i18n/ja.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ja.d.ts","sourceRoot":"","sources":["../../src/i18n/ja.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,EAAE
|
|
1
|
+
{"version":3,"file":"ja.d.ts","sourceRoot":"","sources":["../../src/i18n/ja.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2IL,CAAC"}
|
package/dist/i18n/ja.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ja=void 0,exports.ja={base:{loadedEnvLocal:"Loaded .env.local",loadedEnv:"Loaded .env",undefinedCommand:"未定義のコマンド: {commandName}",customSlotConfig:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ja=void 0,exports.ja={base:{loadedEnvLocal:"Loaded .env.local",loadedEnv:"Loaded .env",undefinedCommand:"未定義のコマンド: {commandName}",customSlotConfig:"スロット設定: slot{slotNumber} 読み込み済み",brandTitle:"B l u e L a m p",commandInfo:"コマンド: {commandName}{slotInfo}",debugMode:"デバッグモード: 有効",logFile:"ログファイル: {path}",initialPromptTitle:"さあ始めましょう",initialPromptInputHint:"ご用件は、この下の「❯」の欄に日本語で入力して Enter を押してください(文字が打てない時は、この画面を一度クリックしてください)。",initialPromptReady:"",launchingClaude:"Claude 起動中...",startInstruction:"あなたの本体プロンプトは読み込み済みです。本体の定義に従い、ユーザーへの挨拶から自然に開始してください。",mcpServer:"MCP Server: BlueLamp",knowledge:"Knowledge: 読み込み済み",knowledgeNotLoaded:"Knowledge: 読み込めていません(会話の中で案内します)",debugInfo:"デバッグ情報:",debugCommand:"コマンド: {command}",debugArgs:"引数: {args}",debugConfigFile:"MCP設定ファイル: {path}",debugEnvKeyword:"環境変数 MUSUHI_KEYWORD: {state}",debugEnvKeywordSet:"設定あり",debugEnvKeywordUnset:"無し",debugEnvToken:"CLI トークン (portal-token.enc): {token}...",debugEnvPortal:"環境変数 PORTAL_URL: {url}",debugConfigContent:"MCP設定ファイル内容:",claudeStartError:"Claude 起動エラー: {error}",sessionEnd:"BlueLamp セッション終了",claudeExit:{title:"Claude が異常終了しました({ended}・起動から {seconds} 秒)",cause:{notFound:"理由: claude コマンドが見つかりません(Claude Code が入っていないか、PATH にありません)。",notExecutable:"理由: claude コマンドを実行できません(実行の権限がありません)。",brokenInstall:"理由: claude --version が失敗しました(Claude Code の導入が壊れています)。",outdated:"理由: Claude Code の版({version})が古く、起動に使う引数 {flags} を知りません。",earlyExit:"理由: Claude Code が起動直後に終了しました(未ログイン・ログインの期限切れ・設定の破損が多い原因です)。",crashed:"理由: Claude Code が動作中にエラーで終了しました。",killed:"理由: Claude Code が外から止められました(メモリ不足などで OS が止めた可能性があります)。"},version:"Claude Code の版: {version}",probeOutput:"claude --version の出力(末尾):",aboveHint:"Claude Code 自身のメッセージがあれば、この上に表示されています。",nextSteps:"次の 1 手:",step:{checkVersion:"ターミナルで claude --version を実行し、版が表示されるか確かめる",install:"npm i -g @anthropic-ai/claude-code で Claude Code を入れ直す",update:"npm i -g @anthropic-ai/claude-code@latest で Claude Code を最新にする",loginAlone:"ターミナルで claude とだけ打って単体で起動し、ログインやエラーの表示を確かめる(/exit で抜ける)",relaunch:"エージェントのカードからもう一度起動する",freeMemory:"他のアプリを閉じてメモリを空けてから起動し直す",askSupport:"直らなければ、この画面のスクリーンショットをサポートへ送る"}},shuttingDown:"BlueLamp を終了しています...",unexpectedError:"予期しないエラー: {error}",authActivated:"BlueLamp に接続しました",extendedMode:"BlueLamp に接続しました",claudeAccountLabel:"Claude: {email}",claudeAccountNotLoggedIn:"Claude: 未ログイン(初回起動時にログイン画面が出ます)"},auth:{portalAuthTitle:"BlueLamp ─ 認証",checkingSavedToken:"保存されたトークンを確認中...",validationResult:"検証結果:",existingTokenValid:"既存のトークンが有効です",savedTokenInvalid:"保存されたトークンが無効です",savedTokenUnverifiable:"保存されたトークンを確かめられませんでした({error})。消さずに、保存済みのトークンで続けます",verifyUnreachable:"BlueLamp のサーバーに届きませんでした。パスワードの問題ではありません",enterCredentials:"Portalログイン情報を入力してください",invalidEmail:"無効なメールアドレス形式です",emptyPassword:"パスワードが入力されていません",kiLimitExceeded:"ナレッジインジェクション使用回数が上限に達しています",kiLimitCheckPortal:"Portalで使用状況を確認してください",authError:"認証エラー: {error}",savingToken:"トークンを保存中...",tokenSaveFailed:"トークン保存に失敗しました(認証は成功)",tokenSaved:"トークンを安全に保存しました",unexpectedError:"予期しないエラー: {error}",authSuccess:"Portal認証成功",userLabel:"ユーザー: {name}",emailLabel:"Email: {email}",roleLabel:"ロール: {role}",usingCachedToken:"保存済みトークンを使用",firstLoginComplete:"初回ログイン完了",logoutTitle:"BlueLamp - ログアウト",confirmLogout:"ログイン情報を削除しますか? (y/N): ",logoutSuccess:"ログイン情報を削除しました",logoutNotFound:"ログイン情報が見つかりません",logoutCancelled:"キャンセルしました",envUpdateFailed:"envファイルの更新に失敗: {error}",authAttempt:"認証試行 {attempt}/{max}...",authOk:"Portal認証成功",tokenOk:"トークン取得成功",tokenPinned:"この機体のトークンをテナント {tenant} に固定しました(~/.musuhi/pinned-tenant.json)",pinDeclarationInvalid:"機体の宣言ファイルが読めないためログインを中止しました: {error}",authRetry:"{delay}ms後にリトライ...",portalAuthError:"Portal認証エラー: {error}",portalAuthHelp1:"1. インターネット接続を確認してください",portalAuthHelp2:"2. Portal認証情報が正しいか確認してください",portalAuthHelp3:"3. {url} にアクセスできるか確認してください",portalAuthHelpTitle:"解決方法:",tokenSaveComplete:"トークン保存完了",tokenSaveError:"トークン保存エラー: {error}",tokenLoadError:"トークン読み込みエラー: {error}",tokenDeleteError:"トークン削除エラー: {error}",invalidTokenFormat:"CLI形式トークンのみサポートされています(CLI_xxx形式)",networkError:"ネットワークエラー: {error}",requestTimeout:"リクエストタイムアウト",responseParseError:"レスポンス解析エラー: {error}"},mcp:{toolDescriptionLoadKnowledge:"プロジェクトの参考資料を取得します",keywordDescription:"キーワード(@相談 など、そのまま指定してください。プレフィックスの追加は不要です)",knowledgeLoadSuccess:"BlueLamp 専門コンテキスト読み込み完了",knowledgeApplied:"参考情報の読み込みが完了しました。上記の内容を参考にしてご支援ください。",knowledgeNotFound:'キーワード "{keyword}" に対応する知識が見つかりませんでした',knowledgeLoadError:"知識の読み込み中にエラーが発生しました: {error}",promptNotFoundForKeyword:'キーワード "{keyword}" に対応するプロンプトが見つかりませんでした',apiReturnedError:"APIがエラーを返しました",portalApiError:"Portal APIエラー (HTTP {status})",portalApiFailed:"Portal APIから知識を取得できませんでした: {error}",portalCommunicationError:"Portal API通信エラー: {error}",noAuthToken:"認証トークンが設定されていません。ターミナルで bluelamp1〜300 のいずれかを実行するとログイン画面が出ます(~/.musuhi/portal-token.enc が作成されます)。",listMcpsFailed:"MCP一覧の取得に失敗しました: {error}",getMcpInfoFailed:"MCP情報の取得に失敗しました: {error}",callToolFailed:"ツール実行に失敗しました: {error}",violationNoToken:"認証トークンが設定されていません",violationApiError:"違反報告エラー (HTTP {status})",violationCommunicationError:"違反報告通信エラー: {error}"}};
|
package/dist/i18n/ja.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ja.js","sourceRoot":"","sources":["../../src/i18n/ja.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACU,QAAA,EAAE,GAAG;IAChB,IAAI,EAAE;QACJ,cAAc,EAAE,mBAAmB;QACnC,SAAS,EAAE,aAAa;QACxB,gBAAgB,EAAE,yBAAyB;QAC3C,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"ja.js","sourceRoot":"","sources":["../../src/i18n/ja.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 箱 n=2786: claude が異常終了したとき、理由と次の 1 手を起動子が出す(判断はここ・起動子は渡すだけ)。
|
|
3
|
+
*
|
|
4
|
+
* 🕳 塞ぐ穴: 起動子は claude の終了を「セッション終了」の 1 行と終了コードの素通しで済ませていた。
|
|
5
|
+
* claude が起動直後に落ちても(未導入・版が古く引数を知らない・未ログイン・設定の破損)、
|
|
6
|
+
* 利用者の画面には「Claude 起動中…」の後にシェルのプロンプトが戻るだけで、
|
|
7
|
+
* **起動できなかったのか・起動後に落ちたのか**を画面から判別できなかった。
|
|
8
|
+
*
|
|
9
|
+
* 🔑 stderr を奪わない: claude は stdio inherit のまま起こす(stderr を pipe にすると claude の
|
|
10
|
+
* 対話画面の描画・色判定が変わりうる)。claude 自身のエラー文はそのまま画面に出ている。
|
|
11
|
+
* ⇒ 理由の材料は ①終了コード/シグナル ②起動からの秒数 ③**終了後に撃つ診断**
|
|
12
|
+
* (`claude --version` と `claude --help`)の出力。診断は異常終了のときだけ撃つ。
|
|
13
|
+
*
|
|
14
|
+
* ⛔ 正常終了(終了コード 0・利用者が Ctrl-C 等で降ろした)では何も足さない。
|
|
15
|
+
*/
|
|
16
|
+
/** これより早い異常終了は「起動直後に落ちた」と読む */
|
|
17
|
+
export declare const EARLY_EXIT_MS = 15000;
|
|
18
|
+
/** 診断の出力から画面に出す最大行数・1 行の最大文字数 */
|
|
19
|
+
export declare const TAIL_LINES = 5;
|
|
20
|
+
export declare const TAIL_LINE_MAX = 200;
|
|
21
|
+
/** 伏せた印(長さを漏らさない固定文字列) */
|
|
22
|
+
export declare const REDACTED = "***";
|
|
23
|
+
export interface ClaudeProbe {
|
|
24
|
+
/** `claude --version` が終了コード 0 で返ったか */
|
|
25
|
+
ok: boolean;
|
|
26
|
+
/** `claude --version` の終了コード(起動できなければ null) */
|
|
27
|
+
status: number | null;
|
|
28
|
+
/** 起動できなかったときの errno(ENOENT 等) */
|
|
29
|
+
errorCode?: string | null;
|
|
30
|
+
/** `claude --version` の標準出力+標準エラー */
|
|
31
|
+
output?: string | null;
|
|
32
|
+
/** `claude --help` の出力(読めなければ null=引数の判定をしない) */
|
|
33
|
+
help?: string | null;
|
|
34
|
+
}
|
|
35
|
+
export interface ClaudeExitInput {
|
|
36
|
+
/** 子の終了コード(シグナルで終わったときは null) */
|
|
37
|
+
code: number | null;
|
|
38
|
+
/** 子を終わらせたシグナル */
|
|
39
|
+
signal: string | null;
|
|
40
|
+
/** spawn から終了までのミリ秒 */
|
|
41
|
+
elapsedMs: number;
|
|
42
|
+
/** 起動子が利用者の Ctrl-C / SIGTERM / SIGHUP を子へ転送した後か */
|
|
43
|
+
shutdownRequested: boolean;
|
|
44
|
+
/** spawn 自体が失敗したときの errno('error' イベント) */
|
|
45
|
+
spawnErrorCode?: string | null;
|
|
46
|
+
/** claude に渡した引数(`--` で始まる物を診断の help と突き合わせる) */
|
|
47
|
+
claudeArgs?: readonly string[];
|
|
48
|
+
/** 終了後に撃った診断(撃っていなければ null) */
|
|
49
|
+
probe?: ClaudeProbe | null;
|
|
50
|
+
}
|
|
51
|
+
export type ClaudeExitCause = 'notFound' | 'notExecutable' | 'brokenInstall' | 'outdated' | 'earlyExit' | 'crashed' | 'killed';
|
|
52
|
+
export type ClaudeExitStep = 'checkVersion' | 'install' | 'update' | 'loginAlone' | 'relaunch' | 'freeMemory' | 'askSupport';
|
|
53
|
+
export type ClaudeExitVerdict = {
|
|
54
|
+
kind: 'normal';
|
|
55
|
+
exitCode: number;
|
|
56
|
+
} | {
|
|
57
|
+
kind: 'abnormal';
|
|
58
|
+
/** 起動子が返す終了コード(必ず 0 以外) */
|
|
59
|
+
exitCode: number;
|
|
60
|
+
cause: ClaudeExitCause;
|
|
61
|
+
/** 画面の 1 行目に出す終了の形(例: `code 1` / `SIGKILL`) */
|
|
62
|
+
ended: string;
|
|
63
|
+
elapsedSec: number;
|
|
64
|
+
/** 版が分かったとき */
|
|
65
|
+
version: string | null;
|
|
66
|
+
/** cause=outdated のとき、help に無かった引数 */
|
|
67
|
+
unknownFlags: string[];
|
|
68
|
+
/** 診断の出力の末尾(秘密は伏せ済み) */
|
|
69
|
+
tail: string[];
|
|
70
|
+
steps: ClaudeExitStep[];
|
|
71
|
+
};
|
|
72
|
+
/** 異常終了か(=診断を撃つ価値があるか)。正常終了で余計な子を起こさないための入口 */
|
|
73
|
+
export declare function isAbnormalExit(input: Pick<ClaudeExitInput, 'code' | 'signal' | 'shutdownRequested' | 'spawnErrorCode'>): boolean;
|
|
74
|
+
/** 秘密になりうる語を伏せる(API キー・Bearer・key=value 形・長い英数字の塊) */
|
|
75
|
+
export declare function redactLine(line: string): string;
|
|
76
|
+
/** 出力の末尾 N 行(空行を除く・伏せ済み・1 行の長さを切る) */
|
|
77
|
+
export declare function tailLines(text: string | null | undefined, max?: number): string[];
|
|
78
|
+
/** `claude --version` の出力から版を拾う(例: `2.0.14 (Claude Code)`) */
|
|
79
|
+
export declare function parseClaudeVersion(output: string | null | undefined): string | null;
|
|
80
|
+
/**
|
|
81
|
+
* help との突き合わせに使ってよい引数(help に載ることを実測した物だけ)。
|
|
82
|
+
* 🔬 2026-10-09 実測(claude 2.1.295): `--append-system-prompt-file` は help に**載らない隠し引数**。
|
|
83
|
+
* ⇒ 渡した引数を全部突き合わせると、正しく導入された claude でも「版が古い」と誤診する。
|
|
84
|
+
* ⛔ ここに足すのは `claude --help` に載ることを撃って確かめた物だけ。
|
|
85
|
+
*/
|
|
86
|
+
export declare const HELP_LISTED_FLAGS: readonly string[];
|
|
87
|
+
/** 渡した引数のうち、help に載るはずなのに載っていない物(help が読めなければ判定しない) */
|
|
88
|
+
export declare function unknownFlagsFor(claudeArgs: readonly string[] | undefined, help: string | null | undefined): string[];
|
|
89
|
+
export declare function diagnoseClaudeExit(input: ClaudeExitInput): ClaudeExitVerdict;
|
|
90
|
+
type Translate = (key: string, params?: Record<string, string | number>) => string;
|
|
91
|
+
/** 画面に出す行(i18n は呼び手の t を使う)。正常終了では空配列 */
|
|
92
|
+
export declare function formatClaudeExitReport(verdict: ClaudeExitVerdict, t: Translate): string[];
|
|
93
|
+
export {};
|
|
94
|
+
//# sourceMappingURL=claudeExitDiagnosis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claudeExitDiagnosis.d.ts","sourceRoot":"","sources":["../../src/lib/claudeExitDiagnosis.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";function isAbnormalExit(e){return!!e.spawnErrorCode||!e.shutdownRequested&&(!!e.signal||"number"==typeof e.code&&0!==e.code)}function redactLine(e){return e.replace(/\bsk-ant-[A-Za-z0-9_-]+/g,exports.REDACTED).replace(/(bearer\s+)[^\s"']+/gi,`$1${exports.REDACTED}`).replace(/((?:token|key|secret|password|passwd|authorization)["']?\s*[:=]\s*["']?)[^\s"',}]+/gi,`$1${exports.REDACTED}`).replace(/[A-Za-z0-9+_=-]{32,}/g,exports.REDACTED)}function tailLines(e,r=exports.TAIL_LINES){return e?e.replace(/\x1b\[[0-9;?]*[A-Za-z]/g,"").split(/\r?\n/).map(e=>e.trimEnd()).filter(e=>""!==e.trim()).slice(-r).map(e=>{const r=redactLine(e);return r.length>exports.TAIL_LINE_MAX?`${r.slice(0,exports.TAIL_LINE_MAX)}…`:r}):[]}function parseClaudeVersion(e){const r=/(\d+\.\d+\.\d+(?:[-+][\w.]+)?)/.exec(e??"");return r?r[1]:null}function unknownFlagsFor(e,r){return r&&e?[...new Set(e.filter(e=>exports.HELP_LISTED_FLAGS.includes(e)))].filter(e=>!new RegExp(`${e.replace(/-/g,"\\-")}(?![a-z0-9-])`).test(r)):[]}function diagnoseClaudeExit(e){if(!isAbnormalExit(e))return{kind:"normal",exitCode:e.code||0};const r=e.probe??null,s=r?.ok?parseClaudeVersion(r.output):null,o=r?.ok?unknownFlagsFor(e.claudeArgs,r.help):[],t=e.spawnErrorCode?e.spawnErrorCode:e.signal?e.signal:`code ${e.code}`,n="number"==typeof e.code&&0!==e.code?e.code:1;let a,i;return"ENOENT"===e.spawnErrorCode||"ENOENT"===r?.errorCode?(a="notFound",i=["install","checkVersion","relaunch"]):"EACCES"===e.spawnErrorCode||"EACCES"===r?.errorCode?(a="notExecutable",i=["install","checkVersion","relaunch"]):r&&!r.ok?(a="brokenInstall",i=["checkVersion","install","relaunch"]):o.length>0?(a="outdated",i=["update","checkVersion","relaunch"]):e.signal?(a="killed",i=["freeMemory","relaunch","askSupport"]):e.elapsedMs<exports.EARLY_EXIT_MS?(a="earlyExit",i=["loginAlone","checkVersion","relaunch","askSupport"]):(a="crashed",i=["relaunch","askSupport"]),{kind:"abnormal",exitCode:n,cause:a,ended:t,elapsedSec:Math.round(Math.max(0,e.elapsedMs)/1e3),version:s,unknownFlags:o,tail:r&&!r.ok?tailLines(r.output):[],steps:i}}function formatClaudeExitReport(e,r){if("normal"===e.kind)return[];const s=[`❌ ${r("base.claudeExit.title",{ended:e.ended,seconds:e.elapsedSec})}`,` ${r(`base.claudeExit.cause.${e.cause}`,{flags:e.unknownFlags.join(" "),version:e.version??"?"})}`];if(e.version&&s.push(` ${r("base.claudeExit.version",{version:e.version})}`),e.tail.length>0){s.push(` ${r("base.claudeExit.probeOutput")}`);for(const r of e.tail)s.push(` | ${r}`)}return s.push(` ${r("base.claudeExit.aboveHint")}`),s.push(""),s.push(r("base.claudeExit.nextSteps")),e.steps.forEach((e,o)=>s.push(` ${o+1}. ${r(`base.claudeExit.step.${e}`)}`)),s}Object.defineProperty(exports,"__esModule",{value:!0}),exports.HELP_LISTED_FLAGS=exports.REDACTED=exports.TAIL_LINE_MAX=exports.TAIL_LINES=exports.EARLY_EXIT_MS=void 0,exports.isAbnormalExit=isAbnormalExit,exports.redactLine=redactLine,exports.tailLines=tailLines,exports.parseClaudeVersion=parseClaudeVersion,exports.unknownFlagsFor=unknownFlagsFor,exports.diagnoseClaudeExit=diagnoseClaudeExit,exports.formatClaudeExitReport=formatClaudeExitReport,exports.EARLY_EXIT_MS=15e3,exports.TAIL_LINES=5,exports.TAIL_LINE_MAX=200,exports.REDACTED="***",exports.HELP_LISTED_FLAGS=["--mcp-config","--settings","--dangerously-skip-permissions"];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claudeExitDiagnosis.js","sourceRoot":"","sources":["../../src/lib/claudeExitDiagnosis.ts"],"names":[],"mappings":"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"}
|