happy-imou-cloud 2.0.6 → 2.0.8
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/bin/happy-cloud.mjs +1 -1
- package/dist/{api-DccDghmF.cjs → api-CN-WqYd_.cjs} +3 -4
- package/dist/{api-Emo3rSZH.mjs → api-D-uiH_TF.mjs} +3 -4
- package/dist/{command-D8Zz6B4t.mjs → command-DGFsZx58.mjs} +3 -3
- package/dist/{command-C2v0VkPq.cjs → command-DjIfRZQS.cjs} +3 -3
- package/dist/{index-Buq7nurH.cjs → index-DM6z3aeG.cjs} +189 -27
- package/dist/{index-Dh8UTgm4.mjs → index-DhheEtRl.mjs} +187 -25
- package/dist/index.cjs +3 -3
- package/dist/index.mjs +3 -3
- package/dist/lib.cjs +1 -1
- package/dist/lib.mjs +1 -1
- package/dist/{BaseReasoningProcessor-1EzrE03x.mjs → names-BjEof0E2.mjs} +98 -3
- package/dist/{BaseReasoningProcessor-BMyfwx3p.cjs → names-BnV67N_O.cjs} +100 -2
- package/dist/{persistence-BrTyBuT7.cjs → persistence-DBGkO8gB.cjs} +110 -1
- package/dist/{persistence-Blm1hTQA.mjs → persistence-DiNg1DPF.mjs} +100 -4
- package/dist/{registerKillSessionHandler-EFAsOnR_.cjs → registerKillSessionHandler-CYc0SIjF.cjs} +26 -2
- package/dist/{registerKillSessionHandler-Bm7E-03E.mjs → registerKillSessionHandler-Cu9rHGsI.mjs} +26 -2
- package/dist/{runClaude-COy1pLhn.cjs → runClaude-CPhWaFrX.cjs} +5 -5
- package/dist/{runClaude-CwA5UCO-.mjs → runClaude-DAR_hw3C.mjs} +4 -4
- package/dist/{runCodex-BRMOT2dJ.cjs → runCodex--QLrOs8X.cjs} +53 -82
- package/dist/{runCodex-DTPmqCyS.mjs → runCodex-B4QAb-Go.mjs} +35 -63
- package/dist/{runGemini-BVPmTGxQ.cjs → runGemini-CDyhCucw.cjs} +20 -21
- package/dist/{runGemini-DDSR8BtO.mjs → runGemini-DqowSR2w.mjs} +5 -6
- package/package.json +3 -4
- package/scripts/build.mjs +66 -0
- package/scripts/release-smoke.mjs +166 -30
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
var os = require('node:os');
|
|
4
4
|
var node_path = require('node:path');
|
|
5
|
-
var api = require('./api-
|
|
6
|
-
var index = require('./index-
|
|
5
|
+
var api = require('./api-CN-WqYd_.cjs');
|
|
6
|
+
var index = require('./index-DM6z3aeG.cjs');
|
|
7
7
|
var node_events = require('node:events');
|
|
8
8
|
var node_crypto = require('node:crypto');
|
|
9
9
|
|
|
@@ -529,10 +529,108 @@ class BaseReasoningProcessor {
|
|
|
529
529
|
}
|
|
530
530
|
}
|
|
531
531
|
|
|
532
|
+
function inferToolResultError(result) {
|
|
533
|
+
if (!result || typeof result !== "object") {
|
|
534
|
+
return false;
|
|
535
|
+
}
|
|
536
|
+
const record = result;
|
|
537
|
+
if (record.isError === true || record.is_error === true) {
|
|
538
|
+
return true;
|
|
539
|
+
}
|
|
540
|
+
if (typeof record.error === "string" && record.error.trim().length > 0) {
|
|
541
|
+
return true;
|
|
542
|
+
}
|
|
543
|
+
if (record.success === false) {
|
|
544
|
+
return true;
|
|
545
|
+
}
|
|
546
|
+
const status = typeof record.status === "string" ? record.status.toLowerCase() : "";
|
|
547
|
+
return status === "failed" || status === "cancelled" || status === "error" || status === "denied" || status === "aborted";
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
function buildToolHappierMetaV2(input) {
|
|
551
|
+
return {
|
|
552
|
+
...input,
|
|
553
|
+
v: 2
|
|
554
|
+
};
|
|
555
|
+
}
|
|
556
|
+
function attachToolHappierMetaV2(value, meta) {
|
|
557
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
558
|
+
return value;
|
|
559
|
+
}
|
|
560
|
+
return {
|
|
561
|
+
...value,
|
|
562
|
+
_happier: buildToolHappierMetaV2(meta)
|
|
563
|
+
};
|
|
564
|
+
}
|
|
565
|
+
|
|
566
|
+
const KNOWN_CANONICAL_TOOL_NAMES_V2 = [
|
|
567
|
+
"Bash",
|
|
568
|
+
"Read",
|
|
569
|
+
"Write",
|
|
570
|
+
"Edit",
|
|
571
|
+
"MultiEdit",
|
|
572
|
+
"Delete",
|
|
573
|
+
"Patch",
|
|
574
|
+
"Diff",
|
|
575
|
+
"Glob",
|
|
576
|
+
"Grep",
|
|
577
|
+
"LS",
|
|
578
|
+
"CodeSearch",
|
|
579
|
+
"WebFetch",
|
|
580
|
+
"WebSearch",
|
|
581
|
+
"TodoWrite",
|
|
582
|
+
"TodoRead",
|
|
583
|
+
"Task",
|
|
584
|
+
"Reasoning",
|
|
585
|
+
"EnterPlanMode",
|
|
586
|
+
"ExitPlanMode",
|
|
587
|
+
"AskUserQuestion",
|
|
588
|
+
"AcpHistoryImport",
|
|
589
|
+
"WorkspaceIndexingPermission",
|
|
590
|
+
"SubAgentRun",
|
|
591
|
+
"AgentTeamCreate",
|
|
592
|
+
"AgentTeamDelete",
|
|
593
|
+
"AgentTeamSendMessage"
|
|
594
|
+
];
|
|
595
|
+
const CANONICAL_TOOL_NAME_LOOKUP = new Map(
|
|
596
|
+
KNOWN_CANONICAL_TOOL_NAMES_V2.map((name) => [name.toLowerCase(), name])
|
|
597
|
+
);
|
|
598
|
+
const RAW_TO_CANONICAL_TOOL_NAME_LOOKUP = {
|
|
599
|
+
bash: "Bash",
|
|
600
|
+
shell: "Bash",
|
|
601
|
+
execute: "Bash",
|
|
602
|
+
codexbash: "Bash",
|
|
603
|
+
geminibash: "Bash",
|
|
604
|
+
codexpatch: "Patch",
|
|
605
|
+
geminipatch: "Patch"
|
|
606
|
+
};
|
|
607
|
+
function resolveCanonicalToolNameV2(rawToolName) {
|
|
608
|
+
const normalized = typeof rawToolName === "string" ? rawToolName.trim() : "";
|
|
609
|
+
if (!normalized) {
|
|
610
|
+
return "Bash";
|
|
611
|
+
}
|
|
612
|
+
if (normalized.startsWith("mcp__")) {
|
|
613
|
+
return normalized;
|
|
614
|
+
}
|
|
615
|
+
const lower = normalized.toLowerCase();
|
|
616
|
+
const known = CANONICAL_TOOL_NAME_LOOKUP.get(lower);
|
|
617
|
+
if (known) {
|
|
618
|
+
return known;
|
|
619
|
+
}
|
|
620
|
+
const mapped = RAW_TO_CANONICAL_TOOL_NAME_LOOKUP[lower];
|
|
621
|
+
if (mapped) {
|
|
622
|
+
return mapped;
|
|
623
|
+
}
|
|
624
|
+
return normalized;
|
|
625
|
+
}
|
|
626
|
+
|
|
532
627
|
exports.BasePermissionHandler = BasePermissionHandler;
|
|
533
628
|
exports.BaseReasoningProcessor = BaseReasoningProcessor;
|
|
534
629
|
exports.INTERACTION_SUPERSEDED_ERROR = INTERACTION_SUPERSEDED_ERROR;
|
|
535
630
|
exports.INTERACTION_TIMED_OUT_ERROR = INTERACTION_TIMED_OUT_ERROR;
|
|
631
|
+
exports.attachToolHappierMetaV2 = attachToolHappierMetaV2;
|
|
536
632
|
exports.createSessionMetadata = createSessionMetadata;
|
|
537
633
|
exports.getPendingInteractionTimeoutMs = getPendingInteractionTimeoutMs;
|
|
634
|
+
exports.inferToolResultError = inferToolResultError;
|
|
635
|
+
exports.resolveCanonicalToolNameV2 = resolveCanonicalToolNameV2;
|
|
538
636
|
exports.setupOfflineReconnection = setupOfflineReconnection;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var promises = require('node:fs/promises');
|
|
4
4
|
var node_fs = require('node:fs');
|
|
5
5
|
var node_path = require('node:path');
|
|
6
|
-
var api = require('./api-
|
|
6
|
+
var api = require('./api-CN-WqYd_.cjs');
|
|
7
7
|
var z = require('zod');
|
|
8
8
|
require('axios');
|
|
9
9
|
require('chalk');
|
|
@@ -148,7 +148,24 @@ function getProfileEnvironmentVariables(profile) {
|
|
|
148
148
|
}
|
|
149
149
|
return envVars;
|
|
150
150
|
}
|
|
151
|
+
function validateProfile(profile) {
|
|
152
|
+
const result = AIBackendProfileSchema.safeParse(profile);
|
|
153
|
+
if (!result.success) {
|
|
154
|
+
throw new Error(`Invalid profile data: ${result.error.message}`);
|
|
155
|
+
}
|
|
156
|
+
return result.data;
|
|
157
|
+
}
|
|
158
|
+
const CURRENT_PROFILE_VERSION = "1.0.0";
|
|
151
159
|
const SUPPORTED_SCHEMA_VERSION = 2;
|
|
160
|
+
function validateProfileVersion(profile) {
|
|
161
|
+
const semverRegex = /^\d+\.\d+\.\d+$/;
|
|
162
|
+
return semverRegex.test(profile.version || "");
|
|
163
|
+
}
|
|
164
|
+
function isProfileVersionCompatible(profileVersion, requiredVersion = CURRENT_PROFILE_VERSION) {
|
|
165
|
+
const [major] = profileVersion.split(".");
|
|
166
|
+
const [requiredMajor] = requiredVersion.split(".");
|
|
167
|
+
return major === requiredMajor;
|
|
168
|
+
}
|
|
152
169
|
const defaultSettings = {
|
|
153
170
|
schemaVersion: SUPPORTED_SCHEMA_VERSION,
|
|
154
171
|
onboardingCompleted: false,
|
|
@@ -202,6 +219,16 @@ async function readSettings() {
|
|
|
202
219
|
return { ...defaultSettings };
|
|
203
220
|
}
|
|
204
221
|
}
|
|
222
|
+
async function writeSettings(settings) {
|
|
223
|
+
if (!node_fs.existsSync(api.configuration.happyCloudHomeDir)) {
|
|
224
|
+
await promises.mkdir(api.configuration.happyCloudHomeDir, { recursive: true });
|
|
225
|
+
}
|
|
226
|
+
const settingsWithVersion = {
|
|
227
|
+
...settings,
|
|
228
|
+
schemaVersion: settings.schemaVersion ?? SUPPORTED_SCHEMA_VERSION
|
|
229
|
+
};
|
|
230
|
+
await promises.writeFile(api.configuration.settingsFile, JSON.stringify(settingsWithVersion, null, 2));
|
|
231
|
+
}
|
|
205
232
|
async function updateSettings(updater) {
|
|
206
233
|
const LOCK_RETRY_INTERVAL_MS = 100;
|
|
207
234
|
const MAX_LOCK_ATTEMPTS = 50;
|
|
@@ -491,20 +518,102 @@ async function releaseDaemonLock(lockHandle) {
|
|
|
491
518
|
} catch {
|
|
492
519
|
}
|
|
493
520
|
}
|
|
521
|
+
async function getProfiles() {
|
|
522
|
+
const settings = await readSettings();
|
|
523
|
+
return settings.profiles || [];
|
|
524
|
+
}
|
|
525
|
+
async function getProfile(profileId) {
|
|
526
|
+
const settings = await readSettings();
|
|
527
|
+
return settings.profiles.find((p) => p.id === profileId) || null;
|
|
528
|
+
}
|
|
529
|
+
async function getActiveProfile() {
|
|
530
|
+
const settings = await readSettings();
|
|
531
|
+
if (!settings.activeProfileId) return null;
|
|
532
|
+
return settings.profiles.find((p) => p.id === settings.activeProfileId) || null;
|
|
533
|
+
}
|
|
534
|
+
async function setActiveProfile(profileId) {
|
|
535
|
+
await updateSettings((settings) => ({
|
|
536
|
+
...settings,
|
|
537
|
+
activeProfileId: profileId
|
|
538
|
+
}));
|
|
539
|
+
}
|
|
540
|
+
async function updateProfiles(profiles) {
|
|
541
|
+
const validatedProfiles = profiles.map((profile) => validateProfile(profile));
|
|
542
|
+
await updateSettings((settings) => {
|
|
543
|
+
const activeProfileId = settings.activeProfileId;
|
|
544
|
+
const activeProfileStillExists = activeProfileId && validatedProfiles.some((p) => p.id === activeProfileId);
|
|
545
|
+
return {
|
|
546
|
+
...settings,
|
|
547
|
+
profiles: validatedProfiles,
|
|
548
|
+
activeProfileId: activeProfileStillExists ? activeProfileId : void 0
|
|
549
|
+
};
|
|
550
|
+
});
|
|
551
|
+
}
|
|
552
|
+
async function getEnvironmentVariables(profileId) {
|
|
553
|
+
const settings = await readSettings();
|
|
554
|
+
const profile = settings.profiles.find((p) => p.id === profileId);
|
|
555
|
+
if (!profile) return {};
|
|
556
|
+
const envVars = {};
|
|
557
|
+
if (profile.environmentVariables) {
|
|
558
|
+
profile.environmentVariables.forEach((envVar) => {
|
|
559
|
+
envVars[envVar.name] = envVar.value;
|
|
560
|
+
});
|
|
561
|
+
}
|
|
562
|
+
const localEnvVars = settings.localEnvironmentVariables[profileId] || {};
|
|
563
|
+
Object.assign(envVars, localEnvVars);
|
|
564
|
+
return envVars;
|
|
565
|
+
}
|
|
566
|
+
async function setEnvironmentVariables(profileId, envVars) {
|
|
567
|
+
await updateSettings((settings) => ({
|
|
568
|
+
...settings,
|
|
569
|
+
localEnvironmentVariables: {
|
|
570
|
+
...settings.localEnvironmentVariables,
|
|
571
|
+
[profileId]: envVars
|
|
572
|
+
}
|
|
573
|
+
}));
|
|
574
|
+
}
|
|
575
|
+
async function getEnvironmentVariable(profileId, key) {
|
|
576
|
+
const settings = await readSettings();
|
|
577
|
+
const localEnvVars = settings.localEnvironmentVariables[profileId] || {};
|
|
578
|
+
if (localEnvVars[key] !== void 0) {
|
|
579
|
+
return localEnvVars[key];
|
|
580
|
+
}
|
|
581
|
+
const profile = settings.profiles.find((p) => p.id === profileId);
|
|
582
|
+
if (profile?.environmentVariables) {
|
|
583
|
+
const envVar = profile.environmentVariables.find((env) => env.name === key);
|
|
584
|
+
if (envVar) {
|
|
585
|
+
return envVar.value;
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
return void 0;
|
|
589
|
+
}
|
|
494
590
|
|
|
495
591
|
exports.AIBackendProfileSchema = AIBackendProfileSchema;
|
|
592
|
+
exports.CURRENT_PROFILE_VERSION = CURRENT_PROFILE_VERSION;
|
|
496
593
|
exports.SUPPORTED_SCHEMA_VERSION = SUPPORTED_SCHEMA_VERSION;
|
|
497
594
|
exports.acquireDaemonLock = acquireDaemonLock;
|
|
498
595
|
exports.clearCredentials = clearCredentials;
|
|
499
596
|
exports.clearDaemonState = clearDaemonState;
|
|
500
597
|
exports.clearMachineId = clearMachineId;
|
|
598
|
+
exports.getActiveProfile = getActiveProfile;
|
|
599
|
+
exports.getEnvironmentVariable = getEnvironmentVariable;
|
|
600
|
+
exports.getEnvironmentVariables = getEnvironmentVariables;
|
|
601
|
+
exports.getProfile = getProfile;
|
|
501
602
|
exports.getProfileEnvironmentVariables = getProfileEnvironmentVariables;
|
|
603
|
+
exports.getProfiles = getProfiles;
|
|
604
|
+
exports.isProfileVersionCompatible = isProfileVersionCompatible;
|
|
502
605
|
exports.readCredentials = readCredentials;
|
|
503
606
|
exports.readDaemonState = readDaemonState;
|
|
504
607
|
exports.readSettings = readSettings;
|
|
505
608
|
exports.releaseDaemonLock = releaseDaemonLock;
|
|
609
|
+
exports.setActiveProfile = setActiveProfile;
|
|
610
|
+
exports.setEnvironmentVariables = setEnvironmentVariables;
|
|
611
|
+
exports.updateProfiles = updateProfiles;
|
|
506
612
|
exports.updateSettings = updateSettings;
|
|
613
|
+
exports.validateProfile = validateProfile;
|
|
507
614
|
exports.validateProfileForAgent = validateProfileForAgent;
|
|
615
|
+
exports.validateProfileVersion = validateProfileVersion;
|
|
508
616
|
exports.writeCredentialsDataKey = writeCredentialsDataKey;
|
|
509
617
|
exports.writeCredentialsLegacy = writeCredentialsLegacy;
|
|
510
618
|
exports.writeDaemonState = writeDaemonState;
|
|
619
|
+
exports.writeSettings = writeSettings;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { existsSync, unlinkSync,
|
|
1
|
+
import { unlink, readFile, mkdir, open, stat, writeFile, rename } from 'node:fs/promises';
|
|
2
|
+
import { existsSync, unlinkSync, readdirSync, constants, writeFileSync, readFileSync } from 'node:fs';
|
|
3
3
|
import { join, dirname } from 'node:path';
|
|
4
|
-
import { c as configuration, l as logger, e as encodeBase64 } from './api-
|
|
4
|
+
import { c as configuration, l as logger, e as encodeBase64 } from './api-D-uiH_TF.mjs';
|
|
5
5
|
import * as z from 'zod';
|
|
6
6
|
import 'axios';
|
|
7
7
|
import 'chalk';
|
|
@@ -127,7 +127,24 @@ function getProfileEnvironmentVariables(profile) {
|
|
|
127
127
|
}
|
|
128
128
|
return envVars;
|
|
129
129
|
}
|
|
130
|
+
function validateProfile(profile) {
|
|
131
|
+
const result = AIBackendProfileSchema.safeParse(profile);
|
|
132
|
+
if (!result.success) {
|
|
133
|
+
throw new Error(`Invalid profile data: ${result.error.message}`);
|
|
134
|
+
}
|
|
135
|
+
return result.data;
|
|
136
|
+
}
|
|
137
|
+
const CURRENT_PROFILE_VERSION = "1.0.0";
|
|
130
138
|
const SUPPORTED_SCHEMA_VERSION = 2;
|
|
139
|
+
function validateProfileVersion(profile) {
|
|
140
|
+
const semverRegex = /^\d+\.\d+\.\d+$/;
|
|
141
|
+
return semverRegex.test(profile.version || "");
|
|
142
|
+
}
|
|
143
|
+
function isProfileVersionCompatible(profileVersion, requiredVersion = CURRENT_PROFILE_VERSION) {
|
|
144
|
+
const [major] = profileVersion.split(".");
|
|
145
|
+
const [requiredMajor] = requiredVersion.split(".");
|
|
146
|
+
return major === requiredMajor;
|
|
147
|
+
}
|
|
131
148
|
const defaultSettings = {
|
|
132
149
|
schemaVersion: SUPPORTED_SCHEMA_VERSION,
|
|
133
150
|
onboardingCompleted: false,
|
|
@@ -181,6 +198,16 @@ async function readSettings() {
|
|
|
181
198
|
return { ...defaultSettings };
|
|
182
199
|
}
|
|
183
200
|
}
|
|
201
|
+
async function writeSettings(settings) {
|
|
202
|
+
if (!existsSync(configuration.happyCloudHomeDir)) {
|
|
203
|
+
await mkdir(configuration.happyCloudHomeDir, { recursive: true });
|
|
204
|
+
}
|
|
205
|
+
const settingsWithVersion = {
|
|
206
|
+
...settings,
|
|
207
|
+
schemaVersion: settings.schemaVersion ?? SUPPORTED_SCHEMA_VERSION
|
|
208
|
+
};
|
|
209
|
+
await writeFile(configuration.settingsFile, JSON.stringify(settingsWithVersion, null, 2));
|
|
210
|
+
}
|
|
184
211
|
async function updateSettings(updater) {
|
|
185
212
|
const LOCK_RETRY_INTERVAL_MS = 100;
|
|
186
213
|
const MAX_LOCK_ATTEMPTS = 50;
|
|
@@ -470,5 +497,74 @@ async function releaseDaemonLock(lockHandle) {
|
|
|
470
497
|
} catch {
|
|
471
498
|
}
|
|
472
499
|
}
|
|
500
|
+
async function getProfiles() {
|
|
501
|
+
const settings = await readSettings();
|
|
502
|
+
return settings.profiles || [];
|
|
503
|
+
}
|
|
504
|
+
async function getProfile(profileId) {
|
|
505
|
+
const settings = await readSettings();
|
|
506
|
+
return settings.profiles.find((p) => p.id === profileId) || null;
|
|
507
|
+
}
|
|
508
|
+
async function getActiveProfile() {
|
|
509
|
+
const settings = await readSettings();
|
|
510
|
+
if (!settings.activeProfileId) return null;
|
|
511
|
+
return settings.profiles.find((p) => p.id === settings.activeProfileId) || null;
|
|
512
|
+
}
|
|
513
|
+
async function setActiveProfile(profileId) {
|
|
514
|
+
await updateSettings((settings) => ({
|
|
515
|
+
...settings,
|
|
516
|
+
activeProfileId: profileId
|
|
517
|
+
}));
|
|
518
|
+
}
|
|
519
|
+
async function updateProfiles(profiles) {
|
|
520
|
+
const validatedProfiles = profiles.map((profile) => validateProfile(profile));
|
|
521
|
+
await updateSettings((settings) => {
|
|
522
|
+
const activeProfileId = settings.activeProfileId;
|
|
523
|
+
const activeProfileStillExists = activeProfileId && validatedProfiles.some((p) => p.id === activeProfileId);
|
|
524
|
+
return {
|
|
525
|
+
...settings,
|
|
526
|
+
profiles: validatedProfiles,
|
|
527
|
+
activeProfileId: activeProfileStillExists ? activeProfileId : void 0
|
|
528
|
+
};
|
|
529
|
+
});
|
|
530
|
+
}
|
|
531
|
+
async function getEnvironmentVariables(profileId) {
|
|
532
|
+
const settings = await readSettings();
|
|
533
|
+
const profile = settings.profiles.find((p) => p.id === profileId);
|
|
534
|
+
if (!profile) return {};
|
|
535
|
+
const envVars = {};
|
|
536
|
+
if (profile.environmentVariables) {
|
|
537
|
+
profile.environmentVariables.forEach((envVar) => {
|
|
538
|
+
envVars[envVar.name] = envVar.value;
|
|
539
|
+
});
|
|
540
|
+
}
|
|
541
|
+
const localEnvVars = settings.localEnvironmentVariables[profileId] || {};
|
|
542
|
+
Object.assign(envVars, localEnvVars);
|
|
543
|
+
return envVars;
|
|
544
|
+
}
|
|
545
|
+
async function setEnvironmentVariables(profileId, envVars) {
|
|
546
|
+
await updateSettings((settings) => ({
|
|
547
|
+
...settings,
|
|
548
|
+
localEnvironmentVariables: {
|
|
549
|
+
...settings.localEnvironmentVariables,
|
|
550
|
+
[profileId]: envVars
|
|
551
|
+
}
|
|
552
|
+
}));
|
|
553
|
+
}
|
|
554
|
+
async function getEnvironmentVariable(profileId, key) {
|
|
555
|
+
const settings = await readSettings();
|
|
556
|
+
const localEnvVars = settings.localEnvironmentVariables[profileId] || {};
|
|
557
|
+
if (localEnvVars[key] !== void 0) {
|
|
558
|
+
return localEnvVars[key];
|
|
559
|
+
}
|
|
560
|
+
const profile = settings.profiles.find((p) => p.id === profileId);
|
|
561
|
+
if (profile?.environmentVariables) {
|
|
562
|
+
const envVar = profile.environmentVariables.find((env) => env.name === key);
|
|
563
|
+
if (envVar) {
|
|
564
|
+
return envVar.value;
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
return void 0;
|
|
568
|
+
}
|
|
473
569
|
|
|
474
|
-
export { AIBackendProfileSchema, SUPPORTED_SCHEMA_VERSION, acquireDaemonLock, clearCredentials, clearDaemonState, clearMachineId, getProfileEnvironmentVariables, readCredentials, readDaemonState, readSettings, releaseDaemonLock, updateSettings, validateProfileForAgent, writeCredentialsDataKey, writeCredentialsLegacy, writeDaemonState };
|
|
570
|
+
export { AIBackendProfileSchema, CURRENT_PROFILE_VERSION, SUPPORTED_SCHEMA_VERSION, acquireDaemonLock, clearCredentials, clearDaemonState, clearMachineId, getActiveProfile, getEnvironmentVariable, getEnvironmentVariables, getProfile, getProfileEnvironmentVariables, getProfiles, isProfileVersionCompatible, readCredentials, readDaemonState, readSettings, releaseDaemonLock, setActiveProfile, setEnvironmentVariables, updateProfiles, updateSettings, validateProfile, validateProfileForAgent, validateProfileVersion, writeCredentialsDataKey, writeCredentialsLegacy, writeDaemonState, writeSettings };
|
package/dist/{registerKillSessionHandler-EFAsOnR_.cjs → registerKillSessionHandler-CYc0SIjF.cjs}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
4
|
-
var api = require('./api-
|
|
3
|
+
var index = require('./index-DM6z3aeG.cjs');
|
|
4
|
+
var api = require('./api-CN-WqYd_.cjs');
|
|
5
5
|
var crypto = require('crypto');
|
|
6
6
|
require('axios');
|
|
7
7
|
require('node:events');
|
|
@@ -25,6 +25,30 @@ class MessageBuffer {
|
|
|
25
25
|
};
|
|
26
26
|
this.messages.push(message);
|
|
27
27
|
this.notifyListeners();
|
|
28
|
+
return message.id;
|
|
29
|
+
}
|
|
30
|
+
updateMessage(id, content, options = {}) {
|
|
31
|
+
const index$1 = this.messages.findIndex((message) => message.id === id);
|
|
32
|
+
if (index$1 === -1) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
const normalizedContent = index.formatDisplayMessage(content);
|
|
36
|
+
const previous = this.messages[index$1];
|
|
37
|
+
this.messages[index$1] = {
|
|
38
|
+
...previous,
|
|
39
|
+
content: options.mode === "replace" ? normalizedContent : previous.content + normalizedContent
|
|
40
|
+
};
|
|
41
|
+
this.notifyListeners();
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
removeMessage(id) {
|
|
45
|
+
const index = this.messages.findIndex((message) => message.id === id);
|
|
46
|
+
if (index === -1) {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
this.messages.splice(index, 1);
|
|
50
|
+
this.notifyListeners();
|
|
51
|
+
return true;
|
|
28
52
|
}
|
|
29
53
|
/**
|
|
30
54
|
* Update the last message of a specific type by appending content to it
|
package/dist/{registerKillSessionHandler-Bm7E-03E.mjs → registerKillSessionHandler-Cu9rHGsI.mjs}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { f as formatDisplayMessage } from './index-
|
|
2
|
-
import { l as logger } from './api-
|
|
1
|
+
import { f as formatDisplayMessage } from './index-DhheEtRl.mjs';
|
|
2
|
+
import { l as logger } from './api-D-uiH_TF.mjs';
|
|
3
3
|
import { createHash } from 'crypto';
|
|
4
4
|
import 'axios';
|
|
5
5
|
import 'node:events';
|
|
@@ -23,6 +23,30 @@ class MessageBuffer {
|
|
|
23
23
|
};
|
|
24
24
|
this.messages.push(message);
|
|
25
25
|
this.notifyListeners();
|
|
26
|
+
return message.id;
|
|
27
|
+
}
|
|
28
|
+
updateMessage(id, content, options = {}) {
|
|
29
|
+
const index = this.messages.findIndex((message) => message.id === id);
|
|
30
|
+
if (index === -1) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
const normalizedContent = formatDisplayMessage(content);
|
|
34
|
+
const previous = this.messages[index];
|
|
35
|
+
this.messages[index] = {
|
|
36
|
+
...previous,
|
|
37
|
+
content: options.mode === "replace" ? normalizedContent : previous.content + normalizedContent
|
|
38
|
+
};
|
|
39
|
+
this.notifyListeners();
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
removeMessage(id) {
|
|
43
|
+
const index = this.messages.findIndex((message) => message.id === id);
|
|
44
|
+
if (index === -1) {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
this.messages.splice(index, 1);
|
|
48
|
+
this.notifyListeners();
|
|
49
|
+
return true;
|
|
26
50
|
}
|
|
27
51
|
/**
|
|
28
52
|
* Update the last message of a specific type by appending content to it
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
var os = require('node:os');
|
|
4
4
|
var node_crypto = require('node:crypto');
|
|
5
|
-
var api = require('./api-
|
|
6
|
-
var index = require('./index-
|
|
5
|
+
var api = require('./api-CN-WqYd_.cjs');
|
|
6
|
+
var index = require('./index-DM6z3aeG.cjs');
|
|
7
7
|
var types = require('./types-DVk3crez.cjs');
|
|
8
8
|
var node_path = require('node:path');
|
|
9
9
|
var promises = require('node:fs/promises');
|
|
10
10
|
var fs = require('fs/promises');
|
|
11
11
|
var ink = require('ink');
|
|
12
|
-
var registerKillSessionHandler = require('./registerKillSessionHandler-
|
|
12
|
+
var registerKillSessionHandler = require('./registerKillSessionHandler-CYc0SIjF.cjs');
|
|
13
13
|
var React = require('react');
|
|
14
14
|
var node_child_process = require('node:child_process');
|
|
15
15
|
var node_readline = require('node:readline');
|
|
@@ -22,7 +22,7 @@ require('tweetnacl');
|
|
|
22
22
|
require('expo-server-sdk');
|
|
23
23
|
require('chalk');
|
|
24
24
|
var node_util = require('node:util');
|
|
25
|
-
var persistence = require('./persistence-
|
|
25
|
+
var persistence = require('./persistence-DBGkO8gB.cjs');
|
|
26
26
|
var node_http = require('node:http');
|
|
27
27
|
require('fs');
|
|
28
28
|
require('zod');
|
|
@@ -937,7 +937,7 @@ class AbortError extends Error {
|
|
|
937
937
|
}
|
|
938
938
|
}
|
|
939
939
|
|
|
940
|
-
const __filename$1 = node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('runClaude-
|
|
940
|
+
const __filename$1 = node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('runClaude-CPhWaFrX.cjs', document.baseURI).href)));
|
|
941
941
|
const __dirname$1 = node_path.join(__filename$1, "..");
|
|
942
942
|
function getGlobalClaudeVersion() {
|
|
943
943
|
try {
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import os, { homedir } from 'node:os';
|
|
2
2
|
import { randomUUID } from 'node:crypto';
|
|
3
|
-
import { l as logger, d as backoff, f as delay, g as AsyncLock, c as configuration, b as connectionState, A as ApiClient, p as packageJson, i as isAuthenticationRequiredError, s as startOfflineReconnection } from './api-
|
|
4
|
-
import { e as getProjectPath, h as claudeLocal, E as ExitCodeError, j as isBun, k as trimIdent, l as claudeCheckSession, p as projectPath, m as getEnvironmentInfo, i as initialMachineMetadata, b as stopCaffeinate, n as notifyDaemonSessionStarted, o as startCaffeinate } from './index-
|
|
3
|
+
import { l as logger, d as backoff, f as delay, g as AsyncLock, c as configuration, b as connectionState, A as ApiClient, p as packageJson, i as isAuthenticationRequiredError, s as startOfflineReconnection } from './api-D-uiH_TF.mjs';
|
|
4
|
+
import { e as getProjectPath, h as claudeLocal, E as ExitCodeError, j as isBun, k as trimIdent, l as claudeCheckSession, p as projectPath, m as getEnvironmentInfo, i as initialMachineMetadata, b as stopCaffeinate, n as notifyDaemonSessionStarted, o as startCaffeinate } from './index-DhheEtRl.mjs';
|
|
5
5
|
import { R as RawJSONLinesSchema } from './types-CiliQpqS.mjs';
|
|
6
6
|
import { dirname, basename, join, resolve } from 'node:path';
|
|
7
7
|
import { readFile } from 'node:fs/promises';
|
|
8
8
|
import { stat, watch, access } from 'fs/promises';
|
|
9
9
|
import { useStdout, useInput, Box, Text, render } from 'ink';
|
|
10
|
-
import { a as MessageBuffer, M as MessageQueue2, h as hashObject, r as registerKillSessionHandler } from './registerKillSessionHandler-
|
|
10
|
+
import { a as MessageBuffer, M as MessageQueue2, h as hashObject, r as registerKillSessionHandler } from './registerKillSessionHandler-Cu9rHGsI.mjs';
|
|
11
11
|
import React, { useState, useRef, useEffect, useCallback } from 'react';
|
|
12
12
|
import { execSync, spawn } from 'node:child_process';
|
|
13
13
|
import { createInterface } from 'node:readline';
|
|
@@ -20,7 +20,7 @@ import 'tweetnacl';
|
|
|
20
20
|
import 'expo-server-sdk';
|
|
21
21
|
import 'chalk';
|
|
22
22
|
import { isDeepStrictEqual } from 'node:util';
|
|
23
|
-
import { readSettings } from './persistence-
|
|
23
|
+
import { readSettings } from './persistence-DiNg1DPF.mjs';
|
|
24
24
|
import { createServer } from 'node:http';
|
|
25
25
|
import 'fs';
|
|
26
26
|
import 'zod';
|