@sagentlab/navarch-runtime 0.1.37 → 0.1.38

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/README.md CHANGED
@@ -364,8 +364,10 @@ as an explicit read-only mount.
364
364
  On macOS the profile also grants read access to `/Library/Developer` and
365
365
  `/Applications` (Xcode and CoreSimulator, which `xcrun simctl` and
366
366
  `xcodebuild` load) and write access to `~/Library/Developer` (simulator
367
- devices and DerivedData); the Claude hook gets the same write root. Without
368
- these, iOS builds and simulator tests fail under the sandbox with
367
+ devices and DerivedData) and `~/Library/Caches/org.swift.swiftpm` (SwiftPM
368
+ repository, artifact, metadata, and manifest caches); the Claude hook gets
369
+ the same write roots. Without these, iOS builds and simulator tests fail
370
+ under the sandbox with
369
371
  `access to /Library/Developer/PrivateFrameworks/CoreSimulator.framework is blocked`.
370
372
  - **Gemini:** the runtime uses Gemini CLI's native sandbox with only the
371
373
  current worktree, shared gitdir, session `gh` config, and approved extra
@@ -79,7 +79,7 @@ async function prepareWorktreeGuard(options) {
79
79
  const allowedRoots = [
80
80
  options.worktreePath,
81
81
  options.repositoryPath,
82
- // Xcode's per-user simulator/DerivedData state; see macosDeveloperWriteRoots.
82
+ // Xcode and SwiftPM's per-user build state; see macosDeveloperWriteRoots.
83
83
  ...macosDeveloperWriteRoots().filter((root) => !isPathInside(node_path_1.default.resolve(root), workspaceRoot)),
84
84
  ...(options.extraRoots ?? []),
85
85
  ];
@@ -143,17 +143,23 @@ function codexToolReadRoots(env = process.env, platform = process.platform) {
143
143
  */
144
144
  const MACOS_TOOLCHAIN_READ_ROOTS = ["/Library/Developer", "/Applications"];
145
145
  /**
146
- * Per-user macOS developer state that Xcode writes during a build or test
147
- * run: simulator devices under `~/Library/Developer/CoreSimulator` and
148
- * DerivedData under `~/Library/Developer/Xcode`. Shared between sessions on
149
- * one machine (that is inherent to Xcode), but nothing under it is Navarch
150
- * session state or credentials. Empty off macOS.
146
+ * Per-user macOS build state that Xcode and SwiftPM write during a build or
147
+ * test run: simulator devices and DerivedData under `~/Library/Developer`,
148
+ * plus SwiftPM's repository, artifact, package-metadata, and manifest caches
149
+ * under `~/Library/Caches/org.swift.swiftpm`. Shared between sessions on one
150
+ * machine (that is inherent to these tools), but nothing under these cache
151
+ * roots is Navarch session state or credentials. Deliberately do not grant
152
+ * `~/Library/org.swift.swiftpm` or `~/.swiftpm`, which may contain registry or
153
+ * security configuration. Empty off macOS.
151
154
  */
152
155
  function macosDeveloperWriteRoots(env = process.env, platform = process.platform) {
153
156
  if (platform !== "darwin")
154
157
  return [];
155
158
  const homeDir = env.HOME?.trim() || node_os_1.default.homedir();
156
- return [node_path_1.default.join(homeDir, "Library", "Developer")];
159
+ return [
160
+ node_path_1.default.join(homeDir, "Library", "Developer"),
161
+ node_path_1.default.join(homeDir, "Library", "Caches", "org.swift.swiftpm"),
162
+ ];
157
163
  }
158
164
  /**
159
165
  * Isolated gh configuration root for one coding-agent session.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sagentlab/navarch-runtime",
3
- "version": "0.1.37",
3
+ "version": "0.1.38",
4
4
  "description": "Navarch machine-side session manager: claims delivery tasks and runs them through Claude Code, Codex, Gemini, or OpenCode.",
5
5
  "type": "commonjs",
6
6
  "license": "MIT",