sneakoscope 8.0.5 → 8.1.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 CHANGED
@@ -22,7 +22,7 @@ Proof-first orchestration for Codex CLI, ChatGPT Desktop, AI coding agents, mult
22
22
  Sneakoscope Codex (`sks`) is an open-source trust layer for Codex CLI and ChatGPT Desktop. It coordinates bounded AI coding agents, records machine-verifiable evidence, preserves project memory, and blocks release claims that are not supported by current tests or artifacts. Search visibility outcomes are measured separately; SKS does not promise rankings or traffic.
23
23
  <!-- END SKS SEARCH VISIBILITY MARKETING -->
24
24
 
25
- This README documents package **SKS 8.0.5** — its own identity, read from `package.json` and subject to release-gate verification, not advice about what to install.
25
+ This README documents package **SKS 8.1.0** — its own identity, read from `package.json` and subject to release-gate verification, not advice about what to install.
26
26
 
27
27
  Use the official latest stable SKS and Codex CLI releases. The Codex compatibility SSOT is always the **current latest stable** host; capability probes measure what that host can actually do. Product docs do not crown a fixed `0.x.y` string as SSOT (release pins and schema directories are measured artifacts for the current package, not a permanent product version claim). Menu Bar / Center induce updates to the latest stable build. Run `sks update-check` for what is installed and read the capability report for what is supported. Install SSOT is npm `sneakoscope@latest`; PATH `sks` and Menu Bar stamped generation must match that version or gates fail. It resolves managed SKS skills from the authoritative global install, preserves a runnable Naruto child slot when `max_threads=2`, and keeps Menu Bar repair transactional so stamped generations remain verifiable. Naruto uses stable opt-in multi-agent V2 when the host exposes it (Codex official multi-agent wrap-only; SKS does not reimplement a parallel runtime). Local code search is mode-separated (`sks search files|text|structure|symbol|context`); `context` is answered by the compiled TriWiki Context Graph (`context-graph.json` is exhaustive authority; `context-pack.json` and managed `AGENTS.md` are bounded projections) — see [docs/architecture/context-graph.md](docs/architecture/context-graph.md) and [docs/PRODUCT-CONTRACT.md](docs/PRODUCT-CONTRACT.md). See [CHANGELOG.md](CHANGELOG.md).
28
28
 
@@ -349,7 +349,7 @@ It shows the current quickstart flow: one-line install, `$sks-plan`, `sks review
349
349
  - Native capability repair: `sks doctor --fix` (imagegen/Computer Use/Browser Use), `.sneakoscope/reports/native-capability-readiness.json`
350
350
  - codex-lb continuity: `sks codex-lb status --json` verifies the selected proxy's unauthenticated `/health` `X-App-Version`. Tool-heavy continuation requires a codex-lb deployment that reports the capability; use the official latest stable release. Older or unverified deployments block setup, doctor, and launch instead of silently falling back. A selected route is green only after one measured request records the destination host, gateway-key authentication class, measurement time, and latency; config presence alone is not routing proof.
351
351
  - Agent bridge for any agent system: `sks mcp-server`, `sks agent-bridge setup`, `SKS_AGENT_MODE=1` — see [docs/AGENT-BRIDGE.md](docs/AGENT-BRIDGE.md)
352
- - Release gates: `npm run release:check:affected` for ordinary change-aware verification and `npm run release:check:confidence` for the final local confidence pass. Evidence for the 8.0.5 physical checklist includes a successful 8.0.4-to-8.0.5 resolved-CLI upgrade, a 5,001-directory update scan, exactly one running Menu Bar process at the current package version, one measured real codex-lb request to the selected remote host, and one Telegram command/reply E2E over cellular.
352
+ - Release gates: `npm run release:check:affected` for ordinary change-aware verification and `npm run release:check:confidence` for the final local confidence pass. Evidence for the 8.1.0 physical checklist includes a successful prior-to-8.1.0 resolved-CLI upgrade, a 5,001-directory update scan, exactly one running Menu Bar process at the current package version, one measured real codex-lb request to the selected remote host, and one Telegram command/reply E2E over cellular.
353
353
  - Release preparation: typecheck, one clean build, focused tests, affected/confidence gates, all four source-bound physical receipts, then `npm publish --dry-run --json --registry https://registry.npmjs.org/ --tag latest --access public`. The dry-run does not publish or require release tags; real staging/publication remains a separate authenticated maintainer workflow.
354
354
  - Release readiness notes: [docs/release-readiness.md](docs/release-readiness.md) and [CHANGELOG.md](CHANGELOG.md)
355
355
  - Image generation review routes require Codex App `$imagegen`/`gpt-image-2` evidence with recorded output hashes; direct API fallback and mock fixtures do not satisfy full route gates.
@@ -259,7 +259,7 @@ dependencies = [
259
259
 
260
260
  [[package]]
261
261
  name = "sks-core"
262
- version = "8.0.5"
262
+ version = "8.1.0"
263
263
  dependencies = [
264
264
  "globset",
265
265
  "grep-matcher",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "sks-core"
3
- version = "8.0.5"
3
+ version = "8.1.0"
4
4
  edition = "2021"
5
5
 
6
6
  [dependencies]
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schema": "sks.skills-manifest.v1",
3
- "package_version": "8.0.5",
3
+ "package_version": "8.1.0",
4
4
  "skills": [
5
5
  {
6
6
  "canonical_name": "sks",
@@ -1 +1 @@
1
- export const PACKAGE_VERSION = '8.0.5';
1
+ export const PACKAGE_VERSION = '8.1.0';
@@ -11,19 +11,19 @@ struct ProviderActionInventoryItem: Equatable {
11
11
 
12
12
  enum ProviderActionInventory {
13
13
  static let items: [ProviderActionInventoryItem] = [
14
- .init(id: "sks-provider-use-codex-lb", handler: "enableDesktopFull", backend: "sks codex-lb use-desktop-full", loadingState: "routing", successState: "four-stage receipt", recoveryAction: "review provider stages"),
14
+ .init(id: "sks-provider-desktop-bridge-mode", handler: "enableDesktopFull", backend: "sks codex-lb use-desktop-full", loadingState: "routing", successState: "four-stage receipt", recoveryAction: "review provider stages"),
15
15
  .init(id: "sks-provider-verify-capabilities", handler: "verifyDesktopCapabilities", backend: "sks codex-lb capabilities", loadingState: "verifying", successState: "trusted capability matrix", recoveryAction: "retry verification"),
16
16
  .init(id: "sks-provider-use-chatgpt-oauth", handler: "disableDesktopRouting", backend: "sks codex-lb disable", loadingState: "routing", successState: "four-stage receipt", recoveryAction: "open provider settings"),
17
17
  .init(id: "sks-provider-reconnect-codex-lb", handler: "setDomainAndKey", backend: "sks codex-lb setup", loadingState: "saving", successState: "Keychain confirmed", recoveryAction: "repair Keychain and reconnect"),
18
18
  .init(id: "sks-provider-run-connect-test", handler: "testConnection", backend: "sks codex-lb connect-test", loadingState: "testing", successState: "bounded response proof", recoveryAction: "retry connect test"),
19
19
  .init(id: "sks-provider-copy-cli-command", handler: "copyCliCommand", backend: "local pasteboard", loadingState: "copying", successState: "command copied", recoveryAction: "copy again"),
20
- .init(id: "sks-provider-activate-codex-lb", handler: "useCliProvider", backend: "sks codex-lb use-desktop-full", loadingState: "applying", successState: "four-stage receipt", recoveryAction: "review provider stages"),
21
- .init(id: "sks-provider-reconnect-openrouter", handler: "saveOpenRouterKey", backend: "sks codex-app save-openrouter-key", loadingState: "saving", successState: "Keychain confirmed", recoveryAction: "repair Keychain and reconnect"),
22
- .init(id: "sks-provider-save-openrouter-key", handler: "saveOpenRouterKey", backend: "sks codex-app save-openrouter-key", loadingState: "saving", successState: "Keychain confirmed", recoveryAction: "repair Keychain and reconnect"),
20
+ .init(id: "sks-provider-activate-codex-lb", handler: "useCliProvider", backend: "sks codex-lb use-cli", loadingState: "applying", successState: "connection proof", recoveryAction: "review Credentials Connection Proof"),
21
+ .init(id: "sks-provider-reconnect-openrouter", handler: "saveOpenRouterKey", backend: "sks codex-app set-openrouter-key", loadingState: "saving", successState: "Keychain confirmed", recoveryAction: "repair Keychain and reconnect"),
22
+ .init(id: "sks-provider-save-openrouter-key", handler: "saveOpenRouterKey", backend: "sks codex-app set-openrouter-key", loadingState: "saving", successState: "Keychain confirmed", recoveryAction: "repair Keychain and reconnect"),
23
23
  .init(id: "sks-provider-refresh-openrouter-catalog", handler: "refreshOpenRouterModelsAction", backend: "sks codex-app openrouter-models", loadingState: "refreshing", successState: "validated catalog", recoveryAction: "reconnect then refresh"),
24
- .init(id: "sks-provider-test-openrouter", handler: "testOpenRouterConnection", backend: "sks codex-app test-openrouter", loadingState: "testing", successState: "model verified", recoveryAction: "choose a validated model"),
24
+ .init(id: "sks-provider-test-openrouter", handler: "testOpenRouterConnection", backend: "sks codex-app openrouter-test", loadingState: "testing", successState: "model verified", recoveryAction: "choose a validated model"),
25
25
  .init(id: "sks-provider-activate-openrouter", handler: "useOpenRouter", backend: "sks codex-app use-openrouter", loadingState: "applying", successState: "four-stage receipt", recoveryAction: "restore previous provider"),
26
- .init(id: "sks-provider-restore-previous", handler: "restorePreviousDesktopRouting", backend: "sks codex-app restore-provider", loadingState: "restoring", successState: "snapshot restored", recoveryAction: "review restore blocker"),
26
+ .init(id: "sks-provider-restore-previous", handler: "restorePreviousDesktopRouting", backend: "sks codex-app restore-desktop-routing", loadingState: "restoring", successState: "snapshot restored", recoveryAction: "review restore blocker"),
27
27
  .init(id: "sks-provider-open-codex-signin", handler: "openCodexSignInAction", backend: "NSWorkspace Codex launch", loadingState: "opening", successState: "Codex opened", recoveryAction: "install or open Codex manually"),
28
28
  .init(id: "sks-provider-fast-on", handler: "fastOn", backend: "sks fast-mode on", loadingState: "applying", successState: "service tier verified", recoveryAction: "refresh status"),
29
29
  .init(id: "sks-provider-fast-off", handler: "fastOff", backend: "sks fast-mode off", loadingState: "applying", successState: "service tier verified", recoveryAction: "refresh status"),
@@ -101,7 +101,7 @@ final class ProvidersViewController: NSViewController, ControlCenterPage, NSText
101
101
  let fastOff = NativeView.button("Codex Fast Off", target: self, action: #selector(fastOff))
102
102
  let reconnectOpenRouter = NativeView.button("Reconnect OpenRouter credential…", target: self, action: #selector(saveOpenRouterKey))
103
103
  let openCodexSignIn = NativeView.button("Open Codex sign-in…", target: self, action: #selector(openCodexSignInAction))
104
- registerProviderAction(enableDesktop, id: "sks-provider-use-codex-lb")
104
+ registerProviderAction(enableDesktop, id: "sks-provider-desktop-bridge-mode")
105
105
  registerProviderAction(verifyDesktop, id: "sks-provider-verify-capabilities")
106
106
  registerProviderAction(disableDesktop, id: "sks-provider-use-chatgpt-oauth")
107
107
  registerProviderAction(configureCli, id: "sks-provider-reconnect-codex-lb")
@@ -236,22 +236,22 @@ final class ProvidersViewController: NSViewController, ControlCenterPage, NSText
236
236
  }
237
237
  private func describeDesktopStatus(_ snapshot: ProviderRoutingTruth.Snapshot) -> String {
238
238
  if snapshot.legacyDestructive {
239
- return "Legacy destructive provider/auth state detected · choose Use Codex LB for migration guidance, or Use ChatGPT OAuth Only to remove SKS-owned routing."
239
+ return "Legacy destructive provider/auth state detected · choose Desktop Bridge Mode or Use Codex LB for migration guidance, or Use ChatGPT OAuth Only to remove SKS-owned routing."
240
240
  }
241
241
  if snapshot.mode == "desktop-native-bridge" {
242
242
  let oauth = snapshot.chatgptOauthPresent
243
243
  ? "ChatGPT OAuth present"
244
- : "ChatGPT OAuth missing — sign in with ChatGPT, then Use Codex LB"
244
+ : "ChatGPT OAuth missing — sign in with ChatGPT"
245
245
  return "Codex LB mode: enabled · \(oauth) · built-in OpenAI via bridge. Run Verify Capabilities for evidence."
246
246
  }
247
247
  if snapshot.mode == "disabled" {
248
248
  return snapshot.chatgptOauthPresent
249
- ? "ChatGPT OAuth mode: active · Codex LB Desktop routing disabled. Choose Use Codex LB to switch."
249
+ ? "ChatGPT OAuth mode: active · Codex LB Desktop routing disabled. Choose Desktop Bridge Mode (keeps ChatGPT sign-in) to switch."
250
250
  : "ChatGPT OAuth mode: selected, but ChatGPT sign-in is missing · run codex login."
251
251
  }
252
252
  return snapshot.chatgptOauthPresent
253
- ? "ChatGPT OAuth mode: active · Codex LB Desktop routing not enabled. Choose Use Codex LB to switch."
254
- : "ChatGPT OAuth mode available · ChatGPT sign-in is missing · run codex login, then Use Codex LB if needed."
253
+ ? "ChatGPT OAuth mode: active · Codex LB Desktop routing not enabled. Choose Desktop Bridge Mode (keeps ChatGPT sign-in) to switch."
254
+ : "ChatGPT OAuth mode available · ChatGPT sign-in is missing · run codex login, then Desktop Bridge Mode or Use Codex LB if needed."
255
255
  }
256
256
  private func describeCliStatus(_ snapshot: ProviderRoutingTruth.Snapshot, measuredRoute: ProviderRoutingTruth.MeasuredRoute?) -> String {
257
257
  if let route = measuredRoute, route.selected {
@@ -267,12 +267,12 @@ final class ProvidersViewController: NSViewController, ControlCenterPage, NSText
267
267
  }
268
268
  }
269
269
  if snapshot.cliCredentialsConfigured && snapshot.cliProviderStored {
270
- return "CLI provider: configured · availability remains unverified until Test succeeds."
270
+ return "CLI provider: configured · availability remains unverified until Run Connect Test succeeds."
271
271
  }
272
272
  if snapshot.cliProviderStored {
273
- return "CLI provider: configured, but credentials are incomplete · choose Configure / Update…"
273
+ return "CLI provider: configured, but credentials are incomplete · choose Reconnect Codex LB credential…"
274
274
  }
275
- return "CLI provider: not configured · choose Configure / Update…"
275
+ return "CLI provider: not configured · choose Reconnect Codex LB credential…"
276
276
  }
277
277
  private func capabilityPayload(_ json: [String: Any]) -> [String: Any] {
278
278
  for key in ["report", "capabilities", "desktop_capabilities", "capability_report"] { if let payload = json[key] as? [String: Any] { return payload } }
@@ -414,7 +414,7 @@ final class ProvidersViewController: NSViewController, ControlCenterPage, NSText
414
414
  }
415
415
  }
416
416
  @objc private func useCliProvider() {
417
- performDesktopRouting(["codex-lb", "use-desktop-full", "--restart-app", "--json"], title: "Use Codex LB", kind: "codex-lb-use-desktop-full", expectedMode: "desktop-native-bridge")
417
+ performCliCommand(["codex-lb", "use-cli", "--json"], title: "Use Codex LB", kind: "codex-lb-use-cli")
418
418
  }
419
419
  private func performCliCommand(_ args: [String], title: String, kind: String) {
420
420
  guard !busy else { cliProviderStatus.stringValue = "Another provider action is already running."; return }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "sneakoscope",
3
3
  "displayName": "ㅅㅋㅅ",
4
- "version": "8.0.5",
4
+ "version": "8.1.0",
5
5
  "description": "Sneakoscope Codex (`sks`) is an open-source trust layer for Codex CLI and ChatGPT Desktop. It coordinates bounded AI coding agents, records machine-verifiable evidence, preserves project memory, and blocks release claims that are not supported by current tests or artifacts. Search visibility outcomes are measured separately; SKS does not promise rankings or traffic.",
6
6
  "type": "module",
7
7
  "homepage": "https://github.com/mandarange/Sneakoscope-Codex#readme",