cicy-desktop 2.1.213 → 2.1.215
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/package.json
CHANGED
|
@@ -148,8 +148,34 @@ function writeChromeConfig(next) {
|
|
|
148
148
|
} catch {}
|
|
149
149
|
}
|
|
150
150
|
|
|
151
|
+
// Identity is recorded in the `accounts` map (accounts.gmail / .google / .github
|
|
152
|
+
// → {account,password,totp}) via the account CLI; older code only wrote a bare
|
|
153
|
+
// top-level `gmail`. normalizeAccounts coerces the map; resolveGmail prefers the
|
|
154
|
+
// accounts map and falls back to the legacy field — so gmail shows whichever way
|
|
155
|
+
// it was recorded (this is why panels showed empty: read top-level, wrote accounts).
|
|
156
|
+
function normalizeAccounts(raw) {
|
|
157
|
+
const out = {};
|
|
158
|
+
if (raw && typeof raw === "object" && !Array.isArray(raw)) {
|
|
159
|
+
for (const [svc, val] of Object.entries(raw)) {
|
|
160
|
+
if (typeof val === "string") out[svc] = { account: val };
|
|
161
|
+
else if (val && typeof val === "object" && !Array.isArray(val)) out[svc] = val;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return out;
|
|
165
|
+
}
|
|
166
|
+
function resolveGmail(accounts, fallback) {
|
|
167
|
+
const a = accounts || {};
|
|
168
|
+
return (
|
|
169
|
+
(a.gmail && a.gmail.account) ||
|
|
170
|
+
(a.google && a.google.account) ||
|
|
171
|
+
(typeof fallback === "string" ? fallback : "") ||
|
|
172
|
+
""
|
|
173
|
+
);
|
|
174
|
+
}
|
|
175
|
+
|
|
151
176
|
function chromeView(idx, entry) {
|
|
152
177
|
const e = entry && typeof entry === "object" ? entry : {};
|
|
178
|
+
const accounts = normalizeAccounts(e.accounts);
|
|
153
179
|
return {
|
|
154
180
|
id: `chrome-${idx}`,
|
|
155
181
|
backend: "chrome",
|
|
@@ -159,7 +185,8 @@ function chromeView(idx, entry) {
|
|
|
159
185
|
logins: (Array.isArray(e.logins) ? e.logins : []).map(normalizeLogin),
|
|
160
186
|
note: typeof e.note === "string" ? e.note : "",
|
|
161
187
|
// chrome-specific extras (read-only passthrough)
|
|
162
|
-
gmail:
|
|
188
|
+
gmail: resolveGmail(accounts, e.gmail),
|
|
189
|
+
accounts,
|
|
163
190
|
port: typeof e.port === "number" ? e.port : 11000 + idx,
|
|
164
191
|
rpaDir: typeof e.rpaDir === "string" ? e.rpaDir : `~/chrome/profile_${idx}`,
|
|
165
192
|
platform: e.platform && typeof e.platform === "object" ? e.platform : {},
|
|
@@ -208,6 +235,9 @@ function writeAccount(data) {
|
|
|
208
235
|
function electronView(idx, data) {
|
|
209
236
|
const d = data && typeof data === "object" ? data : { accountIdx: idx };
|
|
210
237
|
const meta = d.metadata && typeof d.metadata === "object" ? d.metadata : {};
|
|
238
|
+
// Electron identities may live on the account file directly (d.accounts) or
|
|
239
|
+
// under metadata (meta.accounts / meta.gmail); resolve from whichever is set.
|
|
240
|
+
const accounts = normalizeAccounts(d.accounts || meta.accounts);
|
|
211
241
|
return {
|
|
212
242
|
id: `electron-${idx}`,
|
|
213
243
|
backend: "electron",
|
|
@@ -216,6 +246,8 @@ function electronView(idx, data) {
|
|
|
216
246
|
proxy: normalizeProxy(d.proxy),
|
|
217
247
|
logins: (Array.isArray(d.logins) ? d.logins : []).map(normalizeLogin),
|
|
218
248
|
note: typeof d.note === "string" ? d.note : meta.description || "",
|
|
249
|
+
gmail: resolveGmail(accounts, d.gmail || meta.gmail),
|
|
250
|
+
accounts,
|
|
219
251
|
partition: `persist:sandbox-${idx}`,
|
|
220
252
|
ipInfo: normalizeIpInfo(d.ipInfo),
|
|
221
253
|
};
|
|
@@ -166,6 +166,22 @@ function normalizePrivateChromeEntry(profileKey, accountIdx, entry) {
|
|
|
166
166
|
};
|
|
167
167
|
}
|
|
168
168
|
|
|
169
|
+
// resolveGmail derives a profile's Google identity. The `account` CLI / UI now
|
|
170
|
+
// records identities in the `accounts` map (accounts.gmail / accounts.google),
|
|
171
|
+
// so read from there FIRST and only fall back to the legacy top-level `gmail`
|
|
172
|
+
// field (which was only ever set at `add --gmail` time). This is why gmail/login
|
|
173
|
+
// info showed empty: it was recorded into accounts.* but everything read the
|
|
174
|
+
// top-level gmail field.
|
|
175
|
+
function resolveGmail(normalized) {
|
|
176
|
+
const a = (normalized && normalized.accounts) || {};
|
|
177
|
+
return (
|
|
178
|
+
(a.gmail && a.gmail.account) ||
|
|
179
|
+
(a.google && a.google.account) ||
|
|
180
|
+
(normalized && normalized.gmail) ||
|
|
181
|
+
""
|
|
182
|
+
);
|
|
183
|
+
}
|
|
184
|
+
|
|
169
185
|
function normalizeEffectiveChromeProfile(accountIdx, effectiveChromeProfile) {
|
|
170
186
|
const parsed = injectedChromeProfileSchema.parse(effectiveChromeProfile || {});
|
|
171
187
|
const gmail = typeof parsed.gmail === "string" ? parsed.gmail : "";
|
|
@@ -507,7 +523,7 @@ function registerChromeTools(registerTool) {
|
|
|
507
523
|
views.push({
|
|
508
524
|
profileKey,
|
|
509
525
|
accountIdx,
|
|
510
|
-
gmail: normalized
|
|
526
|
+
gmail: resolveGmail(normalized),
|
|
511
527
|
note: normalized.note,
|
|
512
528
|
orgPath: normalized.orgPath,
|
|
513
529
|
rpaDir: normalized.rpaDir,
|
|
@@ -515,6 +531,9 @@ function registerChromeTools(registerTool) {
|
|
|
515
531
|
proxy: normalized.proxyUrl,
|
|
516
532
|
proxyRaw: normalized.proxy,
|
|
517
533
|
platform: normalized.platform,
|
|
534
|
+
// The service→credentials map (accounts.gmail / .github / …) — the panel
|
|
535
|
+
// reads identities from here, so it must travel with the list view.
|
|
536
|
+
accounts: normalized.accounts,
|
|
518
537
|
// parity with electron_list_profiles so the panel renders the same row
|
|
519
538
|
ipInfo: profileStore.normalizeIpInfo(entry.ipInfo),
|
|
520
539
|
logins: (Array.isArray(entry.logins) ? entry.logins : []).map(profileStore.normalizeLogin),
|
|
@@ -537,7 +556,7 @@ function registerChromeTools(registerTool) {
|
|
|
537
556
|
async ({ includeHidden } = {}) => {
|
|
538
557
|
const entries = listPrivateChromeEntries({ includeHidden: !!includeHidden });
|
|
539
558
|
const gmails = entries
|
|
540
|
-
.map(({ profileKey, accountIdx, entry }) => normalizePrivateChromeEntry(profileKey, accountIdx, entry)
|
|
559
|
+
.map(({ profileKey, accountIdx, entry }) => resolveGmail(normalizePrivateChromeEntry(profileKey, accountIdx, entry)))
|
|
541
560
|
.filter(Boolean);
|
|
542
561
|
return toToolResult({ gmails });
|
|
543
562
|
},
|
|
@@ -555,12 +574,13 @@ function registerChromeTools(registerTool) {
|
|
|
555
574
|
const accounts = entries.map(({ profileKey, accountIdx, entry }) => {
|
|
556
575
|
const normalized = normalizePrivateChromeEntry(profileKey, accountIdx, entry);
|
|
557
576
|
const gh = normalized.platform?.github || {};
|
|
577
|
+
const ghAcct = (normalized.accounts && normalized.accounts.github) || {};
|
|
558
578
|
return {
|
|
559
579
|
profileKey,
|
|
560
580
|
accountIdx,
|
|
561
|
-
gmail: normalized
|
|
562
|
-
email: gh.email || "",
|
|
563
|
-
username: gh.username || "",
|
|
581
|
+
gmail: resolveGmail(normalized),
|
|
582
|
+
email: gh.email || ghAcct.email || "",
|
|
583
|
+
username: gh.username || ghAcct.account || "",
|
|
564
584
|
};
|
|
565
585
|
});
|
|
566
586
|
return toToolResult({ githubAccounts: accounts });
|