@rubytech/taskmaster 1.9.3 → 1.9.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.
|
@@ -134,7 +134,9 @@ function mergeAuthProfileStores(base, override) {
|
|
|
134
134
|
!override.usageStats) {
|
|
135
135
|
return base;
|
|
136
136
|
}
|
|
137
|
-
// Merge profiles, preferring the fresher credential for OAuth/token types
|
|
137
|
+
// Merge profiles, preferring the fresher credential for OAuth/token types.
|
|
138
|
+
// For api_key profiles, prefer base (main store) — centralized API key
|
|
139
|
+
// management writes there, and agent stores only have inherited copies.
|
|
138
140
|
const mergedProfiles = { ...base.profiles };
|
|
139
141
|
for (const [profileId, overrideCred] of Object.entries(override.profiles)) {
|
|
140
142
|
const baseCred = base.profiles[profileId];
|
|
@@ -142,8 +144,14 @@ function mergeAuthProfileStores(base, override) {
|
|
|
142
144
|
// No conflict — use override
|
|
143
145
|
mergedProfiles[profileId] = overrideCred;
|
|
144
146
|
}
|
|
147
|
+
else if (baseCred.type === "api_key" && overrideCred.type === "api_key") {
|
|
148
|
+
// API keys: base (main store) is authoritative — applyApiKeys() writes
|
|
149
|
+
// the centralized key there. Agent stores only have stale inherited
|
|
150
|
+
// copies. Always prefer base so key updates propagate immediately.
|
|
151
|
+
// (keep base — already in mergedProfiles)
|
|
152
|
+
}
|
|
145
153
|
else {
|
|
146
|
-
//
|
|
154
|
+
// OAuth/token: prefer the one with later expiry (fresher token)
|
|
147
155
|
const baseExpiry = getCredentialExpiry(baseCred);
|
|
148
156
|
const overrideExpiry = getCredentialExpiry(overrideCred);
|
|
149
157
|
if (overrideExpiry >= baseExpiry) {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { createSubsystemLogger } from "../../logging/subsystem.js";
|
|
2
2
|
import { fetchWithTimeout, normalizeBaseUrl, readErrorResponse, } from "../../media-understanding/providers/shared.js";
|
|
3
3
|
const log = createSubsystemLogger("image-gen");
|
|
4
|
-
/** Show first
|
|
4
|
+
/** Show first 8 and last 4 characters of a key, mask everything in between. */
|
|
5
5
|
function maskKey(key) {
|
|
6
|
-
if (key.length <=
|
|
6
|
+
if (key.length <= 16)
|
|
7
7
|
return `${key.slice(0, 4)}...`;
|
|
8
|
-
return `${key.slice(0,
|
|
8
|
+
return `${key.slice(0, 8)}...${key.slice(-4)}`;
|
|
9
9
|
}
|
|
10
10
|
/* ------------------------------------------------------------------ */
|
|
11
11
|
/* Constants */
|
|
@@ -10,11 +10,11 @@ const log = createSubsystemLogger("image-gen");
|
|
|
10
10
|
/* ------------------------------------------------------------------ */
|
|
11
11
|
/* Helpers */
|
|
12
12
|
/* ------------------------------------------------------------------ */
|
|
13
|
-
/** Show first
|
|
13
|
+
/** Show first 8 and last 4 characters of a key, mask everything in between. */
|
|
14
14
|
function maskKey(key) {
|
|
15
|
-
if (key.length <=
|
|
15
|
+
if (key.length <= 16)
|
|
16
16
|
return `${key.slice(0, 4)}...`;
|
|
17
|
-
return `${key.slice(0,
|
|
17
|
+
return `${key.slice(0, 8)}...${key.slice(-4)}`;
|
|
18
18
|
}
|
|
19
19
|
/* ------------------------------------------------------------------ */
|
|
20
20
|
/* Constants */
|
package/dist/build-info.json
CHANGED