sneakoscope 10.6.1 → 10.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/README.md +2 -2
  2. package/config/perf-budgets.v1.json +1 -2
  3. package/config/skills-hash-ledger.v1.json +7 -2
  4. package/crates/sks-core/Cargo.lock +1 -1
  5. package/crates/sks-core/Cargo.toml +1 -1
  6. package/dist/bin/sks-dispatch.js +6 -3
  7. package/dist/cli/args.js +3 -1
  8. package/dist/cli/command-manifest-lite.js +48 -114
  9. package/dist/cli/command-registry.js +1 -18
  10. package/dist/cli/commands-fast.js +11 -4
  11. package/dist/cli/help-fast.js +11 -22
  12. package/dist/cli/help.js +3 -3
  13. package/dist/cli/install-helpers.js +1 -1
  14. package/dist/cli/router.js +12 -26
  15. package/dist/commands/codex-app.js +2 -2
  16. package/dist/commands/doctor-helpers.js +1 -1
  17. package/dist/commands/mad-sks.js +2 -2
  18. package/dist/config/skills-manifest.json +13 -8
  19. package/dist/core/agent-bridge/async-command.js +2 -2
  20. package/dist/core/agents/agent-recursion-guard.js +0 -2
  21. package/dist/core/auto-review.js +15 -172
  22. package/dist/core/code-structure.js +0 -1
  23. package/dist/core/codex-control/codex-reliability-shield.js +64 -15
  24. package/dist/core/codex-control/codex-sdk-adapter.js +38 -5
  25. package/dist/core/codex-lb/desktop-bridge/capacity-retry-advice.js +89 -0
  26. package/dist/core/codex-lb/desktop-bridge/compaction-adapter.js +4 -1
  27. package/dist/core/codex-lb/desktop-bridge/http-forward.js +14 -2
  28. package/dist/core/codex-lb/desktop-bridge/responses-websocket.js +9 -1
  29. package/dist/core/commands/agent-bridge-command.js +1 -1
  30. package/dist/core/commands/basic-cli.js +60 -233
  31. package/dist/core/commands/command-utils.js +1 -1
  32. package/dist/core/commands/gc-command.js +30 -29
  33. package/dist/core/commands/image-ux-review-command.js +1 -1
  34. package/dist/core/commands/install-package-command.js +1 -1
  35. package/dist/core/commands/intent-normalization/normalizer.js +2 -2
  36. package/dist/core/commands/pipeline-command.js +13 -5
  37. package/dist/core/commands/plan-command.js +2 -3
  38. package/dist/core/commands/research-command.js +0 -3
  39. package/dist/core/commands/review-command.js +1 -1
  40. package/dist/core/commands/seo-command.js +27 -20
  41. package/dist/core/commands/status-command.js +8 -2
  42. package/dist/core/doctor/command-alias-cleanup.js +6 -6
  43. package/dist/core/evaluation.js +1 -1
  44. package/dist/core/feature-fixtures.js +9 -43
  45. package/dist/core/feature-registry.js +9 -27
  46. package/dist/core/git-hygiene/shared-memory-publish.js +1 -1
  47. package/dist/core/hooks-runtime/stop-repeat-guard.js +0 -13
  48. package/dist/core/init/skills.js +5 -13
  49. package/dist/core/init.js +0 -9
  50. package/dist/core/install/installed-package-smoke.js +3 -1
  51. package/dist/core/perf/import-graph-budget.js +0 -1
  52. package/dist/core/perf/release-latency-slo.js +2 -30
  53. package/dist/core/pipeline-internals/pipeline-stage-builder.js +2 -4
  54. package/dist/core/pipeline-internals/runtime-core.js +2 -38
  55. package/dist/core/proof/route-proof-policy.js +2 -4
  56. package/dist/core/proof/runtime-truth-matrix.js +2 -2
  57. package/dist/core/proof-field.js +104 -39
  58. package/dist/core/questions.js +11 -7
  59. package/dist/core/release/gate-affected-globs.js +0 -2
  60. package/dist/core/research/research-reviewer-contract.js +34 -0
  61. package/dist/core/research/research-work-graph.js +1 -1
  62. package/dist/core/research.js +1 -1
  63. package/dist/core/routes/constants.js +0 -1
  64. package/dist/core/routes/diagnostic-allowlist.js +1 -3
  65. package/dist/core/routes/light-routes.js +1 -2
  66. package/dist/core/routes.js +1 -1
  67. package/dist/core/safety/command-contract/contracts.js +5 -1
  68. package/dist/core/search-visibility/marketing-truthfulness.js +10 -7
  69. package/dist/core/search-visibility/marketing.js +194 -149
  70. package/dist/core/skill-forge.js +1 -361
  71. package/dist/core/strategy/adhd-orchestrating-gate.js +3 -3
  72. package/dist/core/triwiki/context-graph/extractors/topology/commands.js +2 -6
  73. package/dist/core/triwiki-wrongness/wrongness-cli.js +9 -27
  74. package/dist/core/version.js +1 -1
  75. package/package.json +1 -2
  76. package/release-gates.v2.json +1 -32
  77. package/dist/cli/recallpulse-command.js +0 -144
  78. package/dist/commands/auto-review.js +0 -5
  79. package/dist/commands/codex-native.js +0 -77
  80. package/dist/commands/recallpulse.js +0 -5
  81. package/dist/core/codex-native/codex-native-interop-policy.js +0 -127
  82. package/dist/core/commands/autoresearch-command.js +0 -4
  83. package/dist/core/commands/code-structure-command.js +0 -52
  84. package/dist/core/commands/goal-command.js +0 -43
  85. package/dist/core/commands/recallpulse-command.js +0 -4
  86. package/dist/core/commands/remote-command.js +0 -119
  87. package/dist/core/commands/skill-dream-command.js +0 -43
  88. package/dist/core/commands/wrongness-command.js +0 -2
  89. package/dist/core/goal-workflow.js +0 -80
  90. package/dist/core/mcp/mcp-tool-name-normalizer.js +0 -28
  91. package/dist/core/recallpulse/policy.js +0 -207
  92. package/dist/core/recallpulse.js +0 -947
  93. package/dist/core/remote/audit-idempotency.js +0 -241
  94. package/dist/core/remote/index.js +0 -10
  95. package/dist/core/remote/machine-registry.js +0 -167
  96. package/dist/core/remote/owner-proof.js +0 -216
  97. package/dist/core/remote/protocol.js +0 -249
  98. package/dist/core/remote/readiness.js +0 -156
  99. package/dist/core/remote/session-index.js +0 -61
  100. package/dist/core/remote/session-snapshot.js +0 -197
  101. package/dist/core/remote/ssh-worker-client.js +0 -377
  102. package/dist/core/remote/types.js +0 -10
  103. package/dist/core/remote/worker.js +0 -360
  104. package/dist/core/search/context-graph-seeds.js +0 -15
  105. package/dist/core/verification/context-graph-affected.js +0 -312
  106. package/dist/core/verification/verification-artifact-lock.js +0 -21
  107. package/dist/core/verification/verification-dag.js +0 -89
  108. package/dist/core/verification/verification-result.js +0 -19
  109. package/dist/core/verification/verification-worker-pool.js +0 -204
package/README.md CHANGED
@@ -17,8 +17,8 @@
17
17
  Sneakoscope Codex (`sks`) is an open-source local tool for the Codex CLI and Codex desktop app. It adds a macOS control center, bounded agent workflows, repository context, and evidence checks for SKS releases.
18
18
  <!-- END SKS SEARCH VISIBILITY MARKETING -->
19
19
 
20
- Current package: **SKS 10.6.1**, prepared for npm publication.
21
- [Release notes](https://github.com/mandarange/Sneakoscope-Codex/releases/tag/v10.5.8)
20
+ Current package: **SKS 10.7.0**, prepared for npm publication.
21
+ [Latest release notes](https://github.com/mandarange/Sneakoscope-Codex/releases/latest)
22
22
  · [Changelog](CHANGELOG.md). Install the latest stable release from npm.
23
23
 
24
24
  Ordinary work stays with the main agent. Optional Jev decisions use OpenRouter
@@ -17,7 +17,6 @@
17
17
  { "id": "menubar_first_state_render", "budget_p95_ms": 250, "measured_runs": 5 },
18
18
  { "id": "control_center_open", "budget_p95_ms": 400, "measured_runs": 5 },
19
19
  { "id": "mcp_static_list", "budget_p95_ms": 250, "measured_runs": 9 },
20
- { "id": "update_cache_read", "budget_p95_ms": 50, "measured_runs": 15 },
21
- { "id": "ssh_worker_hello", "budget_p95_ms": 3000, "measured_runs": 5 }
20
+ { "id": "update_cache_read", "budget_p95_ms": 50, "measured_runs": 15 }
22
21
  ]
23
22
  }
@@ -4,6 +4,8 @@
4
4
  {
5
5
  "canonical_name": "sks",
6
6
  "trusted_sha256": [
7
+ "eb09af342c2f2bc3d269e6d1c2f92d718ed069582d1165bfe46600b5c2225a8b",
8
+ "32d97c9b68a0a97794f48bd2f200bb3c0cd68816c00fef3397e86df671342ac5",
7
9
  "d5adbf63047d4882258d70bb46017e4aa7b6d5804154c68ef4204d0e0e5916d6",
8
10
  "8aa34586ba331f0447668c2ce863fe6c9ec4f881828ebed26ca5ecc754d66840",
9
11
  "d0288d27c8bc1c89decb258c6805ed4286cd0d65371ef0eec453be233b39a2a1",
@@ -252,6 +254,7 @@
252
254
  {
253
255
  "canonical_name": "sks-help",
254
256
  "trusted_sha256": [
257
+ "3a20901121eb9a11a31ea797a44c8136a09f26f9862f52a923634aba0767dc0c",
255
258
  "17c2a63b163b266dc0d0a503a275d41a5388e1f44be9250b84017f1a549159d4",
256
259
  "8b6d7f0cffbd3b141f53a6937fb3d58ba363d495d6da561d8f463ee3b265d975",
257
260
  "0b67a2ed2eb1f3f80cf1645bee0c189ecc442d2ec84b1e0b218d800298487920"
@@ -373,6 +376,7 @@
373
376
  {
374
377
  "canonical_name": "sks-ppt",
375
378
  "trusted_sha256": [
379
+ "93887312718febbb795cab3d09b1d47a30485eee7c6416fb02c78c65ab5c4686",
376
380
  "a25e537ff49b5bffdc093a5f772a8d218003ca1bb81e0aa304561684a9551b31",
377
381
  "fba3f438b9f22dae0813cd12bf310539a7d2b71c8cd9322eb840514e24884eaf",
378
382
  "c9a0d90e12560dd3f04959869051370e6baf46eda6eb63f708ea1661c5c9d041",
@@ -404,6 +408,7 @@
404
408
  {
405
409
  "canonical_name": "sks-reasoning-router",
406
410
  "trusted_sha256": [
411
+ "00403fa829bc673966c2e125d5a2d42111ed6fd8c821b1f0e50176127658b888",
407
412
  "2ec66071b1c021e8c2ddd8f1ecefd16502c8325adab2c3c804a9e8d4123b1a8d",
408
413
  "b0f458caa1c3bd7bb7241a09b80fce5700aeb99b340e84c08a9b2b66bc875ba7",
409
414
  "41e14e8d5b93d743096664869ee68c41c86e911b0bbc165bdcd10e4a45faa4b6",
@@ -411,8 +416,7 @@
411
416
  "647f730520a1c7dc89c2642f5b8502624c65a861ae41aecf1fb137db40fd0611",
412
417
  "da0ddb58adc68ddeebdb9c45bf111c26eaa64d3e9dffe1dd39d7f30b943b8b88",
413
418
  "1595beabf2d31397217311fa1323bd62c801cf6c87db9029ff544c457efec8bb",
414
- "a7d879d157c6d5b6b81a67dba7b5b731ac18ea986841fe1ab2cafbd6623481c3",
415
- "dc0b8c6a4093269c2c36b58432b25409704d06fea8ca558f43b598625ca0d9de"
419
+ "a7d879d157c6d5b6b81a67dba7b5b731ac18ea986841fe1ab2cafbd6623481c3"
416
420
  ]
417
421
  },
418
422
  {
@@ -428,6 +432,7 @@
428
432
  {
429
433
  "canonical_name": "sks-release-review",
430
434
  "trusted_sha256": [
435
+ "dfc2af7dd2c41ab2529ed54b2dca0dfd85e2de0d3304afbfe4a420e6627ce01a",
431
436
  "36846d6180051c85e3093e7e405ad9d4d447f7295769f71f8450c18afee50e98",
432
437
  "bb6ef28431fd6c390041c9a2855b906fd01a1f6da02111f094258914cf826bb9",
433
438
  "7cf879a2efd61822d3dccd4eb69fb704bfbab4b114b820b6dfa0d13b5f20e9fa"
@@ -259,7 +259,7 @@ dependencies = [
259
259
 
260
260
  [[package]]
261
261
  name = "sks-core"
262
- version = "10.6.1"
262
+ version = "10.7.0"
263
263
  dependencies = [
264
264
  "globset",
265
265
  "grep-matcher",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "sks-core"
3
- version = "10.6.1"
3
+ version = "10.7.0"
4
4
  edition = "2021"
5
5
 
6
6
  [dependencies]
@@ -1,7 +1,10 @@
1
1
  async function runSks(args) {
2
- if (args[0] === 'commands' && args.includes('--json')) {
3
- const { commandsJsonFast } = await import('../cli/commands-fast.js');
4
- commandsJsonFast();
2
+ if (args[0] === 'commands' && !args.includes('--help') && !args.includes('-h')) {
3
+ const { commandsJsonFast, commandsTextFast } = await import('../cli/commands-fast.js');
4
+ if (args.includes('--json'))
5
+ commandsJsonFast();
6
+ else
7
+ commandsTextFast();
5
8
  }
6
9
  else if (args[0] === 'dollar-commands' && args.includes('--json')) {
7
10
  const { dollarCommandsJsonFast } = await import('../core/routes/dollar-manifest-lite.js');
package/dist/cli/args.js CHANGED
@@ -48,7 +48,9 @@ export function positionalArgs(args = []) {
48
48
  '--role',
49
49
  '--max-anchors',
50
50
  '--lines',
51
- '--dir'
51
+ '--dir',
52
+ '--intent',
53
+ '--changed'
52
54
  ]);
53
55
  for (let i = 0; i < args.length; i += 1) {
54
56
  const arg = String(args[i]);
@@ -1,7 +1,6 @@
1
- import { USAGE_TOPICS } from '../core/routes/constants.js';
2
1
  import { narutoCommandInputSchema } from '../core/subagents/naruto-command-input-contract.js';
3
2
  const COMMAND_MANIFEST_LITE_BASE = [
4
- { name: 'help', summary: 'Show SKS help', maturity: 'stable', readonly: true, skipMigrationGate: true, allowedDuringActiveRoute: true, diagnostic: true },
3
+ { name: 'help', summary: 'Show SKS help, or the usage of one command or $ route', maturity: 'stable', readonly: true, skipMigrationGate: true, allowedDuringActiveRoute: true, diagnostic: true },
5
4
  { name: 'version', summary: 'Show SKS version', maturity: 'stable', readonly: true, skipMigrationGate: true, allowedDuringActiveRoute: true, diagnostic: true },
6
5
  { name: 'commands', summary: 'List SKS commands', maturity: 'stable', readonly: true, skipMigrationGate: true, allowedDuringActiveRoute: true, diagnostic: true },
7
6
  { name: 'triwiki', summary: 'Inspect TriWiki index, affected graph, and proof bank', maturity: 'stable', skipMigrationGate: true },
@@ -15,26 +14,19 @@ const COMMAND_MANIFEST_LITE_BASE = [
15
14
  { name: 'update-check', summary: 'Show the shared SKS, Codex CLI, and Menu Bar update status', maturity: 'stable', readonly: true, skipMigrationGate: true, allowedDuringActiveRoute: true, diagnostic: true },
16
15
  { name: 'config', summary: 'Adopt project Codex config into SKS management', maturity: 'stable', skipMigrationGate: true },
17
16
  { name: 'mcp', summary: 'Manage scoped Codex MCP configuration', maturity: 'beta', skipMigrationGate: true },
18
- { name: 'usage', summary: 'Show focused usage topic', maturity: 'stable', readonly: true, skipMigrationGate: true, allowedDuringActiveRoute: true, diagnostic: true },
19
17
  { name: 'quickstart', summary: 'Show quickstart flow', maturity: 'stable' },
20
- { name: 'setup', summary: 'Initialize SKS state', maturity: 'stable', skipMigrationGate: true },
18
+ { name: 'setup', summary: 'Install SKS hooks, skills, and project files (--force rewrites them)', maturity: 'stable', skipMigrationGate: true },
21
19
  { name: 'bootstrap', summary: 'Initialize SKS project files', maturity: 'stable', skipMigrationGate: true },
22
- { name: 'init', summary: 'Initialize local control surface', maturity: 'stable' },
23
- { name: 'deps', summary: 'Check local dependencies', maturity: 'stable' },
24
- { name: 'fix-path', summary: 'Repair hook command paths', maturity: 'stable' },
25
20
  { name: 'doctor', summary: 'Check and repair SKS install', maturity: 'stable', skipMigrationGate: true, allowedDuringActiveRoute: true, diagnostic: true },
26
21
  { name: 'git', summary: 'Inspect and enforce SKS git collaboration hygiene', maturity: 'beta' },
27
22
  { name: 'paths', summary: 'Inspect SKS managed paths', maturity: 'beta', readonly: true, skipMigrationGate: true, allowedDuringActiveRoute: true, diagnostic: true },
28
- { name: 'postinstall', summary: 'Restore package state; bootstrap only with explicit opt-in', maturity: 'stable', skipMigrationGate: true },
23
+ { name: 'postinstall', summary: 'Restore package state; bootstrap only with explicit opt-in', maturity: 'stable', skipMigrationGate: true, hidden: true },
29
24
  { name: 'codex', summary: 'Check Codex CLI compatibility and vendored hook schemas', maturity: 'beta', skipMigrationGate: true },
30
25
  { name: 'codex-app', summary: 'Check Codex App readiness', maturity: 'beta', skipMigrationGate: true },
31
- { name: 'codex-native', summary: 'Inspect Codex Native broker and routing readiness', maturity: 'beta' },
32
26
  { name: 'bridge', summary: 'Manage the single Desktop Bridge runtime, provider profiles, catalog, and routes', maturity: 'beta', skipMigrationGate: true },
33
27
  { name: 'menubar', summary: 'Inspect/install/restart/uninstall SKS menu bar', maturity: 'beta', skipMigrationGate: true, allowedDuringActiveRoute: true, diagnostic: true },
34
- { name: 'remote', summary: 'Inspect official Remote readiness and run the proof-aware SSH stdio worker', maturity: 'beta' },
35
28
  { name: 'hooks', summary: 'Explain and inspect Codex hooks', maturity: 'beta', skipMigrationGate: true },
36
29
  { name: 'mad-sks', summary: 'MAD-SKS scoped permission modifier + SQL-plane execution', maturity: 'beta', mutatesRouteState: true, ownedGateFiles: ['mad-sks-gate.json'] },
37
- { name: 'auto-review', summary: 'Manage auto-review profile', maturity: 'beta' },
38
30
  { name: 'dollar-commands', summary: 'List Codex App dollar commands', maturity: 'stable', readonly: true, skipMigrationGate: true, allowedDuringActiveRoute: true, diagnostic: true },
39
31
  { name: 'fast-mode', summary: 'Toggle SKS Fast mode default for dollar-command routes', maturity: 'stable', skipMigrationGate: true },
40
32
  { name: 'commit', summary: 'Create a simple git commit', maturity: 'stable' },
@@ -43,36 +35,27 @@ const COMMAND_MANIFEST_LITE_BASE = [
43
35
  { name: 'naruto', summary: 'Run the $sks-naruto Codex official subagent workflow', maturity: 'labs', mutatesRouteState: true, ownedGateFiles: ['naruto-gate.json', 'stop-gate.json'] },
44
36
  { name: 'route', summary: 'Inspect or close active route state', maturity: 'beta', skipMigrationGate: true, allowedDuringActiveRoute: true, diagnostic: true },
45
37
  { name: 'qa-loop', summary: 'Run QA loop missions', maturity: 'beta', mutatesRouteState: true, ownedGateFiles: ['qa-gate.json'] },
46
- { name: 'research', summary: 'Run research missions', maturity: 'labs', mutatesRouteState: true, ownedGateFiles: ['research-gate.json'] },
47
- { name: 'autoresearch', summary: 'Alias for research/autoresearch route', maturity: 'labs', mutatesRouteState: true, ownedGateFiles: ['research-gate.json'] },
38
+ { name: 'research', summary: 'Run research missions (--autoresearch for the iterative experiment loop)', maturity: 'labs', mutatesRouteState: true, ownedGateFiles: ['research-gate.json'] },
48
39
  { name: 'ppt', summary: 'Inspect/build PPT artifacts', maturity: 'labs', mutatesRouteState: true, ownedGateFiles: ['ppt-gate.json'] },
49
40
  { name: 'image-ux-review', summary: 'Inspect image UX artifacts', maturity: 'labs', mutatesRouteState: true, ownedGateFiles: ['image-ux-review-gate.json'] },
50
41
  { name: 'computer-use', summary: 'Record native Mac/non-web Computer Use visual evidence', maturity: 'beta', mutatesRouteState: true, ownedGateFiles: ['computer-use-gate.json'] },
51
42
  { name: 'context7', summary: 'Context7 checks and docs', maturity: 'beta' },
52
43
  { name: 'super-search', summary: 'Run Super-Search provider-independent source intelligence', maturity: 'beta' },
53
44
  { name: 'search', summary: 'Local files/text/structure/symbol/context search engines', maturity: 'beta', readonly: true, skipMigrationGate: true, allowedDuringActiveRoute: true, diagnostic: true },
54
- { name: 'recallpulse', summary: 'RecallPulse evidence route', maturity: 'labs' },
55
45
  { name: 'pipeline', summary: 'Inspect pipeline missions and seal a paused route\'s answers', maturity: 'beta', skipMigrationGate: true, allowedDuringActiveRoute: true, diagnostic: true },
56
46
  { name: 'guard', summary: 'Check harness guard', maturity: 'beta' },
57
47
  { name: 'conflicts', summary: 'Check harness conflicts', maturity: 'beta' },
58
- { name: 'reasoning', summary: 'Show reasoning route', maturity: 'labs' },
59
- { name: 'aliases', summary: 'Show command aliases', maturity: 'stable' },
60
48
  { name: 'cleanup', summary: 'Permanently blank active TriWiki without retaining a previous generation', maturity: 'beta' },
61
49
  { name: 'align', summary: 'Create or replace TriWiki as a code-only repository navigation graph', maturity: 'beta', mutatesRouteState: true, ownedGateFiles: ['align-gate.json'] },
62
50
  { name: 'selftest', summary: 'Run local mock selftest', maturity: 'stable' },
63
- { name: 'goal', summary: 'Print stateless Codex native Goal controls', maturity: 'beta' },
64
51
  { name: 'seo-geo-optimizer', summary: 'Run unified SEO/GEO optimizer audit/plan/apply/verify plus research/strategy (--include-marketing) on the search-visibility kernel', maturity: 'beta' },
65
- { name: 'hook', summary: 'Codex hook entrypoint', maturity: 'beta', skipMigrationGate: true },
52
+ { name: 'hook', summary: 'Codex hook entrypoint', maturity: 'beta', skipMigrationGate: true, hidden: true },
66
53
  { name: 'proof', summary: 'Show and validate completion proof and the evidence behind it: route trust, stop gate, mission artifacts, H-Proof, proof field', maturity: 'beta', skipMigrationGate: true, allowedDuringActiveRoute: true, diagnostic: true },
67
- { name: 'wrongness', summary: 'Record and inspect TriWiki wrongness negative evidence', maturity: 'beta' },
68
- { name: 'skill-dream', summary: 'Track skill dream counters', maturity: 'labs' },
69
- { name: 'code-structure', summary: 'Scan source structure', maturity: 'labs' },
70
54
  { name: 'gx', summary: 'Render/validate GX cartridges', maturity: 'labs' },
71
55
  { name: 'eval', summary: 'Run eval reports', maturity: 'labs' },
72
- { name: 'wiki', summary: 'Manage TriWiki and image voxel ledgers', maturity: 'beta', skipMigrationGate: true, allowedDuringActiveRoute: true, diagnostic: true },
56
+ { name: 'wiki', summary: 'Manage TriWiki shards, image voxel ledgers, and wrongness memory', maturity: 'beta', skipMigrationGate: true, allowedDuringActiveRoute: true, diagnostic: true },
73
57
  { name: 'memory', summary: 'Project TriWiki memory, explicit Jev promotion, digest-bound forgetting, or bounded recall', maturity: 'beta' },
74
- { name: 'gc', summary: 'Compact/prune runtime state', maturity: 'labs', skipMigrationGate: true, allowedDuringActiveRoute: true, diagnostic: true },
75
- { name: 'stats', summary: 'Show storage stats', maturity: 'labs', readonly: true, skipMigrationGate: true, allowedDuringActiveRoute: true, diagnostic: true },
58
+ { name: 'gc', summary: 'Plan, apply, or report runtime-state retention and storage size', maturity: 'labs', skipMigrationGate: true, allowedDuringActiveRoute: true, diagnostic: true },
76
59
  { name: 'mcp-server', summary: 'Run a stdio MCP server exposing SKS commands as tools for MCP-capable agent hosts', maturity: 'beta', skipMigrationGate: true, allowedDuringActiveRoute: true },
77
60
  { name: 'agent-bridge', summary: 'Register SKS tools or run read-only tools with native Astra async calling', maturity: 'beta', readonly: true, skipMigrationGate: true, allowedDuringActiveRoute: true, diagnostic: true },
78
61
  { name: 'decision', summary: 'Manage optional Jev decisions through OpenRouter: status, enable, disable, probe, evaluate', maturity: 'labs', skipMigrationGate: true, allowedDuringActiveRoute: true },
@@ -91,7 +74,6 @@ const COMMAND_CONTRACT_OVERRIDES_LITE = {
91
74
  decision: { risk: 'R2', latency: 'long', supportsJson: true, remoteAllowed: false, inputProfile: 'json-only' },
92
75
  imagegen: { risk: 'R2', latency: 'long', supportsJson: true, remoteAllowed: false, inputProfile: 'json-only' },
93
76
  cleanup: { risk: 'R3', latency: 'long', supportsJson: true, remoteAllowed: false, inputProfile: 'json-only' },
94
- autoresearch: { latency: 'long' },
95
77
  bridge: { risk: 'R3', latency: 'long', supportsJson: true, remoteAllowed: false, inputProfile: 'json-only' },
96
78
  'commit-and-push': { risk: 'R3' },
97
79
  'computer-use': { latency: 'long' },
@@ -119,13 +101,10 @@ const COMMAND_CONTRACT_OVERRIDES_LITE = {
119
101
  risk: 'R0', latency: 'fast', supportsJson: true, remoteAllowed: true, inputProfile: 'proof', requiredCapabilities: ['proof.read', 'proof.trust', 'proof.stop-gate']
120
102
  },
121
103
  'qa-loop': { latency: 'long' },
122
- recallpulse: { latency: 'long' },
123
- remote: { risk: 'R2', latency: 'long', supportsJson: true, remoteAllowed: false, inputProfile: 'json-only' },
124
104
  research: { latency: 'long' },
125
105
  review: { risk: 'R1' },
126
- search: { risk: 'R0', latency: 'normal', supportsJson: true, remoteAllowed: true, inputProfile: 'json-only' },
127
- stats: {
128
- supportsJson: true, remoteAllowed: true, inputProfile: 'stats',
106
+ search: {
107
+ risk: 'R0', latency: 'normal', supportsJson: true, remoteAllowed: true, inputProfile: 'search',
129
108
  requiredCapabilities: ['project.fs.read']
130
109
  },
131
110
  status: {
@@ -141,8 +120,8 @@ const COMMAND_CONTRACT_OVERRIDES_LITE = {
141
120
  };
142
121
  const COMMAND_HELP_LITE = {
143
122
  help: {
144
- usage: 'sks help [topic]',
145
- description: 'Show CLI help or focused help for a topic.'
123
+ usage: 'sks help [command | \'$sks-<route>\']',
124
+ description: 'Show the command list, or the usage of one command (the same text as `sks <command> --help`) or one $ route.'
146
125
  },
147
126
  version: {
148
127
  usage: 'sks version | sks --version',
@@ -176,10 +155,6 @@ const COMMAND_HELP_LITE = {
176
155
  usage: 'sks review [--staged|--diff <ref>] [--fix] [--json]',
177
156
  description: 'Review a diff with machine-evidence findings sorted above LLM review notes.'
178
157
  },
179
- usage: {
180
- usage: `sks usage [${USAGE_TOPICS}]`,
181
- description: 'Print copy-ready workflows for common tasks.'
182
- },
183
158
  quickstart: {
184
159
  usage: 'sks quickstart',
185
160
  description: 'Show the shortest safe setup and verification flow.'
@@ -200,38 +175,22 @@ const COMMAND_HELP_LITE = {
200
175
  usage: 'sks uninstall [--dry-run] [--yes] [--keep-config] [--keep-data] [--purge-projects] [--json]',
201
176
  description: 'Remove SKS global skills, hooks, menu bar, state, temp files, and optional project residue while preserving user-owned content by default.'
202
177
  },
203
- deps: {
204
- usage: 'sks deps check [--json] [--yes]',
205
- description: 'Check Node/npm and Codex CLI readiness; pass --yes to repair missing Codex CLI tooling when supported.'
206
- },
207
178
  codex: {
208
179
  usage: 'sks codex compatibility|version|update-status [--refresh]|update|doctor|schema|current [--json]',
209
180
  description: 'Check Codex CLI compatibility/version/update status, run the official `codex update`, and inspect current manifest, capability, and hook-schema evidence.'
210
181
  },
211
182
  'codex-app': {
212
- usage: 'sks codex-app [check|status|restart|context-management [status|on|off]|context-1m [status|on|off]|product-design|chrome-extension|pat status|remote-control]',
213
- description: 'Check Codex App integration, Desktop Bridge readiness, Product Design plugin readiness, Codex Chrome Extension web verification readiness, PAT-safe status, first-party MCP/plugin readiness, Codex CLI remote-control availability, and the opt-in Codex 1M context window toggle (each model gets its largest supported window) with automatic Codex restart. Provider routing is managed only by sks bridge.'
214
- },
215
- 'codex-native': {
216
- usage: 'sks codex-native status|feature-broker|invocation-plan|init-deep [--json]',
217
- description: 'Inspect Codex Native feature broker readiness, invocation routing, and managed memory setup.'
183
+ usage: 'sks codex-app [check|status|restart|context-management [status|on|off]|context-1m [status|on|off]|product-design|chrome-extension|pat status|remote-control|harness-matrix|skill-sync|agent-role-sync|init-deep [--directory-local]|hook-lifecycle|execution-profile]',
184
+ description: 'Check Codex App integration, Desktop Bridge readiness, Product Design plugin readiness, Codex Chrome Extension web verification readiness, PAT-safe status, first-party MCP/plugin readiness, Codex CLI remote-control availability, managed skill and agent-role sync, project memory (init-deep), and the opt-in Codex 1M context window toggle (each model gets its largest supported window) with automatic Codex restart. Provider routing is managed only by sks bridge.'
218
185
  },
219
186
  hooks: {
220
187
  usage: 'sks hooks explain|status|trust-report|replay|codex-validate|warning-check ... [--json]',
221
188
  description: 'Explain Codex hook events, validate current vendored event output schemas, replay fixtures, and enforce warning-zero SKS hook policies.'
222
189
  },
223
- remote: {
224
- usage: 'sks remote readiness|machines|worker ... [--json]',
225
- description: 'Inspect official Codex Remote readiness and the allowlisted proof-aware SSH stdio worker surface.'
226
- },
227
190
  'mad-sks': {
228
191
  usage: 'sks mad-sks plan|run|apply|sql|apply-migration|status|close|rollback-apply ... | sks --mad [--high]',
229
192
  description: 'Open or inspect MAD-SKS scoped permission workflows, merged SQL-plane execution, and the native Codex permission launcher.'
230
193
  },
231
- 'auto-review': {
232
- usage: 'sks auto-review status|enable|start [--high] | sks --Auto-review --high',
233
- description: 'Enable Codex automatic approval review and launch the native Codex session with the auto-review profile.'
234
- },
235
194
  'dollar-commands': {
236
195
  usage: 'sks dollar-commands [--json]',
237
196
  description: 'List Codex App $ commands such as $sks-dfix and $sks-naruto.'
@@ -249,8 +208,8 @@ const COMMAND_HELP_LITE = {
249
208
  description: 'Stage current changes, create a simple git commit, and push without the full SKS pipeline.'
250
209
  },
251
210
  dfix: {
252
- usage: 'sks dfix',
253
- description: 'Explain $sks-dfix ultralight direct-fix mode.'
211
+ usage: 'sks dfix diagnose|plan|patch|verify|rollback-plan|proof|trust|fixture|status [--json]',
212
+ description: 'Run the DFix diagnose/plan/patch/verify loop for a small direct fix. The $sks-dfix skill itself needs no mission; this CLI records one.'
254
213
  },
255
214
  'qa-loop': {
256
215
  usage: 'sks qa-loop prepare|answer|run|status ...',
@@ -280,13 +239,17 @@ const COMMAND_HELP_LITE = {
280
239
  usage: 'sks search status|files|text|structure|symbol|context|benchmark|doctor [--json]',
281
240
  description: 'Local SearchProvider engines for files/text/structure/symbol/context (no required rg/ast-grep/fd).'
282
241
  },
283
- recallpulse: {
284
- usage: 'sks recallpulse run|status|eval|governance|checklist <mission-id|latest>',
285
- description: 'Run report-only RecallPulse active recall, durable status, proof capsule, evidence envelope, and governance checks.'
286
- },
287
242
  pipeline: {
288
- usage: 'sks pipeline status|resume|plan|answer ...',
289
- description: 'Inspect the active skill-first route, materialized execution plan, ambiguity gates, and completion gates.'
243
+ usage: 'sks pipeline status|plan [--json] | sks pipeline plan [mission-id|latest] [--route \'$sks-<route>\'] [--agents N|--force-agents|--no-agents] [--proof-field [--changed a,b]] [--json] | sks pipeline answer <mission-id|latest> (--stdin | <answers.json>) [--json]',
244
+ description: 'Inspect the active route and its plan, re-plan a mission (agent count, or --proof-field to size verification from the changed files and the project\'s own scripts), or seal the answers a paused route\'s ambiguity gate is waiting for.'
245
+ },
246
+ menubar: {
247
+ usage: 'sks menubar status|install [--no-launch]|restart|rollback [--no-launch]|uninstall [--json]',
248
+ description: 'Inspect, install, restart, roll back, or uninstall the SKS menu bar app (macOS).'
249
+ },
250
+ install: {
251
+ usage: 'sks install [--yes|--no-tui] (first install: npm exec --yes --package=sneakoscope@latest -- sneakoscope install)',
252
+ description: 'Install the exact packaged SKS version globally, then repair and verify the resolved CLI with its own sks doctor --fix.'
290
253
  },
291
254
  guard: {
292
255
  usage: 'sks guard check [--json]',
@@ -296,10 +259,6 @@ const COMMAND_HELP_LITE = {
296
259
  usage: 'sks conflicts check|prompt|cleanup --yes [--json]',
297
260
  description: 'Detect other Codex harnesses such as OMX/DCodex, print a cleanup prompt, or quarantine them automatically.'
298
261
  },
299
- aliases: {
300
- usage: 'sks aliases',
301
- description: 'Show command aliases and npm binary names.'
302
- },
303
262
  cleanup: {
304
263
  usage: 'sks cleanup plan|run|status|proof [--apply] [--json]',
305
264
  description: 'Permanently blank active TriWiki without retaining a previous generation; preserve source and audit history.'
@@ -312,10 +271,6 @@ const COMMAND_HELP_LITE = {
312
271
  usage: 'sks setup [--bootstrap] [--install-scope global|project] [--local-only] [--force] [--json]',
313
272
  description: 'Initialize SKS state, Codex App files, hooks, skills, and rules.'
314
273
  },
315
- 'fix-path': {
316
- usage: 'sks fix-path [--install-scope global|project] [--json]',
317
- description: 'Refresh hook commands with the resolved SKS binary path.'
318
- },
319
274
  doctor: {
320
275
  usage: 'sks doctor [--fix] [--local-only] [--json] [--install-scope global|project]',
321
276
  description: 'Check and repair SKS generated files, while blocking setup if another Codex harness is detected.'
@@ -328,25 +283,17 @@ const COMMAND_HELP_LITE = {
328
283
  usage: 'sks paths managed [--json]',
329
284
  description: 'List SKS-owned managed paths and rollback eligibility.'
330
285
  },
331
- init: {
332
- usage: 'sks init [--force] [--local-only] [--install-scope global|project]',
333
- description: 'Initialize the local SKS control surface.'
334
- },
335
286
  selftest: {
336
287
  usage: 'sks selftest [--mock]',
337
288
  description: 'Run local smoke tests without calling a model.'
338
289
  },
339
- goal: {
340
- usage: 'sks goal create|edit|pause|resume|clear|status ...',
341
- description: 'Print a detailed Codex native /goal command without creating SKS Goal state.'
342
- },
343
290
  'seo-geo-optimizer': {
344
291
  usage: 'sks seo-geo-optimizer [seo|geo] doctor|audit|research|strategy|plan|apply|verify|status|rollback|fixture [mission|latest] [--mode seo|geo] [--target auto|website|docs|package] [--include-marketing] [--json]',
345
292
  description: 'Run the unified SEO/GEO optimizer on the shared search-visibility kernel with mode-specific gates, marketing research/strategy, safe apply, and proof.'
346
293
  },
347
294
  research: {
348
- usage: 'sks research prepare|run|status ...',
349
- description: 'Run evidence-bound research missions with layered sources, independent review, paper, novelty, and falsification checks.'
295
+ usage: 'sks research prepare|run|status ... [--autoresearch]',
296
+ description: 'Run evidence-bound research missions with layered sources, independent review, paper, novelty, and falsification checks; --autoresearch runs the iterative experiment loop.'
350
297
  },
351
298
  proof: {
352
299
  usage: 'sks proof show|latest|validate|export|smoke|trust report|validate|status|explain [latest|mission-id]|artifacts [mission-id|latest] [--required a,b]|stop-gate [check] [--route r] [--mission id]|hproof check [mission-id|latest]|field scan [--intent "task"] [--json|--md]',
@@ -356,52 +303,32 @@ const COMMAND_HELP_LITE = {
356
303
  usage: 'sks eval run|compare|thresholds ...',
357
304
  description: 'Run deterministic context-quality and performance evidence checks.'
358
305
  },
359
- wrongness: {
360
- usage: 'sks wrongness list|show|add|resolve|summarize|validate|context|rules ...',
361
- description: 'Record, retrieve, and validate TriWiki wrongness memory: negative evidence, failed assumptions, stale proof, visual/DB/hook mismatches, and avoidance rules.'
362
- },
363
- 'skill-dream': {
364
- usage: 'sks skill-dream status|run|record [--json]',
365
- description: 'Track generated-skill usage in lightweight JSON and periodically report keep, merge, prune, and improvement candidates without deleting skills automatically.'
366
- },
367
- 'code-structure': {
368
- usage: 'sks code-structure scan [--json]',
369
- description: 'Scan handwritten source files for 1000/2000/3000-line structure gates and split-review exceptions.'
370
- },
371
306
  wiki: {
372
- usage: 'sks wiki coords|pack|refresh|publish|rebuild-index|validate|validate-shared|wrongness ...',
373
- 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.'
307
+ usage: 'sks wiki validate|validate-shared|publish|rebuild-index|rebuild-summary|prune|coords|pack|refresh ... | sks wiki wrongness list|show|add|resolve|summarize|validate|context|rules|publish ... | sks wiki image-ingest|anchor-add|relation-add|image-validate|image-summary ...',
308
+ description: 'Validate, publish, and inspect TriWiki shards and image voxel ledgers, and record or query wrongness memory: negative evidence, failed assumptions, stale proof, and avoidance rules. `refresh` and `pack` run `sks align run`, the one TriWiki writer.'
374
309
  },
375
310
  memory: {
376
- usage: 'sks memory build [--json] | sks memory gc [--dry-run] | sks memory promote --mission <id> --yes [--json] | sks memory forget --memory-id <id> --previous-digest <digest> [--json] | sks memory recall [--query <text>] [--high-risk] [--json]',
377
- description: 'Project TriWiki context-pack memory, explicitly promote a Jev mission intake, write a digest-bound tombstone, or read bounded canonical memory.'
311
+ usage: 'sks memory recall [--query <text>] [--high-risk] [--json] | sks memory promote --mission <id> --yes [--json] | sks memory forget --memory-id <id> --previous-digest <digest> [--json] | sks memory build [--json] | sks memory gc [--dry-run] [--json]',
312
+ description: 'Read bounded canonical memory, explicitly promote a Jev mission intake, write a digest-bound tombstone, project TriWiki memory into AGENTS.md (build), or run memory retention (gc).'
378
313
  },
379
314
  naruto: {
380
315
  usage: 'sks naruto run "task" [--agents N] [--max-threads N] [--trusted-project] [--json] | sks naruto status|subagents|proof [latest|M-...] [--json] | sks naruto execution status [--json] | sks naruto execution set --mode auto|current-session|standalone [--restart] [--json] | sks naruto parent-summary --mission M-... --stdin [--json]',
381
316
  description: 'Run or inspect the Codex official subagent workflow: an orchestrating parent (latest deep-tier standalone default), children on the newest model of their tier (Jev picks the tier on spawn when Jev mode is on), max_depth=1, and structured parent-thread completion evidence.'
382
317
  },
383
- reasoning: {
384
- usage: 'sks reasoning ["prompt"] [--json]',
385
- description: 'Show SKS temporary reasoning-effort routing: medium for simple tasks, high for logic, xhigh for research.'
386
- },
387
318
  gx: {
388
319
  usage: 'sks gx init|render|validate|drift|snapshot [name]',
389
320
  description: 'Create and verify deterministic SVG/HTML visual context cartridges.'
390
321
  },
391
322
  gc: {
392
- usage: 'sks gc [--dry-run] [--json]',
393
- description: 'Compact oversized logs and prune stale runtime artifacts.'
394
- },
395
- stats: {
396
- usage: 'sks stats [--full] [--json]',
397
- description: 'Show package and .sneakoscope storage size.'
323
+ usage: 'sks gc [plan|apply --yes|status [--full]] [--dry-run] [--json]',
324
+ description: 'Retention compacts or removes old missions and transient runtime files; `plan` previews it, `apply --yes` runs a reviewed plan. `status --full` also sizes the installed package.'
398
325
  },
399
326
  'mcp-server': {
400
327
  usage: 'sks mcp-server [--expose-exec] [--probe]',
401
328
  description: 'Run a modern stateless stdio MCP server exposing SKS read-only commands as tools for any MCP-capable agent host; --expose-exec also exposes non-read-only commands; --probe round-trips server/discover and tools/list, then exits.'
402
329
  },
403
330
  'agent-bridge': {
404
- usage: 'sks agent-bridge setup [--trusted-project] [--json] | async --prompt "task" [--tools status,stats] [--json]',
331
+ usage: 'sks agent-bridge setup [--trusted-project] [--json] | async --prompt "task" [--tools status,search] [--json]',
405
332
  description: 'Publish the agent-bridge manifest or run selected read-only SKS tools with native Astra Async tool calling through the registered Codex-LB bridge.'
406
333
  },
407
334
  decision: {
@@ -450,8 +377,13 @@ export function commandInputSchema(profile) {
450
377
  json: { type: 'boolean' }
451
378
  });
452
379
  }
453
- if (profile === 'stats')
454
- return objectSchema({ full: { type: 'boolean' }, json: { type: 'boolean' } });
380
+ if (profile === 'search') {
381
+ return objectSchema({
382
+ action: { type: 'string', enum: ['status', 'files', 'text', 'structure', 'symbol', 'context'] },
383
+ query: boundedString(1, 500),
384
+ json: { type: 'boolean' }
385
+ });
386
+ }
455
387
  if (profile === 'proof') {
456
388
  return objectSchema({
457
389
  action: { type: 'string', enum: ['show', 'latest', 'validate', 'route', 'trust', 'stop-gate'] },
@@ -471,9 +403,7 @@ function objectSchema(properties) {
471
403
  function boundedString(minLength, maxLength) {
472
404
  return { type: 'string', minLength, maxLength };
473
405
  }
474
- export const LEGACY_COMMAND_ALIASES_LITE = {};
475
406
  export const COMMAND_ALIASES_LITE = {
476
- ...LEGACY_COMMAND_ALIASES_LITE,
477
407
  '--help': 'help',
478
408
  '-h': 'help',
479
409
  '--version': 'version',
@@ -481,12 +411,16 @@ export const COMMAND_ALIASES_LITE = {
481
411
  '--mad': 'mad-sks',
482
412
  '--MAD': 'mad-sks',
483
413
  '--mad-sks': 'mad-sks',
484
- 'ux-review': 'image-ux-review',
485
- 'visual-review': 'image-ux-review',
486
- 'ui-ux-review': 'image-ux-review'
414
+ 'ux-review': 'image-ux-review'
487
415
  };
488
416
  export const COMMAND_MANIFEST_BY_NAME = Object.fromEntries(COMMAND_MANIFEST_LITE.map((entry) => [entry.name, entry]));
489
417
  export const COMMAND_NAME_SET = new Set(COMMAND_MANIFEST_LITE.map((entry) => entry.name));
490
418
  export function commandManifestNames() {
491
419
  return COMMAND_MANIFEST_LITE.map((entry) => entry.name).sort();
492
420
  }
421
+ export function visibleCommandManifest() {
422
+ return COMMAND_MANIFEST_LITE
423
+ .filter((entry) => entry.hidden !== true)
424
+ .slice()
425
+ .sort((a, b) => a.name.localeCompare(b.name));
426
+ }
@@ -1,4 +1,4 @@
1
- import { COMMAND_ALIASES_LITE, COMMAND_MANIFEST_BY_NAME, LEGACY_COMMAND_ALIASES_LITE, commandManifestNames } from './command-manifest-lite.js';
1
+ import { COMMAND_ALIASES_LITE, COMMAND_MANIFEST_BY_NAME, commandManifestNames } from './command-manifest-lite.js';
2
2
  import { argsCommand, command, commandArgsCommand, directCommand, noArgsCommand, subcommand } from './command-loaders.js';
3
3
  const basicModule = '../core/commands/basic-cli.js';
4
4
  const basicArgs = (exportName) => argsCommand(() => import(basicModule), exportName);
@@ -19,26 +19,19 @@ const COMMAND_LOADERS = {
19
19
  'update-check': command('dist/core/commands/basic-cli.js', basicArgs('updateCheckCommand')),
20
20
  config: command('dist/core/config-adopt/index.js', subcommand(() => import('../core/config-adopt/index.js'), 'configCommand', 'adopt')),
21
21
  mcp: command('dist/core/commands/mcp-config-command.js', argsCommand(() => import('../core/commands/mcp-config-command.js'), 'mcpConfigCommand')),
22
- usage: command('dist/core/commands/basic-cli.js', basicArgs('usageCommand')),
23
22
  quickstart: command('dist/core/commands/basic-cli.js', basicNoArgs('quickstartCommand')),
24
23
  setup: command('dist/core/commands/basic-cli.js', basicArgs('setupCommand')),
25
24
  bootstrap: command('dist/core/commands/basic-cli.js', basicArgs('bootstrapCommand')),
26
- init: command('dist/core/commands/basic-cli.js', basicArgs('initCommand')),
27
- deps: command('dist/core/commands/basic-cli.js', subcommand(() => import(basicModule), 'depsCommand', 'check')),
28
- 'fix-path': command('dist/core/commands/basic-cli.js', basicArgs('fixPathCommand')),
29
25
  doctor: command('dist/commands/doctor.js', directCommand(() => import('../commands/doctor.js'))),
30
26
  git: command('dist/commands/git.js', directCommand(() => import('../commands/git.js'))),
31
27
  paths: command('dist/core/commands/paths-command.js', argsCommand(() => import('../core/commands/paths-command.js'), 'pathsCommand')),
32
28
  postinstall: command('dist/core/commands/basic-cli.js', basicArgs('postinstallCommand')),
33
29
  codex: command('dist/commands/codex.js', directCommand(() => import('../commands/codex.js'))),
34
30
  'codex-app': command('dist/commands/codex-app.js', directCommand(() => import('../commands/codex-app.js'))),
35
- 'codex-native': command('dist/commands/codex-native.js', directCommand(() => import('../commands/codex-native.js'))),
36
31
  bridge: command('dist/commands/bridge.js', directCommand(() => import('../commands/bridge.js'))),
37
32
  menubar: command('dist/core/commands/menubar-command.js', subcommand(() => import('../core/commands/menubar-command.js'), 'menubarCommand', 'status')),
38
- remote: command('dist/core/commands/remote-command.js', argsCommand(() => import('../core/commands/remote-command.js'), 'remoteCommand')),
39
33
  hooks: command('dist/commands/hooks.js', directCommand(() => import('../commands/hooks.js'))),
40
34
  'mad-sks': command('dist/commands/mad-sks.js', directCommand(() => import('../commands/mad-sks.js'))),
41
- 'auto-review': command('dist/commands/auto-review.js', directCommand(() => import('../commands/auto-review.js'))),
42
35
  'dollar-commands': command('dist/core/commands/basic-cli.js', basicArgs('dollarCommandsCommand')),
43
36
  'fast-mode': command('dist/core/commands/fast-mode-command.js', argsCommand(() => import('../core/commands/fast-mode-command.js'), 'fastModeCommand')),
44
37
  commit: command('dist/commands/commit.js', directCommand(() => import('../commands/commit.js'))),
@@ -48,35 +41,26 @@ const COMMAND_LOADERS = {
48
41
  route: command('dist/core/commands/route-command.js', subcommand(() => import('../core/commands/route-command.js'), 'routeCommand', 'status')),
49
42
  'qa-loop': command('dist/core/commands/qa-loop-command.js', subcommand(() => import('../core/commands/qa-loop-command.js'), 'qaLoopCommand')),
50
43
  research: command('dist/core/commands/research-command.js', subcommand(() => import('../core/commands/research-command.js'), 'researchCommand')),
51
- autoresearch: command('dist/core/commands/autoresearch-command.js', subcommand(() => import('../core/commands/autoresearch-command.js'), 'autoresearchCommand', 'status')),
52
44
  ppt: command('dist/core/commands/ppt-command.js', commandArgsCommand(() => import('../core/commands/ppt-command.js'), 'pptCommand')),
53
45
  'image-ux-review': command('dist/core/commands/image-ux-review-command.js', commandArgsCommand(() => import('../core/commands/image-ux-review-command.js'), 'imageUxReviewCommand')),
54
46
  'computer-use': command('dist/core/commands/computer-use-command.js', commandArgsCommand(() => import('../core/commands/computer-use-command.js'), 'computerUseCommand')),
55
47
  context7: command('dist/cli/context7-command.js', subcommand(() => import('./context7-command.js'), 'context7Command', 'check')),
56
48
  'super-search': command('dist/cli/super-search-command.js', subcommand(() => import('./super-search-command.js'), 'superSearchCommand', 'doctor')),
57
49
  search: command('dist/commands/search.js', subcommand(() => import('../commands/search.js'), 'run', 'status')),
58
- recallpulse: command('dist/commands/recallpulse.js', directCommand(() => import('../commands/recallpulse.js'))),
59
50
  pipeline: command('dist/commands/pipeline.js', directCommand(() => import('../commands/pipeline.js'))),
60
51
  guard: command('dist/commands/guard.js', directCommand(() => import('../commands/guard.js'))),
61
52
  conflicts: command('dist/commands/conflicts.js', directCommand(() => import('../commands/conflicts.js'))),
62
- reasoning: command('dist/core/commands/basic-cli.js', basicArgs('reasoningCommand')),
63
- aliases: command('dist/core/commands/basic-cli.js', basicNoArgs('aliasesCommand')),
64
53
  cleanup: command('dist/core/commands/cleanup-command.js', subcommand(() => import('../core/commands/cleanup-command.js'), 'cleanupCommand', 'plan')),
65
54
  align: command('dist/core/commands/align-command.js', subcommand(() => import('../core/commands/align-command.js'), 'alignCommand', 'prepare')),
66
55
  selftest: command('dist/core/commands/basic-cli.js', basicArgs('selftestCommand')),
67
- goal: command('dist/core/commands/goal-command.js', subcommand(() => import('../core/commands/goal-command.js'), 'goalCommand')),
68
56
  'seo-geo-optimizer': command('dist/core/commands/seo-command.js', argsCommand(() => import('../core/commands/seo-command.js'), 'seoGeoOptimizerCommand')),
69
57
  hook: command('dist/commands/hook.js', directCommand(() => import('../commands/hook.js'))),
70
58
  proof: command('dist/commands/proof.js', directCommand(() => import('../commands/proof.js'))),
71
- wrongness: command('dist/core/commands/wrongness-command.js', argsCommand(() => import('../core/commands/wrongness-command.js'), 'wrongnessCommand')),
72
- 'skill-dream': command('dist/core/commands/skill-dream-command.js', subcommand(() => import('../core/commands/skill-dream-command.js'), 'skillDreamCommand', 'status')),
73
- 'code-structure': command('dist/core/commands/code-structure-command.js', subcommand(() => import('../core/commands/code-structure-command.js'), 'codeStructureCommand', 'scan')),
74
59
  eval: command('dist/core/commands/eval-command.js', subcommand(() => import('../core/commands/eval-command.js'), 'evalCommand', 'run')),
75
60
  gx: command('dist/core/commands/gx-command.js', subcommand(() => import('../core/commands/gx-command.js'), 'gxCommand', 'validate')),
76
61
  wiki: command('dist/commands/wiki.js', directCommand(() => import('../commands/wiki.js'))),
77
62
  memory: command('dist/commands/memory.js', directCommand(() => import('../commands/memory.js'))),
78
63
  gc: command('dist/core/commands/gc-command.js', gcArgs('gcCommand')),
79
- stats: command('dist/core/commands/gc-command.js', gcArgs('statsCommand')),
80
64
  'mcp-server': command('dist/core/commands/mcp-server-command.js', argsCommand(() => import('../core/commands/mcp-server-command.js'), 'mcpServerCommand')),
81
65
  'agent-bridge': command('dist/core/commands/agent-bridge-command.js', subcommand(() => import('../core/commands/agent-bridge-command.js'), 'agentBridgeCommand', 'setup')),
82
66
  decision: command('dist/commands/decision.js', directCommand(() => import('../commands/decision.js'))),
@@ -86,7 +70,6 @@ export const COMMANDS = Object.fromEntries(commandManifestNames().map((name) =>
86
70
  const { name: _name, ...metadata } = COMMAND_MANIFEST_BY_NAME[name];
87
71
  return [name, { ...metadata, ...COMMAND_LOADERS[name] }];
88
72
  }));
89
- export const LEGACY_COMMAND_ALIASES = LEGACY_COMMAND_ALIASES_LITE;
90
73
  export const COMMAND_ALIASES = COMMAND_ALIASES_LITE;
91
74
  export function commandNames() {
92
75
  return commandManifestNames();
@@ -1,4 +1,5 @@
1
- import { COMMAND_MANIFEST_LITE } from './command-manifest-lite.js';
1
+ import { COMMAND_MANIFEST_LITE, visibleCommandManifest } from './command-manifest-lite.js';
2
+ import { sksTextLogo } from './output.js';
2
3
  export function commandsJsonFast() {
3
4
  const commands = COMMAND_MANIFEST_LITE
4
5
  .map((entry) => fastCommandRow(entry))
@@ -9,10 +10,18 @@ export function commandsJsonFast() {
9
10
  commands
10
11
  }, null, 2));
11
12
  }
13
+ export function commandsTextFast() {
14
+ const commands = visibleCommandManifest();
15
+ console.log(`${sksTextLogo()}\n\nCommands\n`);
16
+ const width = Math.max(...commands.map((entry) => entry.name.length)) + 2;
17
+ for (const entry of commands)
18
+ console.log(`sks ${entry.name.padEnd(width)}${entry.summary}`);
19
+ console.log('\nRun `sks help <command>` for its usage.');
20
+ }
12
21
  function fastCommandRow(entry) {
13
22
  const row = {
14
23
  name: entry.name,
15
- usage: `sks ${entry.name}`,
24
+ usage: entry.usage || `sks ${entry.name}`,
16
25
  description: entry.summary,
17
26
  maturity: entry.maturity
18
27
  };
@@ -20,8 +29,6 @@ function fastCommandRow(entry) {
20
29
  row.readonly = true;
21
30
  if (entry.mutatesRouteState === true)
22
31
  row.mutating = true;
23
- if (entry.deprecated === true)
24
- row.deprecated = true;
25
32
  if (entry.hidden === true)
26
33
  row.hidden = true;
27
34
  return row;