@makerbi/openclaude 0.14.2 → 0.14.4
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 -6
- package/dist/cli.mjs +118 -104
- package/dist/sdk.mjs +27 -27
- package/package.json +2 -1
- package/src/entrypoints/sdk.d.ts +1 -1
package/README.md
CHANGED
|
@@ -4,9 +4,9 @@ OpenClaude is an open-source coding-agent CLI for cloud and local model provider
|
|
|
4
4
|
|
|
5
5
|
Use OpenAI-compatible APIs, Gemini, GitHub Models, Codex OAuth, Codex, Ollama, Atomic Chat, and other supported backends while keeping one terminal-first workflow: prompts, tools, agents, MCP, slash commands, and streaming output.
|
|
6
6
|
|
|
7
|
-
[](https://github.com/
|
|
7
|
+
[](https://github.com/AndersonBY/openclaude/actions/workflows/pr-checks.yml)
|
|
8
|
+
[](https://github.com/AndersonBY/openclaude/tags)
|
|
9
|
+
[](https://github.com/AndersonBY/openclaude/discussions)
|
|
10
10
|
[](SECURITY.md)
|
|
11
11
|
[](LICENSE)
|
|
12
12
|
|
|
@@ -65,7 +65,7 @@ OpenClaude is also mirrored to GitLawb:
|
|
|
65
65
|
### Install
|
|
66
66
|
|
|
67
67
|
```bash
|
|
68
|
-
npm install -g @
|
|
68
|
+
npm install -g @makerbi/openclaude
|
|
69
69
|
```
|
|
70
70
|
|
|
71
71
|
If the install later reports `ripgrep not found`, install ripgrep system-wide and confirm `rg --version` works in the same terminal before starting OpenClaude.
|
|
@@ -347,8 +347,8 @@ If you believe you found a security issue, see [SECURITY.md](SECURITY.md).
|
|
|
347
347
|
|
|
348
348
|
## Community
|
|
349
349
|
|
|
350
|
-
- Use [GitHub Discussions](https://github.com/
|
|
351
|
-
- Use [GitHub Issues](https://github.com/
|
|
350
|
+
- Use [GitHub Discussions](https://github.com/AndersonBY/openclaude/discussions) for Q&A, ideas, and community conversation
|
|
351
|
+
- Use [GitHub Issues](https://github.com/AndersonBY/openclaude/issues) for confirmed bugs and actionable feature work
|
|
352
352
|
|
|
353
353
|
## Contributing
|
|
354
354
|
|
package/dist/cli.mjs
CHANGED
|
@@ -148392,7 +148392,7 @@ async function _executeApiKeyHelper(isNonInteractiveSession) {
|
|
|
148392
148392
|
if (isApiKeyHelperFromProjectOrLocalSettings()) {
|
|
148393
148393
|
const hasTrust = checkHasTrustDialogAccepted();
|
|
148394
148394
|
if (!hasTrust && !isNonInteractiveSession) {
|
|
148395
|
-
const error41 = new Error(`Security: apiKeyHelper executed before workspace trust is confirmed. If you see this message, post in ${"https://github.com/
|
|
148395
|
+
const error41 = new Error(`Security: apiKeyHelper executed before workspace trust is confirmed. If you see this message, post in ${"https://github.com/AndersonBY/openclaude/issues"}.`);
|
|
148396
148396
|
logAntError("apiKeyHelper invoked before trust check", error41);
|
|
148397
148397
|
logEvent("tengu_apiKeyHelper_missing_trust11", {});
|
|
148398
148398
|
return null;
|
|
@@ -148436,7 +148436,7 @@ async function runAwsAuthRefresh() {
|
|
|
148436
148436
|
if (isAwsAuthRefreshFromProjectSettings()) {
|
|
148437
148437
|
const hasTrust = checkHasTrustDialogAccepted();
|
|
148438
148438
|
if (!hasTrust && !getIsNonInteractiveSession()) {
|
|
148439
|
-
const error41 = new Error(`Security: awsAuthRefresh executed before workspace trust is confirmed. If you see this message, post in ${"https://github.com/
|
|
148439
|
+
const error41 = new Error(`Security: awsAuthRefresh executed before workspace trust is confirmed. If you see this message, post in ${"https://github.com/AndersonBY/openclaude/issues"}.`);
|
|
148440
148440
|
logAntError("awsAuthRefresh invoked before trust check", error41);
|
|
148441
148441
|
logEvent("tengu_awsAuthRefresh_missing_trust", {});
|
|
148442
148442
|
return false;
|
|
@@ -148496,7 +148496,7 @@ async function getAwsCredsFromCredentialExport() {
|
|
|
148496
148496
|
if (isAwsCredentialExportFromProjectSettings()) {
|
|
148497
148497
|
const hasTrust = checkHasTrustDialogAccepted();
|
|
148498
148498
|
if (!hasTrust && !getIsNonInteractiveSession()) {
|
|
148499
|
-
const error41 = new Error(`Security: awsCredentialExport executed before workspace trust is confirmed. If you see this message, post in ${"https://github.com/
|
|
148499
|
+
const error41 = new Error(`Security: awsCredentialExport executed before workspace trust is confirmed. If you see this message, post in ${"https://github.com/AndersonBY/openclaude/issues"}.`);
|
|
148500
148500
|
logAntError("awsCredentialExport invoked before trust check", error41);
|
|
148501
148501
|
logEvent("tengu_awsCredentialExport_missing_trust", {});
|
|
148502
148502
|
return null;
|
|
@@ -148581,7 +148581,7 @@ async function runGcpAuthRefresh() {
|
|
|
148581
148581
|
if (isGcpAuthRefreshFromProjectSettings()) {
|
|
148582
148582
|
const hasTrust = checkHasTrustDialogAccepted();
|
|
148583
148583
|
if (!hasTrust && !getIsNonInteractiveSession()) {
|
|
148584
|
-
const error41 = new Error("Security: gcpAuthRefresh executed before workspace trust is confirmed. If you see this message, post in https://github.com/
|
|
148584
|
+
const error41 = new Error("Security: gcpAuthRefresh executed before workspace trust is confirmed. If you see this message, post in https://github.com/AndersonBY/openclaude/issues.");
|
|
148585
148585
|
logAntError("gcpAuthRefresh invoked before trust check", error41);
|
|
148586
148586
|
logEvent("tengu_gcpAuthRefresh_missing_trust", {});
|
|
148587
148587
|
return false;
|
|
@@ -149962,7 +149962,7 @@ var init_metadata = __esm(() => {
|
|
|
149962
149962
|
isClaudeAiAuth: isClaudeAISubscriber(),
|
|
149963
149963
|
version: "99.0.0",
|
|
149964
149964
|
versionBase: getVersionBase(),
|
|
149965
|
-
buildTime: "2026-05-
|
|
149965
|
+
buildTime: "2026-05-26T07:31:57.469Z",
|
|
149966
149966
|
deploymentEnvironment: env2.detectDeploymentEnvironment(),
|
|
149967
149967
|
...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
|
|
149968
149968
|
githubEventName: process.env.GITHUB_EVENT_NAME,
|
|
@@ -164779,7 +164779,7 @@ function getClaudeCodeGuideBasePrompt() {
|
|
|
164779
164779
|
Complete the user's request by providing accurate, documentation-based guidance.`;
|
|
164780
164780
|
}
|
|
164781
164781
|
function getFeedbackGuideline() {
|
|
164782
|
-
return `- When you cannot find an answer or the feature doesn't exist, direct the user to ${"report the issue at https://github.com/
|
|
164782
|
+
return `- When you cannot find an answer or the feature doesn't exist, direct the user to ${"report the issue at https://github.com/AndersonBY/openclaude/issues"}`;
|
|
164783
164783
|
}
|
|
164784
164784
|
var CLAUDE_CODE_DOCS_MAP_URL = "https://code.claude.com/docs/en/claude_code_docs_map.md", CDP_DOCS_MAP_URL = "https://platform.claude.com/llms.txt", CLAUDE_CODE_GUIDE_AGENT_TYPE = "claude-code-guide", CLAUDE_CODE_GUIDE_AGENT;
|
|
164785
164785
|
var init_claudeCodeGuideAgent = __esm(() => {
|
|
@@ -185552,7 +185552,7 @@ function getMCPUserAgent() {
|
|
|
185552
185552
|
return `claude-code/${"99.0.0"}${suffix}`;
|
|
185553
185553
|
}
|
|
185554
185554
|
function getWebFetchUserAgent() {
|
|
185555
|
-
const supportUrl = getAPIProvider() === "firstParty" ? "https://support.anthropic.com/" : "https://github.com/
|
|
185555
|
+
const supportUrl = getAPIProvider() === "firstParty" ? "https://support.anthropic.com/" : "https://github.com/AndersonBY/openclaude";
|
|
185556
185556
|
return `Claude-User (${getClaudeCodeUserAgent()}; +${supportUrl})`;
|
|
185557
185557
|
}
|
|
185558
185558
|
function getAuthHeaders() {
|
|
@@ -226559,7 +226559,7 @@ async function getMcpHeadersFromHelper(serverName, config2) {
|
|
|
226559
226559
|
if ("scope" in config2 && isMcpServerFromProjectOrLocalSettings(config2) && !getIsNonInteractiveSession()) {
|
|
226560
226560
|
const hasTrust = checkHasTrustDialogAccepted();
|
|
226561
226561
|
if (!hasTrust) {
|
|
226562
|
-
const error42 = new Error(`Security: headersHelper for MCP server '${serverName}' executed before workspace trust is confirmed. If you see this message, post in ${"https://github.com/
|
|
226562
|
+
const error42 = new Error(`Security: headersHelper for MCP server '${serverName}' executed before workspace trust is confirmed. If you see this message, post in ${"https://github.com/AndersonBY/openclaude/issues"}.`);
|
|
226563
226563
|
logAntError("MCP headersHelper invoked before trust check", error42);
|
|
226564
226564
|
logEvent("tengu_mcp_headersHelper_missing_trust", {});
|
|
226565
226565
|
return null;
|
|
@@ -282964,7 +282964,7 @@ async function getLatestVersion() {
|
|
|
282964
282964
|
async function getNpmDistTags() {
|
|
282965
282965
|
return { latest: null, stable: null };
|
|
282966
282966
|
}
|
|
282967
|
-
async function
|
|
282967
|
+
async function getLatestVersionFromGitHubReleases() {
|
|
282968
282968
|
return null;
|
|
282969
282969
|
}
|
|
282970
282970
|
async function getGcsDistTags() {
|
|
@@ -283038,7 +283038,7 @@ async function installOrUpdateClaudePackage(channel, specificVersion) {
|
|
|
283038
283038
|
return "install_failed";
|
|
283039
283039
|
}
|
|
283040
283040
|
const versionSpec = specificVersion ? specificVersion : channel === "stable" ? "stable" : "latest";
|
|
283041
|
-
const result = await execFileNoThrowWithCwd("npm", ["install", `${"@
|
|
283041
|
+
const result = await execFileNoThrowWithCwd("npm", ["install", `${"@makerbi/openclaude"}@${versionSpec}`], { cwd: getLocalInstallDir(), maxBuffer: 1e6 });
|
|
283042
283042
|
if (result.code !== 0) {
|
|
283043
283043
|
const error42 = new Error(`Failed to install Claude CLI package: ${result.stderr}`);
|
|
283044
283044
|
logError2(error42);
|
|
@@ -283471,7 +283471,7 @@ async function detectMultipleInstallations() {
|
|
|
283471
283471
|
}
|
|
283472
283472
|
const packagesToCheck = ["@anthropic-ai/claude-code"];
|
|
283473
283473
|
if (true) {
|
|
283474
|
-
packagesToCheck.push("@
|
|
283474
|
+
packagesToCheck.push("@makerbi/openclaude");
|
|
283475
283475
|
}
|
|
283476
283476
|
const npmResult = await execFileNoThrow("npm", [
|
|
283477
283477
|
"-g",
|
|
@@ -283667,7 +283667,7 @@ async function getDoctorDiagnostic() {
|
|
|
283667
283667
|
if (install.type === "npm-global") {
|
|
283668
283668
|
let uninstallCmd = "npm -g uninstall @anthropic-ai/claude-code";
|
|
283669
283669
|
if (true) {
|
|
283670
|
-
uninstallCmd += ` && npm -g uninstall ${"@
|
|
283670
|
+
uninstallCmd += ` && npm -g uninstall ${"@makerbi/openclaude"}`;
|
|
283671
283671
|
}
|
|
283672
283672
|
warnings.push({
|
|
283673
283673
|
issue: `Leftover npm global installation at ${install.path}`,
|
|
@@ -283774,6 +283774,18 @@ var init_xdg = () => {};
|
|
|
283774
283774
|
import { createHash as createHash12 } from "crypto";
|
|
283775
283775
|
import { chmod as chmod4, writeFile as writeFile12 } from "fs/promises";
|
|
283776
283776
|
import { join as join60 } from "path";
|
|
283777
|
+
function normalizeReleaseTag(version2) {
|
|
283778
|
+
return version2.startsWith("v") ? version2 : `v${version2}`;
|
|
283779
|
+
}
|
|
283780
|
+
function normalizeReleaseVersion(tagName) {
|
|
283781
|
+
return tagName.startsWith("v") ? tagName.slice(1) : tagName;
|
|
283782
|
+
}
|
|
283783
|
+
function getGitHubReleaseAssetName(platform4) {
|
|
283784
|
+
return platform4.startsWith("win32") ? `openclaude-${platform4}.exe` : `openclaude-${platform4}`;
|
|
283785
|
+
}
|
|
283786
|
+
function isReleaseVersion(value) {
|
|
283787
|
+
return typeof value === "string" && /^v?\d+\.\d+\.\d+(-\S+)?$/.test(value);
|
|
283788
|
+
}
|
|
283777
283789
|
async function getLatestVersionFromArtifactory(tag2 = "latest") {
|
|
283778
283790
|
if (!ARTIFACTORY_REGISTRY_URL) {
|
|
283779
283791
|
throw new Error("Internal artifactory registry URL is not configured");
|
|
@@ -283809,19 +283821,23 @@ async function getLatestVersionFromArtifactory(tag2 = "latest") {
|
|
|
283809
283821
|
const latestVersion = stdout.trim();
|
|
283810
283822
|
return latestVersion;
|
|
283811
283823
|
}
|
|
283812
|
-
async function
|
|
283824
|
+
async function getLatestVersionFromGitHubReleases2(channel = "latest") {
|
|
283813
283825
|
const startTime = Date.now();
|
|
283826
|
+
const releaseUrl = channel === "latest" ? `${GITHUB_RELEASES_API_URL}/latest` : `${GITHUB_RELEASES_API_URL}?per_page=20`;
|
|
283814
283827
|
try {
|
|
283815
|
-
const response = await axios_default.get(
|
|
283828
|
+
const response = await axios_default.get(releaseUrl, {
|
|
283816
283829
|
timeout: 30000,
|
|
283817
|
-
responseType: "
|
|
283818
|
-
...authConfig
|
|
283830
|
+
responseType: "json"
|
|
283819
283831
|
});
|
|
283820
283832
|
const latencyMs = Date.now() - startTime;
|
|
283833
|
+
const tagName = channel === "latest" ? response.data?.tag_name : Array.isArray(response.data) ? response.data.find((release) => release && !release.draft && !release.prerelease && isReleaseVersion(release.tag_name))?.tag_name : null;
|
|
283834
|
+
if (!isReleaseVersion(tagName)) {
|
|
283835
|
+
throw new Error(`GitHub ${channel} release response did not include a valid tag_name`);
|
|
283836
|
+
}
|
|
283821
283837
|
logEvent("tengu_version_check_success", {
|
|
283822
283838
|
latency_ms: latencyMs
|
|
283823
283839
|
});
|
|
283824
|
-
return
|
|
283840
|
+
return normalizeReleaseVersion(tagName.trim());
|
|
283825
283841
|
} catch (error42) {
|
|
283826
283842
|
const latencyMs = Date.now() - startTime;
|
|
283827
283843
|
const errorMessage2 = error42 instanceof Error ? error42.message : String(error42);
|
|
@@ -283834,7 +283850,7 @@ async function getLatestVersionFromBinaryRepo(channel = "latest", baseUrl, authC
|
|
|
283834
283850
|
http_status: httpStatus,
|
|
283835
283851
|
is_timeout: errorMessage2.includes("timeout")
|
|
283836
283852
|
});
|
|
283837
|
-
const fetchError = new Error(`Failed to fetch
|
|
283853
|
+
const fetchError = new Error(`Failed to fetch ${channel} GitHub release from ${releaseUrl}: ${errorMessage2}`);
|
|
283838
283854
|
logError2(fetchError);
|
|
283839
283855
|
throw fetchError;
|
|
283840
283856
|
}
|
|
@@ -283855,7 +283871,7 @@ async function getLatestVersion2(channelOrVersion) {
|
|
|
283855
283871
|
const npmTag = channel === "stable" ? "stable" : "latest";
|
|
283856
283872
|
return getLatestVersionFromArtifactory(npmTag);
|
|
283857
283873
|
}
|
|
283858
|
-
return
|
|
283874
|
+
return getLatestVersionFromGitHubReleases2(channel);
|
|
283859
283875
|
}
|
|
283860
283876
|
async function downloadVersionFromArtifactory(version2, stagingPath) {
|
|
283861
283877
|
if (!ARTIFACTORY_REGISTRY_URL) {
|
|
@@ -283990,18 +284006,19 @@ async function downloadAndVerifyBinary(binaryUrl, expectedChecksum, binaryPath,
|
|
|
283990
284006
|
}
|
|
283991
284007
|
throw lastError ?? new Error("Download failed after all retries");
|
|
283992
284008
|
}
|
|
283993
|
-
async function
|
|
284009
|
+
async function downloadVersionFromGitHubRelease(version2, stagingPath) {
|
|
283994
284010
|
const fs2 = getFsImplementation();
|
|
283995
284011
|
await fs2.rm(stagingPath, { recursive: true, force: true });
|
|
283996
284012
|
const platform4 = getPlatform2();
|
|
284013
|
+
const tag2 = normalizeReleaseTag(version2);
|
|
283997
284014
|
const startTime = Date.now();
|
|
283998
284015
|
logEvent("tengu_binary_download_attempt", {});
|
|
283999
284016
|
let manifest;
|
|
284017
|
+
const manifestUrl = `${GITHUB_RELEASE_DOWNLOAD_BASE_URL}/${tag2}/manifest.json`;
|
|
284000
284018
|
try {
|
|
284001
|
-
const manifestResponse = await axios_default.get(
|
|
284019
|
+
const manifestResponse = await axios_default.get(manifestUrl, {
|
|
284002
284020
|
timeout: 1e4,
|
|
284003
|
-
responseType: "json"
|
|
284004
|
-
...authConfig
|
|
284021
|
+
responseType: "json"
|
|
284005
284022
|
});
|
|
284006
284023
|
manifest = manifestResponse.data;
|
|
284007
284024
|
} catch (error42) {
|
|
@@ -284016,7 +284033,7 @@ async function downloadVersionFromBinaryRepo(version2, stagingPath, baseUrl, aut
|
|
|
284016
284033
|
http_status: httpStatus,
|
|
284017
284034
|
is_timeout: errorMessage2.includes("timeout")
|
|
284018
284035
|
});
|
|
284019
|
-
logError2(new Error(`Failed to fetch manifest from ${
|
|
284036
|
+
logError2(new Error(`Failed to fetch manifest from ${manifestUrl}: ${errorMessage2}`));
|
|
284020
284037
|
throw error42;
|
|
284021
284038
|
}
|
|
284022
284039
|
const platformInfo = manifest.platforms[platform4];
|
|
@@ -284025,12 +284042,13 @@ async function downloadVersionFromBinaryRepo(version2, stagingPath, baseUrl, aut
|
|
|
284025
284042
|
throw new Error(`Platform ${platform4} not found in manifest for version ${version2}`);
|
|
284026
284043
|
}
|
|
284027
284044
|
const expectedChecksum = platformInfo.checksum;
|
|
284045
|
+
const assetName = platformInfo.asset ?? getGitHubReleaseAssetName(platform4);
|
|
284046
|
+
const binaryUrl = `${GITHUB_RELEASE_DOWNLOAD_BASE_URL}/${tag2}/${encodeURIComponent(assetName)}`;
|
|
284028
284047
|
const binaryName = getBinaryName(platform4);
|
|
284029
|
-
const binaryUrl = `${baseUrl}/${version2}/${platform4}/${binaryName}`;
|
|
284030
284048
|
await fs2.mkdir(stagingPath);
|
|
284031
284049
|
const binaryPath = join60(stagingPath, binaryName);
|
|
284032
284050
|
try {
|
|
284033
|
-
await downloadAndVerifyBinary(binaryUrl, expectedChecksum, binaryPath
|
|
284051
|
+
await downloadAndVerifyBinary(binaryUrl, expectedChecksum, binaryPath);
|
|
284034
284052
|
const latencyMs = Date.now() - startTime;
|
|
284035
284053
|
logEvent("tengu_binary_download_success", {
|
|
284036
284054
|
latency_ms: latencyMs
|
|
@@ -284058,10 +284076,10 @@ async function downloadVersion(version2, stagingPath) {
|
|
|
284058
284076
|
await downloadVersionFromArtifactory(version2, stagingPath);
|
|
284059
284077
|
return "npm";
|
|
284060
284078
|
}
|
|
284061
|
-
await
|
|
284079
|
+
await downloadVersionFromGitHubRelease(version2, stagingPath);
|
|
284062
284080
|
return "binary";
|
|
284063
284081
|
}
|
|
284064
|
-
var
|
|
284082
|
+
var GITHUB_RELEASES_API_URL = "https://api.github.com/repos/AndersonBY/openclaude/releases", GITHUB_RELEASE_DOWNLOAD_BASE_URL = "https://github.com/AndersonBY/openclaude/releases/download", ARTIFACTORY_REGISTRY_URL, DEFAULT_STALL_TIMEOUT_MS = 60000, MAX_DOWNLOAD_RETRIES = 3, StallTimeoutError;
|
|
284065
284083
|
var init_download = __esm(() => {
|
|
284066
284084
|
init_axios2();
|
|
284067
284085
|
init_debug();
|
|
@@ -284332,6 +284350,9 @@ import {
|
|
|
284332
284350
|
} from "fs/promises";
|
|
284333
284351
|
import { homedir as homedir21 } from "os";
|
|
284334
284352
|
import { basename as basename13, delimiter as delimiter3, dirname as dirname27, join as join62, resolve as resolve20 } from "path";
|
|
284353
|
+
function getCliBinaryName2() {
|
|
284354
|
+
return "openclaude";
|
|
284355
|
+
}
|
|
284335
284356
|
function getPlatform2() {
|
|
284336
284357
|
const os4 = env2.platform;
|
|
284337
284358
|
const arch = process.arch === "x64" ? "x64" : process.arch === "arm64" ? "arm64" : null;
|
|
@@ -284346,15 +284367,17 @@ function getPlatform2() {
|
|
|
284346
284367
|
return `${os4}-${arch}`;
|
|
284347
284368
|
}
|
|
284348
284369
|
function getBinaryName(platform4) {
|
|
284349
|
-
|
|
284370
|
+
const binaryName = getCliBinaryName2();
|
|
284371
|
+
return platform4.startsWith("win32") ? `${binaryName}.exe` : binaryName;
|
|
284350
284372
|
}
|
|
284351
284373
|
function getBaseDirectories() {
|
|
284352
284374
|
const platform4 = getPlatform2();
|
|
284353
284375
|
const executableName = getBinaryName(platform4);
|
|
284376
|
+
const appDirName = getCliBinaryName2();
|
|
284354
284377
|
return {
|
|
284355
|
-
versions: join62(getXDGDataHome(),
|
|
284356
|
-
staging: join62(getXDGCacheHome(),
|
|
284357
|
-
locks: join62(getXDGStateHome(),
|
|
284378
|
+
versions: join62(getXDGDataHome(), appDirName, "versions"),
|
|
284379
|
+
staging: join62(getXDGCacheHome(), appDirName, "staging"),
|
|
284380
|
+
locks: join62(getXDGStateHome(), appDirName, "locks"),
|
|
284358
284381
|
executable: join62(getUserBinDir(), executableName)
|
|
284359
284382
|
};
|
|
284360
284383
|
}
|
|
@@ -284801,7 +284824,7 @@ async function checkInstall(force = false) {
|
|
|
284801
284824
|
if (isWindows2) {
|
|
284802
284825
|
if (!await isPossibleClaudeBinary(dirs.executable)) {
|
|
284803
284826
|
messages.push({
|
|
284804
|
-
message: `installMethod is native, but
|
|
284827
|
+
message: `installMethod is native, but ${getCliBinaryName2()} command is missing or invalid at ${dirs.executable}`,
|
|
284805
284828
|
userActionRequired: true,
|
|
284806
284829
|
type: "error"
|
|
284807
284830
|
});
|
|
@@ -284820,14 +284843,14 @@ async function checkInstall(force = false) {
|
|
|
284820
284843
|
} catch (e) {
|
|
284821
284844
|
if (isENOENT(e)) {
|
|
284822
284845
|
messages.push({
|
|
284823
|
-
message: `installMethod is native, but
|
|
284846
|
+
message: `installMethod is native, but ${getCliBinaryName2()} command not found at ${dirs.executable}`,
|
|
284824
284847
|
userActionRequired: true,
|
|
284825
284848
|
type: "error"
|
|
284826
284849
|
});
|
|
284827
284850
|
} else {
|
|
284828
284851
|
if (!await isPossibleClaudeBinary(dirs.executable)) {
|
|
284829
284852
|
messages.push({
|
|
284830
|
-
message: `${dirs.executable} exists but is not a valid
|
|
284853
|
+
message: `${dirs.executable} exists but is not a valid ${getCliBinaryName2()} binary`,
|
|
284831
284854
|
userActionRequired: true,
|
|
284832
284855
|
type: "error"
|
|
284833
284856
|
});
|
|
@@ -285012,11 +285035,12 @@ async function cleanupOldVersions() {
|
|
|
285012
285035
|
const oneHourAgo = Date.now() - 3600000;
|
|
285013
285036
|
if (getPlatform2().startsWith("win32")) {
|
|
285014
285037
|
const executableDir = dirname27(dirs.executable);
|
|
285038
|
+
const oldExecutablePattern = new RegExp(`^${getBinaryName(getPlatform2()).replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}\\.old\\.\\d+$`);
|
|
285015
285039
|
try {
|
|
285016
285040
|
const files = await readdir8(executableDir);
|
|
285017
285041
|
let cleanedCount = 0;
|
|
285018
285042
|
for (const file2 of files) {
|
|
285019
|
-
if (
|
|
285043
|
+
if (!oldExecutablePattern.test(file2))
|
|
285020
285044
|
continue;
|
|
285021
285045
|
try {
|
|
285022
285046
|
await unlink7(join62(executableDir, file2));
|
|
@@ -285208,12 +285232,12 @@ async function removeInstalledSymlink() {
|
|
|
285208
285232
|
return;
|
|
285209
285233
|
}
|
|
285210
285234
|
await unlink7(dirs.executable);
|
|
285211
|
-
logForDebugging(`Removed
|
|
285235
|
+
logForDebugging(`Removed native executable at ${dirs.executable}`);
|
|
285212
285236
|
} catch (error42) {
|
|
285213
285237
|
if (isENOENT(error42)) {
|
|
285214
285238
|
return;
|
|
285215
285239
|
}
|
|
285216
|
-
logError2(new Error(`Failed to remove
|
|
285240
|
+
logError2(new Error(`Failed to remove native executable: ${error42}`));
|
|
285217
285241
|
}
|
|
285218
285242
|
}
|
|
285219
285243
|
async function cleanupShellAliases() {
|
|
@@ -285259,6 +285283,7 @@ async function manualRemoveNpmPackage(packageName) {
|
|
|
285259
285283
|
};
|
|
285260
285284
|
}
|
|
285261
285285
|
const globalPrefix = prefixResult.stdout.trim();
|
|
285286
|
+
const packageBinName = packageName === "@anthropic-ai/claude-code" ? "claude" : getCliBinaryName2();
|
|
285262
285287
|
let manuallyRemoved = false;
|
|
285263
285288
|
async function tryRemove(filePath, description) {
|
|
285264
285289
|
try {
|
|
@@ -285270,9 +285295,9 @@ async function manualRemoveNpmPackage(packageName) {
|
|
|
285270
285295
|
}
|
|
285271
285296
|
}
|
|
285272
285297
|
if (getPlatform2().startsWith("win32")) {
|
|
285273
|
-
const binCmd = join62(globalPrefix,
|
|
285274
|
-
const binPs1 = join62(globalPrefix,
|
|
285275
|
-
const binExe = join62(globalPrefix,
|
|
285298
|
+
const binCmd = join62(globalPrefix, `${packageBinName}.cmd`);
|
|
285299
|
+
const binPs1 = join62(globalPrefix, `${packageBinName}.ps1`);
|
|
285300
|
+
const binExe = join62(globalPrefix, packageBinName);
|
|
285276
285301
|
if (await tryRemove(binCmd, "bin script")) {
|
|
285277
285302
|
manuallyRemoved = true;
|
|
285278
285303
|
}
|
|
@@ -285283,7 +285308,7 @@ async function manualRemoveNpmPackage(packageName) {
|
|
|
285283
285308
|
manuallyRemoved = true;
|
|
285284
285309
|
}
|
|
285285
285310
|
} else {
|
|
285286
|
-
const binSymlink = join62(globalPrefix, "bin",
|
|
285311
|
+
const binSymlink = join62(globalPrefix, "bin", packageBinName);
|
|
285287
285312
|
if (await tryRemove(binSymlink, "bin symlink")) {
|
|
285288
285313
|
manuallyRemoved = true;
|
|
285289
285314
|
}
|
|
@@ -285348,17 +285373,6 @@ async function cleanupNpmInstallations() {
|
|
|
285348
285373
|
} else if (codePackageResult.error) {
|
|
285349
285374
|
errors4.push(codePackageResult.error);
|
|
285350
285375
|
}
|
|
285351
|
-
if (true) {
|
|
285352
|
-
const macroPackageResult = await attemptNpmUninstall("@gitlawb/openclaude");
|
|
285353
|
-
if (macroPackageResult.success) {
|
|
285354
|
-
removed++;
|
|
285355
|
-
if (macroPackageResult.warning) {
|
|
285356
|
-
warnings.push(macroPackageResult.warning);
|
|
285357
|
-
}
|
|
285358
|
-
} else if (macroPackageResult.error) {
|
|
285359
|
-
errors4.push(macroPackageResult.error);
|
|
285360
|
-
}
|
|
285361
|
-
}
|
|
285362
285376
|
const localInstallDirs = Array.from(new Set([join62(getClaudeConfigHomeDir(), "local"), join62(homedir21(), ".claude", "local")]));
|
|
285363
285377
|
for (const localInstallDir of localInstallDirs) {
|
|
285364
285378
|
try {
|
|
@@ -381682,7 +381696,7 @@ function getAttributionTexts() {
|
|
|
381682
381696
|
apiProvider,
|
|
381683
381697
|
isInternalRepo: isInternalModelRepoCached()
|
|
381684
381698
|
});
|
|
381685
|
-
const defaultAttribution = "\uD83E\uDD16 Generated with [OpenClaude](https://github.com/
|
|
381699
|
+
const defaultAttribution = "\uD83E\uDD16 Generated with [OpenClaude](https://github.com/AndersonBY/openclaude)";
|
|
381686
381700
|
const coAuthorEmail = getDefaultCommitCoAuthorEmail(apiProvider);
|
|
381687
381701
|
const defaultCommit = isEnvTruthy(process.env.OPENCLAUDE_DISABLE_CO_AUTHORED_BY) ? "" : `Co-Authored-By: ${modelName} <${coAuthorEmail}>`;
|
|
381688
381702
|
const settings = getInitialSettings();
|
|
@@ -381812,7 +381826,7 @@ async function getEnhancedPRAttribution(getAppState) {
|
|
|
381812
381826
|
if (settings.includeCoAuthoredBy === false) {
|
|
381813
381827
|
return "";
|
|
381814
381828
|
}
|
|
381815
|
-
const defaultAttribution = "\uD83E\uDD16 Generated with [OpenClaude](https://github.com/
|
|
381829
|
+
const defaultAttribution = "\uD83E\uDD16 Generated with [OpenClaude](https://github.com/AndersonBY/openclaude)";
|
|
381816
381830
|
const appState = getAppState();
|
|
381817
381831
|
logForDebugging(`PR Attribution: appState.attribution exists: ${!!appState.attribution}`);
|
|
381818
381832
|
if (appState.attribution) {
|
|
@@ -381835,7 +381849,7 @@ async function getEnhancedPRAttribution(getAppState) {
|
|
|
381835
381849
|
return defaultAttribution;
|
|
381836
381850
|
}
|
|
381837
381851
|
const memSuffix = memoryAccessCount > 0 ? `, ${memoryAccessCount} ${memoryAccessCount === 1 ? "memory" : "memories"} recalled` : "";
|
|
381838
|
-
const summary = `\uD83E\uDD16 Generated with [OpenClaude](https://github.com/
|
|
381852
|
+
const summary = `\uD83E\uDD16 Generated with [OpenClaude](https://github.com/AndersonBY/openclaude) (${claudePercent}% ${promptCount}-shotted by ${shortModelName}${memSuffix})`;
|
|
381839
381853
|
if (false) {}
|
|
381840
381854
|
logForDebugging(`PR Attribution: returning summary: ${summary}`);
|
|
381841
381855
|
return summary;
|
|
@@ -389329,7 +389343,7 @@ function getAnthropicEnvMetadata() {
|
|
|
389329
389343
|
function getBuildAgeMinutes() {
|
|
389330
389344
|
if (false)
|
|
389331
389345
|
;
|
|
389332
|
-
const buildTime = new Date("2026-05-
|
|
389346
|
+
const buildTime = new Date("2026-05-26T07:31:57.469Z").getTime();
|
|
389333
389347
|
if (isNaN(buildTime))
|
|
389334
389348
|
return;
|
|
389335
389349
|
return Math.floor((Date.now() - buildTime) / 60000);
|
|
@@ -405856,7 +405870,7 @@ function getAssistantMessageFromError(error42, model2, options2) {
|
|
|
405856
405870
|
if (process.env.USER_TYPE === "ant") {
|
|
405857
405871
|
const baseMessage = `API Error: 400 ${error42.message}
|
|
405858
405872
|
|
|
405859
|
-
Run /share and post the JSON file to ${"https://github.com/
|
|
405873
|
+
Run /share and post the JSON file to ${"https://github.com/AndersonBY/openclaude/issues"}.`;
|
|
405860
405874
|
const rewindInstruction = getIsNonInteractiveSession() ? "" : " Then, use /rewind to recover the conversation.";
|
|
405861
405875
|
return createAssistantAPIErrorMessage({
|
|
405862
405876
|
content: baseMessage + rewindInstruction,
|
|
@@ -405892,7 +405906,7 @@ Run /share and post the JSON file to ${"https://github.com/Gitlawb/openclaude/is
|
|
|
405892
405906
|
if (process.env.USER_TYPE === "ant" && !process.env.ANTHROPIC_MODEL && error42 instanceof Error && error42.message.toLowerCase().includes("invalid model name")) {
|
|
405893
405907
|
const orgId = getOauthAccountInfo()?.organizationUuid;
|
|
405894
405908
|
const baseMsg = `[internal] Your org isn't gated into the \`${model2}\` model. Either run \`claude\` with \`ANTHROPIC_MODEL=${getDefaultMainLoopModelSetting()}\``;
|
|
405895
|
-
const msg = orgId ? `${baseMsg} or share your orgId (${orgId}) in ${"https://github.com/
|
|
405909
|
+
const msg = orgId ? `${baseMsg} or share your orgId (${orgId}) in ${"https://github.com/AndersonBY/openclaude/issues"} for help getting access.` : `${baseMsg} or reach out in ${"https://github.com/AndersonBY/openclaude/issues"} for help getting access.`;
|
|
405896
405910
|
return createAssistantAPIErrorMessage({
|
|
405897
405911
|
content: msg,
|
|
405898
405912
|
error: "invalid_request"
|
|
@@ -414310,7 +414324,7 @@ async function submitFeedback(data, signal) {
|
|
|
414310
414324
|
};
|
|
414311
414325
|
}
|
|
414312
414326
|
}
|
|
414313
|
-
var import_react97, jsx_dev_runtime166, GITHUB_URL_LIMIT = 7250, GITHUB_ISSUES_REPO_URL = "https://github.com/
|
|
414327
|
+
var import_react97, jsx_dev_runtime166, GITHUB_URL_LIMIT = 7250, GITHUB_ISSUES_REPO_URL = "https://github.com/AndersonBY/openclaude/issues";
|
|
414314
414328
|
var init_Feedback = __esm(() => {
|
|
414315
414329
|
init_axios2();
|
|
414316
414330
|
init_state();
|
|
@@ -417468,7 +417482,7 @@ function buildPrimarySection() {
|
|
|
417468
417482
|
}, undefined, false, undefined, this);
|
|
417469
417483
|
return [{
|
|
417470
417484
|
label: "Version",
|
|
417471
|
-
value: "0.14.
|
|
417485
|
+
value: "0.14.4"
|
|
417472
417486
|
}, {
|
|
417473
417487
|
label: "Session name",
|
|
417474
417488
|
value: nameValue
|
|
@@ -432363,9 +432377,9 @@ function getReleaseTagUrl(version2 = publicBuildVersion) {
|
|
|
432363
432377
|
return `${OPENCLAUDE_RELEASES_URL}/tag/v${normalizePublicVersion(version2)}`;
|
|
432364
432378
|
}
|
|
432365
432379
|
function getPublicBuildVersion() {
|
|
432366
|
-
return "0.14.
|
|
432380
|
+
return "0.14.4";
|
|
432367
432381
|
}
|
|
432368
|
-
var import_semver9, OPENCLAUDE_RELEASES_URL = "https://github.com/
|
|
432382
|
+
var import_semver9, OPENCLAUDE_RELEASES_URL = "https://github.com/AndersonBY/openclaude/releases", fallbackBuildVersion, publicBuildVersion;
|
|
432369
432383
|
var init_version = __esm(() => {
|
|
432370
432384
|
import_semver9 = __toESM(require_semver2(), 1);
|
|
432371
432385
|
fallbackBuildVersion = (() => {
|
|
@@ -433229,7 +433243,7 @@ function HelpV2(t0) {
|
|
|
433229
433243
|
"For more help:",
|
|
433230
433244
|
" ",
|
|
433231
433245
|
/* @__PURE__ */ jsx_dev_runtime213.jsxDEV(Link, {
|
|
433232
|
-
url: "https://github.com/
|
|
433246
|
+
url: "https://github.com/AndersonBY/openclaude"
|
|
433233
433247
|
}, undefined, false, undefined, this)
|
|
433234
433248
|
]
|
|
433235
433249
|
}, undefined, true, undefined, this)
|
|
@@ -444561,7 +444575,7 @@ function MCPSettings(t0) {
|
|
|
444561
444575
|
return;
|
|
444562
444576
|
}
|
|
444563
444577
|
if (servers.length === 0 && agentMcpServers.length === 0) {
|
|
444564
|
-
onComplete("No MCP servers configured. Please run /doctor if this is unexpected. Otherwise, run `openclaude mcp --help` or visit https://github.com/
|
|
444578
|
+
onComplete("No MCP servers configured. Please run /doctor if this is unexpected. Otherwise, run `openclaude mcp --help` or visit https://github.com/AndersonBY/openclaude to learn more.");
|
|
444565
444579
|
}
|
|
444566
444580
|
};
|
|
444567
444581
|
t8 = [servers.length, filteredClients.length, agentMcpServers.length, onComplete];
|
|
@@ -459401,7 +459415,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = publicBuil
|
|
|
459401
459415
|
releaseNotes
|
|
459402
459416
|
};
|
|
459403
459417
|
}
|
|
459404
|
-
var import_semver10, MAX_RELEASE_NOTES_SHOWN = 5, RELEASES_API_URL = "https://api.github.com/repos/
|
|
459418
|
+
var import_semver10, MAX_RELEASE_NOTES_SHOWN = 5, RELEASES_API_URL = "https://api.github.com/repos/AndersonBY/openclaude/releases?per_page=10", SECTION_HEADER_PREFIX = "__section__:", changelogMemoryCache = null;
|
|
459405
459419
|
var init_releaseNotes = __esm(() => {
|
|
459406
459420
|
init_axios2();
|
|
459407
459421
|
init_state();
|
|
@@ -489376,7 +489390,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
489376
489390
|
var call66 = async () => {
|
|
489377
489391
|
return {
|
|
489378
489392
|
type: "text",
|
|
489379
|
-
value: `${"99.0.0"} (built ${"2026-05-
|
|
489393
|
+
value: `${"99.0.0"} (built ${"2026-05-26T07:31:57.469Z"})`
|
|
489380
489394
|
};
|
|
489381
489395
|
}, version2, version_default;
|
|
489382
489396
|
var init_version2 = __esm(() => {
|
|
@@ -512527,7 +512541,7 @@ function getSimpleDoingTasksSection() {
|
|
|
512527
512541
|
];
|
|
512528
512542
|
const userHelpSubitems = [
|
|
512529
512543
|
`/help: Get help with using OpenClaude`,
|
|
512530
|
-
`To give feedback, users should ${"report the issue at https://github.com/
|
|
512544
|
+
`To give feedback, users should ${"report the issue at https://github.com/AndersonBY/openclaude/issues"}`
|
|
512531
512545
|
];
|
|
512532
512546
|
const items = [
|
|
512533
512547
|
`The user will primarily request you to perform software engineering tasks. These may include solving bugs, adding new functionality, refactoring code, explaining code, and more. When given an unclear or generic instruction, consider it in the context of these software engineering tasks and the current working directory. For example, if the user asks you to change "methodName" to snake case, do not reply with just "method_name", instead find the method in the code and modify the code.`,
|
|
@@ -512860,7 +512874,7 @@ function getFunctionResultClearingSection(model2) {
|
|
|
512860
512874
|
|
|
512861
512875
|
Old tool results will be automatically cleared from context to free up space. The ${config3.keepRecent} most recent results are always kept.`;
|
|
512862
512876
|
}
|
|
512863
|
-
var getCachedMCConfigForFRC, DISCOVER_SKILLS_TOOL_NAME = null, CLAUDE_CODE_DOCS_MAP_URL2 = "https://github.com/
|
|
512877
|
+
var getCachedMCConfigForFRC, DISCOVER_SKILLS_TOOL_NAME = null, CLAUDE_CODE_DOCS_MAP_URL2 = "https://github.com/AndersonBY/openclaude", SYSTEM_PROMPT_DYNAMIC_BOUNDARY = "__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__", FRONTIER_MODEL_NAME = "Claude Opus 4.7", DEFAULT_AGENT_PROMPT = `You are an agent for OpenClaude, an open-source coding agent and CLI. Given the user's message, you should use the tools available to complete the task. Complete the task fully—don't gold-plate, but don't leave it half-done. When you complete the task, respond with a concise report covering what was done and any key findings — the caller will relay this to the user, so it only needs the essentials.`, SUMMARIZE_TOOL_RESULTS_SECTION = `When working with tool results, write down any important information you might need later in your response, as the original tool result may be cleared later.`;
|
|
512864
512878
|
var init_prompts4 = __esm(() => {
|
|
512865
512879
|
init_env();
|
|
512866
512880
|
init_git();
|
|
@@ -519100,7 +519114,7 @@ function detectStubLeaks() {
|
|
|
519100
519114
|
];
|
|
519101
519115
|
for (const { name, mod } of criticalImports) {
|
|
519102
519116
|
if ("__stub" in mod && mod.__stub === true) {
|
|
519103
|
-
throw new Error(`SDK init error: "${name}" resolved to a build stub at runtime. ` + `This means a TUI/CLI dependency leaked into the SDK bundle. ` + `Report this at https://github.com/
|
|
519117
|
+
throw new Error(`SDK init error: "${name}" resolved to a build stub at runtime. ` + `This means a TUI/CLI dependency leaked into the SDK bundle. ` + `Report this at https://github.com/AndersonBY/openclaude/issues`);
|
|
519104
519118
|
}
|
|
519105
519119
|
}
|
|
519106
519120
|
}
|
|
@@ -521834,7 +521848,7 @@ function printStartupScreen(modelOverride) {
|
|
|
521834
521848
|
const sLen = ` ● ${sL} Ready — type /help to begin`.length;
|
|
521835
521849
|
out.push(boxRow(sRow, W2, sLen, BORDER));
|
|
521836
521850
|
out.push(`${ansiRgb(...BORDER)}╚${"═".repeat(W2 - 2)}╝${RESET2}`);
|
|
521837
|
-
out.push(` ${DIM2}${ansiRgb(...DIMCOL)}openclaude ${RESET2}${ansiRgb(...ACCENT)}v${"0.14.
|
|
521851
|
+
out.push(` ${DIM2}${ansiRgb(...DIMCOL)}openclaude ${RESET2}${ansiRgb(...ACCENT)}v${"0.14.4"}${RESET2}`);
|
|
521838
521852
|
out.push("");
|
|
521839
521853
|
process.stdout.write(out.join(`
|
|
521840
521854
|
`) + `
|
|
@@ -540619,7 +540633,7 @@ function AutoUpdater({
|
|
|
540619
540633
|
" ",
|
|
540620
540634
|
/* @__PURE__ */ jsx_dev_runtime407.jsxDEV(ThemedText, {
|
|
540621
540635
|
bold: true,
|
|
540622
|
-
children: hasLocalInstall ? `cd ~/.openclaude/local && npm update ${"@
|
|
540636
|
+
children: hasLocalInstall ? `cd ~/.openclaude/local && npm update ${"@makerbi/openclaude"}` : `npm i -g ${"@makerbi/openclaude"}`
|
|
540623
540637
|
}, undefined, false, undefined, this)
|
|
540624
540638
|
]
|
|
540625
540639
|
}, undefined, true, undefined, this)
|
|
@@ -540830,7 +540844,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
540830
540844
|
}
|
|
540831
540845
|
const [channel, pm] = await Promise.all([Promise.resolve(getInitialSettings()?.autoUpdatesChannel ?? "latest"), getPackageManager()]);
|
|
540832
540846
|
setPackageManager(pm);
|
|
540833
|
-
let latest = await
|
|
540847
|
+
let latest = await getLatestVersionFromGitHubReleases(channel);
|
|
540834
540848
|
const maxVersion = await getMaxVersion();
|
|
540835
540849
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
540836
540850
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
@@ -566248,7 +566262,7 @@ async function _temp224() {
|
|
|
566248
566262
|
priority: "high"
|
|
566249
566263
|
};
|
|
566250
566264
|
}
|
|
566251
|
-
var NPM_DEPRECATION_MESSAGE = "OpenClaude has switched from npm to the native installer. Run `openclaude install` or see https://github.com/
|
|
566265
|
+
var NPM_DEPRECATION_MESSAGE = "OpenClaude has switched from npm to the native installer. Run `openclaude install` or see https://github.com/AndersonBY/openclaude#quick-start for more options.";
|
|
566252
566266
|
var init_useNpmDeprecationNotification = __esm(() => {
|
|
566253
566267
|
init_doctorDiagnostic();
|
|
566254
566268
|
init_envUtils();
|
|
@@ -573145,7 +573159,7 @@ function WelcomeV2() {
|
|
|
573145
573159
|
dimColor: true,
|
|
573146
573160
|
children: [
|
|
573147
573161
|
"v",
|
|
573148
|
-
"0.14.
|
|
573162
|
+
"0.14.4",
|
|
573149
573163
|
" "
|
|
573150
573164
|
]
|
|
573151
573165
|
}, undefined, true, undefined, this)
|
|
@@ -573345,7 +573359,7 @@ function WelcomeV2() {
|
|
|
573345
573359
|
dimColor: true,
|
|
573346
573360
|
children: [
|
|
573347
573361
|
"v",
|
|
573348
|
-
"0.14.
|
|
573362
|
+
"0.14.4",
|
|
573349
573363
|
" "
|
|
573350
573364
|
]
|
|
573351
573365
|
}, undefined, true, undefined, this)
|
|
@@ -573571,7 +573585,7 @@ function AppleTerminalWelcomeV2(t0) {
|
|
|
573571
573585
|
dimColor: true,
|
|
573572
573586
|
children: [
|
|
573573
573587
|
"v",
|
|
573574
|
-
"0.14.
|
|
573588
|
+
"0.14.4",
|
|
573575
573589
|
" "
|
|
573576
573590
|
]
|
|
573577
573591
|
}, undefined, true, undefined, this);
|
|
@@ -573825,7 +573839,7 @@ function AppleTerminalWelcomeV2(t0) {
|
|
|
573825
573839
|
dimColor: true,
|
|
573826
573840
|
children: [
|
|
573827
573841
|
"v",
|
|
573828
|
-
"0.14.
|
|
573842
|
+
"0.14.4",
|
|
573829
573843
|
" "
|
|
573830
573844
|
]
|
|
573831
573845
|
}, undefined, true, undefined, this);
|
|
@@ -591370,10 +591384,10 @@ __export(exports_update, {
|
|
|
591370
591384
|
async function update() {
|
|
591371
591385
|
if (getAPIProvider() !== "firstParty") {
|
|
591372
591386
|
writeToStdout(source_default.yellow(`Auto-update is not available for third-party provider builds.
|
|
591373
|
-
`) + `Current version: ${"0.14.
|
|
591387
|
+
`) + `Current version: ${"0.14.4"}
|
|
591374
591388
|
|
|
591375
591389
|
` + `To update, reinstall from npm:
|
|
591376
|
-
` + source_default.bold(` npm install -g ${"@
|
|
591390
|
+
` + source_default.bold(` npm install -g ${"@makerbi/openclaude"}@latest`) + `
|
|
591377
591391
|
|
|
591378
591392
|
` + `Or, if you built from source, pull and rebuild:
|
|
591379
591393
|
` + source_default.bold(" git pull && bun install && bun run build") + `
|
|
@@ -591381,7 +591395,7 @@ async function update() {
|
|
|
591381
591395
|
await gracefulShutdown(0);
|
|
591382
591396
|
}
|
|
591383
591397
|
logEvent("tengu_update_check", {});
|
|
591384
|
-
writeToStdout(`Current version: ${"0.14.
|
|
591398
|
+
writeToStdout(`Current version: ${"0.14.4"}
|
|
591385
591399
|
`);
|
|
591386
591400
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
591387
591401
|
writeToStdout(`Checking for updates to ${channel} version...
|
|
@@ -591454,7 +591468,7 @@ async function update() {
|
|
|
591454
591468
|
`);
|
|
591455
591469
|
writeToStdout(`Or reinstall from npm:
|
|
591456
591470
|
`);
|
|
591457
|
-
writeToStdout(source_default.bold(` npm install -g ${"@
|
|
591471
|
+
writeToStdout(source_default.bold(` npm install -g ${"@makerbi/openclaude"}@latest`) + `
|
|
591458
591472
|
`);
|
|
591459
591473
|
await gracefulShutdown(0);
|
|
591460
591474
|
}
|
|
@@ -591466,8 +591480,8 @@ async function update() {
|
|
|
591466
591480
|
writeToStdout(`Claude is managed by Homebrew.
|
|
591467
591481
|
`);
|
|
591468
591482
|
const latest = await getLatestVersion(channel);
|
|
591469
|
-
if (latest && !gte("0.14.
|
|
591470
|
-
writeToStdout(`Update available: ${"0.14.
|
|
591483
|
+
if (latest && !gte("0.14.4", latest)) {
|
|
591484
|
+
writeToStdout(`Update available: ${"0.14.4"} → ${latest}
|
|
591471
591485
|
`);
|
|
591472
591486
|
writeToStdout(`
|
|
591473
591487
|
`);
|
|
@@ -591483,8 +591497,8 @@ async function update() {
|
|
|
591483
591497
|
writeToStdout(`Claude is managed by winget.
|
|
591484
591498
|
`);
|
|
591485
591499
|
const latest = await getLatestVersion(channel);
|
|
591486
|
-
if (latest && !gte("0.14.
|
|
591487
|
-
writeToStdout(`Update available: ${"0.14.
|
|
591500
|
+
if (latest && !gte("0.14.4", latest)) {
|
|
591501
|
+
writeToStdout(`Update available: ${"0.14.4"} → ${latest}
|
|
591488
591502
|
`);
|
|
591489
591503
|
writeToStdout(`
|
|
591490
591504
|
`);
|
|
@@ -591500,8 +591514,8 @@ async function update() {
|
|
|
591500
591514
|
writeToStdout(`Claude is managed by apk.
|
|
591501
591515
|
`);
|
|
591502
591516
|
const latest = await getLatestVersion(channel);
|
|
591503
|
-
if (latest && !gte("0.14.
|
|
591504
|
-
writeToStdout(`Update available: ${"0.14.
|
|
591517
|
+
if (latest && !gte("0.14.4", latest)) {
|
|
591518
|
+
writeToStdout(`Update available: ${"0.14.4"} → ${latest}
|
|
591505
591519
|
`);
|
|
591506
591520
|
writeToStdout(`
|
|
591507
591521
|
`);
|
|
@@ -591566,11 +591580,11 @@ async function update() {
|
|
|
591566
591580
|
`);
|
|
591567
591581
|
await gracefulShutdown(1);
|
|
591568
591582
|
}
|
|
591569
|
-
if (result.latestVersion === "0.14.
|
|
591570
|
-
writeToStdout(source_default.green(`OpenClaude is up to date (${"0.14.
|
|
591583
|
+
if (result.latestVersion === "0.14.4") {
|
|
591584
|
+
writeToStdout(source_default.green(`OpenClaude is up to date (${"0.14.4"})`) + `
|
|
591571
591585
|
`);
|
|
591572
591586
|
} else {
|
|
591573
|
-
writeToStdout(source_default.green(`Successfully updated from ${"0.14.
|
|
591587
|
+
writeToStdout(source_default.green(`Successfully updated from ${"0.14.4"} to version ${result.latestVersion}`) + `
|
|
591574
591588
|
`);
|
|
591575
591589
|
await regenerateCompletionCache();
|
|
591576
591590
|
}
|
|
@@ -591589,9 +591603,9 @@ async function update() {
|
|
|
591589
591603
|
await removeInstalledSymlink();
|
|
591590
591604
|
}
|
|
591591
591605
|
logForDebugging("update: Checking npm registry for latest version");
|
|
591592
|
-
logForDebugging(`update: Package URL: ${"@
|
|
591606
|
+
logForDebugging(`update: Package URL: ${"@makerbi/openclaude"}`);
|
|
591593
591607
|
const npmTag = channel === "stable" ? "stable" : "latest";
|
|
591594
|
-
const npmCommand = `npm view ${"@
|
|
591608
|
+
const npmCommand = `npm view ${"@makerbi/openclaude"}@${npmTag} version`;
|
|
591595
591609
|
logForDebugging(`update: Running: ${npmCommand}`);
|
|
591596
591610
|
const latestVersion = await getLatestVersion(channel);
|
|
591597
591611
|
logForDebugging(`update: Latest version from npm: ${latestVersion || "FAILED"}`);
|
|
@@ -591611,7 +591625,7 @@ async function update() {
|
|
|
591611
591625
|
`);
|
|
591612
591626
|
process.stderr.write(` • Corporate proxy/firewall blocking npm
|
|
591613
591627
|
`);
|
|
591614
|
-
if (!"@
|
|
591628
|
+
if (!"@makerbi/openclaude".startsWith("@anthropic")) {
|
|
591615
591629
|
process.stderr.write(` • Internal/development build not published to npm
|
|
591616
591630
|
`);
|
|
591617
591631
|
}
|
|
@@ -591623,19 +591637,19 @@ async function update() {
|
|
|
591623
591637
|
`);
|
|
591624
591638
|
process.stderr.write(` • Run with --debug flag for more details
|
|
591625
591639
|
`);
|
|
591626
|
-
const packageName = "@
|
|
591640
|
+
const packageName = "@makerbi/openclaude";
|
|
591627
591641
|
process.stderr.write(` • Manually check: npm view ${packageName} version
|
|
591628
591642
|
`);
|
|
591629
591643
|
process.stderr.write(` • Check if you need to login: npm whoami
|
|
591630
591644
|
`);
|
|
591631
591645
|
await gracefulShutdown(1);
|
|
591632
591646
|
}
|
|
591633
|
-
if (latestVersion === "0.14.
|
|
591634
|
-
writeToStdout(source_default.green(`OpenClaude is up to date (${"0.14.
|
|
591647
|
+
if (latestVersion === "0.14.4") {
|
|
591648
|
+
writeToStdout(source_default.green(`OpenClaude is up to date (${"0.14.4"})`) + `
|
|
591635
591649
|
`);
|
|
591636
591650
|
await gracefulShutdown(0);
|
|
591637
591651
|
}
|
|
591638
|
-
writeToStdout(`New version available: ${latestVersion} (current: ${"0.14.
|
|
591652
|
+
writeToStdout(`New version available: ${latestVersion} (current: ${"0.14.4"})
|
|
591639
591653
|
`);
|
|
591640
591654
|
writeToStdout(`Installing update...
|
|
591641
591655
|
`);
|
|
@@ -591680,7 +591694,7 @@ async function update() {
|
|
|
591680
591694
|
logForDebugging(`update: Installation status: ${status2}`);
|
|
591681
591695
|
switch (status2) {
|
|
591682
591696
|
case "success":
|
|
591683
|
-
writeToStdout(source_default.green(`Successfully updated from ${"0.14.
|
|
591697
|
+
writeToStdout(source_default.green(`Successfully updated from ${"0.14.4"} to version ${latestVersion}`) + `
|
|
591684
591698
|
`);
|
|
591685
591699
|
await regenerateCompletionCache();
|
|
591686
591700
|
break;
|
|
@@ -591690,7 +591704,7 @@ async function update() {
|
|
|
591690
591704
|
if (useLocalUpdate) {
|
|
591691
591705
|
process.stderr.write(`Try manually updating with:
|
|
591692
591706
|
`);
|
|
591693
|
-
process.stderr.write(` cd ~/.openclaude/local && npm update ${"@
|
|
591707
|
+
process.stderr.write(` cd ~/.openclaude/local && npm update ${"@makerbi/openclaude"}
|
|
591694
591708
|
`);
|
|
591695
591709
|
} else {
|
|
591696
591710
|
process.stderr.write(`Try running with sudo or fix npm permissions
|
|
@@ -591706,7 +591720,7 @@ async function update() {
|
|
|
591706
591720
|
if (useLocalUpdate) {
|
|
591707
591721
|
process.stderr.write(`Try manually updating with:
|
|
591708
591722
|
`);
|
|
591709
|
-
process.stderr.write(` cd ~/.openclaude/local && npm update ${"@
|
|
591723
|
+
process.stderr.write(` cd ~/.openclaude/local && npm update ${"@makerbi/openclaude"}
|
|
591710
591724
|
`);
|
|
591711
591725
|
} else {
|
|
591712
591726
|
process.stderr.write(`Or consider using native installation with: openclaude install
|
|
@@ -593733,7 +593747,7 @@ Usage: openclaude --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
593733
593747
|
pendingHookMessages
|
|
593734
593748
|
}, renderAndRun);
|
|
593735
593749
|
}
|
|
593736
|
-
}).version("0.14.
|
|
593750
|
+
}).version("0.14.4 (OpenClaude)", "-v, --version", "Output the version number");
|
|
593737
593751
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
593738
593752
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
593739
593753
|
if (canUserConfigureAdvisor()) {
|
|
@@ -594310,7 +594324,7 @@ if (false) {}
|
|
|
594310
594324
|
async function main2() {
|
|
594311
594325
|
const args = process.argv.slice(2);
|
|
594312
594326
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
594313
|
-
console.log(`${"0.14.
|
|
594327
|
+
console.log(`${"0.14.4"} (OpenClaude)`);
|
|
594314
594328
|
return;
|
|
594315
594329
|
}
|
|
594316
594330
|
if (args.includes("--provider")) {
|
|
@@ -594463,4 +594477,4 @@ async function main2() {
|
|
|
594463
594477
|
}
|
|
594464
594478
|
main2();
|
|
594465
594479
|
|
|
594466
|
-
//# debugId=
|
|
594480
|
+
//# debugId=02DA328B8C421E2764756E2164756E21
|
package/dist/sdk.mjs
CHANGED
|
@@ -35454,7 +35454,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
35454
35454
|
if (!isAttributionHeaderEnabled()) {
|
|
35455
35455
|
return "";
|
|
35456
35456
|
}
|
|
35457
|
-
const version = `${"0.14.
|
|
35457
|
+
const version = `${"0.14.4"}.${fingerprint}`;
|
|
35458
35458
|
const entrypoint = process.env.CLAUDE_CODE_ENTRYPOINT ?? "unknown";
|
|
35459
35459
|
const cch = "";
|
|
35460
35460
|
const workload = getWorkload();
|
|
@@ -108025,7 +108025,7 @@ async function _executeApiKeyHelper(isNonInteractiveSession) {
|
|
|
108025
108025
|
if (isApiKeyHelperFromProjectOrLocalSettings()) {
|
|
108026
108026
|
const hasTrust = checkHasTrustDialogAccepted();
|
|
108027
108027
|
if (!hasTrust && !isNonInteractiveSession) {
|
|
108028
|
-
const error40 = new Error(`Security: apiKeyHelper executed before workspace trust is confirmed. If you see this message, post in ${"https://github.com/
|
|
108028
|
+
const error40 = new Error(`Security: apiKeyHelper executed before workspace trust is confirmed. If you see this message, post in ${"https://github.com/AndersonBY/openclaude/issues"}.`);
|
|
108029
108029
|
logAntError("apiKeyHelper invoked before trust check", error40);
|
|
108030
108030
|
logEvent("tengu_apiKeyHelper_missing_trust11", {});
|
|
108031
108031
|
return null;
|
|
@@ -108069,7 +108069,7 @@ async function runAwsAuthRefresh() {
|
|
|
108069
108069
|
if (isAwsAuthRefreshFromProjectSettings()) {
|
|
108070
108070
|
const hasTrust = checkHasTrustDialogAccepted();
|
|
108071
108071
|
if (!hasTrust && !getIsNonInteractiveSession()) {
|
|
108072
|
-
const error40 = new Error(`Security: awsAuthRefresh executed before workspace trust is confirmed. If you see this message, post in ${"https://github.com/
|
|
108072
|
+
const error40 = new Error(`Security: awsAuthRefresh executed before workspace trust is confirmed. If you see this message, post in ${"https://github.com/AndersonBY/openclaude/issues"}.`);
|
|
108073
108073
|
logAntError("awsAuthRefresh invoked before trust check", error40);
|
|
108074
108074
|
logEvent("tengu_awsAuthRefresh_missing_trust", {});
|
|
108075
108075
|
return false;
|
|
@@ -108129,7 +108129,7 @@ async function getAwsCredsFromCredentialExport() {
|
|
|
108129
108129
|
if (isAwsCredentialExportFromProjectSettings()) {
|
|
108130
108130
|
const hasTrust = checkHasTrustDialogAccepted();
|
|
108131
108131
|
if (!hasTrust && !getIsNonInteractiveSession()) {
|
|
108132
|
-
const error40 = new Error(`Security: awsCredentialExport executed before workspace trust is confirmed. If you see this message, post in ${"https://github.com/
|
|
108132
|
+
const error40 = new Error(`Security: awsCredentialExport executed before workspace trust is confirmed. If you see this message, post in ${"https://github.com/AndersonBY/openclaude/issues"}.`);
|
|
108133
108133
|
logAntError("awsCredentialExport invoked before trust check", error40);
|
|
108134
108134
|
logEvent("tengu_awsCredentialExport_missing_trust", {});
|
|
108135
108135
|
return null;
|
|
@@ -108214,7 +108214,7 @@ async function runGcpAuthRefresh() {
|
|
|
108214
108214
|
if (isGcpAuthRefreshFromProjectSettings()) {
|
|
108215
108215
|
const hasTrust = checkHasTrustDialogAccepted();
|
|
108216
108216
|
if (!hasTrust && !getIsNonInteractiveSession()) {
|
|
108217
|
-
const error40 = new Error("Security: gcpAuthRefresh executed before workspace trust is confirmed. If you see this message, post in https://github.com/
|
|
108217
|
+
const error40 = new Error("Security: gcpAuthRefresh executed before workspace trust is confirmed. If you see this message, post in https://github.com/AndersonBY/openclaude/issues.");
|
|
108218
108218
|
logAntError("gcpAuthRefresh invoked before trust check", error40);
|
|
108219
108219
|
logEvent("tengu_gcpAuthRefresh_missing_trust", {});
|
|
108220
108220
|
return false;
|
|
@@ -110698,7 +110698,7 @@ var init_metadata = __esm(() => {
|
|
|
110698
110698
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
110699
110699
|
WHITESPACE_REGEX = /\s+/;
|
|
110700
110700
|
getVersionBase = memoize_default(() => {
|
|
110701
|
-
const match = "0.14.
|
|
110701
|
+
const match = "0.14.4".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
110702
110702
|
return match ? match[0] : undefined;
|
|
110703
110703
|
});
|
|
110704
110704
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -110738,9 +110738,9 @@ var init_metadata = __esm(() => {
|
|
|
110738
110738
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
110739
110739
|
isClaudeCodeAction: isEnvTruthy(process.env.CLAUDE_CODE_ACTION),
|
|
110740
110740
|
isClaudeAiAuth: isClaudeAISubscriber(),
|
|
110741
|
-
version: "0.14.
|
|
110741
|
+
version: "0.14.4",
|
|
110742
110742
|
versionBase: getVersionBase(),
|
|
110743
|
-
buildTime: "2026-05-
|
|
110743
|
+
buildTime: "2026-05-26T07:31:59.051Z",
|
|
110744
110744
|
deploymentEnvironment: env2.detectDeploymentEnvironment(),
|
|
110745
110745
|
...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
|
|
110746
110746
|
githubEventName: process.env.GITHUB_EVENT_NAME,
|
|
@@ -118949,7 +118949,7 @@ var init_effort = __esm(() => {
|
|
|
118949
118949
|
|
|
118950
118950
|
// src/utils/userAgent.ts
|
|
118951
118951
|
function getClaudeCodeUserAgent() {
|
|
118952
|
-
return `claude-code/${"0.14.
|
|
118952
|
+
return `claude-code/${"0.14.4"}`;
|
|
118953
118953
|
}
|
|
118954
118954
|
|
|
118955
118955
|
// src/utils/http.ts
|
|
@@ -118958,7 +118958,7 @@ function getUserAgent() {
|
|
|
118958
118958
|
const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
|
|
118959
118959
|
const workload = getWorkload();
|
|
118960
118960
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
118961
|
-
return `claude-cli/${"0.14.
|
|
118961
|
+
return `claude-cli/${"0.14.4"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
118962
118962
|
}
|
|
118963
118963
|
function getMCPUserAgent() {
|
|
118964
118964
|
const parts = [];
|
|
@@ -118972,10 +118972,10 @@ function getMCPUserAgent() {
|
|
|
118972
118972
|
parts.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`);
|
|
118973
118973
|
}
|
|
118974
118974
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
118975
|
-
return `claude-code/${"0.14.
|
|
118975
|
+
return `claude-code/${"0.14.4"}${suffix}`;
|
|
118976
118976
|
}
|
|
118977
118977
|
function getWebFetchUserAgent() {
|
|
118978
|
-
const supportUrl = getAPIProvider() === "firstParty" ? "https://support.anthropic.com/" : "https://github.com/
|
|
118978
|
+
const supportUrl = getAPIProvider() === "firstParty" ? "https://support.anthropic.com/" : "https://github.com/AndersonBY/openclaude";
|
|
118979
118979
|
return `Claude-User (${getClaudeCodeUserAgent()}; +${supportUrl})`;
|
|
118980
118980
|
}
|
|
118981
118981
|
var init_http2 = __esm(() => {
|
|
@@ -151379,7 +151379,7 @@ async function getMcpHeadersFromHelper(serverName, config2) {
|
|
|
151379
151379
|
if ("scope" in config2 && isMcpServerFromProjectOrLocalSettings(config2) && !getIsNonInteractiveSession()) {
|
|
151380
151380
|
const hasTrust = checkHasTrustDialogAccepted();
|
|
151381
151381
|
if (!hasTrust) {
|
|
151382
|
-
const error40 = new Error(`Security: headersHelper for MCP server '${serverName}' executed before workspace trust is confirmed. If you see this message, post in ${"https://github.com/
|
|
151382
|
+
const error40 = new Error(`Security: headersHelper for MCP server '${serverName}' executed before workspace trust is confirmed. If you see this message, post in ${"https://github.com/AndersonBY/openclaude/issues"}.`);
|
|
151383
151383
|
logAntError("MCP headersHelper invoked before trust check", error40);
|
|
151384
151384
|
logEvent("tengu_mcp_headersHelper_missing_trust", {});
|
|
151385
151385
|
return null;
|
|
@@ -154378,7 +154378,7 @@ function computeFingerprint(messageText, version2) {
|
|
|
154378
154378
|
}
|
|
154379
154379
|
function computeFingerprintFromMessages(messages) {
|
|
154380
154380
|
const firstMessageText = extractFirstMessageText(messages);
|
|
154381
|
-
return computeFingerprint(firstMessageText, "0.14.
|
|
154381
|
+
return computeFingerprint(firstMessageText, "0.14.4");
|
|
154382
154382
|
}
|
|
154383
154383
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
154384
154384
|
var init_fingerprint = () => {};
|
|
@@ -154420,7 +154420,7 @@ async function sideQuery(opts) {
|
|
|
154420
154420
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
154421
154421
|
}
|
|
154422
154422
|
const messageText = extractFirstUserMessageText(messages);
|
|
154423
|
-
const fingerprint = computeFingerprint(messageText, "0.14.
|
|
154423
|
+
const fingerprint = computeFingerprint(messageText, "0.14.4");
|
|
154424
154424
|
const attributionHeader = getAttributionHeader(fingerprint);
|
|
154425
154425
|
const systemBlocks = [
|
|
154426
154426
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -155665,7 +155665,7 @@ var init_client2 = __esm(() => {
|
|
|
155665
155665
|
const client = new Client({
|
|
155666
155666
|
name: "claude-code",
|
|
155667
155667
|
title: "OpenClaude",
|
|
155668
|
-
version: "0.14.
|
|
155668
|
+
version: "0.14.4",
|
|
155669
155669
|
description: "OpenClaude — coding-agent CLI for any LLM provider",
|
|
155670
155670
|
websiteUrl: PRODUCT_URL
|
|
155671
155671
|
}, {
|
|
@@ -164707,7 +164707,7 @@ function getAttributionTexts() {
|
|
|
164707
164707
|
apiProvider,
|
|
164708
164708
|
isInternalRepo: isInternalModelRepoCached()
|
|
164709
164709
|
});
|
|
164710
|
-
const defaultAttribution = "\uD83E\uDD16 Generated with [OpenClaude](https://github.com/
|
|
164710
|
+
const defaultAttribution = "\uD83E\uDD16 Generated with [OpenClaude](https://github.com/AndersonBY/openclaude)";
|
|
164711
164711
|
const coAuthorEmail = getDefaultCommitCoAuthorEmail(apiProvider);
|
|
164712
164712
|
const defaultCommit = isEnvTruthy(process.env.OPENCLAUDE_DISABLE_CO_AUTHORED_BY) ? "" : `Co-Authored-By: ${modelName} <${coAuthorEmail}>`;
|
|
164713
164713
|
const settings = getInitialSettings();
|
|
@@ -230973,7 +230973,7 @@ function getAnthropicEnvMetadata() {
|
|
|
230973
230973
|
function getBuildAgeMinutes() {
|
|
230974
230974
|
if (false)
|
|
230975
230975
|
;
|
|
230976
|
-
const buildTime = new Date("2026-05-
|
|
230976
|
+
const buildTime = new Date("2026-05-26T07:31:59.051Z").getTime();
|
|
230977
230977
|
if (isNaN(buildTime))
|
|
230978
230978
|
return;
|
|
230979
230979
|
return Math.floor((Date.now() - buildTime) / 60000);
|
|
@@ -239267,7 +239267,7 @@ function getClaudeCodeGuideBasePrompt() {
|
|
|
239267
239267
|
Complete the user's request by providing accurate, documentation-based guidance.`;
|
|
239268
239268
|
}
|
|
239269
239269
|
function getFeedbackGuideline() {
|
|
239270
|
-
return `- When you cannot find an answer or the feature doesn't exist, direct the user to ${"report the issue at https://github.com/
|
|
239270
|
+
return `- When you cannot find an answer or the feature doesn't exist, direct the user to ${"report the issue at https://github.com/AndersonBY/openclaude/issues"}`;
|
|
239271
239271
|
}
|
|
239272
239272
|
var CLAUDE_CODE_DOCS_MAP_URL = "https://code.claude.com/docs/en/claude_code_docs_map.md", CDP_DOCS_MAP_URL = "https://platform.claude.com/llms.txt", CLAUDE_CODE_GUIDE_AGENT_TYPE = "claude-code-guide", CLAUDE_CODE_GUIDE_AGENT;
|
|
239273
239273
|
var init_claudeCodeGuideAgent = __esm(() => {
|
|
@@ -253771,7 +253771,7 @@ function getAssistantMessageFromError(error41, model2, options2) {
|
|
|
253771
253771
|
if (process.env.USER_TYPE === "ant") {
|
|
253772
253772
|
const baseMessage = `API Error: 400 ${error41.message}
|
|
253773
253773
|
|
|
253774
|
-
Run /share and post the JSON file to ${"https://github.com/
|
|
253774
|
+
Run /share and post the JSON file to ${"https://github.com/AndersonBY/openclaude/issues"}.`;
|
|
253775
253775
|
const rewindInstruction = getIsNonInteractiveSession() ? "" : " Then, use /rewind to recover the conversation.";
|
|
253776
253776
|
return createAssistantAPIErrorMessage({
|
|
253777
253777
|
content: baseMessage + rewindInstruction,
|
|
@@ -253807,7 +253807,7 @@ Run /share and post the JSON file to ${"https://github.com/Gitlawb/openclaude/is
|
|
|
253807
253807
|
if (process.env.USER_TYPE === "ant" && !process.env.ANTHROPIC_MODEL && error41 instanceof Error && error41.message.toLowerCase().includes("invalid model name")) {
|
|
253808
253808
|
const orgId = getOauthAccountInfo()?.organizationUuid;
|
|
253809
253809
|
const baseMsg = `[internal] Your org isn't gated into the \`${model2}\` model. Either run \`claude\` with \`ANTHROPIC_MODEL=${getDefaultMainLoopModelSetting()}\``;
|
|
253810
|
-
const msg = orgId ? `${baseMsg} or share your orgId (${orgId}) in ${"https://github.com/
|
|
253810
|
+
const msg = orgId ? `${baseMsg} or share your orgId (${orgId}) in ${"https://github.com/AndersonBY/openclaude/issues"} for help getting access.` : `${baseMsg} or reach out in ${"https://github.com/AndersonBY/openclaude/issues"} for help getting access.`;
|
|
253811
253811
|
return createAssistantAPIErrorMessage({
|
|
253812
253812
|
content: msg,
|
|
253813
253813
|
error: "invalid_request"
|
|
@@ -264876,7 +264876,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
264876
264876
|
init_settings2();
|
|
264877
264877
|
init_slowOperations();
|
|
264878
264878
|
init_uuid();
|
|
264879
|
-
VERSION3 = typeof MACRO !== "undefined" ? "0.14.
|
|
264879
|
+
VERSION3 = typeof MACRO !== "undefined" ? "0.14.4" : "unknown";
|
|
264880
264880
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
264881
264881
|
SKIP_FIRST_PROMPT_PATTERN2 = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
264882
264882
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -266178,7 +266178,7 @@ var init_filesystem = __esm(() => {
|
|
|
266178
266178
|
});
|
|
266179
266179
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
266180
266180
|
const nonce = randomBytes7(16).toString("hex");
|
|
266181
|
-
return join80(getClaudeTempDir(), "bundled-skills", "0.14.
|
|
266181
|
+
return join80(getClaudeTempDir(), "bundled-skills", "0.14.4", nonce);
|
|
266182
266182
|
});
|
|
266183
266183
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
266184
266184
|
});
|
|
@@ -272100,7 +272100,7 @@ function getSimpleDoingTasksSection() {
|
|
|
272100
272100
|
];
|
|
272101
272101
|
const userHelpSubitems = [
|
|
272102
272102
|
`/help: Get help with using OpenClaude`,
|
|
272103
|
-
`To give feedback, users should ${"report the issue at https://github.com/
|
|
272103
|
+
`To give feedback, users should ${"report the issue at https://github.com/AndersonBY/openclaude/issues"}`
|
|
272104
272104
|
];
|
|
272105
272105
|
const items = [
|
|
272106
272106
|
`The user will primarily request you to perform software engineering tasks. These may include solving bugs, adding new functionality, refactoring code, explaining code, and more. When given an unclear or generic instruction, consider it in the context of these software engineering tasks and the current working directory. For example, if the user asks you to change "methodName" to snake case, do not reply with just "method_name", instead find the method in the code and modify the code.`,
|
|
@@ -281352,7 +281352,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
281352
281352
|
slash_commands: inputs.commands.filter((c7) => c7.userInvocable !== false).map((c7) => c7.name),
|
|
281353
281353
|
apiKeySource: getAnthropicApiKeyWithSource().source,
|
|
281354
281354
|
betas: getSdkBetas2(),
|
|
281355
|
-
claude_code_version: "0.14.
|
|
281355
|
+
claude_code_version: "0.14.4",
|
|
281356
281356
|
output_style: outputStyle,
|
|
281357
281357
|
agents: inputs.agents.map((agent2) => agent2.agentType),
|
|
281358
281358
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
|
|
@@ -285344,7 +285344,7 @@ function detectStubLeaks() {
|
|
|
285344
285344
|
];
|
|
285345
285345
|
for (const { name, mod } of criticalImports) {
|
|
285346
285346
|
if ("__stub" in mod && mod.__stub === true) {
|
|
285347
|
-
throw new Error(`SDK init error: "${name}" resolved to a build stub at runtime. ` + `This means a TUI/CLI dependency leaked into the SDK bundle. ` + `Report this at https://github.com/
|
|
285347
|
+
throw new Error(`SDK init error: "${name}" resolved to a build stub at runtime. ` + `This means a TUI/CLI dependency leaked into the SDK bundle. ` + `Report this at https://github.com/AndersonBY/openclaude/issues`);
|
|
285348
285348
|
}
|
|
285349
285349
|
}
|
|
285350
285350
|
}
|
|
@@ -285404,4 +285404,4 @@ export {
|
|
|
285404
285404
|
AbortError
|
|
285405
285405
|
};
|
|
285406
285406
|
|
|
285407
|
-
//# debugId=
|
|
285407
|
+
//# debugId=FDC074FB5D5D9C5164756E2164756E21
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@makerbi/openclaude",
|
|
3
|
-
"version": "0.14.
|
|
3
|
+
"version": "0.14.4",
|
|
4
4
|
"description": "OpenClaude opens coding-agent workflows to any LLM — OpenAI, Gemini, DeepSeek, Ollama, and 200+ models",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
],
|
|
25
25
|
"scripts": {
|
|
26
26
|
"build": "bun run scripts/build.ts",
|
|
27
|
+
"build:native:manifest": "bun run scripts/native-release-manifest.ts native-dist",
|
|
27
28
|
"integrations:generate": "bun run scripts/generate-integrations-artifacts.ts",
|
|
28
29
|
"integrations:check": "bun run scripts/generate-integrations-artifacts.ts --check",
|
|
29
30
|
"dev": "bun run build && node dist/cli.mjs",
|
package/src/entrypoints/sdk.d.ts
CHANGED