@ai-support-agent/cli 0.1.19 → 0.1.21
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/terminal/sandbox-init-script.d.ts.map +1 -1
- package/dist/terminal/sandbox-init-script.js +46 -1
- package/dist/terminal/sandbox-init-script.js.map +1 -1
- package/dist/utils/claude-json-oauth-sync.d.ts +13 -4
- package/dist/utils/claude-json-oauth-sync.d.ts.map +1 -1
- package/dist/utils/claude-json-oauth-sync.js +78 -11
- package/dist/utils/claude-json-oauth-sync.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox-init-script.d.ts","sourceRoot":"","sources":["../../src/terminal/sandbox-init-script.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAGlD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,IAAI,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAO3F;
|
|
1
|
+
{"version":3,"file":"sandbox-init-script.d.ts","sourceRoot":"","sources":["../../src/terminal/sandbox-init-script.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAGlD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,IAAI,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAO3F;AAgDD,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CA4DjE"}
|
|
@@ -47,6 +47,51 @@ function buildOpenFolderDisableKeybindings() {
|
|
|
47
47
|
{ key: 'cmd+k cmd+o', command: '-workbench.action.files.openFolder' },
|
|
48
48
|
];
|
|
49
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* `claude` コマンドのシェル関数 wrapper を生成する。
|
|
52
|
+
*
|
|
53
|
+
* 目的:
|
|
54
|
+
* `CLAUDE_CODE_OAUTH_TOKEN` env が設定されている場合、対話モードでも
|
|
55
|
+
* `claude` が `/login` プロンプトを出さないように `--settings` 引数で
|
|
56
|
+
* token を渡す。claude CLI v2.1.150 では env だけだと対話モード起動時に
|
|
57
|
+
* keychain / oauthAccount セッションがないと login プロンプトに進むが、
|
|
58
|
+
* `--settings '{"env":{"CLAUDE_CODE_OAUTH_TOKEN":"..."}}'` で渡すと
|
|
59
|
+
* 非対話・対話どちらも認証通過する。
|
|
60
|
+
*
|
|
61
|
+
* 設計:
|
|
62
|
+
* - シェル関数として実装することで `claude "$@"` の引数展開を安全に行う
|
|
63
|
+
* - token が設定されていなければ wrapper は何もしない (素の claude を呼ぶ)
|
|
64
|
+
* - ユーザーが --settings を明示指定している場合は wrapper を適用しない
|
|
65
|
+
* (シンプルな引数チェックで判定)
|
|
66
|
+
* - 関数を unset で先に消すことで rc ファイルの再読み込みでも問題なし
|
|
67
|
+
*/
|
|
68
|
+
function buildClaudeWrapperFunction() {
|
|
69
|
+
return `
|
|
70
|
+
# Claude Code wrapper: 対話モードで OAuth Token を --settings 経由で渡す
|
|
71
|
+
# (env だけでは claude CLI v2.1.x が対話モードで /login プロンプトを出すため)
|
|
72
|
+
unset -f claude 2>/dev/null
|
|
73
|
+
claude() {
|
|
74
|
+
if [ -z "\${CLAUDE_CODE_OAUTH_TOKEN}" ]; then
|
|
75
|
+
command claude "\$@"
|
|
76
|
+
return $?
|
|
77
|
+
fi
|
|
78
|
+
# ユーザーが --settings を明示指定している場合は上書きしない
|
|
79
|
+
for arg in "\$@"; do
|
|
80
|
+
case "\${arg}" in
|
|
81
|
+
--settings|--settings=*)
|
|
82
|
+
command claude "\$@"
|
|
83
|
+
return $?
|
|
84
|
+
;;
|
|
85
|
+
esac
|
|
86
|
+
done
|
|
87
|
+
# OAuth token を --settings 経由で渡す
|
|
88
|
+
# JSON 内でダブルクォートが必要なため heredoc で安全に組み立て
|
|
89
|
+
local __settings_json
|
|
90
|
+
__settings_json=$(printf '{"env":{"CLAUDE_CODE_OAUTH_TOKEN":"%s"}}' "\${CLAUDE_CODE_OAUTH_TOKEN}")
|
|
91
|
+
command claude --settings "\${__settings_json}" "\$@"
|
|
92
|
+
}
|
|
93
|
+
`;
|
|
94
|
+
}
|
|
50
95
|
function buildSandboxInitScript(projectDir) {
|
|
51
96
|
// シェル変数に埋め込む際にシングルクォートをエスケープ
|
|
52
97
|
const escaped = projectDir.replace(/'/g, "'\\''");
|
|
@@ -106,6 +151,6 @@ if [ -n "\${ZSH_VERSION}" ]; then
|
|
|
106
151
|
autoload -Uz add-zsh-hook 2>/dev/null
|
|
107
152
|
add-zsh-hook precmd __sandbox_check 2>/dev/null
|
|
108
153
|
fi
|
|
109
|
-
`;
|
|
154
|
+
${buildClaudeWrapperFunction()}`;
|
|
110
155
|
}
|
|
111
156
|
//# sourceMappingURL=sandbox-init-script.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox-init-script.js","sourceRoot":"","sources":["../../src/terminal/sandbox-init-script.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAMH,gCAGC;AAMD,gDAEC;AAMD,8CAGC;AAMD,8EAOC;
|
|
1
|
+
{"version":3,"file":"sandbox-init-script.js","sourceRoot":"","sources":["../../src/terminal/sandbox-init-script.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAMH,gCAGC;AAMD,gDAEC;AAMD,8CAGC;AAMD,8EAOC;AAgDD,wDA4DC;AAjJD;;;GAGG;AACH,SAAgB,UAAU,CAAC,KAAc;IACvC,MAAM,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAA;IAC1C,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;AAClD,CAAC;AAED;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,aAAqB;IACtD,OAAO,kEAAkE,aAAa,EAAE,CAAA;AAC1F,CAAC;AAED;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,aAAqB;IACrD,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC1F,OAAO,iCAAiC,WAAW,yBAAyB,WAAW,aAAa,aAAa,EAAE,CAAA;AACrH,CAAC;AAED;;;GAGG;AACH,SAAgB,iCAAiC;IAC/C,OAAO;QACL,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,kCAAkC,EAAE;QAC9D,EAAE,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,oCAAoC,EAAE;QACvE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,kCAAkC,EAAE;QAC7D,EAAE,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,oCAAoC,EAAE;KACtE,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAS,0BAA0B;IACjC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;CAwBR,CAAA;AACD,CAAC;AAED,SAAgB,sBAAsB,CAAC,UAAkB;IACvD,6BAA6B;IAC7B,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACjD,uCAAuC;IACvC,mCAAmC;IACnC,OAAO;iBACQ,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqDtB,0BAA0B,EAAE,EAAE,CAAA;AAChC,CAAC"}
|
|
@@ -28,16 +28,25 @@
|
|
|
28
28
|
*/
|
|
29
29
|
/**
|
|
30
30
|
* envVarsOverride に `CLAUDE_CODE_OAUTH_TOKEN` が含まれていれば、
|
|
31
|
-
* `~/.claude.json`
|
|
31
|
+
* `~/.claude.json` を以下の状態にする:
|
|
32
32
|
*
|
|
33
|
-
*
|
|
33
|
+
* 1. `oauthAccount` キー(オブジェクト)を存在させる
|
|
34
|
+
* 2. `hasCompletedOnboarding: true` を設定
|
|
35
|
+
* 3. `lastOnboardingVersion` に claude CLI の実バージョンを設定
|
|
36
|
+
*
|
|
37
|
+
* 1 だけでは対話 (TTY) モードで claude が "Select login method:" を出す。
|
|
38
|
+
* 2 + 3 を加えることで onboarding wizard を完全にスキップし、
|
|
39
|
+
* `CLAUDE_CODE_OAUTH_TOKEN` env だけで対話 REPL が起動する。
|
|
40
|
+
*
|
|
41
|
+
* 動作詳細:
|
|
34
42
|
* - envVarsOverride に CLAUDE_CODE_OAUTH_TOKEN が無い / 不正な場合は何もしない
|
|
35
43
|
* - 並列 spawn での lost update を防ぐため lockfile で排他
|
|
36
44
|
* - `~/.claude.json` が存在しない or 破損している場合は最小限の JSON で新規作成
|
|
37
45
|
* (破損時は `.claude.json.broken-<ts>` にバックアップを残す)
|
|
38
46
|
* - トップレベルが object でない場合 (配列/プリミティブ) は corrupted 扱い
|
|
39
|
-
* - 既に
|
|
40
|
-
*
|
|
47
|
+
* - 既に 3 つすべて有効な値で揃っていれば変更しない (no-op、mtime も変化しない)
|
|
48
|
+
* - 不足キーのみを追加し、既存の正規メタデータ (実 OAuth login 由来の
|
|
49
|
+
* accountUuid 等) は温存
|
|
41
50
|
* - atomic write + 明示的 chmod 0o600
|
|
42
51
|
*
|
|
43
52
|
* 失敗は warn してスキップ(spawn 自体は止めない)。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-json-oauth-sync.d.ts","sourceRoot":"","sources":["../../src/utils/claude-json-oauth-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;
|
|
1
|
+
{"version":3,"file":"claude-json-oauth-sync.d.ts","sourceRoot":"","sources":["../../src/utils/claude-json-oauth-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AA0PH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,4BAA4B,CAC1C,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EACnD,GAAG,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GACtB,IAAI,CAwBN"}
|
|
@@ -170,6 +170,50 @@ function hasValidOauthAccount(data) {
|
|
|
170
170
|
const v = data.oauthAccount;
|
|
171
171
|
return isPlainObject(v);
|
|
172
172
|
}
|
|
173
|
+
/**
|
|
174
|
+
* onboarding 完了 flag が既に正しくセットされているか。
|
|
175
|
+
* `hasCompletedOnboarding: true` + `lastOnboardingVersion: string` の両方が必要。
|
|
176
|
+
*/
|
|
177
|
+
function hasValidOnboardingFlags(data) {
|
|
178
|
+
return (data.hasCompletedOnboarding === true &&
|
|
179
|
+
typeof data.lastOnboardingVersion === 'string' &&
|
|
180
|
+
data.lastOnboardingVersion.length > 0);
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* インストール済み claude CLI のバージョンを取得する。
|
|
184
|
+
*
|
|
185
|
+
* `~/.claude.json` の `lastOnboardingVersion` に書き込むため、claude CLI 本体の
|
|
186
|
+
* package.json から実バージョンを読む。これにより claude をアップデートしても
|
|
187
|
+
* version 文字列が古いまま残らない。
|
|
188
|
+
*
|
|
189
|
+
* 取得失敗時はフォールバック値を返す。実機検証で `lastOnboardingVersion` は
|
|
190
|
+
* 何かしらの string であれば onboarding スキップが有効になる挙動を確認済み。
|
|
191
|
+
*/
|
|
192
|
+
function detectClaudeVersion() {
|
|
193
|
+
const candidates = [
|
|
194
|
+
'/usr/local/lib/node_modules/@anthropic-ai/claude-code/package.json',
|
|
195
|
+
'/usr/lib/node_modules/@anthropic-ai/claude-code/package.json',
|
|
196
|
+
path.join(os.homedir(), '.npm-global/lib/node_modules/@anthropic-ai/claude-code/package.json'),
|
|
197
|
+
];
|
|
198
|
+
for (const candidate of candidates) {
|
|
199
|
+
try {
|
|
200
|
+
if (!fs.existsSync(candidate))
|
|
201
|
+
continue;
|
|
202
|
+
const raw = fs.readFileSync(candidate, 'utf-8');
|
|
203
|
+
const pkg = JSON.parse(raw);
|
|
204
|
+
if (typeof pkg.version === 'string' && pkg.version.length > 0) {
|
|
205
|
+
return pkg.version;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
catch {
|
|
209
|
+
// 次の候補を試す
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
// フォールバック: 適当な version 文字列。claude CLI は string であれば
|
|
213
|
+
// 内容を厳密にバージョン比較しないと推測される(実機検証では '2.1.150' で
|
|
214
|
+
// OK だった)が、固定値だと将来の挙動変化に弱いため UNKNOWN を埋める
|
|
215
|
+
return 'unknown';
|
|
216
|
+
}
|
|
173
217
|
/**
|
|
174
218
|
* OAuth token の妥当性を簡易検証。
|
|
175
219
|
* - 文字列でなければ無効
|
|
@@ -258,16 +302,25 @@ function atomicWriteJson(targetPath, data) {
|
|
|
258
302
|
}
|
|
259
303
|
/**
|
|
260
304
|
* envVarsOverride に `CLAUDE_CODE_OAUTH_TOKEN` が含まれていれば、
|
|
261
|
-
* `~/.claude.json`
|
|
305
|
+
* `~/.claude.json` を以下の状態にする:
|
|
306
|
+
*
|
|
307
|
+
* 1. `oauthAccount` キー(オブジェクト)を存在させる
|
|
308
|
+
* 2. `hasCompletedOnboarding: true` を設定
|
|
309
|
+
* 3. `lastOnboardingVersion` に claude CLI の実バージョンを設定
|
|
262
310
|
*
|
|
263
|
-
*
|
|
311
|
+
* 1 だけでは対話 (TTY) モードで claude が "Select login method:" を出す。
|
|
312
|
+
* 2 + 3 を加えることで onboarding wizard を完全にスキップし、
|
|
313
|
+
* `CLAUDE_CODE_OAUTH_TOKEN` env だけで対話 REPL が起動する。
|
|
314
|
+
*
|
|
315
|
+
* 動作詳細:
|
|
264
316
|
* - envVarsOverride に CLAUDE_CODE_OAUTH_TOKEN が無い / 不正な場合は何もしない
|
|
265
317
|
* - 並列 spawn での lost update を防ぐため lockfile で排他
|
|
266
318
|
* - `~/.claude.json` が存在しない or 破損している場合は最小限の JSON で新規作成
|
|
267
319
|
* (破損時は `.claude.json.broken-<ts>` にバックアップを残す)
|
|
268
320
|
* - トップレベルが object でない場合 (配列/プリミティブ) は corrupted 扱い
|
|
269
|
-
* - 既に
|
|
270
|
-
*
|
|
321
|
+
* - 既に 3 つすべて有効な値で揃っていれば変更しない (no-op、mtime も変化しない)
|
|
322
|
+
* - 不足キーのみを追加し、既存の正規メタデータ (実 OAuth login 由来の
|
|
323
|
+
* accountUuid 等) は温存
|
|
271
324
|
* - atomic write + 明示的 chmod 0o600
|
|
272
325
|
*
|
|
273
326
|
* 失敗は warn してスキップ(spawn 自体は止めない)。
|
|
@@ -326,15 +379,29 @@ function syncOauthAccount(claudeJsonPath, ctx) {
|
|
|
326
379
|
data = {};
|
|
327
380
|
}
|
|
328
381
|
}
|
|
329
|
-
//
|
|
330
|
-
|
|
382
|
+
// 既に 3 つすべて揃っていれば no-op
|
|
383
|
+
const oauthAccountValid = hasValidOauthAccount(data);
|
|
384
|
+
const onboardingValid = hasValidOnboardingFlags(data);
|
|
385
|
+
if (oauthAccountValid && onboardingValid) {
|
|
331
386
|
return 'noop';
|
|
332
387
|
}
|
|
333
|
-
//
|
|
334
|
-
const
|
|
335
|
-
const
|
|
388
|
+
// 不足分を補完する diff を構築
|
|
389
|
+
const next = { ...data };
|
|
390
|
+
const changes = [];
|
|
391
|
+
if (!oauthAccountValid) {
|
|
392
|
+
const wasPresent = 'oauthAccount' in data;
|
|
393
|
+
next.oauthAccount = {};
|
|
394
|
+
changes.push(wasPresent ? 'replaced invalid oauthAccount' : 'added oauthAccount');
|
|
395
|
+
}
|
|
396
|
+
if (!onboardingValid) {
|
|
397
|
+
next.hasCompletedOnboarding = true;
|
|
398
|
+
if (typeof data.lastOnboardingVersion !== 'string' || data.lastOnboardingVersion === '') {
|
|
399
|
+
next.lastOnboardingVersion = detectClaudeVersion();
|
|
400
|
+
}
|
|
401
|
+
changes.push('set onboarding flags');
|
|
402
|
+
}
|
|
336
403
|
atomicWriteJson(claudeJsonPath, next);
|
|
337
|
-
logger_1.logger.info(`${ctx.prefix}
|
|
338
|
-
return
|
|
404
|
+
logger_1.logger.info(`${ctx.prefix} Updated ~/.claude.json for CLAUDE_CODE_OAUTH_TOKEN authentication: ${changes.join(', ')}`);
|
|
405
|
+
return oauthAccountValid && onboardingValid ? 'noop' : 'updated';
|
|
339
406
|
}
|
|
340
407
|
//# sourceMappingURL=claude-json-oauth-sync.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-json-oauth-sync.js","sourceRoot":"","sources":["../../src/utils/claude-json-oauth-sync.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"claude-json-oauth-sync.js","sourceRoot":"","sources":["../../src/utils/claude-json-oauth-sync.ts"],"names":[],"mappings":"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"}
|