@funnycode/myclaude 0.1.23 → 0.1.26
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/README.md +6 -7
- package/README.zh-CN.md +5 -6
- package/dist/myclaude.js +24 -116
- package/dist/myclaude.mjs +24 -116
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -89,7 +89,7 @@ npx @funnycode/myclaude --help # Show help
|
|
|
89
89
|
|---------|-------------|
|
|
90
90
|
| `/commit` | Generate a git commit message |
|
|
91
91
|
| `/diff` | Show git diff |
|
|
92
|
-
| `/branch` |
|
|
92
|
+
| `/branch` | Create a conversation branch (fork) |
|
|
93
93
|
| `/plan` | Create an implementation plan |
|
|
94
94
|
| `/review` | Review code |
|
|
95
95
|
|
|
@@ -142,8 +142,7 @@ npx @funnycode/myclaude --help # Show help
|
|
|
142
142
|
| `/tag` | Tag current session |
|
|
143
143
|
| `/export` | Export session |
|
|
144
144
|
| `/upgrade` | Check for updates |
|
|
145
|
-
| `/feedback` | Submit feedback |
|
|
146
|
-
| `/summary` | Generate session summary |
|
|
145
|
+
| `/feedback` | Submit feedback (opens GitHub Issues) |
|
|
147
146
|
| `/thinkback` | Think-back review |
|
|
148
147
|
|
|
149
148
|
---
|
|
@@ -263,17 +262,17 @@ Supports both `MYCLAUDE_*` and `CLAUDE_CODE_*` names.
|
|
|
263
262
|
## Development
|
|
264
263
|
|
|
265
264
|
```bash
|
|
266
|
-
git clone https://
|
|
265
|
+
git clone https://github.com/thomaslwq/myclaude.git
|
|
267
266
|
cd myclaude
|
|
268
267
|
bun install
|
|
269
268
|
bun run dev # Development mode
|
|
270
|
-
bun run build # Build to dist/myclaude.
|
|
269
|
+
bun run build # Build to dist/myclaude.mjs
|
|
271
270
|
bun run version # Verify CLI boots
|
|
272
271
|
```
|
|
273
272
|
|
|
274
273
|
### Build Output
|
|
275
274
|
|
|
276
|
-
The build script bundles `src/entrypoints/cli.tsx` into a single file `dist/myclaude.
|
|
275
|
+
The build script bundles `src/entrypoints/cli.tsx` into a single file `dist/myclaude.mjs`, injecting compile-time constants such as version number.
|
|
277
276
|
|
|
278
277
|
### Directory Structure
|
|
279
278
|
|
|
@@ -319,8 +318,8 @@ Pull requests are welcome!
|
|
|
319
318
|
|
|
320
319
|
## Links
|
|
321
320
|
|
|
322
|
-
- **Gitee**: [https://gitee.com/thomaslwq/myclaude](https://gitee.com/thomaslwq/myclaude)
|
|
323
321
|
- **GitHub**: [https://github.com/thomaslwq/myclaude](https://github.com/thomaslwq/myclaude)
|
|
322
|
+
- **Gitee**: [https://gitee.com/thomaslwq/myclaude](https://gitee.com/thomaslwq/myclaude) (mirror)
|
|
324
323
|
- **npm**: [https://www.npmjs.com/package/@funnycode/myclaude](https://www.npmjs.com/package/@funnycode/myclaude)
|
|
325
324
|
|
|
326
325
|
---
|
package/README.zh-CN.md
CHANGED
|
@@ -142,8 +142,7 @@ npx @funnycode/myclaude --help # 查看帮助
|
|
|
142
142
|
| `/tag` | 标记当前会话 |
|
|
143
143
|
| `/export` | 导出会话 |
|
|
144
144
|
| `/upgrade` | 检查更新 |
|
|
145
|
-
| `/feedback` |
|
|
146
|
-
| `/summary` | 生成会话摘要 |
|
|
145
|
+
| `/feedback` | 提交反馈(跳转 GitHub Issues) |
|
|
147
146
|
| `/thinkback` | 回溯思考过程 |
|
|
148
147
|
|
|
149
148
|
---
|
|
@@ -260,17 +259,17 @@ myclaude 内置了一个终端电子宠物。每只宠物都根据你的用户 I
|
|
|
260
259
|
## 开发
|
|
261
260
|
|
|
262
261
|
```bash
|
|
263
|
-
git clone https://
|
|
262
|
+
git clone https://github.com/thomaslwq/myclaude.git
|
|
264
263
|
cd myclaude
|
|
265
264
|
bun install
|
|
266
265
|
bun run dev # 开发模式
|
|
267
|
-
bun run build # 构建到 dist/myclaude.
|
|
266
|
+
bun run build # 构建到 dist/myclaude.mjs
|
|
268
267
|
bun run version # 验证 CLI 启动
|
|
269
268
|
```
|
|
270
269
|
|
|
271
270
|
### 构建产物
|
|
272
271
|
|
|
273
|
-
构建脚本会将 `src/entrypoints/cli.tsx` 打包为单文件 `dist/myclaude.
|
|
272
|
+
构建脚本会将 `src/entrypoints/cli.tsx` 打包为单文件 `dist/myclaude.mjs`,并注入版本号等编译时常量。
|
|
274
273
|
|
|
275
274
|
### 目录结构
|
|
276
275
|
|
|
@@ -316,8 +315,8 @@ src/
|
|
|
316
315
|
|
|
317
316
|
## 相关链接
|
|
318
317
|
|
|
319
|
-
- **Gitee**: [https://gitee.com/thomaslwq/myclaude](https://gitee.com/thomaslwq/myclaude)
|
|
320
318
|
- **GitHub**: [https://github.com/thomaslwq/myclaude](https://github.com/thomaslwq/myclaude)
|
|
319
|
+
- **Gitee**: [https://gitee.com/thomaslwq/myclaude](https://gitee.com/thomaslwq/myclaude)(镜像)
|
|
321
320
|
- **npm**: [https://www.npmjs.com/package/@funnycode/myclaude](https://www.npmjs.com/package/@funnycode/myclaude)
|
|
322
321
|
|
|
323
322
|
---
|
package/dist/myclaude.js
CHANGED
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
// MACRO - build-time constants (injected by build.ts)
|
|
5
5
|
// MACRO injected by build script
|
|
6
6
|
globalThis.MACRO = {
|
|
7
|
-
VERSION: "0.1.
|
|
8
|
-
BUILD_TIME: "2026-06-
|
|
7
|
+
VERSION: "0.1.26",
|
|
8
|
+
BUILD_TIME: "2026-06-22T13:17:09.269Z",
|
|
9
9
|
PACKAGE_URL: "@funnycode/myclaude",
|
|
10
10
|
NATIVE_PACKAGE_URL: "@funnycode/myclaude",
|
|
11
11
|
VERSION_CHANGELOG: '',
|
|
12
|
-
ISSUES_EXPLAINER: 'file an issue at ' + "https://
|
|
12
|
+
ISSUES_EXPLAINER: 'file an issue at ' + "https://github.com/thomaslwq/myclaude/issues",
|
|
13
13
|
FEEDBACK_CHANNEL: 'github',
|
|
14
14
|
};
|
|
15
15
|
|
|
@@ -274035,7 +274035,7 @@ function getRemoteSessionUrl(sessionId, ingressUrl) {
|
|
|
274035
274035
|
const baseUrl = getClaudeAiBaseUrl(compatId, ingressUrl);
|
|
274036
274036
|
return `${baseUrl}/code/${compatId}`;
|
|
274037
274037
|
}
|
|
274038
|
-
var PRODUCT_URL = "https://
|
|
274038
|
+
var PRODUCT_URL = "https://github.com/thomaslwq/myclaude", CLAUDE_AI_BASE_URL = "https://claude.ai", CLAUDE_AI_STAGING_BASE_URL = "https://claude-ai.staging.ant.dev", CLAUDE_AI_LOCAL_BASE_URL = "http://localhost:4000";
|
|
274039
274039
|
|
|
274040
274040
|
// src/keybindings/defaultBindings.ts
|
|
274041
274041
|
var IMAGE_PASTE_KEY, SUPPORTS_TERMINAL_VT_MODE, MODE_CYCLE_KEY, DEFAULT_BINDINGS;
|
|
@@ -405977,27 +405977,17 @@ function Feedback({
|
|
|
405977
405977
|
rawTranscriptJsonl
|
|
405978
405978
|
}
|
|
405979
405979
|
};
|
|
405980
|
-
const
|
|
405981
|
-
setTitle(
|
|
405982
|
-
|
|
405983
|
-
|
|
405984
|
-
|
|
405985
|
-
|
|
405986
|
-
|
|
405987
|
-
last_assistant_message_id: lastAssistantMessageId
|
|
405988
|
-
});
|
|
405989
|
-
logEventTo1P("tengu_bug_report_description", {
|
|
405990
|
-
feedback_id: result.feedbackId,
|
|
405991
|
-
description: redactSensitiveInfo(description)
|
|
405992
|
-
});
|
|
405993
|
-
}
|
|
405980
|
+
const generatedTitle = await generateTitle(description, abortSignal).catch(() => createFallbackTitle(description));
|
|
405981
|
+
setTitle(generatedTitle);
|
|
405982
|
+
const fallbackId = `myclaude-${Date.now()}`;
|
|
405983
|
+
const url3 = createGitHubIssueUrl(fallbackId, generatedTitle, description, sanitizedErrors);
|
|
405984
|
+
try {
|
|
405985
|
+
await openBrowser(url3);
|
|
405986
|
+
setFeedbackId(fallbackId);
|
|
405994
405987
|
setStep("done");
|
|
405995
|
-
}
|
|
405996
|
-
|
|
405997
|
-
|
|
405998
|
-
} else {
|
|
405999
|
-
setError("Could not submit feedback. Please try again later.");
|
|
406000
|
-
}
|
|
405988
|
+
} catch {
|
|
405989
|
+
setError(`Could not open browser. Please manually create an issue at:
|
|
405990
|
+
${url3}`);
|
|
406001
405991
|
setStep("userInput");
|
|
406002
405992
|
}
|
|
406003
405993
|
}, [description, envInfo.isGit, messages]);
|
|
@@ -406351,101 +406341,19 @@ function createFallbackTitle(description) {
|
|
|
406351
406341
|
}
|
|
406352
406342
|
return truncated.length < 10 ? "Bug Report" : truncated;
|
|
406353
406343
|
}
|
|
406354
|
-
function sanitizeAndLogError(err2) {
|
|
406355
|
-
if (err2 instanceof Error) {
|
|
406356
|
-
const safeError = new Error(redactSensitiveInfo(err2.message));
|
|
406357
|
-
if (err2.stack) {
|
|
406358
|
-
safeError.stack = redactSensitiveInfo(err2.stack);
|
|
406359
|
-
}
|
|
406360
|
-
logError2(safeError);
|
|
406361
|
-
} else {
|
|
406362
|
-
const errorString = redactSensitiveInfo(String(err2));
|
|
406363
|
-
logError2(new Error(errorString));
|
|
406364
|
-
}
|
|
406365
|
-
}
|
|
406366
|
-
async function submitFeedback(data, signal) {
|
|
406367
|
-
if (isEssentialTrafficOnly()) {
|
|
406368
|
-
return {
|
|
406369
|
-
success: false
|
|
406370
|
-
};
|
|
406371
|
-
}
|
|
406372
|
-
try {
|
|
406373
|
-
await checkAndRefreshOAuthTokenIfNeeded();
|
|
406374
|
-
const authResult = getAuthHeaders();
|
|
406375
|
-
if (authResult.error) {
|
|
406376
|
-
return {
|
|
406377
|
-
success: false
|
|
406378
|
-
};
|
|
406379
|
-
}
|
|
406380
|
-
const headers = {
|
|
406381
|
-
"Content-Type": "application/json",
|
|
406382
|
-
"User-Agent": getUserAgent(),
|
|
406383
|
-
...authResult.headers
|
|
406384
|
-
};
|
|
406385
|
-
const response = await axios_default.post("https://api.anthropic.com/api/claude_cli_feedback", {
|
|
406386
|
-
content: jsonStringify(data)
|
|
406387
|
-
}, {
|
|
406388
|
-
headers,
|
|
406389
|
-
timeout: 30000,
|
|
406390
|
-
signal
|
|
406391
|
-
});
|
|
406392
|
-
if (response.status === 200) {
|
|
406393
|
-
const result = response.data;
|
|
406394
|
-
if (result?.feedback_id) {
|
|
406395
|
-
return {
|
|
406396
|
-
success: true,
|
|
406397
|
-
feedbackId: result.feedback_id
|
|
406398
|
-
};
|
|
406399
|
-
}
|
|
406400
|
-
sanitizeAndLogError(new Error("Failed to submit feedback: request did not return feedback_id"));
|
|
406401
|
-
return {
|
|
406402
|
-
success: false
|
|
406403
|
-
};
|
|
406404
|
-
}
|
|
406405
|
-
sanitizeAndLogError(new Error("Failed to submit feedback:" + response.status));
|
|
406406
|
-
return {
|
|
406407
|
-
success: false
|
|
406408
|
-
};
|
|
406409
|
-
} catch (err2) {
|
|
406410
|
-
if (axios_default.isCancel(err2)) {
|
|
406411
|
-
return {
|
|
406412
|
-
success: false
|
|
406413
|
-
};
|
|
406414
|
-
}
|
|
406415
|
-
if (axios_default.isAxiosError(err2) && err2.response?.status === 403) {
|
|
406416
|
-
const errorData = err2.response.data;
|
|
406417
|
-
if (errorData?.error?.type === "permission_error" && errorData?.error?.message?.includes("Custom data retention settings")) {
|
|
406418
|
-
sanitizeAndLogError(new Error("Cannot submit feedback because custom data retention settings are enabled"));
|
|
406419
|
-
return {
|
|
406420
|
-
success: false,
|
|
406421
|
-
isZdrOrg: true
|
|
406422
|
-
};
|
|
406423
|
-
}
|
|
406424
|
-
}
|
|
406425
|
-
sanitizeAndLogError(err2);
|
|
406426
|
-
return {
|
|
406427
|
-
success: false
|
|
406428
|
-
};
|
|
406429
|
-
}
|
|
406430
|
-
}
|
|
406431
406344
|
var import_react95, jsx_dev_runtime159, GITHUB_URL_LIMIT = 7250, GITHUB_ISSUES_REPO_URL = "https://github.com/thomaslwq/myclaude/issues";
|
|
406432
406345
|
var init_Feedback = __esm(() => {
|
|
406433
|
-
init_axios2();
|
|
406434
406346
|
init_state();
|
|
406435
|
-
init_firstPartyEventLogger();
|
|
406436
|
-
init_analytics();
|
|
406437
406347
|
init_messages3();
|
|
406438
406348
|
init_useTerminalSize();
|
|
406439
406349
|
init_ink2();
|
|
406440
406350
|
init_useKeybinding();
|
|
406441
406351
|
init_claude();
|
|
406442
406352
|
init_errors8();
|
|
406443
|
-
init_auth();
|
|
406444
406353
|
init_browser();
|
|
406445
406354
|
init_debug();
|
|
406446
406355
|
init_env();
|
|
406447
406356
|
init_git();
|
|
406448
|
-
init_http2();
|
|
406449
406357
|
init_log3();
|
|
406450
406358
|
init_sessionStorage();
|
|
406451
406359
|
init_slowOperations();
|
|
@@ -421065,7 +420973,7 @@ function General() {
|
|
|
421065
420973
|
if ($3[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
421066
420974
|
t0 = /* @__PURE__ */ jsx_dev_runtime200.jsxDEV(ThemedBox_default, {
|
|
421067
420975
|
children: /* @__PURE__ */ jsx_dev_runtime200.jsxDEV(ThemedText, {
|
|
421068
|
-
children: "
|
|
420976
|
+
children: "myclaude understands your codebase, makes edits with your permission, and executes commands — right from your terminal."
|
|
421069
420977
|
}, undefined, false, undefined, this)
|
|
421070
420978
|
}, undefined, false, undefined, this);
|
|
421071
420979
|
$3[0] = t0;
|
|
@@ -421243,7 +421151,7 @@ function HelpV2(t0) {
|
|
|
421243
421151
|
let t6;
|
|
421244
421152
|
if ($3[31] !== tabs) {
|
|
421245
421153
|
t6 = /* @__PURE__ */ jsx_dev_runtime201.jsxDEV(Tabs, {
|
|
421246
|
-
title: `
|
|
421154
|
+
title: `myclaude v${MACRO.VERSION}`,
|
|
421247
421155
|
color: "professionalBlue",
|
|
421248
421156
|
defaultTab: "general",
|
|
421249
421157
|
children: tabs
|
|
@@ -421262,7 +421170,7 @@ function HelpV2(t0) {
|
|
|
421262
421170
|
"For more help:",
|
|
421263
421171
|
" ",
|
|
421264
421172
|
/* @__PURE__ */ jsx_dev_runtime201.jsxDEV(Link, {
|
|
421265
|
-
url: "https://
|
|
421173
|
+
url: "https://github.com/thomaslwq/myclaude"
|
|
421266
421174
|
}, undefined, false, undefined, this)
|
|
421267
421175
|
]
|
|
421268
421176
|
}, undefined, true, undefined, this)
|
|
@@ -468794,7 +468702,7 @@ async function call49(onDone, context2, args) {
|
|
|
468794
468702
|
};
|
|
468795
468703
|
const titleInfo = title ? ` "${title}"` : "";
|
|
468796
468704
|
const resumeHint = `
|
|
468797
|
-
To resume the original:
|
|
468705
|
+
To resume the original: myclaude -r ${originalSessionId}`;
|
|
468798
468706
|
const successMessage = `Branched conversation${titleInfo}. You are now in the branch.${resumeHint}`;
|
|
468799
468707
|
if (context2.resume) {
|
|
468800
468708
|
await context2.resume(sessionId, forkLog, "fork");
|
|
@@ -484864,10 +484772,10 @@ import {
|
|
|
484864
484772
|
import { tmpdir as tmpdir12 } from "os";
|
|
484865
484773
|
import { extname as extname14, join as join135 } from "path";
|
|
484866
484774
|
function getAnalysisModel() {
|
|
484867
|
-
return
|
|
484775
|
+
return getDefaultSonnetModel();
|
|
484868
484776
|
}
|
|
484869
484777
|
function getInsightsModel() {
|
|
484870
|
-
return
|
|
484778
|
+
return getDefaultSonnetModel();
|
|
484871
484779
|
}
|
|
484872
484780
|
function getDataDir() {
|
|
484873
484781
|
return join135(getClaudeConfigHomeDir(), "usage-data");
|
|
@@ -487323,7 +487231,6 @@ var init_commands2 = __esm(() => {
|
|
|
487323
487231
|
backfill_sessions_default,
|
|
487324
487232
|
break_cache_default,
|
|
487325
487233
|
bughunter_default,
|
|
487326
|
-
commit_default,
|
|
487327
487234
|
commit_push_pr_default,
|
|
487328
487235
|
ctx_viz_default,
|
|
487329
487236
|
good_claude_default,
|
|
@@ -487359,6 +487266,7 @@ var init_commands2 = __esm(() => {
|
|
|
487359
487266
|
chrome_default,
|
|
487360
487267
|
clear_default,
|
|
487361
487268
|
color_default,
|
|
487269
|
+
commit_default,
|
|
487362
487270
|
compact_default,
|
|
487363
487271
|
config_default,
|
|
487364
487272
|
copy_default,
|
|
@@ -550779,7 +550687,7 @@ function WelcomeV2() {
|
|
|
550779
550687
|
if ($3[0] !== theme2) {
|
|
550780
550688
|
t02 = /* @__PURE__ */ jsx_dev_runtime473.jsxDEV(AppleTerminalWelcomeV2, {
|
|
550781
550689
|
theme: theme2,
|
|
550782
|
-
welcomeMessage: "Welcome to
|
|
550690
|
+
welcomeMessage: "Welcome to myclaude"
|
|
550783
550691
|
}, undefined, false, undefined, this);
|
|
550784
550692
|
$3[0] = theme2;
|
|
550785
550693
|
$3[1] = t02;
|
|
@@ -550804,7 +550712,7 @@ function WelcomeV2() {
|
|
|
550804
550712
|
/* @__PURE__ */ jsx_dev_runtime473.jsxDEV(ThemedText, {
|
|
550805
550713
|
color: "claude",
|
|
550806
550714
|
children: [
|
|
550807
|
-
"Welcome to
|
|
550715
|
+
"Welcome to myclaude",
|
|
550808
550716
|
" "
|
|
550809
550717
|
]
|
|
550810
550718
|
}, undefined, true, undefined, this),
|
|
@@ -551004,7 +550912,7 @@ function WelcomeV2() {
|
|
|
551004
550912
|
/* @__PURE__ */ jsx_dev_runtime473.jsxDEV(ThemedText, {
|
|
551005
550913
|
color: "claude",
|
|
551006
550914
|
children: [
|
|
551007
|
-
"Welcome to
|
|
550915
|
+
"Welcome to myclaude",
|
|
551008
550916
|
" "
|
|
551009
550917
|
]
|
|
551010
550918
|
}, undefined, true, undefined, this),
|
package/dist/myclaude.mjs
CHANGED
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
// MACRO - build-time constants (injected by build.ts)
|
|
5
5
|
// MACRO injected by build script
|
|
6
6
|
globalThis.MACRO = {
|
|
7
|
-
VERSION: "0.1.
|
|
8
|
-
BUILD_TIME: "2026-06-
|
|
7
|
+
VERSION: "0.1.26",
|
|
8
|
+
BUILD_TIME: "2026-06-22T13:17:09.269Z",
|
|
9
9
|
PACKAGE_URL: "@funnycode/myclaude",
|
|
10
10
|
NATIVE_PACKAGE_URL: "@funnycode/myclaude",
|
|
11
11
|
VERSION_CHANGELOG: '',
|
|
12
|
-
ISSUES_EXPLAINER: 'file an issue at ' + "https://
|
|
12
|
+
ISSUES_EXPLAINER: 'file an issue at ' + "https://github.com/thomaslwq/myclaude/issues",
|
|
13
13
|
FEEDBACK_CHANNEL: 'github',
|
|
14
14
|
};
|
|
15
15
|
|
|
@@ -274035,7 +274035,7 @@ function getRemoteSessionUrl(sessionId, ingressUrl) {
|
|
|
274035
274035
|
const baseUrl = getClaudeAiBaseUrl(compatId, ingressUrl);
|
|
274036
274036
|
return `${baseUrl}/code/${compatId}`;
|
|
274037
274037
|
}
|
|
274038
|
-
var PRODUCT_URL = "https://
|
|
274038
|
+
var PRODUCT_URL = "https://github.com/thomaslwq/myclaude", CLAUDE_AI_BASE_URL = "https://claude.ai", CLAUDE_AI_STAGING_BASE_URL = "https://claude-ai.staging.ant.dev", CLAUDE_AI_LOCAL_BASE_URL = "http://localhost:4000";
|
|
274039
274039
|
|
|
274040
274040
|
// src/keybindings/defaultBindings.ts
|
|
274041
274041
|
var IMAGE_PASTE_KEY, SUPPORTS_TERMINAL_VT_MODE, MODE_CYCLE_KEY, DEFAULT_BINDINGS;
|
|
@@ -405977,27 +405977,17 @@ function Feedback({
|
|
|
405977
405977
|
rawTranscriptJsonl
|
|
405978
405978
|
}
|
|
405979
405979
|
};
|
|
405980
|
-
const
|
|
405981
|
-
setTitle(
|
|
405982
|
-
|
|
405983
|
-
|
|
405984
|
-
|
|
405985
|
-
|
|
405986
|
-
|
|
405987
|
-
last_assistant_message_id: lastAssistantMessageId
|
|
405988
|
-
});
|
|
405989
|
-
logEventTo1P("tengu_bug_report_description", {
|
|
405990
|
-
feedback_id: result.feedbackId,
|
|
405991
|
-
description: redactSensitiveInfo(description)
|
|
405992
|
-
});
|
|
405993
|
-
}
|
|
405980
|
+
const generatedTitle = await generateTitle(description, abortSignal).catch(() => createFallbackTitle(description));
|
|
405981
|
+
setTitle(generatedTitle);
|
|
405982
|
+
const fallbackId = `myclaude-${Date.now()}`;
|
|
405983
|
+
const url3 = createGitHubIssueUrl(fallbackId, generatedTitle, description, sanitizedErrors);
|
|
405984
|
+
try {
|
|
405985
|
+
await openBrowser(url3);
|
|
405986
|
+
setFeedbackId(fallbackId);
|
|
405994
405987
|
setStep("done");
|
|
405995
|
-
}
|
|
405996
|
-
|
|
405997
|
-
|
|
405998
|
-
} else {
|
|
405999
|
-
setError("Could not submit feedback. Please try again later.");
|
|
406000
|
-
}
|
|
405988
|
+
} catch {
|
|
405989
|
+
setError(`Could not open browser. Please manually create an issue at:
|
|
405990
|
+
${url3}`);
|
|
406001
405991
|
setStep("userInput");
|
|
406002
405992
|
}
|
|
406003
405993
|
}, [description, envInfo.isGit, messages]);
|
|
@@ -406351,101 +406341,19 @@ function createFallbackTitle(description) {
|
|
|
406351
406341
|
}
|
|
406352
406342
|
return truncated.length < 10 ? "Bug Report" : truncated;
|
|
406353
406343
|
}
|
|
406354
|
-
function sanitizeAndLogError(err2) {
|
|
406355
|
-
if (err2 instanceof Error) {
|
|
406356
|
-
const safeError = new Error(redactSensitiveInfo(err2.message));
|
|
406357
|
-
if (err2.stack) {
|
|
406358
|
-
safeError.stack = redactSensitiveInfo(err2.stack);
|
|
406359
|
-
}
|
|
406360
|
-
logError2(safeError);
|
|
406361
|
-
} else {
|
|
406362
|
-
const errorString = redactSensitiveInfo(String(err2));
|
|
406363
|
-
logError2(new Error(errorString));
|
|
406364
|
-
}
|
|
406365
|
-
}
|
|
406366
|
-
async function submitFeedback(data, signal) {
|
|
406367
|
-
if (isEssentialTrafficOnly()) {
|
|
406368
|
-
return {
|
|
406369
|
-
success: false
|
|
406370
|
-
};
|
|
406371
|
-
}
|
|
406372
|
-
try {
|
|
406373
|
-
await checkAndRefreshOAuthTokenIfNeeded();
|
|
406374
|
-
const authResult = getAuthHeaders();
|
|
406375
|
-
if (authResult.error) {
|
|
406376
|
-
return {
|
|
406377
|
-
success: false
|
|
406378
|
-
};
|
|
406379
|
-
}
|
|
406380
|
-
const headers = {
|
|
406381
|
-
"Content-Type": "application/json",
|
|
406382
|
-
"User-Agent": getUserAgent(),
|
|
406383
|
-
...authResult.headers
|
|
406384
|
-
};
|
|
406385
|
-
const response = await axios_default.post("https://api.anthropic.com/api/claude_cli_feedback", {
|
|
406386
|
-
content: jsonStringify(data)
|
|
406387
|
-
}, {
|
|
406388
|
-
headers,
|
|
406389
|
-
timeout: 30000,
|
|
406390
|
-
signal
|
|
406391
|
-
});
|
|
406392
|
-
if (response.status === 200) {
|
|
406393
|
-
const result = response.data;
|
|
406394
|
-
if (result?.feedback_id) {
|
|
406395
|
-
return {
|
|
406396
|
-
success: true,
|
|
406397
|
-
feedbackId: result.feedback_id
|
|
406398
|
-
};
|
|
406399
|
-
}
|
|
406400
|
-
sanitizeAndLogError(new Error("Failed to submit feedback: request did not return feedback_id"));
|
|
406401
|
-
return {
|
|
406402
|
-
success: false
|
|
406403
|
-
};
|
|
406404
|
-
}
|
|
406405
|
-
sanitizeAndLogError(new Error("Failed to submit feedback:" + response.status));
|
|
406406
|
-
return {
|
|
406407
|
-
success: false
|
|
406408
|
-
};
|
|
406409
|
-
} catch (err2) {
|
|
406410
|
-
if (axios_default.isCancel(err2)) {
|
|
406411
|
-
return {
|
|
406412
|
-
success: false
|
|
406413
|
-
};
|
|
406414
|
-
}
|
|
406415
|
-
if (axios_default.isAxiosError(err2) && err2.response?.status === 403) {
|
|
406416
|
-
const errorData = err2.response.data;
|
|
406417
|
-
if (errorData?.error?.type === "permission_error" && errorData?.error?.message?.includes("Custom data retention settings")) {
|
|
406418
|
-
sanitizeAndLogError(new Error("Cannot submit feedback because custom data retention settings are enabled"));
|
|
406419
|
-
return {
|
|
406420
|
-
success: false,
|
|
406421
|
-
isZdrOrg: true
|
|
406422
|
-
};
|
|
406423
|
-
}
|
|
406424
|
-
}
|
|
406425
|
-
sanitizeAndLogError(err2);
|
|
406426
|
-
return {
|
|
406427
|
-
success: false
|
|
406428
|
-
};
|
|
406429
|
-
}
|
|
406430
|
-
}
|
|
406431
406344
|
var import_react95, jsx_dev_runtime159, GITHUB_URL_LIMIT = 7250, GITHUB_ISSUES_REPO_URL = "https://github.com/thomaslwq/myclaude/issues";
|
|
406432
406345
|
var init_Feedback = __esm(() => {
|
|
406433
|
-
init_axios2();
|
|
406434
406346
|
init_state();
|
|
406435
|
-
init_firstPartyEventLogger();
|
|
406436
|
-
init_analytics();
|
|
406437
406347
|
init_messages3();
|
|
406438
406348
|
init_useTerminalSize();
|
|
406439
406349
|
init_ink2();
|
|
406440
406350
|
init_useKeybinding();
|
|
406441
406351
|
init_claude();
|
|
406442
406352
|
init_errors8();
|
|
406443
|
-
init_auth();
|
|
406444
406353
|
init_browser();
|
|
406445
406354
|
init_debug();
|
|
406446
406355
|
init_env();
|
|
406447
406356
|
init_git();
|
|
406448
|
-
init_http2();
|
|
406449
406357
|
init_log3();
|
|
406450
406358
|
init_sessionStorage();
|
|
406451
406359
|
init_slowOperations();
|
|
@@ -421065,7 +420973,7 @@ function General() {
|
|
|
421065
420973
|
if ($3[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
421066
420974
|
t0 = /* @__PURE__ */ jsx_dev_runtime200.jsxDEV(ThemedBox_default, {
|
|
421067
420975
|
children: /* @__PURE__ */ jsx_dev_runtime200.jsxDEV(ThemedText, {
|
|
421068
|
-
children: "
|
|
420976
|
+
children: "myclaude understands your codebase, makes edits with your permission, and executes commands — right from your terminal."
|
|
421069
420977
|
}, undefined, false, undefined, this)
|
|
421070
420978
|
}, undefined, false, undefined, this);
|
|
421071
420979
|
$3[0] = t0;
|
|
@@ -421243,7 +421151,7 @@ function HelpV2(t0) {
|
|
|
421243
421151
|
let t6;
|
|
421244
421152
|
if ($3[31] !== tabs) {
|
|
421245
421153
|
t6 = /* @__PURE__ */ jsx_dev_runtime201.jsxDEV(Tabs, {
|
|
421246
|
-
title: `
|
|
421154
|
+
title: `myclaude v${MACRO.VERSION}`,
|
|
421247
421155
|
color: "professionalBlue",
|
|
421248
421156
|
defaultTab: "general",
|
|
421249
421157
|
children: tabs
|
|
@@ -421262,7 +421170,7 @@ function HelpV2(t0) {
|
|
|
421262
421170
|
"For more help:",
|
|
421263
421171
|
" ",
|
|
421264
421172
|
/* @__PURE__ */ jsx_dev_runtime201.jsxDEV(Link, {
|
|
421265
|
-
url: "https://
|
|
421173
|
+
url: "https://github.com/thomaslwq/myclaude"
|
|
421266
421174
|
}, undefined, false, undefined, this)
|
|
421267
421175
|
]
|
|
421268
421176
|
}, undefined, true, undefined, this)
|
|
@@ -468794,7 +468702,7 @@ async function call49(onDone, context2, args) {
|
|
|
468794
468702
|
};
|
|
468795
468703
|
const titleInfo = title ? ` "${title}"` : "";
|
|
468796
468704
|
const resumeHint = `
|
|
468797
|
-
To resume the original:
|
|
468705
|
+
To resume the original: myclaude -r ${originalSessionId}`;
|
|
468798
468706
|
const successMessage = `Branched conversation${titleInfo}. You are now in the branch.${resumeHint}`;
|
|
468799
468707
|
if (context2.resume) {
|
|
468800
468708
|
await context2.resume(sessionId, forkLog, "fork");
|
|
@@ -484864,10 +484772,10 @@ import {
|
|
|
484864
484772
|
import { tmpdir as tmpdir12 } from "os";
|
|
484865
484773
|
import { extname as extname14, join as join135 } from "path";
|
|
484866
484774
|
function getAnalysisModel() {
|
|
484867
|
-
return
|
|
484775
|
+
return getDefaultSonnetModel();
|
|
484868
484776
|
}
|
|
484869
484777
|
function getInsightsModel() {
|
|
484870
|
-
return
|
|
484778
|
+
return getDefaultSonnetModel();
|
|
484871
484779
|
}
|
|
484872
484780
|
function getDataDir() {
|
|
484873
484781
|
return join135(getClaudeConfigHomeDir(), "usage-data");
|
|
@@ -487323,7 +487231,6 @@ var init_commands2 = __esm(() => {
|
|
|
487323
487231
|
backfill_sessions_default,
|
|
487324
487232
|
break_cache_default,
|
|
487325
487233
|
bughunter_default,
|
|
487326
|
-
commit_default,
|
|
487327
487234
|
commit_push_pr_default,
|
|
487328
487235
|
ctx_viz_default,
|
|
487329
487236
|
good_claude_default,
|
|
@@ -487359,6 +487266,7 @@ var init_commands2 = __esm(() => {
|
|
|
487359
487266
|
chrome_default,
|
|
487360
487267
|
clear_default,
|
|
487361
487268
|
color_default,
|
|
487269
|
+
commit_default,
|
|
487362
487270
|
compact_default,
|
|
487363
487271
|
config_default,
|
|
487364
487272
|
copy_default,
|
|
@@ -550779,7 +550687,7 @@ function WelcomeV2() {
|
|
|
550779
550687
|
if ($3[0] !== theme2) {
|
|
550780
550688
|
t02 = /* @__PURE__ */ jsx_dev_runtime473.jsxDEV(AppleTerminalWelcomeV2, {
|
|
550781
550689
|
theme: theme2,
|
|
550782
|
-
welcomeMessage: "Welcome to
|
|
550690
|
+
welcomeMessage: "Welcome to myclaude"
|
|
550783
550691
|
}, undefined, false, undefined, this);
|
|
550784
550692
|
$3[0] = theme2;
|
|
550785
550693
|
$3[1] = t02;
|
|
@@ -550804,7 +550712,7 @@ function WelcomeV2() {
|
|
|
550804
550712
|
/* @__PURE__ */ jsx_dev_runtime473.jsxDEV(ThemedText, {
|
|
550805
550713
|
color: "claude",
|
|
550806
550714
|
children: [
|
|
550807
|
-
"Welcome to
|
|
550715
|
+
"Welcome to myclaude",
|
|
550808
550716
|
" "
|
|
550809
550717
|
]
|
|
550810
550718
|
}, undefined, true, undefined, this),
|
|
@@ -551004,7 +550912,7 @@ function WelcomeV2() {
|
|
|
551004
550912
|
/* @__PURE__ */ jsx_dev_runtime473.jsxDEV(ThemedText, {
|
|
551005
550913
|
color: "claude",
|
|
551006
550914
|
children: [
|
|
551007
|
-
"Welcome to
|
|
550915
|
+
"Welcome to myclaude",
|
|
551008
550916
|
" "
|
|
551009
550917
|
]
|
|
551010
550918
|
}, undefined, true, undefined, this),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@funnycode/myclaude",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.26",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "An open-source AI coding assistant in your terminal - powered by Claude",
|
|
6
6
|
"license": "MIT",
|
|
@@ -8,12 +8,12 @@
|
|
|
8
8
|
"packageManager": "bun@1.3.5",
|
|
9
9
|
"repository": {
|
|
10
10
|
"type": "git",
|
|
11
|
-
"url": "https://
|
|
11
|
+
"url": "https://github.com/thomaslwq/myclaude.git"
|
|
12
12
|
},
|
|
13
13
|
"bugs": {
|
|
14
|
-
"url": "https://
|
|
14
|
+
"url": "https://github.com/thomaslwq/myclaude/issues"
|
|
15
15
|
},
|
|
16
|
-
"homepage": "https://
|
|
16
|
+
"homepage": "https://github.com/thomaslwq/myclaude",
|
|
17
17
|
"engines": {
|
|
18
18
|
"bun": ">=1.3.5",
|
|
19
19
|
"node": ">=18.0.0"
|