opensocrates 1.3.1 → 1.4.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.
- package/CHANGELOG.md +21 -0
- package/README.ko.md +72 -81
- package/README.md +71 -81
- package/SECURITY.md +59 -141
- package/VERSION +1 -1
- package/installer/opensocrates.mjs +570 -1346
- package/installer/windows.ps1 +45 -0
- package/package.json +6 -12
package/SECURITY.md
CHANGED
|
@@ -2,151 +2,69 @@
|
|
|
2
2
|
|
|
3
3
|
## Supported versions
|
|
4
4
|
|
|
5
|
-
Security fixes are provided for the latest `1.x` release.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
| Version | Supported |
|
|
9
|
-
| --- | --- |
|
|
10
|
-
| 1.x | Yes |
|
|
11
|
-
| < 1.0 | No |
|
|
5
|
+
Security fixes are provided for the latest `1.x` release. OpenSocrates 1.4.0
|
|
6
|
+
supports Codex only. Pre-1.0 builds and retired host integrations are unsupported.
|
|
12
7
|
|
|
13
8
|
## Report a vulnerability
|
|
14
9
|
|
|
15
10
|
Do not publish credentials, private prompts, transcripts, workspace data, or
|
|
16
|
-
exploit details in a public issue.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
- the smallest reproducible example;
|
|
24
|
-
- expected and observed impact;
|
|
25
|
-
- whether credentials or private user data may be exposed;
|
|
26
|
-
- any suggested mitigation.
|
|
27
|
-
|
|
28
|
-
If private reporting is unavailable, open a public issue requesting a private
|
|
29
|
-
contact channel without including vulnerability details.
|
|
30
|
-
|
|
31
|
-
Reports are reviewed as maintainer capacity allows. Acknowledgement,
|
|
32
|
-
assessment, remediation, and disclosure timing depend on reproducibility,
|
|
33
|
-
severity, and the availability of a safe fix.
|
|
11
|
+
exploit details in a public issue. Use GitHub's
|
|
12
|
+
[private vulnerability reporting](https://github.com/ParkerHwang/OpenSocrates/security/advisories/new).
|
|
13
|
+
Include the affected version and platform, a minimal reproduction, the observed
|
|
14
|
+
impact, whether private user data is exposed, and any suggested mitigation.
|
|
15
|
+
If private reporting is unavailable, request a private contact channel in an
|
|
16
|
+
issue without vulnerability details. Response timing depends on reproducibility,
|
|
17
|
+
severity, safe fixes, and maintainer availability.
|
|
34
18
|
|
|
35
19
|
## Security boundary
|
|
36
20
|
|
|
37
|
-
The
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
local `diagnose` command and is never transmitted.
|
|
88
|
-
An unreadable aggregate is reported as `unavailable`, never as zero observed
|
|
89
|
-
attempts. The next valid selector outcome atomically replaces only a malformed
|
|
90
|
-
current-schema aggregate with a fresh bounded count document; an unknown future
|
|
91
|
-
schema is preserved. Rejected malformed bytes are never copied into another
|
|
92
|
-
file.
|
|
93
|
-
|
|
94
|
-
Managed policy settings are part of the host trust boundary and are not disabled.
|
|
95
|
-
Anthropic's [CLI reference](https://code.claude.com/docs/en/cli-reference) states
|
|
96
|
-
that under `--safe-mode` "managed settings policy still applies, including
|
|
97
|
-
policy-configured hooks". Consequences on an organization-managed machine:
|
|
98
|
-
|
|
99
|
-
- a managed `UserPromptSubmit` hook executes inside the selector process,
|
|
100
|
-
receives the current prompt on standard input, and can return
|
|
101
|
-
`additionalContext` that enters selection;
|
|
102
|
-
- managed plugins, managed skills, managed `CLAUDE.md`, and policy-configured
|
|
103
|
-
MCP servers do not load.
|
|
104
|
-
|
|
105
|
-
OpenSocrates does not detect or override managed policy. Selection remains
|
|
106
|
-
bounded regardless: the model's returned instruction text is discarded, and only
|
|
107
|
-
authored catalog content assembled by OpenSocrates is ever injected. Operators
|
|
108
|
-
who cannot accept managed-hook visibility of the selector prompt should not
|
|
109
|
-
enable OpenSocrates selection on those machines.
|
|
110
|
-
|
|
111
|
-
On Claude surfaces that deliver the packaged hooks, the grounding gate observes
|
|
112
|
-
only successful `Read` callbacks for the current turn's exact instruction file.
|
|
113
|
-
It transiently checks that the response reached an authored terminal marker and
|
|
114
|
-
does not retain the response. The owner-only authenticated receipt stores only
|
|
115
|
-
the artifact digest, content revision, selected method IDs, and keyed
|
|
116
|
-
authentication/tool-use tags; prompts, transcripts, raw tool output,
|
|
117
|
-
credentials, workspace paths, and artifact paths are excluded. `Stop` removes
|
|
118
|
-
the receipt with the turn artifact. If `Stop` is absent, the next
|
|
119
|
-
`UserPromptSubmit` in that session removes prior prompt trees without touching
|
|
120
|
-
the new active tree. `SessionEnd` remains the session backstop, and the
|
|
121
|
-
24-hour `SessionStart` sweep covers crash leftovers when neither event arrives.
|
|
122
|
-
|
|
123
|
-
The gate's scope is deliberate and worth stating plainly. It establishes that a
|
|
124
|
-
successful `Read` callback naming the exact current-turn artifact returned
|
|
125
|
-
content reaching the authored terminal marker. It does not cryptographically
|
|
126
|
-
prove that every artifact byte was returned: a synthetic payload carrying only
|
|
127
|
-
the marker would satisfy the marker test. That is not reachable by the model,
|
|
128
|
-
which does not author `tool_response`, and the marker is the artifact's last
|
|
129
|
-
line, so a truncated read loses it. Anything able to forge that callback already
|
|
130
|
-
controls the hook's standard input and is outside the boundary this gate
|
|
131
|
-
defends. The gate raises the cost of an ungrounded answer; it is not a proof of
|
|
132
|
-
delivery, and it fails open by design.
|
|
133
|
-
|
|
134
|
-
The optional macOS LaunchAgent invokes the selected published npm channel and
|
|
135
|
-
then uses the same verified installer path as a manual update. It does not read
|
|
136
|
-
or terminate active Claude or Codex sessions. Its receipt contains only the
|
|
137
|
-
checked version, timestamp, per-host result, and an error category; prompts,
|
|
138
|
-
transcripts, workspace paths, credentials, and raw error output are excluded.
|
|
139
|
-
Automatic major-version upgrades are disabled unless the user explicitly
|
|
140
|
-
changes that policy.
|
|
141
|
-
|
|
142
|
-
Installer rollback mutates only its owner-marked managed marketplace root. If
|
|
143
|
-
the failed root cannot be removed and the previous backup therefore cannot be
|
|
144
|
-
renamed into place, the installer preserves that backup and prints quoted,
|
|
145
|
-
executable recovery commands naming only those two managed paths.
|
|
146
|
-
|
|
147
|
-
Signing, notarization, clean-machine installation, platforms other than
|
|
148
|
-
`darwin-arm64`, Claude Chat automatic hooks, and live delivery on every host
|
|
149
|
-
surface are not claimed as validated. Native plugin archives ship only
|
|
150
|
-
`bin/launch.sh`; it rejects macOS Intel, Linux, Windows, and every other target,
|
|
151
|
-
and no PowerShell launcher is included. See the release limitations file for
|
|
152
|
-
the complete measured boundary.
|
|
21
|
+
The default Codex submission entry emits discovery guidance only. It starts no
|
|
22
|
+
selector-model request and creates no initial method artifact. The decision
|
|
23
|
+
command loads fixed canonical content and retains only volatile, context-scoped
|
|
24
|
+
delivery identities and agent availability assertions. It never treats an agent
|
|
25
|
+
assertion as proof of applied reasoning. Missing fixed package/source content
|
|
26
|
+
does not authorize a CWD-controlled fallback. This command adds no disk state,
|
|
27
|
+
raw prompt logging, conversation retention, screenshot capture, authentication
|
|
28
|
+
call, or telemetry.
|
|
29
|
+
|
|
30
|
+
The retained legacy Codex selector is a separate compatibility path. It uses the
|
|
31
|
+
pinned SDK and existing Codex authentication in an isolated worker, with bounded
|
|
32
|
+
read-only context access, disabled recursive hooks/plugins, a deadline, and
|
|
33
|
+
fail-open cleanup. Its temporary method artifacts contain authored content only.
|
|
34
|
+
A native read receipt is limited to the supported callback and exact artifact;
|
|
35
|
+
it cannot prove model understanding, method application, or improved answers.
|
|
36
|
+
Legacy SDK credential-copy and POSIX context access are unavailable on Windows.
|
|
37
|
+
|
|
38
|
+
OpenSocrates has no backend, telemetry, separate account, or API-key requirement.
|
|
39
|
+
Ordinary model requests remain subject to Codex service terms. Host-managed policy
|
|
40
|
+
and hook approvals remain part of the host trust boundary. Installation and
|
|
41
|
+
synthetic fixtures do not establish live hook delivery.
|
|
42
|
+
|
|
43
|
+
Release and package SHA-256 inventories detect corruption and enforce complete
|
|
44
|
+
closed payloads. `diagnose` checks the installed package against its manifest.
|
|
45
|
+
Unsigned checksums cannot authenticate bytes against an attacker who can replace
|
|
46
|
+
both the payload and its metadata. Release publication requires exact source
|
|
47
|
+
identity, verified asset transport, and immutable GitHub releases.
|
|
48
|
+
|
|
49
|
+
The installer validates managed-path ownership and preserves unrelated files.
|
|
50
|
+
Installation and removal are transactional; a failed activation restores verified
|
|
51
|
+
prior state. If rollback cannot safely restore a backup, it preserves the backup
|
|
52
|
+
and reports its exact recovery path. Purge refuses unknown, changed, linked, or
|
|
53
|
+
in-use payloads. Codex trust is preserved unless the explicit `--reset-trust`
|
|
54
|
+
option requests removal of the seven exact OpenSocrates trust entries through a
|
|
55
|
+
validated transactional configuration update. Conversation history is preserved.
|
|
56
|
+
Retired-host installation state must be cleaned up with the installer version
|
|
57
|
+
that owned it; 1.4.0 does not reinterpret it as Codex state.
|
|
58
|
+
|
|
59
|
+
The optional macOS LaunchAgent uses the verified installer and the selected npm
|
|
60
|
+
channel. It does not read or terminate active Codex sessions. Its owner-only
|
|
61
|
+
receipt contains version, timestamp, host result, and an error category, without
|
|
62
|
+
prompts, transcripts, credentials, workspace paths, or raw errors. Automatic
|
|
63
|
+
updates and automatic major upgrades are opt-in. Windows scheduled updates are
|
|
64
|
+
unavailable; use manual updates.
|
|
65
|
+
|
|
66
|
+
Windows x64 packages use real owner/DACL checks, binary I/O, file locks, and ZIP
|
|
67
|
+
path validation. Signing, notarization, SmartScreen reputation, Windows ARM64,
|
|
68
|
+
and separate clean-machine or GUI behavior are not inferred from package tests.
|
|
69
|
+
See [Windows support](docs/windows-support.md) and the version-specific release
|
|
70
|
+
record for measured evidence.
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.
|
|
1
|
+
1.4.0
|