sneakoscope 10.1.5 → 10.1.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 +1 -1
- package/config/skills-hash-ledger.v1.json +1 -0
- package/crates/sks-core/Cargo.lock +1 -1
- package/crates/sks-core/Cargo.toml +1 -1
- package/dist/config/skills-manifest.json +3 -2
- package/dist/core/agents/agent-effort-policy.js +3 -3
- package/dist/core/codex-native/core-skill-manifest.js +1 -1
- package/dist/core/init.js +1 -1
- package/dist/core/managed-assets/managed-assets-manifest.js +7 -5
- package/dist/core/routes.js +2 -2
- package/dist/core/subagents/model-policy.js +1 -1
- package/dist/core/subagents/naruto-help-contract.js +2 -1
- package/dist/core/subagents/official-subagent-prompt.js +6 -6
- package/dist/core/subagents/role-model-preferences.js +14 -6
- package/dist/core/version.js +1 -1
- package/dist/scripts/codex-native-agent-role-content-check.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
Sneakoscope Codex (`sks`) is an open-source trust layer for Codex CLI and ChatGPT Desktop. It coordinates bounded AI coding agents, records machine-verifiable evidence, preserves project memory, and blocks release claims that are not supported by current tests or artifacts. Search visibility outcomes are measured separately; SKS does not promise rankings or traffic.
|
|
17
17
|
<!-- END SKS SEARCH VISIBILITY MARKETING -->
|
|
18
18
|
|
|
19
|
-
Current package: **SKS 10.1.
|
|
19
|
+
Current package: **SKS 10.1.6**. Install the latest stable release from npm.
|
|
20
20
|
|
|
21
21
|
[Quick start](#install-in-one-command) · [Commands](#everyday-commands) · [SKS Center](#sks-center-macos) · [Documentation](#documentation) · [Changelog](CHANGELOG.md)
|
|
22
22
|
|
|
@@ -288,6 +288,7 @@
|
|
|
288
288
|
{
|
|
289
289
|
"canonical_name": "sks-naruto",
|
|
290
290
|
"trusted_sha256": [
|
|
291
|
+
"b981bea4183376c6c0204941ad6c2e78782e2cdea4f8d25cc85630c609faaf95",
|
|
291
292
|
"5df9c9678eb68fd79ceb998ae7a52dd54dc92336ad5169e8a01acca89f76bd60",
|
|
292
293
|
"a1219f6dbad9c8c185953125ef0b8dccf081aa01efb8e8acaa543c6214ac049c",
|
|
293
294
|
"d0d5968e78ac25e1d3e588735de1ddbcf149cfb3165edebca5dec1ed7c7a5c46",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": "sks.skills-manifest.v1",
|
|
3
|
-
"package_version": "10.1.
|
|
3
|
+
"package_version": "10.1.6",
|
|
4
4
|
"skills": [
|
|
5
5
|
{
|
|
6
6
|
"canonical_name": "sks",
|
|
@@ -353,8 +353,9 @@
|
|
|
353
353
|
{
|
|
354
354
|
"canonical_name": "sks-naruto",
|
|
355
355
|
"type": "core",
|
|
356
|
-
"content_sha256": "
|
|
356
|
+
"content_sha256": "b981bea4183376c6c0204941ad6c2e78782e2cdea4f8d25cc85630c609faaf95",
|
|
357
357
|
"hash_history": [
|
|
358
|
+
"5df9c9678eb68fd79ceb998ae7a52dd54dc92336ad5169e8a01acca89f76bd60",
|
|
358
359
|
"a1219f6dbad9c8c185953125ef0b8dccf081aa01efb8e8acaa543c6214ac049c",
|
|
359
360
|
"d0d5968e78ac25e1d3e588735de1ddbcf149cfb3165edebca5dec1ed7c7a5c46",
|
|
360
361
|
"34222c72e4e1ead3584907f4d905444b7de820283ee7348018f110d5e6b04461",
|
|
@@ -43,7 +43,7 @@ export function decideOfficialSubagentModel(input = {}) {
|
|
|
43
43
|
'requested model/effort profile unavailable blocks instead of silently falling back'
|
|
44
44
|
],
|
|
45
45
|
downshift_triggers: [
|
|
46
|
-
'
|
|
46
|
+
'instructed UI, logic, backend, or native implementation selects Astra Low',
|
|
47
47
|
'long-context, Browser/Chrome, Computer Use, image-generation, or large search selects Astra Medium',
|
|
48
48
|
'tiny short-context mechanical search/typing/rename work selects Astra Low'
|
|
49
49
|
]
|
|
@@ -97,7 +97,7 @@ export function decideOfficialSubagentModel(input = {}) {
|
|
|
97
97
|
'requested model/effort profile unavailable blocks instead of silently falling back'
|
|
98
98
|
],
|
|
99
99
|
downshift_triggers: [
|
|
100
|
-
'
|
|
100
|
+
'instructed UI, logic, backend, or native implementation selects Astra Low',
|
|
101
101
|
'long-context, Browser/Chrome, Computer Use, or image-generation execution selects Astra Medium',
|
|
102
102
|
'tiny short-context mechanical work selects Astra Low'
|
|
103
103
|
]
|
|
@@ -132,7 +132,7 @@ export function buildAgentEffortPolicy(roster = {}) {
|
|
|
132
132
|
agent_count: roster.agent_count || decisions.length,
|
|
133
133
|
concurrency: roster.concurrency || decisions.length,
|
|
134
134
|
decisions,
|
|
135
|
-
rule: 'All child agents use GPT-6 Astra: Low for tiny short-context mechanical work, Medium for reads and tool execution,
|
|
135
|
+
rule: 'All child agents use GPT-6 Astra: Low for tiny short-context mechanical work and instructed implementation, Medium for reads and tool execution, and Max for focused judgment. The parent keeps its user-selected model, reasoning effort, and service tier; explicit Astra effort preferences may override role defaults.'
|
|
136
136
|
};
|
|
137
137
|
}
|
|
138
138
|
export function reasoningProfileName(effort) {
|
|
@@ -15,7 +15,7 @@ const CORE_SKILL_DEFINITIONS = [
|
|
|
15
15
|
route: '$Naruto',
|
|
16
16
|
purpose: 'run a Codex official subagent workflow with official agent threads while parent integration remains owner.',
|
|
17
17
|
when: 'Use when the user explicitly invokes $Naruto or the selected route requires bounded parallel delegation.',
|
|
18
|
-
workflow: 'Run sks naruto run "<task>" [--agents N] [--max-threads N] [--json] with Codex official subagent threads only. The parent owns decomposition, per-wave capacity, later root-owned waves, integration, and final verification. Automatic targets begin at 4/6/8/16 by task size: bounded, explicit parallel, large-scale, then mass mechanical or exploration fan-out on the Astra Low/Astra Medium lanes. After decomposition both lanes may expand to the SKS-owned 256-child ceiling when independent useful slices and real host capacity remain positive; max_threads defaults to a 256-child frame budget cap, never a target. A measured lower Codex host cap or explicit provider/API budget remains authoritative, and multi-wave scheduling reuses returned capacity. Use gpt-6-astra for every child, preserving parent settings and ignoring child-model overrides. Route tiny mechanical and mass shards to Astra Low, broad search and exploration shards to Astra Medium,
|
|
18
|
+
workflow: 'Run sks naruto run "<task>" [--agents N] [--max-threads N] [--json] with Codex official subagent threads only. The parent owns decomposition, per-wave capacity, later root-owned waves, integration, and final verification. Automatic targets begin at 4/6/8/16 by task size: bounded, explicit parallel, large-scale, then mass mechanical or exploration fan-out on the Astra Low/Astra Medium lanes. After decomposition both lanes may expand to the SKS-owned 256-child ceiling when independent useful slices and real host capacity remain positive; max_threads defaults to a 256-child frame budget cap, never a target. A measured lower Codex host cap or explicit provider/API budget remains authoritative, and multi-wave scheduling reuses returned capacity. Use gpt-6-astra for every child, preserving parent settings and ignoring child-model overrides. Route tiny mechanical and mass shards to Astra Low, broad search and exploration shards to Astra Medium, instructed ordinary coding execution to Astra Low, and planning, analysis, review, or other judgment to Astra Max. Keep the four task-class profiles and compatibility IDs; explicit Astra effort preferences, including High, remain supported; max_depth=1 blocks nested delegation. Wait for every planned thread before final. In an active Codex App Naruto mission, commit the strict parent evidence with sks naruto parent-summary --mission <id> --stdin, then return localized Markdown without exposing the JSON.',
|
|
19
19
|
safety: 'Preserve user-authored content, inherit the parent permission mode, do not spawn nested subagents, do not inject the full pack or the full TriWiki context into every child, and do not fall back to another model, process runtime, custom scheduler, or worker pool. The historical Naruto process runtime is removed; stop with explicit blocker evidence when the official path is unavailable.',
|
|
20
20
|
cli: 'sks naruto run "<task>" [--agents N] [--max-threads N] [--json]; sks naruto status|subagents|proof [--mission <id>] [--json]; sks naruto parent-summary --mission <id> --stdin [--json]',
|
|
21
21
|
evidence: 'subagent-plan.json, subagent-events.jsonl, subagent-parent-summary.json, subagent-evidence.json, naruto-summary.json, and naruto-gate.json.',
|
package/dist/core/init.js
CHANGED
|
@@ -276,7 +276,7 @@ const AGENTS_BLOCK = [
|
|
|
276
276
|
'- Codex native `/goal` is the only persisted goal owner. Goal objectives must state the outcome, scope, constraints, verification, done-when conditions, stop conditions, and non-goals.',
|
|
277
277
|
'- General work stays parent-owned. Use `$Naruto` for explicitly requested parallel work or concrete independent slices that benefit from delegation; Answer and tiny DFix work stay lightweight.',
|
|
278
278
|
'- The parent owns decomposition, integration, verification, and the final answer. Delegate only independent slices with disjoint write scopes, reuse capacity across root-owned waves, and never nest subagents.',
|
|
279
|
-
'- Use gpt-6-astra for every subagent; vary reasoning effort by the slice: Astra Low for tiny mechanical work
|
|
279
|
+
'- Use gpt-6-astra for every subagent; vary reasoning effort by the slice: Astra Low for tiny mechanical work and instructed ordinary coding execution, Astra Medium for read-heavy context or direct tool operation, and Astra Max for planning, analysis, review, risk, or other focused judgment. Explicit Astra effort preferences, including High, remain supported.',
|
|
280
280
|
'- Preserve the user-selected parent model, reasoning effort, and service tier. SKS-launched Naruto defaults to GPT-6 Astra; parent settings and role preferences never override the sealed Astra child profiles.',
|
|
281
281
|
'- SKS child spawns must explicitly set model="gpt-6-astra" and the role reasoning effort with `fork_turns="none"` or a positive bounded turn count; carry the complete bounded slice contract in `message`. Never use full-history inheritance for children.',
|
|
282
282
|
'- Route-specific skills own route-specific details. Do not inject unrelated Design, PPT, image, browser, research, DB, or release policy into ordinary work.',
|
|
@@ -47,14 +47,14 @@ Do not claim success without direct evidence.`
|
|
|
47
47
|
filename: 'implementation-specialist.toml',
|
|
48
48
|
aliases: ['implementation-specialist', 'core-implementer'],
|
|
49
49
|
codexName: 'implementation_specialist',
|
|
50
|
-
description: 'Astra
|
|
50
|
+
description: 'Astra Low implementation specialist for instructed backend, core, API, lifecycle, and cross-file coding with disjoint ownership.',
|
|
51
51
|
policy: 'sol_high_implementation',
|
|
52
52
|
keywords: ['implementation', 'backend', 'core', 'api', 'lifecycle implementation', 'cross-file coding', 'feature change', '구현', '백엔드', '핵심 로직'],
|
|
53
53
|
nicknames: ['Builder', 'Forge', 'Mason', 'Rivet'],
|
|
54
|
-
instructions: `You are the bounded
|
|
54
|
+
instructions: `You are the bounded implementation specialist.
|
|
55
55
|
|
|
56
56
|
Own only the disjoint files and acceptance criteria assigned by the parent.
|
|
57
|
-
Use this role for
|
|
57
|
+
Use this role for instructed backend, core, API, lifecycle, and cross-file coding after the parent defines the implementation scope. Escalate review, debugging, planning, architecture, security, release, and ambiguous work to an Astra Max specialist.
|
|
58
58
|
Do not redesign unrelated architecture or integrate sibling work.
|
|
59
59
|
Make the smallest defensible change, run focused verification, and return files, evidence, and residual risks.`
|
|
60
60
|
}),
|
|
@@ -153,12 +153,13 @@ Run only the focused checks needed for the slice and report exact commands and o
|
|
|
153
153
|
filename: 'ui-implementer.toml',
|
|
154
154
|
aliases: ['ui-implementer', 'frontend-specialist'],
|
|
155
155
|
codexName: 'ui_implementer',
|
|
156
|
-
description: 'Astra
|
|
156
|
+
description: 'Astra Low UI and terminal-interface implementation specialist for instructed visual behavior, interaction, accessibility, and rendered state changes.',
|
|
157
157
|
policy: 'sol_high_implementation',
|
|
158
158
|
keywords: ['ui', 'ux', 'frontend', 'visual', 'terminal', 'accessibility'],
|
|
159
159
|
nicknames: ['Canvas', 'Iris', 'Pixel', 'Turing'],
|
|
160
160
|
instructions: `You are the UI implementation specialist.
|
|
161
161
|
|
|
162
|
+
Execute the coding scope defined by the parent; return unresolved design, debugging, or planning decisions to an Astra Max specialist.
|
|
162
163
|
Trace the rendered user-visible behavior before editing.
|
|
163
164
|
Make the smallest change that fixes interaction, layout, accessibility, or terminal presentation.
|
|
164
165
|
Preserve the existing design system and unrelated behavior.
|
|
@@ -169,13 +170,14 @@ Verify the rendered result with the appropriate live or deterministic surface an
|
|
|
169
170
|
filename: 'native-app-specialist.toml',
|
|
170
171
|
aliases: ['native-app-specialist', 'macos-specialist', 'desktop-specialist'],
|
|
171
172
|
codexName: 'native_app_specialist',
|
|
172
|
-
description: 'Astra
|
|
173
|
+
description: 'Astra Low native desktop coding specialist for instructed macOS AppKit and Swift menu-bar UI, app lifecycle, accessibility, and OS integration changes.',
|
|
173
174
|
policy: 'sol_high_implementation',
|
|
174
175
|
keywords: ['native app', 'macos', 'appkit', 'swift', 'menu bar', 'nsstatusitem', 'nsworkspace', 'tcc', 'desktop app'],
|
|
175
176
|
nicknames: ['Cocoa', 'Darwin', 'Quartz', 'Swift'],
|
|
176
177
|
instructions: `You are the native desktop implementation specialist.
|
|
177
178
|
|
|
178
179
|
Own only the assigned native macOS, AppKit, Swift, or menu-bar files.
|
|
180
|
+
Execute the coding scope defined by the parent; return unresolved architecture, debugging, or planning decisions to an Astra Max specialist.
|
|
179
181
|
Preserve the project design system, accessibility semantics, app lifecycle, and OS permission boundaries.
|
|
180
182
|
Do not substitute web UI or placeholder assets for required native behavior.
|
|
181
183
|
Verify with the narrowest compile, deterministic template, or live native check available and report exact evidence.`
|
package/dist/core/routes.js
CHANGED
|
@@ -699,7 +699,7 @@ export const COMMAND_CATALOG = [
|
|
|
699
699
|
{ name: 'wiki', usage: 'sks wiki coords|pack|refresh|publish|rebuild-index|validate|validate-shared|wrongness ...', description: 'Build, refresh, publish shared shards, rebuild ignored indexes, validate, and attach wrongness-memory context to RGBA/trig LLM Wiki packs with attention.use_first and attention.hydrate_first for compact recall plus source hydration.' },
|
|
700
700
|
{ name: 'memory', usage: 'sks memory build [--json] | sks memory gc [--dry-run]', description: 'Project TriWiki context-pack memory into managed AGENTS.md blocks or run bounded memory cleanup.' },
|
|
701
701
|
{ name: 'hproof', usage: 'sks hproof check [mission-id|latest]', description: 'Evaluate the H-Proof done gate for a mission.' },
|
|
702
|
-
{ name: 'naruto', usage: 'sks naruto run \"task\" [--agents N] [--max-threads N] [--trusted-project] [--json] | sks naruto status|subagents|proof [latest|M-...] [--json] | sks naruto parent-summary --mission M-... --stdin [--json]', description: 'Run or inspect the Codex official subagent workflow with an Astra standalone parent default and Astra Low mechanical
|
|
702
|
+
{ name: 'naruto', usage: 'sks naruto run \"task\" [--agents N] [--max-threads N] [--trusted-project] [--json] | sks naruto status|subagents|proof [latest|M-...] [--json] | sks naruto parent-summary --mission M-... --stdin [--json]', description: 'Run or inspect the Codex official subagent workflow with an Astra standalone parent default and Astra Low mechanical and instructed implementation, Astra Max judgment, and Astra Medium long-context/tool profiles, max_depth=1, and structured parent-thread completion evidence.' },
|
|
703
703
|
{ name: 'reasoning', usage: 'sks reasoning ["prompt"] [--json]', description: 'Show SKS temporary reasoning-effort routing: medium for simple tasks, high for logic, xhigh for research.' },
|
|
704
704
|
{ name: 'gx', usage: 'sks gx init|render|validate|drift|snapshot [name]', description: 'Create and verify deterministic SVG/HTML visual context cartridges.' },
|
|
705
705
|
{ name: 'profile', usage: 'sks profile show|set <model>', description: 'Inspect or set the current SKS model profile metadata.' },
|
|
@@ -1301,7 +1301,7 @@ export function subagentExecutionPolicyText(route, prompt = '') {
|
|
|
1301
1301
|
return [
|
|
1302
1302
|
'Codex subagent workflow: required for this explicit Naruto or parallel task.',
|
|
1303
1303
|
'The parent agent owns decomposition, integration, scoped verification, and the final answer. Preserve its selected settings; every child uses gpt-6-astra with the sealed role effort, regardless of parent model or saved role preferences.',
|
|
1304
|
-
'Delegate only genuinely independent slices. Use Astra Low
|
|
1304
|
+
'Delegate only genuinely independent slices. Use Astra Low for tiny short-context mechanical work and instructed ordinary implementation, Astra Max for review/debug/planning/analysis/architecture/integration/risk judgment, and Astra Medium for long-context or Computer Use, Browser/Chrome, and image-generation execution. Explicit Astra effort preferences, including High, remain supported.',
|
|
1305
1305
|
'Parallel writes require disjoint paths; serialize overlapping paths, prohibit nested delegation, avoid duplicate work, wait for all requested agent threads, and close completed threads after collecting results.',
|
|
1306
1306
|
'Completion evidence comes from official SubagentStart/SubagentStop events plus the parent integration summary, not process counts or PID evidence.'
|
|
1307
1307
|
].join(' ');
|
|
@@ -6,7 +6,7 @@ export const TERRA_SUBAGENT_MODEL = ASTRA_SUBAGENT_MODEL;
|
|
|
6
6
|
export const SOL_SUBAGENT_MODEL = ASTRA_SUBAGENT_MODEL;
|
|
7
7
|
export const LUNA_SUBAGENT_EFFORT = 'low';
|
|
8
8
|
export const TERRA_SUBAGENT_EFFORT = 'medium';
|
|
9
|
-
export const DEFAULT_SUBAGENT_EFFORT = '
|
|
9
|
+
export const DEFAULT_SUBAGENT_EFFORT = 'low';
|
|
10
10
|
export const SOL_MAX_SUBAGENT_EFFORT = 'max';
|
|
11
11
|
export const DEFAULT_SUBAGENT_MODEL = SOL_SUBAGENT_MODEL;
|
|
12
12
|
export const THINKING_SUBAGENT_MODEL = SOL_SUBAGENT_MODEL;
|
|
@@ -27,6 +27,7 @@ export function renderNarutoUsage() {
|
|
|
27
27
|
' --no-forced-login-method Do not inject a forced login method.',
|
|
28
28
|
' --json Emit machine-readable output.',
|
|
29
29
|
'',
|
|
30
|
+
'Default efforts: Low for instructed ordinary coding and tiny mechanical work, Medium for context/tools, Max for planning/analysis/review judgment; explicit High remains supported.',
|
|
30
31
|
'Automatic fan-out starts at 4/6/8, or 16 for eligible mass mechanical or exploration work on the Astra Low/Medium lanes.',
|
|
31
32
|
'After decomposition, either lane may expand to 256 independent useful children.',
|
|
32
33
|
'A measured lower Codex host or explicit provider/API limit remains authoritative.'
|
|
@@ -61,7 +62,7 @@ export function buildNarutoHelpResult() {
|
|
|
61
62
|
triwiki_context: 'bounded_attention_use_first_with_on_demand_hydration',
|
|
62
63
|
model_routing_policy: {
|
|
63
64
|
luna_max: 'tiny_short_context_mechanical_and_mass_shards',
|
|
64
|
-
sol_high: '
|
|
65
|
+
sol_high: 'astra_low_instructed_ordinary_ui_logic_backend_and_native_implementation',
|
|
65
66
|
sol_max: 'astra_max_review_debug_planning_architecture_security_database_research_release_and_judgment',
|
|
66
67
|
terra_max: 'astra_medium_broad_search_exploration_long_context_long_term_memory_large_first_draft_computer_use_browser_chrome_and_image_generation_execution',
|
|
67
68
|
mixed_slice_rule: 'split_execution_from_judgment_when_possible_otherwise_astra_max_wins'
|
|
@@ -100,12 +100,12 @@ Subagent rules:
|
|
|
100
100
|
${spawnModelRouting}
|
|
101
101
|
${Object.keys(effortPreferences).length ? `- explicit Astra effort preferences override role defaults, including later slices: ${JSON.stringify(effortPreferences)}` : ''}
|
|
102
102
|
- use \`worker\` with gpt-6-astra and low reasoning for tiny short-context mechanical work such as simple search, typing, rename, copy, label, or one-line edits with no exploration or judgment
|
|
103
|
-
- use gpt-6-astra with
|
|
104
|
-
- use gpt-6-astra with max reasoning
|
|
103
|
+
- use gpt-6-astra with low reasoning for ordinary UI, logic, backend, and native implementation with established instructions
|
|
104
|
+
- use gpt-6-astra with max reasoning for planning, analysis, review, focused unresolved, high-risk, architecture, security, database, research, release, or other explicit judgment slices
|
|
105
105
|
- use gpt-6-astra with medium reasoning for long context/memory, large docs/repository reads or exploration, large-scale first-draft code processing, and direct Computer Use, Browser/Chrome, or image generation
|
|
106
|
-
- explicit task class and phase win over incidental keywords: Astra Medium
|
|
107
|
-
- in mass fan-out, use worker/Astra Low for tiny mechanical shards and explorer/Astra Medium for broad exploration; use Astra
|
|
108
|
-
-
|
|
106
|
+
- explicit task class and phase win over incidental keywords: Astra Medium explores, Astra Low executes mechanical and instructed coding tasks, and Astra Max judges
|
|
107
|
+
- in mass fan-out, use worker/Astra Low for tiny mechanical shards and explorer/Astra Medium for broad exploration; use Astra Low for instructed implementation and Astra Max for judgment
|
|
108
|
+
- keep context, exploration, review, debugging, planning, and direct tool operation on their assigned defaults; preserve each sealed role model and effort instead of applying the parent profile to every child
|
|
109
109
|
|
|
110
110
|
Plan and capacity:
|
|
111
111
|
- automatic fan-out is capacity-derived up to ${MAX_AUTOMATIC_SUBAGENT_COUNT}: after decomposition, use every safe useful child slot supported by the ready DAG, disjoint ownership, verifier/tool capacity, and actual host limits; the historical 4/6/8/16 task-class values are fallback hints, not clamps
|
|
@@ -212,7 +212,7 @@ function normalizedActiveMainModel(value) {
|
|
|
212
212
|
function renderSpawnModelRouting() {
|
|
213
213
|
return [
|
|
214
214
|
'- model routing applies to every child, including slices created after parent decomposition: gpt-6-astra only, with the selected role effort',
|
|
215
|
-
'- use sealed Astra Low/Astra Medium/Astra
|
|
215
|
+
'- use sealed Astra Low/Astra Medium/Astra Max role defaults across four task-class profiles; parent selection and saved non-Astra preferences never override the child model; explicit Astra effort preferences, including High, may override role defaults',
|
|
216
216
|
'- preserve the user-selected parent model, reasoning effort, and service tier'
|
|
217
217
|
].join('\n');
|
|
218
218
|
}
|
|
@@ -9,12 +9,20 @@ import { ASTRA_SUBAGENT_MODEL, SUBAGENT_MODEL_POLICIES } from './model-policy.js
|
|
|
9
9
|
export const ROLE_MODEL_PREFERENCES_SCHEMA = 'sks.role-model-preferences.v2';
|
|
10
10
|
const LEGACY_ROLE_MODEL_PREFERENCES_SCHEMA = 'sks.role-model-preferences.v1';
|
|
11
11
|
const ROLE_MODEL_PROFILE_PRESENTATION_LIMIT = 1_000;
|
|
12
|
-
export const SUPPORTED_ROLE_MODEL_PROFILES = Object.freeze(
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
export const SUPPORTED_ROLE_MODEL_PROFILES = Object.freeze([
|
|
13
|
+
...Object.values(SUBAGENT_MODEL_POLICIES).map((profile) => Object.freeze({
|
|
14
|
+
provider: 'openai',
|
|
15
|
+
model: profile.model,
|
|
16
|
+
reasoning_effort: profile.modelReasoningEffort,
|
|
17
|
+
source: 'managed-default'
|
|
18
|
+
})),
|
|
19
|
+
Object.freeze({
|
|
20
|
+
provider: 'openai',
|
|
21
|
+
model: ASTRA_SUBAGENT_MODEL,
|
|
22
|
+
reasoning_effort: 'high',
|
|
23
|
+
source: 'explicit-override'
|
|
24
|
+
})
|
|
25
|
+
]);
|
|
18
26
|
export function roleModelPreferencesPath(env = process.env) {
|
|
19
27
|
const sksHome = path.resolve(env.SKS_HOME || path.join(env.HOME || os.homedir(), '.sneakoscope'));
|
|
20
28
|
return path.join(sksHome, 'preferences', 'role-models.json');
|
package/dist/core/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const PACKAGE_VERSION = '10.1.
|
|
1
|
+
export const PACKAGE_VERSION = '10.1.6';
|
|
@@ -14,7 +14,7 @@ const implementation = await fs.promises.readFile(path.join(root, '.codex', 'age
|
|
|
14
14
|
const browser = await fs.promises.readFile(path.join(root, '.codex', 'agents', 'browser-use-operator.toml'), 'utf8');
|
|
15
15
|
assertGate(expert.includes('model = "gpt-6-astra"') && expert.includes('model_reasoning_effort = "max"'), 'expert role must use Astra Max');
|
|
16
16
|
assertGate(worker.includes('model = "gpt-6-astra"') && worker.includes('model_reasoning_effort = "low"'), 'worker role must use Astra Low');
|
|
17
|
-
assertGate(implementation.includes('model = "gpt-6-astra"') && implementation.includes('model_reasoning_effort = "
|
|
17
|
+
assertGate(implementation.includes('model = "gpt-6-astra"') && implementation.includes('model_reasoning_effort = "low"'), 'implementation role must use Astra Low');
|
|
18
18
|
assertGate(browser.includes('model = "gpt-6-astra"') && browser.includes('model_reasoning_effort = "medium"'), 'browser role must use Astra Medium');
|
|
19
19
|
assertGate(expert.includes('Do not spawn another subagent.') && worker.includes('Do not redesign the task, expand scope, or spawn another subagent.'), 'official roles must prohibit nested delegation');
|
|
20
20
|
assertGate(MANAGED_OFFICIAL_SUBAGENT_ROLES.length === 25, 'official role catalog must contain all 25 roles');
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sneakoscope",
|
|
3
3
|
"displayName": "ㅅㅋㅅ",
|
|
4
|
-
"version": "10.1.
|
|
4
|
+
"version": "10.1.6",
|
|
5
5
|
"description": "Sneakoscope Codex (`sks`) is an open-source trust layer for Codex CLI and ChatGPT Desktop. It coordinates bounded AI coding agents, records machine-verifiable evidence, preserves project memory, and blocks release claims that are not supported by current tests or artifacts. Search visibility outcomes are measured separately; SKS does not promise rankings or traffic.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"homepage": "https://github.com/mandarange/Sneakoscope-Codex#readme",
|