cowork-harness 3.2.0 → 3.3.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.
@@ -0,0 +1,879 @@
1
+ {
2
+ "baselineVersion": 1,
3
+ "appVersion": "1.40609.1",
4
+ "agentVersion": "2.1.255",
5
+ "agentBinary": {
6
+ "stagedPath": "~/Library/Application Support/Claude/claude-code-vm/2.1.255/claude",
7
+ "format": "elf-aarch64",
8
+ "nativeStagedPath": "~/Library/Application Support/Claude/claude-code/2.1.255/claude.app/Contents/MacOS/claude",
9
+ "sha256": "31822816a0d92b4b0324d84b99d349f25d3f252aca06edf964d7324f23e1bec7",
10
+ "shaProvenance": "measured-local",
11
+ "manifestChecksumMatch": true,
12
+ "stringSentinels": {
13
+ "tengu_saddle_lantern": 2
14
+ },
15
+ "releaseBaseUrl": "https://downloads.claude.ai/claude-code-releases/rc/aa8f2d981f0481a41774e243a213e29dfe810e1f"
16
+ },
17
+ "guest": {
18
+ "os": "linux",
19
+ "arch": "arm64",
20
+ "baseImage": "ubuntu:22.04"
21
+ },
22
+ "spawn": {
23
+ "configDirInGuest": "mnt/.claude",
24
+ "settingSources": [
25
+ "user"
26
+ ],
27
+ "permissionMode": "default",
28
+ "maxThinkingTokens": 31999,
29
+ "effortDefault": "medium",
30
+ "effortByModel": {
31
+ "claude-haiku-4-5": {
32
+ "modes": [
33
+ "extended"
34
+ ]
35
+ },
36
+ "claude-sonnet-4-5": {
37
+ "modes": [
38
+ "extended"
39
+ ]
40
+ },
41
+ "claude-sonnet-4-6": {
42
+ "effortLevels": [
43
+ "low",
44
+ "medium",
45
+ "high",
46
+ "max"
47
+ ],
48
+ "recommended": "low",
49
+ "modes": [
50
+ "auto"
51
+ ]
52
+ },
53
+ "claude-sonnet-5": {
54
+ "effortLevels": [
55
+ "low",
56
+ "medium",
57
+ "high",
58
+ "xhigh",
59
+ "max"
60
+ ],
61
+ "recommended": "medium",
62
+ "modes": [
63
+ "auto"
64
+ ]
65
+ },
66
+ "claude-opus-4-6": {
67
+ "effortLevels": [
68
+ "low",
69
+ "medium",
70
+ "high",
71
+ "max"
72
+ ],
73
+ "recommended": "medium",
74
+ "modes": [
75
+ "extended"
76
+ ]
77
+ },
78
+ "claude-opus-4-7": {
79
+ "effortLevels": [
80
+ "low",
81
+ "medium",
82
+ "high",
83
+ "xhigh",
84
+ "max"
85
+ ],
86
+ "recommended": "xhigh",
87
+ "modes": [
88
+ "auto"
89
+ ]
90
+ },
91
+ "claude-opus-4-8": {
92
+ "effortLevels": [
93
+ "low",
94
+ "medium",
95
+ "high",
96
+ "xhigh",
97
+ "max"
98
+ ],
99
+ "recommended": "high",
100
+ "modes": [
101
+ "auto"
102
+ ]
103
+ },
104
+ "claude-opus-5": {
105
+ "effortLevels": [
106
+ "low",
107
+ "medium",
108
+ "high",
109
+ "xhigh",
110
+ "max"
111
+ ],
112
+ "recommended": "high",
113
+ "modes": [
114
+ "auto"
115
+ ],
116
+ "disallowThinkingDisabled": true
117
+ }
118
+ },
119
+ "effortRegexDefault": {
120
+ "pattern": "^(?:claude-)?(?:fable|mythos)(?:-|$)",
121
+ "effortLevels": [
122
+ "low",
123
+ "medium",
124
+ "high",
125
+ "xhigh",
126
+ "max"
127
+ ],
128
+ "recommended": "high",
129
+ "modes": [
130
+ "auto"
131
+ ],
132
+ "disallowThinkingDisabled": true
133
+ },
134
+ "tools": [
135
+ "Task",
136
+ "Bash",
137
+ "Glob",
138
+ "Grep",
139
+ "Read",
140
+ "Edit",
141
+ "Write",
142
+ "NotebookEdit",
143
+ "WebFetch",
144
+ "TaskCreate",
145
+ "TaskUpdate",
146
+ "TaskGet",
147
+ "TaskList",
148
+ "TaskStop",
149
+ "WebSearch",
150
+ "Skill",
151
+ "REPL",
152
+ "JavaScript",
153
+ "AskUserQuestion",
154
+ "ToolSearch"
155
+ ],
156
+ "allowedTools": [
157
+ "Task",
158
+ "Bash",
159
+ "Glob",
160
+ "Grep",
161
+ "Read",
162
+ "Edit",
163
+ "Write",
164
+ "NotebookEdit",
165
+ "WebFetch",
166
+ "TaskCreate",
167
+ "TaskUpdate",
168
+ "TaskGet",
169
+ "TaskList",
170
+ "TaskStop",
171
+ "WebSearch",
172
+ "Skill",
173
+ "REPL",
174
+ "JavaScript",
175
+ "ToolSearch"
176
+ ],
177
+ "env": {
178
+ "CLAUDE_CODE_IS_COWORK": "1",
179
+ "CLAUDE_CODE_ENTRYPOINT": "local-agent",
180
+ "CLAUDE_CODE_TAGS": "lam_session_type:chat",
181
+ "CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST": "1",
182
+ "CLAUDE_CODE_ENABLE_ASK_USER_QUESTION_TOOL": "true",
183
+ "CLAUDE_CODE_DISABLE_CRON": "1",
184
+ "CLAUDE_CODE_DISABLE_BACKGROUND_TASKS": "1",
185
+ "CLAUDE_CODE_DISABLE_AGENTS_FLEET": "1",
186
+ "CLAUDE_CODE_ENABLE_APPEND_SUBAGENT_PROMPT": "1",
187
+ "CLAUDE_CODE_ENABLE_TASKS": "true",
188
+ "CLAUDE_CODE_DISABLE_TERMINAL_TITLE": "1",
189
+ "ENABLE_PROMPT_CACHING_1H": "1",
190
+ "DISABLE_MICROCOMPACT": "1",
191
+ "MCP_CONNECTION_NONBLOCKING": "true",
192
+ "API_TIMEOUT_MS": "900000",
193
+ "CLAUDE_CODE_EMIT_TOOL_USE_SUMMARIES": "",
194
+ "CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING": "1",
195
+ "DISABLE_AUTOUPDATER": "1",
196
+ "MCP_TOOL_TIMEOUT": "180000",
197
+ "USE_LOCAL_OAUTH": "",
198
+ "USE_STAGING_OAUTH": "",
199
+ "CLAUDE_PREVIEW_CLASSIFIER_FLOOR": "1",
200
+ "CLAUDE_CODE_PROMPT_CACHE_TTL": "1h",
201
+ "CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL": "5m"
202
+ },
203
+ "promptTemplate": "prompts/desktop-1.18286.0/system-prompt-append.md",
204
+ "subagentAppend": "prompts/desktop-1.15200.0/subagent-append-vm.md",
205
+ "subagentAppendHostLoop": "prompts/desktop-1.32885.1/subagent-append-hl.md",
206
+ "hooks": {
207
+ "PreToolUse": [
208
+ {
209
+ "matcher": "Task",
210
+ "note": "blocks run_in_background ('Background agents disabled'); emits subagent_invoked telemetry",
211
+ "served": true
212
+ },
213
+ {
214
+ "matcher": "Skill",
215
+ "note": "emits skill_invoked telemetry (plugin name/source/id/marketplace); logs cowork_consolidate_memory_called; injects per-skill additionalContext",
216
+ "served": false
217
+ },
218
+ {
219
+ "matcher": "COWORK_FORCE_ASK_TOOLS|MCP_{CREATE,UPDATE,DELETE}_SCHEDULED_TASK|MCP_{START,STOP}_WATCHING",
220
+ "note": "permissionDecision:'ask' regardless of permission mode",
221
+ "served": false
222
+ },
223
+ {
224
+ "matcher": "mcp__.*",
225
+ "note": "remote-MCP deny hook (evaluateRemoteMcpDenyHook) -> decision:'block'",
226
+ "served": false
227
+ }
228
+ ],
229
+ "PostToolUse": [
230
+ {
231
+ "matcher": "WebSearch",
232
+ "note": "seeds session.webFetchAllowedUrls from search results (ingestWebSearchResultForProvenance) - a WebSearch WIDENS the web_fetch allowlist",
233
+ "served": false
234
+ }
235
+ ],
236
+ "UserPromptSubmit": [
237
+ {
238
+ "matcher": null,
239
+ "note": "expands a leading /slash command into hookSpecificOutput.additionalContext",
240
+ "served": false
241
+ }
242
+ ]
243
+ },
244
+ "$comment": "Binary-verified Desktop->agent spawn contract, re-derived per release. spawn.env is GENERATED by deriveSpawnEnv() in src/sync/cowork-sync.ts (windowed enumeration of the asar env construction + gate/const value resolution); the scalar options, tools/allowedTools, and prompt-asset pointers are sentinel-guarded by checkSpawnContractFacts(). Do not hand-edit spawn.env — re-run sync.",
245
+ "$comment_handPinned": "Why the NON-env spawn fields stay hand-pinned: each is built in the asar as a non-literal expression (a session-path template, a session-type ternary, a const indirection, or a head+spread+tail array), so the windowed-enumeration generator that derives spawn.env cannot construct their VALUES without a full JS evaluator; instead each value was binary-verified once and is drift-guarded by a checkSpawnContractFacts() sentinel (cowork-sync.ts) that re-asserts the asar-side FACT at every sync. Scope caveat: the sentinels make DESKTOP-side drift loud; they do not validate this committed JSON itself — an erroneous hand-edit here is invisible to them.",
246
+ "$comment_configDirInGuest": "Hand-pinned: the asar builds it as a per-session path template (/sessions/${id}/mnt/.claude), not a constructable literal. Sentinel S1 pins the template shape.",
247
+ "$comment_settingSources": "Hand-pinned: sentinel S2 pins the settingSources:[\"user\"] literal.",
248
+ "$comment_permissionMode": "Hand-pinned: the asar computes it via a session ternary whose chat-session branch resolves to \"default\". Sentinel S3 pins the ternary shape.",
249
+ "$comment_maxThinkingTokens": "Hand-pinned: the asar reaches the value through const indirection. Sentinel S4 VALUE-pins the resolved const to 31999.",
250
+ "$comment_effortDefault": "Hand-pinned: sentinel S5 pins the .effort … :\"medium\" default.",
251
+ "$comment_tools": "Hand-pinned: the asar builds tools[] as head-list + Task-tools spread + session-type tail, not one literal. Sentinels S6 (head), S7 (the TaskCreate…TaskStop spread), S8 (tail-guard after ToolSearch) pin all three parts. As of desktop-1.21459.0 the asar head also carries an INERT `...CLAUDE_DESIGN_TOOLS` spread between Task and Bash that resolves to [] (deployment-gated off on first-party), so the rendered list — and this pin — stay 20 entries; S6b asserts it empty and fails loud if a build ever populates it.",
252
+ "$comment_allowedTools": "Hand-pinned: same head+spread+tail construction as tools[], minus AskUserQuestion (tools-only by design). Sentinels S9 (head) and S10 (the built-in→mcp__ boundary tail-guard) pin it.",
253
+ "$comment_promptTemplate": "Hand-pinned pointer to a RECONSTRUCTED asset (see $comment_prompts) — the generator cannot extract prose. Sentinel S15 pins the claude_code preset-append delivery site.",
254
+ "$comment_subagentAppend": "Hand-pinned pointer to a reconstructed asset (see $comment_prompts). Sentinel S16 pins the per-session appendSubagentSystemPrompt generator call shape.",
255
+ "$comment_subagentAppendHostLoop": "Hand-pinned pointer to a reconstructed (paraphrased) asset for the HOST-LOOP branch of the per-session sub-agent append (section key subagent_env_hl; selected purely on hostLoopMode). Backfilled only for release families whose hl text is binary-verified byte-identical (1.18286.2+). Sentinel: checkSubagentPromptFacts (two-branch fingerprint + substitution-value proofs). A hostloop run on a baseline lacking this pointer fails loud rather than falling back to the VM text. Repointed at 1.32885.1: the hl branch text changed at this release (fingerprint 8fe5583c5996776a -> 71e028bfa7ce596d, one appended sentence on shell-command cwd and non-mnt writes), so the 1.18286.2 asset is no longer faithful for this family. This pointer is hand-authored and is NOT re-derived by sync — it carries forward untouched, so it must be repointed by hand whenever the branch fingerprint moves.",
256
+ "$comment_notSet": "Deliberately NOT set: CLAUDE_CODE_USE_COWORK_PLUGINS (Desktop never sets it; would flip the agent to cowork_settings.json/cowork_plugins — asserted absent by the S17 negative invariant). Enumerated-but-not-pinned keys are enforced by SPAWN_ENV_ALLOWLIST in src/sync/cowork-sync.ts, each with a reason; categories: host-derived (CLAUDE_CONFIG_DIR, TZ, HOST_PLATFORM, OAUTH_TOKEN/BASE_URL/CUSTOM_HEADERS, account UUIDs, WORKSPACE_HOST_PATHS, OTEL), constructed-then-deleted (ANTHROPIC_API_KEY/AUTH_TOKEN via FnA), gate-conditional-off (MCP_CONNECT_TIMEOUT_MS, ENABLE_TOOL_SEARCH, SKIP_PRECOMPACT_LOAD), non-chat/project-session (BRIEF*, PROJECT*), user-settings (SUBAGENT_MODEL, AUTO_COMPACT_WINDOW, ...), and 3p-provider-only branches. The opaque ...g.env/...l session spreads are the known static-extraction blind spot (runtime lane backstop).",
257
+ "$comment_prompts": "Reconstructed cowork-specific sections, re-paraphrased from asar 1.18286.0 const aui (system prompt; RESTRUCTURED at this release — see the asset header) and 1.15200.0 generator CVr (subagent; verified unchanged in the 1.18286.0 asar, generator Zgn). Not the full base prompt (not cleanly extractable); generic refusal/safety policy elided. Delivered via --append-system-prompt (layered on the agent's built-in base prompt), NOT the initialize handshake; only the subagent append goes over initialize (appendSubagentSystemPrompt), gated on CLAUDE_CODE_ENABLE_APPEND_SUBAGENT_PROMPT.",
258
+ "$comment_hooks": "Binary-verified against app.asar 1.24012.9: the Cowork spawn's hooks object, identified by the env block immediately following it (CLAUDE_CODE_IS_COWORK=1, CLAUDE_CODE_ENTRYPOINT=local-agent). Recorded as a DRIFT TRIPWIRE, not an emulation source - `served` marks what this harness actually installs (PreToolUse:Task only). NOT installed at the Cowork spawn: SessionStart, SessionEnd, SubagentStop, PreCompact, Notification, Stop (their asar occurrences are an event-name validation list, a config-error hint, and a UI filter that skips SessionStart hook traffic - that filter implies plugin-supplied hooks.json events DO arrive, via the agent binary's own --plugin-dir channel, which is separate from this spawn bundle)."
259
+ },
260
+ "mountLayout": {
261
+ "sessionRoot": "/sessions/{sessionId}",
262
+ "cwd": "/sessions/{sessionId}",
263
+ "mntRoot": "/sessions/{sessionId}/mnt",
264
+ "mounts": [
265
+ {
266
+ "name": "uploads",
267
+ "mountPath": "uploads",
268
+ "mode": "r",
269
+ "purpose": "user-uploaded files (read-only — asar 'ro')"
270
+ },
271
+ {
272
+ "name": "projects",
273
+ "mountPath": ".projects/{projectId}",
274
+ "mode": "r",
275
+ "purpose": "RESERVED namespace (and the separate UUID project-sync feature) — NOT the work-folder path. From Desktop 1.14271.0 selected work folders mount at mnt/<collision-resolved-basename> (dynamic, derived per session by buildLaunchPlan; see MOUNT_BARE_NAME_MIN_VERSION). This decorative row is not consumed for binding (staged paths come from plan.mounts). MODE CORRECTED rw -> r on 2026-08-05, first-party from the asar's mount-set builder (VM-loop runs it at spawn; host-loop recomputes it per bash call): a project ATTACHMENT mounts at `.projects/<uuid>` with `mode:\"ro\"`, and the sibling `.claude/projects` is `\"ro\"` too. Neither passes through the delete-deny resolver, so a project mount is NOT writable-but-delete-denied — it is not writable at all, and therefore correctly outside deleteDeniedRootsFromPlan. checkMountModeFacts pins both. Older baselines still carry `rw` here and are deliberately NOT back-edited: below MOUNT_BARE_NAME_MIN_VERSION (1.14271.0) `.projects/<name>` WAS the connected-folder namespace, which is resolver-driven `rw` — so `rw` is correct there, and a blanket correction would have replaced a right fact with a wrong one. Between that boundary and 1.25927.0 the row is stale rather than meaningful (the namespace is reserved); those files are frozen per-release snapshots and the mode is consumed by nothing — only cwd/sessionRoot/mntRoot are read from mountLayout."
276
+ },
277
+ {
278
+ "name": "local-plugins",
279
+ "mountPath": ".local-plugins/marketplaces",
280
+ "mode": "r",
281
+ "purpose": "marketplace skills/plugins, runtime-discovered"
282
+ },
283
+ {
284
+ "name": "remote-plugins",
285
+ "mountPath": ".remote-plugins",
286
+ "mode": "r",
287
+ "purpose": "org-remote plugins, runtime-discovered"
288
+ },
289
+ {
290
+ "name": "outputs",
291
+ "mountPath": "outputs",
292
+ "mode": "rw",
293
+ "purpose": "session outputs/artifacts — delete denied by default (asar IX); rwd only when approved"
294
+ },
295
+ {
296
+ "name": "skills",
297
+ "mountPath": ".claude/skills",
298
+ "mode": "r",
299
+ "purpose": "personal/saved skill doc bodies (NOT plugin-bundled skills, which live under local-plugins/remote-plugins above) — real VM confirmed via systemd unit sessions-<name>-mnt-.claude-skills.mount in vm_bundles/claudevm.bundle/rootfs.img. Decorative row like 'projects' above (not consumed for binding — resolveMounts()'s mounts[] is destructured away at every call site); the harness reproduces this via CLAUDE_CONFIG_DIR staging (session.ts skill copy + stage.ts cpSync), not a plan.mounts bind — see hostloop-prompt.ts's asar-verified skills bullet."
300
+ }
301
+ ]
302
+ },
303
+ "network": {
304
+ "mode": "gvisor",
305
+ "allowKind": "allowlist",
306
+ "allowDomains": [
307
+ "downloads.claude.ai",
308
+ "api.anthropic.com",
309
+ "a-cdn.anthropic.com",
310
+ "a-api.anthropic.com",
311
+ "assets.claude.ai",
312
+ "sentry.io",
313
+ "api-staging.anthropic.com",
314
+ "api.claude.ai",
315
+ "preview.claude.ai",
316
+ "www.anthropic.com",
317
+ "console.anthropic.com",
318
+ "support.anthropic.com",
319
+ "docs.anthropic.com",
320
+ "mcp-proxy.anthropic.com",
321
+ "pivot.claude.ai"
322
+ ],
323
+ "$comment": "network.allowDomains is a PINNED, hand-curated list — `sync` carries it forward and never re-derives it. On the first-party deployment this harness models, the VM egress allowlist is NOT in the app bundle: the 1p deployment class returns `vmEgressPolicy(){return null}`, so `resolveVmAllowedDomains` falls through to the session's SERVER-DELIVERED `egressAllowedDomains`, and the only host the bundle contributes is the OTLP endpoint appended by the augmenter. The entries below are therefore a curated RECONSTRUCTION, not an extraction — and this field is the allowlist the harness ENFORCES (boundaryAllowList + the session egress plan). UNVERIFIED as VM egress, retained deliberately rather than pruned on a guess because the true 1p list cannot be read from the asar: www.anthropic.com, console.anthropic.com, support.anthropic.com, docs.anthropic.com — these read as Desktop UI/help links swept in by the predecessor's bundle-wide domain regex. Removing one is a deliberate, reviewed act. checkEgressContractFacts in src/sync/cowork-sync.ts fails closed if the construction that justifies pinning moves."
324
+ },
325
+ "bgEnvStrip": {
326
+ "knownVars": [
327
+ "CLAUDE_CODE_OAUTH_TOKEN",
328
+ "CLAUDE_CODE_SESSION_KIND",
329
+ "CLAUDE_CODE_SESSION_ID",
330
+ "CLAUDE_CODE_SESSION_NAME",
331
+ "CLAUDE_CODE_SESSION_LOG"
332
+ ]
333
+ },
334
+ "$comment": "Platform baseline auto-derived by `cowork-harness sync` from a live Claude Desktop install + app.asar. VOLATILE per-release facts only. Regenerate per release; review the diff. Captured 2026-09-02 on macOS arm64.",
335
+ "capturedAt": "2026-09-02",
336
+ "platform": "darwin-arm64",
337
+ "settings": {
338
+ "autoMountFolders": {
339
+ "key": "autoMountFolders",
340
+ "default": false
341
+ },
342
+ "localAgentModeTrustedFolders": {
343
+ "key": "localAgentModeTrustedFolders",
344
+ "default": []
345
+ }
346
+ },
347
+ "provenance": {
348
+ "asarPath": "/Applications/Claude.app/Contents/Resources/app.asar",
349
+ "asarFingerprint": "87c18c1a17873ba6",
350
+ "gates": {
351
+ "$comment": "Production GrowthBook gate states decoded from ~/Library/Application Support/Claude/fcache (standard interactive Anthropic account, 2026-06-13; binary-verified app.asar 1.12603.1). Pin per release. Behavior-affecting gates the harness models: 1143815894 (loop), 1648655587 (dispatch cap), 1978029737 (web_fetch routing). Telemetry/auth-internal gates omitted. Also pinned: 2614807392 (skeletonHome), 123929380 (autoMemoryStandardSessions), 1696890383 (memoryGuidelinesEnv), 2860753854 (memoryExtraGuidelines) — dormant drift-sentinels for dark-launched features (host-fs skeleton, auto-memory) the harness deliberately models as OFF (or, for memoryExtraGuidelines, as inert-default: on in production but its served value equals the hardcoded default); pinned so a production flip surfaces as a sync diff instead of silent drift. The skill-family gates are pinned on the same principle but are NOT all dormant: 245679952 (suggestSkillsEnabled) and 1598976391 (proactiveSkillSuggestEnabled) ARE modeled — they gate the skills SDK-MCP tool surface. 3246569822 (canSaveSkill) is served ON/force by a server-side rollout (independent of Desktop version) and is deliberately NOT modeled: ON adds an mcp__cowork__save_skill tool and changes the skills system prompt, so this pin records a known fidelity gap rather than a modeled surface — see docs/fidelity-gaps.md. 1824824999 (canProposeSkills) is present-but-off, pinned so the same class of silent widening cannot land unnoticed. 1598976391 (proactiveSkillSuggestEnabled) flipped off/defaultValue -> ON/force by a SERVER-SIDE rollout observed 2026-08-04 — NOT a Desktop change: the gate id occurs exactly once in both the 1.24012.9 and 1.24012.11 asars and would read ON on .9 today, so this value is Desktop-version-INDEPENDENT despite living in a version-named file (same provenance class as canSaveSkill above). It is read from a SINGLE account's fcache; force rules are server-evaluated and can be segment-targeted, so whether the rollout is global is not determinable from anything on disk. Unlike canSaveSkill this one IS modeled (both branches exist), so the pin changes the emulated suggest_skills surface: proactive description + an optional trigger param + a chained empty-catalog note. Override per-session with skills.proactive_suggest_enabled. 4074604942 (1p-direct-mcp) was NEW in 1.24012.11 and DARK (absent from a standard fcache, hence its DARK_GATES entry); it arms a Desktop-side direct-MCP pool for MDM-managed 1P servers, inert for an unmanaged account, pinned as a sentinel only. Observed 2026-08-05 SERVED rather than absent (source \"force\", value false) — the rollout reached this account with the gate OFF, so nothing it arms is reachable and no modeled surface changes. Same provenance class as canSaveSkill: read from a SINGLE account's fcache, and force rules are server-evaluated and segment-targetable, so its DARK_GATES entry is retained deliberately — another account may still see it absent, and that must stay tolerated rather than hard-failing their sync.",
352
+ "emitToolUseSummaries:66187241": {
353
+ "on": false,
354
+ "source": "defaultValue",
355
+ "value": false
356
+ },
357
+ "autoMemoryStandardSessions:123929380": {
358
+ "on": false,
359
+ "source": "defaultValue",
360
+ "value": false
361
+ },
362
+ "subagentPromptServerOverride:124685897": {
363
+ "on": true,
364
+ "source": "defaultValue",
365
+ "value": true
366
+ },
367
+ "suggestSkillsEnabled:245679952": {
368
+ "on": true,
369
+ "source": "force",
370
+ "value": true
371
+ },
372
+ "skill-arg-elicitation:286376943": {
373
+ "on": true,
374
+ "source": "force",
375
+ "value": true
376
+ },
377
+ "mcpConnectionNonblockingOff:434204418": {
378
+ "on": false,
379
+ "source": "defaultValue",
380
+ "value": false
381
+ },
382
+ "bridgeSdkTransport:583857784": {
383
+ "on": true,
384
+ "source": "force",
385
+ "value": true,
386
+ "note": "— Cowork uses the SDK-based transport (control protocol), confirming the harness's sdkMcpServers/mcp_message path is the production transport."
387
+ },
388
+ "fineGrainedToolStreaming:714014285": {
389
+ "on": true,
390
+ "source": "force",
391
+ "value": true
392
+ },
393
+ "enableToolSearchAuto:1129419822": {
394
+ "on": false,
395
+ "source": "absent"
396
+ },
397
+ "hostLoop:1143815894": {
398
+ "on": true,
399
+ "source": "force",
400
+ "value": true
401
+ },
402
+ "scheduledTaskToolsApprovableByAutoMode:1447478638": {
403
+ "on": true,
404
+ "source": "force",
405
+ "value": true
406
+ },
407
+ "proactiveSkillSuggestEnabled:1598976391": {
408
+ "on": true,
409
+ "source": "force",
410
+ "value": true
411
+ },
412
+ "scheduledTaskSessionLimiter:1648655587": {
413
+ "on": true,
414
+ "source": "force",
415
+ "value": {
416
+ "global": 3,
417
+ "perTask": 1
418
+ },
419
+ "note": "SCHEDULED-TASK (cron) session limiter — NOT an in-conversation Task-tool cap (binary-verified 2026-07-04, asar 1.18286.0 class L9t [ScheduledTasks]). perTask=1: <=1 concurrent session PER SCHEDULED TASK; global=3: <=3 concurrent scheduled-task sessions globally (+_pendingTaskDispatches). Host-side SKIP (recordSkipAndEmit/PerTaskLimit|GlobalLimit — NOT queue/deny). Cowork imposes no cap on Task-tool sub-agent fan-out; the harness has no scheduled-task scheduler, so this gate has no applicable surface — pinned as a sync drift-sentinel only."
420
+ },
421
+ "memoryGuidelinesEnv:1696890383": {
422
+ "on": false,
423
+ "source": "defaultValue",
424
+ "value": false
425
+ },
426
+ "canProposeSkills:1824824999": {
427
+ "on": false,
428
+ "source": "defaultValue",
429
+ "value": false
430
+ },
431
+ "oauthScopesEnv:1936081873": {
432
+ "on": true,
433
+ "source": "force",
434
+ "value": true
435
+ },
436
+ "coworkRuntimeConfig:1978029737": {
437
+ "on": true,
438
+ "source": "experiment",
439
+ "value": {
440
+ "coworkNativeFilePreview": true,
441
+ "coworkWebFetchDedup": true,
442
+ "coworkWebFetchDedupMaxEntries": 100,
443
+ "coworkWebFetchDedupTtlMs": 3600000,
444
+ "coworkWebFetchPrompt": true,
445
+ "coworkWebFetchViaApi": true,
446
+ "pluginsFullSyncStalenessMs": 3600000,
447
+ "pluginsSyncIntervalMs": 1200000,
448
+ "sessionsBridgePollBlockMs": 30,
449
+ "skillsSyncIntervalMs": 1200000,
450
+ "workspaceBashWaitLonger": true
451
+ },
452
+ "note": "coworkWebFetchViaApi=true coworkWebFetchPrompt=true workspaceBashWaitLonger=true sessionsBridgePollBlockMs=30 — web_fetch is host/API-routed (POST /api/organizations/<org>/cowork/web_fetch), NOT container egress; gated by a separate web-fetch hostname allowlist + URL provenance."
453
+ },
454
+ "cicCanUseToolEnabled:2051942385": {
455
+ "on": true,
456
+ "source": "force",
457
+ "value": true
458
+ },
459
+ "cliPlugin:2307090146": {
460
+ "on": false,
461
+ "source": "defaultValue",
462
+ "value": false,
463
+ "note": "— the CLI-plugin credential broker is dark-launched off for standard interactive accounts (Ch23/L106)."
464
+ },
465
+ "pluginSyncSparkplug:2340532315": {
466
+ "on": true,
467
+ "source": "force",
468
+ "value": true,
469
+ "note": "— startup syncPlugins(); plugins load via --plugin-dir (registry inert in-VM)."
470
+ },
471
+ "skeletonHome:2614807392": {
472
+ "on": false,
473
+ "source": "absent"
474
+ },
475
+ "memoryExtraGuidelines:2860753854": {
476
+ "on": true,
477
+ "source": "defaultValue",
478
+ "value": "## Sensitive personal information\n\nDo not save the following to memory unless the user explicitly asks you to remember it:\n\n- Protected attributes: race, ethnicity, national origin, religion, age, sex, sexual orientation, gender identity, immigration status, disability, serious illness, union membership\n- Government identifiers: Social Security numbers, driver's license numbers, passport numbers, government ID numbers\n- Financial account details: credit card numbers, bank account numbers\n- Health information: medical conditions, diagnoses, lab results, mental health details, therapy or counseling\n- Home or personal mailing addresses (work addresses are fine)\n- Account passwords, secret tokens, or secret keys\n\nIf any of the above appears in conversation context, complete the task but do not persist it to a memory file. If the user explicitly says \"remember my address is X\", saving it is acceptable — they've given consent."
479
+ },
480
+ "coworkArtifacts:2940196192": {
481
+ "on": true,
482
+ "source": "force",
483
+ "value": true
484
+ },
485
+ "canSaveSkill:3246569822": {
486
+ "on": true,
487
+ "source": "force",
488
+ "value": true
489
+ },
490
+ "automode-permission-rubric:3424551112": {
491
+ "on": true,
492
+ "source": "force",
493
+ "value": true
494
+ },
495
+ "1p-direct-mcp:4074604942": {
496
+ "on": false,
497
+ "source": "force",
498
+ "value": false
499
+ },
500
+ "skipPrecompactLoad:4153934152": {
501
+ "on": false,
502
+ "source": "defaultValue",
503
+ "value": false
504
+ },
505
+ "autoModeOverridesAlwaysAllow:4200321681": {
506
+ "on": true,
507
+ "source": "force",
508
+ "value": true
509
+ }
510
+ },
511
+ "spawnEnvKeys": [
512
+ "ANTHROPIC_API_KEY",
513
+ "ANTHROPIC_AUTH_TOKEN",
514
+ "ANTHROPIC_BASE_URL",
515
+ "ANTHROPIC_CUSTOM_HEADERS",
516
+ "API_TIMEOUT_MS",
517
+ "CLAUDE_CODE_ACCOUNT_TAGGED_ID",
518
+ "CLAUDE_CODE_ACCOUNT_UUID",
519
+ "CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD",
520
+ "CLAUDE_CODE_ATTRIBUTION_HEADER",
521
+ "CLAUDE_CODE_AUTO_COMPACT_WINDOW",
522
+ "CLAUDE_CODE_BRIEF",
523
+ "CLAUDE_CODE_BRIEF_UPLOAD",
524
+ "CLAUDE_CODE_COWORK_FRAME_ARTIFACTS",
525
+ "CLAUDE_CODE_DIAGNOSTICS_FILE",
526
+ "CLAUDE_CODE_DISABLE_AGENTS_FLEET",
527
+ "CLAUDE_CODE_DISABLE_BACKGROUND_TASKS",
528
+ "CLAUDE_CODE_DISABLE_BUNDLED_SKILLS",
529
+ "CLAUDE_CODE_DISABLE_CRON",
530
+ "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS",
531
+ "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC",
532
+ "CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL",
533
+ "CLAUDE_CODE_DISABLE_REFUSAL_FALLBACK",
534
+ "CLAUDE_CODE_DISABLE_TERMINAL_TITLE",
535
+ "CLAUDE_CODE_EMIT_TOOL_USE_SUMMARIES",
536
+ "CLAUDE_CODE_ENABLE_APPEND_SUBAGENT_PROMPT",
537
+ "CLAUDE_CODE_ENABLE_ASK_USER_QUESTION_TOOL",
538
+ "CLAUDE_CODE_ENABLE_AUTO_MODE",
539
+ "CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING",
540
+ "CLAUDE_CODE_ENABLE_TASKS",
541
+ "CLAUDE_CODE_ENTRYPOINT",
542
+ "CLAUDE_CODE_HOST_AUTH_ENV_VAR",
543
+ "CLAUDE_CODE_HOST_PLATFORM",
544
+ "CLAUDE_CODE_IS_COWORK",
545
+ "CLAUDE_CODE_OAUTH_SCOPES",
546
+ "CLAUDE_CODE_OAUTH_TOKEN",
547
+ "CLAUDE_CODE_ORGANIZATION_UUID",
548
+ "CLAUDE_CODE_PROMPT_CACHE_TTL",
549
+ "CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST",
550
+ "CLAUDE_CODE_RATE_LIMIT_TIER",
551
+ "CLAUDE_CODE_SKIP_PRECOMPACT_LOAD",
552
+ "CLAUDE_CODE_SUBAGENT_MODEL",
553
+ "CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL",
554
+ "CLAUDE_CODE_SUBSCRIPTION_TYPE",
555
+ "CLAUDE_CODE_TAGS",
556
+ "CLAUDE_CODE_USER_EMAIL",
557
+ "CLAUDE_CODE_WORKSPACE_HOST_PATHS",
558
+ "CLAUDE_CONFIG_DIR",
559
+ "CLAUDE_PREVIEW_CLASSIFIER_FLOOR",
560
+ "CLAUDE_PROJECT_TOOL",
561
+ "CLAUDE_PROJECT_UUID",
562
+ "DISABLE_AUTOUPDATER",
563
+ "DISABLE_BRIEF_MODE_STOP_HOOK",
564
+ "DISABLE_ERROR_REPORTING",
565
+ "DISABLE_FEEDBACK_COMMAND",
566
+ "DISABLE_GROWTHBOOK",
567
+ "DISABLE_MICROCOMPACT",
568
+ "DISABLE_TELEMETRY",
569
+ "ENABLE_PROMPT_CACHING_1H",
570
+ "ENABLE_TOOL_SEARCH",
571
+ "MCP_CONNECTION_NONBLOCKING",
572
+ "MCP_CONNECT_TIMEOUT_MS",
573
+ "MCP_TOOL_TIMEOUT",
574
+ "TZ",
575
+ "USE_LOCAL_OAUTH",
576
+ "USE_STAGING_OAUTH"
577
+ ],
578
+ "spawnEnvSpreadCount": 32,
579
+ "fcache": {
580
+ "content16": "2f689d6bf8c0f0cc",
581
+ "embeddedTimestamp": 1788354886430,
582
+ "featureCount": 316
583
+ },
584
+ "asarGateIds": [
585
+ "17519066",
586
+ "36693946",
587
+ "40173473",
588
+ "49458538",
589
+ "66187241",
590
+ "98041341",
591
+ "108465228",
592
+ "123929380",
593
+ "124685897",
594
+ "133902057",
595
+ "144158705",
596
+ "162211072",
597
+ "180602792",
598
+ "206750215",
599
+ "227459766",
600
+ "245679952",
601
+ "254738541",
602
+ "262787483",
603
+ "278625510",
604
+ "286376943",
605
+ "291584251",
606
+ "304458538",
607
+ "326791966",
608
+ "371539023",
609
+ "397125142",
610
+ "416245092",
611
+ "434204418",
612
+ "451382573",
613
+ "476513332",
614
+ "505512513",
615
+ "541746109",
616
+ "552157343",
617
+ "554317356",
618
+ "574905726",
619
+ "581786799",
620
+ "583857784",
621
+ "607406988",
622
+ "629684104",
623
+ "642265585",
624
+ "657187776",
625
+ "700397605",
626
+ "714014285",
627
+ "717163759",
628
+ "720735283",
629
+ "721728391",
630
+ "732695530",
631
+ "733405693",
632
+ "743194442",
633
+ "748063099",
634
+ "751369921",
635
+ "762798616",
636
+ "763725229",
637
+ "769234850",
638
+ "790863764",
639
+ "816856638",
640
+ "822923030",
641
+ "850702611",
642
+ "873030668",
643
+ "879583975",
644
+ "884132720",
645
+ "885442848",
646
+ "919579692",
647
+ "922442190",
648
+ "939257113",
649
+ "942840715",
650
+ "954625922",
651
+ "959099749",
652
+ "975112542",
653
+ "976614668",
654
+ "982691970",
655
+ "986399546",
656
+ "999999999",
657
+ "1004628546",
658
+ "1032963206",
659
+ "1061122496",
660
+ "1101873029",
661
+ "1109029378",
662
+ "1111144847",
663
+ "1126577245",
664
+ "1129419822",
665
+ "1131777852",
666
+ "1143815894",
667
+ "1183214304",
668
+ "1197768857",
669
+ "1215221242",
670
+ "1263782781",
671
+ "1265511872",
672
+ "1278239935",
673
+ "1284392461",
674
+ "1291166712",
675
+ "1294710626",
676
+ "1294982044",
677
+ "1310358601",
678
+ "1315974108",
679
+ "1323782925",
680
+ "1340622498",
681
+ "1346958739",
682
+ "1403324732",
683
+ "1410651677",
684
+ "1412563253",
685
+ "1434290056",
686
+ "1441987769",
687
+ "1447478638",
688
+ "1477483922",
689
+ "1480778051",
690
+ "1544796833",
691
+ "1549258603",
692
+ "1569828280",
693
+ "1588340729",
694
+ "1598976391",
695
+ "1629866860",
696
+ "1648655587",
697
+ "1677081600",
698
+ "1695017395",
699
+ "1696890383",
700
+ "1703762832",
701
+ "1707927936",
702
+ "1710585411",
703
+ "1743527783",
704
+ "1748356779",
705
+ "1754160972",
706
+ "1824824999",
707
+ "1825995196",
708
+ "1836754949",
709
+ "1868684740",
710
+ "1875770773",
711
+ "1893165035",
712
+ "1904135164",
713
+ "1915174500",
714
+ "1924247864",
715
+ "1928275548",
716
+ "1936081873",
717
+ "1942337209",
718
+ "1942781881",
719
+ "1947305033",
720
+ "1972091654",
721
+ "1978029737",
722
+ "1992087837",
723
+ "2004571505",
724
+ "2016258596",
725
+ "2023768496",
726
+ "2039376689",
727
+ "2048589233",
728
+ "2049450122",
729
+ "2051751800",
730
+ "2051942385",
731
+ "2062156710",
732
+ "2067027393",
733
+ "2099281725",
734
+ "2114777685",
735
+ "2115990222",
736
+ "2129861473",
737
+ "2140326016",
738
+ "2143883161",
739
+ "2192324205",
740
+ "2214981414",
741
+ "2216414644",
742
+ "2216766246",
743
+ "2216901299",
744
+ "2220415149",
745
+ "2229805612",
746
+ "2294160313",
747
+ "2307090146",
748
+ "2309422447",
749
+ "2339084909",
750
+ "2340532315",
751
+ "2345107588",
752
+ "2345515473",
753
+ "2358734848",
754
+ "2369776764",
755
+ "2392971184",
756
+ "2393677837",
757
+ "2427043945",
758
+ "2431502897",
759
+ "2464731750",
760
+ "2486083521",
761
+ "2529235968",
762
+ "2547348043",
763
+ "2576868839",
764
+ "2605355193",
765
+ "2614807392",
766
+ "2654621331",
767
+ "2685067074",
768
+ "2688060585",
769
+ "2719700143",
770
+ "2720310975",
771
+ "2722545484",
772
+ "2724639973",
773
+ "2725876754",
774
+ "2726556121",
775
+ "2745857735",
776
+ "2768844978",
777
+ "2795002549",
778
+ "2795595714",
779
+ "2800354941",
780
+ "2806360886",
781
+ "2833632524",
782
+ "2848557028",
783
+ "2857785401",
784
+ "2860753854",
785
+ "2864556627",
786
+ "2893011886",
787
+ "2895944283",
788
+ "2906430762",
789
+ "2938421209",
790
+ "2940196192",
791
+ "2961849615",
792
+ "2973881027",
793
+ "2979038612",
794
+ "3007887412",
795
+ "3018088575",
796
+ "3023518717",
797
+ "3045399524",
798
+ "3046457088",
799
+ "3046702961",
800
+ "3070110303",
801
+ "3089387226",
802
+ "3093186863",
803
+ "3123045134",
804
+ "3142047527",
805
+ "3150971238",
806
+ "3163246478",
807
+ "3183093548",
808
+ "3229517805",
809
+ "3246569822",
810
+ "3269331205",
811
+ "3300773012",
812
+ "3302457740",
813
+ "3326082604",
814
+ "3353525254",
815
+ "3356268835",
816
+ "3366735351",
817
+ "3368286709",
818
+ "3371831021",
819
+ "3377630395",
820
+ "3414805749",
821
+ "3424551112",
822
+ "3431784271",
823
+ "3436441689",
824
+ "3444158716",
825
+ "3448679706",
826
+ "3491600236",
827
+ "3516166472",
828
+ "3531779070",
829
+ "3547093683",
830
+ "3555657854",
831
+ "3558849738",
832
+ "3559681707",
833
+ "3572572142",
834
+ "3577536076",
835
+ "3586389629",
836
+ "3602629573",
837
+ "3633961296",
838
+ "3640318556",
839
+ "3646818354",
840
+ "3671534883",
841
+ "3691521536",
842
+ "3705360580",
843
+ "3723845789",
844
+ "3728132896",
845
+ "3758515526",
846
+ "3764441751",
847
+ "3778159589",
848
+ "3796647113",
849
+ "3807767338",
850
+ "3920548810",
851
+ "3927880029",
852
+ "3946462706",
853
+ "3961433847",
854
+ "3976799455",
855
+ "3982397363",
856
+ "3990395613",
857
+ "4034153053",
858
+ "4055864154",
859
+ "4066504968",
860
+ "4074604942",
861
+ "4085357330",
862
+ "4108768567",
863
+ "4114957886",
864
+ "4116586025",
865
+ "4141490266",
866
+ "4153934152",
867
+ "4156472024",
868
+ "4160352601",
869
+ "4185841952",
870
+ "4200321681",
871
+ "4202409342",
872
+ "4217215889",
873
+ "4272200640",
874
+ "4282876673",
875
+ "4293378213"
876
+ ]
877
+ },
878
+ "requireFullVmSandbox": null
879
+ }