@cnwenf/occ 2.1.290 → 2.1.291
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 +4 -4
- package/dist/cli.js +15 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
[](https://www.npmjs.com/package/@cnwenf/occ)
|
|
6
6
|
[](./LICENSE)
|
|
7
7
|
[](https://bun.sh/)
|
|
8
|
-
[](https://docs.anthropic.com/en/docs/claude-code)
|
|
9
9
|
|
|
10
10
|
[简体中文](./README.zh-CN.md) · **English**
|
|
11
11
|
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
## What is OCC
|
|
15
15
|
|
|
16
|
-
**Open C Code (OCC)** is an open-source coding agent. Its capabilities are aligned with [Claude Code](https://docs.anthropic.com/en/docs/claude-code) (currently tracking `2.1.218
|
|
16
|
+
**Open C Code (OCC)** is an open-source coding agent. Its capabilities are aligned with [Claude Code](https://docs.anthropic.com/en/docs/claude-code) (currently tracking `2.1.219` — 2.1.218 fully aligned, 2.1.219 partial per OCC-39 gap report). The code is fully open, auditable, backdoor-free, and your data stays under your control.
|
|
17
17
|
|
|
18
18
|
If you worry that a closed-source CLI might hide backdoors, or that your code and credentials are uploaded to unauditable services, OCC is for you: all source is open and unobfuscated, the build is reproducible from source, and API credentials are sent only to endpoints you configure.
|
|
19
19
|
|
|
@@ -62,7 +62,7 @@ Requires a valid Anthropic API Key (or AWS Bedrock / Google Vertex / Azure Found
|
|
|
62
62
|
| **Auditability** | Line-by-line reviewable | No |
|
|
63
63
|
| **Telemetry** | Minimal (analytics stubbed) | Standard |
|
|
64
64
|
| **Data sovereignty** | Credentials stay on your machine; requests only to endpoints you configure | Anthropic endpoints |
|
|
65
|
-
| **Capability parity** | Tracks CC `2.1.
|
|
65
|
+
| **Capability parity** | Tracks CC `2.1.219` (partial) | Reference implementation |
|
|
66
66
|
| **Providers** | Anthropic Direct, Bedrock, Vertex, Azure | Anthropic, Bedrock, Vertex |
|
|
67
67
|
| **Cost** | Free & open-source (MIT) | Subscription |
|
|
68
68
|
| **Build** | Reproducible from source | N/A |
|
|
@@ -157,7 +157,7 @@ For architecture, entry/bootstrap, tool system, UI layer, and module-status deta
|
|
|
157
157
|
|
|
158
158
|
## Status
|
|
159
159
|
|
|
160
|
-
- Tracks Claude Code **`2.1.
|
|
160
|
+
- Tracks Claude Code **`2.1.219` (partial)**.
|
|
161
161
|
- Published to npm as [`@cnwenf/occ`](https://www.npmjs.com/package/@cnwenf/occ).
|
|
162
162
|
- Many modules are intentionally stubbed or feature-flagged off — see "Disabled / stubbed" above.
|
|
163
163
|
|
package/dist/cli.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
|
-
globalThis.MACRO={"VERSION":"2.1.
|
|
2
|
+
globalThis.MACRO={"VERSION":"2.1.291","BINARY_NAME":"occ","BUILD_TIME":"2026-07-30T17:31:04.907Z","FEEDBACK_CHANNEL":"","ISSUES_EXPLAINER":"","NATIVE_PACKAGE_URL":"","PACKAGE_URL":"@cnwenf/occ","VERSION_CHANGELOG":""};
|
|
3
3
|
// @bun
|
|
4
4
|
var __create = Object.create;
|
|
5
5
|
var __getProtoOf = Object.getPrototypeOf;
|
|
@@ -57625,6 +57625,7 @@ var init_sandboxTypes = __esm(() => {
|
|
|
57625
57625
|
allowedDomains: exports_external.array(exports_external.string()).optional(),
|
|
57626
57626
|
deniedDomains: exports_external.array(exports_external.string()).optional().describe("Domains to block even when a broader allowedDomains wildcard would otherwise permit them."),
|
|
57627
57627
|
allowManagedDomainsOnly: exports_external.boolean().optional().describe("When true (and set in managed settings), only allowedDomains and WebFetch(domain:...) allow rules from managed settings are respected. " + "User, project, local, and flag settings domains are ignored. Denied domains are still respected from all sources."),
|
|
57628
|
+
strictAllowlist: exports_external.boolean().optional().describe("When true, the sandbox runtime deterministically denies hosts not in allowedDomains instead of prompting. " + "Enforced for sandboxed commands only \u2014 in-process tools such as WebFetch are not gated by this setting. " + "Only honored from user, managed/policy, or CLI (--settings) settings \u2014 " + "project settings (.claude/settings.json and .claude/settings.local.json) are ignored."),
|
|
57628
57629
|
allowUnixSockets: exports_external.array(exports_external.string()).optional().describe("macOS only: Unix socket paths to allow. Ignored on Linux (seccomp cannot filter by path)."),
|
|
57629
57630
|
allowAllUnixSockets: exports_external.boolean().optional().describe("If true, allow all Unix sockets (disables blocking on both platforms)."),
|
|
57630
57631
|
allowLocalBinding: exports_external.boolean().optional(),
|
|
@@ -201072,6 +201073,7 @@ Usage notes:
|
|
|
201072
201073
|
// src/utils/sandbox/sandbox-adapter.ts
|
|
201073
201074
|
var exports_sandbox_adapter = {};
|
|
201074
201075
|
__export(exports_sandbox_adapter, {
|
|
201076
|
+
shouldEnforceStrictAllowlist: () => shouldEnforceStrictAllowlist,
|
|
201075
201077
|
shouldAllowManagedSandboxDomainsOnly: () => shouldAllowManagedSandboxDomainsOnly,
|
|
201076
201078
|
resolveSandboxFilesystemPath: () => resolveSandboxFilesystemPath,
|
|
201077
201079
|
resolvePathPatternForSandbox: () => resolvePathPatternForSandbox,
|
|
@@ -201119,6 +201121,14 @@ function resolveSandboxFilesystemPath(pattern, source) {
|
|
|
201119
201121
|
function shouldAllowManagedSandboxDomainsOnly() {
|
|
201120
201122
|
return getSettingsForSource("policySettings")?.sandbox?.network?.allowManagedDomainsOnly === true;
|
|
201121
201123
|
}
|
|
201124
|
+
function shouldEnforceStrictAllowlist() {
|
|
201125
|
+
const honoredSources = [
|
|
201126
|
+
"userSettings",
|
|
201127
|
+
"flagSettings",
|
|
201128
|
+
"policySettings"
|
|
201129
|
+
];
|
|
201130
|
+
return honoredSources.some((source) => getSettingsForSource(source)?.sandbox?.network?.strictAllowlist === true);
|
|
201131
|
+
}
|
|
201122
201132
|
function shouldAllowManagedReadPathsOnly() {
|
|
201123
201133
|
return getSettingsForSource("policySettings")?.sandbox?.filesystem?.allowManagedReadPathsOnly === true;
|
|
201124
201134
|
}
|
|
@@ -201480,6 +201490,10 @@ async function initialize3(sandboxAskCallback) {
|
|
|
201480
201490
|
logForDebugging(`[sandbox] Blocked network request to ${hostPattern.host} (allowManagedDomainsOnly)`);
|
|
201481
201491
|
return false;
|
|
201482
201492
|
}
|
|
201493
|
+
if (shouldEnforceStrictAllowlist()) {
|
|
201494
|
+
logForDebugging(`[sandbox] Blocked network request to ${hostPattern.host} (strictAllowlist)`);
|
|
201495
|
+
return false;
|
|
201496
|
+
}
|
|
201483
201497
|
return sandboxAskCallback(hostPattern);
|
|
201484
201498
|
} : undefined;
|
|
201485
201499
|
initializationPromise2 = (async () => {
|