blun-king-cli 9.1.587 → 9.1.588

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 (436) hide show
  1. package/CHANGELOG.md +11 -185
  2. package/LIESMICH.txt +51 -13
  3. package/README.md +44 -47
  4. package/agent-spine-plugin/.codex-plugin/plugin.json +16 -4
  5. package/agent-spine-plugin/CHANGELOG.md +37 -5
  6. package/agent-spine-plugin/README.md +3 -3
  7. package/agent-spine-plugin/blun.plugin.json +45 -10
  8. package/agent-spine-plugin/docs/artifact-evaluation.md +93 -0
  9. package/agent-spine-plugin/docs/host-integration.md +42 -27
  10. package/agent-spine-plugin/docs/preflight-recall.md +4 -2
  11. package/agent-spine-plugin/docs/session-timeline.md +97 -236
  12. package/agent-spine-plugin/docs/world-model.md +25 -0
  13. package/agent-spine-plugin/hooks/codex.json +1 -1
  14. package/agent-spine-plugin/hooks/hooks.json +1 -1
  15. package/agent-spine-plugin/package.json +1 -3
  16. package/agent-spine-plugin/scripts/check-hosts.js +3 -3
  17. package/agent-spine-plugin/scripts/release-check.js +10 -5
  18. package/agent-spine-plugin/scripts/run-checks.js +4 -1
  19. package/agent-spine-plugin/scripts/run-tests-hermetic.js +32 -6
  20. package/agent-spine-plugin/src/cli-learning.js +15 -0
  21. package/agent-spine-plugin/src/cli.js +2 -0
  22. package/agent-spine-plugin/src/hook.js +32 -32
  23. package/agent-spine-plugin/src/lib/action-lesson-recall.js +73 -8
  24. package/agent-spine-plugin/src/lib/briefing.js +146 -36
  25. package/agent-spine-plugin/src/lib/channel-continuity.js +19 -0
  26. package/agent-spine-plugin/src/lib/delivery-agent-usage.js +14 -7
  27. package/agent-spine-plugin/src/lib/gateway-group-response.js +128 -0
  28. package/agent-spine-plugin/src/lib/gateway-runs.js +24 -15
  29. package/agent-spine-plugin/src/lib/hook-briefing-use.js +13 -3
  30. package/agent-spine-plugin/src/lib/hook-context.js +16 -3
  31. package/agent-spine-plugin/src/lib/hook-output.js +129 -5
  32. package/agent-spine-plugin/src/lib/hook-timeline.js +5 -3
  33. package/agent-spine-plugin/src/lib/indexed-memory.js +2 -2
  34. package/agent-spine-plugin/src/lib/learning-artifact-evaluator.js +114 -0
  35. package/agent-spine-plugin/src/lib/learning-context.js +11 -4
  36. package/agent-spine-plugin/src/lib/learning-measurements.js +2 -2
  37. package/agent-spine-plugin/src/lib/mcp-runtime.js +89 -3
  38. package/agent-spine-plugin/src/lib/mcp-source-context.js +12 -2
  39. package/agent-spine-plugin/src/lib/mcp-timeline-tools.js +91 -8
  40. package/agent-spine-plugin/src/lib/mcp-world-tools.js +2 -2
  41. package/agent-spine-plugin/src/lib/owned-file-lock.js +20 -1
  42. package/agent-spine-plugin/src/lib/persona-runtime.js +2 -2
  43. package/agent-spine-plugin/src/lib/preflight-delivery-id.js +27 -0
  44. package/agent-spine-plugin/src/lib/preflight.js +4 -4
  45. package/agent-spine-plugin/src/lib/session-timeline-codex.js +15 -0
  46. package/agent-spine-plugin/src/lib/session-timeline-contract.js +12 -4
  47. package/agent-spine-plugin/src/lib/session-timeline-event-extract.js +36 -7
  48. package/agent-spine-plugin/src/lib/session-timeline-host-origin.js +13 -10
  49. package/agent-spine-plugin/src/lib/session-timeline-invocation.js +1 -1
  50. package/agent-spine-plugin/src/lib/session-timeline-king.js +14 -0
  51. package/agent-spine-plugin/src/lib/session-timeline-prior.js +18 -12
  52. package/agent-spine-plugin/src/lib/session-timeline-provider.js +5 -0
  53. package/agent-spine-plugin/src/lib/session-timeline-query.js +2 -0
  54. package/agent-spine-plugin/src/lib/session-timeline-results.js +35 -10
  55. package/agent-spine-plugin/src/lib/session-timeline-source-open.js +30 -0
  56. package/agent-spine-plugin/src/lib/session-timeline.js +122 -75
  57. package/agent-spine-plugin/src/lib/source-roots.js +3 -2
  58. package/agent-spine-plugin/src/lib/task-knowledge-context.js +22 -1
  59. package/agent-spine-plugin/src/lib/timeline-continuation-update.js +100 -0
  60. package/agent-spine-plugin/src/lib/timeline-tool-guard.js +30 -7
  61. package/agent-spine-plugin/src/lib/timeline-user-feedback.js +217 -0
  62. package/agent-spine-plugin/src/lib/timeline-world-capture.js +233 -0
  63. package/agent-spine-plugin/src/lib/world-knowledge.js +59 -2
  64. package/agent-spine-plugin/src/lib/world-model.js +64 -9
  65. package/agent-spine-plugin/src/worker.js +13 -1
  66. package/bin/blun.js +43 -28
  67. package/bin/core-bootstrap.js +5 -4
  68. package/bin/king.js +43 -28
  69. package/bin/launcher-mode.js +1 -10
  70. package/bin/launcher-runtime.js +128 -295
  71. package/bin/managed-node.js +0 -0
  72. package/bin/managed-plugin-selection.cjs +0 -1
  73. package/bin/native-module-repair.js +0 -0
  74. package/bin/node-runtime.js +0 -0
  75. package/bin/node-version.js +0 -0
  76. package/bin/plugin-bootstrap.js +56 -120
  77. package/bin/private-paths.js +11 -34
  78. package/bin/standard-tools-bootstrap.js +34 -114
  79. package/bin/turn-thinking-policy.cjs +3 -11
  80. package/bin/update-copy.js +200 -0
  81. package/bin/update-lease.js +0 -0
  82. package/bin/update-notice.js +136 -289
  83. package/bin/verify-agent-behavior.cjs +122 -0
  84. package/bin/verify-agent-components.cjs +104 -0
  85. package/bin/verify-bundled-agent-sources.cjs +57 -0
  86. package/blun.mjs +143076 -135288
  87. package/bundled-agent-sources.json +701 -0
  88. package/package.json +12 -15
  89. package/standard-skills/translate-native/README.md +1293 -0
  90. package/standard-skills/translate-native/SKILL.md +172 -22
  91. package/standard-skills/translate-native/VERSION +1 -1
  92. package/standard-skills/translate-native/agents/openai.yaml +18 -0
  93. package/standard-skills/translate-native/assets/icon.svg +8 -0
  94. package/standard-skills/translate-native/docs/BLUN_CODE_INTEGRATION.md +76 -0
  95. package/standard-skills/translate-native/docs/PREMORTEM.md +489 -0
  96. package/standard-skills/translate-native/docs/WEBSITE_LOCALIZATION.md +2035 -0
  97. package/standard-skills/translate-native/docs/WEBSITE_LOCALIZATION_API.md +1302 -0
  98. package/standard-skills/translate-native/docs/WEBSITE_LOCALIZATION_EVIDENCE_HTTP.md +136 -0
  99. package/standard-skills/translate-native/docs/WEBSITE_LOCALIZATION_HEALTH_HTTP.md +130 -0
  100. package/standard-skills/translate-native/docs/WEBSITE_LOCALIZATION_HTTP_PROVIDER.md +175 -0
  101. package/standard-skills/translate-native/docs/WEBSITE_LOCALIZATION_RECEIPT_VERIFIER_HTTP.md +86 -0
  102. package/standard-skills/translate-native/integrations/AGENT_RULES.md +32 -0
  103. package/standard-skills/translate-native/integrations/adapters/blun-code-language-guard.js +514 -0
  104. package/standard-skills/translate-native/integrations/adapters/node-language-guard.js +230 -0
  105. package/standard-skills/translate-native/integrations/audit_log.py +327 -0
  106. package/standard-skills/translate-native/integrations/claude_language_hook.js +1536 -0
  107. package/standard-skills/translate-native/integrations/commercial_localization_profile.py +42 -0
  108. package/standard-skills/translate-native/integrations/delivery-policy.example.json +28 -0
  109. package/standard-skills/translate-native/integrations/enforced_delivery.py +543 -0
  110. package/standard-skills/translate-native/integrations/guard_service.py +435 -0
  111. package/standard-skills/translate-native/integrations/language_gateway.py +67 -0
  112. package/standard-skills/translate-native/integrations/mcp_auth_headers.py +198 -0
  113. package/standard-skills/translate-native/integrations/mcp_http_gateway.py +429 -0
  114. package/standard-skills/translate-native/integrations/non_language_html_entities.js +1485 -0
  115. package/standard-skills/translate-native/integrations/pre_output_guard.py +65 -0
  116. package/standard-skills/translate-native/integrations/task_router.py +101 -0
  117. package/standard-skills/translate-native/integrations/website_localization.py +401 -0
  118. package/standard-skills/translate-native/integrations/website_localization_api.py +581 -0
  119. package/standard-skills/translate-native/integrations/website_localization_benchmark.py +1885 -0
  120. package/standard-skills/translate-native/integrations/website_localization_benchmark_campaign.py +1772 -0
  121. package/standard-skills/translate-native/integrations/website_localization_benchmark_candidate.py +506 -0
  122. package/standard-skills/translate-native/integrations/website_localization_benchmark_http.py +400 -0
  123. package/standard-skills/translate-native/integrations/website_localization_benchmark_review_store.py +781 -0
  124. package/standard-skills/translate-native/integrations/website_localization_benchmark_reviewer_http.py +500 -0
  125. package/standard-skills/translate-native/integrations/website_localization_benchmark_runtime.py +1107 -0
  126. package/standard-skills/translate-native/integrations/website_localization_benchmark_suite.py +463 -0
  127. package/standard-skills/translate-native/integrations/website_localization_cms.py +2835 -0
  128. package/standard-skills/translate-native/integrations/website_localization_cms_client.py +875 -0
  129. package/standard-skills/translate-native/integrations/website_localization_cms_dispatch.py +805 -0
  130. package/standard-skills/translate-native/integrations/website_localization_cms_http.py +588 -0
  131. package/standard-skills/translate-native/integrations/website_localization_cms_lifecycle_monitor.py +991 -0
  132. package/standard-skills/translate-native/integrations/website_localization_cms_receiver.py +1441 -0
  133. package/standard-skills/translate-native/integrations/website_localization_cms_receiver_runtime.py +414 -0
  134. package/standard-skills/translate-native/integrations/website_localization_cms_receiver_store.py +1073 -0
  135. package/standard-skills/translate-native/integrations/website_localization_cms_removal_dispatch.py +865 -0
  136. package/standard-skills/translate-native/integrations/website_localization_cms_source_client.py +583 -0
  137. package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery.py +964 -0
  138. package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_runtime.py +665 -0
  139. package/standard-skills/translate-native/integrations/website_localization_cms_source_http.py +1153 -0
  140. package/standard-skills/translate-native/integrations/website_localization_cms_source_runtime.py +675 -0
  141. package/standard-skills/translate-native/integrations/website_localization_cms_source_service.py +1125 -0
  142. package/standard-skills/translate-native/integrations/website_localization_cms_terminal_notification.py +674 -0
  143. package/standard-skills/translate-native/integrations/website_localization_cms_terminal_notification_http.py +444 -0
  144. package/standard-skills/translate-native/integrations/website_localization_cms_terminal_notification_receiver.py +1469 -0
  145. package/standard-skills/translate-native/integrations/website_localization_cms_terminal_notification_receiver_runtime.py +1142 -0
  146. package/standard-skills/translate-native/integrations/website_localization_cms_terminal_processing_monitor.py +634 -0
  147. package/standard-skills/translate-native/integrations/website_localization_cms_terminal_receiver_client.py +804 -0
  148. package/standard-skills/translate-native/integrations/website_localization_deepl_baseline.py +922 -0
  149. package/standard-skills/translate-native/integrations/website_localization_evidence_http.py +482 -0
  150. package/standard-skills/translate-native/integrations/website_localization_health.py +1541 -0
  151. package/standard-skills/translate-native/integrations/website_localization_health_http.py +372 -0
  152. package/standard-skills/translate-native/integrations/website_localization_http_provider.py +297 -0
  153. package/standard-skills/translate-native/integrations/website_localization_native_reference_http.py +479 -0
  154. package/standard-skills/translate-native/integrations/website_localization_native_reference_intake.py +363 -0
  155. package/standard-skills/translate-native/integrations/website_localization_native_reference_queue.py +1449 -0
  156. package/standard-skills/translate-native/integrations/website_localization_native_reference_store.py +420 -0
  157. package/standard-skills/translate-native/integrations/website_localization_quality_profiles.py +235 -0
  158. package/standard-skills/translate-native/integrations/website_localization_queue.py +671 -0
  159. package/standard-skills/translate-native/integrations/website_localization_receipt_verifier_http.py +516 -0
  160. package/standard-skills/translate-native/integrations/website_localization_release.py +928 -0
  161. package/standard-skills/translate-native/integrations/website_localization_release_coordinator.py +1008 -0
  162. package/standard-skills/translate-native/integrations/website_localization_runner.py +276 -0
  163. package/standard-skills/translate-native/integrations/website_localization_runtime.py +862 -0
  164. package/standard-skills/translate-native/integrations/website_localization_service.py +350 -0
  165. package/standard-skills/translate-native/integrations/website_localization_supervisor.py +511 -0
  166. package/standard-skills/translate-native/integrations/website_localization_worker.py +663 -0
  167. package/standard-skills/translate-native/provenance.json +3 -4
  168. package/standard-skills/translate-native/references/commercial-localization.md +177 -0
  169. package/standard-skills/translate-native/scripts/blun_language_guard.py +7 -1
  170. package/standard-skills/translate-native/scripts/check_commercial_review.py +80 -0
  171. package/standard-skills/translate-native/scripts/commercial_localization_profile.py +333 -0
  172. package/standard-tools/language-guard/LICENSE +21 -0
  173. package/standard-tools/language-guard/VERSION +1 -0
  174. package/standard-tools/language-guard/blun_language_guard.py +7 -1
  175. package/standard-tools/language-guard/check_commercial_review.py +80 -0
  176. package/standard-tools/language-guard/commercial_localization_profile.py +333 -0
  177. package/standard-tools/language-guard/language_gateway.py +62 -0
  178. package/standard-tools/language-guard/pre_output_guard.py +64 -0
  179. package/standard-tools/language-guard/provenance.json +4 -11
  180. package/standard-tools/manifest.json +34 -11
  181. package/telegram-plugin/commands/access.md +2 -10
  182. package/telegram-plugin/dist/bridge.mjs +64041 -687
  183. package/telegram-plugin/dist/mcp-server.mjs +72810 -9027
  184. package/telegram-plugin/dist/noise.mjs +28 -63511
  185. package/agent-spine-plugin/CONTRIBUTING.md +0 -52
  186. package/agent-spine-plugin/SECURITY.md +0 -47
  187. package/agent-spine-plugin/docs/assignment-continuation.md +0 -48
  188. package/agent-spine-plugin/docs/releasing.md +0 -85
  189. package/agent-spine-plugin/docs/structured-completion.md +0 -67
  190. package/bin/abort-listener-policy.cjs +0 -43
  191. package/bin/active-steer-priority-policy.cjs +0 -24
  192. package/bin/agent-api-http-adapter.mjs +0 -446
  193. package/bin/agent-api-private-http-server.mjs +0 -288
  194. package/bin/agent-api-runtime.mjs +0 -252
  195. package/bin/agent-api-service-environment.mjs +0 -236
  196. package/bin/agent-api-service-host.mjs +0 -209
  197. package/bin/agent-api-service-process.mjs +0 -171
  198. package/bin/agent-api-session-registry.mjs +0 -428
  199. package/bin/agent-api-tool-broker.cjs +0 -248
  200. package/bin/agent-api-turn-controller.mjs +0 -461
  201. package/bin/agent-api-usage-journal.cjs +0 -259
  202. package/bin/agent-resume-snapshot.cjs +0 -241
  203. package/bin/agentspine-king-goal-inbox.mjs +0 -111
  204. package/bin/agentspine-king-goal-intake.mjs +0 -106
  205. package/bin/approval-rejection-stop.cjs +0 -15
  206. package/bin/assistant-message-offload-policy.cjs +0 -284
  207. package/bin/baseline-skill-performance-policy.cjs +0 -39
  208. package/bin/bash-search-scope-policy.cjs +0 -49
  209. package/bin/codebase-search-runtime.cjs +0 -23
  210. package/bin/cognitive-action-checkpoint.cjs +0 -1104
  211. package/bin/cognitive-attention-delivery.cjs +0 -76
  212. package/bin/cognitive-attention-policy.cjs +0 -143
  213. package/bin/cognitive-attention-runtime.cjs +0 -91
  214. package/bin/cognitive-context-projection.cjs +0 -73
  215. package/bin/cognitive-cross-portal-acceptance.cjs +0 -443
  216. package/bin/cognitive-effective-view.cjs +0 -77
  217. package/bin/cognitive-focus-projection.cjs +0 -206
  218. package/bin/cognitive-focus-scope.cjs +0 -37
  219. package/bin/cognitive-goal-autostart-policy.cjs +0 -72
  220. package/bin/cognitive-goal-time-trigger-controller.cjs +0 -146
  221. package/bin/cognitive-memory-adapter.cjs +0 -282
  222. package/bin/cognitive-memory-command.cjs +0 -293
  223. package/bin/cognitive-memory-provider.cjs +0 -92
  224. package/bin/cognitive-salience-policy.cjs +0 -159
  225. package/bin/cognitive-state-store.cjs +0 -508
  226. package/bin/cognitive-turn-lifecycle.cjs +0 -624
  227. package/bin/cognitive-work-focus.cjs +0 -180
  228. package/bin/compaction-history-archive.cjs +0 -166
  229. package/bin/compaction-history-startup.cjs +0 -50
  230. package/bin/compaction-model-policy.cjs +0 -31
  231. package/bin/compaction-stage-policy.cjs +0 -21
  232. package/bin/compaction-transaction-policy.cjs +0 -122
  233. package/bin/config-write-dedup-policy.cjs +0 -27
  234. package/bin/context-budget-ledger.cjs +0 -31
  235. package/bin/context-doctor-policy.cjs +0 -70
  236. package/bin/context-insight-policy.cjs +0 -36
  237. package/bin/context-performance-policy.cjs +0 -19
  238. package/bin/context-pressure-policy.cjs +0 -20
  239. package/bin/cron-run-output.cjs +0 -45
  240. package/bin/cron-run-store.cjs +0 -145
  241. package/bin/curiosity-scout-policy.cjs +0 -49
  242. package/bin/default-model-output-budget-policy.cjs +0 -28
  243. package/bin/durable-task-resume-policy.cjs +0 -130
  244. package/bin/durable-task-resume-runtime.cjs +0 -117
  245. package/bin/durable-task-resume-store.cjs +0 -88
  246. package/bin/editable-tool-approval-policy.cjs +0 -540
  247. package/bin/editable-tool-approval-runtime.cjs +0 -99
  248. package/bin/effective-system-prompt-cache-policy.cjs +0 -33
  249. package/bin/error-memory-performance-policy.cjs +0 -113
  250. package/bin/file-observation-policy.cjs +0 -133
  251. package/bin/foreground-output-capture-policy.cjs +0 -41
  252. package/bin/generated-source-health.cjs +0 -142
  253. package/bin/glob-pattern-policy.cjs +0 -13
  254. package/bin/goal-completion-evidence-policy.cjs +0 -120
  255. package/bin/grep-output-limit-policy.cjs +0 -39
  256. package/bin/historical-media-projection-policy.cjs +0 -48
  257. package/bin/history-offload-pressure-policy.cjs +0 -33
  258. package/bin/html-to-research-markdown.cjs +0 -147
  259. package/bin/identity-context-policy.cjs +0 -764
  260. package/bin/identity-journal-policy.cjs +0 -107
  261. package/bin/input-draft-persistence.cjs +0 -77
  262. package/bin/king-tui-function-contract.json +0 -33
  263. package/bin/launcher-restart-policy.cjs +0 -150
  264. package/bin/live-response-repetition-guard.cjs +0 -196
  265. package/bin/llm-config-log-dedup-policy.cjs +0 -76
  266. package/bin/loop-event-record-policy.cjs +0 -174
  267. package/bin/managed-context-startup-policy.cjs +0 -27
  268. package/bin/media-activity-layout-policy.cjs +0 -34
  269. package/bin/media-auto-retrieval-policy.cjs +0 -90
  270. package/bin/media-result-policy.cjs +0 -59
  271. package/bin/micro-compaction-policy.cjs +0 -145
  272. package/bin/mistake-relevance-policy.cjs +0 -319
  273. package/bin/model-retry-progress-policy.cjs +0 -46
  274. package/bin/native-large-file-io.cjs +0 -42
  275. package/bin/native-runtime-cache.cjs +0 -76
  276. package/bin/natural-presence-policy.cjs +0 -28
  277. package/bin/noninteractive-shell-env-policy.cjs +0 -19
  278. package/bin/observer-hooks.cjs +0 -14
  279. package/bin/outbound-claim-provenance.cjs +0 -150
  280. package/bin/oversized-context-offload-policy.cjs +0 -86
  281. package/bin/pending-media-policy.cjs +0 -182
  282. package/bin/pending-token-estimate-policy.cjs +0 -41
  283. package/bin/personal-memory-consent-policy.cjs +0 -72
  284. package/bin/personal-memory-performance-policy.cjs +0 -12
  285. package/bin/personality-choice-policy.cjs +0 -101
  286. package/bin/personality-memory-adapter.cjs +0 -379
  287. package/bin/personality-mode.cjs +0 -46
  288. package/bin/personality-setup-policy.cjs +0 -197
  289. package/bin/proactive-compaction-policy.cjs +0 -25
  290. package/bin/profile-identity-resolution.cjs +0 -136
  291. package/bin/profile-runtime.cjs +0 -318
  292. package/bin/profile-tool-exclusion-policy.cjs +0 -37
  293. package/bin/programmatic-context-isolation.cjs +0 -25
  294. package/bin/programmatic-tool-runtime.mjs +0 -627
  295. package/bin/provider-idle-timeout-policy.cjs +0 -14
  296. package/bin/provider-model-refresh-deadline.cjs +0 -53
  297. package/bin/provider-model-refresh-policy.cjs +0 -107
  298. package/bin/rate-limit-recovery-policy.cjs +0 -47
  299. package/bin/read-batch-policy.cjs +0 -32
  300. package/bin/read-continuation-policy.cjs +0 -59
  301. package/bin/recurring-cron-history-policy.cjs +0 -124
  302. package/bin/relationship-continuity-policy.cjs +0 -143
  303. package/bin/relationship-curiosity-policy.cjs +0 -107
  304. package/bin/relationship-learning-policy.cjs +0 -168
  305. package/bin/release-artifact-freeze-policy.cjs +0 -30
  306. package/bin/reload-plugin-bootstrap.cjs +0 -18
  307. package/bin/reload-queue-policy.cjs +0 -38
  308. package/bin/repeated-assistant-response-policy.cjs +0 -232
  309. package/bin/repeated-injection-projection.cjs +0 -107
  310. package/bin/repeated-user-message-projection.cjs +0 -8
  311. package/bin/research-page-result.cjs +0 -74
  312. package/bin/retry-checkpoint-policy.cjs +0 -13
  313. package/bin/runtime-exit-ledger.cjs +0 -144
  314. package/bin/scoped-cron-run-policy.cjs +0 -358
  315. package/bin/session-checkpoint-policy.cjs +0 -25
  316. package/bin/session-compaction-policy.cjs +0 -84
  317. package/bin/session-replay-policy.cjs +0 -20
  318. package/bin/session-replay-window-policy.cjs +0 -40
  319. package/bin/session-resume-checkpoint.cjs +0 -254
  320. package/bin/session-scrollback-archive.cjs +0 -229
  321. package/bin/skill-activation-performance-policy.cjs +0 -69
  322. package/bin/skill-listing-performance-policy.cjs +0 -92
  323. package/bin/soul-organization-policy.cjs +0 -78
  324. package/bin/soul-preservation-policy.cjs +0 -20
  325. package/bin/startup-preferences.cjs +0 -131
  326. package/bin/streaming-flush-performance-policy.cjs +0 -28
  327. package/bin/structured-agent-swarm-output.cjs +0 -325
  328. package/bin/structured-subagent-output.cjs +0 -252
  329. package/bin/subagent-context-fork-policy.cjs +0 -155
  330. package/bin/subagent-max-tokens-handoff-policy.cjs +0 -69
  331. package/bin/subagent-parent-responsiveness.cjs +0 -19
  332. package/bin/subagent-skill-policy.cjs +0 -206
  333. package/bin/subagent-timeout-policy.cjs +0 -182
  334. package/bin/subagent-tool-policy.cjs +0 -60
  335. package/bin/subagent-usage-rollup-policy.cjs +0 -29
  336. package/bin/system-prompt-context-policy.cjs +0 -124
  337. package/bin/system-prompt-token-cache-policy.cjs +0 -60
  338. package/bin/telegram-addressed-focus.cjs +0 -55
  339. package/bin/telegram-addressed-priority.cjs +0 -12
  340. package/bin/telegram-approval-relay.cjs +0 -290
  341. package/bin/telegram-bot-priority.cjs +0 -17
  342. package/bin/telegram-console-status-policy.cjs +0 -174
  343. package/bin/telegram-context-projection-policy.cjs +0 -141
  344. package/bin/telegram-delivery-lifecycle.cjs +0 -125
  345. package/bin/telegram-direct-focus-policy.cjs +0 -273
  346. package/bin/telegram-mcp-compatibility.cjs +0 -49
  347. package/bin/telegram-media-delivery-policy.cjs +0 -42
  348. package/bin/telegram-private-conversation-policy.cjs +0 -185
  349. package/bin/telegram-queue-handoff-policy.cjs +0 -73
  350. package/bin/telegram-remote-status-policy.cjs +0 -120
  351. package/bin/telegram-session-queue-runtime.mjs +0 -306
  352. package/bin/telegram-text-chunk-policy.cjs +0 -63
  353. package/bin/telegram-truncated-reply-policy.cjs +0 -37
  354. package/bin/telegram-urgent-policy.cjs +0 -45
  355. package/bin/telemetry-spool-policy.cjs +0 -57
  356. package/bin/thinking-activity-status-policy.cjs +0 -132
  357. package/bin/thinking-only-guard.cjs +0 -80
  358. package/bin/todo-list-turn-policy.cjs +0 -131
  359. package/bin/tool-call-loop-policy.cjs +0 -51
  360. package/bin/tool-file-persistence.cjs +0 -141
  361. package/bin/tool-result-offload-policy.cjs +0 -359
  362. package/bin/tool-result-offload-telemetry.cjs +0 -12
  363. package/bin/tool-schema-token-cache-policy.cjs +0 -41
  364. package/bin/tool-stream-preview-policy.cjs +0 -9
  365. package/bin/tui-functional-contract.cjs +0 -55
  366. package/bin/turn-tool-performance-policy.cjs +0 -486
  367. package/bin/usage-cache-efficiency-policy.cjs +0 -26
  368. package/bin/user-home-path-policy.cjs +0 -13
  369. package/bin/user-message-offload-policy.cjs +0 -103
  370. package/bin/user-prompt-hook-origin-policy.cjs +0 -34
  371. package/bin/user-tool-record-policy.cjs +0 -7
  372. package/bin/validated-learning-insight-policy.cjs +0 -58
  373. package/bin/validated-learning-outcome-trace.cjs +0 -107
  374. package/bin/validated-learning-performance-policy.cjs +0 -53
  375. package/bin/validated-learning-signal.cjs +0 -463
  376. package/bin/windows-bash-dialect-policy.cjs +0 -25
  377. package/bin/windows-node-crash-dump.cjs +0 -110
  378. package/bin/write-continuation-policy.cjs +0 -69
  379. package/codebase-index/README.md +0 -82
  380. package/codebase-index/codebase_index.py +0 -470
  381. package/standard-skills/agent-browser/SKILL.md +0 -19
  382. package/standard-skills/agent-browser/references/runtime.md +0 -8
  383. package/standard-skills/blun-session-inspector/SKILL.md +0 -41
  384. package/standard-skills/blun-session-inspector/scripts/inspect-session.cjs +0 -437
  385. package/standard-skills/design-taste-frontend/SKILL.md +0 -1206
  386. package/standard-skills/full-output-enforcement/SKILL.md +0 -49
  387. package/standard-skills/high-end-visual-design/SKILL.md +0 -98
  388. package/standard-skills/image-to-code/SKILL.md +0 -1228
  389. package/standard-skills/industrial-brutalist-ui/SKILL.md +0 -92
  390. package/standard-skills/minimalist-ui/SKILL.md +0 -85
  391. package/standard-skills/motion-design-taste/SKILL.md +0 -74
  392. package/standard-skills/playwright-testing/SKILL.md +0 -19
  393. package/standard-skills/playwright-testing/references/runtime.md +0 -7
  394. package/standard-skills/premortem/SKILL.md +0 -148
  395. package/standard-skills/redesign-existing-projects/SKILL.md +0 -178
  396. package/standard-skills/research-evidence/SKILL.md +0 -39
  397. package/standard-skills/research-evidence/references/evidence-format.md +0 -104
  398. package/standard-skills/research-evidence/scripts/evidence-collection.cjs +0 -260
  399. package/standard-skills/research-evidence/scripts/score-report.cjs +0 -130
  400. package/standard-skills/screenshot-lesen/SKILL.md +0 -52
  401. package/standard-skills/stitch-design-taste/DESIGN.md +0 -121
  402. package/standard-skills/stitch-design-taste/SKILL.md +0 -184
  403. package/standard-skills/telegram-channel/SKILL.md +0 -18
  404. package/standard-skills/telegram-channel/references/runtime.md +0 -7
  405. package/standard-skills/venture-flywheel/SKILL.md +0 -32
  406. package/standard-skills/venture-flywheel/identity/project-identity.cjs +0 -146
  407. package/standard-skills/venture-flywheel/policy/capability-engine.cjs +0 -114
  408. package/standard-skills/venture-flywheel/policy/repository-trust.cjs +0 -229
  409. package/standard-skills/venture-flywheel/references/BEISPIELE-phase0.md +0 -146
  410. package/standard-skills/venture-flywheel/references/CAPABILITY-MAP.md +0 -34
  411. package/standard-skills/venture-flywheel/references/SPEC-phase0-identity-trust.md +0 -77
  412. package/standard-skills/venture-flywheel/references/SPEC-phase0-state-events.md +0 -93
  413. package/standard-skills/venture-flywheel/schemas/capability-decision.schema.json +0 -13
  414. package/standard-skills/venture-flywheel/schemas/execution-event.schema.json +0 -44
  415. package/standard-skills/venture-flywheel/schemas/project-identity.schema.json +0 -32
  416. package/standard-skills/venture-flywheel/schemas/repository-trust.schema.json +0 -57
  417. package/standard-skills/venture-flywheel/schemas/run-transition.schema.json +0 -59
  418. package/standard-skills/venture-flywheel/state/execution-event.cjs +0 -191
  419. package/standard-skills/venture-flywheel/state/task-state-machine.cjs +0 -190
  420. package/standard-skills/web-lesen/SKILL.md +0 -73
  421. package/standard-skills/web-lesen/scripts/crawl_public.py +0 -379
  422. package/standard-skills/windows-mcp/SKILL.md +0 -19
  423. package/standard-skills/windows-mcp/references/runtime.md +0 -9
  424. package/telegram-plugin/DELIVERY.md +0 -36
  425. package/telegram-plugin/bin/telegram-approval-relay.cjs +0 -290
  426. package/telegram-plugin/bin/telegram-console-status-policy.cjs +0 -175
  427. package/telegram-plugin/bin/telegram-delivery-lifecycle.cjs +0 -125
  428. package/telegram-plugin/bin/telegram-direct-reply-policy.cjs +0 -48
  429. package/telegram-plugin/bin/telegram-launcher-status-queue.cjs +0 -122
  430. package/telegram-plugin/bin/telegram-private-conversation-policy.cjs +0 -186
  431. package/telegram-plugin/bin/telegram-remote-status-policy.cjs +0 -121
  432. package/telegram-plugin/bin/telegram-reply-parts.cjs +0 -149
  433. package/telegram-plugin/bin/telegram-text-chunk-policy.cjs +0 -63
  434. package/telegram-plugin/bin/telegram-typing-keepalive.cjs +0 -89
  435. package/telegram-plugin/compat/mcp-server-fa511cd1.mjs +0 -73825
  436. /package/{bin → scripts}/fix-node-pty-perms.js +0 -0
@@ -1,443 +0,0 @@
1
- 'use strict';
2
-
3
- const crypto = require('node:crypto');
4
- const fs = require('node:fs');
5
- const os = require('node:os');
6
- const path = require('node:path');
7
-
8
- const { openCognitiveMemoryAdapter } = require('./cognitive-memory-adapter.cjs');
9
- const { resolveCognitiveEvidenceGroup } = require('./cognitive-effective-view.cjs');
10
- const { loadConfiguredCognitiveMemoryAdapter } = require('./cognitive-memory-provider.cjs');
11
-
12
- const PACKAGE_VERSION = require('../package.json').version;
13
- const SCHEMA = 'blun.cognitive-cross-portal-acceptance/v1';
14
- const FIXED_TIME = '2031-04-05T09:00:00.000Z';
15
- const TENANT_ID = 'tenant-v7';
16
- const AGENT_ID = 'nova';
17
- const USER_ID = 'mayk';
18
- const PRIVATE_SCOPE = `relationship:${USER_ID}:private`;
19
-
20
- function digest(value) {
21
- return crypto.createHash('sha256').update(String(value)).digest('hex');
22
- }
23
-
24
- function requireCondition(condition, code) {
25
- if (!condition) {
26
- const error = new Error(code);
27
- error.code = code;
28
- throw error;
29
- }
30
- }
31
-
32
- function addCheck(checks, id, detail, evidence) {
33
- checks.push({
34
- id,
35
- status: 'PASS',
36
- detail,
37
- receipt: digest(`${SCHEMA}\0${id}\0${JSON.stringify(evidence)}`),
38
- });
39
- }
40
-
41
- function identityLink({ portalId, actorId, method, authority, receiptId }) {
42
- return {
43
- version: 1,
44
- tenantId: TENANT_ID,
45
- canonicalUserId: USER_ID,
46
- sourcePortal: portalId,
47
- sourceSubjectId: actorId,
48
- method,
49
- status: 'active',
50
- confirmedAt: FIXED_TIME,
51
- authority,
52
- receiptId,
53
- };
54
- }
55
-
56
- function linkedAccess({ portalId, actorId, channelId, conversationId, method, authority, receiptId }) {
57
- return {
58
- tenantId: TENANT_ID,
59
- userId: USER_ID,
60
- actorId,
61
- agentId: AGENT_ID,
62
- portalId,
63
- channelId,
64
- conversationId,
65
- requestedScope: PRIVATE_SCOPE,
66
- permissionContext: {
67
- authority: 'runtime_user_prompt_hook',
68
- decision: 'passed',
69
- receiptId: `operation-${receiptId}`,
70
- identityReceiptId: receiptId,
71
- },
72
- identityLink: identityLink({ portalId, actorId, method, authority, receiptId }),
73
- };
74
- }
75
-
76
- function directAccess({ agentId = AGENT_ID, userId, portalId, channelId, conversationId, requestedScope }) {
77
- return {
78
- tenantId: TENANT_ID,
79
- userId,
80
- actorId: userId,
81
- agentId,
82
- portalId,
83
- channelId,
84
- conversationId,
85
- requestedScope,
86
- permissionContext: {
87
- authority: 'runtime_user_prompt_hook',
88
- decision: 'passed',
89
- receiptId: `operation-${conversationId}`,
90
- },
91
- };
92
- }
93
-
94
- function event({
95
- agentId = AGENT_ID,
96
- eventId,
97
- expectedVersion,
98
- occurredAt,
99
- source,
100
- observationId,
101
- domain = 'open_thread',
102
- key,
103
- value,
104
- scope,
105
- supersedes,
106
- withdraws,
107
- retentionClass = 'relationship',
108
- }) {
109
- return {
110
- tenantId: TENANT_ID,
111
- agentId,
112
- eventId,
113
- expectedVersion,
114
- occurredAt,
115
- receivedAt: occurredAt,
116
- retentionClass,
117
- source,
118
- observations: [{
119
- observation_id: observationId,
120
- domain,
121
- key,
122
- value,
123
- confidence: 1,
124
- epistemic_state: 'verified',
125
- scope,
126
- ...(supersedes ? { supersedes } : {}),
127
- ...(withdraws ? { withdraws } : {}),
128
- }],
129
- };
130
- }
131
-
132
- function effectiveObservation(items, key, scope) {
133
- const entries = items
134
- .filter((item) => item.key === key && item.scope === scope)
135
- .map((item, index) => ({
136
- ...item,
137
- observationId: item.observation_id,
138
- occurredAt: Date.parse(item.occurred_at),
139
- index,
140
- }));
141
- return resolveCognitiveEvidenceGroup(entries);
142
- }
143
-
144
- function sourceHashes(root, files) {
145
- return Object.fromEntries(files.map((name) => [
146
- name,
147
- digest(fs.readFileSync(path.join(root, name))),
148
- ]));
149
- }
150
-
151
- function renderCognitiveCrossPortalAcceptance(report) {
152
- const lines = [`/memory acceptance ${report.ok ? 'PASS' : 'FAIL'} ${report.passed}/${report.total}`];
153
- for (const check of report.checks) {
154
- lines.push(`${check.id} ${check.status} receipt=${check.receipt.slice(0, 16)}`);
155
- }
156
- lines.push(`receipt=${report.receiptDigest}`);
157
- lines.push('synthetic temporary state; evidence only; grants no authority');
158
- return lines.join('\n');
159
- }
160
-
161
- function runCognitiveCrossPortalAcceptance() {
162
- const root = fs.mkdtempSync(path.join(os.tmpdir(), 'blun-v7-cross-portal-'));
163
- const protectedFiles = ['SOUL.md', 'identity/manifest.json'];
164
- let adapter;
165
- try {
166
- fs.mkdirSync(path.join(root, 'identity'), { recursive: true });
167
- fs.writeFileSync(path.join(root, 'SOUL.md'), '# Nova\n\nWarm, precise, and honest.\n', 'utf8');
168
- fs.writeFileSync(path.join(root, 'identity', 'manifest.json'), `${JSON.stringify({
169
- version: 1,
170
- tenant_id: TENANT_ID,
171
- active_agent_id: AGENT_ID,
172
- })}\n`, 'utf8');
173
- const before = sourceHashes(root, protectedFiles);
174
- adapter = openCognitiveMemoryAdapter({ home: root });
175
- const checks = [];
176
-
177
- const telegram = linkedAccess({
178
- portalId: 'telegram',
179
- actorId: 'telegram-42',
180
- channelId: 'direct',
181
- conversationId: 'dm-42',
182
- method: 'explicit_confirmed',
183
- authority: 'identity_confirmation_service',
184
- receiptId: 'identity-telegram-42',
185
- });
186
- const web = linkedAccess({
187
- portalId: 'web',
188
- actorId: 'oauth-77',
189
- channelId: 'chat',
190
- conversationId: 'web-chat-77',
191
- method: 'verified_oauth',
192
- authority: 'oauth_verifier',
193
- receiptId: 'identity-oauth-77',
194
- });
195
- const cli = linkedAccess({
196
- portalId: 'cli',
197
- actorId: 'cli-profile-7',
198
- channelId: 'terminal',
199
- conversationId: 'cli-session-7',
200
- method: 'secure_account_link',
201
- authority: 'account_link_service',
202
- receiptId: 'identity-cli-profile-7',
203
- });
204
- const initialEvent = event({
205
- eventId: 'event-telegram-topic',
206
- expectedVersion: 0,
207
- occurredAt: '2031-04-05T09:01:00.000Z',
208
- source: {
209
- provider: 'telegram',
210
- channel_id: 'direct',
211
- actor_id: 'telegram-42',
212
- context_id: 'dm-42',
213
- message_id: 'telegram-message-1',
214
- },
215
- observationId: 'observation-shared-topic-v1',
216
- key: 'shared-topic',
217
- value: 'continue after the measured result',
218
- scope: PRIVATE_SCOPE,
219
- });
220
- const firstCommit = adapter.commit(initialEvent, telegram);
221
- const fromWeb = adapter.read({ tenantId: TENANT_ID, agentId: AGENT_ID }, web);
222
- const webTopic = fromWeb.observations.find((item) => item.observation_id === 'observation-shared-topic-v1');
223
- requireCondition(webTopic?.source?.provider === 'telegram'
224
- && webTopic.source.channel_id === 'direct', 'ACCEPTANCE_PORTAL_PROVENANCE_FAILED');
225
- addCheck(checks, 'portal-provenance', 'Telegram provenance remains visible after a Web read.', [
226
- webTopic.source.provider,
227
- webTopic.source.channel_id,
228
- webTopic.source.message_id,
229
- ]);
230
-
231
- const fromCli = adapter.read({ tenantId: TENANT_ID, agentId: AGENT_ID }, cli);
232
- requireCondition(fromWeb.observations.length === 1 && fromCli.observations.length === 1,
233
- 'ACCEPTANCE_LINKED_IDENTITY_FAILED');
234
- addCheck(checks, 'linked-identity', 'One confirmed identity reads the same memory in Web and CLI.', [
235
- fromWeb.observations[0].observation_id,
236
- fromCli.observations[0].observation_id,
237
- ]);
238
-
239
- const unlinkedWeb = directAccess({
240
- userId: 'oauth-77',
241
- portalId: 'web',
242
- channelId: 'chat',
243
- conversationId: 'web-chat-unlinked',
244
- requestedScope: 'relationship:oauth-77:private',
245
- });
246
- const unlinked = adapter.read({ tenantId: TENANT_ID, agentId: AGENT_ID }, unlinkedWeb);
247
- requireCondition(unlinked.observations.length === 0, 'ACCEPTANCE_UNLINKED_ISOLATION_FAILED');
248
- addCheck(checks, 'unlinked-isolation', 'A similarly named but unlinked Web identity sees no private memory.', 0);
249
-
250
- const atlasAccess = directAccess({
251
- agentId: 'atlas',
252
- userId: 'atlas-user',
253
- portalId: 'cli',
254
- channelId: 'terminal',
255
- conversationId: 'atlas-session',
256
- requestedScope: 'user:atlas-user:private',
257
- });
258
- adapter.commit(event({
259
- agentId: 'atlas',
260
- eventId: 'event-atlas-only',
261
- expectedVersion: 0,
262
- occurredAt: '2031-04-05T09:02:00.000Z',
263
- source: {
264
- provider: 'cli',
265
- channel_id: 'terminal',
266
- actor_id: 'atlas-user',
267
- context_id: 'atlas-session',
268
- message_id: 'atlas-message-1',
269
- },
270
- observationId: 'observation-atlas-only',
271
- key: 'agent-only',
272
- value: 'atlas private state',
273
- scope: 'user:atlas-user:private',
274
- }), atlasAccess);
275
- requireCondition(adapter.read({ tenantId: TENANT_ID, agentId: AGENT_ID }, web)
276
- .observations.every((item) => item.observation_id !== 'observation-atlas-only'),
277
- 'ACCEPTANCE_AGENT_ISOLATION_FAILED');
278
- addCheck(checks, 'agent-isolation', 'A second agent stream remains outside Nova private reads.', 'atlas');
279
-
280
- const nordAccess = directAccess({
281
- userId: 'nord-member',
282
- portalId: 'web',
283
- channelId: 'group',
284
- conversationId: 'group-nord',
285
- requestedScope: 'team:nord',
286
- });
287
- const solAccess = directAccess({
288
- userId: 'sol-member',
289
- portalId: 'web',
290
- channelId: 'group',
291
- conversationId: 'group-sol',
292
- requestedScope: 'team:sol',
293
- });
294
- adapter.commit(event({
295
- eventId: 'event-nord-blocker',
296
- expectedVersion: 1,
297
- occurredAt: '2031-04-05T09:03:00.000Z',
298
- source: {
299
- provider: 'web',
300
- channel_id: 'group',
301
- actor_id: 'nord-member',
302
- context_id: 'group-nord',
303
- message_id: 'nord-message-1',
304
- },
305
- observationId: 'observation-nord-blocker',
306
- domain: 'team',
307
- key: 'group-blocker',
308
- value: 'nord synthetic blocker',
309
- scope: 'team:nord',
310
- retentionClass: 'operational',
311
- }), nordAccess);
312
- const nord = adapter.read({ tenantId: TENANT_ID, agentId: AGENT_ID }, nordAccess);
313
- const sol = adapter.read({ tenantId: TENANT_ID, agentId: AGENT_ID }, solAccess);
314
- requireCondition(nord.observations.length === 1 && sol.observations.length === 0,
315
- 'ACCEPTANCE_GROUP_ISOLATION_FAILED');
316
- addCheck(checks, 'group-isolation', 'The Nord scope receives its blocker while the Sol scope remains empty.', [
317
- nord.observations[0].observation_id,
318
- sol.observations.length,
319
- ]);
320
-
321
- const replay = adapter.commit(initialEvent, telegram);
322
- requireCondition(replay.idempotent === true && replay.version === firstCommit.version,
323
- 'ACCEPTANCE_DEDUPLICATION_FAILED');
324
- addCheck(checks, 'deduplication', 'Replaying the same portal event creates no second memory event.', [
325
- replay.version,
326
- replay.idempotent,
327
- ]);
328
-
329
- adapter.commit(event({
330
- eventId: 'event-web-correction',
331
- expectedVersion: 2,
332
- occurredAt: '2031-04-05T09:04:00.000Z',
333
- source: {
334
- provider: 'web',
335
- channel_id: 'chat',
336
- actor_id: 'oauth-77',
337
- context_id: 'web-chat-77',
338
- message_id: 'web-message-2',
339
- },
340
- observationId: 'observation-shared-topic-v2',
341
- key: 'shared-topic',
342
- value: 'continue after the verified result',
343
- scope: PRIVATE_SCOPE,
344
- supersedes: 'observation-shared-topic-v1',
345
- }), web);
346
- const correctedCli = adapter.read({ tenantId: TENANT_ID, agentId: AGENT_ID }, cli);
347
- const corrected = effectiveObservation(correctedCli.observations, 'shared-topic', PRIVATE_SCOPE);
348
- requireCondition(corrected?.value === 'continue after the verified result'
349
- && corrected.supersedes === 'observation-shared-topic-v1', 'ACCEPTANCE_GLOBAL_CORRECTION_FAILED');
350
- addCheck(checks, 'global-correction', 'A Web correction becomes the effective CLI value and keeps history.', [
351
- corrected.observationId,
352
- corrected.supersedes,
353
- correctedCli.observations.length,
354
- ]);
355
-
356
- adapter.commit(event({
357
- eventId: 'event-cli-deletion',
358
- expectedVersion: 3,
359
- occurredAt: '2031-04-05T09:05:00.000Z',
360
- source: {
361
- provider: 'cli',
362
- channel_id: 'terminal',
363
- actor_id: 'cli-profile-7',
364
- context_id: 'cli-session-7',
365
- message_id: 'cli-message-3',
366
- },
367
- observationId: 'observation-shared-topic-deleted',
368
- key: 'shared-topic',
369
- value: 'withdrawn',
370
- scope: PRIVATE_SCOPE,
371
- withdraws: 'observation-shared-topic-v2',
372
- }), cli);
373
- const deletedWeb = adapter.read({ tenantId: TENANT_ID, agentId: AGENT_ID }, web);
374
- requireCondition(effectiveObservation(deletedWeb.observations, 'shared-topic', PRIVATE_SCOPE) === null
375
- && deletedWeb.observations.some((item) => item.withdraws === 'observation-shared-topic-v2'),
376
- 'ACCEPTANCE_GLOBAL_DELETION_FAILED');
377
- addCheck(checks, 'global-deletion', 'A CLI deletion removes the active Web value while retaining its tombstone.', [
378
- deletedWeb.observations.length,
379
- 'observation-shared-topic-deleted',
380
- ]);
381
-
382
- const beforeProviderFailure = adapter.read({ tenantId: TENANT_ID, agentId: AGENT_ID }, web);
383
- let providerError = '';
384
- try {
385
- loadConfiguredCognitiveMemoryAdapter({
386
- modulePath: path.join(root, 'missing-provider.cjs'),
387
- home: root,
388
- tenantId: TENANT_ID,
389
- agentId: AGENT_ID,
390
- agentName: 'Nova',
391
- });
392
- } catch (error) {
393
- providerError = error?.code ?? '';
394
- }
395
- const afterProviderFailure = adapter.read({ tenantId: TENANT_ID, agentId: AGENT_ID }, web);
396
- requireCondition(providerError === 'COGNITIVE_MEMORY_PROVIDER_PATH_INVALID'
397
- && JSON.stringify(beforeProviderFailure) === JSON.stringify(afterProviderFailure),
398
- 'ACCEPTANCE_PROVIDER_FAIL_CLOSED_FAILED');
399
- addCheck(checks, 'provider-fail-closed', 'An unavailable provider fails before changing the existing memory stream.', [
400
- providerError,
401
- afterProviderFailure.version,
402
- ]);
403
-
404
- const after = sourceHashes(root, protectedFiles);
405
- const novaVerification = adapter.verify({ tenantId: TENANT_ID, agentId: AGENT_ID }, web);
406
- const atlasVerification = adapter.verify({ tenantId: TENANT_ID, agentId: 'atlas' }, atlasAccess);
407
- requireCondition(JSON.stringify(before) === JSON.stringify(after)
408
- && novaVerification.valid === true && atlasVerification.valid === true,
409
- 'ACCEPTANCE_BYTE_PRESERVATION_FAILED');
410
- addCheck(checks, 'byte-preservation', 'Synthetic SOUL and identity source bytes remain unchanged and both chains verify.', [
411
- after,
412
- novaVerification.valid,
413
- atlasVerification.valid,
414
- ]);
415
-
416
- const report = {
417
- schema: SCHEMA,
418
- version: PACKAGE_VERSION,
419
- scenarioId: 'v7-cross-portal-memory-v1',
420
- ok: true,
421
- passed: checks.length,
422
- total: checks.length,
423
- portals: ['cli', 'telegram', 'web'],
424
- checks,
425
- protectedSourceHashes: after,
426
- receiptDigest: digest(checks.map((check) => `${check.id}:${check.receipt}`).join('\n')),
427
- scope: 'synthetic-temporary-state',
428
- authority: 'acceptance-evidence-only',
429
- };
430
- adapter.close();
431
- adapter = undefined;
432
- return report;
433
- } finally {
434
- try { adapter?.close(); } catch {}
435
- fs.rmSync(root, { recursive: true, force: true });
436
- }
437
- }
438
-
439
- module.exports = {
440
- renderCognitiveCrossPortalAcceptance,
441
- runCognitiveCrossPortalAcceptance,
442
- };
443
-
@@ -1,77 +0,0 @@
1
- 'use strict';
2
-
3
- const CANONICAL_LATEST_DOMAINS = new Set([
4
- 'goal', 'open_thread', 'knowledge_gap', 'next_trigger', 'expected_evidence',
5
- ]);
6
- const CONFIDENCE_MARGIN = 0.2;
7
-
8
- function compareVariants(left, right) {
9
- return right.maxConfidence - left.maxConfidence
10
- || right.confirmations - left.confirmations
11
- || right.latestOccurredAt - left.latestOccurredAt
12
- || left.value.localeCompare(right.value);
13
- }
14
-
15
- function resolveCognitiveEvidenceGroup(entries) {
16
- if (!Array.isArray(entries) || entries.length === 0) return null;
17
- const withdrawals = entries.filter((item) => Boolean(item.withdraws));
18
- const deletionCutoff = withdrawals.length > 0
19
- ? Math.max(...withdrawals.map((item) => item.occurredAt)) : Number.NEGATIVE_INFINITY;
20
- const evidence = entries.filter((item) => !item.withdraws && item.occurredAt > deletionCutoff);
21
- const superseded = new Set(evidence.map((item) => item.supersedes).filter(Boolean));
22
- const active = evidence.filter((item) => !superseded.has(item.observationId));
23
- if (active.length === 0) return null;
24
- const ordered = [...active].sort((left, right) => left.occurredAt - right.occurredAt
25
- || left.index - right.index);
26
- const latest = ordered.at(-1);
27
- const corrected = ordered.some((item) => Boolean(item.supersedes));
28
- const distinctValues = new Set(ordered.map((item) => item.value));
29
- if (distinctValues.size === 1) return { ...latest, revised: false, corrected, contested: false, conflict: false };
30
- if (CANONICAL_LATEST_DOMAINS.has(latest.domain)) {
31
- return { ...latest, revised: true, corrected, contested: false, conflict: false };
32
- }
33
-
34
- const variants = new Map();
35
- for (const item of ordered) {
36
- const variant = variants.get(item.value) ?? {
37
- value: item.value,
38
- maxConfidence: item.confidence,
39
- confirmations: 0,
40
- latestOccurredAt: item.occurredAt,
41
- representative: item,
42
- };
43
- variant.confirmations += 1;
44
- variant.latestOccurredAt = Math.max(variant.latestOccurredAt, item.occurredAt);
45
- if (item.confidence > variant.maxConfidence
46
- || item.confidence === variant.maxConfidence && item.occurredAt >= variant.representative.occurredAt) {
47
- variant.maxConfidence = item.confidence;
48
- variant.representative = item;
49
- }
50
- variants.set(item.value, variant);
51
- }
52
- const ranked = [...variants.values()].sort(compareVariants);
53
- const strongest = ranked[0];
54
- const runnerUp = ranked[1];
55
- if (strongest.maxConfidence - runnerUp.maxConfidence >= CONFIDENCE_MARGIN - Number.EPSILON) {
56
- return {
57
- ...strongest.representative,
58
- confidence: strongest.maxConfidence,
59
- occurredAt: strongest.latestOccurredAt,
60
- revised: false,
61
- corrected,
62
- contested: true,
63
- conflict: false,
64
- };
65
- }
66
- return {
67
- ...latest,
68
- confidence: strongest.maxConfidence,
69
- occurredAt: Math.max(...ranked.map((item) => item.latestOccurredAt)),
70
- revised: false,
71
- corrected,
72
- contested: false,
73
- conflict: true,
74
- };
75
- }
76
-
77
- module.exports = { resolveCognitiveEvidenceGroup };