@qwen-code/arena-agent 0.0.10-dev.9 → 0.0.10-test.0

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.
Files changed (144) hide show
  1. package/.env.example +61 -10
  2. package/CHANGELOG.md +140 -11
  3. package/README.md +309 -46
  4. package/dist/agent.d.ts +20 -6
  5. package/dist/agent.js +303 -73
  6. package/dist/agent.js.map +1 -1
  7. package/dist/anthropic.d.ts +1 -1
  8. package/dist/anthropic.js +46 -57
  9. package/dist/anthropic.js.map +1 -1
  10. package/dist/arena-history.d.ts +12 -0
  11. package/dist/arena-history.js +119 -0
  12. package/dist/arena-history.js.map +1 -0
  13. package/dist/ask-user.js +44 -2
  14. package/dist/ask-user.js.map +1 -1
  15. package/dist/attachment-limits.d.ts +4 -0
  16. package/dist/attachment-limits.js +10 -0
  17. package/dist/attachment-limits.js.map +1 -0
  18. package/dist/attachments.d.ts +4 -2
  19. package/dist/attachments.js +9 -11
  20. package/dist/attachments.js.map +1 -1
  21. package/dist/brave-search.js +11 -7
  22. package/dist/brave-search.js.map +1 -1
  23. package/dist/canonical-data.d.ts +9 -0
  24. package/dist/canonical-data.js +12 -3
  25. package/dist/canonical-data.js.map +1 -1
  26. package/dist/cli.js +140 -40
  27. package/dist/cli.js.map +1 -1
  28. package/dist/code-tool-schema.d.ts +3 -0
  29. package/dist/code-tool-schema.js +92 -0
  30. package/dist/code-tool-schema.js.map +1 -0
  31. package/dist/code-tools.js +63 -26
  32. package/dist/code-tools.js.map +1 -1
  33. package/dist/compaction-threshold.d.ts +3 -0
  34. package/dist/compaction-threshold.js +6 -0
  35. package/dist/compaction-threshold.js.map +1 -0
  36. package/dist/compaction.d.ts +24 -7
  37. package/dist/compaction.js +242 -66
  38. package/dist/compaction.js.map +1 -1
  39. package/dist/config.d.ts +17 -0
  40. package/dist/config.js +30 -5
  41. package/dist/config.js.map +1 -1
  42. package/dist/connector-errors.d.ts +16 -0
  43. package/dist/connector-errors.js +69 -0
  44. package/dist/connector-errors.js.map +1 -0
  45. package/dist/connector-files.d.ts +31 -0
  46. package/dist/connector-files.js +249 -0
  47. package/dist/connector-files.js.map +1 -0
  48. package/dist/connector-input.d.ts +10 -0
  49. package/dist/connector-input.js +79 -0
  50. package/dist/connector-input.js.map +1 -0
  51. package/dist/connector-mcp.d.ts +60 -0
  52. package/dist/connector-mcp.js +474 -0
  53. package/dist/connector-mcp.js.map +1 -0
  54. package/dist/connectors.d.ts +13 -0
  55. package/dist/connectors.js +69 -0
  56. package/dist/connectors.js.map +1 -0
  57. package/dist/fetch-page.js +2 -2
  58. package/dist/fetch-page.js.map +1 -1
  59. package/dist/history.d.ts +15 -5
  60. package/dist/history.js +59 -14
  61. package/dist/history.js.map +1 -1
  62. package/dist/image-choice.d.ts +23 -0
  63. package/dist/image-choice.js +190 -0
  64. package/dist/image-choice.js.map +1 -0
  65. package/dist/image-input-fallback.js +5 -0
  66. package/dist/image-input-fallback.js.map +1 -1
  67. package/dist/image-model.d.ts +6 -0
  68. package/dist/image-model.js +32 -0
  69. package/dist/image-model.js.map +1 -0
  70. package/dist/midturn-checkpoint-hook.d.ts +14 -1
  71. package/dist/midturn-checkpoint-hook.js.map +1 -1
  72. package/dist/mode.js +1 -1
  73. package/dist/mode.js.map +1 -1
  74. package/dist/model-capabilities.js +18 -8
  75. package/dist/model-capabilities.js.map +1 -1
  76. package/dist/model-router-media.js +55 -3
  77. package/dist/model-router-media.js.map +1 -1
  78. package/dist/model-stream.d.ts +16 -0
  79. package/dist/model-stream.js +129 -0
  80. package/dist/model-stream.js.map +1 -0
  81. package/dist/openai-responses.d.ts +2 -1
  82. package/dist/openai-responses.js +85 -88
  83. package/dist/openai-responses.js.map +1 -1
  84. package/dist/process-manager.js +9 -9
  85. package/dist/process-manager.js.map +1 -1
  86. package/dist/prompts.d.ts +0 -2
  87. package/dist/prompts.js +10 -60
  88. package/dist/prompts.js.map +1 -1
  89. package/dist/protocol.d.ts +5 -1
  90. package/dist/protocol.js +23 -2
  91. package/dist/protocol.js.map +1 -1
  92. package/dist/provider.d.ts +18 -0
  93. package/dist/provider.js +120 -51
  94. package/dist/provider.js.map +1 -1
  95. package/dist/repo.d.ts +1 -1
  96. package/dist/repo.js +26 -4
  97. package/dist/repo.js.map +1 -1
  98. package/dist/routify-web-fetch.js +2 -2
  99. package/dist/routify-web-fetch.js.map +1 -1
  100. package/dist/server.js +55 -27
  101. package/dist/server.js.map +1 -1
  102. package/dist/session-memory-prompts.d.ts +3 -1
  103. package/dist/session-memory-prompts.js +4 -2
  104. package/dist/session-memory-prompts.js.map +1 -1
  105. package/dist/side-query.js +5 -0
  106. package/dist/side-query.js.map +1 -1
  107. package/dist/spec.d.ts +5 -4
  108. package/dist/spec.js +30 -11
  109. package/dist/spec.js.map +1 -1
  110. package/dist/startup-config.d.ts +39 -0
  111. package/dist/startup-config.js +347 -0
  112. package/dist/startup-config.js.map +1 -0
  113. package/dist/startup-main-config.d.ts +63 -0
  114. package/dist/startup-main-config.js +94 -0
  115. package/dist/startup-main-config.js.map +1 -0
  116. package/dist/startup-tool-config.d.ts +8 -0
  117. package/dist/startup-tool-config.js +116 -0
  118. package/dist/startup-tool-config.js.map +1 -0
  119. package/dist/summary-compaction.d.ts +29 -0
  120. package/dist/{legacy-compaction.js → summary-compaction.js} +79 -14
  121. package/dist/summary-compaction.js.map +1 -0
  122. package/dist/tools.d.ts +5 -1
  123. package/dist/tools.js +164 -54
  124. package/dist/tools.js.map +1 -1
  125. package/dist/tui.js +26 -6
  126. package/dist/tui.js.map +1 -1
  127. package/dist/types.d.ts +21 -1
  128. package/dist/web/app.js +30 -5
  129. package/dist/web/app.js.map +1 -1
  130. package/dist/workspace.js +61 -14
  131. package/dist/workspace.js.map +1 -1
  132. package/docs/BINARY_DISTRIBUTION.md +44 -8
  133. package/docs/MODES_AND_RELEASES.md +79 -6
  134. package/docs/SDK.md +1 -0
  135. package/modes/code-arena/capture-provenance.json +9 -6
  136. package/modes/code-arena/full-stack/dependencies.lock.json +8670 -0
  137. package/modes/code-arena/full-stack/system-prompt.txt +1 -1
  138. package/modes/code-arena/html/system-prompt.txt +1 -1
  139. package/modes/code-arena/react/dependencies.lock.json +2707 -0
  140. package/package.json +7 -2
  141. package/scripts/README.md +23 -4
  142. package/web/styles.css +22 -0
  143. package/dist/legacy-compaction.d.ts +0 -16
  144. package/dist/legacy-compaction.js.map +0 -1
package/dist/spec.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { fileURLToPath } from "node:url";
2
2
  import path from "node:path";
3
- import { codeArenaModeDataJson, messageFixtureJson, modelSpecJson, } from "./canonical-data.js";
3
+ import { appendConnectorPrompt, connectorDiscoveryTool, normalizeConnectors, } from "./connectors.js";
4
+ import { codeArenaModeDataJson, messageFixtureJson, modelSpecJson, legacyRepoSystemPromptTemplate, repoMergedNoticeTemplate, } from "./canonical-data.js";
4
5
  import { defaultStepLimit, isCodeArenaMode, } from "./mode.js";
5
6
  import { repoAgentSystemPromptTemplate, repoClosedSessionNotice } from "./prompts.js";
6
7
  import { isSingleExecutable } from "./runtime-assets.js";
@@ -160,7 +161,7 @@ function applyCodeArenaWorkspaceContext(content, workspaceContext) {
160
161
  "path is needed, use this real local path. Do not use virtual sandbox " +
161
162
  "aliases such as `/app` or `/home/user`.\n");
162
163
  }
163
- export function systemMessage(context, workspaceContext, mode = "arena", stepLimit) {
164
+ export function systemMessage(context, workspaceContext, mode = "arena", stepLimit, connectors, connectedConnectors) {
164
165
  if (isCodeArenaMode(mode)) {
165
166
  return {
166
167
  role: "system",
@@ -178,25 +179,33 @@ export function systemMessage(context, workspaceContext, mode = "arena", stepLim
178
179
  "user's local timezone.\n" +
179
180
  locationLine(context.location);
180
181
  canonical.content = canonical.content.replace(clientContextPattern, dynamicContext);
181
- return applyWorkspaceContext(canonical, workspaceContext);
182
+ const message = applyWorkspaceContext(canonical, workspaceContext);
183
+ message.content = appendConnectorPrompt(message.content, connectors, connectedConnectors);
184
+ return message;
182
185
  }
183
- export function repoSystemMessage(context, repo, mode = "arena", workspaceContext, stepLimit) {
186
+ export function repoSystemMessage(context, repo, mode = "arena", workspaceContext, stepLimit, connectors, connectedConnectors) {
184
187
  if (isCodeArenaMode(mode)) {
185
188
  return systemMessage(context, workspaceContext, mode, stepLimit);
186
189
  }
187
- const content = renderTemplate(repoAgentSystemPromptTemplate, {
190
+ // Legacy closed sessions have their own captured notice and no branch-status
191
+ // field. Preserve that fixture instead of pairing it with an active status.
192
+ const content = renderTemplate(repo.sessionStatus === "closed"
193
+ ? legacyRepoSystemPromptTemplate : repoAgentSystemPromptTemplate, {
188
194
  ...clientContextValues(context),
189
195
  slug: repo.slug,
190
196
  checkoutPath: repo.checkoutPath,
191
197
  branch: repo.branch,
192
198
  baseBranch: repo.baseBranch,
193
199
  baseCommit: repo.baseCommit,
200
+ branchStatus: repo.branchStatus ?? "active",
194
201
  });
195
202
  return {
196
203
  role: "system",
197
- content: repo.sessionStatus === "closed"
204
+ content: appendConnectorPrompt(repo.sessionStatus === "closed"
198
205
  ? content.trimEnd() + "\n\n" + repoClosedSessionNotice
199
- : content,
206
+ : repo.branchStatus === "pr_merged"
207
+ ? content.trimEnd() + "\n\n" + renderTemplate(repoMergedNoticeTemplate, { branch: repo.branch })
208
+ : content, connectors, connectedConnectors),
200
209
  };
201
210
  }
202
211
  /** Extract the stable repo session context encoded in a repo-mode prompt. */
@@ -208,13 +217,16 @@ export function repoContextFromSystemMessage(message) {
208
217
  const branch = message.content.match(/You are on a working branch `([^`]+)`, branched from commit `([^`]+)` of `([^`]+)`\./);
209
218
  if (!checkout || !branch)
210
219
  return undefined;
220
+ const branchStatus = message.content.match(/Current branch status: (pr_open|pr_merged)\./)?.[1];
211
221
  return {
212
222
  slug: checkout[1],
213
223
  checkoutPath: checkout[2],
214
224
  branch: branch[1],
215
225
  baseCommit: branch[2],
216
226
  baseBranch: branch[3],
227
+ ...(branchStatus ? { branchStatus } : {}),
217
228
  ...(message.content.endsWith("\n\n" + repoClosedSessionNotice)
229
+ || message.content.includes("\n\n" + repoClosedSessionNotice + "\n## Connected apps\n")
218
230
  ? { sessionStatus: "closed" }
219
231
  : {}),
220
232
  };
@@ -238,11 +250,11 @@ export function isCanonicalSystemMessage(message, expectedOrWorkspace, mode = "a
238
250
  return (message.content.replace(clientContextPattern, "<client-context>") ===
239
251
  canonical.content.replace(clientContextPattern, "<client-context>"));
240
252
  }
241
- export function initialMessages(prompt, context = defaultClientContext(), workspaceContext, repo, mode = "arena", stepLimit) {
253
+ export function initialMessages(prompt, context = defaultClientContext(), workspaceContext, repo, mode = "arena", stepLimit, connectors, connectedConnectors) {
242
254
  return [
243
255
  repo
244
- ? repoSystemMessage(context, repo, mode, workspaceContext, stepLimit)
245
- : systemMessage(context, workspaceContext, mode, stepLimit),
256
+ ? repoSystemMessage(context, repo, mode, workspaceContext, stepLimit, connectors, connectedConnectors)
257
+ : systemMessage(context, workspaceContext, mode, stepLimit, connectors, connectedConnectors),
246
258
  { role: "user", content: prompt },
247
259
  ];
248
260
  }
@@ -296,11 +308,18 @@ function codeArenaToolDefinitions(mode, workspaceContext) {
296
308
  }
297
309
  return definitions;
298
310
  }
299
- export function toolDefinitions(workspaceContext, mode = "arena") {
311
+ export function toolDefinitions(workspaceContext, mode = "arena", connectors, connectedConnectors) {
300
312
  if (isCodeArenaMode(mode)) {
301
313
  return codeArenaToolDefinitions(mode, workspaceContext);
302
314
  }
303
315
  const definitions = structuredClone(modelSpec().tools);
316
+ if (normalizeConnectors(connectors).length || connectedConnectors !== undefined) {
317
+ const discovery = connectorDiscoveryTool();
318
+ // In captures using the current alphabetical core, discovery belongs
319
+ // between image_search and present_file. Keep all core tools in place.
320
+ const next = definitions.findIndex(tool => tool.function.name > discovery.function.name);
321
+ definitions.splice(next < 0 ? definitions.length : next, 0, discovery);
322
+ }
304
323
  if (!workspaceContext)
305
324
  return definitions;
306
325
  const root = path.resolve(workspaceContext.root);
package/dist/spec.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"spec.js","sourceRoot":"","sources":["../src/spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spec.js","sourceRoot":"","sources":["../src/spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { type ArenaConfig } from "./config.js";
2
+ import type { OutputFormat, StreamHistory } from "./protocol.js";
3
+ import { type ModelRequestObservation, type ModelRequestObserver } from "./provider.js";
4
+ export interface StartupConfigContext {
5
+ version: string;
6
+ sessionId: string;
7
+ output: OutputFormat;
8
+ streamHistory?: StreamHistory;
9
+ continueFromHistory: boolean;
10
+ singleStep: boolean;
11
+ restoreSessionMemory?: boolean;
12
+ historyFile: string;
13
+ cwd?: string;
14
+ history?: {
15
+ loaded: boolean;
16
+ messageCount: number;
17
+ source: "--history-file" | "session";
18
+ modelFromHistory: boolean;
19
+ modeFromHistory: boolean;
20
+ sessionMemoryAvailable: boolean;
21
+ };
22
+ checkpointHook?: string;
23
+ /** Captured before loading the workspace .env, like the checkpoint settings. */
24
+ hostEnvironment: NodeJS.ProcessEnv;
25
+ workspaceEnv: NodeJS.ProcessEnv;
26
+ workspaceEnvFile?: {
27
+ path: string;
28
+ status: "loaded" | "missing" | "error";
29
+ errorCode?: string;
30
+ };
31
+ arguments?: Record<string, unknown>;
32
+ }
33
+ export declare const startupEnvironmentAliases: readonly ["ARENA_MODEL", "ARENA_API_BASE", "ARENA_API_KEY", "ARENA_MODE", "CODE_HARNESS_MODE", "CODE_HARNESS_MAX_STEPS", "ARENA_MAX_AGENT_STEPS", "ARENA_CODE_STREAM_HISTORY", "CODE_HARNESS_TOOL_MAX_RETRIES", "ANTHROPIC_BASE_URL", "ANTHROPIC_API_KEY", "GEMINI_API_KEY", "GOOGLE_API_KEY", "http_proxy", "https_proxy", "no_proxy", "FORCE_COLOR", "CLICOLOR_FORCE"];
34
+ /** Static inventory used by the coverage check for environment consumers. */
35
+ export declare function startupEnvironmentNames(): Set<string>;
36
+ export declare function startupConfigSnapshot(config: ArenaConfig, context: StartupConfigContext): Record<string, unknown>;
37
+ /** Summarize the body the transport actually prepared, without copying prompts or tool schemas. */
38
+ export declare function modelRequestConfigSnapshot(observation: ModelRequestObservation): Record<string, unknown>;
39
+ export declare function logStartupConfig(config: ArenaConfig, context: StartupConfigContext): Promise<ModelRequestObserver | undefined>;
@@ -0,0 +1,347 @@
1
+ import crypto from "node:crypto";
2
+ import { existsSync, realpathSync } from "node:fs";
3
+ import path from "node:path";
4
+ import { agentArenaCompactionThreshold } from "./compaction-threshold.js";
5
+ import { modelInputCapabilities, supportsModelInput } from "./config.js";
6
+ import { modelCallLogPath } from "./history.js";
7
+ import { isCodeArenaMode } from "./mode.js";
8
+ import { JsonlModelCallDiagnostics, redactSensitiveText, safeEndpoint } from "./model-diagnostics.js";
9
+ import { modelTransport, resolveApiConnectionDetails } from "./provider.js";
10
+ import { privilegedFileCreationEnabled } from "./sandbox-file-write.js";
11
+ import { startupMainConfig, startupMainEnvironmentNames } from "./startup-main-config.js";
12
+ import { startupToolConfig } from "./startup-tool-config.js";
13
+ const sensitiveKey = /(?:api.?key|access.?key|authorization|bearer|credential|password|passwd|secret|cookie|token)(?:$|[_-])/i;
14
+ const contentKey = /^(?:systemPrompt|appendSystemPrompt|prompt|messages|input|instructions|tools|content|--prompt|--system-prompt|--append-system-prompt)$/i;
15
+ const environmentContentKey = /_(?:PROMPT|MESSAGES|INPUT|INSTRUCTIONS|CONTENT)$/i;
16
+ const contentNamedBoolean = /^(?:ARENA_EXCLUDE_QWEN_FROM_SYSTEM_PROMPT|ARENA_MODEL_SUPPORTS_(?:IMAGE|VIDEO|AUDIO)_INPUT)$/;
17
+ const relatedEnvironment = /^(?:ARENA_|CODE_HARNESS_|OPENAI_|ANTHROPIC_|GEMINI_|GOOGLE_API_KEY$|ROUTIFY_|PEXELS_|HARBOR_REMOTE_COMMAND_|https?_proxy$|no_proxy$|E2B_SANDBOX_ID$|NO_COLOR$|FORCE_COLOR$|CLICOLOR_FORCE$)/i;
18
+ // Aliases remain visible in inputs; config uses the primary setting name.
19
+ export const startupEnvironmentAliases = [
20
+ "ARENA_MODEL", "ARENA_API_BASE", "ARENA_API_KEY", "ARENA_MODE", "CODE_HARNESS_MODE",
21
+ "CODE_HARNESS_MAX_STEPS", "ARENA_MAX_AGENT_STEPS", "ARENA_CODE_STREAM_HISTORY",
22
+ "CODE_HARNESS_TOOL_MAX_RETRIES", "ANTHROPIC_BASE_URL", "ANTHROPIC_API_KEY",
23
+ "GEMINI_API_KEY", "GOOGLE_API_KEY", "http_proxy", "https_proxy", "no_proxy",
24
+ "FORCE_COLOR", "CLICOLOR_FORCE",
25
+ ];
26
+ // Arbitrary extra-body strings may contain user content or credentials under
27
+ // nonstandard keys. Only ordinary generation controls are printed verbatim.
28
+ const extraBodyTextKey = /^(?:model|reasoning_effort|effort|type|tool_choice|result_format|verbosity|summary|service_tier)$/;
29
+ function contentSummary(value) {
30
+ const text = typeof value === "string" ? value : JSON.stringify(value);
31
+ return {
32
+ chars: text.length,
33
+ sha256: crypto.createHash("sha256").update(text).digest("hex"),
34
+ };
35
+ }
36
+ function credentialState(value) {
37
+ return value ? "[set]" : "[unset]";
38
+ }
39
+ function safeUrl(value) {
40
+ try {
41
+ const url = new URL(value);
42
+ if (url.protocol !== "http:" && url.protocol !== "https:")
43
+ return "[invalid URL]";
44
+ return safeEndpoint(value);
45
+ }
46
+ catch {
47
+ // Invalid URLs can still contain credentials; never echo them verbatim.
48
+ return "[invalid URL]";
49
+ }
50
+ }
51
+ function safeConfigValue(value, key = "", extraBody = false, depth = 0) {
52
+ if (sensitiveKey.test(key))
53
+ return credentialState(value);
54
+ if (value === undefined)
55
+ return null;
56
+ if (key === "ARENA_EXTRA_BODY" && typeof value === "string") {
57
+ try {
58
+ return safeConfigValue(JSON.parse(value), key, true, depth);
59
+ }
60
+ catch {
61
+ return { invalidJson: true, ...contentSummary(value) };
62
+ }
63
+ }
64
+ if ((contentKey.test(key) || (environmentContentKey.test(key) && !contentNamedBoolean.test(key)))
65
+ && value !== null)
66
+ return contentSummary(value);
67
+ if (depth >= 8)
68
+ return "[omitted: nested value]";
69
+ if (typeof value === "string") {
70
+ if ((extraBody && !extraBodyTextKey.test(key)) || value.length > 1024)
71
+ return contentSummary(value);
72
+ if (/(?:url|apiBase|_API_BASE|^https?_proxy)$/i.test(key) || /^https?:\/\//i.test(value))
73
+ return value ? safeUrl(value) : value;
74
+ return redactSensitiveText(value);
75
+ }
76
+ if (Array.isArray(value)) {
77
+ return value.length > 64 ? contentSummary(value)
78
+ : value.map(item => safeConfigValue(item, key, extraBody, depth + 1));
79
+ }
80
+ if (value && typeof value === "object") {
81
+ return Object.fromEntries(Object.entries(value).map(([name, item]) => [
82
+ name, safeConfigValue(item, name, extraBody || name === "extraBody" || name === "ARENA_EXTRA_BODY", depth + 1),
83
+ ]));
84
+ }
85
+ if (typeof value === "number" && !Number.isFinite(value))
86
+ return `[invalid number: ${value}]`;
87
+ return value;
88
+ }
89
+ function connectionSummary(config, requestedModel = config.model, options) {
90
+ if (!options && requestedModel === config.model && requestedModel.startsWith("mock/"))
91
+ return { protocol: "mock" };
92
+ const protocol = modelTransport(config, requestedModel, options);
93
+ try {
94
+ const { connection, sources } = resolveApiConnectionDetails(config, requestedModel, options);
95
+ // The resolver identifies the selected slot. Map config slots back to an
96
+ // environment input only when it actually supplied that value.
97
+ const inputSource = (value, names, fallback) => {
98
+ const selected = names.find(name => process.env[name]);
99
+ return selected && process.env[selected] === value ? selected : fallback;
100
+ };
101
+ return {
102
+ protocol,
103
+ provider: connection.provider,
104
+ model: connection.model,
105
+ baseUrl: connection.baseUrl,
106
+ apiKey: connection.apiKey,
107
+ sources: {
108
+ baseUrl: sources.baseUrl === "config.apiBase"
109
+ ? inputSource(config.apiBase, ["OPENAI_BASE_URL", "ARENA_API_BASE"], sources.baseUrl)
110
+ : sources.baseUrl === "connection.baseUrl"
111
+ ? inputSource(options?.baseUrl, ["ARENA_IMAGE_INPUT_FALLBACK_BASE_URL"], sources.baseUrl)
112
+ : sources.baseUrl,
113
+ credential: sources.credential === "config.apiKey"
114
+ ? inputSource(config.apiKey, ["OPENAI_API_KEY", "ARENA_API_KEY"], sources.credential)
115
+ : sources.credential === "connection.apiKey"
116
+ ? inputSource(options?.apiKey, ["ARENA_IMAGE_INPUT_FALLBACK_API_KEY"], sources.credential)
117
+ : sources.credential,
118
+ },
119
+ };
120
+ }
121
+ catch {
122
+ // Logging must not move a missing-key failure out of the agent's normal
123
+ // result/error path (or require credentials for a mock run).
124
+ return { protocol, apiKey: null, status: "missing_api_key" };
125
+ }
126
+ }
127
+ function safeConnectionSummary(connection) {
128
+ const { sources, ...values } = connection;
129
+ // Sources are names produced above, never credentials or endpoint values.
130
+ // Keep them outside value sanitization so "credential" and "baseUrl" do
131
+ // not get mistaken for the corresponding sensitive values.
132
+ return {
133
+ ...safeConfigValue(values),
134
+ ...(sources ? { sources } : {}),
135
+ };
136
+ }
137
+ function modelInputSummary(config) {
138
+ const detected = modelInputCapabilities(config.model);
139
+ const protocol = config.model.startsWith("mock/") ? "mock" : modelTransport(config);
140
+ const source = (override, variable) => override !== undefined ? variable
141
+ : detected.known ? "model_registry" : "unknown_model_default";
142
+ return {
143
+ model: config.model,
144
+ normalizedModel: detected.normalizedModel,
145
+ registryKnown: detected.known,
146
+ registryRule: detected.rule ?? null,
147
+ transport: {
148
+ protocol,
149
+ // Model permission and wire encoding are separate: the native encoders
150
+ // currently convert user content to text and image blocks only.
151
+ userContent: protocol === "mock" ? "mock"
152
+ : protocol === "openai-chat-completions" ? "passthrough" : "text_and_images_only",
153
+ },
154
+ ...(config.extraBody && Object.hasOwn(config.extraBody, "model")
155
+ ? { requestModelOverride: config.extraBody.model } : {}),
156
+ inputAllowed: {
157
+ text: true,
158
+ image: supportsModelInput(config, "image"),
159
+ video: supportsModelInput(config, "video"),
160
+ audio: supportsModelInput(config, "audio"),
161
+ },
162
+ sources: {
163
+ text: "text_chat",
164
+ image: source(config.modelSupportsImageInput, "ARENA_MODEL_SUPPORTS_IMAGE_INPUT"),
165
+ video: source(config.modelSupportsVideoInput, "ARENA_MODEL_SUPPORTS_VIDEO_INPUT"),
166
+ audio: source(config.modelSupportsAudioInput, "ARENA_MODEL_SUPPORTS_AUDIO_INPUT"),
167
+ },
168
+ };
169
+ }
170
+ function imageFallbackSummary(config) {
171
+ const model = config.imageInputFallbackModel?.trim() || null;
172
+ const reason = isCodeArenaMode(config.mode) ? "not_used_in_code_arena"
173
+ : supportsModelInput(config, "image") ? "main_model_allows_images"
174
+ : !model ? "not_configured" : "main_model_disallows_images";
175
+ const enabled = reason === "main_model_disallows_images";
176
+ // Match the independent-client selection in Agent/ToolExecutor. A partial
177
+ // independent connection does not inherit the main endpoint or credential.
178
+ const independent = Boolean(config.imageInputFallbackBaseUrl
179
+ || config.imageInputFallbackApiKey || config.imageInputFallbackProtocol);
180
+ const connection = !enabled ? null
181
+ : !independent && config.model.startsWith("mock/") ? { protocol: "mock" }
182
+ : connectionSummary(config, model, independent ? {
183
+ baseUrl: config.imageInputFallbackBaseUrl,
184
+ apiKey: config.imageInputFallbackApiKey,
185
+ protocol: config.imageInputFallbackProtocol,
186
+ } : undefined);
187
+ return {
188
+ model: safeConfigValue(model, "model"),
189
+ enabled,
190
+ reason,
191
+ scope: "read_file_images",
192
+ connectionMode: enabled ? independent ? "independent" : "shared_main_client" : null,
193
+ connection: connection ? safeConnectionSummary(connection) : null,
194
+ };
195
+ }
196
+ function environmentInputs(env) {
197
+ return Object.fromEntries(Object.entries(env)
198
+ .filter(([name, value]) => value !== undefined && relatedEnvironment.test(name))
199
+ .sort(([left], [right]) => left.localeCompare(right))
200
+ .map(([name, value]) => [name, safeConfigValue(value, name)]));
201
+ }
202
+ /** Static inventory used by the coverage check for environment consumers. */
203
+ export function startupEnvironmentNames() {
204
+ return new Set([
205
+ ...startupMainEnvironmentNames,
206
+ ...Object.keys(startupToolConfig("arena", {}, {})),
207
+ ...startupEnvironmentAliases,
208
+ "ARENA_STREAM_HISTORY", "ARENA_CONFIG_LOGGING",
209
+ ]);
210
+ }
211
+ export function startupConfigSnapshot(config, context) {
212
+ const modelLogFile = modelCallLogPath(config.stateRoot, config.tenantId, context.sessionId);
213
+ const codeArena = isCodeArenaMode(config.mode);
214
+ const usesHttpClient = !config.model.startsWith("mock/") || Boolean(config.imageInputFallbackModel && (config.imageInputFallbackBaseUrl
215
+ || config.imageInputFallbackApiKey || config.imageInputFallbackProtocol));
216
+ const connection = connectionSummary(config);
217
+ const restoreSessionMemory = !codeArena && config.compactionMode !== "summary"
218
+ && (context.restoreSessionMemory ?? config.restoreSessionMemory ?? true);
219
+ const compactionThresholdTokens = codeArena
220
+ ? config.contextWindow * config.contextCompactionRatio
221
+ : agentArenaCompactionThreshold(config.contextWindow, config.contextCompactionRatio, config.compactionThresholdTokens);
222
+ let workspaceReal = config.workspace;
223
+ try {
224
+ workspaceReal = realpathSync(config.workspace);
225
+ }
226
+ catch { /* Agent validates the workspace. */ }
227
+ const effectiveConfig = {
228
+ ...startupMainConfig(config),
229
+ ...startupToolConfig(config.mode, process.env, context.hostEnvironment),
230
+ ...(connection.protocol === "mock" ? {} : {
231
+ OPENAI_BASE_URL: connection.baseUrl ?? config.apiBase,
232
+ OPENAI_API_KEY: connection.apiKey ?? config.apiKey,
233
+ }),
234
+ ARENA_STREAM_HISTORY: context.streamHistory ?? null,
235
+ ARENA_RESTORE_SESSION_MEMORY: restoreSessionMemory,
236
+ ARENA_MODEL_SUPPORTS_IMAGE_INPUT: supportsModelInput(config, "image"),
237
+ ARENA_MODEL_SUPPORTS_VIDEO_INPUT: supportsModelInput(config, "video"),
238
+ ARENA_MODEL_SUPPORTS_AUDIO_INPUT: supportsModelInput(config, "audio"),
239
+ compactionThresholdTokens,
240
+ privilegedFileCreationEnabled: !codeArena && privilegedFileCreationEnabled({
241
+ platform: process.platform, workspace: workspaceReal, docker: existsSync("/.dockerenv"),
242
+ flag: process.env.ARENA_SANDBOX_PRIVILEGED_FILE_CREATION, uid: process.getuid?.(),
243
+ }),
244
+ ...(config.mergeConnectors ? {
245
+ ARENA_MERGE_API_BASE: config.mergeConnectors.apiBase || "https://ah-api.merge.dev",
246
+ ARENA_CONNECTOR_TIMEOUT_MS: config.mergeConnectors.timeoutMs ?? 60_000,
247
+ } : {}),
248
+ };
249
+ return {
250
+ event: "startup_config",
251
+ version: context.version,
252
+ timestamp: new Date().toISOString(),
253
+ // These are resolved harness settings. Providers map them to their wire
254
+ // format and apply extraBody; this is deliberately not a request-body log.
255
+ config: {
256
+ ...safeConfigValue(effectiveConfig),
257
+ systemPrompt: config.systemPrompt === undefined ? "default" : contentSummary(config.systemPrompt),
258
+ appendSystemPrompt: config.appendSystemPrompt === undefined ? null : contentSummary(config.appendSystemPrompt),
259
+ },
260
+ connection: safeConnectionSummary(connection),
261
+ modelInput: safeConfigValue(modelInputSummary(config)),
262
+ imageFallback: imageFallbackSummary(config),
263
+ run: {
264
+ sessionId: context.sessionId,
265
+ cwd: context.cwd ?? config.workspace,
266
+ output: context.output,
267
+ streamHistory: context.streamHistory ?? null,
268
+ continueFromHistory: context.continueFromHistory,
269
+ singleStep: context.singleStep,
270
+ restoreSessionMemory,
271
+ compactionThresholdTokens,
272
+ inputAllowed: {
273
+ image: supportsModelInput(config, "image"),
274
+ video: supportsModelInput(config, "video"),
275
+ audio: supportsModelInput(config, "audio"),
276
+ },
277
+ historyFile: context.historyFile,
278
+ ...(context.history ? { history: context.history } : {}),
279
+ configLogFile: path.join(path.dirname(modelLogFile), "startup-config.jsonl"),
280
+ modelCallLogFile: config.modelCallLogging === false || !usesHttpClient
281
+ ? null : modelLogFile,
282
+ checkpointHook: context.checkpointHook ?? null,
283
+ },
284
+ // Preserve inputs separately, including overridden .env values and aliases.
285
+ // Presence here does not imply a variable is recognized or consumed.
286
+ inputs: {
287
+ environment: environmentInputs(context.hostEnvironment),
288
+ workspaceEnv: environmentInputs(context.workspaceEnv),
289
+ ...(context.workspaceEnvFile ? { workspaceEnvFile: context.workspaceEnvFile } : {}),
290
+ arguments: safeConfigValue(context.arguments ?? {}),
291
+ },
292
+ };
293
+ }
294
+ /** Summarize the body the transport actually prepared, without copying prompts or tool schemas. */
295
+ export function modelRequestConfigSnapshot(observation) {
296
+ const { body } = observation;
297
+ const tools = Array.isArray(body.tools) ? body.tools : [];
298
+ const parameters = Object.fromEntries(Object.entries(body).filter(([name]) => !["model", "messages", "input", "tools"].includes(name)));
299
+ return {
300
+ protocol: observation.protocol,
301
+ provider: observation.provider,
302
+ endpoint: safeUrl(observation.endpoint),
303
+ model: safeConfigValue(body.model, "model"),
304
+ // Extra-body values can replace any wire parameter. Apply the same content
305
+ // redaction even when a provider mapping introduced the final field name.
306
+ parameters: safeConfigValue(parameters, "", true),
307
+ tools: {
308
+ count: tools.length,
309
+ sha256: crypto.createHash("sha256").update(JSON.stringify(tools)).digest("hex"),
310
+ names: tools.map(tool => {
311
+ const name = tool?.function?.name ?? tool?.name;
312
+ return typeof name === "string" ? safeConfigValue(name, "name") : null;
313
+ }),
314
+ },
315
+ };
316
+ }
317
+ export async function logStartupConfig(config, context) {
318
+ if (["0", "false", "no"].includes((process.env.ARENA_CONFIG_LOGGING ?? "").toLowerCase()))
319
+ return;
320
+ const snapshot = startupConfigSnapshot(config, context);
321
+ const run = snapshot.run;
322
+ const diagnostics = new JsonlModelCallDiagnostics(run.configLogFile);
323
+ const record = async (event) => {
324
+ process.stderr.write(`[arena:config] ${JSON.stringify(event)}\n`);
325
+ await diagnostics.record(event);
326
+ };
327
+ await record(snapshot);
328
+ // Requests can change after connector discovery, compaction, or fallback.
329
+ // Log each distinct configuration once per invocation, not every tool step.
330
+ const seen = new Set();
331
+ return async (observation) => {
332
+ const requestConfig = modelRequestConfigSnapshot(observation);
333
+ const signature = JSON.stringify(requestConfig);
334
+ if (seen.has(signature))
335
+ return;
336
+ seen.add(signature);
337
+ await record({
338
+ event: "model_request_config",
339
+ version: context.version,
340
+ timestamp: new Date().toISOString(),
341
+ sessionId: context.sessionId,
342
+ callId: observation.callId,
343
+ ...requestConfig,
344
+ });
345
+ };
346
+ }
347
+ //# sourceMappingURL=startup-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startup-config.js","sourceRoot":"","sources":["../src/startup-config.ts"],"names":[],"mappings":"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"}