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,229 +0,0 @@
1
- 'use strict';
2
-
3
- const TRUST_LEVELS = Object.freeze([
4
- 'UNTRUSTED',
5
- 'TRUSTED_LOCAL',
6
- 'TRUSTED_DEPLOY',
7
- ]);
8
-
9
- const CAPABILITIES = Object.freeze([
10
- 'deploy.production',
11
- 'network.external',
12
- 'network.none',
13
- 'network.registry.read',
14
- 'repo.metadata.read',
15
- 'repo.read',
16
- 'sandbox.execute',
17
- 'workspace.write',
18
- 'worktree.create',
19
- ]);
20
-
21
- const BASE_CAPABILITIES = Object.freeze([
22
- 'network.none',
23
- 'repo.metadata.read',
24
- 'repo.read',
25
- ]);
26
- const LOCAL_CAPABILITIES = Object.freeze([
27
- ...BASE_CAPABILITIES,
28
- 'sandbox.execute',
29
- 'workspace.write',
30
- 'worktree.create',
31
- ].sort());
32
- const TRUST_CEILINGS = Object.freeze({
33
- UNTRUSTED: BASE_CAPABILITIES,
34
- TRUSTED_LOCAL: LOCAL_CAPABILITIES,
35
- TRUSTED_DEPLOY: CAPABILITIES,
36
- });
37
- const TRUST_FIELDS = new Set([
38
- 'project_id',
39
- 'account_id',
40
- 'trust_level',
41
- 'version',
42
- 'granted_capabilities',
43
- 'denied_capabilities',
44
- 'last_event_id',
45
- ]);
46
- const REQUEST_FIELDS = new Set([
47
- 'event_id',
48
- 'expected_version',
49
- 'from_trust_level',
50
- 'to_trust_level',
51
- 'granted_capabilities',
52
- 'denied_capabilities',
53
- ]);
54
-
55
- function uvfError(code, message) {
56
- const error = new Error(message);
57
- error.code = code;
58
- return error;
59
- }
60
-
61
- function isRecord(value) {
62
- return value !== null && typeof value === 'object' && !Array.isArray(value);
63
- }
64
-
65
- function requireText(value, field, code = 'UVF_INVALID_TRUST_RECORD') {
66
- if (typeof value !== 'string' || value.trim().length === 0) {
67
- throw uvfError(code, `${field} must be a non-empty string`);
68
- }
69
- return value;
70
- }
71
-
72
- function assertKnownFields(value, allowed, label, code) {
73
- const unknown = Object.keys(value).filter((field) => !allowed.has(field));
74
- if (unknown.length > 0) {
75
- throw uvfError(code, `unknown ${label} fields: ${unknown.sort().join(', ')}`);
76
- }
77
- }
78
-
79
- function validateCapabilityList(value, field, code) {
80
- if (!Array.isArray(value)) throw uvfError(code, `${field} must be an array`);
81
- const unique = new Set();
82
- for (const capability of value) {
83
- if (typeof capability !== 'string' || !CAPABILITIES.includes(capability)) {
84
- throw uvfError(code, `${field} contains an unknown capability: ${String(capability)}`);
85
- }
86
- if (unique.has(capability)) throw uvfError(code, `${field} contains a duplicate: ${capability}`);
87
- unique.add(capability);
88
- }
89
- return [...unique].sort();
90
- }
91
-
92
- function validatePartition(grantedInput, deniedInput, code) {
93
- const granted = validateCapabilityList(grantedInput, 'granted_capabilities', code);
94
- const denied = validateCapabilityList(deniedInput, 'denied_capabilities', code);
95
- const combined = [...granted, ...denied];
96
- if (new Set(combined).size !== CAPABILITIES.length
97
- || [...new Set(combined)].sort().some((capability, index) => capability !== CAPABILITIES[index])) {
98
- throw uvfError(code, 'capability grants and denials must form a complete non-overlapping partition');
99
- }
100
- return { granted, denied };
101
- }
102
-
103
- function validateProjectIdentity(identity) {
104
- if (!isRecord(identity)) throw uvfError('UVF_INVALID_PROJECT_IDENTITY', 'project identity must be an object');
105
- requireText(identity.project_id, 'project_id', 'UVF_INVALID_PROJECT_IDENTITY');
106
- requireText(identity.account_id, 'account_id', 'UVF_INVALID_PROJECT_IDENTITY');
107
- }
108
-
109
- function validateTrustRecord(trust) {
110
- if (!isRecord(trust)) throw uvfError('UVF_INVALID_TRUST_RECORD', 'repository trust must be an object');
111
- assertKnownFields(trust, TRUST_FIELDS, 'trust', 'UVF_INVALID_TRUST_RECORD');
112
- requireText(trust.project_id, 'project_id');
113
- requireText(trust.account_id, 'account_id');
114
- if (!TRUST_LEVELS.includes(trust.trust_level)) {
115
- throw uvfError('UVF_INVALID_TRUST_RECORD', `unknown trust level: ${String(trust.trust_level)}`);
116
- }
117
- if (!Number.isSafeInteger(trust.version) || trust.version < 0) {
118
- throw uvfError('UVF_INVALID_TRUST_RECORD', 'version must be a non-negative integer');
119
- }
120
- if (trust.last_event_id !== null) requireText(trust.last_event_id, 'last_event_id');
121
- const partition = validatePartition(
122
- trust.granted_capabilities,
123
- trust.denied_capabilities,
124
- 'UVF_INVALID_TRUST_RECORD',
125
- );
126
- const ceiling = new Set(TRUST_CEILINGS[trust.trust_level]);
127
- const excessive = partition.granted.filter((capability) => !ceiling.has(capability));
128
- if (excessive.length > 0) {
129
- throw uvfError(
130
- 'UVF_CAPABILITY_TRUST_VIOLATION',
131
- `${trust.trust_level} cannot grant: ${excessive.join(', ')}`,
132
- );
133
- }
134
- return partition;
135
- }
136
-
137
- function createRepositoryTrust(projectIdentity) {
138
- validateProjectIdentity(projectIdentity);
139
- const granted = [...BASE_CAPABILITIES].sort();
140
- return Object.freeze({
141
- project_id: projectIdentity.project_id,
142
- account_id: projectIdentity.account_id,
143
- trust_level: 'UNTRUSTED',
144
- version: 0,
145
- granted_capabilities: Object.freeze(granted),
146
- denied_capabilities: Object.freeze(CAPABILITIES.filter((capability) => !granted.includes(capability))),
147
- last_event_id: null,
148
- });
149
- }
150
-
151
- function validateTransitionRequest(request) {
152
- if (!isRecord(request)) {
153
- throw uvfError('UVF_INVALID_TRUST_REQUEST', 'trust transition request must be an object');
154
- }
155
- assertKnownFields(request, REQUEST_FIELDS, 'trust transition', 'UVF_INVALID_TRUST_REQUEST');
156
- requireText(request.event_id, 'event_id', 'UVF_INVALID_TRUST_REQUEST');
157
- if (!Number.isSafeInteger(request.expected_version) || request.expected_version < 0) {
158
- throw uvfError('UVF_INVALID_TRUST_REQUEST', 'expected_version must be a non-negative integer');
159
- }
160
- for (const field of ['from_trust_level', 'to_trust_level']) {
161
- if (!TRUST_LEVELS.includes(request[field])) {
162
- throw uvfError('UVF_INVALID_TRUST_REQUEST', `unknown ${field}: ${String(request[field])}`);
163
- }
164
- }
165
- return validatePartition(
166
- request.granted_capabilities,
167
- request.denied_capabilities,
168
- 'UVF_INVALID_TRUST_REQUEST',
169
- );
170
- }
171
-
172
- function transitionRepositoryTrust(current, request) {
173
- validateTrustRecord(current);
174
- const partition = validateTransitionRequest(request);
175
- if (request.expected_version !== current.version) {
176
- throw uvfError(
177
- 'UVF_TRUST_VERSION_CONFLICT',
178
- `expected version ${request.expected_version}, current version ${current.version}`,
179
- );
180
- }
181
- if (request.from_trust_level !== current.trust_level) {
182
- throw uvfError(
183
- 'UVF_TRUST_STATE_CONFLICT',
184
- `expected trust level ${request.from_trust_level}, current level ${current.trust_level}`,
185
- );
186
- }
187
- const fromIndex = TRUST_LEVELS.indexOf(current.trust_level);
188
- const toIndex = TRUST_LEVELS.indexOf(request.to_trust_level);
189
- if (toIndex === fromIndex || toIndex > fromIndex + 1) {
190
- throw uvfError(
191
- 'UVF_INVALID_TRUST_TRANSITION',
192
- `transition ${current.trust_level} -> ${request.to_trust_level} is not allowed`,
193
- );
194
- }
195
-
196
- const ceiling = new Set(TRUST_CEILINGS[request.to_trust_level]);
197
- const excessive = partition.granted.filter((capability) => !ceiling.has(capability));
198
- if (excessive.length > 0) {
199
- throw uvfError(
200
- 'UVF_CAPABILITY_TRUST_VIOLATION',
201
- `${request.to_trust_level} cannot grant: ${excessive.join(', ')}`,
202
- );
203
- }
204
- const missingBase = BASE_CAPABILITIES.filter((capability) => !partition.granted.includes(capability));
205
- if (missingBase.length > 0) {
206
- throw uvfError(
207
- 'UVF_CAPABILITY_TRUST_VIOLATION',
208
- `trust records must retain baseline capabilities: ${missingBase.join(', ')}`,
209
- );
210
- }
211
-
212
- return Object.freeze({
213
- project_id: current.project_id,
214
- account_id: current.account_id,
215
- trust_level: request.to_trust_level,
216
- version: current.version + 1,
217
- granted_capabilities: Object.freeze(partition.granted),
218
- denied_capabilities: Object.freeze(partition.denied),
219
- last_event_id: request.event_id,
220
- });
221
- }
222
-
223
- module.exports = {
224
- CAPABILITIES,
225
- TRUST_LEVELS,
226
- TRUST_CEILINGS,
227
- createRepositoryTrust,
228
- transitionRepositoryTrust,
229
- };
@@ -1,146 +0,0 @@
1
- # Venture Flywheel: Beispiele für Phase 0
2
-
3
- Phase 0 stellt ausschließlich reine Verträge bereit. Sie führt keine
4
- Repository-Befehle aus, verwendet kein Netzwerk und führt weder Deployments
5
- noch Veröffentlichungen, Käufe oder ausgehende Nachrichten durch.
6
-
7
- ## Öffentliche Funktionen
8
-
9
- - `deriveProjectIdentity` leitet aus Repository-Fakten und einem
10
- authentifizierten Konto eine deterministische Projektidentität ab.
11
- - `createRepositoryTrust` erzeugt den anfänglichen Datensatz mit `UNTRUSTED`.
12
- - `transitionRepositoryTrust` wendet einen ausdrücklichen, versionierten
13
- Trust-Wechsel an.
14
- - `evaluateCapability` liefert `allow`, `deny` oder `approval_required` und
15
- entscheidet bei Unklarheit ablehnend.
16
- - `transitionRun` führt genau einen zulässigen, optimistisch versionierten
17
- Zustandswechsel aus.
18
- - `createExecutionEvent` erzeugt ein deterministisches, hash-verkettetes
19
- Prüfereignis und weist geheimnisverdächtige Felder in Nutzdaten ab.
20
- - `verifyEventChain` prüft Reihenfolge, Verknüpfungen und Hashes einer
21
- vollständigen Ereigniskette.
22
-
23
- ## Vollständiges Beispiel
24
-
25
- Das folgende CommonJS-Beispiel leitet eine Projektidentität ab, erzeugt lokalen
26
- Trust, vergleicht die Ausführung im Repository mit der Ausführung in einem
27
- isolierten Worktree, setzt einen Lauf fort, erzeugt zwei verkettete Ereignisse
28
- und prüft anschließend die Kette.
29
-
30
- ```js
31
- const { deriveProjectIdentity } = require('./identity/project-identity.cjs');
32
- const {
33
- CAPABILITIES,
34
- createRepositoryTrust,
35
- transitionRepositoryTrust,
36
- } = require('./policy/repository-trust.cjs');
37
- const { evaluateCapability } = require('./policy/capability-engine.cjs');
38
- const { transitionRun } = require('./state/task-state-machine.cjs');
39
- const {
40
- createExecutionEvent,
41
- verifyEventChain,
42
- } = require('./state/execution-event.cjs');
43
-
44
- const identity = deriveProjectIdentity({
45
- repository_host: 'github.com',
46
- repository_owner: 'example',
47
- repository_name: 'venture',
48
- canonical_remote_url: 'git@github.com:example/venture.git',
49
- local_repository_root: 'C:/Work/venture',
50
- initial_repository_fingerprint: `sha256:${'a'.repeat(64)}`,
51
- }, { account_id: 'account-123' });
52
-
53
- const initialTrust = createRepositoryTrust(identity);
54
- const localCapabilities = [
55
- 'network.none',
56
- 'repo.metadata.read',
57
- 'repo.read',
58
- 'sandbox.execute',
59
- 'workspace.write',
60
- 'worktree.create',
61
- ];
62
- const granted = new Set(localCapabilities);
63
- const localTrust = transitionRepositoryTrust(initialTrust, {
64
- event_id: 'evt-trust-local',
65
- expected_version: initialTrust.version,
66
- from_trust_level: initialTrust.trust_level,
67
- to_trust_level: 'TRUSTED_LOCAL',
68
- granted_capabilities: [...granted].sort(),
69
- denied_capabilities: CAPABILITIES.filter(
70
- (capability) => !granted.has(capability),
71
- ),
72
- });
73
-
74
- const deniedInRepository = evaluateCapability({
75
- project_identity: identity,
76
- repository_trust: localTrust,
77
- capability: 'sandbox.execute',
78
- execution_scope: 'repository',
79
- });
80
- const allowedInWorktree = evaluateCapability({
81
- project_identity: identity,
82
- repository_trust: localTrust,
83
- capability: 'sandbox.execute',
84
- execution_scope: 'isolated_worktree',
85
- });
86
-
87
- let run = { run_id: 'run-001', state: 'discovered', version: 0 };
88
- run = transitionRun(run, {
89
- event_id: 'evt-profiled',
90
- expected_version: 0,
91
- from_state: 'discovered',
92
- to_state: 'profiled',
93
- });
94
-
95
- const firstEvent = createExecutionEvent({
96
- event_id: 'evt-profiled',
97
- run_id: run.run_id,
98
- project_id: identity.project_id,
99
- actor: { type: 'agent', id: 'agent-1', session_id: 'session-1' },
100
- event_type: 'run.profiled',
101
- occurred_at: '2026-08-24T10:00:00.000Z',
102
- payload: {
103
- from_state: 'discovered',
104
- to_state: 'profiled',
105
- version: run.version,
106
- },
107
- });
108
- const secondEvent = createExecutionEvent({
109
- event_id: 'evt-policy',
110
- run_id: run.run_id,
111
- project_id: identity.project_id,
112
- actor: { type: 'agent', id: 'agent-1', session_id: 'session-1' },
113
- event_type: 'policy.checked',
114
- occurred_at: '2026-08-24T10:01:00.000Z',
115
- payload: { decision: allowedInWorktree.decision },
116
- previous_event_hash: firstEvent.event_hash,
117
- });
118
-
119
- console.log(deniedInRepository);
120
- console.log(allowedInWorktree);
121
- console.log(verifyEventChain([firstEvent, secondEvent]));
122
- ```
123
-
124
- Erwartete Entscheidungen: Die Ausführung im Repository wird mit
125
- `isolated_worktree_required` abgewiesen, die Ausführung im isolierten Worktree
126
- wird erlaubt und die Kettenprüfung liefert `{ ok: true }`.
127
-
128
- ## Wichtige Schutzregeln
129
-
130
- - Ein Repository beginnt mit `UNTRUSTED`; Trust-Hochstufungen müssen
131
- nacheinander erfolgen.
132
- - Jeder Trust- und Laufwechsel muss die aktuelle `expected_version` verwenden.
133
- - `workspace.write` und `sandbox.execute` erfordern
134
- `execution_scope: 'isolated_worktree'`.
135
- - Externe oder irreversible Fähigkeiten liefern niemals `allow`, sondern
136
- höchstens `approval_required`.
137
- - `completed` erfordert `final_evidence_id`, `rolled_back` erfordert
138
- `rollback_evidence_id` innerhalb von `evidence`.
139
- - Ereignisnutzdaten mit Feldern wie `token`, `password`, `secret`, `api_key`
140
- oder `access_token` werden vor dem Hashen abgewiesen.
141
- - `no_action` ist ein gültiges Endergebnis.
142
-
143
- ## Prüfung
144
-
145
- Führe `node --test test/venture-flywheel-state.test.js`,
146
- `node --test test/venture-flywheel-trust.test.js` und `npm test` aus.
@@ -1,34 +0,0 @@
1
- # Capability Map: Universal Venture Flywheel
2
-
3
- Source direction: UVF-Core RFC 2.0.0. This map keeps each rollout phase
4
- independently testable and prevents the advisor, executor, and deployment gate
5
- from becoming one authority.
6
-
7
- | Module id | Responsibility | Depends on |
8
- |---|---|---|
9
- | contracts-trust | Schemas, project scope, trust, capabilities, event log, state machine | - |
10
- | venture-advisor | Read-only discovery, metrics, baselines, proposals, strategic-authority bridge | contracts-trust |
11
- | local-execution | Leases, isolated worktrees, sandbox, scoped execution, verification bundles | contracts-trust, venture-advisor |
12
- | approval-deployment | Exact-state approval, adapter preflight, idempotency, staging, rollback | contracts-trust, local-execution |
13
- | observation | Post-deployment metrics, guardrails, attribution, inconclusive outcomes | contracts-trust, approval-deployment |
14
- | controlled-learning | Effectiveness history and human-approved bounded adaptation | observation |
15
-
16
- Build order:
17
-
18
- ```text
19
- contracts-trust
20
- -> venture-advisor
21
- -> local-execution
22
- -> approval-deployment
23
- -> observation
24
- -> controlled-learning
25
- ```
26
-
27
- The first implementation slice inside `contracts-trust` is `state-events`:
28
- canonical run transitions plus a hash-linked, secret-rejecting event envelope.
29
- It has no execution capability.
30
-
31
- The second slice is `identity-trust`: deterministic project identity from
32
- repository facts plus authenticated host context, explicit repository trust
33
- transitions, and deny-by-default capability decisions. It is also side-effect
34
- free and grants no execution path by itself.
@@ -1,77 +0,0 @@
1
- # Spec: UVF Phase 0 Identity, Trust, and Capability Contracts
2
-
3
- ## Objective
4
-
5
- Provide a deterministic policy boundary before any UVF repository action.
6
- Project identity combines observed repository facts with a separately supplied
7
- authenticated host context. Repository trust starts at `UNTRUSTED`, changes
8
- only through versioned explicit transitions, and partitions every known
9
- capability into granted or denied. Capability evaluation fails closed.
10
-
11
- This slice does not inspect a repository, execute a command, create a worktree,
12
- open a network connection, persist trust, or approve an external action.
13
-
14
- ## Public Contracts
15
-
16
- ```js
17
- const identity = deriveProjectIdentity(repositoryFacts, authenticatedHostContext);
18
- const trust = createRepositoryTrust(identity);
19
- const nextTrust = transitionRepositoryTrust(trust, request);
20
- const decision = evaluateCapability({
21
- project_identity: identity,
22
- repository_trust: nextTrust,
23
- capability: 'sandbox.execute',
24
- execution_scope: 'isolated_worktree',
25
- });
26
- ```
27
-
28
- Repository facts cannot contain an account, user, or owner identity. The
29
- authenticated account enters only through the second argument. Equivalent SSH
30
- and HTTPS remotes produce the same canonical repository identity.
31
-
32
- ## Trust Levels
33
-
34
- - `UNTRUSTED`: metadata and repository reads only.
35
- - `TRUSTED_LOCAL`: explicit local capabilities may run later, but write and
36
- execution capabilities require an isolated worktree.
37
- - `TRUSTED_DEPLOY`: external capabilities may be requested, but they return
38
- `approval_required`; this contract never approves them.
39
-
40
- Upgrades are sequential. Downgrades may return directly to a lower trust level.
41
- Every transition checks `expected_version`, records an event ID, and supplies a
42
- complete non-overlapping grant/deny partition for the known capability set.
43
-
44
- ## Commands
45
-
46
- ```text
47
- node --test test/venture-flywheel-trust.test.js
48
- node --check standard-skills/venture-flywheel/identity/project-identity.cjs
49
- node --check standard-skills/venture-flywheel/policy/repository-trust.cjs
50
- node --check standard-skills/venture-flywheel/policy/capability-engine.cjs
51
- npm test
52
- ```
53
-
54
- ## Testing Strategy
55
-
56
- - Equivalent repository observations must derive the same identity.
57
- - A different authenticated account must derive a different project ID.
58
- - Identity fields injected into repository facts must be rejected.
59
- - Unknown repositories may read but cannot write, execute, or use network.
60
- - Forged grants above a trust ceiling remain denied.
61
- - Local write and execution require an isolated worktree.
62
- - External and irreversible capabilities never return `allow`.
63
- - Stale or skipped trust upgrades are rejected.
64
- - Schemas are strict and all modules remain free of I/O primitives.
65
-
66
- ## Success Criteria
67
-
68
- - Cross-account and cross-project evaluations fail closed.
69
- - Capability decisions are one of `allow`, `deny`, or `approval_required`.
70
- - Every known capability appears exactly once in a trust record.
71
- - Exported collections and returned records are deeply immutable.
72
- - Focused mutation probes and the complete package suite are green.
73
-
74
- ## Boundary
75
-
76
- Persistence, repository detection, command execution, worktree creation,
77
- network adapters, approval issuance, and deployment remain later slices.
@@ -1,93 +0,0 @@
1
- # Spec: UVF Phase 0 State and Event Contracts
2
-
3
- ## Objective
4
-
5
- Provide the smallest deterministic foundation that makes every UVF run state
6
- transition auditable. The module rejects illegal and stale transitions, gates
7
- terminal states on required evidence, creates hash-linked event envelopes, and
8
- rejects secret-shaped audit payloads.
9
-
10
- This slice does not execute commands, inspect repositories, write event files,
11
- open network connections, or expose a user-facing UVF command.
12
-
13
- ## Commands
14
-
15
- Focused test:
16
-
17
- ```text
18
- node --test test/venture-flywheel-state.test.js
19
- ```
20
-
21
- Full suite:
22
-
23
- ```text
24
- npm test
25
- ```
26
-
27
- Syntax checks:
28
-
29
- ```text
30
- node --check standard-skills/venture-flywheel/state/task-state-machine.cjs
31
- node --check standard-skills/venture-flywheel/state/execution-event.cjs
32
- ```
33
-
34
- ## Project Structure
35
-
36
- ```text
37
- standard-skills/venture-flywheel/
38
- SKILL.md
39
- references/
40
- schemas/run-transition.schema.json
41
- schemas/execution-event.schema.json
42
- state/task-state-machine.cjs
43
- state/execution-event.cjs
44
- test/venture-flywheel-state.test.js
45
- ```
46
-
47
- ## Code Style
48
-
49
- CommonJS, pure functions, frozen exported contracts, explicit machine-readable
50
- error codes, no hidden I/O:
51
-
52
- ```js
53
- const next = transitionRun(current, {
54
- event_id: 'evt_01J...',
55
- expected_version: current.version,
56
- from_state: current.state,
57
- to_state: 'profiled',
58
- });
59
- ```
60
-
61
- ## Testing Strategy
62
-
63
- - Small unit tests cover the canonical path and every guard direction.
64
- - Mutation-style red probes attempt transition skipping, stale writes, missing
65
- completion evidence, broken hash links, event mutation, and secret payloads.
66
- - The standard-skill bootstrap test proves the contract ships with BLUN King.
67
- - The full package suite protects unrelated console behavior.
68
-
69
- ## Boundaries
70
-
71
- - Always: validate inputs strictly, reject unknown states and fields, preserve
72
- deterministic hashes, keep transitions side-effect free.
73
- - Ask first: change canonical transition topology, add persistence, expose a
74
- CLI/MCP command, or connect repository identity.
75
- - Never: execute repository code, grant capabilities, perform external action,
76
- include secrets in audit data, or infer approval from an event.
77
-
78
- ## Success Criteria
79
-
80
- - The documented canonical forward path is accepted.
81
- - An illegal jump and a stale optimistic version are rejected.
82
- - `completed` requires final evidence and `rolled_back` requires rollback
83
- evidence.
84
- - Every accepted transition increments the version and records its event ID.
85
- - Event hashes are deterministic and a mutation or broken link is detected.
86
- - Secret-shaped fields are rejected recursively before hashing.
87
- - JSON schemas reject unknown top-level fields.
88
- - Focused tests and the complete package suite are green.
89
-
90
- ## Open Questions
91
-
92
- None inside this slice. Persistence, project identity, trust grants, and the
93
- full schema set remain later `contracts-trust` tasks.
@@ -1,13 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://blun.ai/schemas/uvf/capability-decision.schema.json",
4
- "title": "UVF Capability Decision",
5
- "type": "object",
6
- "additionalProperties": false,
7
- "required": ["capability", "decision", "reason"],
8
- "properties": {
9
- "capability": { "type": "string", "minLength": 1 },
10
- "decision": { "enum": ["allow", "deny", "approval_required"] },
11
- "reason": { "type": "string", "minLength": 1 }
12
- }
13
- }
@@ -1,44 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://blun.ai/schemas/uvf/execution-event.schema.json",
4
- "title": "UVF Execution Event",
5
- "type": "object",
6
- "additionalProperties": false,
7
- "required": [
8
- "event_id",
9
- "run_id",
10
- "project_id",
11
- "actor",
12
- "event_type",
13
- "occurred_at",
14
- "payload",
15
- "previous_event_hash",
16
- "event_hash"
17
- ],
18
- "properties": {
19
- "event_id": { "type": "string", "minLength": 1 },
20
- "run_id": { "type": "string", "minLength": 1 },
21
- "project_id": { "type": "string", "minLength": 1 },
22
- "actor": {
23
- "type": "object",
24
- "additionalProperties": false,
25
- "required": ["type", "id", "session_id"],
26
- "properties": {
27
- "type": { "enum": ["agent", "user", "system"] },
28
- "id": { "type": "string", "minLength": 1 },
29
- "session_id": { "type": "string", "minLength": 1 }
30
- }
31
- },
32
- "event_type": { "type": "string", "minLength": 1 },
33
- "occurred_at": { "type": "string", "format": "date-time" },
34
- "payload": { "type": "object" },
35
- "previous_event_hash": {
36
- "type": ["string", "null"],
37
- "pattern": "^sha256:[a-f0-9]{64}$"
38
- },
39
- "event_hash": {
40
- "type": "string",
41
- "pattern": "^sha256:[a-f0-9]{64}$"
42
- }
43
- }
44
- }
@@ -1,32 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://blun.ai/schemas/uvf/project-identity.schema.json",
4
- "title": "UVF Project Identity",
5
- "type": "object",
6
- "additionalProperties": false,
7
- "required": ["project_id", "account_id", "repository"],
8
- "properties": {
9
- "project_id": { "type": "string", "pattern": "^project:sha256:[a-f0-9]{64}$" },
10
- "account_id": { "type": "string", "minLength": 1 },
11
- "repository": {
12
- "type": "object",
13
- "additionalProperties": false,
14
- "required": [
15
- "host",
16
- "owner",
17
- "name",
18
- "canonical_remote_url",
19
- "local_repository_root",
20
- "initial_repository_fingerprint"
21
- ],
22
- "properties": {
23
- "host": { "type": "string", "minLength": 1 },
24
- "owner": { "type": "string", "minLength": 1 },
25
- "name": { "type": "string", "minLength": 1 },
26
- "canonical_remote_url": { "type": "string", "pattern": "^https://" },
27
- "local_repository_root": { "type": "string", "minLength": 1 },
28
- "initial_repository_fingerprint": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" }
29
- }
30
- }
31
- }
32
- }