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
@@ -0,0 +1,414 @@
1
+ #!/usr/bin/env python3
2
+ """Validated composition root for the durable CMS reference receiver.
3
+
4
+ The factory validates the complete receiver boundary before opening SQLite, then
5
+ owns exactly one connection, durable store, and WSGI application. Deployments
6
+ must construct one runtime per WSGI worker process; request threads inside that
7
+ process may share the runtime through its serialized store boundary.
8
+ """
9
+
10
+ from __future__ import annotations
11
+
12
+ import importlib.util
13
+ import os
14
+ import sqlite3
15
+ import stat
16
+ import sys
17
+ import threading
18
+ import time
19
+ from pathlib import Path
20
+ from typing import Any, Callable, Mapping
21
+
22
+
23
+ def _load_module(name: str, path: Path):
24
+ spec = importlib.util.spec_from_file_location(name, path)
25
+ if spec is None or spec.loader is None:
26
+ raise RuntimeError(f"cannot load required CMS runtime dependency: {path.name}")
27
+ module = importlib.util.module_from_spec(spec)
28
+ sys.modules[spec.name] = module
29
+ spec.loader.exec_module(module)
30
+ return module
31
+
32
+
33
+ _ROOT = Path(__file__).resolve().parents[1]
34
+ _RECEIVER = _load_module(
35
+ "blun_website_localization_composed_cms_receiver",
36
+ _ROOT / "integrations" / "website_localization_cms_receiver.py",
37
+ )
38
+ _STORE = _load_module(
39
+ "blun_website_localization_composed_cms_receiver_store",
40
+ _ROOT / "integrations" / "website_localization_cms_receiver_store.py",
41
+ )
42
+
43
+
44
+ class DurableCMSReceiverRuntimeBlocked(RuntimeError):
45
+ """Private composition failure that must not be exposed to HTTP clients."""
46
+
47
+
48
+ def _database_path(value: Any) -> str:
49
+ try:
50
+ result = os.fspath(value)
51
+ except TypeError as error:
52
+ raise DurableCMSReceiverRuntimeBlocked("database path is invalid") from error
53
+ if isinstance(result, bytes):
54
+ raise DurableCMSReceiverRuntimeBlocked("database path must be Unicode")
55
+ if (
56
+ not isinstance(result, str)
57
+ or not result
58
+ or "\x00" in result
59
+ or result.startswith("file:")
60
+ ):
61
+ raise DurableCMSReceiverRuntimeBlocked("database path is invalid")
62
+ if result == ":memory:":
63
+ return result
64
+ if (
65
+ os.name != "posix"
66
+ or not os.path.isabs(result)
67
+ or os.path.normpath(result) != result
68
+ ):
69
+ raise DurableCMSReceiverRuntimeBlocked(
70
+ "database path must be a canonical absolute POSIX path"
71
+ )
72
+ return result
73
+
74
+
75
+ def _validate_database_parent(database_path: str) -> None:
76
+ parent = os.path.dirname(database_path)
77
+ current = parent
78
+ first = True
79
+ while True:
80
+ try:
81
+ current_stat = os.lstat(current)
82
+ except OSError as error:
83
+ raise DurableCMSReceiverRuntimeBlocked(
84
+ "CMS receiver database directory is unavailable"
85
+ ) from error
86
+ mode = stat.S_IMODE(current_stat.st_mode)
87
+ sticky_root_directory = (
88
+ current_stat.st_uid == 0
89
+ and bool(mode & stat.S_ISVTX)
90
+ and bool(mode & 0o002)
91
+ )
92
+ if (
93
+ not stat.S_ISDIR(current_stat.st_mode)
94
+ or current_stat.st_uid not in {0, os.geteuid()}
95
+ or (first and current_stat.st_uid != os.geteuid())
96
+ or (mode & 0o022 and not sticky_root_directory)
97
+ ):
98
+ raise DurableCMSReceiverRuntimeBlocked(
99
+ "CMS receiver database directory is not private"
100
+ )
101
+ parent_of_current = os.path.dirname(current)
102
+ if parent_of_current == current:
103
+ break
104
+ current = parent_of_current
105
+ first = False
106
+
107
+
108
+ def _validate_database_file(
109
+ database_path: str,
110
+ expected_identity: tuple[int, int] | None = None,
111
+ ) -> tuple[int, int]:
112
+ try:
113
+ database_stat = os.lstat(database_path)
114
+ except OSError as error:
115
+ raise DurableCMSReceiverRuntimeBlocked(
116
+ "CMS receiver database file is unavailable"
117
+ ) from error
118
+ identity = (database_stat.st_dev, database_stat.st_ino)
119
+ if (
120
+ not stat.S_ISREG(database_stat.st_mode)
121
+ or database_stat.st_uid != os.geteuid()
122
+ or database_stat.st_nlink != 1
123
+ or stat.S_IMODE(database_stat.st_mode) != 0o600
124
+ or (expected_identity is not None and identity != expected_identity)
125
+ ):
126
+ raise DurableCMSReceiverRuntimeBlocked(
127
+ "CMS receiver database file is not private"
128
+ )
129
+ return identity
130
+
131
+
132
+ def _prepare_database_file(database_path: str) -> Callable[[], None]:
133
+ if database_path == ":memory:":
134
+ return lambda: None
135
+
136
+ _validate_database_parent(database_path)
137
+ try:
138
+ identity = _validate_database_file(database_path)
139
+ except DurableCMSReceiverRuntimeBlocked as error:
140
+ if error.__cause__ is None or not isinstance(
141
+ error.__cause__, FileNotFoundError
142
+ ):
143
+ raise
144
+ flags = os.O_CREAT | os.O_EXCL | os.O_RDWR
145
+ flags |= getattr(os, "O_CLOEXEC", 0)
146
+ flags |= getattr(os, "O_NOFOLLOW", 0)
147
+ try:
148
+ descriptor = os.open(database_path, flags, 0o600)
149
+ except FileExistsError:
150
+ identity = _validate_database_file(database_path)
151
+ except OSError as create_error:
152
+ raise DurableCMSReceiverRuntimeBlocked(
153
+ "CMS receiver database file could not be created"
154
+ ) from create_error
155
+ else:
156
+ try:
157
+ os.fchmod(descriptor, 0o600)
158
+ created_stat = os.fstat(descriptor)
159
+ identity = (created_stat.st_dev, created_stat.st_ino)
160
+ if (
161
+ not stat.S_ISREG(created_stat.st_mode)
162
+ or created_stat.st_uid != os.geteuid()
163
+ or created_stat.st_nlink != 1
164
+ or stat.S_IMODE(created_stat.st_mode) != 0o600
165
+ ):
166
+ raise DurableCMSReceiverRuntimeBlocked(
167
+ "CMS receiver database file was not created privately"
168
+ )
169
+ finally:
170
+ os.close(descriptor)
171
+
172
+ def guard() -> None:
173
+ _validate_database_parent(database_path)
174
+ _validate_database_file(database_path, identity)
175
+
176
+ guard()
177
+ return guard
178
+
179
+
180
+ def _unused(*_args: Any, **_kwargs: Any) -> Mapping[str, Any]:
181
+ return {}
182
+
183
+
184
+ class _SynchronizedStore:
185
+ """Serialize every use of one worker-owned SQLite connection."""
186
+
187
+ def __init__(
188
+ self,
189
+ connection: sqlite3.Connection,
190
+ store: Any,
191
+ database_guard: Callable[[], None],
192
+ ):
193
+ self._connection = connection
194
+ self._store = store
195
+ self._lock = threading.RLock()
196
+ self._database_guard = database_guard
197
+ self._closed = False
198
+ self._owner_pid = os.getpid()
199
+
200
+ def _assert_owner(self) -> None:
201
+ # This check must precede lock acquisition. After fork, an inherited
202
+ # RLock may have been held by a parent thread that no longer exists.
203
+ if os.getpid() != self._owner_pid:
204
+ raise DurableCMSReceiverRuntimeBlocked(
205
+ "CMS receiver runtime belongs to another process"
206
+ )
207
+
208
+ def _call(self, name: str, *args: Any) -> Any:
209
+ self._assert_owner()
210
+ with self._lock:
211
+ if self._closed:
212
+ raise DurableCMSReceiverRuntimeBlocked(
213
+ "CMS receiver runtime is closed"
214
+ )
215
+ self._database_guard()
216
+ try:
217
+ return getattr(self._store, name)(*args)
218
+ except _STORE.CMSReceiverStoreBlocked as error:
219
+ raise DurableCMSReceiverRuntimeBlocked(
220
+ "CMS receiver store operation failed"
221
+ ) from error
222
+
223
+ def resolve_publication_expectation(self, value: Any) -> Mapping[str, Any]:
224
+ return self._call("resolve_publication_expectation", value)
225
+
226
+ def commit(self, value: Any) -> Mapping[str, Any]:
227
+ return self._call("commit", value)
228
+
229
+ def resolve_tombstone_expectation(self, value: Any) -> Mapping[str, Any]:
230
+ return self._call("resolve_tombstone_expectation", value)
231
+
232
+ def delete(self, value: Any) -> Mapping[str, Any]:
233
+ return self._call("delete", value)
234
+
235
+ def check(self, value: Any) -> Mapping[str, Any]:
236
+ return self._call("check", value)
237
+
238
+ def register_source(self, value: Any) -> Mapping[str, Any]:
239
+ return self._call("register_source", value)
240
+
241
+ def register_tombstone(self, value: Any) -> Mapping[str, Any]:
242
+ return self._call("register_tombstone", value)
243
+
244
+ def read_active_bundle(self, expectation: Any) -> Mapping[str, Any] | None:
245
+ return self._call("read_active_bundle", expectation)
246
+
247
+ def close(self) -> None:
248
+ self._assert_owner()
249
+ with self._lock:
250
+ if not self._closed:
251
+ self._connection.close()
252
+ self._closed = True
253
+
254
+ @property
255
+ def closed(self) -> bool:
256
+ self._assert_owner()
257
+ with self._lock:
258
+ return self._closed
259
+
260
+ @property
261
+ def state(self) -> str:
262
+ if os.getpid() != self._owner_pid:
263
+ return "foreign-process"
264
+ with self._lock:
265
+ return "closed" if self._closed else "open"
266
+
267
+
268
+ def _preflight_receiver(
269
+ publication_authority: Any,
270
+ acknowledgement_authority: Any,
271
+ authenticate: Callable[[Mapping[str, str]], bool],
272
+ *,
273
+ contract_sha256: str,
274
+ clock: Callable[[], float | int],
275
+ path: str,
276
+ require_https: bool,
277
+ ) -> None:
278
+ if publication_authority is acknowledgement_authority:
279
+ raise DurableCMSReceiverRuntimeBlocked(
280
+ "publication and acknowledgement authorities must be independent"
281
+ )
282
+ try:
283
+ _RECEIVER.CMSReceiverApplication(
284
+ publication_authority=publication_authority,
285
+ acknowledgement_authority=acknowledgement_authority,
286
+ authenticate=authenticate,
287
+ resolve_publication_expectation=_unused,
288
+ commit=_unused,
289
+ resolve_tombstone_expectation=_unused,
290
+ delete=_unused,
291
+ check=_unused,
292
+ contract_sha256=contract_sha256,
293
+ clock=clock,
294
+ path=path,
295
+ require_https=require_https,
296
+ )
297
+ except (TypeError, ValueError) as error:
298
+ raise DurableCMSReceiverRuntimeBlocked(
299
+ "CMS receiver configuration is invalid"
300
+ ) from error
301
+
302
+
303
+ class DurableCMSReceiverRuntime:
304
+ """One worker-owned SQLite store and its exact HTTPS-only WSGI boundary."""
305
+
306
+ def __init__(
307
+ self, synchronized_store: _SynchronizedStore, application: Any,
308
+ ):
309
+ self._store = synchronized_store
310
+ self.application = application
311
+
312
+ def __repr__(self) -> str:
313
+ return f"DurableCMSReceiverRuntime(state={self._store.state!r})"
314
+
315
+ def __enter__(self) -> "DurableCMSReceiverRuntime":
316
+ if self._store.closed:
317
+ raise DurableCMSReceiverRuntimeBlocked("CMS receiver runtime is closed")
318
+ return self
319
+
320
+ def __exit__(self, *_exc: Any) -> None:
321
+ self.close()
322
+
323
+ def __call__(self, environ: Mapping[str, Any], start_response: Callable[..., Any]):
324
+ return self.application(environ, start_response)
325
+
326
+ def register_source(self, expectation: Any) -> Mapping[str, Any]:
327
+ """Register a trusted current-source expectation."""
328
+
329
+ return self._store.register_source(expectation)
330
+
331
+ def register_tombstone(self, expectation: Any) -> Mapping[str, Any]:
332
+ """Pre-authorize deletion of one exact acknowledged publication."""
333
+
334
+ return self._store.register_tombstone(expectation)
335
+
336
+ def read_active_bundle(self, expectation: Any) -> Mapping[str, Any] | None:
337
+ """Return target prose only for an exact trusted source binding."""
338
+
339
+ return self._store.read_active_bundle(expectation)
340
+
341
+ def close(self) -> None:
342
+ """Close the worker-owned connection; repeated close is harmless."""
343
+
344
+ self._store.close()
345
+
346
+
347
+ def open_durable_cms_receiver(
348
+ database: str | os.PathLike[str],
349
+ publication_authority: Any,
350
+ acknowledgement_authority: Any,
351
+ authenticate: Callable[[Mapping[str, str]], bool],
352
+ *,
353
+ contract_sha256: str,
354
+ clock: Callable[[], float | int] = time.time,
355
+ path: str = _RECEIVER.RECEIVER_PATH,
356
+ require_https: bool = True,
357
+ ) -> DurableCMSReceiverRuntime:
358
+ """Validate configuration, then open one complete durable receiver worker."""
359
+
360
+ database_path = _database_path(database)
361
+ _preflight_receiver(
362
+ publication_authority,
363
+ acknowledgement_authority,
364
+ authenticate,
365
+ contract_sha256=contract_sha256,
366
+ clock=clock,
367
+ path=path,
368
+ require_https=require_https,
369
+ )
370
+ database_guard = _prepare_database_file(database_path)
371
+ try:
372
+ connection = sqlite3.connect(
373
+ database_path,
374
+ timeout=5.0,
375
+ isolation_level=None,
376
+ check_same_thread=False,
377
+ )
378
+ except (OSError, sqlite3.Error) as error:
379
+ raise DurableCMSReceiverRuntimeBlocked(
380
+ "CMS receiver database could not be opened"
381
+ ) from error
382
+ try:
383
+ store = _STORE.DurableCMSReceiverStore(connection, clock=clock)
384
+ database_guard()
385
+ synchronized_store = _SynchronizedStore(
386
+ connection, store, database_guard,
387
+ )
388
+ application = _RECEIVER.CMSReceiverApplication(
389
+ publication_authority=publication_authority,
390
+ acknowledgement_authority=acknowledgement_authority,
391
+ authenticate=authenticate,
392
+ resolve_publication_expectation=(
393
+ synchronized_store.resolve_publication_expectation
394
+ ),
395
+ commit=synchronized_store.commit,
396
+ resolve_tombstone_expectation=(
397
+ synchronized_store.resolve_tombstone_expectation
398
+ ),
399
+ delete=synchronized_store.delete,
400
+ check=synchronized_store.check,
401
+ contract_sha256=contract_sha256,
402
+ clock=clock,
403
+ path=path,
404
+ require_https=require_https,
405
+ )
406
+ except (_STORE.CMSReceiverStoreBlocked, TypeError, ValueError) as error:
407
+ connection.close()
408
+ raise DurableCMSReceiverRuntimeBlocked(
409
+ "CMS receiver runtime initialization failed"
410
+ ) from error
411
+ except Exception:
412
+ connection.close()
413
+ raise
414
+ return DurableCMSReceiverRuntime(synchronized_store, application)