sneakoscope 4.7.4 → 4.8.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/README.md +2 -2
- package/crates/sks-core/Cargo.lock +1 -1
- package/crates/sks-core/Cargo.toml +1 -1
- package/crates/sks-core/src/main.rs +1 -1
- package/dist/bin/sks.js +1 -1
- package/dist/core/codex-app/sks-menubar.js +16 -3
- package/dist/core/fsx.js +1 -1
- package/dist/core/managed-assets/managed-assets-manifest.js +1 -1
- package/dist/core/version.js +1 -1
- package/dist/scripts/sks-menubar-install-check.js +8 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -49,7 +49,7 @@ sks seo-geo-optimizer apply latest --mode seo --apply --json
|
|
|
49
49
|
sks seo-geo-optimizer audit --mode geo --target package --offline --json
|
|
50
50
|
```
|
|
51
51
|
|
|
52
|
-
> 📋 **Current release: `v4.
|
|
52
|
+
> 📋 **Current release: `v4.8.0`** — full release history lives in [CHANGELOG.md](CHANGELOG.md). This README documents how Sneakoscope works today, not its version-by-version changes. Release readiness is tracked in [docs/release-readiness.md](docs/release-readiness.md).
|
|
53
53
|
|
|
54
54
|
## 🍥 Parallelism, UX, And Integrations
|
|
55
55
|
|
|
@@ -363,7 +363,7 @@ sks codex-app set-openrouter-key --api-key-stdin
|
|
|
363
363
|
sks codex-app glm-profile install
|
|
364
364
|
```
|
|
365
365
|
|
|
366
|
-
This writes the OpenRouter key to the SKS user secret store, writes redacted metadata only, and installs Codex Desktop-compatible `openrouter` provider plus selectable `sks-glm-52-*` reasoning profiles. The npm package does not patch the Codex Desktop macOS menu binary; a top-level menu between Window and Help requires upstream Codex Desktop UI support. On macOS, `sks doctor --fix` installs or refreshes a right-side
|
|
366
|
+
This writes the OpenRouter key to the SKS user secret store, writes redacted metadata only, and installs Codex Desktop-compatible `openrouter` provider plus selectable `sks-glm-52-*` reasoning profiles. The npm package does not patch the Codex Desktop macOS menu binary; a top-level menu between Window and Help requires upstream Codex Desktop UI support. On macOS, `sks doctor --fix` installs or refreshes a right-side SKS menu bar companion that appears as a compact circled `S` status icon with codex-lb, ChatGPT OAuth, OpenRouter/GLM, Fast Check, SKS Version Check, Update SKS Now, settings, and Codex restart actions.
|
|
367
367
|
|
|
368
368
|
### Switching auth mode: codex-lb ↔ ChatGPT OAuth
|
|
369
369
|
|
|
@@ -4,7 +4,7 @@ use std::io::{self, Read, Seek, SeekFrom};
|
|
|
4
4
|
fn main() {
|
|
5
5
|
let mut args = std::env::args().skip(1);
|
|
6
6
|
match args.next().as_deref() {
|
|
7
|
-
Some("--version") => println!("sks-rs 4.
|
|
7
|
+
Some("--version") => println!("sks-rs 4.8.0"),
|
|
8
8
|
Some("compact-info") => {
|
|
9
9
|
let mut input = String::new();
|
|
10
10
|
let _ = io::stdin().read_to_string(&mut input);
|
package/dist/bin/sks.js
CHANGED
|
@@ -222,10 +222,9 @@ final class AppDelegate: NSObject, NSApplicationDelegate {
|
|
|
222
222
|
|
|
223
223
|
func applicationDidFinishLaunching(_ notification: Notification) {
|
|
224
224
|
NSApp.setActivationPolicy(.accessory)
|
|
225
|
-
statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.
|
|
225
|
+
statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.squareLength)
|
|
226
226
|
if let button = statusItem.button {
|
|
227
|
-
button
|
|
228
|
-
button.toolTip = "Sneakoscope Codex settings"
|
|
227
|
+
configureStatusButton(button)
|
|
229
228
|
}
|
|
230
229
|
|
|
231
230
|
let menu = NSMenu()
|
|
@@ -244,6 +243,20 @@ final class AppDelegate: NSObject, NSApplicationDelegate {
|
|
|
244
243
|
statusItem.menu = menu
|
|
245
244
|
}
|
|
246
245
|
|
|
246
|
+
func configureStatusButton(_ button: NSStatusBarButton) {
|
|
247
|
+
if #available(macOS 11.0, *), let image = NSImage(systemSymbolName: "s.circle.fill", accessibilityDescription: "SKS") {
|
|
248
|
+
image.isTemplate = true
|
|
249
|
+
button.image = image
|
|
250
|
+
button.imagePosition = .imageOnly
|
|
251
|
+
button.title = ""
|
|
252
|
+
} else {
|
|
253
|
+
button.title = "S"
|
|
254
|
+
}
|
|
255
|
+
button.toolTip = "SKS - Sneakoscope Codex settings"
|
|
256
|
+
button.setAccessibilityLabel("SKS")
|
|
257
|
+
button.setAccessibilityHelp("Open SKS menu")
|
|
258
|
+
}
|
|
259
|
+
|
|
247
260
|
func add(_ menu: NSMenu, _ title: String, _ selector: Selector) {
|
|
248
261
|
let item = NSMenuItem(title: title, action: selector, keyEquivalent: "")
|
|
249
262
|
item.target = self
|
package/dist/core/fsx.js
CHANGED
|
@@ -5,7 +5,7 @@ import os from 'node:os';
|
|
|
5
5
|
import crypto from 'node:crypto';
|
|
6
6
|
import { spawn } from 'node:child_process';
|
|
7
7
|
import { fileURLToPath } from 'node:url';
|
|
8
|
-
export const PACKAGE_VERSION = '4.
|
|
8
|
+
export const PACKAGE_VERSION = '4.8.0';
|
|
9
9
|
export const DEFAULT_PROCESS_TAIL_BYTES = 256 * 1024;
|
|
10
10
|
export const DEFAULT_PROCESS_TIMEOUT_MS = 30 * 60 * 1000;
|
|
11
11
|
export function nowIso() {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { REQUIRED_CODEX_MODEL } from '../codex-model-guard.js';
|
|
2
2
|
export const MANAGED_ASSET_SCHEMA_VERSION = 1;
|
|
3
|
-
export const MANAGED_ASSET_VERSION = '4.
|
|
3
|
+
export const MANAGED_ASSET_VERSION = '4.8.0';
|
|
4
4
|
export const MANAGED_ASSET_MARKER = 'SKS-MANAGED-ASSET';
|
|
5
5
|
export const MANAGED_AGENT_ROLES = Object.freeze([
|
|
6
6
|
role('sks-explorer', 'analysis-scout.toml', 'analysis_scout', 'SKS analysis scout for bounded read/write slices retained for stale Codex agent-role config repair.', 'workspace-write', ['analysis-scout', 'analysis_scout']),
|
package/dist/core/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const PACKAGE_VERSION = '4.
|
|
1
|
+
export const PACKAGE_VERSION = '4.8.0';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
|
@@ -13,6 +13,11 @@ const result = await installSksMenuBar({
|
|
|
13
13
|
const executableExists = result.executable_path ? await exists(result.executable_path) : false;
|
|
14
14
|
const launchAgentExists = result.launch_agent_path ? await exists(result.launch_agent_path) : false;
|
|
15
15
|
const actionScriptExists = result.action_script_path ? await exists(result.action_script_path) : false;
|
|
16
|
+
const generatedSourcePath = result.app_path ? path.join(path.dirname(result.app_path), 'SKSMenuBar.swift') : null;
|
|
17
|
+
const generatedSource = generatedSourcePath ? await fs.readFile(generatedSourcePath, 'utf8').catch(() => '') : '';
|
|
18
|
+
const hasVisibleIconSource = generatedSource.includes('NSStatusItem.squareLength')
|
|
19
|
+
&& generatedSource.includes('s.circle.fill')
|
|
20
|
+
&& generatedSource.includes('configureStatusButton');
|
|
16
21
|
const expectedMenuItems = [
|
|
17
22
|
'Use codex-lb',
|
|
18
23
|
'Use ChatGPT OAuth',
|
|
@@ -30,6 +35,7 @@ const ok = process.platform === 'darwin'
|
|
|
30
35
|
&& launchAgentExists
|
|
31
36
|
&& actionScriptExists
|
|
32
37
|
&& hasExpectedItems
|
|
38
|
+
&& hasVisibleIconSource
|
|
33
39
|
: result.ok === true && result.status === 'unsupported_platform';
|
|
34
40
|
const report = {
|
|
35
41
|
schema: 'sks.sks-menubar-install-check.v1',
|
|
@@ -39,6 +45,8 @@ const report = {
|
|
|
39
45
|
executable_exists: executableExists,
|
|
40
46
|
launch_agent_exists: launchAgentExists,
|
|
41
47
|
action_script_exists: actionScriptExists,
|
|
48
|
+
generated_source_path: generatedSourcePath,
|
|
49
|
+
has_visible_icon_source: hasVisibleIconSource,
|
|
42
50
|
expected_menu_items: expectedMenuItems,
|
|
43
51
|
missing_expected_items: missingExpectedItems,
|
|
44
52
|
has_expected_items: hasExpectedItems,
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sneakoscope",
|
|
3
3
|
"displayName": "ㅅㅋㅅ",
|
|
4
|
-
"version": "4.
|
|
4
|
+
"version": "4.8.0",
|
|
5
5
|
"description": "Sneakoscope Codex: fast proof-first Codex trust layer with image-based Voxel TriWiki.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"homepage": "https://github.com/mandarange/Sneakoscope-Codex#readme",
|