sneakoscope 8.2.0 → 8.3.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.
Files changed (101) hide show
  1. package/README.md +46 -110
  2. package/crates/sks-core/Cargo.lock +1 -1
  3. package/crates/sks-core/Cargo.toml +1 -1
  4. package/dist/cli/command-manifest-lite.js +0 -2
  5. package/dist/cli/command-registry.js +0 -2
  6. package/dist/commands/codex.js +3 -3
  7. package/dist/commands/doctor.js +5 -157
  8. package/dist/config/skills-manifest.json +1 -1
  9. package/dist/core/codex/codex-cli-syntax-builder.js +0 -8
  10. package/dist/core/codex-app/codex-models-cache.js +2 -1
  11. package/dist/core/codex-app/menubar/constants.js +0 -7
  12. package/dist/core/codex-compat/codex-capability-matrix.js +7 -7
  13. package/dist/core/codex-compat/codex-compat-report.js +8 -12
  14. package/dist/core/codex-compat/codex-runtime-contract.js +62 -0
  15. package/dist/core/codex-compat/codex-version-policy.js +7 -7
  16. package/dist/core/codex-control/codex-current-app-capability.js +3 -3
  17. package/dist/core/codex-control/codex-current-capability.js +67 -94
  18. package/dist/core/codex-control/codex-current-core-capability.js +3 -3
  19. package/dist/core/codex-control/codex-current-core-probe-runner.js +4 -4
  20. package/dist/core/codex-control/codex-current-core-real-probes.js +2 -2
  21. package/dist/core/codex-control/codex-current-feature-capability.js +4 -4
  22. package/dist/core/codex-control/codex-current-image-path-real-probe.js +1 -1
  23. package/dist/core/codex-control/codex-current-web-search-probe.js +1 -1
  24. package/dist/core/codex-control/codex-sdk-capability.js +2 -2
  25. package/dist/core/commands/remote-command.js +2 -2
  26. package/dist/core/context7-client.js +5 -2
  27. package/dist/core/doctor/codex-current-core-probe-doctor.js +2 -2
  28. package/dist/core/doctor/doctor-dirty-planner.js +1 -1
  29. package/dist/core/doctor/doctor-readiness-matrix.js +0 -7
  30. package/dist/core/feature-fixtures.js +0 -4
  31. package/dist/core/feature-registry.js +0 -1
  32. package/dist/core/image-ux-review.js +3 -3
  33. package/dist/core/install/installed-package-smoke.js +2 -3
  34. package/dist/core/mad-sks/sql-plane/mcp-executor.js +4 -3
  35. package/dist/core/mcp/modern-protocol.js +36 -0
  36. package/dist/core/mcp-config/health-check.js +45 -30
  37. package/dist/core/perf/release-latency-slo.js +1 -2
  38. package/dist/core/proof/runtime-truth-matrix.js +1 -1
  39. package/dist/core/release/canonical-test-proof.js +1 -2
  40. package/dist/core/release/gate-manifest.js +5 -2
  41. package/dist/core/release/physical-release-gates.js +0 -26
  42. package/dist/core/release/release-gate-affected-selector.js +2 -1
  43. package/dist/core/release/release-gate-contract.js +3 -1
  44. package/dist/core/release/release-pack-receipt.js +0 -1
  45. package/dist/core/release/stage-publish.js +1 -1
  46. package/dist/core/version-manager.js +4 -0
  47. package/dist/core/version.js +1 -1
  48. package/dist/native/sks-menubar/Sources/AppDelegate.swift +1 -12
  49. package/dist/native/sks-menubar/Sources/ControlCenterWindowController.swift +2 -6
  50. package/dist/native/sks-menubar/Sources/RemoteCodingViewController.swift +28 -471
  51. package/dist/native/sks-menubar/Sources/SecureProcessEnvelope.swift +1 -43
  52. package/dist/scripts/codex-current-app-server-v2-check.js +9 -8
  53. package/dist/scripts/codex-current-binary-identity-check.js +2 -2
  54. package/dist/scripts/codex-current-capability-check.js +9 -7
  55. package/dist/scripts/codex-current-dependency-check.js +21 -0
  56. package/dist/scripts/docs-truthfulness-check.js +4 -19
  57. package/dist/scripts/fast-codex-service-tier-proof-check.js +0 -1
  58. package/dist/scripts/install-surface-ssot-check.js +2 -2
  59. package/dist/scripts/latest-version-guidance-check.js +1 -1
  60. package/dist/scripts/packlist-performance-check.js +0 -1
  61. package/dist/scripts/release-metadata-check.js +4 -1
  62. package/dist/scripts/release-version-truth-check.js +149 -0
  63. package/dist/vendor/openai-codex/latest/hooks/permission-request.command.input.schema.json +6 -0
  64. package/dist/vendor/openai-codex/latest/hooks/permission-request.command.output.schema.json +2 -16
  65. package/dist/vendor/openai-codex/latest/hooks/post-compact.command.input.schema.json +6 -0
  66. package/dist/vendor/openai-codex/latest/hooks/post-tool-use.command.input.schema.json +6 -0
  67. package/dist/vendor/openai-codex/latest/hooks/post-tool-use.command.output.schema.json +2 -16
  68. package/dist/vendor/openai-codex/latest/hooks/pre-compact.command.input.schema.json +6 -0
  69. package/dist/vendor/openai-codex/latest/hooks/pre-tool-use.command.input.schema.json +6 -0
  70. package/dist/vendor/openai-codex/latest/hooks/pre-tool-use.command.output.schema.json +2 -16
  71. package/dist/vendor/openai-codex/latest/hooks/session-start.command.output.schema.json +2 -16
  72. package/dist/vendor/openai-codex/latest/hooks/snapshot-metadata.json +7 -5
  73. package/dist/vendor/openai-codex/latest/hooks/subagent-start.command.output.schema.json +4 -18
  74. package/dist/vendor/openai-codex/latest/hooks/user-prompt-submit.command.input.schema.json +6 -0
  75. package/dist/vendor/openai-codex/latest/hooks/user-prompt-submit.command.output.schema.json +2 -16
  76. package/package.json +4 -7
  77. package/release-gates.v2.json +49 -19
  78. package/config/codex-releases/rust-v0.146.0.json +0 -45
  79. package/dist/core/agents/agent-runner-codex-exec.js +0 -177
  80. package/dist/core/codex-compat/codex-release-manifest.js +0 -72
  81. package/dist/core/commands/telegram-command.js +0 -447
  82. package/dist/core/telegram/access.js +0 -58
  83. package/dist/core/telegram/client.js +0 -157
  84. package/dist/core/telegram/confirmation.js +0 -37
  85. package/dist/core/telegram/doctor.js +0 -154
  86. package/dist/core/telegram/index.js +0 -9
  87. package/dist/core/telegram/keychain.js +0 -317
  88. package/dist/core/telegram/liveness.js +0 -124
  89. package/dist/core/telegram/poller.js +0 -90
  90. package/dist/core/telegram/redaction.js +0 -15
  91. package/dist/core/telegram/state-lock.js +0 -416
  92. package/dist/core/telegram/types.js +0 -1
  93. package/dist/native/sks-menubar/Sources/TelegramPrivateFileStore.swift +0 -498
  94. package/dist/native/sks-menubar/Sources/TelegramPrivateFileSupport.swift +0 -236
  95. package/dist/native/sks-menubar/Sources/TelegramProcessGateway.swift +0 -454
  96. package/dist/native/sks-menubar/Sources/TelegramRuntimeSupport.swift +0 -56
  97. package/dist/native/sks-menubar/Sources/TelegramStateLock.swift +0 -448
  98. package/dist/native/sks-menubar/Sources/TelegramSupport.swift +0 -243
  99. package/dist/native/sks-menubar/Sources/TelegramTransport.swift +0 -499
  100. package/dist/scripts/codex-current-manifest-check.js +0 -29
  101. package/schemas/codex/app-server-0.146/codex_app_server_protocol.v2.schemas.json +0 -19858
@@ -1,243 +0,0 @@
1
- import Foundation
2
-
3
- struct TelegramNativeUser: Codable, Sendable {
4
- let id: Int64
5
- let is_bot: Bool
6
- let first_name: String
7
- }
8
-
9
- struct TelegramNativeChat: Codable, Sendable {
10
- let id: Int64
11
- let type: String
12
- }
13
-
14
- struct TelegramNativeMessage: Codable, Sendable {
15
- let message_id: Int64
16
- let date: Int64
17
- let chat: TelegramNativeChat
18
- let from: TelegramNativeUser?
19
- let text: String?
20
- }
21
-
22
- struct TelegramNativeUpdate: Codable, Sendable {
23
- let update_id: Int64
24
- let message: TelegramNativeMessage?
25
- }
26
-
27
- struct TelegramTypedCommandRequest: Sendable, Equatable {
28
- let name: String
29
- let inputJSON: String
30
- }
31
-
32
- struct TelegramTypedCommandDecision: Sendable, Equatable {
33
- let allowed: Bool
34
- let confirmationRequired: Bool
35
- let publicError: String?
36
- }
37
-
38
- /// The AppDelegate adapter must delegate these calls to the TypeScript
39
- /// createTelegramCommandDispatcher boundary. It must execute argv directly;
40
- /// no shell command string is accepted by this protocol.
41
- protocol TelegramTypedCommandGateway: Sendable {
42
- func prepare(_ request: TelegramTypedCommandRequest) async -> TelegramTypedCommandDecision
43
- func execute(_ request: TelegramTypedCommandRequest) async throws -> String
44
- }
45
-
46
- struct TelegramNativeAuditEvent: Sendable, Equatable {
47
- let actor: String
48
- let action: String
49
- let command: String?
50
- let outcome: String
51
- let detail: String?
52
- }
53
-
54
- struct TelegramPollerReceipt: Codable, Sendable, Equatable {
55
- let schema: String
56
- let running: Bool
57
- let offset: Int64
58
- let consecutive_failures: Int
59
- let last_poll_at: String?
60
- let last_success_at: String?
61
- let last_update_at: String?
62
- let last_error: String?
63
-
64
- private enum CodingKeys: String, CodingKey {
65
- case schema, running, offset, consecutive_failures
66
- case last_poll_at, last_success_at, last_update_at, last_error
67
- }
68
-
69
- func encode(to encoder: Encoder) throws {
70
- var container = encoder.container(keyedBy: CodingKeys.self)
71
- try container.encode(schema, forKey: .schema)
72
- try container.encode(running, forKey: .running)
73
- try container.encode(offset, forKey: .offset)
74
- try container.encode(consecutive_failures, forKey: .consecutive_failures)
75
- if let last_poll_at { try container.encode(last_poll_at, forKey: .last_poll_at) }
76
- else { try container.encodeNil(forKey: .last_poll_at) }
77
- if let last_success_at { try container.encode(last_success_at, forKey: .last_success_at) }
78
- else { try container.encodeNil(forKey: .last_success_at) }
79
- if let last_update_at { try container.encode(last_update_at, forKey: .last_update_at) }
80
- else { try container.encodeNil(forKey: .last_update_at) }
81
- if let last_error { try container.encode(last_error, forKey: .last_error) }
82
- else { try container.encodeNil(forKey: .last_error) }
83
- }
84
- }
85
-
86
- struct TelegramLivenessReceipt: Codable, Sendable, Equatable {
87
- let schema: String
88
- let generation: String
89
- let pid: Int32
90
- let running: Bool
91
- let token_configured: Bool
92
- let token_source: TelegramTokenSource
93
- let bot_id: Int64?
94
- let bot_identity_valid: Bool
95
- let getme_checked_at: String?
96
- let getme_latency_ms: Int?
97
- let paired_chat_count: Int
98
- let started_at: String
99
- let heartbeat_at: String
100
- let stale_after_seconds: Int
101
- let audit_healthy: Bool?
102
- let audit_last_error: String?
103
- let poller: TelegramPollerReceipt
104
-
105
- private enum CodingKeys: String, CodingKey {
106
- case schema, generation, pid, running, token_configured, token_source
107
- case bot_id, bot_identity_valid, getme_checked_at, getme_latency_ms
108
- case paired_chat_count, started_at, heartbeat_at, stale_after_seconds
109
- case audit_healthy, audit_last_error, poller
110
- }
111
-
112
- func encode(to encoder: Encoder) throws {
113
- var container = encoder.container(keyedBy: CodingKeys.self)
114
- try container.encode(schema, forKey: .schema)
115
- try container.encode(generation, forKey: .generation)
116
- try container.encode(pid, forKey: .pid)
117
- try container.encode(running, forKey: .running)
118
- try container.encode(token_configured, forKey: .token_configured)
119
- try container.encode(token_source, forKey: .token_source)
120
- if let bot_id { try container.encode(bot_id, forKey: .bot_id) }
121
- else { try container.encodeNil(forKey: .bot_id) }
122
- try container.encode(bot_identity_valid, forKey: .bot_identity_valid)
123
- if let getme_checked_at { try container.encode(getme_checked_at, forKey: .getme_checked_at) }
124
- else { try container.encodeNil(forKey: .getme_checked_at) }
125
- if let getme_latency_ms { try container.encode(getme_latency_ms, forKey: .getme_latency_ms) }
126
- else { try container.encodeNil(forKey: .getme_latency_ms) }
127
- try container.encode(paired_chat_count, forKey: .paired_chat_count)
128
- try container.encode(started_at, forKey: .started_at)
129
- try container.encode(heartbeat_at, forKey: .heartbeat_at)
130
- try container.encode(stale_after_seconds, forKey: .stale_after_seconds)
131
- if let audit_healthy { try container.encode(audit_healthy, forKey: .audit_healthy) }
132
- else { try container.encodeNil(forKey: .audit_healthy) }
133
- if let audit_last_error { try container.encode(audit_last_error, forKey: .audit_last_error) }
134
- else { try container.encodeNil(forKey: .audit_last_error) }
135
- try container.encode(poller, forKey: .poller)
136
- }
137
- }
138
-
139
- struct TelegramCenterSetupResponse: Decodable {
140
- struct Recovery: Decodable {
141
- let action: String?
142
- let note: String?
143
- }
144
-
145
- let ok: Bool
146
- let getme_verified: Bool?
147
- let token_stored: Bool?
148
- let error: String?
149
- let partial_success: Bool?
150
- let token_source: String?
151
- let storage_attempted: Bool?
152
- let webhook_removed: Bool?
153
- let pending_updates_dropped: Bool?
154
- let bot_state_reset: Bool?
155
- let bot_id: Int64?
156
- let bot_username: String?
157
- let operator_action: String?
158
- let recovery: Recovery?
159
- }
160
-
161
- struct TelegramCenterPairResponse: Decodable {
162
- let ok: Bool
163
- let code: String?
164
- let expires_at: String?
165
- let instruction: String?
166
- let post_pair_command: String?
167
- let confirmation_grammar: String?
168
- let error: String?
169
- }
170
-
171
- struct TelegramCenterDoctorResponse: Decodable {
172
- struct Poller: Decodable {
173
- let running: Bool
174
- let consecutive_failures: Int
175
- let last_error: String?
176
- }
177
-
178
- let ok: Bool
179
- let status: String
180
- let token_configured: Bool
181
- let token_source: String
182
- let bot_identity_valid: Bool
183
- let paired_chat_count: Int
184
- let audit_healthy: Bool
185
- let poller: Poller
186
- let blockers: [String]
187
- let self_heal_action: String?
188
- }
189
-
190
- func telegramCommandRequest(_ text: String) -> TelegramTypedCommandRequest? {
191
- let text = text.trimmingCharacters(in: .whitespacesAndNewlines)
192
- let pattern = #"^/sks\s+([a-z][a-z0-9-]{0,63})(?:\s+([\s\S]+))?$"#
193
- guard let expression = try? NSRegularExpression(pattern: pattern),
194
- let match = expression.firstMatch(in: text, range: NSRange(text.startIndex..., in: text)),
195
- let nameRange = Range(match.range(at: 1), in: text) else { return nil }
196
- let name = String(text[nameRange])
197
- guard match.range(at: 2).location != NSNotFound,
198
- let inputRange = Range(match.range(at: 2), in: text) else {
199
- return TelegramTypedCommandRequest(name: name, inputJSON: "{}")
200
- }
201
- let raw = String(text[inputRange])
202
- guard raw.utf8.count <= 16 * 1024,
203
- let data = raw.data(using: .utf8),
204
- let object = try? JSONSerialization.jsonObject(with: data),
205
- object is [String: Any],
206
- let normalized = try? JSONSerialization.data(withJSONObject: object, options: [.sortedKeys]),
207
- let json = String(data: normalized, encoding: .utf8) else { return nil }
208
- return TelegramTypedCommandRequest(name: name, inputJSON: json)
209
- }
210
-
211
- func telegramPairingCode(text: String, chatType: String) -> String? {
212
- guard chatType == "private" else { return nil }
213
- return telegramFirstCapture(#"^/start\s+([A-Za-z0-9_-]{6,64})$"#, text)
214
- }
215
-
216
- func telegramConfirmationNonce(_ text: String) -> String? {
217
- telegramFirstCapture(#"^/confirm\s+([A-Za-z0-9_-]{16,64})$"#, text)
218
- }
219
-
220
- private func telegramFirstCapture(_ pattern: String, _ text: String) -> String? {
221
- guard let expression = try? NSRegularExpression(pattern: pattern),
222
- let match = expression.firstMatch(in: text, range: NSRange(text.startIndex..., in: text)),
223
- let range = Range(match.range(at: 1), in: text) else { return nil }
224
- return String(text[range])
225
- }
226
-
227
- func telegramISODate(_ date: Date = Date()) -> String {
228
- ISO8601DateFormatter().string(from: date)
229
- }
230
-
231
- func telegramPublicError(_ value: String?, secret: String? = nil) -> String {
232
- var raw = value ?? "telegram_error"
233
- if let secret, !secret.isEmpty { raw = raw.replacingOccurrences(of: secret, with: "[redacted]") }
234
- let botPattern = try? NSRegularExpression(pattern: #"/bot[^/\s]+/"#, options: [.caseInsensitive])
235
- let redacted = botPattern?.stringByReplacingMatches(in: raw, range: NSRange(raw.startIndex..., in: raw), withTemplate: "/bot[redacted]/") ?? raw
236
- return String(redacted.prefix(512))
237
- }
238
-
239
- func telegramRedactedActor(chatID: Int64, senderID: Int64) -> String {
240
- var hash: UInt64 = 1469598103934665603
241
- for byte in "\(chatID):\(senderID)".utf8 { hash = (hash ^ UInt64(byte)) &* 1099511628211 }
242
- return String(format: "actor:%012llx", hash & 0xffffffffffff)
243
- }