sneakoscope 2.0.4 → 2.0.6
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 +18 -11
- 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/.sks-build-stamp.json +4 -4
- package/dist/bin/sks.js +1 -1
- package/dist/build-manifest.json +78 -8
- package/dist/cli/install-helpers.js +23 -0
- package/dist/commands/codex-app.js +25 -3
- package/dist/commands/doctor.js +33 -4
- package/dist/commands/mad-sks.js +2 -2
- package/dist/core/agents/agent-orchestrator.js +22 -3
- package/dist/core/agents/agent-proof-evidence.js +59 -2
- package/dist/core/agents/agent-roster.js +35 -6
- package/dist/core/agents/agent-schema.js +1 -1
- package/dist/core/agents/agent-worker-pipeline.js +9 -1
- package/dist/core/agents/native-worker-backend-router.js +50 -10
- package/dist/core/agents/ollama-worker-config.js +164 -15
- package/dist/core/codex/codex-0-137-compat.js +119 -0
- package/dist/core/codex-app.js +124 -2
- package/dist/core/codex-control/codex-control-proof.js +4 -1
- package/dist/core/codex-control/codex-sdk-capability.js +1 -1
- package/dist/core/codex-control/codex-task-runner.js +329 -5
- package/dist/core/codex-control/python-codex-sdk-adapter.js +197 -0
- package/dist/core/codex-control/python-codex-sdk-event-translator.js +14 -0
- package/dist/core/commands/local-model-command.js +65 -19
- package/dist/core/commands/naruto-command.js +124 -8
- package/dist/core/commands/run-command.js +1 -1
- package/dist/core/doctor/doctor-readiness-matrix.js +21 -2
- package/dist/core/fsx.js +1 -1
- package/dist/core/hooks-runtime.js +2 -233
- package/dist/core/init.js +8 -8
- package/dist/core/local-llm/local-llm-backpressure.js +20 -0
- package/dist/core/local-llm/local-llm-capability.js +29 -0
- package/dist/core/local-llm/local-llm-client.js +100 -0
- package/dist/core/local-llm/local-llm-config.js +6 -1
- package/dist/core/local-llm/local-llm-context-cache.js +21 -0
- package/dist/core/local-llm/local-llm-control-adapter.js +101 -0
- package/dist/core/local-llm/local-llm-json-repair.js +52 -0
- package/dist/core/local-llm/local-llm-metrics.js +42 -0
- package/dist/core/local-llm/local-llm-ollama-client.js +67 -0
- package/dist/core/local-llm/local-llm-openai-compatible-client.js +30 -0
- package/dist/core/local-llm/local-llm-prompt-cache.js +12 -0
- package/dist/core/local-llm/local-llm-scheduler.js +29 -0
- package/dist/core/local-llm/local-llm-schema-enforcer.js +15 -0
- package/dist/core/local-llm/local-llm-smoke.js +83 -0
- package/dist/core/local-llm/local-llm-warmup.js +20 -0
- package/dist/core/local-llm/local-worker-eligibility.js +27 -0
- package/dist/core/naruto/hardware-capacity-probe.js +36 -0
- package/dist/core/naruto/naruto-active-pool.js +134 -0
- package/dist/core/naruto/naruto-backpressure.js +13 -0
- package/dist/core/naruto/naruto-concurrency-governor.js +65 -0
- package/dist/core/naruto/naruto-finalizer.js +18 -0
- package/dist/core/naruto/naruto-generation-scheduler.js +18 -0
- package/dist/core/naruto/naruto-gpt-final-pack.js +49 -0
- package/dist/core/naruto/naruto-parallel-patch-apply.js +95 -0
- package/dist/core/naruto/naruto-patch-transaction-batch.js +42 -0
- package/dist/core/naruto/naruto-role-policy.js +107 -0
- package/dist/core/naruto/naruto-verification-dag.js +42 -0
- package/dist/core/naruto/naruto-verification-pool.js +18 -0
- package/dist/core/naruto/naruto-work-graph.js +198 -0
- package/dist/core/naruto/naruto-work-item.js +40 -0
- package/dist/core/naruto/naruto-work-stealing.js +11 -0
- package/dist/core/naruto/resource-pressure-monitor.js +32 -0
- package/dist/core/pipeline/finalize-pipeline-result.js +58 -0
- package/dist/core/pipeline/gpt-final-required.js +12 -0
- package/dist/core/pipeline-internals/runtime-core.js +1 -1
- package/dist/core/ppt.js +31 -8
- package/dist/core/product-design-app-server.js +410 -0
- package/dist/core/product-design-plugin.js +139 -0
- package/dist/core/prompt/prompt-placeholder-guard.js +30 -0
- package/dist/core/router/capability-card.js +13 -0
- package/dist/core/router/route-cache.js +3 -0
- package/dist/core/router/ultra-router.js +2 -1
- package/dist/core/routes.js +12 -12
- package/dist/core/version.js +1 -1
- package/dist/core/zellij/zellij-lane-runtime.js +2 -2
- package/dist/core/zellij/zellij-naruto-dashboard.js +36 -0
- package/dist/core/zellij/zellij-worker-pane-manager.js +4 -4
- package/dist/scripts/blackbox-command-import-smoke.js +10 -1
- package/dist/scripts/check-package-boundary.js +12 -3
- package/dist/scripts/codex-0-137-compat-check.js +27 -0
- package/dist/scripts/codex-environment-scoped-approvals-check.js +10 -0
- package/dist/scripts/codex-plugin-list-json-check.js +8 -0
- package/dist/scripts/codex-thread-runtime-choice-check.js +10 -0
- package/dist/scripts/local-collab-all-pipelines-final-gpt-check.js +21 -0
- package/dist/scripts/local-llm-all-pipelines-check.js +11 -0
- package/dist/scripts/local-llm-cache-performance-check.js +10 -0
- package/dist/scripts/local-llm-capability-check.js +14 -0
- package/dist/scripts/local-llm-smoke-check.js +23 -0
- package/dist/scripts/local-llm-structured-output-check.js +11 -0
- package/dist/scripts/local-llm-throughput-check.js +10 -0
- package/dist/scripts/local-llm-tool-call-repair-check.js +10 -0
- package/dist/scripts/local-llm-warmup-check.js +11 -0
- package/dist/scripts/naruto-active-pool-check.js +39 -0
- package/dist/scripts/naruto-concurrency-governor-check.js +52 -0
- package/dist/scripts/naruto-gpt-final-pack-check.js +34 -0
- package/dist/scripts/naruto-parallel-patch-apply-check.js +41 -0
- package/dist/scripts/naruto-readonly-routing-check.js +116 -0
- package/dist/scripts/naruto-real-local-gpt-final-smoke.js +16 -0
- package/dist/scripts/naruto-role-distribution-check.js +23 -0
- package/dist/scripts/naruto-shadow-clone-swarm-check.js +13 -0
- package/dist/scripts/naruto-verification-pool-check.js +36 -0
- package/dist/scripts/naruto-work-graph-check.js +24 -0
- package/dist/scripts/naruto-zellij-massive-ui-check.js +23 -0
- package/dist/scripts/product-design-auto-install-check.js +119 -0
- package/dist/scripts/product-design-plugin-routing-check.js +101 -0
- package/dist/scripts/prompt-placeholder-guard-check.js +33 -0
- package/dist/scripts/python-codex-sdk-all-pipelines-check.js +47 -0
- package/dist/scripts/python-codex-sdk-capability-check.js +75 -0
- package/dist/scripts/python-codex-sdk-sandbox-policy-check.js +10 -0
- package/dist/scripts/python-codex-sdk-stream-bridge-check.js +12 -0
- package/dist/scripts/release-parallel-check.js +16 -2
- package/dist/scripts/release-provenance-check.js +21 -0
- package/dist/scripts/release-real-check.js +5 -0
- package/dist/scripts/zellij-worker-pane-manager-check.js +1 -1
- package/package.json +36 -4
- package/schemas/local-llm/local-model-config.schema.json +74 -0
- package/schemas/naruto/naruto-concurrency-governor.schema.json +21 -0
- package/schemas/naruto/naruto-work-graph.schema.json +22 -0
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// @ts-nocheck
|
|
3
|
+
import { PRODUCT_DESIGN_PIPELINE_STAGES, PRODUCT_DESIGN_PLUGIN, PRODUCT_DESIGN_REQUIRED_SKILLS, normalizeProductDesignPluginEvidence, productDesignPluginVisibilityFromCodexPluginList } from '../core/product-design-plugin.js';
|
|
4
|
+
import { assertGate, emitGate, readText } from './lib/codex-sdk-gate-lib.js';
|
|
5
|
+
const routesSource = readText('src/core/routes.ts');
|
|
6
|
+
const productDesignSource = readText('src/core/product-design-plugin.ts');
|
|
7
|
+
const runtimeSource = readText('src/core/pipeline-internals/runtime-core.ts');
|
|
8
|
+
const pptSource = readText('src/core/ppt.ts');
|
|
9
|
+
const codexAppSource = readText('src/core/codex-app.ts');
|
|
10
|
+
const initSource = readText('src/core/init.ts');
|
|
11
|
+
const pkg = JSON.parse(readText('package.json'));
|
|
12
|
+
const releaseCheck = String(pkg.scripts?.['release:check'] || '');
|
|
13
|
+
assertGate(PRODUCT_DESIGN_PLUGIN.id === 'product-design@openai-curated-remote', 'Product Design plugin id must use the remote marketplace');
|
|
14
|
+
assertGate(PRODUCT_DESIGN_PLUGIN.marketplace === 'openai-curated-remote', 'Product Design marketplace must be openai-curated-remote');
|
|
15
|
+
assertGate(PRODUCT_DESIGN_PLUGIN.marketplace_kind === 'vertical', 'Product Design marketplace kind must be vertical');
|
|
16
|
+
assertGate(PRODUCT_DESIGN_PLUGIN.remote_plugin_id === 'Plugin_fa77aec24fc08191bc6e57f377126d76', 'Product Design remote plugin id mismatch');
|
|
17
|
+
assertGate(PRODUCT_DESIGN_PLUGIN.app_server.read_params.remoteMarketplaceName === 'openai-curated-remote', 'plugin/read remote marketplace missing');
|
|
18
|
+
assertGate(PRODUCT_DESIGN_PLUGIN.app_server.install_params.remoteMarketplaceName === 'openai-curated-remote', 'plugin/install remote marketplace missing');
|
|
19
|
+
assertGate(PRODUCT_DESIGN_PLUGIN.app_server.read_params.pluginName === PRODUCT_DESIGN_PLUGIN.remote_plugin_id, 'plugin/read must use Product Design remote plugin id');
|
|
20
|
+
assertGate(PRODUCT_DESIGN_PLUGIN.app_server.install_params.pluginName === PRODUCT_DESIGN_PLUGIN.remote_plugin_id, 'plugin/install must use Product Design remote plugin id');
|
|
21
|
+
assertGate(PRODUCT_DESIGN_PLUGIN.app_server.list_params.marketplaceKinds.includes('vertical'), 'plugin/list must query vertical marketplaces');
|
|
22
|
+
for (const skill of ['audit', 'design-qa', 'get-context', 'ideate', 'image-to-code', 'prototype', 'research', 'share', 'url-to-code', 'user-context']) {
|
|
23
|
+
assertGate(PRODUCT_DESIGN_REQUIRED_SKILLS.includes(skill), `Product Design required skill missing: ${skill}`);
|
|
24
|
+
}
|
|
25
|
+
assertGate(PRODUCT_DESIGN_PIPELINE_STAGES.length >= 5, 'Product Design pipeline stage map too small');
|
|
26
|
+
const fakeReadResponse = {
|
|
27
|
+
plugin: {
|
|
28
|
+
marketplaceName: PRODUCT_DESIGN_PLUGIN.marketplace,
|
|
29
|
+
summary: {
|
|
30
|
+
id: PRODUCT_DESIGN_PLUGIN.id,
|
|
31
|
+
remotePluginId: PRODUCT_DESIGN_PLUGIN.remote_plugin_id,
|
|
32
|
+
name: PRODUCT_DESIGN_PLUGIN.name,
|
|
33
|
+
installed: true,
|
|
34
|
+
enabled: true
|
|
35
|
+
},
|
|
36
|
+
skills: PRODUCT_DESIGN_REQUIRED_SKILLS.map((name) => ({ name, enabled: true }))
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
const evidence = normalizeProductDesignPluginEvidence(fakeReadResponse);
|
|
40
|
+
assertGate(evidence.ok, 'app-server plugin/read evidence parser must accept ready Product Design response', evidence);
|
|
41
|
+
const hiddenFromLocalList = productDesignPluginVisibilityFromCodexPluginList({ installed: [{ id: 'browser@openai-bundled' }] });
|
|
42
|
+
assertGate(hiddenFromLocalList.requires_remote_vertical_lookup, 'missing local plugin-list entry must require remote vertical lookup');
|
|
43
|
+
for (const token of [
|
|
44
|
+
'productDesignPluginPolicyText',
|
|
45
|
+
'Product Design plugin tools are allowed and preferred',
|
|
46
|
+
'project-local cache/compatibility authority',
|
|
47
|
+
'PRODUCT_DESIGN_PLUGIN_TOOL_ALLOWLIST'
|
|
48
|
+
]) {
|
|
49
|
+
assertGate(routesSource.includes(token), `routes.ts missing Product Design routing token: ${token}`);
|
|
50
|
+
}
|
|
51
|
+
const recommendedSkillsBlock = routesSource.match(/export const RECOMMENDED_SKILLS = \[([\s\S]*?)\];/)?.[1] || '';
|
|
52
|
+
for (const legacySkill of ['design-artifact-expert', 'design-system-builder', 'design-ui-editor']) {
|
|
53
|
+
assertGate(!recommendedSkillsBlock.includes(legacySkill), `legacy design skill should not stay in RECOMMENDED_SKILLS: ${legacySkill}`);
|
|
54
|
+
}
|
|
55
|
+
for (const token of [
|
|
56
|
+
'Product Design plugin policy',
|
|
57
|
+
'openai-curated-remote',
|
|
58
|
+
'plugin/read',
|
|
59
|
+
'plugin/install',
|
|
60
|
+
'auto-install/ensure',
|
|
61
|
+
'vertical',
|
|
62
|
+
'compatibility fallback only',
|
|
63
|
+
'PRODUCT_DESIGN_LEGACY_DESIGN_FALLBACK_SKILLS'
|
|
64
|
+
]) {
|
|
65
|
+
assertGate(productDesignSource.includes(token), `product-design-plugin.ts missing policy token: ${token}`);
|
|
66
|
+
}
|
|
67
|
+
for (const token of [
|
|
68
|
+
'Product Design plugin first',
|
|
69
|
+
'design-system-builder',
|
|
70
|
+
'design-ui-editor',
|
|
71
|
+
'design-artifact-expert'
|
|
72
|
+
]) {
|
|
73
|
+
assertGate(runtimeSource.includes(token) || initSource.includes(token), `runtime/init missing fallback token: ${token}`);
|
|
74
|
+
}
|
|
75
|
+
for (const token of [
|
|
76
|
+
'product_design_plugin',
|
|
77
|
+
'primary_design_plugin',
|
|
78
|
+
'legacy_design_skills_fallback_only',
|
|
79
|
+
'remote_plugin_id'
|
|
80
|
+
]) {
|
|
81
|
+
assertGate(pptSource.includes(token), `ppt.ts missing Product Design evidence token: ${token}`);
|
|
82
|
+
}
|
|
83
|
+
for (const token of [
|
|
84
|
+
'codexProductDesignPluginStatus',
|
|
85
|
+
'design_product',
|
|
86
|
+
'ensureProductDesignPluginInstalled',
|
|
87
|
+
'product_design_remote_vertical_lookup_required',
|
|
88
|
+
'remote vertical marketplace plugin'
|
|
89
|
+
]) {
|
|
90
|
+
assertGate(codexAppSource.includes(token), `codex-app.ts missing Product Design readiness token: ${token}`);
|
|
91
|
+
}
|
|
92
|
+
assertGate(Boolean(pkg.scripts?.['codex:product-design-plugin-routing']), 'package script missing codex:product-design-plugin-routing');
|
|
93
|
+
assertGate(releaseCheck.includes('codex:product-design-plugin-routing'), 'release:check must include Product Design routing gate');
|
|
94
|
+
emitGate('codex:product-design-plugin-routing', {
|
|
95
|
+
plugin_id: PRODUCT_DESIGN_PLUGIN.id,
|
|
96
|
+
remote_plugin_id: PRODUCT_DESIGN_PLUGIN.remote_plugin_id,
|
|
97
|
+
required_skills: PRODUCT_DESIGN_REQUIRED_SKILLS.length,
|
|
98
|
+
stages: PRODUCT_DESIGN_PIPELINE_STAGES.length,
|
|
99
|
+
local_list_hidden_requires_remote_lookup: hiddenFromLocalList.requires_remote_vertical_lookup
|
|
100
|
+
});
|
|
101
|
+
//# sourceMappingURL=product-design-plugin-routing-check.js.map
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// @ts-nocheck
|
|
3
|
+
import { assertGate, emitGate, importDist } from './sks-1-18-gate-lib.js';
|
|
4
|
+
const guardMod = await importDist('core/prompt/prompt-placeholder-guard.js');
|
|
5
|
+
const blocked = guardMod.checkPromptPlaceholders({
|
|
6
|
+
prompt: 'Use @filename and INSERT_PATH_HERE to patch the bug',
|
|
7
|
+
writeCapable: true,
|
|
8
|
+
targetPaths: ['src/core/example.ts']
|
|
9
|
+
});
|
|
10
|
+
const emptyTarget = guardMod.checkPromptPlaceholders({
|
|
11
|
+
prompt: 'Patch the bug',
|
|
12
|
+
writeCapable: true,
|
|
13
|
+
targetPaths: []
|
|
14
|
+
});
|
|
15
|
+
const pass = guardMod.checkPromptPlaceholders({
|
|
16
|
+
prompt: 'Patch src/core/example.ts',
|
|
17
|
+
writeCapable: true,
|
|
18
|
+
targetPaths: ['src/core/example.ts']
|
|
19
|
+
});
|
|
20
|
+
const readonlyWarn = guardMod.checkPromptPlaceholders({
|
|
21
|
+
prompt: 'Inspect @filename',
|
|
22
|
+
writeCapable: false
|
|
23
|
+
});
|
|
24
|
+
assertGate(blocked.ok === false && blocked.blockers.some((item) => String(item).startsWith('unresolved_prompt_placeholder')), 'write-capable Naruto prompt with @filename must block', blocked);
|
|
25
|
+
assertGate(emptyTarget.ok === false && emptyTarget.blockers.includes('write_capable_prompt_target_paths_empty'), 'write-capable Naruto route with empty target paths must block', emptyTarget);
|
|
26
|
+
assertGate(pass.ok === true, 'resolved write-capable prompt must pass placeholder guard', pass);
|
|
27
|
+
assertGate(readonlyWarn.ok === true && readonlyWarn.warnings.length > 0, 'read-only route may warn on placeholders instead of blocking', readonlyWarn);
|
|
28
|
+
emitGate('prompt:placeholder-guard', {
|
|
29
|
+
blocked_placeholders: blocked.placeholders,
|
|
30
|
+
empty_target_blockers: emptyTarget.blockers,
|
|
31
|
+
readonly_warnings: readonlyWarn.warnings
|
|
32
|
+
});
|
|
33
|
+
//# sourceMappingURL=prompt-placeholder-guard-check.js.map
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// @ts-nocheck
|
|
3
|
+
import fs from 'node:fs/promises';
|
|
4
|
+
import os from 'node:os';
|
|
5
|
+
import path from 'node:path';
|
|
6
|
+
import { assertGate, emitGate, readText } from './lib/codex-sdk-gate-lib.js';
|
|
7
|
+
import { importDist, root } from './lib/codex-sdk-gate-lib.js';
|
|
8
|
+
const plane = readText('src/core/codex-control/codex-control-plane.ts');
|
|
9
|
+
const adapter = readText('src/core/codex-control/python-codex-sdk-adapter.ts');
|
|
10
|
+
assertGate(plane.includes("'python-codex-sdk'"), 'Codex Control backend union must include python-codex-sdk');
|
|
11
|
+
assertGate(adapter.includes('runPythonCodexSdkTask'), 'Python SDK adapter must expose a task runner');
|
|
12
|
+
const mod = await importDist('core/codex-control/codex-control-plane.js');
|
|
13
|
+
const schema = await importDist('core/codex-control/schemas/agent-worker-result.schema.js');
|
|
14
|
+
const tmp = await fs.mkdtemp(path.join(os.tmpdir(), 'sks-python-codex-sdk-pipeline-'));
|
|
15
|
+
const oldFake = process.env.SKS_PYTHON_CODEX_SDK_FAKE;
|
|
16
|
+
process.env.SKS_PYTHON_CODEX_SDK_FAKE = '1';
|
|
17
|
+
try {
|
|
18
|
+
const result = await mod.runCodexTask({
|
|
19
|
+
route: '$Agent',
|
|
20
|
+
missionId: 'M-python-sdk-all-pipelines',
|
|
21
|
+
workItemId: 'python-sdk-fixture',
|
|
22
|
+
slotId: 'slot-python-fixture',
|
|
23
|
+
generationIndex: 1,
|
|
24
|
+
sessionId: 'python-sdk-fixture-session',
|
|
25
|
+
cwd: root,
|
|
26
|
+
prompt: 'Hermetic Python Codex SDK backend fixture.',
|
|
27
|
+
inputFiles: [],
|
|
28
|
+
inputImages: [],
|
|
29
|
+
outputSchemaId: schema.CODEX_AGENT_WORKER_RESULT_SCHEMA_ID,
|
|
30
|
+
outputSchema: schema.codexAgentWorkerResultSchema,
|
|
31
|
+
sandboxPolicy: 'read-only',
|
|
32
|
+
requestedScopeContract: { id: 'python-sdk-fixture', read_only: true, allowed_paths: [], write_paths: [] },
|
|
33
|
+
backendPreference: ['python-codex-sdk'],
|
|
34
|
+
mutationLedgerRoot: tmp
|
|
35
|
+
});
|
|
36
|
+
assertGate(result.ok === true, 'Python SDK backend fixture must pass', result);
|
|
37
|
+
assertGate(result.backend === 'python-codex-sdk', 'Python SDK backend fixture must select python-codex-sdk', result);
|
|
38
|
+
assertGate(result.pythonSdkProofPath && result.streamEventCount > 0, 'Python SDK backend fixture must write proof and events', result);
|
|
39
|
+
emitGate('python-sdk:all-pipelines', { backend: result.backend, backend_family: result.backend_family, stream_event_count: result.streamEventCount });
|
|
40
|
+
}
|
|
41
|
+
finally {
|
|
42
|
+
if (oldFake === undefined)
|
|
43
|
+
delete process.env.SKS_PYTHON_CODEX_SDK_FAKE;
|
|
44
|
+
else
|
|
45
|
+
process.env.SKS_PYTHON_CODEX_SDK_FAKE = oldFake;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=python-codex-sdk-all-pipelines-check.js.map
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// @ts-nocheck
|
|
3
|
+
import { assertGate, emitGate, importDist } from './lib/codex-sdk-gate-lib.js';
|
|
4
|
+
const mod = await importDist('core/codex-control/python-codex-sdk-adapter.js');
|
|
5
|
+
const cap = await mod.detectPythonCodexSdkCapability();
|
|
6
|
+
assertGate(['codex-app-server', 'openai-codex', 'openai-codex-sdk'].includes(cap.package_name), 'Python Codex SDK package name mismatch');
|
|
7
|
+
assertGate(cap.ok === true || cap.blockers.includes('python_codex_sdk_unavailable') || cap.blockers.includes('python_missing') || cap.blockers.includes('python_version_below_3_10'), 'Python SDK unavailable must be a capability blocker');
|
|
8
|
+
const requireReal = process.env.SKS_REQUIRE_PYTHON_CODEX_SDK === '1' || process.argv.includes('--require-real');
|
|
9
|
+
if (requireReal && !cap.ok) {
|
|
10
|
+
console.log(JSON.stringify({
|
|
11
|
+
schema: 'sks.release-gate.v1',
|
|
12
|
+
ok: false,
|
|
13
|
+
gate: 'python-sdk:real-smoke',
|
|
14
|
+
capability_ok: cap.ok,
|
|
15
|
+
capability_blockers: cap.blockers,
|
|
16
|
+
setup_action: cap.setup_action,
|
|
17
|
+
python_bin: cap.python_bin,
|
|
18
|
+
python_version: cap.python_version,
|
|
19
|
+
blockers: cap.blockers
|
|
20
|
+
}, null, 2));
|
|
21
|
+
process.exit(1);
|
|
22
|
+
}
|
|
23
|
+
if (requireReal) {
|
|
24
|
+
const plane = await importDist('core/codex-control/codex-control-plane.js');
|
|
25
|
+
const smokeSchema = {
|
|
26
|
+
type: 'object',
|
|
27
|
+
required: ['status', 'summary', 'blockers'],
|
|
28
|
+
properties: {
|
|
29
|
+
status: { type: 'string', enum: ['done'] },
|
|
30
|
+
summary: { type: 'string' },
|
|
31
|
+
blockers: { type: 'array', items: { type: 'string' } }
|
|
32
|
+
},
|
|
33
|
+
additionalProperties: false
|
|
34
|
+
};
|
|
35
|
+
const result = await plane.runCodexTask({
|
|
36
|
+
route: '$Agent',
|
|
37
|
+
missionId: 'M-python-codex-sdk-real-smoke',
|
|
38
|
+
workItemId: 'python-real-smoke',
|
|
39
|
+
slotId: 'slot-python-real',
|
|
40
|
+
generationIndex: 1,
|
|
41
|
+
sessionId: 'python-real-smoke-session',
|
|
42
|
+
cwd: process.cwd(),
|
|
43
|
+
prompt: 'Read-only Python Codex SDK smoke. Do not edit files. Return exactly JSON: {"status":"done","summary":"python-codex-sdk real smoke passed","blockers":[]}',
|
|
44
|
+
inputFiles: [],
|
|
45
|
+
inputImages: [],
|
|
46
|
+
outputSchemaId: 'sks.python-codex-sdk-real-smoke-result.v1',
|
|
47
|
+
outputSchema: smokeSchema,
|
|
48
|
+
sandboxPolicy: 'read-only',
|
|
49
|
+
requestedScopeContract: { id: 'python-real-smoke', read_only: true, allowed_paths: [], write_paths: [] },
|
|
50
|
+
backendPreference: ['python-codex-sdk'],
|
|
51
|
+
mutationLedgerRoot: '.sneakoscope/reports/python-codex-sdk-real-smoke'
|
|
52
|
+
});
|
|
53
|
+
assertGate(result.ok === true, 'real Python Codex SDK smoke failed', result);
|
|
54
|
+
emitGate('python-sdk:real-smoke', {
|
|
55
|
+
status: 'proven',
|
|
56
|
+
capability_ok: cap.ok,
|
|
57
|
+
package_name: cap.package_name,
|
|
58
|
+
import_name: cap.import_name,
|
|
59
|
+
python_bin: cap.python_bin,
|
|
60
|
+
sdk_thread_id: result.sdkThreadId,
|
|
61
|
+
stream_event_count: result.streamEventCount,
|
|
62
|
+
backend: result.backend,
|
|
63
|
+
backend_family: result.backend_family
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
emitGate('python-sdk:capability', {
|
|
68
|
+
capability_ok: cap.ok,
|
|
69
|
+
capability_blockers: cap.blockers,
|
|
70
|
+
package_name: cap.package_name,
|
|
71
|
+
import_name: cap.import_name,
|
|
72
|
+
setup_action: cap.setup_action
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=python-codex-sdk-capability-check.js.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// @ts-nocheck
|
|
3
|
+
import { assertGate, emitGate, readText } from './lib/codex-sdk-gate-lib.js';
|
|
4
|
+
const adapter = readText('src/core/codex-control/python-codex-sdk-adapter.ts');
|
|
5
|
+
const runner = readText('pytools/codex_sdk_runner.py');
|
|
6
|
+
assertGate(adapter.includes("workspace_write"), 'TS -> Python sandbox mapping must include workspace_write');
|
|
7
|
+
assertGate(adapter.includes("full_access"), 'TS -> Python sandbox mapping must include full_access');
|
|
8
|
+
assertGate(runner.includes('Sandbox.workspace_write'), 'Python runner must use SDK Sandbox presets');
|
|
9
|
+
emitGate('python-sdk:sandbox-policy', { sandboxes: ['read_only', 'workspace_write', 'full_access'] });
|
|
10
|
+
//# sourceMappingURL=python-codex-sdk-sandbox-policy-check.js.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// @ts-nocheck
|
|
3
|
+
import { assertGate, emitGate, importDist } from './lib/codex-sdk-gate-lib.js';
|
|
4
|
+
const mod = await importDist('core/codex-control/python-codex-sdk-event-translator.js');
|
|
5
|
+
const events = mod.translatePythonCodexSdkEvents([
|
|
6
|
+
{ event: 'thread_started', thread_id: 't' },
|
|
7
|
+
{ event: 'turn_completed', turn_id: 'u', status: 'completed', final_response: '{}' }
|
|
8
|
+
]);
|
|
9
|
+
assertGate(events.length === 2, 'Python SDK event translator must preserve stream events');
|
|
10
|
+
assertGate(events[1].event_type === 'turn_completed', 'Python SDK turn completion event missing');
|
|
11
|
+
emitGate('python-sdk:stream-bridge', { event_count: events.length });
|
|
12
|
+
//# sourceMappingURL=python-codex-sdk-stream-bridge-check.js.map
|
|
@@ -23,7 +23,7 @@ const deterministicReleaseEnv = {
|
|
|
23
23
|
SKS_REQUIRE_REAL_COMPUTER_USE: '0'
|
|
24
24
|
};
|
|
25
25
|
const tasks = [
|
|
26
|
-
task('build', 'npm run
|
|
26
|
+
task('build', 'npm run release:dist-freshness --silent', { outputs: ['dist'] }),
|
|
27
27
|
task('runtime:no-src-mjs', 'npm run runtime:no-src-mjs --silent', { dependencies: ['build'] }),
|
|
28
28
|
task('runtime:ts-source-of-truth', 'npm run runtime:ts-source-of-truth --silent', { dependencies: ['build'] }),
|
|
29
29
|
task('architecture:guard', 'npm run architecture:guard --silent', { dependencies: ['build', 'runtime:ts-source-of-truth'] }),
|
|
@@ -304,8 +304,22 @@ if (result.ok) {
|
|
|
304
304
|
};
|
|
305
305
|
await writeParallelVerificationProof(reportDir, result);
|
|
306
306
|
}
|
|
307
|
-
console.log(JSON.stringify(result, null, 2));
|
|
307
|
+
console.log(JSON.stringify(releaseParallelStdoutSummary(result), null, 2));
|
|
308
308
|
process.exit(result.ok ? 0 : 1);
|
|
309
|
+
function releaseParallelStdoutSummary(result) {
|
|
310
|
+
return {
|
|
311
|
+
schema: 'sks.release-parallel-check.stdout-summary.v1',
|
|
312
|
+
ok: result.ok,
|
|
313
|
+
tasks: result.task_count,
|
|
314
|
+
passed: result.passed,
|
|
315
|
+
failed: result.failed,
|
|
316
|
+
skipped: result.skipped,
|
|
317
|
+
dependency_count: result.dependency_count,
|
|
318
|
+
report_json: '.sneakoscope/reports/release-parallel-report.json',
|
|
319
|
+
report_md: '.sneakoscope/reports/release-parallel-report.md',
|
|
320
|
+
retention_cleanup: result.retention_cleanup ?? null
|
|
321
|
+
};
|
|
322
|
+
}
|
|
309
323
|
function summarizeReleaseLogsForCleanup(result, logDir) {
|
|
310
324
|
const prefix = `${path.resolve(logDir)}${path.sep}`;
|
|
311
325
|
for (const row of result.results) {
|
|
@@ -17,6 +17,7 @@ const cargoVersion = readVersionFrom('crates/sks-core/Cargo.toml', /^version\s*=
|
|
|
17
17
|
const latestChangelog = latestVersionedChangelogSection(readText('CHANGELOG.md'));
|
|
18
18
|
const tag = tagStatus(version, currentCommit);
|
|
19
19
|
const main = mainVersion();
|
|
20
|
+
const originMain = originMainVersion();
|
|
20
21
|
const npm = npmVersion();
|
|
21
22
|
const warnings = [];
|
|
22
23
|
const blockers = [];
|
|
@@ -24,6 +25,8 @@ if (main.version && main.version !== version)
|
|
|
24
25
|
warnings.push('main_out_of_date');
|
|
25
26
|
if (publish && main.version && main.version !== version)
|
|
26
27
|
blockers.push('main_version_mismatch');
|
|
28
|
+
if (originMain.version && originMain.version !== version)
|
|
29
|
+
warnings.push('origin_main_out_of_date');
|
|
27
30
|
if (publish && tag.exists && tag.commit !== currentCommit)
|
|
28
31
|
blockers.push('tag_not_on_current_commit');
|
|
29
32
|
if (publish && npm.version && semverCompare(npm.version, version) >= 0)
|
|
@@ -46,6 +49,10 @@ const report = {
|
|
|
46
49
|
latest_changelog_section: latestChangelog,
|
|
47
50
|
main_version: main.version,
|
|
48
51
|
main_commit: main.commit,
|
|
52
|
+
main_status: main.status,
|
|
53
|
+
origin_main_version: originMain.version,
|
|
54
|
+
origin_main_commit: originMain.commit,
|
|
55
|
+
origin_main_status: originMain.status,
|
|
49
56
|
npm_version: npm.version,
|
|
50
57
|
npm_status: npm.version ? (semverCompare(npm.version, version) < 0 ? 'registry_behind_candidate' : npm.version === version ? 'candidate_already_published' : 'registry_ahead') : npm.status,
|
|
51
58
|
tag_status: tag,
|
|
@@ -63,6 +70,20 @@ function git(argv) {
|
|
|
63
70
|
return res.status === 0 ? res.stdout.trim() : null;
|
|
64
71
|
}
|
|
65
72
|
function mainVersion() {
|
|
73
|
+
const ref = git(['rev-parse', '--verify', 'HEAD']);
|
|
74
|
+
if (!ref)
|
|
75
|
+
return { version: null, commit: null, status: 'unavailable' };
|
|
76
|
+
const res = spawnSync('git', ['show', 'HEAD:package.json'], { cwd: root, encoding: 'utf8' });
|
|
77
|
+
if (res.status !== 0)
|
|
78
|
+
return { version: null, commit: ref, status: 'package_unavailable' };
|
|
79
|
+
try {
|
|
80
|
+
return { version: JSON.parse(res.stdout).version || null, commit: ref, status: 'local_head' };
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
return { version: null, commit: ref, status: 'unparseable' };
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
function originMainVersion() {
|
|
66
87
|
const ref = git(['rev-parse', '--verify', 'origin/main']);
|
|
67
88
|
if (!ref)
|
|
68
89
|
return { version: null, commit: null, status: 'unavailable' };
|
|
@@ -30,6 +30,7 @@ else {
|
|
|
30
30
|
}
|
|
31
31
|
for (const [script, extraArgs] of [
|
|
32
32
|
['codex:actual-config-load-probe', []],
|
|
33
|
+
['codex:0.137-compat:require-real', []],
|
|
33
34
|
['codex:0.136-compat:require-real', []],
|
|
34
35
|
['codex:0.135-compat:require-real', []],
|
|
35
36
|
['doctor:codex-doctor-parity:actual', []],
|
|
@@ -49,6 +50,10 @@ if (report.environment_required_checks.some((row) => !row.ok))
|
|
|
49
50
|
finish(false);
|
|
50
51
|
for (const [script, extraArgs] of [
|
|
51
52
|
['codex-sdk:real-smoke', ['--require-real']],
|
|
53
|
+
['local-llm:smoke', ['--require-real']],
|
|
54
|
+
['local-llm:throughput', []],
|
|
55
|
+
['local-llm:cache-performance', []],
|
|
56
|
+
['python-sdk:real-smoke', []],
|
|
52
57
|
['codex:0.134-runner-truth', []],
|
|
53
58
|
['agent:real-codex-patch-envelope-smoke', []],
|
|
54
59
|
['agent:real-codex-parallel-workers', []],
|
|
@@ -65,7 +65,7 @@ const sourceOk = source.includes("action', 'new-pane'")
|
|
|
65
65
|
&& source.includes('zellij_worker_list_panes')
|
|
66
66
|
&& source.includes('provider_context');
|
|
67
67
|
const ok = artifact.ok
|
|
68
|
-
&& artifact.pane_name === 'slot-001/gen-7 · codex-sdk · fast · codex-lb'
|
|
68
|
+
&& artifact.pane_name === 'slot-001/gen-7 · codex-sdk · fast · codex-lb · running'
|
|
69
69
|
&& artifact.pane_kind === 'worker_codex_sdk'
|
|
70
70
|
&& artifact.provider === 'codex-lb'
|
|
71
71
|
&& artifact.service_tier === 'fast'
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sneakoscope",
|
|
3
3
|
"displayName": "ㅅㅋㅅ",
|
|
4
|
-
"version": "2.0.
|
|
4
|
+
"version": "2.0.6",
|
|
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",
|
|
@@ -288,11 +288,32 @@
|
|
|
288
288
|
"local-collab:no-local-only-final": "node ./dist/scripts/local-collab-no-local-only-final-check.js",
|
|
289
289
|
"local-collab:gpt-final-availability": "node ./dist/scripts/local-collab-gpt-final-availability-check.js",
|
|
290
290
|
"local-collab:gpt-final-performance": "node ./dist/scripts/gpt-final-arbiter-performance-check.js",
|
|
291
|
+
"local-llm:capability": "node ./dist/scripts/local-llm-capability-check.js",
|
|
292
|
+
"local-llm:smoke": "node ./dist/scripts/local-llm-smoke-check.js",
|
|
293
|
+
"local-llm:structured-output": "node ./dist/scripts/local-llm-structured-output-check.js",
|
|
294
|
+
"local-llm:tool-call-repair": "node ./dist/scripts/local-llm-tool-call-repair-check.js",
|
|
295
|
+
"local-llm:throughput": "node ./dist/scripts/local-llm-throughput-check.js",
|
|
296
|
+
"local-llm:cache-performance": "node ./dist/scripts/local-llm-cache-performance-check.js",
|
|
297
|
+
"local-llm:warmup": "node ./dist/scripts/local-llm-warmup-check.js",
|
|
298
|
+
"local-llm:all-pipelines": "node ./dist/scripts/local-llm-all-pipelines-check.js",
|
|
299
|
+
"local-collab:all-pipelines-final-gpt": "node ./dist/scripts/local-collab-all-pipelines-final-gpt-check.js",
|
|
300
|
+
"python-sdk:capability": "node ./dist/scripts/python-codex-sdk-capability-check.js",
|
|
301
|
+
"python-sdk:stream-bridge": "node ./dist/scripts/python-codex-sdk-stream-bridge-check.js",
|
|
302
|
+
"python-sdk:sandbox-policy": "node ./dist/scripts/python-codex-sdk-sandbox-policy-check.js",
|
|
303
|
+
"python-sdk:all-pipelines": "node ./dist/scripts/python-codex-sdk-all-pipelines-check.js",
|
|
304
|
+
"python-sdk:real-smoke": "node ./dist/scripts/python-codex-sdk-capability-check.js --require-real",
|
|
305
|
+
"codex:0.137-compat": "node ./dist/scripts/codex-0-137-compat-check.js",
|
|
306
|
+
"codex:0.137-compat:require-real": "node ./dist/scripts/codex-0-137-compat-check.js --require-real",
|
|
307
|
+
"codex:plugin-list-json": "node ./dist/scripts/codex-plugin-list-json-check.js",
|
|
308
|
+
"codex:product-design-plugin-routing": "node ./dist/scripts/product-design-plugin-routing-check.js",
|
|
309
|
+
"codex:product-design-auto-install": "node ./dist/scripts/product-design-auto-install-check.js",
|
|
310
|
+
"codex:thread-runtime-choice": "node ./dist/scripts/codex-thread-runtime-choice-check.js",
|
|
311
|
+
"codex:environment-scoped-approvals": "node ./dist/scripts/codex-environment-scoped-approvals-check.js",
|
|
291
312
|
"ultra-router:classification": "node ./dist/scripts/ultra-router-classification-check.js",
|
|
292
313
|
"ultra-router:auto-router": "node ./dist/scripts/ultra-router-auto-router-check.js",
|
|
293
314
|
"coverage": "node --experimental-test-coverage --test \"test/**/*.test.mjs\"",
|
|
294
|
-
"release:check": "npm run release:check:parallel && npm run mad-sks:app-ui-no-mutation && npm run codex-app:fast-ui-preservation && npm run codex-app:ui-clobber-guard && npm run doctor:fixes-codex-app-fast-ui && npm run provider:badge-context && npm run provider:context-config-toml && npm run codex-app:provider-badge && npm run zellij:spawn-on-demand-layout && npm run zellij:worker-pane-manager && npm run zellij:worker-pane-manager-single-owner && npm run agent:worker-pane-communication-contract && npm run runtime:no-mjs-scripts && npm run runtime:ts-python-boundary && npm run codex-sdk:capability && npm run codex-sdk:no-legacy-fallback && npm run codex-sdk:backend-router && npm run codex-sdk:structured-output && npm run codex-sdk:event-stream-ledger && npm run codex-sdk:thread-registry && npm run codex-sdk:sandbox-policy && npm run codex-sdk:zellij-pane-binding && npm run codex-sdk:all-pipelines && npm run codex-sdk:dfix-pipeline && npm run codex-sdk:qa-pipeline && npm run codex-sdk:research-pipeline && npm run codex-sdk:team-naruto-agent-pipeline && npm run codex-sdk:release-review-pipeline && npm run codex-sdk:ux-ppt-review-pipeline && npm run codex-sdk:core-skill-pipeline && npm run codex-control:capability && npm run codex-control:no-legacy-fallback && npm run codex-control:structured-output && npm run codex-control:event-stream-ledger && npm run codex-control:thread-registry && npm run codex-control:side-effect-scope && npm run codex-control:all-pipelines && npm run codex-control:empty-result-retry && npm run codex-control:stream-idle-watchdog && npm run codex-control:tool-call-sequence-repair && npm run codex-control:keepalive-no-cot-leak && npm run local-collab:policy && npm run local-collab:gpt-final-arbiter && npm run local-collab:no-local-only-final && npm run local-collab:gpt-final-availability && npm run ultra-router:classification && npm run ultra-router:auto-router && npm run release:version-truth && npm run codex:0.136-compat && npm run codex:0.135-compat && npm run doctor:codex-doctor-parity && npm run codex:permission-profiles && npm run codex:legacy-profile-consumers-removed && npm run terminal:keyboard-enhancement-safety && npm run terminal:tui-output-stability && npm run codex:resume-cwd-truth && npm run mcp:tool-naming-parity && npm run responses:retry-policy-centralized && npm run runtime:no-tmux && npm run zellij:layout-valid && npm run agent:zellij-dynamic-backfill-panes && npm run agent:worker-pane-communication-contract && npm run agent:slot-pane-binding-proof && npm run zellij:worker-pane-manager && npm run zellij:spawn-on-demand-layout && npm run zellij:lane-renderer && npm run mad-sks:zellij-launch && npm run mad-sks:zellij-default-pane-worker && npm run agent:zellij-runtime && npm run codex:config-eperm-fixture && npm run doctor:fix-proves-codex-read && npm run mad:preflight-blocks-unreadable-config && npm run fast:codex-service-tier-proof && npm run codex:project-config-policy-splitter && npm run test:no-orphan-dist-imports && npm run agent:patch-envelope-extraction && npm run agent:patch-queue-runtime && npm run agent:strategy-to-lease-wiring && npm run agent:patch-swarm-runtime && npm run agent:patch-transaction-journal && npm run agent:patch-conflict-rebase && npm run agent:strategy-to-patch-strict && npm run agent:patch-swarm-runtime-truth && npm run agent:rollback-command && npm run agent:patch-verification-dag && npm run agent:patch-rollback-dag && npm run agent:patch-proof-runtime && npm run agent:patch-swarm-route-blackbox && npm run team:patch-swarm-route-blackbox && npm run dfix:patch-swarm-route-blackbox && npm run appshots:thread-attachment-discovery && npm run mcp:readonly-runtime-scheduler && npm run codex:0.134-runner-truth && npm run agent:native-cli-session-swarm && npm run agent:native-cli-session-swarm-10 && npm run agent:native-cli-session-swarm-20 && npm run agent:no-subagent-scaling && npm run agent:native-cli-session-proof && npm run agent:worker-backend-router && npm run agent:codex-child-overlap && npm run agent:model-authored-patch-envelope && npm run agent:fast-mode-default && npm run agent:fast-mode-worker-propagation && npm run codex:fast-mode-profile-propagation && npm run mad-sks:fast-mode-propagation && npm run zellij:launch-command-truth && npm run zellij:real-session-heartbeat && npm run zellij:ui-design && npm run zellij:doctor-readiness && npm run legacy:upgrade-zero-break && npm run publish:packlist-performance && npm run postinstall:safe-side-effects && npm run runtime:ts-rust-boundary && npm run core-skill:card-schema && npm run core-skill:rollout-scoring && npm run core-skill:patch && npm run core-skill:heldout-validation && npm run core-skill:deployment-snapshot && npm run core-skill:no-inference-optimizer && npm run core-skill:route-runtime-integration && npm run core-skill:promotion-side-effect-ledger && npm run core-skill:legacy-promotion-api-audit && npm run safety:side-effect-zero && npm run safety:mutation-callsite-coverage && npm run safety:mutation-callsite-coverage:repo-wide && npm run side-effect:runtime-report && npm run release:gate-planner && npm run release:dynamic-performance && npm run release:provenance && npm run release:gate-budget && npm run agent:wiki-context-proof && npm run shared-memory:check && npm run wrongness:check && npm run wrongness:fixtures && npm run trust:check && npm run git-collaboration:e2e && node ./dist/scripts/release-check-stamp.js write && npm run release:readiness --silent && node ./dist/scripts/release-check-stamp.js write",
|
|
295
|
-
"release:real-check": "node ./dist/scripts/release-real-check.js && npm run codex-control:real-smoke -- --require-real && npm run codex-sdk:real-smoke -- --require-real && npm run zellij:real-session-launch -- --require-real --main-only --mission M-release-real-zellij-extra --session sks-rrz-extra && npm run zellij:pane-proof -- --require-real --mission M-release-real-zellij-extra --session sks-rrz-extra --expected-lanes 0 && npm run zellij:screen-proof -- --require-real --main-only --mission M-release-real-zellij-extra && npm run zellij:real-session-cleanup -- --mission M-release-real-zellij-extra --session sks-rrz-extra && npm run agent:real-codex-in-zellij-worker-pane -- --require-real && SKS_REQUIRE_LOCAL_LLM=1 SKS_REQUIRE_GPT_FINAL=1 npm run local-collab:gpt-final-performance",
|
|
315
|
+
"release:check": "npm run release:check:parallel && npm run mad-sks:app-ui-no-mutation && npm run codex-app:fast-ui-preservation && npm run codex-app:ui-clobber-guard && npm run doctor:fixes-codex-app-fast-ui && npm run provider:badge-context && npm run provider:context-config-toml && npm run codex-app:provider-badge && npm run zellij:spawn-on-demand-layout && npm run zellij:worker-pane-manager && npm run zellij:worker-pane-manager-single-owner && npm run agent:worker-pane-communication-contract && npm run runtime:no-mjs-scripts && npm run runtime:ts-python-boundary && npm run codex-sdk:capability && npm run codex-sdk:no-legacy-fallback && npm run codex-sdk:backend-router && npm run codex-sdk:structured-output && npm run codex-sdk:event-stream-ledger && npm run codex-sdk:thread-registry && npm run codex-sdk:sandbox-policy && npm run codex-sdk:zellij-pane-binding && npm run codex-sdk:all-pipelines && npm run codex-sdk:dfix-pipeline && npm run codex-sdk:qa-pipeline && npm run codex-sdk:research-pipeline && npm run codex-sdk:team-naruto-agent-pipeline && npm run codex-sdk:release-review-pipeline && npm run codex-sdk:ux-ppt-review-pipeline && npm run codex-sdk:core-skill-pipeline && npm run codex-control:capability && npm run codex-control:no-legacy-fallback && npm run codex-control:structured-output && npm run codex-control:event-stream-ledger && npm run codex-control:thread-registry && npm run codex-control:side-effect-scope && npm run codex-control:all-pipelines && npm run codex-control:empty-result-retry && npm run codex-control:stream-idle-watchdog && npm run codex-control:tool-call-sequence-repair && npm run codex-control:keepalive-no-cot-leak && npm run local-collab:policy && npm run local-collab:gpt-final-arbiter && npm run local-collab:no-local-only-final && npm run local-collab:gpt-final-availability && npm run local-llm:capability && npm run local-llm:structured-output && npm run local-llm:tool-call-repair && npm run local-llm:all-pipelines && npm run local-collab:all-pipelines-final-gpt && npm run python-sdk:capability && npm run python-sdk:stream-bridge && npm run python-sdk:sandbox-policy && npm run python-sdk:all-pipelines && npm run codex:plugin-list-json && npm run codex:product-design-plugin-routing && npm run codex:product-design-auto-install && npm run codex:thread-runtime-choice && npm run codex:environment-scoped-approvals && npm run ultra-router:classification && npm run ultra-router:auto-router && npm run release:version-truth && npm run codex:0.137-compat && npm run codex:0.136-compat && npm run codex:0.135-compat && npm run doctor:codex-doctor-parity && npm run codex:permission-profiles && npm run codex:legacy-profile-consumers-removed && npm run terminal:keyboard-enhancement-safety && npm run terminal:tui-output-stability && npm run codex:resume-cwd-truth && npm run mcp:tool-naming-parity && npm run responses:retry-policy-centralized && npm run runtime:no-tmux && npm run zellij:layout-valid && npm run agent:zellij-dynamic-backfill-panes && npm run agent:worker-pane-communication-contract && npm run agent:slot-pane-binding-proof && npm run zellij:worker-pane-manager && npm run zellij:spawn-on-demand-layout && npm run zellij:lane-renderer && npm run mad-sks:zellij-launch && npm run mad-sks:zellij-default-pane-worker && npm run agent:zellij-runtime && npm run codex:config-eperm-fixture && npm run doctor:fix-proves-codex-read && npm run mad:preflight-blocks-unreadable-config && npm run fast:codex-service-tier-proof && npm run codex:project-config-policy-splitter && npm run test:no-orphan-dist-imports && npm run agent:patch-envelope-extraction && npm run agent:patch-queue-runtime && npm run agent:strategy-to-lease-wiring && npm run agent:patch-swarm-runtime && npm run agent:patch-transaction-journal && npm run agent:patch-conflict-rebase && npm run agent:strategy-to-patch-strict && npm run agent:patch-swarm-runtime-truth && npm run agent:rollback-command && npm run agent:patch-verification-dag && npm run agent:patch-rollback-dag && npm run agent:patch-proof-runtime && npm run agent:patch-swarm-route-blackbox && npm run team:patch-swarm-route-blackbox && npm run dfix:patch-swarm-route-blackbox && npm run appshots:thread-attachment-discovery && npm run mcp:readonly-runtime-scheduler && npm run naruto:work-graph && npm run naruto:readonly-routing && npm run naruto:concurrency-governor && npm run naruto:active-pool && npm run naruto:role-distribution && npm run naruto:parallel-patch-apply && npm run naruto:verification-pool && npm run naruto:zellij-massive-ui && npm run naruto:gpt-final-pack && npm run prompt:placeholder-guard && npm run codex:0.134-runner-truth && npm run agent:native-cli-session-swarm && npm run naruto:shadow-clone-swarm && npm run agent:native-cli-session-swarm-10 && npm run agent:native-cli-session-swarm-20 && npm run agent:no-subagent-scaling && npm run agent:native-cli-session-proof && npm run agent:worker-backend-router && npm run agent:codex-child-overlap && npm run agent:model-authored-patch-envelope && npm run agent:fast-mode-default && npm run agent:fast-mode-worker-propagation && npm run codex:fast-mode-profile-propagation && npm run mad-sks:fast-mode-propagation && npm run zellij:launch-command-truth && npm run zellij:real-session-heartbeat && npm run zellij:ui-design && npm run zellij:doctor-readiness && npm run legacy:upgrade-zero-break && npm run publish:packlist-performance && npm run postinstall:safe-side-effects && npm run runtime:ts-rust-boundary && npm run core-skill:card-schema && npm run core-skill:rollout-scoring && npm run core-skill:patch && npm run core-skill:heldout-validation && npm run core-skill:deployment-snapshot && npm run core-skill:no-inference-optimizer && npm run core-skill:route-runtime-integration && npm run core-skill:promotion-side-effect-ledger && npm run core-skill:legacy-promotion-api-audit && npm run safety:side-effect-zero && npm run safety:mutation-callsite-coverage && npm run safety:mutation-callsite-coverage:repo-wide && npm run side-effect:runtime-report && npm run release:gate-planner && npm run release:dynamic-performance && npm run release:provenance && npm run release:gate-budget && npm run agent:wiki-context-proof && npm run shared-memory:check && npm run wrongness:check && npm run wrongness:fixtures && npm run trust:check && npm run git-collaboration:e2e && node ./dist/scripts/release-check-stamp.js write && npm run release:readiness --silent && node ./dist/scripts/release-check-stamp.js write",
|
|
316
|
+
"release:real-check": "node ./dist/scripts/release-real-check.js && npm run codex-control:real-smoke -- --require-real && npm run codex-sdk:real-smoke -- --require-real && SKS_REQUIRE_LOCAL_LLM=1 npm run local-llm:smoke && SKS_REQUIRE_LOCAL_LLM=1 npm run local-llm:throughput && SKS_REQUIRE_LOCAL_LLM=1 npm run local-llm:cache-performance && SKS_REQUIRE_PYTHON_CODEX_SDK=1 npm run python-sdk:real-smoke && SKS_REQUIRE_CODEX_0137=1 npm run codex:0.137-compat:require-real && npm run zellij:real-session-launch -- --require-real --main-only --mission M-release-real-zellij-extra --session sks-rrz-extra && npm run zellij:pane-proof -- --require-real --mission M-release-real-zellij-extra --session sks-rrz-extra --expected-lanes 0 && npm run zellij:screen-proof -- --require-real --main-only --mission M-release-real-zellij-extra && npm run zellij:real-session-cleanup -- --mission M-release-real-zellij-extra --session sks-rrz-extra && npm run agent:real-codex-in-zellij-worker-pane -- --require-real && SKS_REQUIRE_ZELLIJ=1 npm run naruto:zellij-massive-ui -- --require-real && SKS_REQUIRE_LOCAL_LLM=1 SKS_REQUIRE_GPT_FINAL=1 npm run naruto:real-local-gpt-final-smoke && SKS_REQUIRE_LOCAL_LLM=1 SKS_REQUIRE_GPT_FINAL=1 npm run local-collab:gpt-final-performance",
|
|
296
317
|
"release:publish": "npm run publish:npm",
|
|
297
318
|
"publish:dry": "npm run release:metadata && npm run release:version-truth && npm run publish:packlist-performance && npm run prepublish:release-check-or-fast && node ./dist/scripts/release-check-stamp.js verify && npm run release:provenance -- --publish && npm run release:dist-freshness && npm --cache /tmp/sks-npm-cache publish --dry-run --registry https://registry.npmjs.org/ --access public",
|
|
298
319
|
"publish:npm": "npm --cache /tmp/sks-npm-cache publish --registry https://registry.npmjs.org/ --access public",
|
|
@@ -433,6 +454,17 @@
|
|
|
433
454
|
"agent:rollback-command": "node ./dist/scripts/agent-rollback-command-check.js",
|
|
434
455
|
"agent:native-cli-session-swarm": "node ./dist/scripts/agent-native-cli-session-swarm-check.js",
|
|
435
456
|
"naruto:shadow-clone-swarm": "node ./dist/scripts/naruto-shadow-clone-swarm-check.js",
|
|
457
|
+
"naruto:work-graph": "node ./dist/scripts/naruto-work-graph-check.js",
|
|
458
|
+
"naruto:readonly-routing": "node ./dist/scripts/naruto-readonly-routing-check.js",
|
|
459
|
+
"naruto:concurrency-governor": "node ./dist/scripts/naruto-concurrency-governor-check.js",
|
|
460
|
+
"naruto:active-pool": "node ./dist/scripts/naruto-active-pool-check.js",
|
|
461
|
+
"naruto:role-distribution": "node ./dist/scripts/naruto-role-distribution-check.js",
|
|
462
|
+
"naruto:parallel-patch-apply": "node ./dist/scripts/naruto-parallel-patch-apply-check.js",
|
|
463
|
+
"naruto:verification-pool": "node ./dist/scripts/naruto-verification-pool-check.js",
|
|
464
|
+
"naruto:zellij-massive-ui": "node ./dist/scripts/naruto-zellij-massive-ui-check.js",
|
|
465
|
+
"naruto:gpt-final-pack": "node ./dist/scripts/naruto-gpt-final-pack-check.js",
|
|
466
|
+
"naruto:real-local-gpt-final-smoke": "node ./dist/scripts/naruto-real-local-gpt-final-smoke.js",
|
|
467
|
+
"prompt:placeholder-guard": "node ./dist/scripts/prompt-placeholder-guard-check.js",
|
|
436
468
|
"agent:native-cli-session-swarm-10": "node ./dist/scripts/agent-native-cli-session-swarm-10-check.js",
|
|
437
469
|
"agent:native-cli-session-swarm-20": "node ./dist/scripts/agent-native-cli-session-swarm-20-check.js",
|
|
438
470
|
"agent:worker-backend-router": "node ./dist/scripts/agent-worker-backend-router-check.js",
|
|
@@ -512,7 +544,7 @@
|
|
|
512
544
|
"license": "MIT",
|
|
513
545
|
"dependencies": {
|
|
514
546
|
"@modelcontextprotocol/sdk": "1.29.0",
|
|
515
|
-
"@openai/codex-sdk": "0.
|
|
547
|
+
"@openai/codex-sdk": "0.137.0",
|
|
516
548
|
"figlet": "^1.11.0",
|
|
517
549
|
"typescript": "^5.9.3"
|
|
518
550
|
},
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "sks.local-model-config.v2",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"required": ["schema", "enabled", "status", "provider", "endpoint", "model", "policy", "capability", "blockers"],
|
|
6
|
+
"properties": {
|
|
7
|
+
"schema": { "const": "sks.local-model-config.v2" },
|
|
8
|
+
"generated_at": { "type": "string" },
|
|
9
|
+
"updated_at": { "type": "string" },
|
|
10
|
+
"enabled": { "type": "boolean" },
|
|
11
|
+
"status": {
|
|
12
|
+
"enum": ["disabled", "enabled_unverified", "verified", "degraded", "blocked"]
|
|
13
|
+
},
|
|
14
|
+
"provider": { "enum": ["ollama", "mlx-lm", "openai-compatible"] },
|
|
15
|
+
"endpoint": { "type": "string" },
|
|
16
|
+
"base_url": { "type": "string" },
|
|
17
|
+
"model": { "type": "string", "minLength": 1 },
|
|
18
|
+
"keep_alive": { "type": "string" },
|
|
19
|
+
"timeout_ms": { "type": "number", "minimum": 1 },
|
|
20
|
+
"temperature": { "type": "number" },
|
|
21
|
+
"think": { "type": "boolean" },
|
|
22
|
+
"policy": {
|
|
23
|
+
"type": "object",
|
|
24
|
+
"required": ["role", "allowed_task_classes", "forbidden_task_classes", "requires_gpt_final"],
|
|
25
|
+
"properties": {
|
|
26
|
+
"role": { "const": "worker_only" },
|
|
27
|
+
"allowed_task_classes": { "type": "array", "items": { "type": "string" } },
|
|
28
|
+
"forbidden_task_classes": { "type": "array", "items": { "type": "string" } },
|
|
29
|
+
"requires_gpt_final": { "type": "boolean" }
|
|
30
|
+
},
|
|
31
|
+
"additionalProperties": false
|
|
32
|
+
},
|
|
33
|
+
"capability": {
|
|
34
|
+
"type": "object",
|
|
35
|
+
"required": ["api_reachable", "model_installed", "supports_streaming", "supports_json_schema", "supports_tools", "supports_images", "context_window", "max_parallel_requests"],
|
|
36
|
+
"properties": {
|
|
37
|
+
"api_reachable": { "type": "boolean" },
|
|
38
|
+
"model_installed": { "type": "boolean" },
|
|
39
|
+
"supports_streaming": { "type": "boolean" },
|
|
40
|
+
"supports_json_schema": { "type": "boolean" },
|
|
41
|
+
"supports_tools": { "type": "boolean" },
|
|
42
|
+
"supports_images": { "type": "boolean" },
|
|
43
|
+
"context_window": { "type": "number", "minimum": 1 },
|
|
44
|
+
"max_parallel_requests": { "type": "number", "minimum": 1 }
|
|
45
|
+
},
|
|
46
|
+
"additionalProperties": false
|
|
47
|
+
},
|
|
48
|
+
"last_smoke": {
|
|
49
|
+
"anyOf": [
|
|
50
|
+
{ "type": "null" },
|
|
51
|
+
{
|
|
52
|
+
"type": "object",
|
|
53
|
+
"required": ["ok"],
|
|
54
|
+
"properties": {
|
|
55
|
+
"ok": { "type": "boolean" },
|
|
56
|
+
"skipped": { "type": "boolean" },
|
|
57
|
+
"ran_at": { "type": "string" },
|
|
58
|
+
"prompt_hash": { "type": "string" },
|
|
59
|
+
"latency_ms": { "type": "number" },
|
|
60
|
+
"tokens_per_second": { "type": "number" },
|
|
61
|
+
"schema_valid": { "type": "boolean" },
|
|
62
|
+
"result_path": { "type": "string" },
|
|
63
|
+
"status": { "enum": ["enabled_unverified", "verified", "degraded", "blocked"] },
|
|
64
|
+
"reason": { "type": "string" },
|
|
65
|
+
"blockers": { "type": "array", "items": { "type": "string" } }
|
|
66
|
+
},
|
|
67
|
+
"additionalProperties": false
|
|
68
|
+
}
|
|
69
|
+
]
|
|
70
|
+
},
|
|
71
|
+
"blockers": { "type": "array", "items": { "type": "string" } }
|
|
72
|
+
},
|
|
73
|
+
"additionalProperties": false
|
|
74
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "sks.naruto-concurrency-governor.v1",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"required": ["schema", "requested_clones", "total_work_items", "safe_active_workers", "safe_zellij_visible_panes", "headless_workers", "backpressure"],
|
|
6
|
+
"properties": {
|
|
7
|
+
"schema": { "const": "sks.naruto-concurrency-governor.v1" },
|
|
8
|
+
"requested_clones": { "type": "integer", "minimum": 1 },
|
|
9
|
+
"total_work_items": { "type": "integer", "minimum": 1 },
|
|
10
|
+
"safe_active_workers": { "type": "integer", "minimum": 1 },
|
|
11
|
+
"safe_zellij_visible_panes": { "type": "integer", "minimum": 1 },
|
|
12
|
+
"headless_workers": { "type": "integer", "minimum": 0 },
|
|
13
|
+
"local_llm_parallel": { "type": "integer", "minimum": 1 },
|
|
14
|
+
"remote_codex_parallel": { "type": "integer", "minimum": 1 },
|
|
15
|
+
"verification_parallel": { "type": "integer", "minimum": 1 },
|
|
16
|
+
"reasons": { "type": "array", "items": { "type": "string" } },
|
|
17
|
+
"backpressure": { "enum": ["normal", "throttled", "saturated"] }
|
|
18
|
+
},
|
|
19
|
+
"additionalProperties": true
|
|
20
|
+
}
|
|
21
|
+
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "sks.naruto-work-graph.v1",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"required": ["schema", "route", "requested_clones", "total_work_items", "work_items", "active_waves", "ok"],
|
|
6
|
+
"properties": {
|
|
7
|
+
"schema": { "const": "sks.naruto-work-graph.v1" },
|
|
8
|
+
"route": { "const": "$Naruto" },
|
|
9
|
+
"requested_clones": { "type": "integer", "minimum": 1 },
|
|
10
|
+
"total_work_items": { "type": "integer", "minimum": 1 },
|
|
11
|
+
"readonly": { "type": "boolean" },
|
|
12
|
+
"write_capable": { "type": "boolean" },
|
|
13
|
+
"work_items": { "type": "array", "items": { "type": "object" } },
|
|
14
|
+
"active_waves": { "type": "array", "items": { "type": "object" } },
|
|
15
|
+
"mixed_work_kinds": { "type": "array", "items": { "type": "string" } },
|
|
16
|
+
"write_allowed_count": { "type": "integer", "minimum": 0 },
|
|
17
|
+
"blockers": { "type": "array", "items": { "type": "string" } },
|
|
18
|
+
"ok": { "type": "boolean" }
|
|
19
|
+
},
|
|
20
|
+
"additionalProperties": true
|
|
21
|
+
}
|
|
22
|
+
|