@llblab/pi-kit 0.38.4 → 0.39.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (424) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/README.md +1 -1
  3. package/node_modules/@llblab/pi-actors/AGENTS.md +108 -20
  4. package/node_modules/@llblab/pi-actors/BACKLOG.md +207 -4
  5. package/node_modules/@llblab/pi-actors/CHANGELOG.md +13 -0
  6. package/node_modules/@llblab/pi-actors/README.md +31 -1
  7. package/node_modules/@llblab/pi-actors/dist/index.js +1 -1
  8. package/node_modules/@llblab/pi-actors/dist/lib/async-runs.d.ts +37 -0
  9. package/node_modules/@llblab/pi-actors/dist/lib/async-runs.js +131 -62
  10. package/node_modules/@llblab/pi-actors/dist/lib/automatic-review-runtime.d.ts +2 -0
  11. package/node_modules/@llblab/pi-actors/dist/lib/automatic-review-runtime.js +3 -2
  12. package/node_modules/@llblab/pi-actors/dist/lib/command-templates.d.ts +37 -0
  13. package/node_modules/@llblab/pi-actors/dist/lib/command-templates.js +263 -129
  14. package/node_modules/@llblab/pi-actors/dist/lib/execution-files.d.ts +32 -0
  15. package/node_modules/@llblab/pi-actors/dist/lib/execution-files.js +128 -0
  16. package/node_modules/@llblab/pi-actors/dist/lib/execution-output.js +5 -4
  17. package/node_modules/@llblab/pi-actors/dist/lib/execution-sessions.d.ts +19 -1
  18. package/node_modules/@llblab/pi-actors/dist/lib/execution-sessions.js +62 -26
  19. package/node_modules/@llblab/pi-actors/dist/lib/execution.d.ts +4 -1
  20. package/node_modules/@llblab/pi-actors/dist/lib/execution.js +6 -1
  21. package/node_modules/@llblab/pi-actors/dist/lib/extension-runtime.d.ts +9 -2
  22. package/node_modules/@llblab/pi-actors/dist/lib/extension-runtime.js +92 -14
  23. package/node_modules/@llblab/pi-actors/dist/lib/file-state.js +21 -2
  24. package/node_modules/@llblab/pi-actors/dist/lib/inspector-command.js +2 -2
  25. package/node_modules/@llblab/pi-actors/dist/lib/inspector-overlay.d.ts +25 -7
  26. package/node_modules/@llblab/pi-actors/dist/lib/inspector-overlay.js +562 -262
  27. package/node_modules/@llblab/pi-actors/dist/lib/inspector.d.ts +20 -10
  28. package/node_modules/@llblab/pi-actors/dist/lib/inspector.js +80 -91
  29. package/node_modules/@llblab/pi-actors/dist/lib/limits.d.ts +1 -0
  30. package/node_modules/@llblab/pi-actors/dist/lib/limits.js +1 -0
  31. package/node_modules/@llblab/pi-actors/dist/lib/observability.d.ts +15 -1
  32. package/node_modules/@llblab/pi-actors/dist/lib/observability.js +216 -99
  33. package/node_modules/@llblab/pi-actors/dist/lib/pi.d.ts +5 -4
  34. package/node_modules/@llblab/pi-actors/dist/lib/pi.js +64 -10
  35. package/node_modules/@llblab/pi-actors/dist/lib/recipe-projection.d.ts +18 -0
  36. package/node_modules/@llblab/pi-actors/dist/lib/recipe-projection.js +220 -0
  37. package/node_modules/@llblab/pi-actors/dist/lib/recipes-context.d.ts +2 -0
  38. package/node_modules/@llblab/pi-actors/dist/lib/recipes-context.js +30 -6
  39. package/node_modules/@llblab/pi-actors/dist/lib/registry.js +270 -36
  40. package/node_modules/@llblab/pi-actors/dist/lib/run-delivery.d.ts +213 -5
  41. package/node_modules/@llblab/pi-actors/dist/lib/run-delivery.js +1909 -40
  42. package/node_modules/@llblab/pi-actors/dist/lib/run-supervision.d.ts +107 -0
  43. package/node_modules/@llblab/pi-actors/dist/lib/run-supervision.js +412 -0
  44. package/node_modules/@llblab/pi-actors/dist/lib/run-ui-runtime.d.ts +9 -2
  45. package/node_modules/@llblab/pi-actors/dist/lib/run-ui-runtime.js +283 -60
  46. package/node_modules/@llblab/pi-actors/dist/lib/runs-artifacts.d.ts +26 -1
  47. package/node_modules/@llblab/pi-actors/dist/lib/runs-artifacts.js +68 -2
  48. package/node_modules/@llblab/pi-actors/dist/lib/runs-context-exports.d.ts +451 -0
  49. package/node_modules/@llblab/pi-actors/dist/lib/runs-context-exports.js +2315 -0
  50. package/node_modules/@llblab/pi-actors/dist/lib/runs-context-index.d.ts +97 -0
  51. package/node_modules/@llblab/pi-actors/dist/lib/runs-context-index.js +368 -0
  52. package/node_modules/@llblab/pi-actors/dist/lib/runs-control-delivery.js +46 -7
  53. package/node_modules/@llblab/pi-actors/dist/lib/runs-control.d.ts +78 -2
  54. package/node_modules/@llblab/pi-actors/dist/lib/runs-control.js +334 -2
  55. package/node_modules/@llblab/pi-actors/dist/lib/runs-controls.js +4 -1
  56. package/node_modules/@llblab/pi-actors/dist/lib/runs-descendant-launches.d.ts +80 -0
  57. package/node_modules/@llblab/pi-actors/dist/lib/runs-descendant-launches.js +287 -0
  58. package/node_modules/@llblab/pi-actors/dist/lib/runs-execution-evidence.d.ts +110 -0
  59. package/node_modules/@llblab/pi-actors/dist/lib/runs-execution-evidence.js +282 -0
  60. package/node_modules/@llblab/pi-actors/dist/lib/runs-index.d.ts +66 -1
  61. package/node_modules/@llblab/pi-actors/dist/lib/runs-index.js +349 -13
  62. package/node_modules/@llblab/pi-actors/dist/lib/runs-native-launches.d.ts +73 -0
  63. package/node_modules/@llblab/pi-actors/dist/lib/runs-native-launches.js +227 -0
  64. package/node_modules/@llblab/pi-actors/dist/lib/runs-outcomes.d.ts +141 -0
  65. package/node_modules/@llblab/pi-actors/dist/lib/runs-outcomes.js +292 -0
  66. package/node_modules/@llblab/pi-actors/dist/lib/runs-ownership.d.ts +10 -1
  67. package/node_modules/@llblab/pi-actors/dist/lib/runs-ownership.js +36 -4
  68. package/node_modules/@llblab/pi-actors/dist/lib/runs-process-windows-mi.d.ts +46 -0
  69. package/node_modules/@llblab/pi-actors/dist/lib/runs-process-windows-mi.js +114 -0
  70. package/node_modules/@llblab/pi-actors/dist/lib/runs-process.d.ts +34 -1
  71. package/node_modules/@llblab/pi-actors/dist/lib/runs-process.js +158 -26
  72. package/node_modules/@llblab/pi-actors/dist/lib/runs-results.d.ts +116 -0
  73. package/node_modules/@llblab/pi-actors/dist/lib/runs-results.js +518 -0
  74. package/node_modules/@llblab/pi-actors/dist/lib/runs-retention.d.ts +15 -2
  75. package/node_modules/@llblab/pi-actors/dist/lib/runs-retention.js +148 -9
  76. package/node_modules/@llblab/pi-actors/dist/lib/runs-session-exports.d.ts +95 -0
  77. package/node_modules/@llblab/pi-actors/dist/lib/runs-session-exports.js +470 -0
  78. package/node_modules/@llblab/pi-actors/dist/lib/runs-snapshot.d.ts +58 -0
  79. package/node_modules/@llblab/pi-actors/dist/lib/runs-snapshot.js +92 -0
  80. package/node_modules/@llblab/pi-actors/dist/lib/runs-start.d.ts +2 -0
  81. package/node_modules/@llblab/pi-actors/dist/lib/runs-start.js +44 -3
  82. package/node_modules/@llblab/pi-actors/dist/lib/runs-status.d.ts +15 -1
  83. package/node_modules/@llblab/pi-actors/dist/lib/runs-status.js +337 -13
  84. package/node_modules/@llblab/pi-actors/dist/lib/runs-supervision.d.ts +105 -0
  85. package/node_modules/@llblab/pi-actors/dist/lib/runs-supervision.js +501 -0
  86. package/node_modules/@llblab/pi-actors/dist/lib/runs-trace.d.ts +1 -0
  87. package/node_modules/@llblab/pi-actors/dist/lib/runs-trace.js +14 -3
  88. package/node_modules/@llblab/pi-actors/dist/lib/runtime.js +22 -3
  89. package/node_modules/@llblab/pi-actors/dist/lib/session-evidence.d.ts +37 -0
  90. package/node_modules/@llblab/pi-actors/dist/lib/session-evidence.js +59 -3
  91. package/node_modules/@llblab/pi-actors/dist/lib/state-readers.d.ts +4 -1
  92. package/node_modules/@llblab/pi-actors/dist/lib/state-readers.js +14 -8
  93. package/node_modules/@llblab/pi-actors/dist/lib/temp.d.ts +2 -4
  94. package/node_modules/@llblab/pi-actors/dist/lib/temp.js +4 -56
  95. package/node_modules/@llblab/pi-actors/dist/lib/tools-access.d.ts +3 -0
  96. package/node_modules/@llblab/pi-actors/dist/lib/tools-access.js +13 -0
  97. package/node_modules/@llblab/pi-actors/dist/lib/tools-inspect.d.ts +1 -0
  98. package/node_modules/@llblab/pi-actors/dist/lib/tools-inspect.js +110 -43
  99. package/node_modules/@llblab/pi-actors/dist/lib/tools-local.d.ts +3 -0
  100. package/node_modules/@llblab/pi-actors/dist/lib/tools-local.js +18 -6
  101. package/node_modules/@llblab/pi-actors/dist/lib/tools-message.d.ts +4 -1
  102. package/node_modules/@llblab/pi-actors/dist/lib/tools-message.js +126 -31
  103. package/node_modules/@llblab/pi-actors/dist/lib/tools-response.d.ts +31 -3
  104. package/node_modules/@llblab/pi-actors/dist/lib/tools-response.js +311 -47
  105. package/node_modules/@llblab/pi-actors/dist/lib/tools-spawn.d.ts +3 -0
  106. package/node_modules/@llblab/pi-actors/dist/lib/tools-spawn.js +29 -7
  107. package/node_modules/@llblab/pi-actors/dist/lib/trace-projection.d.ts +20 -0
  108. package/node_modules/@llblab/pi-actors/dist/lib/trace-projection.js +192 -43
  109. package/node_modules/@llblab/pi-actors/dist/scripts/async-runner.mjs +272 -194
  110. package/node_modules/@llblab/pi-actors/dist/scripts/conformance.mjs +14 -2
  111. package/node_modules/@llblab/pi-actors/dist/skills/actors/SKILL.md +46 -2
  112. package/node_modules/@llblab/pi-actors/dist/skills/actors/references/diagnostics.md +40 -0
  113. package/node_modules/@llblab/pi-actors/dist/skills/actors/references/runs.md +55 -1
  114. package/node_modules/@llblab/pi-actors/docs/README.md +9 -1
  115. package/node_modules/@llblab/pi-actors/docs/actor-inspector.md +84 -15
  116. package/node_modules/@llblab/pi-actors/docs/agent-experience.md +216 -0
  117. package/node_modules/@llblab/pi-actors/docs/async-runs.md +18 -2
  118. package/node_modules/@llblab/pi-actors/docs/composition-transport.md +103 -0
  119. package/node_modules/@llblab/pi-actors/docs/coordinator-delivery.md +204 -4
  120. package/node_modules/@llblab/pi-actors/docs/inspection.md +38 -2
  121. package/node_modules/@llblab/pi-actors/docs/output-projection-map.md +130 -0
  122. package/node_modules/@llblab/pi-actors/docs/releasing.md +19 -2
  123. package/node_modules/@llblab/pi-actors/docs/run-supervision.md +1622 -0
  124. package/node_modules/@llblab/pi-actors/docs/template-recipes.md +4 -0
  125. package/node_modules/@llblab/pi-actors/docs/windows-process-observation.md +248 -0
  126. package/node_modules/@llblab/pi-actors/index.ts +1 -1
  127. package/node_modules/@llblab/pi-actors/lib/async-runs.ts +164 -73
  128. package/node_modules/@llblab/pi-actors/lib/automatic-review-runtime.ts +4 -2
  129. package/node_modules/@llblab/pi-actors/lib/command-templates.ts +287 -138
  130. package/node_modules/@llblab/pi-actors/lib/execution-files.ts +118 -0
  131. package/node_modules/@llblab/pi-actors/lib/execution-output.ts +4 -4
  132. package/node_modules/@llblab/pi-actors/lib/execution-sessions.ts +57 -27
  133. package/node_modules/@llblab/pi-actors/lib/execution.ts +8 -0
  134. package/node_modules/@llblab/pi-actors/lib/extension-runtime.ts +102 -12
  135. package/node_modules/@llblab/pi-actors/lib/file-state.ts +16 -2
  136. package/node_modules/@llblab/pi-actors/lib/inspector-command.ts +2 -2
  137. package/node_modules/@llblab/pi-actors/lib/inspector-overlay.ts +524 -261
  138. package/node_modules/@llblab/pi-actors/lib/inspector.ts +101 -130
  139. package/node_modules/@llblab/pi-actors/lib/limits.ts +1 -0
  140. package/node_modules/@llblab/pi-actors/lib/observability.ts +235 -116
  141. package/node_modules/@llblab/pi-actors/lib/pi.ts +59 -11
  142. package/node_modules/@llblab/pi-actors/lib/recipe-projection.ts +232 -0
  143. package/node_modules/@llblab/pi-actors/lib/recipes-context.ts +27 -6
  144. package/node_modules/@llblab/pi-actors/lib/registry.ts +266 -36
  145. package/node_modules/@llblab/pi-actors/lib/run-delivery.ts +1737 -49
  146. package/node_modules/@llblab/pi-actors/lib/run-supervision.ts +411 -0
  147. package/node_modules/@llblab/pi-actors/lib/run-ui-runtime.ts +237 -73
  148. package/node_modules/@llblab/pi-actors/lib/runs-artifacts.ts +73 -1
  149. package/node_modules/@llblab/pi-actors/lib/runs-context-exports.ts +1871 -0
  150. package/node_modules/@llblab/pi-actors/lib/runs-context-index.ts +372 -0
  151. package/node_modules/@llblab/pi-actors/lib/runs-control-delivery.ts +36 -18
  152. package/node_modules/@llblab/pi-actors/lib/runs-control.ts +297 -1
  153. package/node_modules/@llblab/pi-actors/lib/runs-controls.ts +3 -1
  154. package/node_modules/@llblab/pi-actors/lib/runs-descendant-launches.ts +338 -0
  155. package/node_modules/@llblab/pi-actors/lib/runs-execution-evidence.ts +302 -0
  156. package/node_modules/@llblab/pi-actors/lib/runs-index.ts +345 -17
  157. package/node_modules/@llblab/pi-actors/lib/runs-native-launches.ts +270 -0
  158. package/node_modules/@llblab/pi-actors/lib/runs-outcomes.ts +377 -0
  159. package/node_modules/@llblab/pi-actors/lib/runs-ownership.ts +37 -4
  160. package/node_modules/@llblab/pi-actors/lib/runs-process-windows-mi.ts +113 -0
  161. package/node_modules/@llblab/pi-actors/lib/runs-process.ts +210 -34
  162. package/node_modules/@llblab/pi-actors/lib/runs-results.ts +601 -0
  163. package/node_modules/@llblab/pi-actors/lib/runs-retention.ts +134 -10
  164. package/node_modules/@llblab/pi-actors/lib/runs-session-exports.ts +406 -0
  165. package/node_modules/@llblab/pi-actors/lib/runs-snapshot.ts +143 -0
  166. package/node_modules/@llblab/pi-actors/lib/runs-start.ts +44 -2
  167. package/node_modules/@llblab/pi-actors/lib/runs-status.ts +252 -10
  168. package/node_modules/@llblab/pi-actors/lib/runs-supervision.ts +394 -0
  169. package/node_modules/@llblab/pi-actors/lib/runs-trace.ts +14 -3
  170. package/node_modules/@llblab/pi-actors/lib/runtime.ts +22 -3
  171. package/node_modules/@llblab/pi-actors/lib/session-evidence.ts +76 -4
  172. package/node_modules/@llblab/pi-actors/lib/state-readers.ts +16 -7
  173. package/node_modules/@llblab/pi-actors/lib/temp.ts +3 -56
  174. package/node_modules/@llblab/pi-actors/lib/tools-access.ts +13 -0
  175. package/node_modules/@llblab/pi-actors/lib/tools-inspect.ts +110 -51
  176. package/node_modules/@llblab/pi-actors/lib/tools-local.ts +37 -24
  177. package/node_modules/@llblab/pi-actors/lib/tools-message.ts +120 -37
  178. package/node_modules/@llblab/pi-actors/lib/tools-response.ts +273 -50
  179. package/node_modules/@llblab/pi-actors/lib/tools-spawn.ts +31 -10
  180. package/node_modules/@llblab/pi-actors/lib/trace-projection.ts +165 -42
  181. package/node_modules/@llblab/pi-actors/package.json +10 -6
  182. package/node_modules/@llblab/pi-actors/scripts/async-runner.mjs +272 -194
  183. package/node_modules/@llblab/pi-actors/scripts/conformance.mjs +14 -2
  184. package/node_modules/@llblab/pi-actors/skills/actors/SKILL.md +46 -2
  185. package/node_modules/@llblab/pi-actors/skills/actors/references/diagnostics.md +40 -0
  186. package/node_modules/@llblab/pi-actors/skills/actors/references/runs.md +55 -1
  187. package/node_modules/yaml/LICENSE +13 -0
  188. package/node_modules/yaml/README.md +172 -0
  189. package/node_modules/yaml/bin.mjs +11 -0
  190. package/node_modules/yaml/browser/dist/compose/compose-collection.js +88 -0
  191. package/node_modules/yaml/browser/dist/compose/compose-doc.js +43 -0
  192. package/node_modules/yaml/browser/dist/compose/compose-node.js +109 -0
  193. package/node_modules/yaml/browser/dist/compose/compose-scalar.js +86 -0
  194. package/node_modules/yaml/browser/dist/compose/composer.js +219 -0
  195. package/node_modules/yaml/browser/dist/compose/resolve-block-map.js +115 -0
  196. package/node_modules/yaml/browser/dist/compose/resolve-block-scalar.js +198 -0
  197. package/node_modules/yaml/browser/dist/compose/resolve-block-seq.js +49 -0
  198. package/node_modules/yaml/browser/dist/compose/resolve-end.js +37 -0
  199. package/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js +207 -0
  200. package/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js +225 -0
  201. package/node_modules/yaml/browser/dist/compose/resolve-props.js +146 -0
  202. package/node_modules/yaml/browser/dist/compose/util-contains-newline.js +34 -0
  203. package/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js +26 -0
  204. package/node_modules/yaml/browser/dist/compose/util-flow-indent-check.js +15 -0
  205. package/node_modules/yaml/browser/dist/compose/util-map-includes.js +13 -0
  206. package/node_modules/yaml/browser/dist/doc/Document.js +335 -0
  207. package/node_modules/yaml/browser/dist/doc/anchors.js +71 -0
  208. package/node_modules/yaml/browser/dist/doc/applyReviver.js +55 -0
  209. package/node_modules/yaml/browser/dist/doc/createNode.js +88 -0
  210. package/node_modules/yaml/browser/dist/doc/directives.js +176 -0
  211. package/node_modules/yaml/browser/dist/errors.js +57 -0
  212. package/node_modules/yaml/browser/dist/index.js +17 -0
  213. package/node_modules/yaml/browser/dist/log.js +11 -0
  214. package/node_modules/yaml/browser/dist/nodes/Alias.js +116 -0
  215. package/node_modules/yaml/browser/dist/nodes/Collection.js +147 -0
  216. package/node_modules/yaml/browser/dist/nodes/Node.js +38 -0
  217. package/node_modules/yaml/browser/dist/nodes/Pair.js +36 -0
  218. package/node_modules/yaml/browser/dist/nodes/Scalar.js +24 -0
  219. package/node_modules/yaml/browser/dist/nodes/YAMLMap.js +144 -0
  220. package/node_modules/yaml/browser/dist/nodes/YAMLSeq.js +113 -0
  221. package/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js +63 -0
  222. package/node_modules/yaml/browser/dist/nodes/identity.js +36 -0
  223. package/node_modules/yaml/browser/dist/nodes/toJS.js +37 -0
  224. package/node_modules/yaml/browser/dist/parse/cst-scalar.js +214 -0
  225. package/node_modules/yaml/browser/dist/parse/cst-stringify.js +61 -0
  226. package/node_modules/yaml/browser/dist/parse/cst-visit.js +97 -0
  227. package/node_modules/yaml/browser/dist/parse/cst.js +98 -0
  228. package/node_modules/yaml/browser/dist/parse/lexer.js +721 -0
  229. package/node_modules/yaml/browser/dist/parse/line-counter.js +39 -0
  230. package/node_modules/yaml/browser/dist/parse/parser.js +975 -0
  231. package/node_modules/yaml/browser/dist/public-api.js +102 -0
  232. package/node_modules/yaml/browser/dist/schema/Schema.js +37 -0
  233. package/node_modules/yaml/browser/dist/schema/common/map.js +17 -0
  234. package/node_modules/yaml/browser/dist/schema/common/null.js +15 -0
  235. package/node_modules/yaml/browser/dist/schema/common/seq.js +17 -0
  236. package/node_modules/yaml/browser/dist/schema/common/string.js +14 -0
  237. package/node_modules/yaml/browser/dist/schema/core/bool.js +19 -0
  238. package/node_modules/yaml/browser/dist/schema/core/float.js +43 -0
  239. package/node_modules/yaml/browser/dist/schema/core/int.js +38 -0
  240. package/node_modules/yaml/browser/dist/schema/core/schema.js +23 -0
  241. package/node_modules/yaml/browser/dist/schema/json/schema.js +62 -0
  242. package/node_modules/yaml/browser/dist/schema/tags.js +96 -0
  243. package/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js +58 -0
  244. package/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js +26 -0
  245. package/node_modules/yaml/browser/dist/schema/yaml-1.1/float.js +46 -0
  246. package/node_modules/yaml/browser/dist/schema/yaml-1.1/int.js +71 -0
  247. package/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js +67 -0
  248. package/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js +74 -0
  249. package/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js +78 -0
  250. package/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js +39 -0
  251. package/node_modules/yaml/browser/dist/schema/yaml-1.1/set.js +93 -0
  252. package/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js +101 -0
  253. package/node_modules/yaml/browser/dist/stringify/foldFlowLines.js +146 -0
  254. package/node_modules/yaml/browser/dist/stringify/stringify.js +129 -0
  255. package/node_modules/yaml/browser/dist/stringify/stringifyCollection.js +153 -0
  256. package/node_modules/yaml/browser/dist/stringify/stringifyComment.js +20 -0
  257. package/node_modules/yaml/browser/dist/stringify/stringifyDocument.js +85 -0
  258. package/node_modules/yaml/browser/dist/stringify/stringifyNumber.js +25 -0
  259. package/node_modules/yaml/browser/dist/stringify/stringifyPair.js +150 -0
  260. package/node_modules/yaml/browser/dist/stringify/stringifyString.js +336 -0
  261. package/node_modules/yaml/browser/dist/util.js +11 -0
  262. package/node_modules/yaml/browser/dist/visit.js +233 -0
  263. package/node_modules/yaml/browser/index.js +5 -0
  264. package/node_modules/yaml/browser/package.json +3 -0
  265. package/node_modules/yaml/dist/cli.d.ts +8 -0
  266. package/node_modules/yaml/dist/cli.mjs +201 -0
  267. package/node_modules/yaml/dist/compose/compose-collection.d.ts +11 -0
  268. package/node_modules/yaml/dist/compose/compose-collection.js +90 -0
  269. package/node_modules/yaml/dist/compose/compose-doc.d.ts +7 -0
  270. package/node_modules/yaml/dist/compose/compose-doc.js +45 -0
  271. package/node_modules/yaml/dist/compose/compose-node.d.ts +29 -0
  272. package/node_modules/yaml/dist/compose/compose-node.js +112 -0
  273. package/node_modules/yaml/dist/compose/compose-scalar.d.ts +5 -0
  274. package/node_modules/yaml/dist/compose/compose-scalar.js +88 -0
  275. package/node_modules/yaml/dist/compose/composer.d.ts +63 -0
  276. package/node_modules/yaml/dist/compose/composer.js +224 -0
  277. package/node_modules/yaml/dist/compose/resolve-block-map.d.ts +6 -0
  278. package/node_modules/yaml/dist/compose/resolve-block-map.js +117 -0
  279. package/node_modules/yaml/dist/compose/resolve-block-scalar.d.ts +11 -0
  280. package/node_modules/yaml/dist/compose/resolve-block-scalar.js +200 -0
  281. package/node_modules/yaml/dist/compose/resolve-block-seq.d.ts +6 -0
  282. package/node_modules/yaml/dist/compose/resolve-block-seq.js +51 -0
  283. package/node_modules/yaml/dist/compose/resolve-end.d.ts +6 -0
  284. package/node_modules/yaml/dist/compose/resolve-end.js +39 -0
  285. package/node_modules/yaml/dist/compose/resolve-flow-collection.d.ts +7 -0
  286. package/node_modules/yaml/dist/compose/resolve-flow-collection.js +209 -0
  287. package/node_modules/yaml/dist/compose/resolve-flow-scalar.d.ts +10 -0
  288. package/node_modules/yaml/dist/compose/resolve-flow-scalar.js +227 -0
  289. package/node_modules/yaml/dist/compose/resolve-props.d.ts +23 -0
  290. package/node_modules/yaml/dist/compose/resolve-props.js +148 -0
  291. package/node_modules/yaml/dist/compose/util-contains-newline.d.ts +2 -0
  292. package/node_modules/yaml/dist/compose/util-contains-newline.js +36 -0
  293. package/node_modules/yaml/dist/compose/util-empty-scalar-position.d.ts +2 -0
  294. package/node_modules/yaml/dist/compose/util-empty-scalar-position.js +28 -0
  295. package/node_modules/yaml/dist/compose/util-flow-indent-check.d.ts +3 -0
  296. package/node_modules/yaml/dist/compose/util-flow-indent-check.js +17 -0
  297. package/node_modules/yaml/dist/compose/util-map-includes.d.ts +4 -0
  298. package/node_modules/yaml/dist/compose/util-map-includes.js +15 -0
  299. package/node_modules/yaml/dist/doc/Document.d.ts +141 -0
  300. package/node_modules/yaml/dist/doc/Document.js +337 -0
  301. package/node_modules/yaml/dist/doc/anchors.d.ts +24 -0
  302. package/node_modules/yaml/dist/doc/anchors.js +76 -0
  303. package/node_modules/yaml/dist/doc/applyReviver.d.ts +9 -0
  304. package/node_modules/yaml/dist/doc/applyReviver.js +57 -0
  305. package/node_modules/yaml/dist/doc/createNode.d.ts +17 -0
  306. package/node_modules/yaml/dist/doc/createNode.js +90 -0
  307. package/node_modules/yaml/dist/doc/directives.d.ts +49 -0
  308. package/node_modules/yaml/dist/doc/directives.js +178 -0
  309. package/node_modules/yaml/dist/errors.d.ts +21 -0
  310. package/node_modules/yaml/dist/errors.js +62 -0
  311. package/node_modules/yaml/dist/index.d.ts +25 -0
  312. package/node_modules/yaml/dist/index.js +50 -0
  313. package/node_modules/yaml/dist/log.d.ts +3 -0
  314. package/node_modules/yaml/dist/log.js +19 -0
  315. package/node_modules/yaml/dist/nodes/Alias.d.ts +29 -0
  316. package/node_modules/yaml/dist/nodes/Alias.js +118 -0
  317. package/node_modules/yaml/dist/nodes/Collection.d.ts +73 -0
  318. package/node_modules/yaml/dist/nodes/Collection.js +151 -0
  319. package/node_modules/yaml/dist/nodes/Node.d.ts +53 -0
  320. package/node_modules/yaml/dist/nodes/Node.js +40 -0
  321. package/node_modules/yaml/dist/nodes/Pair.d.ts +22 -0
  322. package/node_modules/yaml/dist/nodes/Pair.js +39 -0
  323. package/node_modules/yaml/dist/nodes/Scalar.d.ts +47 -0
  324. package/node_modules/yaml/dist/nodes/Scalar.js +27 -0
  325. package/node_modules/yaml/dist/nodes/YAMLMap.d.ts +53 -0
  326. package/node_modules/yaml/dist/nodes/YAMLMap.js +147 -0
  327. package/node_modules/yaml/dist/nodes/YAMLSeq.d.ts +60 -0
  328. package/node_modules/yaml/dist/nodes/YAMLSeq.js +115 -0
  329. package/node_modules/yaml/dist/nodes/addPairToJSMap.d.ts +4 -0
  330. package/node_modules/yaml/dist/nodes/addPairToJSMap.js +65 -0
  331. package/node_modules/yaml/dist/nodes/identity.d.ts +23 -0
  332. package/node_modules/yaml/dist/nodes/identity.js +53 -0
  333. package/node_modules/yaml/dist/nodes/toJS.d.ts +29 -0
  334. package/node_modules/yaml/dist/nodes/toJS.js +39 -0
  335. package/node_modules/yaml/dist/options.d.ts +350 -0
  336. package/node_modules/yaml/dist/parse/cst-scalar.d.ts +64 -0
  337. package/node_modules/yaml/dist/parse/cst-scalar.js +218 -0
  338. package/node_modules/yaml/dist/parse/cst-stringify.d.ts +8 -0
  339. package/node_modules/yaml/dist/parse/cst-stringify.js +63 -0
  340. package/node_modules/yaml/dist/parse/cst-visit.d.ts +39 -0
  341. package/node_modules/yaml/dist/parse/cst-visit.js +99 -0
  342. package/node_modules/yaml/dist/parse/cst.d.ts +109 -0
  343. package/node_modules/yaml/dist/parse/cst.js +112 -0
  344. package/node_modules/yaml/dist/parse/lexer.d.ts +87 -0
  345. package/node_modules/yaml/dist/parse/lexer.js +723 -0
  346. package/node_modules/yaml/dist/parse/line-counter.d.ts +22 -0
  347. package/node_modules/yaml/dist/parse/line-counter.js +41 -0
  348. package/node_modules/yaml/dist/parse/parser.d.ts +84 -0
  349. package/node_modules/yaml/dist/parse/parser.js +980 -0
  350. package/node_modules/yaml/dist/public-api.d.ts +44 -0
  351. package/node_modules/yaml/dist/public-api.js +107 -0
  352. package/node_modules/yaml/dist/schema/Schema.d.ts +17 -0
  353. package/node_modules/yaml/dist/schema/Schema.js +39 -0
  354. package/node_modules/yaml/dist/schema/common/map.d.ts +2 -0
  355. package/node_modules/yaml/dist/schema/common/map.js +19 -0
  356. package/node_modules/yaml/dist/schema/common/null.d.ts +4 -0
  357. package/node_modules/yaml/dist/schema/common/null.js +17 -0
  358. package/node_modules/yaml/dist/schema/common/seq.d.ts +2 -0
  359. package/node_modules/yaml/dist/schema/common/seq.js +19 -0
  360. package/node_modules/yaml/dist/schema/common/string.d.ts +2 -0
  361. package/node_modules/yaml/dist/schema/common/string.js +16 -0
  362. package/node_modules/yaml/dist/schema/core/bool.d.ts +4 -0
  363. package/node_modules/yaml/dist/schema/core/bool.js +21 -0
  364. package/node_modules/yaml/dist/schema/core/float.d.ts +4 -0
  365. package/node_modules/yaml/dist/schema/core/float.js +47 -0
  366. package/node_modules/yaml/dist/schema/core/int.d.ts +4 -0
  367. package/node_modules/yaml/dist/schema/core/int.js +42 -0
  368. package/node_modules/yaml/dist/schema/core/schema.d.ts +1 -0
  369. package/node_modules/yaml/dist/schema/core/schema.js +25 -0
  370. package/node_modules/yaml/dist/schema/json/schema.d.ts +2 -0
  371. package/node_modules/yaml/dist/schema/json/schema.js +64 -0
  372. package/node_modules/yaml/dist/schema/json-schema.d.ts +69 -0
  373. package/node_modules/yaml/dist/schema/tags.d.ts +48 -0
  374. package/node_modules/yaml/dist/schema/tags.js +99 -0
  375. package/node_modules/yaml/dist/schema/types.d.ts +92 -0
  376. package/node_modules/yaml/dist/schema/yaml-1.1/binary.d.ts +2 -0
  377. package/node_modules/yaml/dist/schema/yaml-1.1/binary.js +70 -0
  378. package/node_modules/yaml/dist/schema/yaml-1.1/bool.d.ts +7 -0
  379. package/node_modules/yaml/dist/schema/yaml-1.1/bool.js +29 -0
  380. package/node_modules/yaml/dist/schema/yaml-1.1/float.d.ts +4 -0
  381. package/node_modules/yaml/dist/schema/yaml-1.1/float.js +50 -0
  382. package/node_modules/yaml/dist/schema/yaml-1.1/int.d.ts +5 -0
  383. package/node_modules/yaml/dist/schema/yaml-1.1/int.js +76 -0
  384. package/node_modules/yaml/dist/schema/yaml-1.1/merge.d.ts +9 -0
  385. package/node_modules/yaml/dist/schema/yaml-1.1/merge.js +71 -0
  386. package/node_modules/yaml/dist/schema/yaml-1.1/omap.d.ts +22 -0
  387. package/node_modules/yaml/dist/schema/yaml-1.1/omap.js +77 -0
  388. package/node_modules/yaml/dist/schema/yaml-1.1/pairs.d.ts +10 -0
  389. package/node_modules/yaml/dist/schema/yaml-1.1/pairs.js +82 -0
  390. package/node_modules/yaml/dist/schema/yaml-1.1/schema.d.ts +1 -0
  391. package/node_modules/yaml/dist/schema/yaml-1.1/schema.js +41 -0
  392. package/node_modules/yaml/dist/schema/yaml-1.1/set.d.ts +28 -0
  393. package/node_modules/yaml/dist/schema/yaml-1.1/set.js +96 -0
  394. package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.d.ts +6 -0
  395. package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js +105 -0
  396. package/node_modules/yaml/dist/stringify/foldFlowLines.d.ts +34 -0
  397. package/node_modules/yaml/dist/stringify/foldFlowLines.js +151 -0
  398. package/node_modules/yaml/dist/stringify/stringify.d.ts +21 -0
  399. package/node_modules/yaml/dist/stringify/stringify.js +132 -0
  400. package/node_modules/yaml/dist/stringify/stringifyCollection.d.ts +17 -0
  401. package/node_modules/yaml/dist/stringify/stringifyCollection.js +155 -0
  402. package/node_modules/yaml/dist/stringify/stringifyComment.d.ts +10 -0
  403. package/node_modules/yaml/dist/stringify/stringifyComment.js +24 -0
  404. package/node_modules/yaml/dist/stringify/stringifyDocument.d.ts +4 -0
  405. package/node_modules/yaml/dist/stringify/stringifyDocument.js +87 -0
  406. package/node_modules/yaml/dist/stringify/stringifyNumber.d.ts +2 -0
  407. package/node_modules/yaml/dist/stringify/stringifyNumber.js +27 -0
  408. package/node_modules/yaml/dist/stringify/stringifyPair.d.ts +3 -0
  409. package/node_modules/yaml/dist/stringify/stringifyPair.js +152 -0
  410. package/node_modules/yaml/dist/stringify/stringifyString.d.ts +9 -0
  411. package/node_modules/yaml/dist/stringify/stringifyString.js +338 -0
  412. package/node_modules/yaml/dist/test-events.d.ts +4 -0
  413. package/node_modules/yaml/dist/test-events.js +134 -0
  414. package/node_modules/yaml/dist/util.d.ts +16 -0
  415. package/node_modules/yaml/dist/util.js +28 -0
  416. package/node_modules/yaml/dist/visit.d.ts +102 -0
  417. package/node_modules/yaml/dist/visit.js +236 -0
  418. package/node_modules/yaml/package.json +97 -0
  419. package/node_modules/yaml/util.js +2 -0
  420. package/package.json +2 -2
  421. package/node_modules/@llblab/pi-actors/banner.jpg +0 -0
  422. package/node_modules/@llblab/pi-actors/dist/lib/inspector-actions.d.ts +0 -16
  423. package/node_modules/@llblab/pi-actors/dist/lib/inspector-actions.js +0 -57
  424. package/node_modules/@llblab/pi-actors/lib/inspector-actions.ts +0 -79
@@ -1,6 +1,209 @@
1
1
  # Project Backlog
2
2
 
3
- - [ ] `Next minor — Linux MPRIS media integration`: Expose the active `music-player/playback` singleton as one optional generation-fenced MPRIS2 player so GNOME and compatible desktop shells can show current media and native controls without making D-Bus a second playback authority.
4
- - [ ] Publish `PlaybackStatus`, track metadata, duration, read-time position, volume, and supported capabilities under one stable session-scoped bus identity; disappear cleanly when the Run stops or its generation is replaced, and fail soft when the user D-Bus session is unavailable.
5
- - [ ] Map `Play`, `Pause`, `PlayPause`, `Next`, `Previous`, `Stop`, `Seek`, `SetPosition`, and `Volume` back into the existing generation-fenced music-player Control/helper contract rather than signaling the backend or editing Run state directly.
6
- - [ ] Validate deterministic D-Bus contract behavior plus a live GNOME smoke showing the media surface, metadata, progress, volume, and controls while preserving backend independence and exact Actor ownership.
3
+ Canonical open work: `BACKLOG.md`. Contracts and durable constraints live in `AGENTS.md` and indexed `docs/`; investigation history stays in Git and the referenced evidence, not inside open tasks.
4
+
5
+ Task IDs name bounded work, not execution order. The operator authorizes autonomous selection and execution of open pi-actors work in Grow Loop: choose dependency-ready high-value cohorts across this backlog without repeated routine permission questions. Dependencies, factual acceptance and specific safety/authority boundaries remain explicit; a gated task is not completed merely because another cohort can proceed. Completing a child does not complete its checkpoint.
6
+
7
+ ## 1. Release 0.56.0 — external convergence
8
+
9
+ Outcome: Recover the failed immutable-tag validation without silently changing release identity. [PR#137](https://github.com/llblab/pi-actors/pull/137) is merged; `v0.56.0` remains at `48cd1348730f8d4ae8b19ea52dc1fd61ae017622`, whose tree passed all eleven PR checks. The [tag-owned Release run](https://github.com/llblab/pi-actors/actions/runs/42440646237) subsequently failed Windows `owners-a` at the snapshot canonical-facts test. Passing PR checks did not replace this mandatory tag gate. The operator explicitly authorized a correction PR through `dev → main` and conditional replacement of this failed unpublished tag after fresh corrected-main CI and a complete zero-publication/consumption audit. This is not permission for an unchanged rerun, main rewrite or manual publication.
10
+
11
+ ### R2 — Immutable publication completion
12
+
13
+ Exit: Exact intended package, immutable tag and GitHub Release converge through the existing automation. A pushed tag is not a published/verified release.
14
+
15
+ - [ ] **R2.3 — Validate and deliver release recovery.** Review the controlled busy-lifetime fixture correction in `tests/run-ui-runtime.test.ts`, then obtain fresh current-head full-matrix acceptance through [PR#138](https://github.com/llblab/pi-actors/pull/138), including Windows installed compiled SDK lifecycle/numbered-history. Keep production behavior, all existing assertions, deadlines, cleanup guards, versions and workflows unchanged. Preserve the existing tag until corrected protected-main CI and the immediately refreshed complete zero-publication/consumption audit pass. Then use only the operator-authorized exact leased failed-unpublished-tag replacement protocol; never rewrite main, rerun unchanged work for luck or publish manually.
16
+ - [ ] **R2.4 — Verify external convergence.** After owning automation succeeds, confirm exact npm version/gitHead/package, immutable tag, published stable GitHub Release/latest and successful owning workflow identities. Visibility retries verify existing state; they never republish. Remove this release checkpoint only after both R2 exit conditions pass.
17
+
18
+ ## Next bounded work
19
+
20
+ - **Release:** Review and deliver the SDK busy-lifetime fixture correction through PR#138, obtain fresh current-head Windows/full-matrix acceptance, then finish the guarded R2 audit/tag-replacement/publication sequence. Do not move the existing tag early or compete with publication.
21
+ - **Local implementation:** F1.3b is the next concrete projection cohort; success/list/delete/draft receipts still need migration. F1.3c, F1.3s and F1.4i remain separate attributable owners, not proof that all AX output already conforms. N1.4c also permits unrouted deterministic preparation within its reviewed contract.
22
+ - **Explicit gates:** U1 requires authorized loaded-host observation/reload; N1.2p needs actual Windows profile evidence, N1.3 an asset-distribution decision, and N1.6 separate activation admission. Original-clock/native-scope, macOS research and composition decisions retain their own B/C/T gates. Existing release permission does not adopt them.
23
+ - **Evidence reuse:** Reuse the accepted three-OS SOURCE/PACKED quit witnesses for B2.4; extend only the missing descendants/triggers/same-ID/crash cases. N1.9 stays a gated unresolved risk, not an instruction to repeat the completed ownership inquiry.
24
+
25
+ ## 2. Uniform runtime presentation — adopted, rollout pending
26
+
27
+ Outcome: JSON structured inputs, block-YAML runtime-output metadata and unchanged selected authored text/Markdown, as defined by [the AX contract](docs/agent-experience.md#json-input-yaml-output-opaque-content). This includes tool/spawn receipts, not only Actor results. Rollout remains partial; this checkpoint does not imply uniform emitter conformance, native continuation, package publication or a loaded-host change. Existing machine/input/source/history contracts remain separate.
28
+
29
+ ### F1 — One readable output contract
30
+
31
+ Exit: New owned runtime projections use YAML without pseudo-records or serialized JSON objects: bare when metadata-only, `---`-delimited headers only when a separate text body follows. Literal content, meaning, source/privacy bounds and saved messages remain intact. Service-carrier adoption has its own evidence gate; do not delete current framing to simulate completion.
32
+
33
+ - [ ] **F1.3b — Migrate successful registry projections.** Convert registration/update, listing/deletion and draft-promotion receipts with their distinct selected facts, safety-warning priority and whole-value bounds. A separate selected body alone requires a delimited header. Preserve post-effect/coercion/transaction/callability truth and unchanged details. Verify: registry success/list/delete/draft owners and source/packed parity.
34
+ - [ ] **F1.3c — Migrate registry-owned refusals.** Convert only locally authored mode/name/source/template/draft/transaction refusal projections. Keep original getter/coercion/fault order, private causes, opaque advice and whole-source limits; do not wrap host/dependency exceptions or infer no effects/retry. Verify: corresponding registry guard/failure properties and applicable packed witnesses.
35
+ - [ ] **F1.3s — Separate synchronous tool metadata from selected output.** Migrate owned usage/guard/exit-label facts without parsing or reserializing stdout/stderr/report bodies or JSON invocation examples. Keep existing trim/tail/loss basis, exact executor failures and the pre-dispatch repair cutoff. Metadata plus selected text uses a delimited header; metadata-only output stays bare. Verify: tools-local/execution-output/spawn guards and packed dispatch-failure owners.
36
+ - [ ] **F1.4 — Migrate inspection, Control and runtime notices.** Render selected structured/verbose metadata as YAML, including generated JSON Schema views; retain literal sources. Reconcile emitter execution/depth ceilings with actual caller budgets without narrowing public allowances. Preserve error/cause, request/delivery/handling/effects/closure distinctions and recipient fences. Verify: affected Control/inspect/runtime/notification owner properties.
37
+ - [ ] **F1.4i — Verify remaining Inspector feedback recognition.** Check anchored feedback recognition against current AX guard/error output and correct only evidenced gaps. Preserve reviewed generic block-YAML and independent native Markdown, zero added body indentation, exact selected text and own undefined fields, source labels, native columns/wrapping, chronology/identity, chrome, frozen underlay and once-only generation actions. Verify: affected guard/modal properties and compiled parity. Loaded acceptance stays with U1.3/U1.5; no duplicate renderer migration or implicit host reload.
38
+ - [ ] **F1.7 — Accept one rollout candidate.** Verify exactly one visual blank line between host invocation/arguments and each result/error without altering selected bodies. Independently verify no runtime-owned JSON/pseudo-record escape remains in the selected rollout, with history/literal-body invariance, source/compiled/package/Skill parity and permitted terminal/phone acceptance. Keep current capture codec facts and new target distinct; no unrun live/native claim or automatic default activation.
39
+
40
+ ### U1 — Loaded UI/AX acceptance
41
+
42
+ Exit: Real loaded rendering is checked separately from source/headless/native proofs. This is independent follow-up, not a claim that the already merged release received loaded-host acceptance. Reload and an operator Run require their own authorization; do not start one merely to manufacture a live Kill case.
43
+
44
+ - [ ] **U1.1 — Retest fresh completion packets and expansion.** After authorized reload, inspect actual singleton/multiple/omitted-row packets: index-first YAML/kind, left-edge independent Markdown, literal unfinished blocks, exact cut marker, blank separation and no routine top-level completion caption/toast. Expansion and historical fallback must preserve the saved text. Verify: actual terminal/phone observation plus existing delivery/Pi owners.
45
+ - [ ] **U1.2 — Retest the Run dropdown.** Check shifted compact placement, independent stripes/right padding, narrow/medium/wide layout and unchanged selection/source detail. Preserve the accepted navigation and refresh behavior; do not invent a performance cause or change freshness speculatively. Verify: real Inspector plus existing overlay/Inspector properties.
46
+ - [ ] **U1.3 — Retest notification and Kill modals.** Check complete selected notification text, no prefix/reader indirection, Esc-only dismissal and scrolling only on physical overflow; check centered compact Kill, default backgrounds/insets, frozen underlay and no key leakage. Cancel returns to the same Inspector without Notice; success relies on selected status and failures remain visible. Verify: actual permitted modal cases, without claiming Kill is scope closure.
47
+ - [ ] **U1.4 — Retest Inspector chronology.** Check newest-higher numbering across 100→101/102, filter gaps without renumbering, scrolling/detail provenance and visible `#?` for unavailable history. Do not promise permanent lifetime ordinals or reconstruct missing offsets. Verify: [chronology contract](docs/actor-inspector.md#chronological-numbering-requested-replacement) on loaded terminal/phone.
48
+ - [ ] **U1.5 — Retest loaded Inspector YAML documents.** After separately authorized reload, verify real block YAML in Recipe, Control, non-agent Trace detail (including process.stderr) and captured Kill fields, with actual sequence shapes, preserved log scalars and independent exact agent Markdown. Check narrow/wide wrapping, stripes, scrolling and unchanged actions on terminal/phone. Source, compiled and independent-review evidence is not already-loaded-host acceptance.
49
+ - [ ] **U1.6 — Retest loaded read-only Control utility.** After separately authorized reload, verify recorded readiness/actions/queue diagnostics, status-first request rows and Enter→redacted YAML on terminal/phone. Check empty/partial history, the20-parsed-record suffix, narrow/low viewports, refresh selection and generation replacement without new Trace reads or actions. Preserve actual status/timestamps and existing Kill guards. Source/compiled/review acceptance is not already-loaded-host proof; no command submission, automatic replay or new protocol.
50
+
51
+ ## 3. Session-wide completion index — adopted, not wired by default
52
+
53
+ Outcome: Consecutive indices across batches in one logical Pi session; reload/resume/replay preserves allocated numbers. The current repeated single-result `index: 0` is packet-local behavior, not completion of this requirement. This integration is separate from the selective release's currently disabled public-stream boundary; no renderer-local `index++`, silent existing-session bootstrap or historical renumbering.
54
+
55
+ ### S1 — Coupled session-stream activation
56
+
57
+ Exit: Persistence, trusted lifecycle binding, allocation/capture/recovery and presentation agree under the [adopted stream contract](docs/coordinator-delivery.md#completion-streams-adopted-contract). Existing atomic allocator and fresh-manager bridge are foundations, not default activation.
58
+
59
+ - [ ] **S1.1 — Finish bootstrap/start/status admission.** Positively establish non-connection and trusted first connection; implement the admitted session-level start/status path. Missing/corrupt state is unavailable, not off or permission to restart at zero. Verify: delivery journal and runtime admission properties.
60
+ - [ ] **S1.2 — Admit continuation and wire the default runtime.** Resolve startup/reload/resume against the original manager/current generation; preserve pending targets, unresolved-packet barriers and `/tree`-independent counters. Establish restore versus independent-copy semantics for imports retaining an ID/reason=resume, and fork/clone isolation. Verify: run-ui/extension-runtime and real source/packed session journeys.
61
+ - [ ] **S1.3 — Preserve immutable numbering/provenance.** Use the kernel allocator's saved whole range/member order and session+stream+index identity; retain unavailable `?`, first-stream boundary and full technical provenance. Projection never reads the mutable current counter, restyles old packets or reconstructs an unknown counter. Verify: run-delivery/Pi/native renderer and installed properties within unchanged budgets.
62
+ - [ ] **S1.4 — Accept continuous delivery and loaded display.** Prove multiple batches advance, replay/recovery does not allocate twice, same-session reload/resume does not reset, and new fork/clone does not inherit numbering. Check actual loaded packets only after authorized reload; source success does not activate the already running host. Verify: ordinary source/packed lifecycle plus permitted UI observation.
63
+
64
+ ## 4. Future supervision and self-contained outcomes
65
+
66
+ Outcome: Complete [A/B/C and the SUP-01–SUP-17 matrix](docs/run-supervision.md), then D. No future version/release or default activation is implied. Keep unchanged credentials, strict Linux/macOS/Windows authority and positive native-closure requirements. Removal of `inspect` remains a separately gated scope, not an implied task here. A can progress without a production scope backend; A4 needs B1's clock, real enforcement needs B and C. The N1 MI reader supplies identity observation, not protected scope/owner-loss authority.
67
+
68
+ ### A0 — Remaining first-layer AX and partial-failure presentation
69
+
70
+ Exit: Existing owned surfaces are compact, truthful and selectively recoverable. Included loaded UI is owned by U1; session numbering by S1, not duplicate checkboxes here.
71
+
72
+ - [ ] **A0.2 — Resolve recipient-bound Control enrichment.** Gate richer id/generation/drill-down on a reviewed original-recipient publication contract across tool call, normalization, hooks and final routing. Current conservative unknown-effects errors/private causes remain valid; manager equality, copied context/IDs or saved errors do not authorize publication. Reopen only on changed host-contract evidence; this optional enrichment does not block the conservative layer. Verify: [recipient-bound preparation](docs/run-supervision.md#recipient-bound-correlation-preparation).
73
+ - [ ] **A0.3 — Integrate authoritative partial-stop facts.** Depend on B2/C/D1 for richer legacy stop receipts and finalization. No missing Trace/handled/progress record proves inaction, and no error grants automatic retry. Verify: [existing-fact reconciliation](docs/run-supervision.md#control-partial-failure-evidence-existing-facts-not-a-new-receipt-contract) and stop/control owners.
74
+
75
+ ### A1 — Shared snapshot/read-model integration
76
+
77
+ Exit: A single admitted compositor supplies bounded manual/default/timed observations without fabricated timing, permission or native authority. Existing metadata-only default stays until gates pass.
78
+
79
+ - [ ] **A1.1 — Join supported lifetime and original-origin facts.** Depend on B1.1/B1.2/B1.3; consume original time/reference capabilities, not saved DTOs, PID/wall timestamps or later replacement samples. Keep ordinary missing first-natural time unproven. Verify: snapshot/supervision/status admission properties.
80
+ - [ ] **A1.2 — Wire shared projection routes.** After A1.1, use one compositor/renderer for default/manual/status/timed routes; preserve source/lifetime fences, null/redacted cwd/index, secret masking, metadata-only artifact observations and selective navigation. No second status implementation, source read, ACK, lifecycle or actuation side effect. Verify: snapshot/observability/inspect-security families (`SUP-05`, `SUP-14`).
81
+ - [ ] **A1.3 — Join forced-stop projection only from authority.** Gate confirmed stop/closure display on C and B2 facts; unknown lifecycle/timing remains explicit. Verify: stop/snapshot classification, not rejection-only native support.
82
+
83
+ ### A3 — Source selection, recoverability and clipping
84
+
85
+ Exit: Only explicitly admitted sources/retention cross evidence → projection → delivery; first result/unavailability and saved packets stay immutable. The accepted logical-session file-navigation route remains separate and already supplies ordinary location research.
86
+
87
+ - [ ] **A3.1 — Decide the broader stdout predicate.** Obtain approval for final successful settled ordinary-command attempt, including a single retry wrapper, before extending the initial bare-command/one-attempt raw-source contract. Composition/parallel/repeat/recovery/policy output, stderr and Actor-session answers need their own predicates. Preserve the 4 MiB input boundary. Verify: [selection reconciliation](docs/run-supervision.md#a3-owner-reconciliation-and-unadopted-selection-proposal).
88
+ - [ ] **A3.2 — Decide summary/diagnostic retention.** Approve source-kind/privacy/storage/replay boundaries before retaining more than fixed fields or pre-record Trace text. Resolve collector1000/display200 and failure-journal4096 UTF-16 losses without split scalars, guessed counts, raw/private disclosure, malformed repair or changed packet text. Verify: [legacy disclosure boundary](docs/run-supervision.md#legacy-completion-disclosure-boundary).
89
+ - [ ] **A3.3 — Integrate only approved source branches.** After the corresponding decision, prove full authorized retention before formatting, exact ranges/Unicode counts, whole-row omission and immutable provenance/unavailability through existing evidence/delivery/render owners. Executor-final-response capture is bounded retained text, not expanded raw-stream permission. Verify: ordinary source/packed recovery (`SUP-11–12`, `SUP-14–16`); reuse unchanged primary/artifact/diagnostic witnesses.
90
+
91
+ ### A4 — Latest-only diagnostics and context
92
+
93
+ Exit: Reporting uses A1, the accepted session-owned navigation and B1's admitted clock, with descendants quiet and default reporting disabled.
94
+
95
+ - [ ] **A4.1 — Implement root cooldown/coalescing.** Coalesce only unadmitted observations; freeze admitted packets and honor `RUN_DIAGNOSTIC_MIN_INTERVAL_MS` at actual accepted delivery. Manual/terminal/urgent bypass stays independent. Verify: delivery/runtime clock-boundary fixtures (`SUP-06–08`, `SUP-17`).
96
+ - [ ] **A4.2 — Fold only obsolete automatic context.** Preserve native/foreign/manual history, mixed terminal members and acceptance evidence; do not rewrite stored packets or widen source permissions. Verify: session-evidence/context-recovery fixtures (`SUP-13`).
97
+
98
+ ### B1 — Original clock, host lifetime and controller ownership
99
+
100
+ Exit: Supported coordinator/independent-supervisor lifetimes retain original origins without new allowance; same-runtime claims do not masquerade as cross-process authority.
101
+
102
+ - [ ] **B1.1 — Resolve the live-origin carrier contract.** The carrier proposal is unadopted. Establish clock-domain/epoch/platform, issuer/bootstrap/return, bounded nonblocking relay and cleanup, then obtain approval before kernel-interface work. No channel/nonce/DTO, late sample or passive historical receipt reconstructs an origin. Verify: explicit [carrier gate](docs/run-supervision.md) and first-natural semantics.
103
+ - [ ] **B1.2 — Establish host shutdown-before-invalidation.** Resolve bare `AgentSession.dispose` coverage with trusted shutdown, not copied IDs or inferred revocation. Integrate supported original-manager lifetimes while preserving singleton clocks and existing retained capabilities. Verify: real SDK lifecycle plus replacement/revocation fixtures.
104
+ - [ ] **B1.3 — Integrate ordinary first-natural timing and controller authority.** After B1.1/B1.2, carry the original one-shot capture into ordinary runner/supervisor lifetimes; preserve pending/failed publication and post-stop uncertainty. Resolve ownership across distinct origins/runtimes/processes, not only cooperative same-origin claims. No cross-process/model await under lifecycle admission or relocated canonical T0. Verify: supervision/time/long-workload families (`SUP-03–04`).
105
+ - [ ] **B1.4 — Admit restart recovery without renewal.** Missing clock/origin stays unavailable; saved start/clock metadata cannot grant a fresh allowance, launched-Run fact or terminal timing. Verify: restart/overdue/provider-fault and singleton witnesses.
106
+
107
+ ### B2 — Existing stop protocol and parent-stop integration
108
+
109
+ Exit: A request/ACK/signal is not terminal handling or whole-scope closure. Actual native actuation remains C-gated.
110
+
111
+ - [ ] **B2.1 — Remove stalled-transport lock coupling safely.** Replace lifecycle admission held across awaited `sendRunControl` transport only after an equivalent generation/endpoint fencing contract exists. Do not merely remove `await` and open a replacement race. Verify: transport saturation, release faults and same-ID replacement.
112
+ - [ ] **B2.2 — Join claims/work/captures to confirmed stop.** Keep durable first cause and natural-result precedence; replace immediate handled/progress/terminal finalization after signaling with confirmed supported scope termination. Verify: control/lifecycle/native-authority boundary families (`SUP-09–10`).
113
+ - [ ] **B2.3 — Reconcile every terminal reader and retention path.** Keep nonterminal request ACKs, `timed_out`, pending captures and exact generation consistent across status/collector/retention. Verify: status/outcome/retirement owners without fabricated closure.
114
+ - [ ] **B2.4 — Extend the accepted portable quit evidence.** The ordinary SOURCE/PACKED graceful-quit case already passed exact-candidate Linux/macOS/Windows CI with actual runner close, direct-workload fresh absence and a surviving foreign owner; retain that evidence rather than replaying it as missing. Remaining work is descendants, other triggers, concurrent same-ID hosts, crash/hung-host and original owner-instance lifetime. These extensions require their corresponding B/C authority; the existing case proves neither sealed membership nor full closure. Verify: native shutdown and parent-stop families for only the newly admitted cases.
115
+
116
+ ### B3 — Deterministic controller integration
117
+
118
+ Exit: Controlled drivers prove controller behavior, not OS termination or platform support.
119
+
120
+ - [ ] **B3.1 — Join admission and stop races.** Exercise canonical state/lifecycle-lock contention, deadline/manual/natural ordering, replacement and unavailable scope authority across B1/B2. Verify: explicit controller drivers (`SUP-03–04`, `SUP-08–10`).
121
+ - [ ] **B3.2 — Preserve long-timer/provider-fault behavior.** Integrate existing wake-plan, overflow and fault witnesses without fresh allowance, fake authority or native-support claims. Verify: deterministic supervision/time properties before native integration.
122
+
123
+ ### C1 — Three-platform protected scope and owner-loss authority
124
+
125
+ Exit: Approved native scope identity/issuer/compatibility and positive evidence for Linux/macOS/Windows under unchanged credentials. Heartbeat loss and runner PID are not owner-death authority; namespace/group-mapping variants remain parked.
126
+
127
+ - [ ] **C1.1 — Review exact native bootstrap/setup contracts.** Review protected cgroup-v2/pidfd, Windows HANDLE/Job and the admitted macOS candidate with original host lifetime, session epoch and Run generation before work. Backend implementation remains gated on the macOS feasibility in C1.3/C1.4. Record concrete setup/rights/containment requirements for separate approval before performing them. No second registry, journal-reconstructed grant, privilege escalation or Linux-only substitution. Verify: [owner-loss mechanism gate](docs/run-supervision.md#owner-loss-termination-approved-outcome-and-mechanism-gate).
128
+ - [ ] **C1.2 — Bind the separately permitted macOS inventory operation.** Select the exact approved clean GitHub commit and inventory-only envelope before using the previous single inventory-only permission; `inventory_only=true`, `execute_pilot_a=false`, empty reviewed-profile JSON/digest. Current selective-release authority does not execute this research workflow or grant pilot A. Inventory facts cannot approve a profile. Verify: [SPI/CI plan](docs/run-supervision.md#macos-spi-and-ci-feasibility-plan).
129
+ - [ ] **C1.3 — Admit and execute macOS observational profile A.** Obtain exact v2 profile/`transport_sha256` and native-execution approval. Prove ABI, identities, fork/setsid observations and actual cleanup for macos-15/arm64 Xcode16.4 SDK15.5 under unchanged credentials; then separately review macos-26/arm64 and macos-15-intel. Local/mock/19-case C-core evidence is not native PASS_A, C1 or B authority.
130
+ - [ ] **C1.4 — Prove macOS issuer/bootstrap and complete closure feasibility.** Establish one authenticated issuer, exclusive pre-work binding, retained lifetime, sealed membership/emptiness/recovery and supported profile/setup. Exercise real own/foreign, ingress/escape/stop, owner/controller loss and partial faults. Keep B blocked if unavailable; no guessed SPI authority, coalition/accounting requirement, registration or speculative adapter.
131
+ - [ ] **C1.5 — Verify cross-platform compatibility and authority.** After mechanism feasibility, prove no breakaway/migration, correct original-instance authority, handle/controller loss and compatibility with existing host containment. Retain every uncertain/non-pass result. Verify: agreed native profiles, not labels, metrics, helper exit or rejection-only tests.
132
+
133
+ ### C2 — Authenticated live membership before work
134
+
135
+ Exit: Scope membership is authoritative and generation-bound, not copied preparation data or directory ancestry.
136
+
137
+ - [ ] **C2.1 — Bind the actual spawning member and parent.** Extend private intent/preparation evidence with authenticated native scope identity and live membership before work. No actor scope path, delivery environment, owner discovery or index lineage supplies that authority. Verify: admission/missing/foreign/replaced membership families (`SUP-02`, `SUP-09–10`).
138
+ - [ ] **C2.2 — Serialize ingress with parent stop.** Cover fork/setsid and separately spawned cross-owner Runs, parent/child admission contention, migration/descriptor/namespace egress and nested scopes. Preserve independent child policies within the parent scope and original parent clock. Verify: real native ingress/escape plus controlled races.
139
+
140
+ ### C3 — Positive closure, recovery and retirement
141
+
142
+ Exit: Only sealed complete scope identity/emptiness plus recursive exact-generation child closure permits finalization or guard release.
143
+
144
+ - [ ] **C3.1 — Compose complete native/child closure.** Retain escalation policy and authoritative original-scope evidence; all recorded members settling is not complete membership or closure. Wire ordinary native/child starts only after C2 and closure integration. Verify: positive native stop/escape/descendant witnesses.
145
+ - [ ] **C3.2 — Recover uncertain preparations without inventing work.** Handle producer loss, staged-only/incomplete records, malformed/legacy/replaced proof and runtime-local cleanup quarantine. No identity backfill, reconstructed authority, fabricated exits or metadata-to-work promotion. Verify: real crash/replacement/recovery and retirement guards (`SUP-09–10`).
146
+
147
+ ### D — Future integrated supervision acceptance and release
148
+
149
+ Exit: One candidate supports the complete SUP-01–SUP-17 claim set. A/B readiness does not replace C, and unsupported/unproven or rejection-only behavior is not positive enforcement support. No future version is authorized yet.
150
+
151
+ - [ ] **D1 — Wire admitted public ingress.** After readiness, integrate Recipe/spawn literals, delegation/async inheritance and synchronous-path refusal; keep ordinary arguments/singleton compatibility. Expose the admitted generation and require top-level kill preconditions, exact terminal ACKs, consistent readers and kill independence from actor Control saturation. Verify: Recipe/tools/Control/source-packed journeys (`SUP-01–02`, `SUP-09–10`, `SUP-13`).
152
+ - [ ] **D2 — Prove positive deadline/manual/natural outcomes.** Join B/C through actual public launches on the agreed native platform set: membership before work, independent expiry, sealed admission, owned-scope termination and only then `timed_out`. Cover descendants, replacement, producer loss/recovery and event ordering. Reject unsupported limits before work; rejection alone is not acceptance (`SUP-03–04`, `SUP-08–10`).
153
+ - [ ] **D3 — Validate one future candidate.** Only after A/B/C and live/native acceptance, select an eligible minor version, consolidate outcome notes and align API/Skills/package/lock/dist. Bind the complete evidence matrix, normal validation, source/packed parity, native checks, dependency audit and context checks. Equivalent-input reuse is allowed; mocks/skips do not replace native proof.
154
+ - [ ] **D4 — Perform the separately admitted release handoff.** Follow refreshed ADMIN/fork/dev-route/remote/version/tag eligibility and sole workflow ownership. This future epic grants no reset/rebase/force-push/intermediate publish/tag reuse. Close only after immutable-tag automation and exact npm/GitHub verification; keep MPRIS separate.
155
+
156
+ ## 5. Future Linux MPRIS integration
157
+
158
+ Outcome: One optional MPRIS2 surface for the existing `music-player/playback` singleton, not a second playback authority. No current release activation.
159
+
160
+ ### M1 — Generation-fenced bus surface
161
+
162
+ - [ ] **M1.1 — Define bus lifetime and availability.** Use one stable session-scoped identity, withdraw it on stop/replacement and fail soft without user D-Bus. Verify: deterministic ownership/generation/bus-loss properties.
163
+ - [ ] **M1.2 — Publish truthful media state.** Supply playback status, metadata, duration, read-time position, volume and capabilities from existing playback facts; do not edit Run truth or signal the backend. Verify: MPRIS property/position contract.
164
+ - [ ] **M1.3 — Route controls through existing Control.** Map Play/Pause/PlayPause/Next/Previous/Stop and Seek/SetPosition/Volume into the generation-fenced helper contract. Verify: deterministic delivery/refusal and replacement races, preserving backend independence.
165
+ - [ ] **M1.4 — Accept the live GNOME surface.** Check media presence, metadata, progress, volume and controls against the owned Actor; retain missing-environment evidence rather than claiming a smoke pass. Verify: separately authorized live session.
166
+
167
+ ## 6. Composition transport and optional CodeMode
168
+
169
+ Outcome: Refine the [recorded design intake](docs/composition-transport.md) separately from 0.56.0. Illustrative APIs are not adoption or a new runtime requirement.
170
+
171
+ ### T1 — Bundle contract and resolver integration
172
+
173
+ - [ ] **T1.1 — Decide the portability boundary.** Resolve recipes-only versus scripts/assets, external dependencies, export privacy, source provenance and aggregate limits before claiming self-contained portability. Keep container IDs distinct from Recipe names/global Skill identity/Run authority. Verify: contract review.
174
+ - [ ] **T1.2 — Specify and validate JSONL grammar.** Define manifest/entry/record/local-ID/reference rules and refusal for duplicates, missing IDs, cycles, truncation and malformed input. Verify: bounded parser/preflight properties after T1.1.
175
+ - [ ] **T1.3 — Integrate lossless pack/load.** Reuse current resolution/composition, preserving args/defaults/Control/async/artifacts/runtime origins/relative paths/source privacy. No second runtime or registry. Verify: relocation and source/packed parity after T1.2.
176
+
177
+ ### T2 — Agent operating patterns and interoperability
178
+
179
+ - [ ] **T2.1 — Update actual owning Skills.** Teach optional preflight/conditional chains, bounded awaited fan-out, real-completion fan-in and selective result reading with omission counts. actors owns shared lifecycle mechanics; swarm owns independence/scopes/dissent/integration. Include benefit/overhead/contracts/failure/cancellation and ordinary-tool fallback; docs alone do not complete delivery.
180
+ - [ ] **T2.2 — Validate real host interoperability.** Exercise actual spawn/active registered-tool calls through CodeMode with awaited receipt, independent outcome delivery, context/generation, cancellation before/after materialization and partial effects. Preserve failure/source/omission semantics; no polling, new wait service, abandoned Promise, raised Pi floor or implicit JS Recipe backend. Verify: source/packed host-capability journeys.
181
+
182
+ ## 7. Optional native acquisition and post-release package work
183
+
184
+ Outcome: Prepare a separately reviewed optimized acquisition path without retroactively turning it into a 0.56.0 release blocker. The shipped reader remains PowerShell with corrected UTF-8. Inert differential success and restored SDK timing observation do not admit UTC/provider profiles, executable assets, production routing or full native SDK convergence. The owning [Windows design/evidence](docs/windows-process-observation.md) preserves those boundaries.
185
+
186
+ ### N1 — Reviewed fresh Windows acquisition
187
+
188
+ Exit: A separately admitted optimized shipping path preserves identity/status/authority semantics and passes unchanged source-and-packed SDK/native acceptance. This future backend is not the released PowerShell UTF-8 correction. Owner: process acquisition, not supervision. Design and experiment evidence: [Windows process observation recovery](docs/windows-process-observation.md).
189
+
190
+ - [ ] **N1.2p — Establish UTC-profile admission.** Record actual native environment/version facts and real PowerShell precision-boundary witnesses, then define/test the exact initial admission predicate. MI offset zero, runner labels, JavaScript timezone or expected-identity equality are insufficient. Keep unproved date/provider partitions unsupported. Verify: Windows differential and separately disclosed controlled formatter witnesses.
191
+ - [ ] **N1.3 — Decide native executable distribution.** Obtain an explicit decision on reviewed unsigned Windows x64 repository/npm assets with manifest-bound provenance and baseline fallback. Recommendation: committed prebuilts, no install-time compilation/download. This decision does not approve default activation. Verify: source/build/artifact/architecture/dependency and execution-policy review.
192
+ - [ ] **N1.4c — Complete asset-verified acquisition preparation.** Add the bounded complete-manifest reader, trusted exact-byte selection, fixed versioned package-relative asset verification/lookup and shell-free invocation seam under the reviewed contract. Preserve raw-null refusal and unsupported UTC admission until N1.2p; comparison/status/fences remain in their owners. No production routing or binary inventory change without their separate gates. Verify: mirrored asset/acquisition/fallback ports and source/compiled parity.
193
+ - [ ] **N1.5 — Bind the exact candidate asset.** After N1.3, retain reviewed Windows build bytes and manifest, verify source/artifact hashes and toolchain provenance, and make offline build/prepack copy-and-verify assets for source and compiled lookup. Ordinary users need no compiler, new runtime, download or privilege. Unsupported architecture and missing/corrupt/policy-blocked assets must not bypass policy or repair a mismatch. Verify: source/packed asset parity and differential against those exact bytes.
194
+ - [ ] **N1.6 — Review and integrate acquisition routing.** Gate on N1.2p/N1.4c/N1.5 and explicit activation admission. Change only the fresh scalar/shared acquisition seam; keep liveness, public status/error precedence, original-frame fallback, publication/Control/snapshot/teardown checks and callback fences. Never fall back through a supported identity mismatch or replacement. Verify: process/status/observability/results/Control owners and independent review.
195
+ - [ ] **N1.7 — Close real SDK/native convergence.** Run the full source-and-packed journeys through the integrated shipping path and obtain the complete three-OS/three-shard matrix plus audit. Keep 87 planned genuine Runs/layout, nine modes, both 40-spawn cohorts, workload 300 s/10 ms, SDK watchdog 900 s Windows/300 s elsewhere, operator-admitted five-second completion-boundary ESRCH settlement after canonical work readiness and separate ten-second original-close acceptance. Other existing eight-second settlement policies remain unchanged. No extra skips, forced exits, signals, fabricated birth/absence or deadline resets/inflation.
196
+ - [ ] **N1.9 — Gate further private-cleanup remediation on new evidence.** The intermittent post-research final-PID refusal remains causally unexplained despite a passing release-candidate run; it is not an active red check. The producer/reader inquiry found no ownership omission. Reopen implementation only for a new falsifiable actual-owner mechanism, or explicit admission plus reviewed positive original-generation/resource proof before changing cleanup. Prior absence, close0, an arbitrary mismatch or guessed PID reuse cannot replace fresh ESRCH for every captured safe PID. No repeated role-only inquiry, wait inflation, dropped captures, forced cleanup or luck reruns.
197
+
198
+ Shared N1 constraints: Retain uncertain roots; fresh ESRCH immediately precedes every deletion. Missing/malformed/query failure never proves absence. Preserve fingerprint schemas/algorithms and saved historical identity bytes, existing optional normalization and `.trim()`, exact falsy/ordered causes and all source/privacy/generation/physical fences. Corrected UTF-8 acquisition must not rewrite old lossy Unicode records or accept legacy aliases; a live mismatch remains `owner_mismatch`. No TTL/cross-callback identity map, daemon, new mandatory platform prerequisite or native-check elision. A prototype pass does not activate a backend. Reuse unchanged evidence semantically; packaged docs/status changes still invalidate an earlier exact tarball.
199
+
200
+ ### R1 — Post-release package-surface review
201
+
202
+ Exit: Any later cleanup is independently justified and validated against its own tree. The immutable 0.56.0 tag is not a cleanup branch; source/packed presentation and release-narrative acceptance are already covered by the accepted release tree.
203
+
204
+ - [ ] **R1.1 — Inventory retained inactive foundations before a removal decision.** Identify packaged but unactivated supervision/stream/native-adapter owners, their actual consumers and interleaved safety guards. Produce a reachability/package inventory that distinguishes reviewed runtime dependencies from optional foundations; remove nothing merely by filename or because its default path is off. Default supervision and public completion streams remain disabled. Verify: source/compiled/default-wiring and npm-inventory audit; use existing build/package evidence where inputs are unchanged.
205
+ - [ ] **R1.2 — Remove temporary diagnostics after native acceptance.** Gate on N1.7; remove only proven temporary/redundant instrumentation, preserve owned regressions, then refresh invalidated focused checks and final candidate-bound packaging/native evidence. A dirty status note or earlier executable result is not final-tarball proof.
206
+
207
+ ## Evidence and scope notes
208
+
209
+ The committed baseline of the former backlog is retained in Git at `16a3417`; later operational evidence is linked from the owning design and CI runs. Old candidate logs, review hashes and investigation iterations are evidence, not additional open work. Do not infer completed functionality from a closed author/reviewer process or infer publication/activation from a prototype PASS.
@@ -2,6 +2,19 @@
2
2
 
3
3
  > Each release keeps at most 8 outcome records of at most 512 characters.
4
4
 
5
+ ## Unreleased
6
+
7
+ ## 0.56.0: AX, File Navigation and Runtime Safety
8
+
9
+ - `AX Records`: Compact spawn/async-tool receipts, full spawn metadata and fresh attention use block YAML with opaque selected content and whole reference sequences. Metadata-only replies stay bare; bodies follow closed headers without added outer indent. Ordinary attention remains unbounded; urgent complete-message fitting keeps16KiB and later-group coverage. Other surfaces retain flat records during rollout. Source/activation contracts, machine details and saved text stay unchanged.
10
+ - `Actor Inspector`: All metadata documents use real block YAML; agent bodies remain independent native Markdown and selected undefined stays distinct. Control adds read-only readiness/queue diagnostics and a bounded request list with redacted YAML detail. Trace ranks retain #? uncertainty/selection; menus retain stripes/padding. Compact Kill/notices keep frozen backgrounds and whole selected text; cancel/success stay silent, failures/uncertainty remain visible.
11
+ - `Immutable Completion Records`: New completions put index/run/state/kind in nested YAML without compiler HTML tails and render unindented Markdown separately. Known cuts show [N characters omitted] at the cut, not in metadata. Up to64shown/256captured members share48KiB including framing with frozen equal quotas and whole source refs. No success toast remains. Content-bound rendering and exact historical replay confer no acceptance, read or native authority.
12
+ - `Recoverable Outcomes`: Successful completions show proven command output or executor-selected Actor responses, not launch metadata. Pi text-print (direct or SDK CLI via Node), composition and retry replies use captured privacy and immutable generation-bound sources. Counts cover retained response text; upstream clipping remains separately unknown. Diagnostic/declaration/omitted-member refs stay recoverable. Missing sources are not repaired; no full-stream or native-closure claim follows.
13
+ - `Session File Navigation`: Launch receipts expose observed file locations and identify existing-Run reuse without promising another launch. Explicit investigation gives the owning session a root-first, generation-bound map, including resume without original producer keys; failed investigations prioritize observed failed subtrees. Whole references remain navigation metadata, not body or native authority. Catalog failures do not authorize replay.
14
+ - `Conservative Failures`: Keeps original errors after executor/launcher handoff instead of guessing argument-repair advice. Selected request, mutation, recording and release boundaries retain ordered private causes without rollback or replay. Control separates delivery, handling and effects uncertainty; changed-owner/generation refusals withhold replacement status even in verbose output. A kill attempt is not confirmed scope termination. Nonregular Control journals stay unavailable, never healthy empty.
15
+ - `Shutdown and Retention`: Fences graceful parent teardown to the captured current session-manager lifetime, refusing stale or reused contexts. Startup cleanup requires owned, generation-consistent state and proven PID absence; retained native/child/preparation journals stay fenced. Graceful teardown and these guards do not establish independent owner-loss supervision, same-ID host isolation or full-scope closure.
16
+ - `Packaging and Release CI`: Omits npm banner, retaining hosted media/runtime. PR-only CI uses3shards/OS and one conformance pass. npm verification waits10min without republishing, checking version/gitHead/manifests. Missing procfs avoids scans. UI/delivery share an inventory; Windows CIM reads stay invocation-local with metadata fences and now emit strict BOM-free UTF-8. Saved fingerprints are not repaired. Animation is display-only; fixtures await readiness and retain uncertain roots.
17
+
5
18
  ## 0.55.0: Active Completion Overlays
6
19
 
7
20
  - `Active Completion Overlays`: Batches ready Actor trees at the next completed model-step boundary, after the full tool batch, so the running coordinator receives fresh results before idle without native steering. Preserves prior boundary entries, exact owner/generation fences, and debounced idle wakeups. Proposed entries remain pending until exact context or bounded session evidence proves acceptance; dropped proposals retry without premature handled markers or duplicate accepted reports.
@@ -11,12 +11,20 @@ Run = Recipe + Trace + Control
11
11
 
12
12
  An **actor** is any runnable local capability: a script, tool, service, pipeline, or subagent. A **Recipe** is its reusable executable definition. `spawn` creates a **Run**—one concrete actor instance—which captures its Recipe, appends observable **Trace**, and may consume actor-local **Control**.
13
13
 
14
+ ## Agent Experience (AX)
15
+
16
+ pi-actors adopts **AX — Agent Experience** as a project-wide design standard: give the agent visible, structured context for its next decision while keeping the same facts easy for a person to read. The adopted form is typed block-YAML runtime metadata with opaque authored content, not Markdown-list pseudo-objects. Inspector, tool results/errors and agent-bound outcomes should follow that direction as their owned rollout proceeds.
17
+
18
+ The [AX standard](docs/agent-experience.md) adopts JSON structured inputs → block-YAML runtime-output metadata, with Actor-authored text/Markdown preserved outside the header. This includes tool/spawn/status/Control/inspect output, not only completion results. It is an adopted direction, not a claim that current mixed-format emitters already conform; [BACKLOG.md](BACKLOG.md) tracks rollout. Machine protocols, privacy/source permissions and immutable saved messages remain separate. Current completion indices are packet-local; independent native owner-loss supervision, execution deadlines and public session completion streams are not enabled. The future contracts do not strengthen the existing stop/closure guarantees.
19
+
14
20
  ## Local Coordinator Model
15
21
 
16
22
  Multi-instance systems commonly put instance creation and routing in an external gateway. pi-actors supports a different topology: the current Pi instance remains the coordinator, companion extensions such as Telegram provide presence, and explicit Runs perform bounded delegated work. The coordinator receives high-level outcomes, decomposes them, stays available for decisions, and owns integration plus final validation instead of becoming another undifferentiated worker.
17
23
 
18
24
  This topology does not require every task to become a subagent. Short work with one natural validation boundary stays inline; delegation pays when clean context, asynchronous execution, independent judgement, parallel ownership, or coordinator availability exceeds its coordination cost. Bounded implementation can run with reasoning off while the coordinator selectively launches clean-context reasoning-enabled reviewers; several independent reviews can provide broader evidence than one author self-review. Boundary-delivered completion batches, durable Trace, and declared artifacts replace tight polling loops.
19
25
 
26
+ Design notes for [portable Recipe composition bundles and CodeMode interoperability](docs/composition-transport.md) are recorded separately. JSONL bundle loading is not implemented or included in the current UX/AX release; host CodeMode, when available, calls existing tools rather than replacing the Run kernel.
27
+
20
28
  ## Install
21
29
 
22
30
  Requires Node.js 22.19.0 or newer and Pi 1.0.0 or newer.
@@ -151,12 +159,24 @@ String command-template leaves execute directly without shell interpretation. Us
151
159
 
152
160
  Trace fields are exact: `id`, `ts`, `kind`, and optional `summary`, `data`, `level`, `attention`. Address, sender, recipient, reply, and routing fields fail validation. Trace is a bounded retained suffix, not an audit archive: the canonical authority appends within 2,048 events and 4 MiB or atomically keeps the newest suffix plus one warning-only `runtime.trace_compacted` marker. That marker means older history was discarded; `result.json`, `execution.json`, terminal state, and declared artifacts retain their own authority. `inspect view=trace` reports whether retained history is complete. Reads are newline-safe and deterministic; first-party scripts never write this file directly.
153
161
 
154
- Generic command lifecycle is Trace-only: runner-owned `command.done` records preserve completion and execution evidence but never request or project attention, including malformed legacy records carrying `steer`. There is no Recipe-level command-completion delivery switch. Semantic attention is explicit: `notify` shows visible status without a model turn, `followup` supplies ordinary checkpoint context, and `steer` requests urgent delivery at Pi's next safe assistant/tool boundary. `notify` and `followup` remain retained wake hints that may compact away, so persist recovery state or an artifact first. `steer` is admitted to the bounded owner delivery journal before `deliverAs: "steer"`, acknowledged only in exact model-bound context, and never suppresses the eventual root-terminal batch. Store large evidence in artifacts or bounded execution captures.
162
+ Generic command lifecycle is Trace-only: runner-owned `command.done` records preserve completion and execution evidence but never request or project attention, including malformed legacy records carrying `steer`. There is no Recipe-level command-completion delivery switch. Semantic attention is explicit: `notify` shows visible status without a model turn, `followup` supplies ordinary checkpoint context, and `steer` requests urgent delivery at Pi's next safe assistant/tool boundary. `notify` and `followup` remain retained wake hints that may compact away, so persist recovery state or an artifact first. `steer` is admitted to the bounded owner delivery journal before `deliverAs: "steer"`, acknowledged only in exact model-bound context, and never suppresses the eventual root-terminal batch. Store large evidence in artifacts or bounded execution captures. New urgent steers keep the canonical checkpoint and whole optional references within 16 KiB, explicitly counting omitted paths instead of cutting a path; saved envelopes retain their original text. Essential text that cannot fit remains retryable before admission, not partially delivered. Ordinary notify/followup shares exact reference spelling and explicit eight-slot coverage; its wake policy is unchanged. Legacy body and steer-diagnostic clipping explicitly marks unknown omission counts when no retained privacy context admits safe numbers; it is not a new privacy or completeness guarantee.
155
163
 
156
164
  Ordinary finite Runs project terminal results through one root-coordinator completion scheduler. Nested actors inherit durable parent-generation lineage: their own Pi sessions never emit completion turns, and their results wait for the complete containing top-level tree. While the root Pi is active, the next completed `turn_end` boundary snapshots all ready trees into one immutable bounded batch, appends one visible custom message after the full tool batch, and requests one next model step. This overlay uses boundary entries, not Pi's native steering or follow-up queue, so the model can integrate fresh results before its current run settles. Already-idle Pi retains a short debounce and one automatic follow-up wake. The operator and model receive the same parent-child tree with bounded actor outputs. Proposed boundary entries stay pending until exact model context or bounded active-session evidence proves acceptance; an idle send finalizes on successful Pi acceptance without requiring a later context callback. Sequence, parallel, repeat, and imported branches remain internal, while separately launched Runs retain exact independent generations. Silent Runs and synchronous stop acknowledgments remain non-projecting.
157
165
 
166
+ Unreleased UX/AX subset: completions share48KiB UTF-8 including service fields, divided equally between up to64 candidate results: nearly48KiB for one,24KiB each for two,16KiB each for three. Whole admitted text fitting its share is result; otherwise preview carries the safe prefix and exact omitted count, without a fixed16KiB result/2KiB preview cap. Completions show admitted work output or the bounded executor-selected final Actor response, never command metadata. Saved packets keep their original budget/text; source-backed prefix selection occurs only at fresh admission, not replay/render. Direct Pi text-print answers and successful composition/retry responses use the original producer privacy; observed upstream clipping stays explicit and is not confused with preview loss. Ordinary completions can carry retained primary-text, artifact-declaration inventory and diagnostic-metadata references. Follow the exact reference for clipped or omitted evidence; it records capture-time identity/hash/counts, not perpetual readability. Artifact inventories list declarations only, not proof that target files exist or were produced, and do not grant body-read permission. Diagnostic excerpts identify the selected field with literal UTF-8/Unicode counts; their source contains recorded command/error/failure-reason metadata, not complete primary output. Source loss is explicit and never replaced by guessed legacy bodies or paths. See [Run supervision](docs/run-supervision.md) for implemented boundaries and remaining acceptance gates.
167
+
168
+ Unreleased A2 subset: `inspect target=runtime view=runs verbose=true` now adds a bounded [root-first file map](docs/run-supervision.md#same-session-file-investigation) for the actual session's already cataloged directories. Follow selected locations with ordinary tools, without an original producer key. Source/npm-packed SDK fixtures resume the same saved session in a new process after real Run producers and their coordinator host have exited, then read the actual result and select recorded stdout via the mapped execution manifest with ordinary tools; another session gets no inherited branch. The read-only map exposes canonical starting-location coverage and expected format hints, not a full file inventory or format/completeness validation. Its published_sessions link locates the fixed role catalog physically under the owned Run root, even without a semantic index or producer key; this does not certify its body or historical publication. SDK checks select one controlled partial preview and also read an actual private-writer preview after its holder exits and the same saved session opens in another process. Exact tool-read paths and final byte/absence snapshots are checked, including selected-preview loss errors without cached/raw fallback; the private publisher uses controlled recorded-session sources, not genuine Actor conversations. A finite public spawn and later same-saved-session research also pass through real source/npm entrypoints, without replacement tools or copied lifecycle wiring. Corrupt catalogs stay unavailable without repair. Inventory filters observe current Run status, not the registration-time cache. Ordinary maps retain root-group recency with known failed children first; add status=failed to the verbose request for observed failed-subtree-first ordering across roots without filtering the full owned map or adding reads. Priority is partial observed data, not terminal authority. Launches and compatible singleton attachments now register after lifecycle release; catalog failure returns `catalog=unavailable` without failing or retrying the launched work. SDK fork/clone preserves inherited history but gives the new logical session no fresh map branch. Compact launch receipts now include exact-generation current-session starting locations without evidence-body or catalog reads, or explicit unavailability/whole-row omission. New completion batches freeze bounded same-session location rows at admission and render them after outcomes within the shared budget, alongside the optional current-session map command. Legacy absent/request-only packets retain their text; source/npm SDK verifies an explicitly requested result read from a terminal row. This closes representative navigation acceptance, not the release. Neither captured locations nor the request execute inspection automatically or grant copied/forked history fresh ownership. Legacy batches keep their original text; no full map is embedded into immutable outcomes. Compact/default inspection, curated previews and timing/work/native authority are unchanged.
169
+
170
+ Compact spawn/asynchronous-tool launch receipts use bare block YAML with nested file-location data and identify an existing Run reuse instead of implying another launch. Full `spawn verbose=true` metadata remains JSON during the staged rollout; private details and input schemas keep their machine formats. When a complete direct file-location row is shown, it replaces the redundant session-wide map hint; missing, unavailable or omitted rows retain that optional investigation command. Exact references, expert details, shared bounds and saved completion-packet text are preserved.
171
+
172
+ New automatic completion packets show direct `omitted:N chars` fields for positive tracked primary/diagnostic loss, counted in Unicode code points after privacy projection. Full retained references and older saved packet text stay unchanged. This does not yet cover every legacy summary/body or attention clipping path, nor grant broader output publication.
173
+
174
+ Runtime argument guidance stops at the execution handoff. Failures after an executor entry or launcher handoff keep their original cause/details, even if their wording resembles a missing or invalid argument. Later-step failures can follow partial work: do not blindly repeat the invocation. This changes presentation, not retry policy or native termination guarantees.
175
+
158
176
  ## Control
159
177
 
178
+ An exception does not guarantee an unapplied action: actor-local delivery can fail after handling is recorded, and retirement can fail after data has moved or been removed. Use existing owned evidence rather than replaying the action. The [partial-failure evidence map](docs/run-supervision.md#control-partial-failure-evidence-existing-facts-not-a-new-receipt-contract) distinguishes these paths from still-gated native stop receipts.
179
+
160
180
  Controls persist to `controls.jsonl` before transport. One token-owned lock rejects a 65th pending Control or 1 MiB rewrite before admission, fails closed on malformed or stale-generation evidence, and atomically admits one record. Canonical transitions retain a 128-terminal tail, expected-state fencing, and 4 KiB errors. Admitted nonterminal Controls never expire automatically. Every record carries immutable `run_instance_id`. `inspect view=control` reports pending capacity, saturation, stale work, journal bytes, and bounded diagnostics.
161
181
 
162
182
  Runtime-owned lifecycle and retention actions use the same `message` tool:
@@ -167,8 +187,12 @@ message target=run:<id> action=archive
167
187
  message target=run:<id> action=prune input={"preserve_artifacts":true}
168
188
  ```
169
189
 
190
+ Compact Control replies report an understandable action stage instead of dumping status objects: queued/delivered is not handled; archive/prune success is complete; a kill attempt leaves full termination explicitly unconfirmed. Only a relevant evidence hint is shown (Control for actor delivery, Trace for a stop attempt, owned inventory after identity replacement); already-terminal refusal needs no routine follow-up. Use `verbose: true` on the original request for full JSON, not a repeated destructive action. Changed-owner/generation refusals also omit the replacement status from full/verbose replies; verbosity grants no extra scope. Same-identity receipt detail remains available. Actor-local dispatch exceptions still fail, conservatively leaving delivery, handling and effects unconfirmed; do not repeat automatically. Their optional follow-up starts at fresh owned inventory, not a copied stale Control id/generation. Raw causes remain Kernel-local even with verbose; oversized request targets are wholly omitted with explicit coverage under 16 KiB. This presentation/curation does not change the legacy stop engine or prove closure.
191
+
170
192
  `kill` accepts only a currently running owned generation, bypasses actor-local capacity, and creates no synthetic Control. `archive` and `prune` accept only terminal owned Runs. Archive moves the entire Run state directory and leaves a tombstone. Prune removes Run state; declared existing artifacts survive only when `preserve_artifacts` is explicitly true, in which case they are copied to retained artifact storage before removal.
171
193
 
194
+ Startup Run cleanup and manual archive/prune share the existing `runs-retention.ts` owner. The seven-day filesystem-age threshold is unchanged; automatic cleanup additionally requires an owned generation, fresh runner ESRCH and the existing lifecycle/reuse and retained native/descendant guards. Unbound, unreadable, replaced or still-fenced state stays retained, including retention containers without Run identity. These checks are not whole-scope native closure proof. Ordinary temp cleanup does not retire Runs.
195
+
172
196
  Long-lived services publish `control-endpoint.json` only when ready:
173
197
 
174
198
  ```json
@@ -238,6 +262,12 @@ npm run validate
238
262
  npm run test:preservation
239
263
  ```
240
264
 
265
+ `npm run validate` runs the full test suite once, including every conformance suite with the same preload and execution flags. `npm run conformance` remains a standalone targeted subset; aggregate validation does not repeat it after the full suite. An invariant checks cohort inclusion and profile equivalence.
266
+
267
+ Tests normally mirror `lib/<module>.ts` as `tests/<module>.test.ts`, with related contract groups in that file. `tests/invariants.test.ts` checks the naming boundary and the explicit cross-domain/package exceptions; the preservation rules live in [AGENTS.md](./AGENTS.md).
268
+
269
+ Standard tests, preservation and conformance preload a fresh temporary default agent directory for each test-runner process, ignoring any operator-supplied agent path. These directories are retained rather than deleted on test-runner exit alone; individual fixtures keep their own explicit cleanup evidence. For direct launcher checks, use `node --import ./tests/test-environment.mjs --experimental-strip-types --test ...`.
270
+
241
271
  The atomic build produces the committed JavaScript runtime used by npm and git installs; `npm run build:check` verifies that `dist/` matches source without rewriting it. Pi can load a TypeScript extension entrypoint, but standalone Node processes cannot type-strip modules under `node_modules`; keeping compiled Run modules preserves process isolation without a runtime TypeScript loader.
242
272
 
243
273
  See the [documentation index](./docs/README.md), [Run lifecycle](./docs/async-runs.md), and [Recipe library](./docs/recipe-library.md).
@@ -11,7 +11,7 @@ export default function toolRegistryExtension(pi) {
11
11
  if (Paths.isRawExtensionCheckout(import.meta.url)) {
12
12
  pi.on("resources_discover", async () => runtime.discoverResources(import.meta.url));
13
13
  }
14
- pi.on("session_start", async (_event, ctx) => runtime.onSessionStart(ctx));
14
+ pi.on("session_start", async (event, ctx) => runtime.onSessionStart(ctx, event));
15
15
  pi.on("turn_end", (event, ctx) => runtime.onTurnEnd(event, ctx));
16
16
  pi.on("agent_settled", async (_event, ctx) => runtime.onAgentSettled(ctx));
17
17
  pi.on("context", async (event, ctx) => ({
@@ -7,8 +7,13 @@ import { type CurrentPolicyProvenance } from "./model-context.ts";
7
7
  import * as RunDeliveryLineage from "./run-delivery-lineage.ts";
8
8
  import * as RecipesReferences from "./recipes-references.ts";
9
9
  import { type RunArtifactDeclaration } from "./runs-artifacts.ts";
10
+ import { type RunDescendantLaunchIntent } from "./runs-descendant-launches.ts";
11
+ import { RUN_OUTCOME_PROTOCOL } from "./runs-outcomes.ts";
12
+ import { type RunResultProducer } from "./runs-results.ts";
10
13
  import { type RunProcessIdentity } from "./runs-process.ts";
11
14
  import * as RuntimeIdentity from "./runtime-identity.ts";
15
+ import { type RunSnapshotReferenceReader } from "./runs-context-exports.ts";
16
+ import * as RunSupervision from "./run-supervision.ts";
12
17
  import * as RunsIndex from "./runs-index.ts";
13
18
  import * as RunsParentTeardown from "./runs-parent-teardown.ts";
14
19
  import { type DeliverRunControlOptions, type DeliverRunControlRequest } from "./runs-control-delivery.ts";
@@ -71,6 +76,9 @@ export type { AsyncRunStatus } from "./runs-status.ts";
71
76
  export interface AsyncRunMeta {
72
77
  argv: string[];
73
78
  createdAt: string;
79
+ started_at?: string;
80
+ supervision?: RunSupervision.RunSupervisionState;
81
+ supervision_provenance?: RunSupervision.ResolvedRunSupervisionPolicy["provenance"];
74
82
  cwd: string;
75
83
  launch_kind?: AsyncRunLaunchSource;
76
84
  launch_source?: AsyncRunLaunchSource;
@@ -86,6 +94,7 @@ export interface AsyncRunMeta {
86
94
  run_instance_id: string;
87
95
  state_dir: string;
88
96
  state_schema: typeof RuntimeIdentity.RUN_STATE_SCHEMA;
97
+ outcome_protocol?: typeof RUN_OUTCOME_PROTOCOL;
89
98
  status: AsyncRunStatus;
90
99
  tool?: string;
91
100
  template: CommandTemplateValue;
@@ -105,15 +114,43 @@ export interface AsyncRunMeta {
105
114
  singleton_recipe_id?: string;
106
115
  singleton_values?: Record<string, unknown>;
107
116
  transport_context?: Record<string, unknown>;
117
+ /** Launch-return observation only; never persisted Run truth or a navigation/read capability. */
118
+ catalog_registration?: Readonly<{
119
+ state: "unavailable";
120
+ reason: "catalog_registration_failed";
121
+ }>;
122
+ /** Original Kernel-local cause, non-enumerable on the return object and excluded from tool details/JSON. */
123
+ catalog_registration_error?: unknown;
108
124
  }
109
125
  export { safeRunId } from "./runs-identity.ts";
110
126
  export { resolveArtifactManifest } from "./runs-artifacts.ts";
111
127
  export type { RunArtifactDeclaration, RunArtifactManifestEntry, } from "./runs-artifacts.ts";
128
+ export interface AsyncRunAdmissionClock {
129
+ readonly kind: "run_clock_origin_captured";
130
+ readonly visibility: "kernel_only";
131
+ readonly publication: "unpublished";
132
+ readonly work_started: false;
133
+ readonly identity: Readonly<{
134
+ run: string;
135
+ run_instance_id: string;
136
+ ownerId?: string;
137
+ }>;
138
+ readonly state_dir: string;
139
+ readonly clock: Readonly<RunSupervision.RunSupervisionClock>;
140
+ readonly origin: Readonly<RunSupervision.RunSupervisionTimeOrigin>;
141
+ readonly snapshot_references?: Readonly<RunSnapshotReferenceReader>;
142
+ }
112
143
  export interface AsyncRunStartOptions {
113
144
  skillContext?: RecipesReferences.ActiveSkillRecipeContext;
145
+ /** Ordinary fresh launches only: synchronously retain the exact origin; this is not a published/started Run receipt. */
146
+ onSupervisionClockCaptured?: (event: Readonly<AsyncRunAdmissionClock>) => void;
114
147
  }
115
148
  export declare function startRun(params: AsyncRunStartParams, cwd: string, options?: AsyncRunStartOptions): AsyncRunMeta;
149
+ /** Kernel-only prepare path: real generation creation, but no native process, workload, launch receipt, or membership authority. */
150
+ export declare function prepareDescendantRunGeneration(parentStateDir: string, producer: RunResultProducer, params: AsyncRunStartParams, cwd: string, options?: AsyncRunStartOptions): Readonly<RunDescendantLaunchIntent>;
116
151
  export declare function getRunStatus(runOrDir: string): Record<string, unknown>;
152
+ /** Internal inventory acquisition; direct status and lifecycle readers remain independently scalar. */
153
+ export declare function getRunInventoryStatuses(stateDirs: readonly string[]): (Record<string, unknown> | undefined)[];
117
154
  export type { RunStateIndexEntry } from "./runs-index.ts";
118
155
  export declare function listRunStateDirs(stateRoot?: string): string[];
119
156
  export declare function rebuildRunStateIndex(stateRoot?: string): RunsIndex.RunStateIndexEntry[];