clawt 3.8.8 → 3.8.10
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 +1 -1
- package/README.zh-CN.md +1 -1
- package/dist/index.js +5 -4
- package/dist/postinstall.js +2 -2
- package/docs/config-file.md +2 -2
- package/docs/merge.md +1 -1
- package/package.json +1 -1
- package/src/constants/config.ts +5 -2
- package/src/constants/index.ts +1 -1
- package/src/types/config.ts +1 -1
- package/src/utils/conflict-resolver.ts +1 -1
- package/src/utils/shell.ts +4 -3
package/README.md
CHANGED
|
@@ -343,7 +343,7 @@ Configuration file is located at `~/.clawt/config.json`, auto-generated after in
|
|
|
343
343
|
| `aliases` | `{}` | Command alias mapping (e.g., `{"l": "list", "r": "run"}`) |
|
|
344
344
|
| `autoUpdate` | `true` | Auto-check for new versions (checks npm registry every 24 hours) |
|
|
345
345
|
| `conflictResolveMode` | `"ask"` | Merge conflict resolution mode: `ask` (prompt for AI), `auto` (auto AI resolve), `manual` (manual resolve) |
|
|
346
|
-
| `conflictResolveTimeoutMs` | `
|
|
346
|
+
| `conflictResolveTimeoutMs` | `900000` | Claude Code conflict resolution timeout (ms), default 15 minutes |
|
|
347
347
|
|
|
348
348
|
## postCreate Hook
|
|
349
349
|
|
package/README.zh-CN.md
CHANGED
|
@@ -343,7 +343,7 @@ clawt alias remove l
|
|
|
343
343
|
| `aliases` | `{}` | 命令别名映射(如 `{"l": "list", "r": "run"}`) |
|
|
344
344
|
| `autoUpdate` | `true` | 自动检查新版本(每 24 小时检查一次 npm registry) |
|
|
345
345
|
| `conflictResolveMode` | `"ask"` | merge 冲突时的解决模式:`ask`(询问是否使用 AI)、`auto`(自动 AI 解决)、`manual`(手动解决) |
|
|
346
|
-
| `conflictResolveTimeoutMs` | `
|
|
346
|
+
| `conflictResolveTimeoutMs` | `900000` | Claude Code 冲突解决超时时间(毫秒),默认 15 分钟 |
|
|
347
347
|
|
|
348
348
|
## postCreate Hook
|
|
349
349
|
|
package/dist/index.js
CHANGED
|
@@ -708,6 +708,7 @@ var ITERM2_APP_PATH = "/Applications/iTerm.app";
|
|
|
708
708
|
|
|
709
709
|
// src/constants/config.ts
|
|
710
710
|
var APPEND_SYSTEM_PROMPT = "Currently, you are in the git worktree directory.";
|
|
711
|
+
var CLAUDE_CODE_ENTRYPOINT_VALUE = "cli";
|
|
711
712
|
var CONFIG_DEFINITIONS = {
|
|
712
713
|
autoDeleteBranch: {
|
|
713
714
|
defaultValue: false,
|
|
@@ -752,8 +753,8 @@ var CONFIG_DEFINITIONS = {
|
|
|
752
753
|
allowedValues: ["ask", "auto", "manual"]
|
|
753
754
|
},
|
|
754
755
|
conflictResolveTimeoutMs: {
|
|
755
|
-
defaultValue:
|
|
756
|
-
description: "Claude Code \u51B2\u7A81\u89E3\u51B3\u8D85\u65F6\u65F6\u95F4\uFF08\u6BEB\u79D2\uFF09\uFF0C\u9ED8\u8BA4
|
|
756
|
+
defaultValue: 9e5,
|
|
757
|
+
description: "Claude Code \u51B2\u7A81\u89E3\u51B3\u8D85\u65F6\u65F6\u95F4\uFF08\u6BEB\u79D2\uFF09\uFF0C\u9ED8\u8BA4 900000\uFF0815 \u5206\u949F\uFF09"
|
|
757
758
|
}
|
|
758
759
|
};
|
|
759
760
|
function deriveDefaultConfig(definitions) {
|
|
@@ -1048,7 +1049,7 @@ function throwIfGitIndexLockError(error, cwd) {
|
|
|
1048
1049
|
// src/utils/shell.ts
|
|
1049
1050
|
function getEnvWithoutNestedSessionFlag() {
|
|
1050
1051
|
const { CLAUDECODE: _, ...env } = process.env;
|
|
1051
|
-
return env;
|
|
1052
|
+
return { ...env, CLAUDE_CODE_ENTRYPOINT: CLAUDE_CODE_ENTRYPOINT_VALUE };
|
|
1052
1053
|
}
|
|
1053
1054
|
function execCommand(command, options) {
|
|
1054
1055
|
logger.debug(`\u6267\u884C\u547D\u4EE4: ${command}${options?.cwd ? ` (cwd: ${options.cwd})` : ""}`);
|
|
@@ -4317,7 +4318,7 @@ var InteractivePanel = class {
|
|
|
4317
4318
|
|
|
4318
4319
|
// src/utils/conflict-resolver.ts
|
|
4319
4320
|
import { execFileSync as execFileSync4 } from "child_process";
|
|
4320
|
-
var DEFAULT_CONFLICT_RESOLVE_TIMEOUT_MS =
|
|
4321
|
+
var DEFAULT_CONFLICT_RESOLVE_TIMEOUT_MS = 9e5;
|
|
4321
4322
|
function buildConflictResolvePrompt() {
|
|
4322
4323
|
return CONFLICT_RESOLVE_PROMPT;
|
|
4323
4324
|
}
|
package/dist/postinstall.js
CHANGED
|
@@ -688,8 +688,8 @@ var CONFIG_DEFINITIONS = {
|
|
|
688
688
|
allowedValues: ["ask", "auto", "manual"]
|
|
689
689
|
},
|
|
690
690
|
conflictResolveTimeoutMs: {
|
|
691
|
-
defaultValue:
|
|
692
|
-
description: "Claude Code \u51B2\u7A81\u89E3\u51B3\u8D85\u65F6\u65F6\u95F4\uFF08\u6BEB\u79D2\uFF09\uFF0C\u9ED8\u8BA4
|
|
691
|
+
defaultValue: 9e5,
|
|
692
|
+
description: "Claude Code \u51B2\u7A81\u89E3\u51B3\u8D85\u65F6\u65F6\u95F4\uFF08\u6BEB\u79D2\uFF09\uFF0C\u9ED8\u8BA4 900000\uFF0815 \u5206\u949F\uFF09"
|
|
693
693
|
}
|
|
694
694
|
};
|
|
695
695
|
function deriveDefaultConfig(definitions) {
|
package/docs/config-file.md
CHANGED
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"aliases": {},
|
|
27
27
|
"autoUpdate": true,
|
|
28
28
|
"conflictResolveMode": "ask",
|
|
29
|
-
"conflictResolveTimeoutMs":
|
|
29
|
+
"conflictResolveTimeoutMs": 900000
|
|
30
30
|
}
|
|
31
31
|
```
|
|
32
32
|
|
|
@@ -44,6 +44,6 @@
|
|
|
44
44
|
| `aliases` | `Record<string, string>` | `{}` | 命令别名映射,键为别名,值为目标内置命令名 |
|
|
45
45
|
| `autoUpdate` | `boolean` | `true` | 是否启用自动更新检查(每 24 小时通过 npm registry 检查一次新版本) |
|
|
46
46
|
| `conflictResolveMode` | `string` | `"ask"` | merge 冲突时的解决模式:`ask`(询问是否使用 AI)、`auto`(自动 AI 解决)、`manual`(手动解决) |
|
|
47
|
-
| `conflictResolveTimeoutMs` | `number` | `
|
|
47
|
+
| `conflictResolveTimeoutMs` | `number` | `900000` | Claude Code 冲突解决超时时间(毫秒),默认 900000(15 分钟) |
|
|
48
48
|
|
|
49
49
|
---
|
package/docs/merge.md
CHANGED
|
@@ -104,7 +104,7 @@ clawt merge [-m <commitMessage>]
|
|
|
104
104
|
| `auto` | — | 直接调用 AI 解决,不询问 |
|
|
105
105
|
| `manual` | — | 输出冲突提示信息,用户手动解决 |
|
|
106
106
|
|
|
107
|
-
AI 解决冲突时,调用 Claude Code CLI 在主 worktree 中分析并解决冲突文件,超时时间由配置项 `conflictResolveTimeoutMs` 控制(默认
|
|
107
|
+
AI 解决冲突时,调用 Claude Code CLI 在主 worktree 中分析并解决冲突文件,超时时间由配置项 `conflictResolveTimeoutMs` 控制(默认 15 分钟)。AI 解决成功后自动执行 `git add . && git merge --continue` 完成合并。
|
|
108
108
|
10. **推送(受 `autoPullPush` 配置控制)**
|
|
109
109
|
- `autoPullPush` 为 `false` → 输出提示 `已跳过自动 pull/push,请手动执行 git pull && git push`
|
|
110
110
|
- `autoPullPush` 为 `true` → 执行 `git pull` + `git push`:
|
package/package.json
CHANGED
package/src/constants/config.ts
CHANGED
|
@@ -5,6 +5,9 @@ import { VALID_TERMINAL_APPS } from './terminal.js';
|
|
|
5
5
|
export const APPEND_SYSTEM_PROMPT =
|
|
6
6
|
'Currently, you are in the git worktree directory.';
|
|
7
7
|
|
|
8
|
+
/** 通过 clawt 启动的 Claude Code 非交互式会话(claude -p)的 entrypoint 标识 */
|
|
9
|
+
export const CLAUDE_CODE_ENTRYPOINT_VALUE = 'cli';
|
|
10
|
+
|
|
8
11
|
/**
|
|
9
12
|
* 配置项完整定义(单一数据源)
|
|
10
13
|
* 新增配置项时只需在此处维护,DEFAULT_CONFIG 和 CONFIG_DESCRIPTIONS 会自动同步
|
|
@@ -53,8 +56,8 @@ export const CONFIG_DEFINITIONS: ConfigDefinitions = {
|
|
|
53
56
|
allowedValues: ['ask', 'auto', 'manual'] as const,
|
|
54
57
|
},
|
|
55
58
|
conflictResolveTimeoutMs: {
|
|
56
|
-
defaultValue:
|
|
57
|
-
description: 'Claude Code 冲突解决超时时间(毫秒),默认
|
|
59
|
+
defaultValue: 900000,
|
|
60
|
+
description: 'Claude Code 冲突解决超时时间(毫秒),默认 900000(15 分钟)',
|
|
58
61
|
},
|
|
59
62
|
};
|
|
60
63
|
|
package/src/constants/index.ts
CHANGED
|
@@ -5,7 +5,7 @@ export { CONFIG_ALIAS_DISABLED_HINT } from './messages/index.js';
|
|
|
5
5
|
export { UPDATE_MESSAGES, UPDATE_COMMANDS } from './messages/update.js';
|
|
6
6
|
export { EXIT_CODES } from './exitCodes.js';
|
|
7
7
|
export { ENABLE_BRACKETED_PASTE, DISABLE_BRACKETED_PASTE, PASTE_THRESHOLD_MS, VALID_TERMINAL_APPS, ITERM2_APP_PATH } from './terminal.js';
|
|
8
|
-
export { DEFAULT_CONFIG, CONFIG_DESCRIPTIONS, CONFIG_DEFINITIONS, APPEND_SYSTEM_PROMPT } from './config.js';
|
|
8
|
+
export { DEFAULT_CONFIG, CONFIG_DESCRIPTIONS, CONFIG_DEFINITIONS, APPEND_SYSTEM_PROMPT, CLAUDE_CODE_ENTRYPOINT_VALUE } from './config.js';
|
|
9
9
|
export { PROJECT_CONFIG_DEFINITIONS, PROJECT_DEFAULT_CONFIG, PROJECT_CONFIG_DESCRIPTIONS } from './project-config.js';
|
|
10
10
|
export { AUTO_SAVE_COMMIT_MESSAGE_PREFIX } from './git.js';
|
|
11
11
|
export { DEBUG_LOG_PREFIX, DEBUG_TIMESTAMP_FORMAT } from './logger.js';
|
package/src/types/config.ts
CHANGED
|
@@ -20,7 +20,7 @@ export interface ClawtConfig {
|
|
|
20
20
|
autoUpdate: boolean;
|
|
21
21
|
/** merge 冲突时的解决模式:ask(询问)、auto(自动 AI 解决)、manual(手动解决) */
|
|
22
22
|
conflictResolveMode: 'ask' | 'auto' | 'manual';
|
|
23
|
-
/** Claude Code 冲突解决超时时间(毫秒),默认
|
|
23
|
+
/** Claude Code 冲突解决超时时间(毫秒),默认 900000(15 分钟) */
|
|
24
24
|
conflictResolveTimeoutMs: number;
|
|
25
25
|
}
|
|
26
26
|
|
|
@@ -10,7 +10,7 @@ import { CONFLICT_RESOLVE_PROMPT } from '../constants/ai-prompts.js';
|
|
|
10
10
|
import { getEnvWithoutNestedSessionFlag } from './shell.js';
|
|
11
11
|
|
|
12
12
|
/** 默认 Claude Code 冲突解决超时时间(毫秒) */
|
|
13
|
-
const DEFAULT_CONFLICT_RESOLVE_TIMEOUT_MS =
|
|
13
|
+
const DEFAULT_CONFLICT_RESOLVE_TIMEOUT_MS = 900000;
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* 构建发送给 Claude Code 的冲突解决 prompt
|
package/src/utils/shell.ts
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { execSync, execFileSync, spawn, spawnSync, type ChildProcess, type SpawnSyncReturns, type StdioOptions } from 'node:child_process';
|
|
2
2
|
import { logger } from '../logger/index.js';
|
|
3
3
|
import { EXEC_MAX_BUFFER } from '../constants/git.js';
|
|
4
|
+
import { CLAUDE_CODE_ENTRYPOINT_VALUE } from '../constants/index.js';
|
|
4
5
|
import { throwIfGitIndexLockError } from './git-lock.js';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
|
-
* 获取移除了 CLAUDECODE
|
|
8
|
+
* 获取移除了 CLAUDECODE 嵌套会话标记的环境变量副本,并注入 CLAUDE_CODE_ENTRYPOINT 标识
|
|
8
9
|
* 仅用于 claude -p 等非交互式子进程,避免被 Claude Code 误判为嵌套会话而拒绝启动
|
|
9
10
|
* 不适用于交互式启动 Claude Code(如 clawt resume),交互式场景应保留原始环境变量
|
|
10
|
-
* @returns {NodeJS.ProcessEnv} 移除 CLAUDECODE 后的环境变量
|
|
11
|
+
* @returns {NodeJS.ProcessEnv} 移除 CLAUDECODE 并注入 CLAUDE_CODE_ENTRYPOINT 后的环境变量
|
|
11
12
|
*/
|
|
12
13
|
export function getEnvWithoutNestedSessionFlag(): NodeJS.ProcessEnv {
|
|
13
14
|
const { CLAUDECODE: _, ...env } = process.env;
|
|
14
|
-
return env;
|
|
15
|
+
return { ...env, CLAUDE_CODE_ENTRYPOINT: CLAUDE_CODE_ENTRYPOINT_VALUE };
|
|
15
16
|
}
|
|
16
17
|
|
|
17
18
|
/** 并行命令执行的单个结果 */
|