@ornexus/neocortex 4.60.64 → 4.60.66

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 (87) hide show
  1. package/dist/release-source.json +1 -1
  2. package/dist/sbom.cdx.json +31 -38
  3. package/install.js +1 -0
  4. package/install.ps1 +34 -3
  5. package/install.sh +35 -3
  6. package/package.json +9 -5
  7. package/packages/client/dist/cli.js +1 -1
  8. package/packages/client/dist/commands/architecture-non-ui-continuation.js +1 -1
  9. package/packages/client/dist/commands/architecture-root-binding.js +1 -1
  10. package/packages/client/dist/commands/invoke.d.ts +1 -1
  11. package/packages/client/dist/commands/invoke.js +79 -78
  12. package/packages/client/dist/commands/mutation-qa-run.js +2 -2
  13. package/packages/client/dist/commands/qa-synthetic-backend-capture.js +1 -1
  14. package/packages/client/dist/commands/refactor-characterization.d.ts +3 -10
  15. package/packages/client/dist/commands/refactor-characterization.js +16 -16
  16. package/packages/client/dist/commands/refactor-control.d.ts +3 -11
  17. package/packages/client/dist/commands/refactor-control.js +3 -3
  18. package/packages/client/dist/commands/refactor-review.d.ts +0 -13
  19. package/packages/client/dist/commands/refactor-review.js +5 -6
  20. package/packages/client/dist/commands/refactor-root.d.ts +0 -157
  21. package/packages/client/dist/commands/refactor-root.js +7 -12
  22. package/packages/client/dist/commands/shared-architecture-non-ui.d.ts +18 -0
  23. package/packages/client/dist/commands/shared-architecture-non-ui.js +1 -0
  24. package/packages/client/dist/commands/story-checkpoint.d.ts +3 -1
  25. package/packages/client/dist/commands/story-checkpoint.js +1 -1
  26. package/packages/client/dist/git/direct-yolo-c01-retry.d.ts +21 -0
  27. package/packages/client/dist/git/direct-yolo-c01-retry.js +4 -0
  28. package/packages/client/dist/git/git-lifecycle-store.js +1 -1
  29. package/packages/client/dist/private-execution/clean-baseline.d.ts +2 -9
  30. package/packages/client/dist/private-execution/clean-baseline.js +2 -2
  31. package/packages/client/dist/private-execution/codex-executor.d.ts +1 -25
  32. package/packages/client/dist/private-execution/codex-executor.js +4 -9
  33. package/packages/client/dist/private-execution/delivery.d.ts +1 -2
  34. package/packages/client/dist/private-execution/delivery.js +3 -3
  35. package/packages/client/dist/private-execution/diagnosis-root-review.js +2 -2
  36. package/packages/client/dist/private-execution/frozen-handoff.js +4 -5
  37. package/packages/client/dist/private-execution/implementation-validation.d.ts +1 -10
  38. package/packages/client/dist/private-execution/implementation-validation.js +2 -2
  39. package/packages/client/dist/private-execution/isolated-admission.d.ts +2 -0
  40. package/packages/client/dist/private-execution/isolated-admission.js +16 -11
  41. package/packages/client/dist/private-execution/isolated-session.d.ts +1 -1
  42. package/packages/client/dist/private-execution/isolated-session.js +5 -5
  43. package/packages/client/dist/private-execution/root-memory-git-evidence.d.ts +1 -1
  44. package/packages/client/dist/private-execution/root-memory-git-evidence.js +3 -3
  45. package/packages/client/dist/private-execution/root-memory-recovery.d.ts +1 -1
  46. package/packages/client/dist/private-execution/root-memory-recovery.js +1 -1
  47. package/packages/client/dist/private-execution/root-memory-scope.d.ts +1 -1
  48. package/packages/client/dist/private-execution/root-memory-scope.js +1 -1
  49. package/packages/client/dist/private-execution/root-memory-writer.d.ts +1 -1
  50. package/packages/client/dist/private-execution/root-memory-writer.js +1 -1
  51. package/packages/client/dist/private-execution/shared-private-admission-types.d.ts +34 -0
  52. package/packages/client/dist/private-execution/shared-private-admission-types.js +1 -0
  53. package/packages/client/dist/private-execution/shared-project-validation.d.ts +17 -0
  54. package/packages/client/dist/private-execution/shared-project-validation.js +1 -0
  55. package/packages/client/dist/private-execution/shared-root-memory-types.d.ts +37 -0
  56. package/packages/client/dist/private-execution/shared-root-memory-types.js +1 -0
  57. package/packages/client/dist/private-execution/ux-source-validation.js +1 -1
  58. package/packages/client/dist/runner/binary.d.ts +1 -1
  59. package/packages/client/dist/runner/binary.js +1 -1
  60. package/packages/client/dist/runner/headless/opencode-adapter.js +2 -2
  61. package/packages/client/dist/runner-cli.js +0 -0
  62. package/packages/client/dist/yolo/invoke-envelope-capability.d.ts +16 -0
  63. package/packages/client/dist/yolo/invoke-envelope-capability.js +1 -0
  64. package/packages/client/dist/yolo/spec-envelope-collector.d.ts +7 -0
  65. package/packages/client/dist/yolo/spec-envelope-collector.js +3 -3
  66. package/packages/shared/dist/architecture-non-ui-scope.js +22 -0
  67. package/packages/shared/dist/architecture-public-topology.js +11 -0
  68. package/packages/shared/dist/project-validation-commands.js +10 -32
  69. package/packages/shared/dist/yolo/spec-envelope.js +2 -0
  70. package/targets-stubs/antigravity/gemini.md +1 -1
  71. package/targets-stubs/antigravity/skill/SKILL.md +1 -1
  72. package/targets-stubs/claude-code/neocortex-root.agent.yaml +1 -1
  73. package/targets-stubs/claude-code/neocortex-root.md +2 -2
  74. package/targets-stubs/claude-code/neocortex.agent.yaml +1 -1
  75. package/targets-stubs/claude-code/neocortex.md +2 -2
  76. package/targets-stubs/codex/AGENTS.md +1 -1
  77. package/targets-stubs/cursor/agent.md +2 -2
  78. package/targets-stubs/deepseek-harness/SKILL.md +64 -0
  79. package/targets-stubs/gemini-cli/agent.md +2 -2
  80. package/targets-stubs/opencode/neocortex-root.md +1 -1
  81. package/targets-stubs/vscode/neocortex.agent.md +2 -2
  82. package/packages/client/dist/commands/shared-architecture-non-ui-contract.d.ts +0 -19
  83. package/packages/client/dist/commands/shared-architecture-non-ui-contract.js +0 -1
  84. package/packages/shared/dist/invocation/packed-invoke.d.ts +0 -12
  85. package/packages/shared/dist/invocation/packed-invoke.js +0 -58
  86. package/packages/shared/dist/invocation/packed-invoke.test.d.ts +0 -1
  87. package/packages/shared/dist/invocation/packed-invoke.test.js +0 -21
@@ -1 +1 @@
1
- {"schemaVersion":1,"sourceRevision":"679552f191d498e43109ae2dda12ef9b940e969a","version":"4.60.64"}
1
+ {"schemaVersion":1,"sourceRevision":"cd38a2c0a2afeb33cef082c326954185a84d520a","version":"4.60.66"}
@@ -1125,28 +1125,21 @@
1125
1125
  "version": "2.0.2"
1126
1126
  },
1127
1127
  {
1128
- "bom-ref": "@modelcontextprotocol/sdk@1.31.0",
1128
+ "bom-ref": "@modelcontextprotocol/sdk@1.32.1",
1129
1129
  "externalReferences": [
1130
1130
  {
1131
1131
  "comment": "as detected from npm-ls property \"resolved\" and property \"integrity\"",
1132
1132
  "hashes": [
1133
1133
  {
1134
1134
  "alg": "SHA-512",
1135
- "content": "52f4cc8273659c804eff6da86f645c5460e572f3ac950b3c4f9f7e15319d0342f6edadfd7dd185fc40c44cdb4354ae03646a70a2696c62945d03c5177152ffa7"
1135
+ "content": "d83744f92243b732c4116cd8d598d8ed0f9570f85c5752a2b03df3238bb45d9ca4b6c8c7ba6d66c1b308f896ae954062d8e664f8a2408b6b8f5f3c627213e477"
1136
1136
  }
1137
1137
  ],
1138
1138
  "type": "distribution",
1139
- "url": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.31.0.tgz"
1139
+ "url": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.32.1.tgz"
1140
1140
  }
1141
1141
  ],
1142
1142
  "group": "@modelcontextprotocol",
1143
- "licenses": [
1144
- {
1145
- "license": {
1146
- "id": "MIT"
1147
- }
1148
- }
1149
- ],
1150
1143
  "name": "sdk",
1151
1144
  "properties": [
1152
1145
  {
@@ -1154,12 +1147,12 @@
1154
1147
  "value": "node_modules/@modelcontextprotocol/sdk"
1155
1148
  }
1156
1149
  ],
1157
- "purl": "pkg:npm/%40modelcontextprotocol/sdk@1.31.0",
1150
+ "purl": "pkg:npm/%40modelcontextprotocol/sdk@1.32.1",
1158
1151
  "type": "library",
1159
- "version": "1.31.0"
1152
+ "version": "1.32.1"
1160
1153
  },
1161
1154
  {
1162
- "bom-ref": "@neocortex/client@4.60.64",
1155
+ "bom-ref": "@neocortex/client@4.60.66",
1163
1156
  "group": "@neocortex",
1164
1157
  "name": "client",
1165
1158
  "properties": [
@@ -1168,9 +1161,9 @@
1168
1161
  "value": "node_modules/@neocortex/client"
1169
1162
  }
1170
1163
  ],
1171
- "purl": "pkg:npm/%40neocortex/client@4.60.64",
1164
+ "purl": "pkg:npm/%40neocortex/client@4.60.66",
1172
1165
  "type": "library",
1173
- "version": "4.60.64"
1166
+ "version": "4.60.66"
1174
1167
  },
1175
1168
  {
1176
1169
  "bom-ref": "@neocortex/core@0.1.0",
@@ -1187,7 +1180,7 @@
1187
1180
  "version": "0.1.0"
1188
1181
  },
1189
1182
  {
1190
- "bom-ref": "@neocortex/server@4.60.64",
1183
+ "bom-ref": "@neocortex/server@4.60.66",
1191
1184
  "group": "@neocortex",
1192
1185
  "name": "server",
1193
1186
  "properties": [
@@ -1196,12 +1189,12 @@
1196
1189
  "value": "node_modules/@neocortex/server"
1197
1190
  }
1198
1191
  ],
1199
- "purl": "pkg:npm/%40neocortex/server@4.60.64",
1192
+ "purl": "pkg:npm/%40neocortex/server@4.60.66",
1200
1193
  "type": "library",
1201
- "version": "4.60.64"
1194
+ "version": "4.60.66"
1202
1195
  },
1203
1196
  {
1204
- "bom-ref": "@neocortex/shared@4.60.64",
1197
+ "bom-ref": "@neocortex/shared@4.60.66",
1205
1198
  "group": "@neocortex",
1206
1199
  "name": "shared",
1207
1200
  "properties": [
@@ -1210,9 +1203,9 @@
1210
1203
  "value": "node_modules/@neocortex/shared"
1211
1204
  }
1212
1205
  ],
1213
- "purl": "pkg:npm/%40neocortex/shared@4.60.64",
1206
+ "purl": "pkg:npm/%40neocortex/shared@4.60.66",
1214
1207
  "type": "library",
1215
- "version": "4.60.64"
1208
+ "version": "4.60.66"
1216
1209
  },
1217
1210
  {
1218
1211
  "bom-ref": "@opentelemetry/api-logs@0.214.0",
@@ -9659,11 +9652,11 @@
9659
9652
  "@babel/parser@7.29.7",
9660
9653
  "@clack/prompts@0.11.0",
9661
9654
  "@hono/node-server@1.19.17",
9662
- "@modelcontextprotocol/sdk@1.31.0",
9663
- "@neocortex/client@4.60.64",
9655
+ "@modelcontextprotocol/sdk@1.32.1",
9656
+ "@neocortex/client@4.60.66",
9664
9657
  "@neocortex/core@0.1.0",
9665
- "@neocortex/server@4.60.64",
9666
- "@neocortex/shared@4.60.64",
9658
+ "@neocortex/server@4.60.66",
9659
+ "@neocortex/shared@4.60.66",
9667
9660
  "axe-core@4.14.0",
9668
9661
  "better-sqlite3@11.10.0",
9669
9662
  "execa@9.6.1",
@@ -9674,12 +9667,12 @@
9674
9667
  "yaml@2.9.0",
9675
9668
  "zod@4.4.3"
9676
9669
  ],
9677
- "ref": "@ornexus/neocortex@4.60.64"
9670
+ "ref": "@ornexus/neocortex@4.60.66"
9678
9671
  },
9679
9672
  {
9680
9673
  "dependsOn": [
9681
9674
  "@babel/parser@7.29.7",
9682
- "@neocortex/shared@4.60.64",
9675
+ "@neocortex/shared@4.60.66",
9683
9676
  "axe-core@4.14.0",
9684
9677
  "better-sqlite3@11.10.0",
9685
9678
  "jose@6.2.2",
@@ -9687,7 +9680,7 @@
9687
9680
  "playwright-core@1.55.0",
9688
9681
  "yaml@2.9.0"
9689
9682
  ],
9690
- "ref": "@neocortex/client@4.60.64"
9683
+ "ref": "@neocortex/client@4.60.66"
9691
9684
  },
9692
9685
  {
9693
9686
  "dependsOn": [
@@ -9742,7 +9735,7 @@
9742
9735
  "@fastify/jwt@10.2.2",
9743
9736
  "@fastify/rate-limit@10.3.0",
9744
9737
  "@fastify/static@10.1.3",
9745
- "@neocortex/shared@4.60.64",
9738
+ "@neocortex/shared@4.60.66",
9746
9739
  "@sentry/node@10.62.0",
9747
9740
  "bcryptjs@3.0.3",
9748
9741
  "drizzle-orm@0.45.2",
@@ -9755,7 +9748,7 @@
9755
9748
  "stripe@20.4.1",
9756
9749
  "yaml@2.9.0"
9757
9750
  ],
9758
- "ref": "@neocortex/server@4.60.64"
9751
+ "ref": "@neocortex/server@4.60.66"
9759
9752
  },
9760
9753
  {
9761
9754
  "dependsOn": [
@@ -9838,7 +9831,7 @@
9838
9831
  "zod-to-json-schema@3.25.1",
9839
9832
  "zod@4.4.3"
9840
9833
  ],
9841
- "ref": "@modelcontextprotocol/sdk@1.31.0"
9834
+ "ref": "@modelcontextprotocol/sdk@1.32.1"
9842
9835
  },
9843
9836
  {
9844
9837
  "dependsOn": [
@@ -9876,7 +9869,7 @@
9876
9869
  },
9877
9870
  {
9878
9871
  "dependsOn": [
9879
- "@neocortex/shared@4.60.64"
9872
+ "@neocortex/shared@4.60.66"
9880
9873
  ],
9881
9874
  "ref": "@neocortex/core@0.1.0"
9882
9875
  },
@@ -10936,7 +10929,7 @@
10936
10929
  "ref": "@lukeed/ms@2.0.2"
10937
10930
  },
10938
10931
  {
10939
- "ref": "@neocortex/shared@4.60.64"
10932
+ "ref": "@neocortex/shared@4.60.66"
10940
10933
  },
10941
10934
  {
10942
10935
  "ref": "@opentelemetry/api@1.9.1"
@@ -11425,8 +11418,8 @@
11425
11418
  "metadata": {
11426
11419
  "component": {
11427
11420
  "author": "OrNexus Team",
11428
- "bom-ref": "@ornexus/neocortex@4.60.64",
11429
- "description": "Neocortex v4.60.64 - Orquestrador de Desenvolvimento de Epics & Stories para Claude Code",
11421
+ "bom-ref": "@ornexus/neocortex@4.60.66",
11422
+ "description": "Neocortex v4.60.66 - Orquestrador de Desenvolvimento de Epics & Stories para Claude Code",
11430
11423
  "externalReferences": [
11431
11424
  {
11432
11425
  "comment": "as detected from PackageJson property \"bugs.url\"",
@@ -11459,9 +11452,9 @@
11459
11452
  "value": ""
11460
11453
  }
11461
11454
  ],
11462
- "purl": "pkg:npm/%40ornexus/neocortex@4.60.64?vcs_url=git%2Bhttps%3A%2F%2Fgithub.com%2FOrNexus-AI%2Fneocortex.git",
11455
+ "purl": "pkg:npm/%40ornexus/neocortex@4.60.66?vcs_url=git%2Bhttps%3A%2F%2Fgithub.com%2FOrNexus-AI%2Fneocortex.git",
11463
11456
  "type": "application",
11464
- "version": "4.60.64"
11457
+ "version": "4.60.66"
11465
11458
  },
11466
11459
  "tools": {
11467
11460
  "components": [
@@ -11532,7 +11525,7 @@
11532
11525
  {
11533
11526
  "name": "npm",
11534
11527
  "type": "application",
11535
- "version": "11.10.1"
11528
+ "version": "9.2.0"
11536
11529
  }
11537
11530
  ]
11538
11531
  }
package/install.js CHANGED
@@ -37,6 +37,7 @@ const PLATFORMS = [
37
37
  { name: 'OpenCode', key: 'opencode', tier: 2, default: false, detect: 'opencode', label: 'Tier 2 - CLI Pipeline' },
38
38
  { name: 'Kimi Code CLI', key: 'kimi', tier: 3, default: false, detect: 'kimi', label: 'Tier 3 - Agent-Directed' },
39
39
  { name: 'OpenClaw', key: 'openclaw', tier: 3, default: false, detect: 'openclaw', label: 'Tier 3 - Skill Thin-Client' },
40
+ { name: 'DeepSeek Harness', key: 'deepseek-harness', tier: 3, default: false, detect: 'dsh', label: 'Tier 3 - Skill Thin-Client' },
40
41
  ];
41
42
 
42
43
  // ═══════════════════════════════════════════════════════════════════
package/install.ps1 CHANGED
@@ -17,7 +17,7 @@ param(
17
17
  [string]$ServerUrl = ('https://{0}.{1}.{2}' -f 'api','neocortex','sh')
18
18
  )
19
19
 
20
- $VERSION = "4.60.64"
20
+ $VERSION = "4.60.66"
21
21
 
22
22
  # =============================================================================
23
23
  # CONFIGURACOES
@@ -73,7 +73,7 @@ if ($Help) {
73
73
  Write-Host " -Debug Modo debug" -ForegroundColor Cyan
74
74
  Write-Host " -Help Mostra esta ajuda" -ForegroundColor Cyan
75
75
  Write-Host ""
76
- Write-Host " Plataformas: claude-code, cursor, vscode, gemini, gemini-cli, codex, grok, antigravity, opencode, kimi, openclaw" -ForegroundColor DarkGray
76
+ Write-Host " Plataformas: claude-code, cursor, vscode, gemini, gemini-cli, codex, grok, antigravity, opencode, kimi, openclaw, deepseek-harness" -ForegroundColor DarkGray
77
77
  exit 0
78
78
  }
79
79
 
@@ -174,6 +174,11 @@ function Show-TargetResolutionDryRun {
174
174
  Write-Info "Dry-run Skill target=openclaw file=$(Join-Path $openClawHome 'skills\neocortex\SKILL.md') action=copy-skill-preserve-openclaw-json config=$(Join-Path $openClawHome 'openclaw.json') non-overwrite"
175
175
  Write-Info "Dry-run project target=openclaw file=.openclaw\skills\neocortex\SKILL.md action=copy-skill-when-create-project"
176
176
  }
177
+ "deepseek-harness" {
178
+ $dshHome = if ($env:DSH_HOME) { $env:DSH_HOME } else { Join-Path $HOME ".dsh" }
179
+ Write-Info "Dry-run Skill target=deepseek-harness file=$(Join-Path $dshHome 'skills\neocortex\SKILL.md') action=managed-copy"
180
+ Write-Info "Dry-run project target=deepseek-harness file=.dsh\skills\neocortex\SKILL.md action=copy-skill-when-create-project"
181
+ }
177
182
  }
178
183
  } else {
179
184
  Write-Info "Dry-run target=$target adapter=NOT_FOUND"
@@ -1364,7 +1369,7 @@ function Report-CodeRabbitStatus {
1364
1369
  # MULTI-TARGET SUPPORT
1365
1370
  # =============================================================================
1366
1371
 
1367
- $script:ValidTargets = @("claude-code", "cursor", "vscode", "gemini", "gemini-cli", "codex", "grok", "antigravity", "opencode", "kimi", "openclaw")
1372
+ $script:ValidTargets = @("claude-code", "cursor", "vscode", "gemini", "gemini-cli", "codex", "grok", "antigravity", "opencode", "kimi", "openclaw", "deepseek-harness")
1368
1373
  $script:SelectedTargets = @()
1369
1374
  $script:TargetResults = @()
1370
1375
  $script:TargetCount = 0
@@ -1625,6 +1630,22 @@ function Install-Targets {
1625
1630
  $script:TargetResults += "$target`:SKIP"
1626
1631
  }
1627
1632
  }
1633
+ "deepseek-harness" {
1634
+ $dshTargetDir = Resolve-TargetDir -Target "deepseek-harness"
1635
+ $dshHome = if ($env:DSH_HOME) { $env:DSH_HOME } else { Join-Path $homeDir ".dsh" }
1636
+ $skillSource = if ($dshTargetDir) { Join-Path $dshTargetDir "SKILL.md" } else { $null }
1637
+ if ($skillSource -and (Test-Path $skillSource -PathType Leaf)) {
1638
+ $skillDestDir = Join-Path $dshHome "skills\neocortex"
1639
+ New-Item -ItemType Directory -Path $skillDestDir -Force | Out-Null
1640
+ Copy-ManagedFile -Source $skillSource -Destination (Join-Path $skillDestDir "SKILL.md") -ManagedId "profile-deepseek-harness-skill" -BaseDir $dshHome | Out-Null
1641
+ Write-Ok "deepseek-harness (Skill thin-client)"
1642
+ $script:TargetResults += "$target`:OK"
1643
+ $script:TargetCount++
1644
+ } else {
1645
+ Write-Warn "deepseek-harness (Skill stub nao encontrado: $skillSource)"
1646
+ $script:TargetResults += "$target`:SKIP"
1647
+ }
1648
+ }
1628
1649
  default {
1629
1650
  Write-Warn "'$target' nao reconhecido"
1630
1651
  $script:TargetResults += "$target`:SKIP"
@@ -1830,6 +1851,16 @@ function New-ProjectDirectories {
1830
1851
  $targetSummary += "openclaw"
1831
1852
  }
1832
1853
  }
1854
+ "deepseek-harness" {
1855
+ $dshTargetDir = Resolve-TargetDir -Target "deepseek-harness"
1856
+ $skillSource = if ($dshTargetDir) { Join-Path $dshTargetDir "SKILL.md" } else { $null }
1857
+ if ($skillSource -and (Test-Path $skillSource -PathType Leaf)) {
1858
+ $skillDestDir = "$projectDir\.dsh\skills\neocortex"
1859
+ New-Item -ItemType Directory -Path $skillDestDir -Force | Out-Null
1860
+ Copy-ManagedFile -Source $skillSource -Destination "$skillDestDir\SKILL.md" -ManagedId "project-deepseek-harness-skill" -BaseDir $projectDir | Out-Null
1861
+ $targetSummary += "deepseek-harness"
1862
+ }
1863
+ }
1833
1864
  }
1834
1865
  }
1835
1866
 
package/install.sh CHANGED
@@ -4,7 +4,7 @@
4
4
  # Development Orchestrator
5
5
 
6
6
  # Versao do instalador
7
- VERSION="4.60.64"
7
+ VERSION="4.60.66"
8
8
 
9
9
  # Flags
10
10
  MIGRATION_DETECTED=false
@@ -13,7 +13,7 @@ CODERABBIT_INSTALLED=false
13
13
  LEGACY_ITEMS=""
14
14
  LEGACY_WARNINGS=0
15
15
  SELECTED_TARGETS=""
16
- VALID_TARGETS="claude-code cursor vscode gemini gemini-cli codex grok antigravity opencode kimi openclaw"
16
+ VALID_TARGETS="claude-code cursor vscode gemini gemini-cli codex grok antigravity opencode kimi openclaw deepseek-harness"
17
17
  # LOCAL_MODE removed (Epic 50): thin-client ALWAYS, zero IP on client
18
18
  # SSoT: packages/client/src/constants.ts DEFAULT_SERVER_URL
19
19
  NEOCORTEX_SERVER_URL="${NEOCORTEX_SERVER_URL:-$(printf '%s://%s.%s.%s' 'https' 'api' 'neocortex' 'sh')}"
@@ -84,7 +84,7 @@ while [[ $# -gt 0 ]]; do
84
84
  echo " -d, --debug Modo debug"
85
85
  echo " -h, --help Mostra esta ajuda"
86
86
  echo ""
87
- echo " Plataformas: claude-code, cursor, vscode, gemini, gemini-cli, codex, grok, antigravity, opencode, kimi, openclaw"
87
+ echo " Plataformas: claude-code, cursor, vscode, gemini, gemini-cli, codex, grok, antigravity, opencode, kimi, openclaw, deepseek-harness"
88
88
  exit 0
89
89
  ;;
90
90
  *) shift ;;
@@ -879,6 +879,10 @@ show_target_resolution_dry_run() {
879
879
  info "Dry-run Skill target=openclaw file=${OPENCLAW_HOME:-$HOME/.openclaw}/skills/neocortex/SKILL.md action=copy-skill-preserve-openclaw-json config=${OPENCLAW_HOME:-$HOME/.openclaw}/openclaw.json non-overwrite"
880
880
  info "Dry-run project target=openclaw file=.openclaw/skills/neocortex/SKILL.md action=copy-skill-when-create-project"
881
881
  ;;
882
+ deepseek-harness)
883
+ info "Dry-run Skill target=deepseek-harness file=${DSH_HOME:-$HOME/.dsh}/skills/neocortex/SKILL.md action=managed-copy"
884
+ info "Dry-run project target=deepseek-harness file=.dsh/skills/neocortex/SKILL.md action=copy-skill-when-create-project"
885
+ ;;
882
886
  esac
883
887
  else
884
888
  info "Dry-run target=$target adapter=NOT_FOUND"
@@ -1270,6 +1274,26 @@ install_targets() {
1270
1274
  fi
1271
1275
  continue
1272
1276
  ;;
1277
+ deepseek-harness)
1278
+ local dsh_target="$SOURCE_DIR/targets-stubs/deepseek-harness"
1279
+ local dsh_home="${DSH_HOME:-$HOME/.dsh}"
1280
+ local dsh_dest="$dsh_home/skills/neocortex"
1281
+ if [ -f "$dsh_target/SKILL.md" ]; then
1282
+ mkdir -p "$dsh_dest" 2>/dev/null
1283
+ if managed_copy_file "$dsh_target/SKILL.md" "$dsh_dest/SKILL.md" "profile-deepseek-harness-skill" "$dsh_home"; then
1284
+ target_results+=("$target:OK")
1285
+ ((target_count++))
1286
+ ok "${BOLD}deepseek-harness${NC} ${DIM}(Skill thin-client)${NC}"
1287
+ else
1288
+ target_results+=("$target:SKIP")
1289
+ warn "deepseek-harness ${DIM}(falha ao copiar Skill para $dsh_dest/SKILL.md)${NC}"
1290
+ fi
1291
+ else
1292
+ target_results+=("$target:SKIP")
1293
+ warn "deepseek-harness ${DIM}(Skill stub nao encontrado: $dsh_target/SKILL.md)${NC}"
1294
+ fi
1295
+ continue
1296
+ ;;
1273
1297
  esac
1274
1298
 
1275
1299
  if ! adapter_script=$(resolve_target_adapter_script "$target"); then
@@ -1847,6 +1871,14 @@ create_project_dirs() {
1847
1871
  target_summary="${target_summary}openclaw, "
1848
1872
  fi
1849
1873
  ;;
1874
+ deepseek-harness)
1875
+ local dsh_target="$SOURCE_DIR/targets-stubs/deepseek-harness"
1876
+ if [ -f "$dsh_target/SKILL.md" ]; then
1877
+ mkdir -p "$project_dir/.dsh/skills/neocortex" 2>/dev/null
1878
+ managed_copy_file "$dsh_target/SKILL.md" "$project_dir/.dsh/skills/neocortex/SKILL.md" "project-deepseek-harness-skill" "$project_dir"
1879
+ target_summary="${target_summary}deepseek-harness, "
1880
+ fi
1881
+ ;;
1850
1882
  esac
1851
1883
  done
1852
1884
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ornexus/neocortex",
3
- "version": "4.60.64",
4
- "description": "Neocortex v4.60.64 - Orquestrador de Desenvolvimento de Epics & Stories para Claude Code",
3
+ "version": "4.60.66",
4
+ "description": "Neocortex v4.60.66 - Orquestrador de Desenvolvimento de Epics & Stories para Claude Code",
5
5
  "keywords": [
6
6
  "claude",
7
7
  "claude-code",
@@ -78,12 +78,16 @@
78
78
  "packages/shared/dist/generated/invocation-schema.generated.js",
79
79
  "packages/shared/dist/generated/public-projections.generated.js",
80
80
  "packages/shared/dist/executable-graph-catalog/contracts.js",
81
- "packages/shared/dist/private-yolo-predecessor-decision.js",
82
- "packages/shared/dist/private-qa-structural-admission.js",
81
+ "packages/shared/dist/architecture-public-topology.js",
82
+ "packages/shared/dist/architecture-non-ui-scope.js",
83
83
  "packages/shared/dist/project-memory-targets.js",
84
84
  "packages/shared/dist/project-validation-commands.js",
85
+ "packages/shared/dist/private-yolo-predecessor-decision.js",
86
+ "packages/shared/dist/private-qa-structural-admission.js",
87
+ "packages/shared/dist/yoloop/root-memory-effect.js",
85
88
  "packages/shared/dist/yoloop/branch-unit.js",
86
89
  "packages/shared/dist/yoloop/root-memory-effect.js",
90
+ "packages/shared/dist/project-memory-targets.js",
87
91
  "packages/shared/dist/yoloop/canonical.js",
88
92
  "packages/shared/dist/yoloop/epic-terminal-git.js",
89
93
  "packages/shared/dist/yoloop/operational-budget.js",
@@ -161,7 +165,7 @@
161
165
  "@babel/parser": "^7.29.7",
162
166
  "@clack/prompts": "0.11.0",
163
167
  "@hono/node-server": "1.19.17",
164
- "@modelcontextprotocol/sdk": "1.31.0",
168
+ "@modelcontextprotocol/sdk": "1.32.1",
165
169
  "axe-core": "^4.14.0",
166
170
  "execa": "^9.6.1",
167
171
  "express": "5.2.1",
@@ -202,4 +202,4 @@ Invocation payload boundary:
202
202
  License:
203
203
  Licensed under BSL-1.1 (Business Source License 1.1)
204
204
  `.trim(),m=new Set(["pm","install","postinstall","preinstall","prepublish","postpublish","preuninstall","postuninstall","preprepare","prepare","postprepare"]);async function d(){const s=process.argv.slice(2),n=s[0];n&&m.has(n.toLowerCase())&&process.exit(0),(!n||n==="--help"||n==="-h")&&(console.log(l),process.exit(0)),(n==="--version"||n==="-v")&&(console.log(p()),process.stderr.write(`Licensed under BSL-1.1 (Business Source License 1.1)
205
- `),process.exit(0));const o=s.slice(1);switch(n){case"invoke":{const{invokeCliHandler:e,flushInvokeCliOutput:t}=await import("./commands/invoke.js"),r=await e(o),i=await t();process.exitCode=i?r:1;break}case"activate":{const{activate:e}=await import("./commands/activate.js");let t,r,i=!1;for(let a=0;a<o.length;a++){const c=o[a];c==="--server-url"?r=o[++a]:c==="--non-interactive"?i=!0:c==="--help"||c==="-h"?(console.log(l),process.exit(0)):c.startsWith("-")||(t=c)}t||(console.error("Error: License key is required."),console.error("Usage: neocortex-client activate <license-key>"),console.error("Example: neocortex-client activate NX-PRO-ABC-123"),process.exit(1));try{const a=await e({licenseKey:t,serverUrl:r,nonInteractive:i});a.success?(console.log(a.message),process.exit(0)):(console.error(a.message),process.exit(1))}catch(a){const c=a instanceof Error?a.message:String(a);console.error(`Activation failed: ${c}`),process.exit(1)}break}case"cache-status":{console.log("Cache status requires an active client session."),console.log("Use this command within a running Neocortex client context."),process.exit(0);break}case"config":{const{configCliHandler:e}=await import("./commands/config.js"),t=await e(o);process.exit(t);break}case"refresh-memory":{const{refreshMemoryCliHandler:e}=await import("./commands/refresh-memory.js"),t=await e(o);process.exit(t);break}case"architecture-memory":{const{architectureMemoryTerminalCliHandler:e}=await import("./commands/architecture-memory-terminal.js"),t=await e(o);process.exit(t);break}case"planning-diagnosis":{const{planningDiagnosisCliHandler:e}=await import("./commands/planning-diagnosis.js"),t=await e(o);process.exit(t);break}case"planning-research":{const{planningResearchCliHandler:e}=await import("./commands/planning-research.js"),t=await e(o);process.exit(t);break}case"private-session":{const{privateSessionCliHandler:e}=await import("./commands/private-session.js"),t=await e(o);process.exit(t);break}case"planning-memory":{const{planningMemoryCliHandler:e}=await import("./commands/planning-memory.js"),t=await e(o);process.exit(t);break}case"planning-generation":{const{planningGenerationCliHandler:e}=await import("./commands/planning-generation.js"),t=await e(o);process.exit(t);break}case"story-checkpoint":{const{storyCheckpointCliHandler:e}=await import("./commands/story-checkpoint.js"),t=await e(o);process.exit(t);break}case"legacy-story-branch":{const{legacyStoryBranchCliHandler:e}=await import("./commands/legacy-story-branch.js"),t=await e(o);process.exit(t);break}case"legacy-story-pr":{const{legacyStoryPrCliHandler:e}=await import("./commands/legacy-story-pr.js"),t=await e(o);process.exit(t);break}case"legacy-epic-terminal":{const{legacyEpicTerminalCliHandler:e}=await import("./commands/legacy-epic-terminal.js"),t=await e(o);process.exit(t);break}case"mutation-qa":{const{mutationQaCliHandler:e}=await import("./commands/mutation-qa.js"),t=await e(o);process.exit(t);break}case"property-qa":{const{propertyQaCliHandler:e}=await import("./commands/property-qa.js"),t=await e(o);process.exit(t);break}case"qa-synthetic-backend":{const{syntheticBackendCliHandler:e}=await import("./commands/qa-synthetic-backend.js");process.exitCode=await e(s.slice(1));break}case"qa-scan-review":{const{qaScanReviewCliHandler:e}=await import("./commands/qa-scan-review.js"),t=await e(o);process.exit(t);break}case"qa-root":{const{qaControlCliHandler:e}=await import("./commands/qa-control.js");process.exit(await e(o));break}case"refactor-root":{if(o[0]==="control"){const{refactorControlCliHandler:r}=await import("./commands/refactor-control.js");process.exit(await r(o))}if(o[0]==="characterize"){const{refactorCharacterizationCliHandler:r}=await import("./commands/refactor-characterization.js");process.exit(r(o))}if(o[0]==="review-accept"||o[0]==="review-status"){const{refactorReviewCliHandler:r}=await import("./commands/refactor-review.js");process.exit(await r(o))}if(o[0]?.startsWith("commit-")){const{refactorCommitCliHandler:r}=await import("./commands/refactor-commit.js");process.exit(r(o))}const{refactorRootCliHandler:e}=await import("./commands/refactor-root.js"),t=e(o);process.exit(t);break}case"native-agent":{const{nativeAgentCliHandler:e}=await import("./commands/native-agent.js"),t=await e(o);process.exit(t);break}case"architecture-answers":{const{architectureAnswersCliHandler:e}=await import("./commands/architecture-answers.js"),t=await e(o);process.exit(t);break}case"update":{console.log("To update Neocortex, run:"),console.log(" neocortex update"),console.log(""),console.log("Or manually:"),console.log(" npm install -g @ornexus/neocortex@latest"),process.exit(0);break}default:console.error(`Unknown command: ${n}`),console.error('Run "neocortex-client --help" for usage information.'),process.exit(1)}}d().catch(s=>{console.error(`Fatal error: ${s instanceof Error?s.message:String(s)}`),process.exit(1)});
205
+ `),process.exit(0));const o=s.slice(1);switch(n){case"invoke":{const{invokeCliHandler:e,flushInvokeCliOutput:t}=await import("./commands/invoke.js"),r=await e(o),i=await t();process.exit(i?r:1);break}case"activate":{const{activate:e}=await import("./commands/activate.js");let t,r,i=!1;for(let a=0;a<o.length;a++){const c=o[a];c==="--server-url"?r=o[++a]:c==="--non-interactive"?i=!0:c==="--help"||c==="-h"?(console.log(l),process.exit(0)):c.startsWith("-")||(t=c)}t||(console.error("Error: License key is required."),console.error("Usage: neocortex-client activate <license-key>"),console.error("Example: neocortex-client activate NX-PRO-ABC-123"),process.exit(1));try{const a=await e({licenseKey:t,serverUrl:r,nonInteractive:i});a.success?(console.log(a.message),process.exit(0)):(console.error(a.message),process.exit(1))}catch(a){const c=a instanceof Error?a.message:String(a);console.error(`Activation failed: ${c}`),process.exit(1)}break}case"cache-status":{console.log("Cache status requires an active client session."),console.log("Use this command within a running Neocortex client context."),process.exit(0);break}case"config":{const{configCliHandler:e}=await import("./commands/config.js"),t=await e(o);process.exit(t);break}case"refresh-memory":{const{refreshMemoryCliHandler:e}=await import("./commands/refresh-memory.js"),t=await e(o);process.exit(t);break}case"architecture-memory":{const{architectureMemoryTerminalCliHandler:e}=await import("./commands/architecture-memory-terminal.js"),t=await e(o);process.exit(t);break}case"planning-diagnosis":{const{planningDiagnosisCliHandler:e}=await import("./commands/planning-diagnosis.js"),t=await e(o);process.exit(t);break}case"planning-research":{const{planningResearchCliHandler:e}=await import("./commands/planning-research.js"),t=await e(o);process.exit(t);break}case"private-session":{const{privateSessionCliHandler:e}=await import("./commands/private-session.js"),t=await e(o);process.exit(t);break}case"planning-memory":{const{planningMemoryCliHandler:e}=await import("./commands/planning-memory.js"),t=await e(o);process.exit(t);break}case"planning-generation":{const{planningGenerationCliHandler:e}=await import("./commands/planning-generation.js"),t=await e(o);process.exit(t);break}case"story-checkpoint":{const{storyCheckpointCliHandler:e}=await import("./commands/story-checkpoint.js"),t=await e(o);process.exit(t);break}case"legacy-story-branch":{const{legacyStoryBranchCliHandler:e}=await import("./commands/legacy-story-branch.js"),t=await e(o);process.exit(t);break}case"legacy-story-pr":{const{legacyStoryPrCliHandler:e}=await import("./commands/legacy-story-pr.js"),t=await e(o);process.exit(t);break}case"legacy-epic-terminal":{const{legacyEpicTerminalCliHandler:e}=await import("./commands/legacy-epic-terminal.js"),t=await e(o);process.exit(t);break}case"mutation-qa":{const{mutationQaCliHandler:e}=await import("./commands/mutation-qa.js"),t=await e(o);process.exit(t);break}case"property-qa":{const{propertyQaCliHandler:e}=await import("./commands/property-qa.js"),t=await e(o);process.exit(t);break}case"qa-synthetic-backend":{const{syntheticBackendCliHandler:e}=await import("./commands/qa-synthetic-backend.js");process.exitCode=await e(s.slice(1));break}case"qa-scan-review":{const{qaScanReviewCliHandler:e}=await import("./commands/qa-scan-review.js"),t=await e(o);process.exit(t);break}case"qa-root":{const{qaControlCliHandler:e}=await import("./commands/qa-control.js");process.exit(await e(o));break}case"refactor-root":{if(o[0]==="control"){const{refactorControlCliHandler:r}=await import("./commands/refactor-control.js");process.exit(await r(o))}if(o[0]==="characterize"){const{refactorCharacterizationCliHandler:r}=await import("./commands/refactor-characterization.js");process.exit(r(o))}if(o[0]==="review-accept"||o[0]==="review-status"){const{refactorReviewCliHandler:r}=await import("./commands/refactor-review.js");process.exit(await r(o))}if(o[0]?.startsWith("commit-")){const{refactorCommitCliHandler:r}=await import("./commands/refactor-commit.js");process.exit(r(o))}const{refactorRootCliHandler:e}=await import("./commands/refactor-root.js"),t=e(o);process.exit(t);break}case"native-agent":{const{nativeAgentCliHandler:e}=await import("./commands/native-agent.js"),t=await e(o);process.exit(t);break}case"architecture-answers":{const{architectureAnswersCliHandler:e}=await import("./commands/architecture-answers.js"),t=await e(o);process.exit(t);break}case"update":{console.log("To update Neocortex, run:"),console.log(" neocortex update"),console.log(""),console.log("Or manually:"),console.log(" npm install -g @ornexus/neocortex@latest"),process.exit(0);break}default:console.error(`Unknown command: ${n}`),console.error('Run "neocortex-client --help" for usage information.'),process.exit(1)}}d().catch(s=>{console.error(`Fatal error: ${s instanceof Error?s.message:String(s)}`),process.exit(1)});
@@ -1 +1 @@
1
- import{isDeepStrictEqual as d}from"node:util";import{ARCHITECTURE_PUBLIC_STAGE_COMMANDS as A,NON_UI_ARCHITECTURE_STAGE_COMMANDS as R,parseArchitectureNonUiScopeReceipt as y}from"./shared-architecture-non-ui-contract.js";const a=e=>!!e&&typeof e=="object"&&!Array.isArray(e),r=R;function C(e){const t=y(e.nonUiScopeReceipt);return t&&t.targetEpicId===e.targetEpicId&&t.graphRevision===e.graphRevision&&a(e.accounting)&&t.accountingId===e.accounting.accountingId&&a(e.evidenceExpectation)&&t.rootInputSha256===e.evidenceExpectation.inputHash?t:void 0}function D(e){if(e.nonUiScopeReceipt===void 0)return A.length-1;if(!C(e))throw new Error("architecture-non-ui-scope-invalid");return r.length-1}function f(e,t,c,n){return Array.isArray(e)&&e.length===t&&e.every((i,o)=>a(i)&&i.targetEpicId===c&&i.stageCommand===r[o]&&a(i.completionEvidence)&&a(i.validationEvidence)&&i.completionEvidence.stageCommand===i.stageCommand&&i.completionEvidence.status==="succeeded"&&i.validationEvidence.stageCommand===i.stageCommand&&i.validationEvidence.status==="passed"&&i.completionEvidence.targetEpicId===c&&i.validationEvidence.targetEpicId===c&&i.completionEvidence.artifactHash===i.validationEvidence.artifactHash&&a(i.validationEvidence.isolated)&&a(i.validationEvidence.regression)&&i.validationEvidence.isolated.graphHash===n&&i.validationEvidence.regression.graphHash===n)}function H(e){const t=e.reviewDecision,c=e.completionEvidence,n=e.validationEvidence;return a(t)&&a(c)&&a(n)&&t.schemaVersion==="ArchitectureReviewDecision/1"&&t.decision==="approved"&&t.targetEpicId===e.targetEpicId&&t.graphRevision===e.graphRevision&&t.artifactHash===c.artifactHash&&t.artifactHash===n.artifactHash&&t.completionReceiptId===c.receiptId&&t.validationReceiptId===n.receiptId}function O(e,t,c=!1){const n=t.checkpoint;if(!a(n))return;const i=C(n);if(!i||i.targetEpicId!==e.targetEpicId||i.graphRevision!==e.graphRevision||!a(e.evidenceExpectation)||i.rootInputSha256!==e.evidenceExpectation.inputHash||!a(e.accounting)||i.accountingId!==e.accounting.accountingId||e.nonUiScopeReceipt!==void 0&&!d(e.nonUiScopeReceipt,i))return;const o=e.acceptedStages,s=n.acceptedStages,l=r.indexOf(String(e.currentStageCommand)),p=e.targetEpicId,u=e.graphRevision,g=S=>d(n[S],e[S]),h=e.childStatus===void 0&&e.completionEvidence===void 0&&e.validationEvidence===void 0,E=n.childStatus===void 0&&n.completionEvidence===void 0&&n.validationEvidence===void 0;if(e.currentStageCommand==="arch-design-system"&&e.continuationState==="advance"&&h&&E&&n.currentStageCommand==="arch-performance"&&n.continuationState==="advance"&&t.nextAction==="resume"&&f(o,r.indexOf("arch-performance"),p,u)&&d(s,o))return"advance";if(l<r.indexOf("arch-security")||e.nonUiScopeReceipt===void 0&&e.currentStageCommand!=="arch-security")return;if(e.continuationState==="complete"&&e.currentStageCommand==="update-memory"&&n.continuationState==="complete"&&n.currentStageCommand==="update-memory"&&t.nextAction==="complete"&&f(o,r.length,p,u)&&d(s,o)&&["childStatus","completionEvidence","validationEvidence","reviewDecision","terminalMemoryCheckpoint"].every(g)&&c)return"complete-replay";if(!f(o,l,p,u))return;if(h&&E&&["advance","delegate"].includes(String(e.continuationState))&&n.currentStageCommand===e.currentStageCommand&&n.continuationState==="delegate"&&t.nextAction==="delegate"&&d(s,o)&&g("reviewDecision"))return"delegate";const m=e.completionEvidence,v=e.validationEvidence;if(e.childStatus!=="succeeded"||!a(m)||!a(v)||m.status!=="succeeded"||v.status!=="passed"||m.stageCommand!==e.currentStageCommand||v.stageCommand!==e.currentStageCommand||m.targetEpicId!==p||v.targetEpicId!==p||m.artifactHash!==v.artifactHash)return;if(e.currentStageCommand==="arch-review"&&!H(e))return n.currentStageCommand==="arch-review"&&n.continuationState==="ask-user"&&t.nextAction==="ask-user"&&d(s,o)&&["childStatus","completionEvidence","validationEvidence"].every(g)&&d(n.questionIds,["ARCH-REVIEW-A09-APPROVAL"])&&e.reviewDecision===void 0?"ask-user":void 0;if(e.currentStageCommand==="arch-review"&&(e.continuationState!=="ask-user"||!d(e.questionIds,["ARCH-REVIEW-A09-APPROVAL"])))return;const I=[...o,{targetEpicId:p,stageCommand:e.currentStageCommand,completionEvidence:m,validationEvidence:v}];if(!(!d(s,I)||!g("reviewDecision"))){if(e.currentStageCommand==="update-memory")return n.currentStageCommand==="update-memory"&&n.continuationState==="complete"&&t.nextAction==="complete"&&["childStatus","completionEvidence","validationEvidence","terminalMemoryCheckpoint"].every(g)&&c?"complete":void 0;if(E&&n.currentStageCommand===r[l+1]&&n.continuationState==="advance"&&t.nextAction==="resume")return"advance"}}export{D as architectureMemoryPredecessorCount,O as classifyNonUiArchitectureTransition};
1
+ import{isDeepStrictEqual as d}from"node:util";import{ARCHITECTURE_NON_UI_COMMANDS as R,ARCHITECTURE_PUBLIC_COMMANDS as A,parseArchitectureNonUiScopeReceipt as y}from"./shared-architecture-non-ui.js";const a=e=>!!e&&typeof e=="object"&&!Array.isArray(e),r=R;function C(e){const t=y(e.nonUiScopeReceipt);return t&&t.targetEpicId===e.targetEpicId&&t.graphRevision===e.graphRevision&&a(e.accounting)&&t.accountingId===e.accounting.accountingId&&a(e.evidenceExpectation)&&t.rootInputSha256===e.evidenceExpectation.inputHash?t:void 0}function D(e){if(e.nonUiScopeReceipt===void 0)return A.length-1;if(!C(e))throw new Error("architecture-non-ui-scope-invalid");return r.length-1}function f(e,t,c,n){return Array.isArray(e)&&e.length===t&&e.every((i,o)=>a(i)&&i.targetEpicId===c&&i.stageCommand===r[o]&&a(i.completionEvidence)&&a(i.validationEvidence)&&i.completionEvidence.stageCommand===i.stageCommand&&i.completionEvidence.status==="succeeded"&&i.validationEvidence.stageCommand===i.stageCommand&&i.validationEvidence.status==="passed"&&i.completionEvidence.targetEpicId===c&&i.validationEvidence.targetEpicId===c&&i.completionEvidence.artifactHash===i.validationEvidence.artifactHash&&a(i.validationEvidence.isolated)&&a(i.validationEvidence.regression)&&i.validationEvidence.isolated.graphHash===n&&i.validationEvidence.regression.graphHash===n)}function H(e){const t=e.reviewDecision,c=e.completionEvidence,n=e.validationEvidence;return a(t)&&a(c)&&a(n)&&t.schemaVersion==="ArchitectureReviewDecision/1"&&t.decision==="approved"&&t.targetEpicId===e.targetEpicId&&t.graphRevision===e.graphRevision&&t.artifactHash===c.artifactHash&&t.artifactHash===n.artifactHash&&t.completionReceiptId===c.receiptId&&t.validationReceiptId===n.receiptId}function O(e,t,c=!1){const n=t.checkpoint;if(!a(n))return;const i=C(n);if(!i||i.targetEpicId!==e.targetEpicId||i.graphRevision!==e.graphRevision||!a(e.evidenceExpectation)||i.rootInputSha256!==e.evidenceExpectation.inputHash||!a(e.accounting)||i.accountingId!==e.accounting.accountingId||e.nonUiScopeReceipt!==void 0&&!d(e.nonUiScopeReceipt,i))return;const o=e.acceptedStages,s=n.acceptedStages,l=r.indexOf(String(e.currentStageCommand)),p=e.targetEpicId,u=e.graphRevision,g=S=>d(n[S],e[S]),h=e.childStatus===void 0&&e.completionEvidence===void 0&&e.validationEvidence===void 0,E=n.childStatus===void 0&&n.completionEvidence===void 0&&n.validationEvidence===void 0;if(e.currentStageCommand==="arch-design-system"&&e.continuationState==="advance"&&h&&E&&n.currentStageCommand==="arch-performance"&&n.continuationState==="advance"&&t.nextAction==="resume"&&f(o,r.indexOf("arch-performance"),p,u)&&d(s,o))return"advance";if(l<r.indexOf("arch-security")||e.nonUiScopeReceipt===void 0&&e.currentStageCommand!=="arch-security")return;if(e.continuationState==="complete"&&e.currentStageCommand==="update-memory"&&n.continuationState==="complete"&&n.currentStageCommand==="update-memory"&&t.nextAction==="complete"&&f(o,r.length,p,u)&&d(s,o)&&["childStatus","completionEvidence","validationEvidence","reviewDecision","terminalMemoryCheckpoint"].every(g)&&c)return"complete-replay";if(!f(o,l,p,u))return;if(h&&E&&["advance","delegate"].includes(String(e.continuationState))&&n.currentStageCommand===e.currentStageCommand&&n.continuationState==="delegate"&&t.nextAction==="delegate"&&d(s,o)&&g("reviewDecision"))return"delegate";const m=e.completionEvidence,v=e.validationEvidence;if(e.childStatus!=="succeeded"||!a(m)||!a(v)||m.status!=="succeeded"||v.status!=="passed"||m.stageCommand!==e.currentStageCommand||v.stageCommand!==e.currentStageCommand||m.targetEpicId!==p||v.targetEpicId!==p||m.artifactHash!==v.artifactHash)return;if(e.currentStageCommand==="arch-review"&&!H(e))return n.currentStageCommand==="arch-review"&&n.continuationState==="ask-user"&&t.nextAction==="ask-user"&&d(s,o)&&["childStatus","completionEvidence","validationEvidence"].every(g)&&d(n.questionIds,["ARCH-REVIEW-A09-APPROVAL"])&&e.reviewDecision===void 0?"ask-user":void 0;if(e.currentStageCommand==="arch-review"&&(e.continuationState!=="ask-user"||!d(e.questionIds,["ARCH-REVIEW-A09-APPROVAL"])))return;const I=[...o,{targetEpicId:p,stageCommand:e.currentStageCommand,completionEvidence:m,validationEvidence:v}];if(!(!d(s,I)||!g("reviewDecision"))){if(e.currentStageCommand==="update-memory")return n.currentStageCommand==="update-memory"&&n.continuationState==="complete"&&t.nextAction==="complete"&&["childStatus","completionEvidence","validationEvidence","terminalMemoryCheckpoint"].every(g)&&c?"complete":void 0;if(E&&n.currentStageCommand===r[l+1]&&n.continuationState==="advance"&&t.nextAction==="resume")return"advance"}}export{D as architectureMemoryPredecessorCount,O as classifyNonUiArchitectureTransition};
@@ -1 +1 @@
1
- import{createHash as f}from"node:crypto";import{execFileSync as u}from"node:child_process";import{lstatSync as w,realpathSync as n}from"node:fs";import{join as i,resolve as p}from"node:path";const g=/^P[1-9][0-9]{0,11}$/,v=/^[a-f0-9]{40,64}$/;function x(s){return s.match(/^\s*\*?arch-plan\s+"[^"\n]{1,4096}"\s+@docs\/epics\/epic-(P[1-9][0-9]{0,11})\.md\s*$/)?.[1]}function P(s,r){if(!g.test(r))throw new Error("architecture-root-epic-binding-invalid");const t=p(s),e=`docs/epics/epic-${r}.md`,a=i(t,e);try{if(n(t)!==t)throw new Error("architecture-root-epic-binding-invalid");if(n(i(t,"docs"))!==i(t,"docs")||n(i(t,"docs","epics"))!==i(t,"docs","epics")||n(a)!==a)throw new Error("architecture-root-epic-binding-invalid");const h=w(a);if(!h.isFile()||h.isSymbolicLink()||h.size>256*1024)throw new Error("architecture-root-epic-binding-invalid");const o=l=>u("git",[...l],{cwd:t,encoding:"utf8",stdio:["ignore","pipe","ignore"],maxBuffer:1024*1024}).trim();if(p(o(["rev-parse","--show-toplevel"]))!==t)throw new Error("architecture-root-epic-binding-invalid");const c=o(["rev-parse","--verify",`HEAD:${e}`]),d=o(["hash-object","--",e]),m=o(["ls-files","--stage","--",e]).match(/^100644 ([a-f0-9]{40,64}) 0\t/);if(!v.test(c)||d!==c||m?.[1]!==c)throw new Error("architecture-root-epic-binding-invalid");return f("sha256").update(`architecture-committed-epic-v1\0${r}\0${c}`).digest("hex")}catch{throw new Error("architecture-root-epic-binding-invalid")}}export{P as deriveCommittedArchitectureEpicGraphRevision,x as explicitArchitectureEpicTarget};
1
+ import{createHash as f}from"node:crypto";import{execFileSync as g}from"node:child_process";import{lstatSync as u,realpathSync as n}from"node:fs";import{join as t,resolve as d}from"node:path";import{resolveClientPreFlightTrigger as v}from"../tier/tier-aware-client.js";const w=/^P[1-9][0-9]{0,11}$/,E=/^[a-f0-9]{40,64}$/;function S(s){const r=s.match(/^\s*(\*?[^\s]+)[ \t]+"[^"\n]{1,4096}"[ \t]+@docs\/epics\/epic-(P[1-9][0-9]{0,11})\.md\s*$/);return r&&v(r[1])==="arch-plan"?r[2]:void 0}function A(s,r){if(!w.test(r))throw new Error("architecture-root-epic-binding-invalid");const i=d(s),e=`docs/epics/epic-${r}.md`,a=t(i,e);try{if(n(i)!==i)throw new Error("architecture-root-epic-binding-invalid");if(n(t(i,"docs"))!==t(i,"docs")||n(t(i,"docs","epics"))!==t(i,"docs","epics")||n(a)!==a)throw new Error("architecture-root-epic-binding-invalid");const h=u(a);if(!h.isFile()||h.isSymbolicLink()||h.size>256*1024)throw new Error("architecture-root-epic-binding-invalid");const o=l=>g("git",[...l],{cwd:i,encoding:"utf8",stdio:["ignore","pipe","ignore"],maxBuffer:1024*1024}).trim();if(d(o(["rev-parse","--show-toplevel"]))!==i)throw new Error("architecture-root-epic-binding-invalid");const c=o(["rev-parse","--verify",`HEAD:${e}`]),p=o(["hash-object","--",e]),m=o(["ls-files","--stage","--",e]).match(/^100644 ([a-f0-9]{40,64}) 0\t/);if(!E.test(c)||p!==c||m?.[1]!==c)throw new Error("architecture-root-epic-binding-invalid");return f("sha256").update(`architecture-committed-epic-v1\0${r}\0${c}`).digest("hex")}catch{throw new Error("architecture-root-epic-binding-invalid")}}export{A as deriveCommittedArchitectureEpicGraphRevision,S as explicitArchitectureEpicTarget};
@@ -6,7 +6,7 @@ import { observeRunnerOperationalStatus, type RunnerSchedulerBootstrapOptions, t
6
6
  import { type ContinuityProcessingSummaryCursorTarget } from '../continuity/continuity-client-state-store.js';
7
7
  import type { ProjectEvidenceEnvelope } from '../evidence/types.js';
8
8
  import { detectNativeHostAttestation } from '../adapters/platform-detector.js';
9
- import type { YoloSpecEnvelopeV1 } from '../../../shared/dist/yolo/spec-envelope.js';
9
+ import { type YoloSpecEnvelopeV1 } from '../../../shared/dist/yolo/spec-envelope.js';
10
10
  import type { YoloChangeEvidence } from '../../../shared/dist/yolo/change-evidence.js';
11
11
  import { type InvokeEffectContext, type StrictReadOnlyInvokeEnvelope } from '../../../shared/dist/strict-readonly.js';
12
12
  import { type InvokeInputEvidenceV1, type InvokeInputEnvelopeV2, type InvokeInputSourceV2, type InvocationMalformedInputReasonV1, type InvocationAdmissionResultV1, type ProjectIdentityMigrationRequestV1 } from '../../../shared/dist/invocation/index.js';