doer-agent 0.5.1 → 0.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-settings.js +47 -47
- package/package.json +1 -1
package/dist/agent-settings.js
CHANGED
|
@@ -34,13 +34,6 @@ export function createDefaultAgentSettingsConfig() {
|
|
|
34
34
|
oauthLogin: null,
|
|
35
35
|
oauthScope: null,
|
|
36
36
|
},
|
|
37
|
-
aws: {
|
|
38
|
-
enabled: true,
|
|
39
|
-
accessKeyId: null,
|
|
40
|
-
defaultRegion: null,
|
|
41
|
-
secretAccessKey: null,
|
|
42
|
-
sessionToken: null,
|
|
43
|
-
},
|
|
44
37
|
jira: {
|
|
45
38
|
baseUrl: null,
|
|
46
39
|
email: null,
|
|
@@ -63,6 +56,9 @@ export function createDefaultAgentSettingsConfig() {
|
|
|
63
56
|
enabled: false,
|
|
64
57
|
apiToken: null,
|
|
65
58
|
},
|
|
59
|
+
env: {
|
|
60
|
+
variables: [],
|
|
61
|
+
},
|
|
66
62
|
databases: {
|
|
67
63
|
defaultConnectionId: null,
|
|
68
64
|
connections: [],
|
|
@@ -167,6 +163,38 @@ function normalizeAgentDatabaseSettings(value, fallback) {
|
|
|
167
163
|
connections,
|
|
168
164
|
};
|
|
169
165
|
}
|
|
166
|
+
function normalizeAgentEnvironmentVariable(value) {
|
|
167
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
168
|
+
return null;
|
|
169
|
+
}
|
|
170
|
+
const raw = value;
|
|
171
|
+
const key = normalizeEnvVarName(raw.key);
|
|
172
|
+
if (!key || typeof raw.value !== "string") {
|
|
173
|
+
return null;
|
|
174
|
+
}
|
|
175
|
+
return {
|
|
176
|
+
key,
|
|
177
|
+
value: raw.value.replace(/\r/g, ""),
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
function normalizeAgentEnvironmentSettings(value, fallback) {
|
|
181
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
182
|
+
return fallback;
|
|
183
|
+
}
|
|
184
|
+
const raw = value;
|
|
185
|
+
const variablesRaw = Array.isArray(raw.variables) ? raw.variables : [];
|
|
186
|
+
const variables = [];
|
|
187
|
+
const seenKeys = new Set();
|
|
188
|
+
for (const item of variablesRaw) {
|
|
189
|
+
const normalized = normalizeAgentEnvironmentVariable(item);
|
|
190
|
+
if (!normalized || seenKeys.has(normalized.key)) {
|
|
191
|
+
continue;
|
|
192
|
+
}
|
|
193
|
+
seenKeys.add(normalized.key);
|
|
194
|
+
variables.push(normalized);
|
|
195
|
+
}
|
|
196
|
+
return { variables };
|
|
197
|
+
}
|
|
170
198
|
export function getAgentDatabaseConnectionById(config, connectionId) {
|
|
171
199
|
const normalizedId = normalizeDatabaseConnectionId(connectionId);
|
|
172
200
|
if (!normalizedId) {
|
|
@@ -188,11 +216,11 @@ export function normalizeAgentSettingsConfig(value, fallback) {
|
|
|
188
216
|
const codex = raw.codex && typeof raw.codex === "object" ? raw.codex : {};
|
|
189
217
|
const realtime = raw.realtime && typeof raw.realtime === "object" ? raw.realtime : {};
|
|
190
218
|
const git = raw.git && typeof raw.git === "object" ? raw.git : {};
|
|
191
|
-
const aws = raw.aws && typeof raw.aws === "object" ? raw.aws : {};
|
|
192
219
|
const jira = raw.jira && typeof raw.jira === "object" ? raw.jira : {};
|
|
193
220
|
const notion = raw.notion && typeof raw.notion === "object" ? raw.notion : {};
|
|
194
221
|
const slack = raw.slack && typeof raw.slack === "object" ? raw.slack : {};
|
|
195
222
|
const figma = raw.figma && typeof raw.figma === "object" ? raw.figma : {};
|
|
223
|
+
const env = raw.env && typeof raw.env === "object" ? raw.env : null;
|
|
196
224
|
const databases = raw.databases && typeof raw.databases === "object" ? raw.databases : null;
|
|
197
225
|
return {
|
|
198
226
|
general: {
|
|
@@ -218,15 +246,6 @@ export function normalizeAgentSettingsConfig(value, fallback) {
|
|
|
218
246
|
oauthLogin: git.oauthLogin === null ? null : normalizeNullableString(git.oauthLogin) ?? base.git.oauthLogin,
|
|
219
247
|
oauthScope: git.oauthScope === null ? null : normalizeNullableString(git.oauthScope) ?? base.git.oauthScope,
|
|
220
248
|
},
|
|
221
|
-
aws: {
|
|
222
|
-
enabled: typeof aws.enabled === "boolean" ? aws.enabled : base.aws.enabled,
|
|
223
|
-
accessKeyId: aws.accessKeyId === null ? null : normalizeNullableString(aws.accessKeyId) ?? base.aws.accessKeyId,
|
|
224
|
-
defaultRegion: aws.defaultRegion === null ? null : normalizeNullableString(aws.defaultRegion) ?? base.aws.defaultRegion,
|
|
225
|
-
secretAccessKey: aws.secretAccessKey === null
|
|
226
|
-
? null
|
|
227
|
-
: normalizeNullableString(aws.secretAccessKey) ?? base.aws.secretAccessKey,
|
|
228
|
-
sessionToken: aws.sessionToken === null ? null : normalizeNullableString(aws.sessionToken) ?? base.aws.sessionToken,
|
|
229
|
-
},
|
|
230
249
|
jira: {
|
|
231
250
|
baseUrl: jira.baseUrl === null ? null : normalizeNullableString(jira.baseUrl) ?? base.jira.baseUrl,
|
|
232
251
|
email: jira.email === null ? null : normalizeNullableString(jira.email) ?? base.jira.email,
|
|
@@ -249,6 +268,7 @@ export function normalizeAgentSettingsConfig(value, fallback) {
|
|
|
249
268
|
enabled: typeof figma.enabled === "boolean" ? figma.enabled : base.figma.enabled,
|
|
250
269
|
apiToken: figma.apiToken === null ? null : normalizeNullableString(figma.apiToken) ?? base.figma.apiToken,
|
|
251
270
|
},
|
|
271
|
+
env: normalizeAgentEnvironmentSettings(env, base.env),
|
|
252
272
|
databases: normalizeAgentDatabaseSettings(databases, base.databases),
|
|
253
273
|
};
|
|
254
274
|
}
|
|
@@ -300,8 +320,6 @@ function toMaskedSecret(value) {
|
|
|
300
320
|
export async function toAgentSettingsPublic(args) {
|
|
301
321
|
const realtimeKey = toMaskedSecret(args.config.realtime.apiKey);
|
|
302
322
|
const gitOauth = toMaskedSecret(args.config.git.oauthToken);
|
|
303
|
-
const awsSecret = toMaskedSecret(args.config.aws.secretAccessKey);
|
|
304
|
-
const awsSession = toMaskedSecret(args.config.aws.sessionToken);
|
|
305
323
|
const jiraToken = toMaskedSecret(args.config.jira.apiToken);
|
|
306
324
|
const notionToken = toMaskedSecret(args.config.notion.apiToken);
|
|
307
325
|
const slackToken = toMaskedSecret(args.config.slack.botToken);
|
|
@@ -339,17 +357,6 @@ export async function toAgentSettingsPublic(args) {
|
|
|
339
357
|
oauthLogin: args.config.git.oauthLogin,
|
|
340
358
|
oauthScope: args.config.git.oauthScope,
|
|
341
359
|
},
|
|
342
|
-
aws: {
|
|
343
|
-
enabled: args.config.aws.enabled,
|
|
344
|
-
accessKeyId: args.config.aws.accessKeyId,
|
|
345
|
-
defaultRegion: args.config.aws.defaultRegion,
|
|
346
|
-
hasSecretAccessKey: awsSecret.has,
|
|
347
|
-
secretAccessKeyMasked: awsSecret.masked,
|
|
348
|
-
secretAccessKeyLength: awsSecret.length,
|
|
349
|
-
hasSessionToken: awsSession.has,
|
|
350
|
-
sessionTokenMasked: awsSession.masked,
|
|
351
|
-
sessionTokenLength: awsSession.length,
|
|
352
|
-
},
|
|
353
360
|
jira: {
|
|
354
361
|
baseUrl: args.config.jira.baseUrl,
|
|
355
362
|
email: args.config.jira.email,
|
|
@@ -380,6 +387,12 @@ export async function toAgentSettingsPublic(args) {
|
|
|
380
387
|
apiTokenMasked: figmaToken.masked,
|
|
381
388
|
apiTokenLength: figmaToken.length,
|
|
382
389
|
},
|
|
390
|
+
env: {
|
|
391
|
+
variables: args.config.env.variables.map((variable) => ({
|
|
392
|
+
key: variable.key,
|
|
393
|
+
value: variable.value,
|
|
394
|
+
})),
|
|
395
|
+
},
|
|
383
396
|
databases: {
|
|
384
397
|
defaultConnectionId: args.config.databases.defaultConnectionId,
|
|
385
398
|
connections: args.config.databases.connections.map((connection) => ({
|
|
@@ -436,11 +449,6 @@ export function normalizeAgentSettingsPatch(value) {
|
|
|
436
449
|
move("gitOauthToken", "git", "oauthToken");
|
|
437
450
|
move("gitOauthLogin", "git", "oauthLogin");
|
|
438
451
|
move("gitOauthScope", "git", "oauthScope");
|
|
439
|
-
move("awsEnabled", "aws", "enabled");
|
|
440
|
-
move("awsAccessKeyId", "aws", "accessKeyId");
|
|
441
|
-
move("awsDefaultRegion", "aws", "defaultRegion");
|
|
442
|
-
move("awsSecretAccessKey", "aws", "secretAccessKey");
|
|
443
|
-
move("awsSessionToken", "aws", "sessionToken");
|
|
444
452
|
move("jiraBaseUrl", "jira", "baseUrl");
|
|
445
453
|
move("jiraEmail", "jira", "email");
|
|
446
454
|
move("jiraEnabled", "jira", "enabled");
|
|
@@ -455,6 +463,7 @@ export function normalizeAgentSettingsPatch(value) {
|
|
|
455
463
|
move("figmaBaseUrl", "figma", "baseUrl");
|
|
456
464
|
move("figmaEnabled", "figma", "enabled");
|
|
457
465
|
move("figmaApiToken", "figma", "apiToken");
|
|
466
|
+
move("environmentVariables", "env", "variables");
|
|
458
467
|
return patch;
|
|
459
468
|
}
|
|
460
469
|
export function buildAgentSettingsEnvPatch(config) {
|
|
@@ -477,18 +486,6 @@ export function buildAgentSettingsEnvPatch(config) {
|
|
|
477
486
|
if (config.git.oauthScope)
|
|
478
487
|
envPatch.DOER_GIT_OAUTH_SCOPE = config.git.oauthScope;
|
|
479
488
|
}
|
|
480
|
-
if (config.aws.enabled) {
|
|
481
|
-
if (config.aws.accessKeyId)
|
|
482
|
-
envPatch.AWS_ACCESS_KEY_ID = config.aws.accessKeyId;
|
|
483
|
-
if (config.aws.defaultRegion)
|
|
484
|
-
envPatch.AWS_DEFAULT_REGION = config.aws.defaultRegion;
|
|
485
|
-
if (config.aws.defaultRegion)
|
|
486
|
-
envPatch.AWS_REGION = config.aws.defaultRegion;
|
|
487
|
-
if (config.aws.secretAccessKey)
|
|
488
|
-
envPatch.AWS_SECRET_ACCESS_KEY = config.aws.secretAccessKey;
|
|
489
|
-
if (config.aws.sessionToken)
|
|
490
|
-
envPatch.AWS_SESSION_TOKEN = config.aws.sessionToken;
|
|
491
|
-
}
|
|
492
489
|
if (config.jira.enabled) {
|
|
493
490
|
if (config.jira.baseUrl)
|
|
494
491
|
envPatch.JIRA_BASE_URL = config.jira.baseUrl;
|
|
@@ -517,5 +514,8 @@ export function buildAgentSettingsEnvPatch(config) {
|
|
|
517
514
|
if (config.figma.apiToken)
|
|
518
515
|
envPatch.FIGMA_API_TOKEN = config.figma.apiToken;
|
|
519
516
|
}
|
|
517
|
+
for (const variable of config.env.variables) {
|
|
518
|
+
envPatch[variable.key] = variable.value;
|
|
519
|
+
}
|
|
520
520
|
return envPatch;
|
|
521
521
|
}
|