sneakoscope 5.7.0 → 5.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 +1 -1
- 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/cli/command-registry.js +1 -2
- package/dist/cli/{insane-search-command.js → super-search-command.js} +96 -55
- package/dist/cli/xai-command.js +7 -7
- package/dist/config/skills-manifest.json +63 -70
- package/dist/core/agents/agent-codex-cockpit.js +3 -3
- package/dist/core/agents/agent-orchestrator.js +20 -2
- package/dist/core/agents/agent-wrongness.js +1 -1
- package/dist/core/agents/native-cli-session-swarm.js +14 -1
- package/dist/core/agents/parallel-runtime-proof.js +82 -8
- package/dist/core/commands/gc-command.js +12 -6
- package/dist/core/commands/run-command.js +20 -18
- package/dist/core/feature-fixtures.js +15 -8
- package/dist/core/fsx.js +1 -1
- package/dist/core/init/skills.js +1 -2
- package/dist/core/mission.js +41 -15
- package/dist/core/release-parallel-full-coverage.js +1 -1
- package/dist/core/retention.js +1 -1
- package/dist/core/routes/constants.js +2 -2
- package/dist/core/routes.js +150 -52
- package/dist/core/source-intelligence/source-intelligence-policy.js +5 -5
- package/dist/core/source-intelligence/source-intelligence-proof.js +8 -8
- package/dist/core/source-intelligence/source-intelligence-runner.js +16 -16
- package/dist/core/strategy/strategy-gate.js +2 -1
- package/dist/core/super-search/runtime-helpers.js +289 -0
- package/dist/core/super-search/runtime.js +259 -0
- package/dist/core/super-search/source-records.js +96 -0
- package/dist/core/super-search/types.js +3 -0
- package/dist/core/trust-kernel/trust-report.js +3 -3
- package/dist/core/verification/real-evidence-policy.js +55 -0
- package/dist/core/version.js +1 -1
- package/dist/scripts/agent-visual-consistency-check.js +1 -1
- package/dist/scripts/check-architecture.js +0 -1
- package/dist/scripts/mutation-callsite-coverage-check.js +7 -0
- package/dist/scripts/release-metadata-1-19-check.js +2 -2
- package/dist/scripts/release-parallel-check.js +2 -2
- package/dist/scripts/release-parallel-full-coverage-check.js +1 -1
- package/dist/scripts/sks-1-18-gate-lib.js +2 -2
- package/dist/scripts/source-intelligence-all-modes-check.js +2 -2
- package/dist/scripts/source-intelligence-policy-check.js +1 -1
- package/dist/scripts/super-search-name-guard-check.js +98 -0
- package/dist/scripts/{ultra-search-provider-interface-check.js → super-search-provider-interface-check.js} +9 -9
- package/dist/scripts/trust-fixture-check.js +19 -6
- package/package.json +9 -3
- package/schemas/agents/parallel-runtime-proof.schema.json +17 -1
- package/dist/core/ultra-search/runtime.js +0 -502
- package/dist/core/ultra-search/types.js +0 -3
- package/dist/scripts/release-readiness-report.js +0 -1262
- /package/dist/core/{ultra-search → super-search}/index.js +0 -0
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
Sneakoscope Codex (`sks`) is a Codex CLI and Codex App harness for people who want parallel AI coding without losing proof. It gives Codex a simple front door, a dynamic worker swarm, a local dashboard, TriWiki project memory, and release gates that separate machine evidence from LLM opinion.
|
|
16
16
|
|
|
17
|
-
Current release: SKS **5.
|
|
17
|
+
Current release: SKS **5.8.0**. New in this release: intent routing no longer treats every question mark as answer-only, Naruto parallel-write proof now requires real worker/file/timestamp evidence, production gates reject mock-only or source-less success, and the fragmented legacy search surface is replaced by the canonical `sks super-search` / `$Super-Search` path. See [CHANGELOG.md](CHANGELOG.md).
|
|
18
18
|
|
|
19
19
|
## Install
|
|
20
20
|
|
|
@@ -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 5.
|
|
7
|
+
Some("--version") => println!("sks-rs 5.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
|
@@ -161,8 +161,7 @@ export const COMMANDS = {
|
|
|
161
161
|
'image-ux-review': routeStateMutator(entry('labs', 'Inspect image UX artifacts', 'dist/core/commands/image-ux-review-command.js', commandArgsCommand(() => import('../core/commands/image-ux-review-command.js'), 'imageUxReviewCommand', 'dist/core/commands/image-ux-review-command.js')), ['image-ux-review-gate.json']),
|
|
162
162
|
'computer-use': routeStateMutator(entry('beta', 'Record native Mac/non-web Computer Use visual evidence', 'dist/core/commands/computer-use-command.js', commandArgsCommand(() => import('../core/commands/computer-use-command.js'), 'computerUseCommand', 'dist/core/commands/computer-use-command.js')), ['computer-use-gate.json']),
|
|
163
163
|
context7: entry('beta', 'Context7 checks and docs', 'dist/cli/context7-command.js', subcommand(() => import('./context7-command.js'), 'context7Command', 'dist/cli/context7-command.js', 'check')),
|
|
164
|
-
'
|
|
165
|
-
'ultra-search': entry('beta', 'Compatibility alias for InsaneSearch source intelligence', 'dist/cli/insane-search-command.js', subcommand(() => import('./insane-search-command.js'), 'ultraSearchCommand', 'dist/cli/insane-search-command.js', 'doctor')),
|
|
164
|
+
'super-search': entry('beta', 'Run Super-Search provider-independent source intelligence', 'dist/cli/super-search-command.js', subcommand(() => import('./super-search-command.js'), 'superSearchCommand', 'dist/cli/super-search-command.js', 'doctor')),
|
|
166
165
|
xai: entry('beta', 'Deprecated compatibility notice for removed xAI/Grok setup', 'dist/cli/xai-command.js', subcommand(() => import('./xai-command.js'), 'xaiCommand', 'dist/cli/xai-command.js', 'check')),
|
|
167
166
|
recallpulse: entry('labs', 'RecallPulse evidence route', 'dist/commands/recallpulse.js', directCommand(() => import('../commands/recallpulse.js'), 'dist/commands/recallpulse.js')),
|
|
168
167
|
pipeline: activeRouteDiagnostic(entry('beta', 'Inspect pipeline missions', 'dist/commands/pipeline.js', directCommand(() => import('../commands/pipeline.js'), 'dist/commands/pipeline.js'))),
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import fs from 'node:fs/promises';
|
|
2
2
|
import os from 'node:os';
|
|
3
3
|
import path from 'node:path';
|
|
4
|
-
import {
|
|
4
|
+
import { randomUUID } from 'node:crypto';
|
|
5
|
+
import { runSuperSearch } from '../core/super-search/index.js';
|
|
5
6
|
import { evaluateLocalGate } from '../core/commands/route-success-helpers.js';
|
|
6
|
-
|
|
7
|
+
import { evaluateRealEvidencePolicy } from '../core/verification/real-evidence-policy.js';
|
|
8
|
+
export async function superSearchCommand(sub = 'help', args = []) {
|
|
7
9
|
const action = sub || 'help';
|
|
8
10
|
if (action === 'run')
|
|
9
11
|
return runCommand(args);
|
|
@@ -19,24 +21,25 @@ export async function insaneSearchCommand(sub = 'help', args = []) {
|
|
|
19
21
|
return cacheCommand(args);
|
|
20
22
|
if (action === 'bench')
|
|
21
23
|
return benchCommand(args);
|
|
22
|
-
if (action === 'migrate-xai')
|
|
23
|
-
return migrateXaiCommand(args);
|
|
24
24
|
return helpCommand();
|
|
25
25
|
}
|
|
26
|
-
export const ultraSearchCommand = insaneSearchCommand;
|
|
27
26
|
async function runCommand(args) {
|
|
28
27
|
const json = args.includes('--json');
|
|
29
28
|
const mode = readOption(args, '--mode');
|
|
30
|
-
const
|
|
29
|
+
const rawQuery = positional(args).join(' ').trim();
|
|
30
|
+
const query = rawQuery || (mode === 'url_acquisition' ? 'fetch' : '');
|
|
31
31
|
if (!query)
|
|
32
|
-
throw new Error('Usage: sks
|
|
32
|
+
throw new Error('Usage: sks super-search run "<query>" [--mode fast|balanced|deep|exhaustive] [--json]');
|
|
33
|
+
if (mode && !['fast', 'balanced', 'deep', 'exhaustive', 'x_search', 'url_acquisition'].includes(mode)) {
|
|
34
|
+
throw new Error('Unsupported Super-Search mode: ' + mode);
|
|
35
|
+
}
|
|
33
36
|
const missionDir = await mkMissionDir();
|
|
34
|
-
const result = await
|
|
37
|
+
const result = await runSuperSearch({
|
|
35
38
|
missionDir,
|
|
36
39
|
query,
|
|
37
40
|
...(mode ? { mode } : {})
|
|
38
41
|
});
|
|
39
|
-
const gate = await
|
|
42
|
+
const gate = await evaluateSuperSearchGate(missionDir);
|
|
40
43
|
const finalResult = {
|
|
41
44
|
...result,
|
|
42
45
|
ok: result.ok === true && gate.ok === true,
|
|
@@ -46,7 +49,7 @@ async function runCommand(args) {
|
|
|
46
49
|
if (json)
|
|
47
50
|
console.log(JSON.stringify(finalResult, null, 2));
|
|
48
51
|
else {
|
|
49
|
-
console.log(`
|
|
52
|
+
console.log(`Super-Search ${finalResult.ok ? 'completed' : 'partial/blocked'}: ${result.mode}`);
|
|
50
53
|
console.log(`Mission: ${missionDir}`);
|
|
51
54
|
console.log(`Sources: ${result.sources.length}, verified: ${result.proof.verified_source_count}`);
|
|
52
55
|
if (finalResult.blockers.length)
|
|
@@ -59,7 +62,7 @@ async function runCommand(args) {
|
|
|
59
62
|
async function doctorCommand(args) {
|
|
60
63
|
const json = args.includes('--json');
|
|
61
64
|
const report = {
|
|
62
|
-
schema: 'sks.
|
|
65
|
+
schema: 'sks.super-search-doctor.v1',
|
|
63
66
|
ok: true,
|
|
64
67
|
core_ready: true,
|
|
65
68
|
xai_required: false,
|
|
@@ -75,18 +78,31 @@ async function doctorCommand(args) {
|
|
|
75
78
|
if (json)
|
|
76
79
|
console.log(JSON.stringify(report, null, 2));
|
|
77
80
|
else
|
|
78
|
-
console.log('
|
|
81
|
+
console.log('Super-Search doctor: core ready; xAI/Grok is not required.');
|
|
79
82
|
return report;
|
|
80
83
|
}
|
|
81
84
|
async function inspectCommand(action, args) {
|
|
82
85
|
const json = args.includes('--json');
|
|
83
86
|
const mission = positional(args)[0] || 'latest';
|
|
84
87
|
const target = mission === 'latest' ? await latestMissionDir() : mission;
|
|
85
|
-
const file = path.join(target, '
|
|
86
|
-
const text = await fs.readFile(file, 'utf8');
|
|
87
|
-
const parsed = JSON.parse(text)
|
|
88
|
-
|
|
89
|
-
|
|
88
|
+
const file = path.join(target, 'super-search', action === 'sources' ? 'source-ledger.json' : action === 'claims' ? 'claim-ledger.json' : 'super-search-result.json');
|
|
89
|
+
const text = await fs.readFile(file, 'utf8').catch(() => null);
|
|
90
|
+
const parsed = text ? JSON.parse(text) : {
|
|
91
|
+
schema: 'sks.super-search-inspect-missing.v1',
|
|
92
|
+
ok: false,
|
|
93
|
+
mission: target,
|
|
94
|
+
blockers: ['super_search_mission_artifact_missing:' + path.relative(process.cwd(), file)]
|
|
95
|
+
};
|
|
96
|
+
const gate = await evaluateSuperSearchGate(target);
|
|
97
|
+
const evidence = await evaluateSuperSearchArtifacts(target);
|
|
98
|
+
const parsedOk = parsed.ok === false ? false : true;
|
|
99
|
+
const result = {
|
|
100
|
+
...parsed,
|
|
101
|
+
ok: parsedOk && gate.ok === true && evidence.ok === true,
|
|
102
|
+
gate_evaluation: gate,
|
|
103
|
+
real_evidence_policy: evidence,
|
|
104
|
+
blockers: [...new Set([...(parsed.blockers || []), ...gate.blockers, ...evidence.blockers])]
|
|
105
|
+
};
|
|
90
106
|
if (!result.ok)
|
|
91
107
|
process.exitCode = 1;
|
|
92
108
|
if (json)
|
|
@@ -97,13 +113,13 @@ async function inspectCommand(action, args) {
|
|
|
97
113
|
}
|
|
98
114
|
async function cacheCommand(args) {
|
|
99
115
|
const sub = positional(args)[0] || 'status';
|
|
100
|
-
const report = { schema: 'sks.
|
|
116
|
+
const report = { schema: 'sks.super-search-cache.v1', ok: true, action: sub, local_only: true };
|
|
101
117
|
console.log(JSON.stringify(report, null, 2));
|
|
102
118
|
return report;
|
|
103
119
|
}
|
|
104
120
|
async function benchCommand(args) {
|
|
105
121
|
const report = {
|
|
106
|
-
schema: 'sks.
|
|
122
|
+
schema: 'sks.super-search-bench.v1',
|
|
107
123
|
ok: false,
|
|
108
124
|
suite: readOption(args, '--suite') || 'all',
|
|
109
125
|
status: 'real_benchmark_not_run',
|
|
@@ -112,33 +128,16 @@ async function benchCommand(args) {
|
|
|
112
128
|
console.log(JSON.stringify(report, null, 2));
|
|
113
129
|
return report;
|
|
114
130
|
}
|
|
115
|
-
async function migrateXaiCommand(args) {
|
|
116
|
-
const apply = args.includes('--apply');
|
|
117
|
-
const report = {
|
|
118
|
-
schema: apply ? 'sks.ultra-search-xai-migration-result.v1' : 'sks.ultra-search-xai-migration-plan.v1',
|
|
119
|
-
ok: true,
|
|
120
|
-
applied: false,
|
|
121
|
-
managed_candidates: [],
|
|
122
|
-
unowned_preserved: true,
|
|
123
|
-
note: 'No automatic MCP config deletion is performed without an owned managed marker and explicit --apply.'
|
|
124
|
-
};
|
|
125
|
-
console.log(JSON.stringify(report, null, 2));
|
|
126
|
-
return report;
|
|
127
|
-
}
|
|
128
131
|
function helpCommand() {
|
|
129
132
|
console.log([
|
|
130
133
|
'Usage:',
|
|
131
|
-
' sks
|
|
132
|
-
' sks
|
|
133
|
-
' sks
|
|
134
|
-
' sks
|
|
135
|
-
' sks
|
|
136
|
-
' sks
|
|
137
|
-
' sks
|
|
138
|
-
' sks insane-search migrate-xai [--apply]',
|
|
139
|
-
'',
|
|
140
|
-
'Compatibility:',
|
|
141
|
-
' sks ultra-search ...'
|
|
134
|
+
' sks super-search doctor [--json]',
|
|
135
|
+
' sks super-search run "<query>" [--mode fast|balanced|deep|exhaustive] [--json]',
|
|
136
|
+
' sks super-search x "<query>" [--json]',
|
|
137
|
+
' sks super-search fetch "<url>" [--json]',
|
|
138
|
+
' sks super-search status|inspect|sources|claims <mission|latest> [--json]',
|
|
139
|
+
' sks super-search cache status|prune|clear [--json]',
|
|
140
|
+
' sks super-search bench [--suite all|x|web|docs|blocked] [--json]'
|
|
142
141
|
].join('\n'));
|
|
143
142
|
return { ok: true, status: 'help' };
|
|
144
143
|
}
|
|
@@ -163,7 +162,7 @@ function positional(args) {
|
|
|
163
162
|
return out;
|
|
164
163
|
}
|
|
165
164
|
async function mkMissionDir() {
|
|
166
|
-
const dir = path.join(process.cwd(), '.sneakoscope', 'missions', `
|
|
165
|
+
const dir = path.join(process.cwd(), '.sneakoscope', 'missions', `super-search-${Date.now().toString(36)}-${randomUUID().slice(0, 8)}`);
|
|
167
166
|
await fs.mkdir(dir, { recursive: true });
|
|
168
167
|
return dir;
|
|
169
168
|
}
|
|
@@ -171,25 +170,67 @@ async function latestMissionDir() {
|
|
|
171
170
|
const root = path.join(process.cwd(), '.sneakoscope', 'missions');
|
|
172
171
|
const entries = await fs.readdir(root, { withFileTypes: true }).catch(() => []);
|
|
173
172
|
const dirs = entries.filter((entry) => entry.isDirectory()).map((entry) => path.join(root, entry.name)).sort();
|
|
174
|
-
|
|
173
|
+
let latest = null;
|
|
174
|
+
for (const dir of dirs.reverse()) {
|
|
175
|
+
if (await hasSuperSearchArtifactDir(dir)) {
|
|
176
|
+
latest = dir;
|
|
177
|
+
break;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
175
180
|
if (!latest)
|
|
176
|
-
return path.join(os.tmpdir(), 'sks-
|
|
181
|
+
return path.join(os.tmpdir(), 'sks-super-search-missing');
|
|
177
182
|
return latest;
|
|
178
183
|
}
|
|
179
|
-
function
|
|
180
|
-
|
|
184
|
+
async function hasSuperSearchArtifactDir(dir) {
|
|
185
|
+
try {
|
|
186
|
+
const stat = await fs.stat(path.join(dir, 'super-search'));
|
|
187
|
+
return stat.isDirectory();
|
|
188
|
+
}
|
|
189
|
+
catch {
|
|
190
|
+
return false;
|
|
191
|
+
}
|
|
181
192
|
}
|
|
182
|
-
async function
|
|
193
|
+
async function evaluateSuperSearchGate(missionDir) {
|
|
183
194
|
return evaluateLocalGate({
|
|
184
195
|
root: process.cwd(),
|
|
185
196
|
dir: missionDir,
|
|
186
|
-
gateFile: path.join('
|
|
197
|
+
gateFile: path.join('super-search', 'super-search-gate.json'),
|
|
187
198
|
requiredArtifacts: [
|
|
188
|
-
path.join('
|
|
189
|
-
path.join('
|
|
190
|
-
path.join('
|
|
191
|
-
path.join('
|
|
199
|
+
path.join('super-search', 'source-ledger.json'),
|
|
200
|
+
path.join('super-search', 'claim-ledger.json'),
|
|
201
|
+
path.join('super-search', 'super-search-proof.json'),
|
|
202
|
+
path.join('super-search', 'super-search-result.json')
|
|
192
203
|
]
|
|
193
204
|
});
|
|
194
205
|
}
|
|
195
|
-
|
|
206
|
+
async function evaluateSuperSearchArtifacts(missionDir) {
|
|
207
|
+
const artifactDir = path.join(missionDir, 'super-search');
|
|
208
|
+
const [result, sourceLedger, claimLedger, proof] = await Promise.all([
|
|
209
|
+
readJsonFile(path.join(artifactDir, 'super-search-result.json')),
|
|
210
|
+
readJsonFile(path.join(artifactDir, 'source-ledger.json')),
|
|
211
|
+
readJsonFile(path.join(artifactDir, 'claim-ledger.json')),
|
|
212
|
+
readJsonFile(path.join(artifactDir, 'super-search-proof.json'))
|
|
213
|
+
]);
|
|
214
|
+
const sources = Array.isArray(result?.sources) ? result.sources : Array.isArray(sourceLedger?.sources) ? sourceLedger.sources : [];
|
|
215
|
+
const claims = Array.isArray(result?.claims) ? result.claims : Array.isArray(claimLedger?.claims) ? claimLedger.claims : [];
|
|
216
|
+
const proofData = result?.proof || proof || {};
|
|
217
|
+
return evaluateRealEvidencePolicy({
|
|
218
|
+
productionMode: true,
|
|
219
|
+
mode: result?.mode || proofData?.mode,
|
|
220
|
+
sources,
|
|
221
|
+
claims,
|
|
222
|
+
proof: proofData
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
async function readJsonFile(file) {
|
|
226
|
+
const text = await fs.readFile(file, 'utf8').catch(() => null);
|
|
227
|
+
if (!text)
|
|
228
|
+
return null;
|
|
229
|
+
try {
|
|
230
|
+
return JSON.parse(text);
|
|
231
|
+
}
|
|
232
|
+
catch {
|
|
233
|
+
return null;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
//# sourceMappingURL=super-search-command.js.map
|
package/dist/cli/xai-command.js
CHANGED
|
@@ -9,19 +9,19 @@ export async function xaiCommand(sub = 'check', args = []) {
|
|
|
9
9
|
setup_performed: false,
|
|
10
10
|
xai_required: false,
|
|
11
11
|
replacement: {
|
|
12
|
-
doctor: 'sks
|
|
13
|
-
x_search: 'sks
|
|
14
|
-
|
|
12
|
+
doctor: 'sks super-search doctor',
|
|
13
|
+
x_search: 'sks super-search x "<query>"',
|
|
14
|
+
fetch: 'sks super-search fetch "<url>"'
|
|
15
15
|
},
|
|
16
|
-
blockers: action === 'setup' ? ['
|
|
16
|
+
blockers: action === 'setup' ? ['xai_setup_removed_use_super_search'] : [],
|
|
17
17
|
warnings: ['sks_xai_is_deprecated_and_does_not_configure_mcp_or_require_XAI_API_KEY']
|
|
18
18
|
};
|
|
19
19
|
if (json)
|
|
20
20
|
console.log(JSON.stringify(result, null, 2));
|
|
21
21
|
else {
|
|
22
|
-
console.log('`sks xai` is deprecated.
|
|
23
|
-
console.log('Use: sks
|
|
24
|
-
console.log('Use: sks
|
|
22
|
+
console.log('`sks xai` is deprecated. Super-Search no longer requires xAI/Grok or XAI_API_KEY.');
|
|
23
|
+
console.log('Use: sks super-search doctor');
|
|
24
|
+
console.log('Use: sks super-search x "<query>"');
|
|
25
25
|
if (action === 'setup') {
|
|
26
26
|
console.log('No MCP setup was performed.');
|
|
27
27
|
process.exitCode = 1;
|