@llblab/pi-kit 0.1.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 (523) hide show
  1. package/AGENTS.md +35 -0
  2. package/BACKLOG.md +3 -0
  3. package/CHANGELOG.md +9 -0
  4. package/LICENSE +21 -0
  5. package/README.md +43 -0
  6. package/node_modules/@llblab/pi-actors/AGENTS.md +150 -0
  7. package/node_modules/@llblab/pi-actors/BACKLOG.md +6 -0
  8. package/node_modules/@llblab/pi-actors/CHANGELOG.md +865 -0
  9. package/node_modules/@llblab/pi-actors/README.md +231 -0
  10. package/node_modules/@llblab/pi-actors/banner.jpg +0 -0
  11. package/node_modules/@llblab/pi-actors/dist/fixtures/protocol/artifact-manifest.json +9 -0
  12. package/node_modules/@llblab/pi-actors/dist/fixtures/protocol/control-endpoint.json +6 -0
  13. package/node_modules/@llblab/pi-actors/dist/fixtures/protocol/control-record.json +9 -0
  14. package/node_modules/@llblab/pi-actors/dist/fixtures/protocol/recipe-summary.json +8 -0
  15. package/node_modules/@llblab/pi-actors/dist/fixtures/protocol/run-state.json +10 -0
  16. package/node_modules/@llblab/pi-actors/dist/fixtures/protocol/trace-event.json +9 -0
  17. package/node_modules/@llblab/pi-actors/dist/index.d.ts +7 -0
  18. package/node_modules/@llblab/pi-actors/dist/index.js +17 -0
  19. package/node_modules/@llblab/pi-actors/dist/lib/async-runs.d.ts +146 -0
  20. package/node_modules/@llblab/pi-actors/dist/lib/async-runs.js +800 -0
  21. package/node_modules/@llblab/pi-actors/dist/lib/automatic-review-runtime.d.ts +20 -0
  22. package/node_modules/@llblab/pi-actors/dist/lib/automatic-review-runtime.js +103 -0
  23. package/node_modules/@llblab/pi-actors/dist/lib/command-templates.d.ts +85 -0
  24. package/node_modules/@llblab/pi-actors/dist/lib/command-templates.js +804 -0
  25. package/node_modules/@llblab/pi-actors/dist/lib/config.d.ts +34 -0
  26. package/node_modules/@llblab/pi-actors/dist/lib/config.js +216 -0
  27. package/node_modules/@llblab/pi-actors/dist/lib/control-projection.d.ts +20 -0
  28. package/node_modules/@llblab/pi-actors/dist/lib/control-projection.js +66 -0
  29. package/node_modules/@llblab/pi-actors/dist/lib/control.d.ts +15 -0
  30. package/node_modules/@llblab/pi-actors/dist/lib/control.js +97 -0
  31. package/node_modules/@llblab/pi-actors/dist/lib/draft-consolidation-transaction.d.ts +65 -0
  32. package/node_modules/@llblab/pi-actors/dist/lib/draft-consolidation-transaction.js +610 -0
  33. package/node_modules/@llblab/pi-actors/dist/lib/draft-consolidation.d.ts +35 -0
  34. package/node_modules/@llblab/pi-actors/dist/lib/draft-consolidation.js +126 -0
  35. package/node_modules/@llblab/pi-actors/dist/lib/draft-review.d.ts +56 -0
  36. package/node_modules/@llblab/pi-actors/dist/lib/draft-review.js +254 -0
  37. package/node_modules/@llblab/pi-actors/dist/lib/draft-sleep.d.ts +65 -0
  38. package/node_modules/@llblab/pi-actors/dist/lib/draft-sleep.js +467 -0
  39. package/node_modules/@llblab/pi-actors/dist/lib/execution-output.d.ts +25 -0
  40. package/node_modules/@llblab/pi-actors/dist/lib/execution-output.js +88 -0
  41. package/node_modules/@llblab/pi-actors/dist/lib/execution-sessions.d.ts +17 -0
  42. package/node_modules/@llblab/pi-actors/dist/lib/execution-sessions.js +85 -0
  43. package/node_modules/@llblab/pi-actors/dist/lib/execution.d.ts +99 -0
  44. package/node_modules/@llblab/pi-actors/dist/lib/execution.js +725 -0
  45. package/node_modules/@llblab/pi-actors/dist/lib/extension-runtime.d.ts +21 -0
  46. package/node_modules/@llblab/pi-actors/dist/lib/extension-runtime.js +141 -0
  47. package/node_modules/@llblab/pi-actors/dist/lib/file-state.d.ts +18 -0
  48. package/node_modules/@llblab/pi-actors/dist/lib/file-state.js +310 -0
  49. package/node_modules/@llblab/pi-actors/dist/lib/identity.d.ts +9 -0
  50. package/node_modules/@llblab/pi-actors/dist/lib/identity.js +27 -0
  51. package/node_modules/@llblab/pi-actors/dist/lib/inspector-actions.d.ts +16 -0
  52. package/node_modules/@llblab/pi-actors/dist/lib/inspector-actions.js +57 -0
  53. package/node_modules/@llblab/pi-actors/dist/lib/inspector-command.d.ts +7 -0
  54. package/node_modules/@llblab/pi-actors/dist/lib/inspector-command.js +37 -0
  55. package/node_modules/@llblab/pi-actors/dist/lib/inspector-overlay.d.ts +100 -0
  56. package/node_modules/@llblab/pi-actors/dist/lib/inspector-overlay.js +824 -0
  57. package/node_modules/@llblab/pi-actors/dist/lib/inspector.d.ts +20 -0
  58. package/node_modules/@llblab/pi-actors/dist/lib/inspector.js +136 -0
  59. package/node_modules/@llblab/pi-actors/dist/lib/limits.d.ts +28 -0
  60. package/node_modules/@llblab/pi-actors/dist/lib/limits.js +28 -0
  61. package/node_modules/@llblab/pi-actors/dist/lib/model-context.d.ts +56 -0
  62. package/node_modules/@llblab/pi-actors/dist/lib/model-context.js +220 -0
  63. package/node_modules/@llblab/pi-actors/dist/lib/observability.d.ts +186 -0
  64. package/node_modules/@llblab/pi-actors/dist/lib/observability.js +951 -0
  65. package/node_modules/@llblab/pi-actors/dist/lib/paths.d.ts +27 -0
  66. package/node_modules/@llblab/pi-actors/dist/lib/paths.js +72 -0
  67. package/node_modules/@llblab/pi-actors/dist/lib/pi.d.ts +19 -0
  68. package/node_modules/@llblab/pi-actors/dist/lib/pi.js +21 -0
  69. package/node_modules/@llblab/pi-actors/dist/lib/preflight-diagnostics.d.ts +27 -0
  70. package/node_modules/@llblab/pi-actors/dist/lib/preflight-diagnostics.js +86 -0
  71. package/node_modules/@llblab/pi-actors/dist/lib/prompts.d.ts +24 -0
  72. package/node_modules/@llblab/pi-actors/dist/lib/prompts.js +49 -0
  73. package/node_modules/@llblab/pi-actors/dist/lib/recipe-control.d.ts +7 -0
  74. package/node_modules/@llblab/pi-actors/dist/lib/recipe-control.js +43 -0
  75. package/node_modules/@llblab/pi-actors/dist/lib/recipes-context.d.ts +36 -0
  76. package/node_modules/@llblab/pi-actors/dist/lib/recipes-context.js +197 -0
  77. package/node_modules/@llblab/pi-actors/dist/lib/recipes-discovery.d.ts +77 -0
  78. package/node_modules/@llblab/pi-actors/dist/lib/recipes-discovery.js +783 -0
  79. package/node_modules/@llblab/pi-actors/dist/lib/recipes-references.d.ts +113 -0
  80. package/node_modules/@llblab/pi-actors/dist/lib/recipes-references.js +1108 -0
  81. package/node_modules/@llblab/pi-actors/dist/lib/recipes-usage.d.ts +21 -0
  82. package/node_modules/@llblab/pi-actors/dist/lib/recipes-usage.js +494 -0
  83. package/node_modules/@llblab/pi-actors/dist/lib/registry.d.ts +67 -0
  84. package/node_modules/@llblab/pi-actors/dist/lib/registry.js +504 -0
  85. package/node_modules/@llblab/pi-actors/dist/lib/review-control.d.ts +14 -0
  86. package/node_modules/@llblab/pi-actors/dist/lib/review-control.js +110 -0
  87. package/node_modules/@llblab/pi-actors/dist/lib/review-diagnostics.d.ts +11 -0
  88. package/node_modules/@llblab/pi-actors/dist/lib/review-diagnostics.js +148 -0
  89. package/node_modules/@llblab/pi-actors/dist/lib/review-projection.d.ts +14 -0
  90. package/node_modules/@llblab/pi-actors/dist/lib/review-projection.js +166 -0
  91. package/node_modules/@llblab/pi-actors/dist/lib/run-evidence-policy.d.ts +95 -0
  92. package/node_modules/@llblab/pi-actors/dist/lib/run-evidence-policy.js +177 -0
  93. package/node_modules/@llblab/pi-actors/dist/lib/run-ui-runtime.d.ts +18 -0
  94. package/node_modules/@llblab/pi-actors/dist/lib/run-ui-runtime.js +125 -0
  95. package/node_modules/@llblab/pi-actors/dist/lib/runs-artifacts.d.ts +21 -0
  96. package/node_modules/@llblab/pi-actors/dist/lib/runs-artifacts.js +68 -0
  97. package/node_modules/@llblab/pi-actors/dist/lib/runs-control-delivery.d.ts +28 -0
  98. package/node_modules/@llblab/pi-actors/dist/lib/runs-control-delivery.js +150 -0
  99. package/node_modules/@llblab/pi-actors/dist/lib/runs-control.d.ts +21 -0
  100. package/node_modules/@llblab/pi-actors/dist/lib/runs-control.js +89 -0
  101. package/node_modules/@llblab/pi-actors/dist/lib/runs-controls.d.ts +39 -0
  102. package/node_modules/@llblab/pi-actors/dist/lib/runs-controls.js +283 -0
  103. package/node_modules/@llblab/pi-actors/dist/lib/runs-identity.d.ts +5 -0
  104. package/node_modules/@llblab/pi-actors/dist/lib/runs-identity.js +11 -0
  105. package/node_modules/@llblab/pi-actors/dist/lib/runs-index.d.ts +27 -0
  106. package/node_modules/@llblab/pi-actors/dist/lib/runs-index.js +142 -0
  107. package/node_modules/@llblab/pi-actors/dist/lib/runs-ownership.d.ts +7 -0
  108. package/node_modules/@llblab/pi-actors/dist/lib/runs-ownership.js +96 -0
  109. package/node_modules/@llblab/pi-actors/dist/lib/runs-parent-teardown.d.ts +51 -0
  110. package/node_modules/@llblab/pi-actors/dist/lib/runs-parent-teardown.js +172 -0
  111. package/node_modules/@llblab/pi-actors/dist/lib/runs-process.d.ts +22 -0
  112. package/node_modules/@llblab/pi-actors/dist/lib/runs-process.js +125 -0
  113. package/node_modules/@llblab/pi-actors/dist/lib/runs-retention.d.ts +18 -0
  114. package/node_modules/@llblab/pi-actors/dist/lib/runs-retention.js +108 -0
  115. package/node_modules/@llblab/pi-actors/dist/lib/runs-start.d.ts +12 -0
  116. package/node_modules/@llblab/pi-actors/dist/lib/runs-start.js +68 -0
  117. package/node_modules/@llblab/pi-actors/dist/lib/runs-status.d.ts +10 -0
  118. package/node_modules/@llblab/pi-actors/dist/lib/runs-status.js +68 -0
  119. package/node_modules/@llblab/pi-actors/dist/lib/runs-trace.d.ts +48 -0
  120. package/node_modules/@llblab/pi-actors/dist/lib/runs-trace.js +491 -0
  121. package/node_modules/@llblab/pi-actors/dist/lib/runtime-identity.d.ts +7 -0
  122. package/node_modules/@llblab/pi-actors/dist/lib/runtime-identity.js +35 -0
  123. package/node_modules/@llblab/pi-actors/dist/lib/runtime-triage.d.ts +29 -0
  124. package/node_modules/@llblab/pi-actors/dist/lib/runtime-triage.js +60 -0
  125. package/node_modules/@llblab/pi-actors/dist/lib/runtime.d.ts +69 -0
  126. package/node_modules/@llblab/pi-actors/dist/lib/runtime.js +339 -0
  127. package/node_modules/@llblab/pi-actors/dist/lib/schema.d.ts +60 -0
  128. package/node_modules/@llblab/pi-actors/dist/lib/schema.js +428 -0
  129. package/node_modules/@llblab/pi-actors/dist/lib/session-evidence.d.ts +45 -0
  130. package/node_modules/@llblab/pi-actors/dist/lib/session-evidence.js +204 -0
  131. package/node_modules/@llblab/pi-actors/dist/lib/state-readers.d.ts +21 -0
  132. package/node_modules/@llblab/pi-actors/dist/lib/state-readers.js +74 -0
  133. package/node_modules/@llblab/pi-actors/dist/lib/temp.d.ts +10 -0
  134. package/node_modules/@llblab/pi-actors/dist/lib/temp.js +90 -0
  135. package/node_modules/@llblab/pi-actors/dist/lib/tool-review-lineage-transaction.d.ts +27 -0
  136. package/node_modules/@llblab/pi-actors/dist/lib/tool-review-lineage-transaction.js +597 -0
  137. package/node_modules/@llblab/pi-actors/dist/lib/tool-review-lineage.d.ts +24 -0
  138. package/node_modules/@llblab/pi-actors/dist/lib/tool-review-lineage.js +98 -0
  139. package/node_modules/@llblab/pi-actors/dist/lib/tool-review-scheduler.d.ts +80 -0
  140. package/node_modules/@llblab/pi-actors/dist/lib/tool-review-scheduler.js +494 -0
  141. package/node_modules/@llblab/pi-actors/dist/lib/tool-review-transaction.d.ts +50 -0
  142. package/node_modules/@llblab/pi-actors/dist/lib/tool-review-transaction.js +362 -0
  143. package/node_modules/@llblab/pi-actors/dist/lib/tool-review.d.ts +56 -0
  144. package/node_modules/@llblab/pi-actors/dist/lib/tool-review.js +197 -0
  145. package/node_modules/@llblab/pi-actors/dist/lib/tools-access.d.ts +19 -0
  146. package/node_modules/@llblab/pi-actors/dist/lib/tools-access.js +44 -0
  147. package/node_modules/@llblab/pi-actors/dist/lib/tools-inspect.d.ts +15 -0
  148. package/node_modules/@llblab/pi-actors/dist/lib/tools-inspect.js +532 -0
  149. package/node_modules/@llblab/pi-actors/dist/lib/tools-local.d.ts +17 -0
  150. package/node_modules/@llblab/pi-actors/dist/lib/tools-local.js +191 -0
  151. package/node_modules/@llblab/pi-actors/dist/lib/tools-message.d.ts +9 -0
  152. package/node_modules/@llblab/pi-actors/dist/lib/tools-message.js +139 -0
  153. package/node_modules/@llblab/pi-actors/dist/lib/tools-register.d.ts +18 -0
  154. package/node_modules/@llblab/pi-actors/dist/lib/tools-register.js +41 -0
  155. package/node_modules/@llblab/pi-actors/dist/lib/tools-response.d.ts +20 -0
  156. package/node_modules/@llblab/pi-actors/dist/lib/tools-response.js +243 -0
  157. package/node_modules/@llblab/pi-actors/dist/lib/tools-spawn.d.ts +15 -0
  158. package/node_modules/@llblab/pi-actors/dist/lib/tools-spawn.js +133 -0
  159. package/node_modules/@llblab/pi-actors/dist/lib/tools.d.ts +28 -0
  160. package/node_modules/@llblab/pi-actors/dist/lib/tools.js +49 -0
  161. package/node_modules/@llblab/pi-actors/dist/lib/trace-projection.d.ts +22 -0
  162. package/node_modules/@llblab/pi-actors/dist/lib/trace-projection.js +231 -0
  163. package/node_modules/@llblab/pi-actors/dist/pi-actors/index.js +1 -0
  164. package/node_modules/@llblab/pi-actors/dist/scripts/async-runner.mjs +555 -0
  165. package/node_modules/@llblab/pi-actors/dist/scripts/build-dist.mjs +60 -0
  166. package/node_modules/@llblab/pi-actors/dist/scripts/conformance.mjs +63 -0
  167. package/node_modules/@llblab/pi-actors/dist/skills/actors/SKILL.md +126 -0
  168. package/node_modules/@llblab/pi-actors/dist/skills/actors/recipes/command-validate.json +13 -0
  169. package/node_modules/@llblab/pi-actors/dist/skills/actors/recipes/jsonl-tail.json +10 -0
  170. package/node_modules/@llblab/pi-actors/dist/skills/actors/recipes/recipe-validate.json +11 -0
  171. package/node_modules/@llblab/pi-actors/dist/skills/actors/recipes/resource-locker-snapshot.json +11 -0
  172. package/node_modules/@llblab/pi-actors/dist/skills/actors/recipes/resource-locker.json +25 -0
  173. package/node_modules/@llblab/pi-actors/dist/skills/actors/recipes/run-ops-snapshot.json +15 -0
  174. package/node_modules/@llblab/pi-actors/dist/skills/actors/recipes/run-state-files.json +13 -0
  175. package/node_modules/@llblab/pi-actors/dist/skills/actors/recipes/run-summary.json +9 -0
  176. package/node_modules/@llblab/pi-actors/dist/skills/actors/references/diagnostics.md +44 -0
  177. package/node_modules/@llblab/pi-actors/dist/skills/actors/references/persistent-tools.md +76 -0
  178. package/node_modules/@llblab/pi-actors/dist/skills/actors/references/recipes.md +51 -0
  179. package/node_modules/@llblab/pi-actors/dist/skills/actors/references/runs.md +41 -0
  180. package/node_modules/@llblab/pi-actors/dist/skills/actors/scripts/resource-locker.mjs +425 -0
  181. package/node_modules/@llblab/pi-actors/dist/skills/actors/scripts/run-utils.mjs +164 -0
  182. package/node_modules/@llblab/pi-actors/dist/skills/actors/scripts/validate-recipe.mjs +370 -0
  183. package/node_modules/@llblab/pi-actors/dist/skills/artifacts/SKILL.md +33 -0
  184. package/node_modules/@llblab/pi-actors/dist/skills/artifacts/recipes/bundle.json +77 -0
  185. package/node_modules/@llblab/pi-actors/dist/skills/artifacts/recipes/file-write.json +14 -0
  186. package/node_modules/@llblab/pi-actors/dist/skills/artifacts/recipes/manifest.json +14 -0
  187. package/node_modules/@llblab/pi-actors/dist/skills/artifacts/recipes/report.json +39 -0
  188. package/node_modules/@llblab/pi-actors/dist/skills/artifacts/recipes/write.json +53 -0
  189. package/node_modules/@llblab/pi-actors/dist/skills/artifacts/scripts/artifact-utils.mjs +63 -0
  190. package/node_modules/@llblab/pi-actors/dist/skills/music-player/SKILL.md +57 -0
  191. package/node_modules/@llblab/pi-actors/dist/skills/music-player/genapps/music-player.mjs +360 -0
  192. package/node_modules/@llblab/pi-actors/dist/skills/music-player/recipes/playback.json +29 -0
  193. package/node_modules/@llblab/pi-actors/dist/skills/music-player/scripts/playback-client.mjs +143 -0
  194. package/node_modules/@llblab/pi-actors/dist/skills/music-player/scripts/playback.mjs +1446 -0
  195. package/node_modules/@llblab/pi-actors/dist/skills/project-work/SKILL.md +37 -0
  196. package/node_modules/@llblab/pi-actors/dist/skills/project-work/recipes/changelog-head.json +11 -0
  197. package/node_modules/@llblab/pi-actors/dist/skills/project-work/recipes/changelog-section.json +11 -0
  198. package/node_modules/@llblab/pi-actors/dist/skills/project-work/recipes/docs-maintenance.json +66 -0
  199. package/node_modules/@llblab/pi-actors/dist/skills/project-work/recipes/git-log.json +11 -0
  200. package/node_modules/@llblab/pi-actors/dist/skills/project-work/recipes/git-status.json +9 -0
  201. package/node_modules/@llblab/pi-actors/dist/skills/project-work/recipes/markdown-index.json +14 -0
  202. package/node_modules/@llblab/pi-actors/dist/skills/project-work/recipes/package-summary.json +9 -0
  203. package/node_modules/@llblab/pi-actors/dist/skills/project-work/recipes/release-readiness.json +115 -0
  204. package/node_modules/@llblab/pi-actors/dist/skills/project-work/recipes/release-summary.json +74 -0
  205. package/node_modules/@llblab/pi-actors/dist/skills/project-work/recipes/repo-health.json +75 -0
  206. package/node_modules/@llblab/pi-actors/dist/skills/project-work/recipes/run-ops.json +56 -0
  207. package/node_modules/@llblab/pi-actors/dist/skills/project-work/recipes/skill-summary.json +11 -0
  208. package/node_modules/@llblab/pi-actors/dist/skills/project-work/scripts/project-utils.mjs +89 -0
  209. package/node_modules/@llblab/pi-actors/dist/skills/recipe-memory/SKILL.md +36 -0
  210. package/node_modules/@llblab/pi-actors/dist/skills/recipe-memory/recipes/draft-review.json +14 -0
  211. package/node_modules/@llblab/pi-actors/dist/skills/recipe-memory/recipes/tool-review.json +14 -0
  212. package/node_modules/@llblab/pi-actors/dist/skills/swarm/SKILL.md +84 -0
  213. package/node_modules/@llblab/pi-actors/dist/skills/swarm/recipes/architect.json +82 -0
  214. package/node_modules/@llblab/pi-actors/dist/skills/swarm/recipes/checkpoint-continuation.json +51 -0
  215. package/node_modules/@llblab/pi-actors/dist/skills/swarm/recipes/development-tasking.json +67 -0
  216. package/node_modules/@llblab/pi-actors/dist/skills/swarm/recipes/lens-review.json +63 -0
  217. package/node_modules/@llblab/pi-actors/dist/skills/swarm/recipes/quorum-review.json +65 -0
  218. package/node_modules/@llblab/pi-actors/dist/skills/swarm/recipes/research-synthesis.json +81 -0
  219. package/node_modules/@llblab/pi-actors/dist/skills/swarm/recipes/review-readiness.json +59 -0
  220. package/node_modules/@llblab/pi-actors/dist/skills/swarm/recipes/subagent-artifact.json +21 -0
  221. package/node_modules/@llblab/pi-actors/dist/skills/swarm/recipes/subagent-checkpoint.json +21 -0
  222. package/node_modules/@llblab/pi-actors/dist/skills/swarm/recipes/subagent-conflict-report.json +19 -0
  223. package/node_modules/@llblab/pi-actors/dist/skills/swarm/recipes/subagent-contradiction-map.json +20 -0
  224. package/node_modules/@llblab/pi-actors/dist/skills/swarm/recipes/subagent-critic.json +22 -0
  225. package/node_modules/@llblab/pi-actors/dist/skills/swarm/recipes/subagent-evidence-map.json +20 -0
  226. package/node_modules/@llblab/pi-actors/dist/skills/swarm/recipes/subagent-followup.json +21 -0
  227. package/node_modules/@llblab/pi-actors/dist/skills/swarm/recipes/subagent-judge.json +22 -0
  228. package/node_modules/@llblab/pi-actors/dist/skills/swarm/recipes/subagent-merge.json +24 -0
  229. package/node_modules/@llblab/pi-actors/dist/skills/swarm/recipes/subagent-normalize.json +20 -0
  230. package/node_modules/@llblab/pi-actors/dist/skills/swarm/recipes/subagent-plan.json +20 -0
  231. package/node_modules/@llblab/pi-actors/dist/skills/swarm/recipes/subagent-preflight.json +18 -0
  232. package/node_modules/@llblab/pi-actors/dist/skills/swarm/recipes/subagent-prompt.json +16 -0
  233. package/node_modules/@llblab/pi-actors/dist/skills/swarm/recipes/subagent-prompts.json +39 -0
  234. package/node_modules/@llblab/pi-actors/dist/skills/swarm/recipes/subagent-quorum.json +31 -0
  235. package/node_modules/@llblab/pi-actors/dist/skills/swarm/recipes/subagent-review-coordinator.json +170 -0
  236. package/node_modules/@llblab/pi-actors/dist/skills/swarm/recipes/subagent-review.json +26 -0
  237. package/node_modules/@llblab/pi-actors/dist/skills/swarm/recipes/subagent-task-card.json +22 -0
  238. package/node_modules/@llblab/pi-actors/dist/skills/swarm/recipes/subagent-tools.json +15 -0
  239. package/node_modules/@llblab/pi-actors/dist/skills/swarm/recipes/subagent-verify.json +23 -0
  240. package/node_modules/@llblab/pi-actors/dist/skills/swarm/references/development-swarm.md +189 -0
  241. package/node_modules/@llblab/pi-actors/dist/skills/swarm/references/review-swarms.md +115 -0
  242. package/node_modules/@llblab/pi-actors/docs/README.md +20 -0
  243. package/node_modules/@llblab/pi-actors/docs/actor-inspector.md +50 -0
  244. package/node_modules/@llblab/pi-actors/docs/async-runs.md +141 -0
  245. package/node_modules/@llblab/pi-actors/docs/command-templates.md +321 -0
  246. package/node_modules/@llblab/pi-actors/docs/recipe-library.md +89 -0
  247. package/node_modules/@llblab/pi-actors/docs/releasing.md +28 -0
  248. package/node_modules/@llblab/pi-actors/docs/template-recipes.md +175 -0
  249. package/node_modules/@llblab/pi-actors/docs/tool-registry.md +90 -0
  250. package/node_modules/@llblab/pi-actors/fixtures/protocol/artifact-manifest.json +9 -0
  251. package/node_modules/@llblab/pi-actors/fixtures/protocol/control-endpoint.json +6 -0
  252. package/node_modules/@llblab/pi-actors/fixtures/protocol/control-record.json +9 -0
  253. package/node_modules/@llblab/pi-actors/fixtures/protocol/recipe-summary.json +8 -0
  254. package/node_modules/@llblab/pi-actors/fixtures/protocol/run-state.json +10 -0
  255. package/node_modules/@llblab/pi-actors/fixtures/protocol/trace-event.json +9 -0
  256. package/node_modules/@llblab/pi-actors/index.ts +30 -0
  257. package/node_modules/@llblab/pi-actors/lib/async-runs.ts +1245 -0
  258. package/node_modules/@llblab/pi-actors/lib/automatic-review-runtime.ts +148 -0
  259. package/node_modules/@llblab/pi-actors/lib/command-templates.ts +1116 -0
  260. package/node_modules/@llblab/pi-actors/lib/config.ts +261 -0
  261. package/node_modules/@llblab/pi-actors/lib/control-projection.ts +105 -0
  262. package/node_modules/@llblab/pi-actors/lib/control.ts +117 -0
  263. package/node_modules/@llblab/pi-actors/lib/draft-consolidation-transaction.ts +821 -0
  264. package/node_modules/@llblab/pi-actors/lib/draft-consolidation.ts +181 -0
  265. package/node_modules/@llblab/pi-actors/lib/draft-review.ts +325 -0
  266. package/node_modules/@llblab/pi-actors/lib/draft-sleep.ts +575 -0
  267. package/node_modules/@llblab/pi-actors/lib/execution-output.ts +123 -0
  268. package/node_modules/@llblab/pi-actors/lib/execution-sessions.ts +111 -0
  269. package/node_modules/@llblab/pi-actors/lib/execution.ts +1153 -0
  270. package/node_modules/@llblab/pi-actors/lib/extension-runtime.ts +181 -0
  271. package/node_modules/@llblab/pi-actors/lib/file-state.ts +306 -0
  272. package/node_modules/@llblab/pi-actors/lib/identity.ts +29 -0
  273. package/node_modules/@llblab/pi-actors/lib/inspector-actions.ts +79 -0
  274. package/node_modules/@llblab/pi-actors/lib/inspector-command.ts +54 -0
  275. package/node_modules/@llblab/pi-actors/lib/inspector-overlay.ts +901 -0
  276. package/node_modules/@llblab/pi-actors/lib/inspector.ts +204 -0
  277. package/node_modules/@llblab/pi-actors/lib/limits.ts +29 -0
  278. package/node_modules/@llblab/pi-actors/lib/model-context.ts +359 -0
  279. package/node_modules/@llblab/pi-actors/lib/observability.ts +1337 -0
  280. package/node_modules/@llblab/pi-actors/lib/paths.ts +111 -0
  281. package/node_modules/@llblab/pi-actors/lib/pi.ts +47 -0
  282. package/node_modules/@llblab/pi-actors/lib/preflight-diagnostics.ts +132 -0
  283. package/node_modules/@llblab/pi-actors/lib/prompts.ts +69 -0
  284. package/node_modules/@llblab/pi-actors/lib/recipe-control.ts +52 -0
  285. package/node_modules/@llblab/pi-actors/lib/recipes-context.ts +268 -0
  286. package/node_modules/@llblab/pi-actors/lib/recipes-discovery.ts +1060 -0
  287. package/node_modules/@llblab/pi-actors/lib/recipes-references.ts +1598 -0
  288. package/node_modules/@llblab/pi-actors/lib/recipes-usage.ts +638 -0
  289. package/node_modules/@llblab/pi-actors/lib/registry.ts +806 -0
  290. package/node_modules/@llblab/pi-actors/lib/review-control.ts +136 -0
  291. package/node_modules/@llblab/pi-actors/lib/review-diagnostics.ts +164 -0
  292. package/node_modules/@llblab/pi-actors/lib/review-projection.ts +196 -0
  293. package/node_modules/@llblab/pi-actors/lib/run-evidence-policy.ts +242 -0
  294. package/node_modules/@llblab/pi-actors/lib/run-ui-runtime.ts +155 -0
  295. package/node_modules/@llblab/pi-actors/lib/runs-artifacts.ts +96 -0
  296. package/node_modules/@llblab/pi-actors/lib/runs-control-delivery.ts +209 -0
  297. package/node_modules/@llblab/pi-actors/lib/runs-control.ts +148 -0
  298. package/node_modules/@llblab/pi-actors/lib/runs-controls.ts +282 -0
  299. package/node_modules/@llblab/pi-actors/lib/runs-identity.ts +14 -0
  300. package/node_modules/@llblab/pi-actors/lib/runs-index.ts +192 -0
  301. package/node_modules/@llblab/pi-actors/lib/runs-ownership.ts +136 -0
  302. package/node_modules/@llblab/pi-actors/lib/runs-parent-teardown.ts +257 -0
  303. package/node_modules/@llblab/pi-actors/lib/runs-process.ts +174 -0
  304. package/node_modules/@llblab/pi-actors/lib/runs-retention.ts +140 -0
  305. package/node_modules/@llblab/pi-actors/lib/runs-start.ts +113 -0
  306. package/node_modules/@llblab/pi-actors/lib/runs-status.ts +101 -0
  307. package/node_modules/@llblab/pi-actors/lib/runs-trace.ts +611 -0
  308. package/node_modules/@llblab/pi-actors/lib/runtime-identity.ts +39 -0
  309. package/node_modules/@llblab/pi-actors/lib/runtime-triage.ts +106 -0
  310. package/node_modules/@llblab/pi-actors/lib/runtime.ts +430 -0
  311. package/node_modules/@llblab/pi-actors/lib/schema.ts +525 -0
  312. package/node_modules/@llblab/pi-actors/lib/session-evidence.ts +302 -0
  313. package/node_modules/@llblab/pi-actors/lib/state-readers.ts +93 -0
  314. package/node_modules/@llblab/pi-actors/lib/temp.ts +99 -0
  315. package/node_modules/@llblab/pi-actors/lib/tool-review-lineage-transaction.ts +881 -0
  316. package/node_modules/@llblab/pi-actors/lib/tool-review-lineage.ts +145 -0
  317. package/node_modules/@llblab/pi-actors/lib/tool-review-scheduler.ts +635 -0
  318. package/node_modules/@llblab/pi-actors/lib/tool-review-transaction.ts +563 -0
  319. package/node_modules/@llblab/pi-actors/lib/tool-review.ts +270 -0
  320. package/node_modules/@llblab/pi-actors/lib/tools-access.ts +68 -0
  321. package/node_modules/@llblab/pi-actors/lib/tools-inspect.ts +673 -0
  322. package/node_modules/@llblab/pi-actors/lib/tools-local.ts +303 -0
  323. package/node_modules/@llblab/pi-actors/lib/tools-message.ts +176 -0
  324. package/node_modules/@llblab/pi-actors/lib/tools-register.ts +63 -0
  325. package/node_modules/@llblab/pi-actors/lib/tools-response.ts +285 -0
  326. package/node_modules/@llblab/pi-actors/lib/tools-spawn.ts +212 -0
  327. package/node_modules/@llblab/pi-actors/lib/tools.ts +88 -0
  328. package/node_modules/@llblab/pi-actors/lib/trace-projection.ts +306 -0
  329. package/node_modules/@llblab/pi-actors/package.json +76 -0
  330. package/node_modules/@llblab/pi-actors/scripts/async-runner.mjs +555 -0
  331. package/node_modules/@llblab/pi-actors/scripts/build-dist.mjs +60 -0
  332. package/node_modules/@llblab/pi-actors/scripts/conformance.mjs +63 -0
  333. package/node_modules/@llblab/pi-actors/skills/actors/SKILL.md +126 -0
  334. package/node_modules/@llblab/pi-actors/skills/actors/recipes/command-validate.json +13 -0
  335. package/node_modules/@llblab/pi-actors/skills/actors/recipes/jsonl-tail.json +10 -0
  336. package/node_modules/@llblab/pi-actors/skills/actors/recipes/recipe-validate.json +11 -0
  337. package/node_modules/@llblab/pi-actors/skills/actors/recipes/resource-locker-snapshot.json +11 -0
  338. package/node_modules/@llblab/pi-actors/skills/actors/recipes/resource-locker.json +25 -0
  339. package/node_modules/@llblab/pi-actors/skills/actors/recipes/run-ops-snapshot.json +15 -0
  340. package/node_modules/@llblab/pi-actors/skills/actors/recipes/run-state-files.json +13 -0
  341. package/node_modules/@llblab/pi-actors/skills/actors/recipes/run-summary.json +9 -0
  342. package/node_modules/@llblab/pi-actors/skills/actors/references/diagnostics.md +44 -0
  343. package/node_modules/@llblab/pi-actors/skills/actors/references/persistent-tools.md +76 -0
  344. package/node_modules/@llblab/pi-actors/skills/actors/references/recipes.md +51 -0
  345. package/node_modules/@llblab/pi-actors/skills/actors/references/runs.md +41 -0
  346. package/node_modules/@llblab/pi-actors/skills/actors/scripts/resource-locker.mjs +425 -0
  347. package/node_modules/@llblab/pi-actors/skills/actors/scripts/run-utils.mjs +164 -0
  348. package/node_modules/@llblab/pi-actors/skills/actors/scripts/validate-recipe.mjs +370 -0
  349. package/node_modules/@llblab/pi-actors/skills/artifacts/SKILL.md +33 -0
  350. package/node_modules/@llblab/pi-actors/skills/artifacts/recipes/bundle.json +77 -0
  351. package/node_modules/@llblab/pi-actors/skills/artifacts/recipes/file-write.json +14 -0
  352. package/node_modules/@llblab/pi-actors/skills/artifacts/recipes/manifest.json +14 -0
  353. package/node_modules/@llblab/pi-actors/skills/artifacts/recipes/report.json +39 -0
  354. package/node_modules/@llblab/pi-actors/skills/artifacts/recipes/write.json +53 -0
  355. package/node_modules/@llblab/pi-actors/skills/artifacts/scripts/artifact-utils.mjs +63 -0
  356. package/node_modules/@llblab/pi-actors/skills/music-player/SKILL.md +57 -0
  357. package/node_modules/@llblab/pi-actors/skills/music-player/genapps/music-player.mjs +360 -0
  358. package/node_modules/@llblab/pi-actors/skills/music-player/recipes/playback.json +29 -0
  359. package/node_modules/@llblab/pi-actors/skills/music-player/scripts/playback-client.mjs +143 -0
  360. package/node_modules/@llblab/pi-actors/skills/music-player/scripts/playback.mjs +1446 -0
  361. package/node_modules/@llblab/pi-actors/skills/project-work/SKILL.md +37 -0
  362. package/node_modules/@llblab/pi-actors/skills/project-work/recipes/changelog-head.json +11 -0
  363. package/node_modules/@llblab/pi-actors/skills/project-work/recipes/changelog-section.json +11 -0
  364. package/node_modules/@llblab/pi-actors/skills/project-work/recipes/docs-maintenance.json +66 -0
  365. package/node_modules/@llblab/pi-actors/skills/project-work/recipes/git-log.json +11 -0
  366. package/node_modules/@llblab/pi-actors/skills/project-work/recipes/git-status.json +9 -0
  367. package/node_modules/@llblab/pi-actors/skills/project-work/recipes/markdown-index.json +14 -0
  368. package/node_modules/@llblab/pi-actors/skills/project-work/recipes/package-summary.json +9 -0
  369. package/node_modules/@llblab/pi-actors/skills/project-work/recipes/release-readiness.json +115 -0
  370. package/node_modules/@llblab/pi-actors/skills/project-work/recipes/release-summary.json +74 -0
  371. package/node_modules/@llblab/pi-actors/skills/project-work/recipes/repo-health.json +75 -0
  372. package/node_modules/@llblab/pi-actors/skills/project-work/recipes/run-ops.json +56 -0
  373. package/node_modules/@llblab/pi-actors/skills/project-work/recipes/skill-summary.json +11 -0
  374. package/node_modules/@llblab/pi-actors/skills/project-work/scripts/project-utils.mjs +89 -0
  375. package/node_modules/@llblab/pi-actors/skills/recipe-memory/SKILL.md +36 -0
  376. package/node_modules/@llblab/pi-actors/skills/recipe-memory/recipes/draft-review.json +14 -0
  377. package/node_modules/@llblab/pi-actors/skills/recipe-memory/recipes/tool-review.json +14 -0
  378. package/node_modules/@llblab/pi-actors/skills/swarm/SKILL.md +84 -0
  379. package/node_modules/@llblab/pi-actors/skills/swarm/recipes/architect.json +82 -0
  380. package/node_modules/@llblab/pi-actors/skills/swarm/recipes/checkpoint-continuation.json +51 -0
  381. package/node_modules/@llblab/pi-actors/skills/swarm/recipes/development-tasking.json +67 -0
  382. package/node_modules/@llblab/pi-actors/skills/swarm/recipes/lens-review.json +63 -0
  383. package/node_modules/@llblab/pi-actors/skills/swarm/recipes/quorum-review.json +65 -0
  384. package/node_modules/@llblab/pi-actors/skills/swarm/recipes/research-synthesis.json +81 -0
  385. package/node_modules/@llblab/pi-actors/skills/swarm/recipes/review-readiness.json +59 -0
  386. package/node_modules/@llblab/pi-actors/skills/swarm/recipes/subagent-artifact.json +21 -0
  387. package/node_modules/@llblab/pi-actors/skills/swarm/recipes/subagent-checkpoint.json +21 -0
  388. package/node_modules/@llblab/pi-actors/skills/swarm/recipes/subagent-conflict-report.json +19 -0
  389. package/node_modules/@llblab/pi-actors/skills/swarm/recipes/subagent-contradiction-map.json +20 -0
  390. package/node_modules/@llblab/pi-actors/skills/swarm/recipes/subagent-critic.json +22 -0
  391. package/node_modules/@llblab/pi-actors/skills/swarm/recipes/subagent-evidence-map.json +20 -0
  392. package/node_modules/@llblab/pi-actors/skills/swarm/recipes/subagent-followup.json +21 -0
  393. package/node_modules/@llblab/pi-actors/skills/swarm/recipes/subagent-judge.json +22 -0
  394. package/node_modules/@llblab/pi-actors/skills/swarm/recipes/subagent-merge.json +24 -0
  395. package/node_modules/@llblab/pi-actors/skills/swarm/recipes/subagent-normalize.json +20 -0
  396. package/node_modules/@llblab/pi-actors/skills/swarm/recipes/subagent-plan.json +20 -0
  397. package/node_modules/@llblab/pi-actors/skills/swarm/recipes/subagent-preflight.json +18 -0
  398. package/node_modules/@llblab/pi-actors/skills/swarm/recipes/subagent-prompt.json +16 -0
  399. package/node_modules/@llblab/pi-actors/skills/swarm/recipes/subagent-prompts.json +39 -0
  400. package/node_modules/@llblab/pi-actors/skills/swarm/recipes/subagent-quorum.json +31 -0
  401. package/node_modules/@llblab/pi-actors/skills/swarm/recipes/subagent-review-coordinator.json +170 -0
  402. package/node_modules/@llblab/pi-actors/skills/swarm/recipes/subagent-review.json +26 -0
  403. package/node_modules/@llblab/pi-actors/skills/swarm/recipes/subagent-task-card.json +22 -0
  404. package/node_modules/@llblab/pi-actors/skills/swarm/recipes/subagent-tools.json +15 -0
  405. package/node_modules/@llblab/pi-actors/skills/swarm/recipes/subagent-verify.json +23 -0
  406. package/node_modules/@llblab/pi-actors/skills/swarm/references/development-swarm.md +189 -0
  407. package/node_modules/@llblab/pi-actors/skills/swarm/references/review-swarms.md +115 -0
  408. package/node_modules/@llblab/pi-codex-usage/AGENTS.md +17 -0
  409. package/node_modules/@llblab/pi-codex-usage/BACKLOG.md +8 -0
  410. package/node_modules/@llblab/pi-codex-usage/CHANGELOG.md +80 -0
  411. package/node_modules/@llblab/pi-codex-usage/LICENSE +22 -0
  412. package/node_modules/@llblab/pi-codex-usage/README.md +113 -0
  413. package/node_modules/@llblab/pi-codex-usage/banner.jpg +0 -0
  414. package/node_modules/@llblab/pi-codex-usage/index.ts +1525 -0
  415. package/node_modules/@llblab/pi-codex-usage/package.json +59 -0
  416. package/node_modules/@llblab/pi-grow-loop/AGENTS.md +56 -0
  417. package/node_modules/@llblab/pi-grow-loop/BACKLOG.md +3 -0
  418. package/node_modules/@llblab/pi-grow-loop/CHANGELOG.md +126 -0
  419. package/node_modules/@llblab/pi-grow-loop/README.md +216 -0
  420. package/node_modules/@llblab/pi-grow-loop/banner.jpg +0 -0
  421. package/node_modules/@llblab/pi-grow-loop/index.ts +219 -0
  422. package/node_modules/@llblab/pi-grow-loop/package.json +64 -0
  423. package/node_modules/@llblab/pi-grow-loop/skills/grow-loop/SKILL.md +131 -0
  424. package/node_modules/@llblab/pi-grow-loop/skills/while-true/SKILL.md +233 -0
  425. package/node_modules/@llblab/pi-telegram/AGENTS.md +157 -0
  426. package/node_modules/@llblab/pi-telegram/BACKLOG.md +15 -0
  427. package/node_modules/@llblab/pi-telegram/CHANGELOG.md +886 -0
  428. package/node_modules/@llblab/pi-telegram/README.md +330 -0
  429. package/node_modules/@llblab/pi-telegram/api/activity.ts +15 -0
  430. package/node_modules/@llblab/pi-telegram/api/commands.ts +11 -0
  431. package/node_modules/@llblab/pi-telegram/api/delivery.ts +21 -0
  432. package/node_modules/@llblab/pi-telegram/api/inbound.ts +14 -0
  433. package/node_modules/@llblab/pi-telegram/api/keyboard.ts +11 -0
  434. package/node_modules/@llblab/pi-telegram/api/outbound.ts +11 -0
  435. package/node_modules/@llblab/pi-telegram/api/sections.ts +17 -0
  436. package/node_modules/@llblab/pi-telegram/api/status.ts +12 -0
  437. package/node_modules/@llblab/pi-telegram/api/updates.ts +16 -0
  438. package/node_modules/@llblab/pi-telegram/api/voice.ts +24 -0
  439. package/node_modules/@llblab/pi-telegram/docs/README.md +25 -0
  440. package/node_modules/@llblab/pi-telegram/docs/activity.md +304 -0
  441. package/node_modules/@llblab/pi-telegram/docs/architecture.md +418 -0
  442. package/node_modules/@llblab/pi-telegram/docs/callback-namespaces.md +48 -0
  443. package/node_modules/@llblab/pi-telegram/docs/command-templates.md +365 -0
  444. package/node_modules/@llblab/pi-telegram/docs/compact-matrix-literal.md +176 -0
  445. package/node_modules/@llblab/pi-telegram/docs/delivery.md +225 -0
  446. package/node_modules/@llblab/pi-telegram/docs/generative-apps.md +310 -0
  447. package/node_modules/@llblab/pi-telegram/docs/inbound.md +136 -0
  448. package/node_modules/@llblab/pi-telegram/docs/multi-instance-bus.md +467 -0
  449. package/node_modules/@llblab/pi-telegram/docs/outbound.md +193 -0
  450. package/node_modules/@llblab/pi-telegram/docs/public-api.md +599 -0
  451. package/node_modules/@llblab/pi-telegram/docs/sections.md +452 -0
  452. package/node_modules/@llblab/pi-telegram/docs/ui-style.md +256 -0
  453. package/node_modules/@llblab/pi-telegram/docs/updates.md +171 -0
  454. package/node_modules/@llblab/pi-telegram/docs/voice.md +217 -0
  455. package/node_modules/@llblab/pi-telegram/index.ts +1336 -0
  456. package/node_modules/@llblab/pi-telegram/lib/activity-verbosity.ts +714 -0
  457. package/node_modules/@llblab/pi-telegram/lib/activity.ts +782 -0
  458. package/node_modules/@llblab/pi-telegram/lib/agent-messages.ts +121 -0
  459. package/node_modules/@llblab/pi-telegram/lib/bindings.ts +1129 -0
  460. package/node_modules/@llblab/pi-telegram/lib/bus-api.ts +379 -0
  461. package/node_modules/@llblab/pi-telegram/lib/bus-follower.ts +1941 -0
  462. package/node_modules/@llblab/pi-telegram/lib/bus-leader.ts +2119 -0
  463. package/node_modules/@llblab/pi-telegram/lib/bus-transport.ts +244 -0
  464. package/node_modules/@llblab/pi-telegram/lib/bus.ts +2645 -0
  465. package/node_modules/@llblab/pi-telegram/lib/command-templates.ts +954 -0
  466. package/node_modules/@llblab/pi-telegram/lib/commands.ts +1854 -0
  467. package/node_modules/@llblab/pi-telegram/lib/config.ts +1143 -0
  468. package/node_modules/@llblab/pi-telegram/lib/delivery.ts +891 -0
  469. package/node_modules/@llblab/pi-telegram/lib/generative-app-worker.mjs +104 -0
  470. package/node_modules/@llblab/pi-telegram/lib/generative-apps.ts +958 -0
  471. package/node_modules/@llblab/pi-telegram/lib/inbound.ts +824 -0
  472. package/node_modules/@llblab/pi-telegram/lib/journal.ts +3140 -0
  473. package/node_modules/@llblab/pi-telegram/lib/keyboard.ts +59 -0
  474. package/node_modules/@llblab/pi-telegram/lib/lifecycle.ts +623 -0
  475. package/node_modules/@llblab/pi-telegram/lib/locks.ts +1422 -0
  476. package/node_modules/@llblab/pi-telegram/lib/logs.ts +393 -0
  477. package/node_modules/@llblab/pi-telegram/lib/media.ts +921 -0
  478. package/node_modules/@llblab/pi-telegram/lib/menu-model.ts +1182 -0
  479. package/node_modules/@llblab/pi-telegram/lib/menu-queue.ts +926 -0
  480. package/node_modules/@llblab/pi-telegram/lib/menu-settings.ts +876 -0
  481. package/node_modules/@llblab/pi-telegram/lib/menu-status.ts +274 -0
  482. package/node_modules/@llblab/pi-telegram/lib/menu-thinking.ts +185 -0
  483. package/node_modules/@llblab/pi-telegram/lib/menu.ts +867 -0
  484. package/node_modules/@llblab/pi-telegram/lib/model.ts +672 -0
  485. package/node_modules/@llblab/pi-telegram/lib/outbound-attachments.ts +981 -0
  486. package/node_modules/@llblab/pi-telegram/lib/outbound-buttons.ts +331 -0
  487. package/node_modules/@llblab/pi-telegram/lib/outbound-markup.ts +515 -0
  488. package/node_modules/@llblab/pi-telegram/lib/outbound-voice.ts +285 -0
  489. package/node_modules/@llblab/pi-telegram/lib/outbound.ts +1007 -0
  490. package/node_modules/@llblab/pi-telegram/lib/ownership.ts +298 -0
  491. package/node_modules/@llblab/pi-telegram/lib/paths.ts +127 -0
  492. package/node_modules/@llblab/pi-telegram/lib/pi.ts +197 -0
  493. package/node_modules/@llblab/pi-telegram/lib/polling.ts +1588 -0
  494. package/node_modules/@llblab/pi-telegram/lib/preview.ts +846 -0
  495. package/node_modules/@llblab/pi-telegram/lib/prompt-templates.ts +158 -0
  496. package/node_modules/@llblab/pi-telegram/lib/prompts.ts +218 -0
  497. package/node_modules/@llblab/pi-telegram/lib/queue.ts +3075 -0
  498. package/node_modules/@llblab/pi-telegram/lib/recovery.ts +464 -0
  499. package/node_modules/@llblab/pi-telegram/lib/rendering.ts +1213 -0
  500. package/node_modules/@llblab/pi-telegram/lib/replies.ts +892 -0
  501. package/node_modules/@llblab/pi-telegram/lib/routing.ts +2889 -0
  502. package/node_modules/@llblab/pi-telegram/lib/runtime.ts +628 -0
  503. package/node_modules/@llblab/pi-telegram/lib/sections.ts +710 -0
  504. package/node_modules/@llblab/pi-telegram/lib/setup.ts +220 -0
  505. package/node_modules/@llblab/pi-telegram/lib/skills.ts +21 -0
  506. package/node_modules/@llblab/pi-telegram/lib/status.ts +1550 -0
  507. package/node_modules/@llblab/pi-telegram/lib/sync.ts +883 -0
  508. package/node_modules/@llblab/pi-telegram/lib/target.ts +49 -0
  509. package/node_modules/@llblab/pi-telegram/lib/telegram-api.ts +1747 -0
  510. package/node_modules/@llblab/pi-telegram/lib/text-groups.ts +487 -0
  511. package/node_modules/@llblab/pi-telegram/lib/thread-reconciler.ts +1002 -0
  512. package/node_modules/@llblab/pi-telegram/lib/threads.ts +3183 -0
  513. package/node_modules/@llblab/pi-telegram/lib/time-injection.ts +78 -0
  514. package/node_modules/@llblab/pi-telegram/lib/turns.ts +753 -0
  515. package/node_modules/@llblab/pi-telegram/lib/updates.ts +4950 -0
  516. package/node_modules/@llblab/pi-telegram/lib/voice.ts +340 -0
  517. package/node_modules/@llblab/pi-telegram/package.json +83 -0
  518. package/node_modules/@llblab/pi-telegram/screenshot.png +0 -0
  519. package/node_modules/@llblab/pi-telegram/scripts/check-downgrade.mjs +435 -0
  520. package/node_modules/@llblab/pi-telegram/skills/generated-control-surface/SKILL.md +241 -0
  521. package/node_modules/@llblab/pi-telegram/skills/generative-apps/SKILL.md +114 -0
  522. package/node_modules/@llblab/pi-telegram/skills/telegram-bridge/SKILL.md +149 -0
  523. package/package.json +67 -0
@@ -0,0 +1,126 @@
1
+ /**
2
+ * Draft-memory consolidation contracts.
3
+ * Owns: complete inventory normalization and promote/merge/discard plan validation for the automatic executor.
4
+ */
5
+ const TOOL_NAME_PATTERN = /^[a-z][a-z0-9_]*$/u;
6
+ function canonicalJson(value) {
7
+ if (Array.isArray(value)) {
8
+ return `[${value.map((item) => canonicalJson(item)).join(",")}]`;
9
+ }
10
+ if (value && typeof value === "object") {
11
+ const record = value;
12
+ return `{${Object.keys(record)
13
+ .sort()
14
+ .map((key) => `${JSON.stringify(key)}:${canonicalJson(record[key])}`)
15
+ .join(",")}}`;
16
+ }
17
+ return JSON.stringify(value);
18
+ }
19
+ export function normalizeDraftConsolidationInventory(records) {
20
+ return records
21
+ .flatMap((record) => {
22
+ if (typeof record.id !== "string" ||
23
+ typeof record.path !== "string" ||
24
+ typeof record.sha256 !== "string" ||
25
+ typeof record.valid !== "boolean") {
26
+ return [];
27
+ }
28
+ return [{
29
+ id: record.id,
30
+ path: record.path,
31
+ sha256: record.sha256,
32
+ valid: record.valid,
33
+ ...(typeof record.description === "string"
34
+ ? { description: record.description }
35
+ : {}),
36
+ ...(record.diagnostics !== undefined
37
+ ? { diagnostics: record.diagnostics }
38
+ : {}),
39
+ ...(Array.isArray(record.risk_labels)
40
+ ? {
41
+ riskLabels: record.risk_labels.filter((label) => typeof label === "string"),
42
+ }
43
+ : {}),
44
+ ...(typeof record.template_preview === "string"
45
+ ? { templatePreview: record.template_preview }
46
+ : {}),
47
+ }];
48
+ })
49
+ .sort((left, right) => left.id.localeCompare(right.id) || left.path.localeCompare(right.path));
50
+ }
51
+ export function validateDraftConsolidationPlan(inventory, plan) {
52
+ const errors = [];
53
+ if (!/^[a-f0-9-]{36}$/u.test(plan.cycleId)) {
54
+ errors.push("plan cycleId must be a UUID");
55
+ }
56
+ const inventoryByPath = new Map(inventory.map((item) => [item.path, item]));
57
+ const seen = new Set();
58
+ const targetRecipes = new Map();
59
+ const targetPreconditions = new Map();
60
+ const targetActions = new Map();
61
+ for (const item of plan.drafts) {
62
+ const source = inventoryByPath.get(item.draft);
63
+ if (!source) {
64
+ errors.push(`unknown draft: ${item.draft}`);
65
+ continue;
66
+ }
67
+ if (seen.has(item.draft)) {
68
+ errors.push(`duplicate draft decision: ${item.draft}`);
69
+ continue;
70
+ }
71
+ seen.add(item.draft);
72
+ if (item.sha256 !== source.sha256) {
73
+ errors.push(`draft changed after inventory: ${item.draft}`);
74
+ }
75
+ if (!item.rationale.trim()) {
76
+ errors.push(`missing rationale: ${item.draft}`);
77
+ }
78
+ if (item.action === "discard") {
79
+ if (item.target !== undefined ||
80
+ item.targetSha256 !== undefined ||
81
+ item.recipe !== undefined) {
82
+ errors.push(`discard must not declare target, targetSha256, or recipe: ${item.draft}`);
83
+ }
84
+ }
85
+ else if (!item.target || !TOOL_NAME_PATTERN.test(item.target)) {
86
+ errors.push(`${item.action} requires snake_case target: ${item.draft}`);
87
+ }
88
+ else if (item.targetSha256 !== null &&
89
+ (typeof item.targetSha256 !== "string" || !item.targetSha256)) {
90
+ errors.push(`${item.action} requires target precondition: ${item.draft}`);
91
+ }
92
+ else if (!item.recipe ||
93
+ typeof item.recipe !== "object" ||
94
+ Array.isArray(item.recipe) ||
95
+ !Object.hasOwn(item.recipe, "template")) {
96
+ errors.push(`${item.action} requires normalized recipe: ${item.draft}`);
97
+ }
98
+ else {
99
+ const serialized = canonicalJson(item.recipe);
100
+ const prior = targetRecipes.get(item.target);
101
+ if (prior !== undefined && prior !== serialized) {
102
+ errors.push(`target recipe differs across decisions: ${item.target}`);
103
+ }
104
+ targetRecipes.set(item.target, serialized);
105
+ if (targetPreconditions.has(item.target) &&
106
+ targetPreconditions.get(item.target) !== item.targetSha256) {
107
+ errors.push(`target precondition differs across decisions: ${item.target}`);
108
+ }
109
+ targetPreconditions.set(item.target, item.targetSha256 ?? null);
110
+ const priorAction = targetActions.get(item.target);
111
+ if ((item.action === "promote" && priorAction !== undefined) ||
112
+ (item.action === "merge" && priorAction === "promote")) {
113
+ errors.push(`target cannot mix or repeat promotion: ${item.target}`);
114
+ }
115
+ targetActions.set(item.target, item.action);
116
+ }
117
+ if (!source.valid && item.action !== "discard") {
118
+ errors.push(`invalid draft may only be discarded: ${item.draft}`);
119
+ }
120
+ }
121
+ for (const item of inventory) {
122
+ if (!seen.has(item.path))
123
+ errors.push(`missing draft decision: ${item.path}`);
124
+ }
125
+ return { ok: errors.length === 0, errors };
126
+ }
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Automatic draft-review contract.
3
+ * Zones: read-only reviewer input, decision schema, mechanical promotion gates
4
+ * Owns strict batch review validation without mutating recipes or registry state.
5
+ */
6
+ export interface DraftReviewAssessment {
7
+ flexibility: number;
8
+ futureUsefulness: number;
9
+ launches: number;
10
+ safety: string;
11
+ universality: number;
12
+ }
13
+ export interface DraftReviewDraft {
14
+ diagnostics?: unknown;
15
+ path: string;
16
+ recipe?: Record<string, unknown>;
17
+ riskLabels: string[];
18
+ sha256: string;
19
+ usage?: Record<string, unknown>;
20
+ valid: boolean;
21
+ }
22
+ export interface DraftReviewActiveTool {
23
+ name: string;
24
+ path: string;
25
+ sha256: string;
26
+ }
27
+ export interface DraftReviewInput {
28
+ activeTools: DraftReviewActiveTool[];
29
+ batchId: string;
30
+ createdAt: string;
31
+ drafts: DraftReviewDraft[];
32
+ }
33
+ export interface DraftReviewDecision {
34
+ action: "discard" | "promote";
35
+ assessment: DraftReviewAssessment;
36
+ draft: string;
37
+ rationale: string;
38
+ recipe?: Record<string, unknown>;
39
+ sha256: string;
40
+ target?: string;
41
+ targetSha256?: null;
42
+ }
43
+ export interface DraftReviewResult {
44
+ batchId: string;
45
+ createdAt: string;
46
+ decisions: DraftReviewDecision[];
47
+ }
48
+ export interface DraftReviewValidation {
49
+ errors: string[];
50
+ ok: boolean;
51
+ }
52
+ export declare function findUnsafeRecipeReason(value: unknown, key?: string): string | undefined;
53
+ export declare function validateDraftReviewInput(input: DraftReviewInput): DraftReviewValidation;
54
+ export declare function validateDraftReviewResult(input: DraftReviewInput, result: DraftReviewResult): DraftReviewValidation;
55
+ export declare function parseDraftReviewResult(stdout: string): DraftReviewResult;
56
+ export declare function createDraftReviewPrompt(inputPath: string): string;
@@ -0,0 +1,254 @@
1
+ /**
2
+ * Automatic draft-review contract.
3
+ * Zones: read-only reviewer input, decision schema, mechanical promotion gates
4
+ * Owns strict batch review validation without mutating recipes or registry state.
5
+ */
6
+ const UUID_PATTERN = /^[a-f0-9-]{36}$/u;
7
+ const TOOL_NAME_PATTERN = /^[a-z][a-z0-9_]*$/u;
8
+ const SECRET_KEY = /^(?:api(?:key|token)|access(?:key|token)|authorization|auth(?:key|token)|clientsecret|cookie|credential|credentials|password|passphrase|privatekey|refreshtoken|secret|secretaccesskey|sessiontoken|token|vaulttoken)$/u;
9
+ const SECRET_TEXT = /(?:bearer\s+[a-z0-9._~+/=-]+|(?:api[-_]?key|access[-_]?token|authorization|auth[-_]?token|client[-_]?secret|cookie|credential|password|passphrase|private[-_]?key|refresh[-_]?token|secret(?:[-_]?access[-_]?key)?|token)\s*[:=]\s*[^\s,;}]+)/iu;
10
+ const PRIVATE_KEY_TEXT = /-----BEGIN(?: [A-Z0-9]+)? PRIVATE KEY-----/u;
11
+ const CREDENTIAL_TOKEN = /(?:\b(?:AKIA|ASIA)[A-Z0-9]{16}\b|\bgithub_pat_[A-Za-z0-9_]{20,}\b|\bgh[pousr]_[A-Za-z0-9]{20,}\b|\bglpat-[A-Za-z0-9_-]{20,}\b|\bnpm_[A-Za-z0-9]{20,}\b|\bxox[baprs]-[A-Za-z0-9-]{10,}\b)/u;
12
+ const AWS_SECRET_REFERENCE = /(?:^|[\s"'])(?:~[\\/]\.aws[\\/](?:credentials|config)|[^\s"']*[\\/]\.aws[\\/](?:credentials|config)|AWS_(?:ACCESS_KEY_ID|SECRET_ACCESS_KEY|SESSION_TOKEN)\b|aws\s+secretsmanager\b)/iu;
13
+ const SECRET_MANAGER_REFERENCE = /(?:\bvault\s+(?:kv\s+)?(?:get|read|write|put|list)\b|\bVAULT_TOKEN\b|\b(?:az\s+keyvault|gcloud\s+secrets\s+versions\s+access)\b)/iu;
14
+ const TEMPORARY_PATH = /(?:^|[\s"'])(?:\/tmp\/|\/var\/tmp\/|[a-z]:\\(?:temp|tmp)\\|[^\s"']*\.pi[\\/]agent[\\/]tmp[\\/])/iu;
15
+ function normalizedKey(key) {
16
+ return key.replace(/[^a-z0-9]/giu, "").toLowerCase();
17
+ }
18
+ function isRecord(value) {
19
+ return Boolean(value && typeof value === "object" && !Array.isArray(value));
20
+ }
21
+ function hasOnlyKeys(record, allowed) {
22
+ const keys = new Set(allowed);
23
+ return Object.keys(record).every((key) => keys.has(key));
24
+ }
25
+ function finiteScore(value) {
26
+ return typeof value === "number" && Number.isFinite(value) && value >= 0 && value <= 1;
27
+ }
28
+ export function findUnsafeRecipeReason(value, key = "") {
29
+ if (key && SECRET_KEY.test(normalizedKey(key)))
30
+ return `secret-bearing key: ${key}`;
31
+ if (typeof value === "string") {
32
+ if (PRIVATE_KEY_TEXT.test(value))
33
+ return "private-key material";
34
+ if (CREDENTIAL_TOKEN.test(value))
35
+ return "credential-shaped value";
36
+ if (AWS_SECRET_REFERENCE.test(value))
37
+ return "AWS credential reference";
38
+ if (SECRET_MANAGER_REFERENCE.test(value))
39
+ return "secret-manager reference";
40
+ if (SECRET_TEXT.test(value))
41
+ return "secret-bearing value";
42
+ if (TEMPORARY_PATH.test(value))
43
+ return "temporary path";
44
+ return undefined;
45
+ }
46
+ if (Array.isArray(value)) {
47
+ for (const item of value) {
48
+ const reason = findUnsafeRecipeReason(item);
49
+ if (reason)
50
+ return reason;
51
+ }
52
+ return undefined;
53
+ }
54
+ if (isRecord(value)) {
55
+ for (const [childKey, child] of Object.entries(value)) {
56
+ const reason = findUnsafeRecipeReason(child, childKey);
57
+ if (reason)
58
+ return reason;
59
+ }
60
+ }
61
+ return undefined;
62
+ }
63
+ function validateAssessment(value, draft, errors) {
64
+ if (!isRecord(value) || !hasOnlyKeys(value, [
65
+ "flexibility",
66
+ "futureUsefulness",
67
+ "launches",
68
+ "safety",
69
+ "universality",
70
+ ])) {
71
+ errors.push(`invalid assessment shape: ${draft}`);
72
+ return false;
73
+ }
74
+ if (!finiteScore(value.flexibility) ||
75
+ !finiteScore(value.futureUsefulness) ||
76
+ !finiteScore(value.universality) ||
77
+ typeof value.launches !== "number" ||
78
+ !Number.isInteger(value.launches) ||
79
+ value.launches < 0 ||
80
+ typeof value.safety !== "string" ||
81
+ !value.safety.trim()) {
82
+ errors.push(`invalid assessment values: ${draft}`);
83
+ return false;
84
+ }
85
+ return true;
86
+ }
87
+ export function validateDraftReviewInput(input) {
88
+ const errors = [];
89
+ if (!UUID_PATTERN.test(input.batchId))
90
+ errors.push("review input batchId must be a UUID");
91
+ if (!input.createdAt || Number.isNaN(Date.parse(input.createdAt))) {
92
+ errors.push("review input createdAt must be an ISO timestamp");
93
+ }
94
+ if (!Array.isArray(input.drafts) || input.drafts.length === 0) {
95
+ errors.push("review input drafts must be a non-empty array");
96
+ }
97
+ const paths = new Set();
98
+ for (const draft of input.drafts ?? []) {
99
+ if (!draft ||
100
+ typeof draft.path !== "string" ||
101
+ typeof draft.sha256 !== "string" ||
102
+ typeof draft.valid !== "boolean" ||
103
+ !Array.isArray(draft.riskLabels) ||
104
+ draft.riskLabels.some((label) => typeof label !== "string") ||
105
+ paths.has(draft.path)) {
106
+ errors.push(`invalid or duplicate review draft: ${String(draft?.path)}`);
107
+ continue;
108
+ }
109
+ paths.add(draft.path);
110
+ }
111
+ const names = new Set();
112
+ for (const tool of input.activeTools ?? []) {
113
+ if (!tool ||
114
+ !TOOL_NAME_PATTERN.test(tool.name) ||
115
+ typeof tool.path !== "string" ||
116
+ typeof tool.sha256 !== "string" ||
117
+ names.has(tool.name)) {
118
+ errors.push(`invalid or duplicate active tool: ${String(tool?.name)}`);
119
+ continue;
120
+ }
121
+ names.add(tool.name);
122
+ }
123
+ return { errors, ok: errors.length === 0 };
124
+ }
125
+ export function validateDraftReviewResult(input, result) {
126
+ const errors = [...validateDraftReviewInput(input).errors];
127
+ if (result.batchId !== input.batchId)
128
+ errors.push("review result batch identity mismatch");
129
+ if (!result.createdAt || Number.isNaN(Date.parse(result.createdAt))) {
130
+ errors.push("review result createdAt must be an ISO timestamp");
131
+ }
132
+ if (!Array.isArray(result.decisions)) {
133
+ errors.push("review decisions must be an array");
134
+ return { errors, ok: false };
135
+ }
136
+ const inventory = new Map(input.drafts.map((draft) => [draft.path, draft]));
137
+ const activeNames = new Set(input.activeTools.map((tool) => tool.name));
138
+ const selectedNames = new Set();
139
+ const seen = new Set();
140
+ for (const decision of result.decisions) {
141
+ if (!isRecord(decision) || !hasOnlyKeys(decision, [
142
+ "action",
143
+ "assessment",
144
+ "draft",
145
+ "rationale",
146
+ "recipe",
147
+ "sha256",
148
+ "target",
149
+ "targetSha256",
150
+ ])) {
151
+ errors.push("invalid review decision shape");
152
+ continue;
153
+ }
154
+ const draftPath = String(decision.draft ?? "");
155
+ const source = inventory.get(draftPath);
156
+ if (!source) {
157
+ errors.push(`unknown review draft: ${draftPath}`);
158
+ continue;
159
+ }
160
+ if (seen.has(draftPath)) {
161
+ errors.push(`duplicate review decision: ${draftPath}`);
162
+ continue;
163
+ }
164
+ seen.add(draftPath);
165
+ if (decision.sha256 !== source.sha256) {
166
+ errors.push(`review draft changed: ${draftPath}`);
167
+ }
168
+ if (typeof decision.rationale !== "string" || !decision.rationale.trim()) {
169
+ errors.push(`missing review rationale: ${draftPath}`);
170
+ }
171
+ if (validateAssessment(decision.assessment, draftPath, errors)) {
172
+ const recordedLaunches = Number(source.usage?.lifetime_calls ?? source.usage?.calls ?? 0);
173
+ if (decision.assessment.launches !== recordedLaunches) {
174
+ errors.push(`assessment launch count differs from lineage: ${draftPath}`);
175
+ }
176
+ }
177
+ if (decision.action === "discard") {
178
+ if (decision.target !== undefined ||
179
+ decision.targetSha256 !== undefined ||
180
+ decision.recipe !== undefined) {
181
+ errors.push(`discard decision declares promotion fields: ${draftPath}`);
182
+ }
183
+ continue;
184
+ }
185
+ if (decision.action !== "promote") {
186
+ errors.push(`invalid review action: ${draftPath}`);
187
+ continue;
188
+ }
189
+ if (!source.valid) {
190
+ errors.push(`invalid draft may only be discarded: ${draftPath}`);
191
+ }
192
+ if (source.riskLabels.includes("risk.secret_touching")) {
193
+ errors.push(`secret-touching draft may only be discarded: ${draftPath}`);
194
+ }
195
+ if (typeof source.usage?.demoted_fingerprint === "string" &&
196
+ source.usage.demoted_fingerprint === source.usage.fingerprint) {
197
+ errors.push(`demoted draft requires a revision before automatic promotion: ${draftPath}`);
198
+ }
199
+ if (typeof decision.target !== "string" ||
200
+ !TOOL_NAME_PATTERN.test(decision.target)) {
201
+ errors.push(`promotion requires snake_case target: ${draftPath}`);
202
+ }
203
+ else if (activeNames.has(decision.target) || selectedNames.has(decision.target)) {
204
+ errors.push(`promotion target is not uniquely absent: ${decision.target}`);
205
+ }
206
+ else {
207
+ selectedNames.add(decision.target);
208
+ }
209
+ if (decision.targetSha256 !== null) {
210
+ errors.push(`promotion must bind an absent target: ${draftPath}`);
211
+ }
212
+ if (decision.recipe !== undefined) {
213
+ errors.push(`promotion must not supply executable recipe content: ${draftPath}`);
214
+ }
215
+ if (!isRecord(source.recipe) || !Object.hasOwn(source.recipe, "template")) {
216
+ errors.push(`promotion source requires complete recipe: ${draftPath}`);
217
+ }
218
+ else {
219
+ const unsafe = findUnsafeRecipeReason(source.recipe);
220
+ if (unsafe)
221
+ errors.push(`unsafe promotion source (${unsafe}): ${draftPath}`);
222
+ }
223
+ }
224
+ for (const draft of input.drafts) {
225
+ if (!seen.has(draft.path))
226
+ errors.push(`missing review decision: ${draft.path}`);
227
+ }
228
+ return { errors, ok: errors.length === 0 };
229
+ }
230
+ export function parseDraftReviewResult(stdout) {
231
+ const marker = "DRAFT_REVIEW_RESULT";
232
+ const markerIndex = stdout.lastIndexOf(marker);
233
+ if (markerIndex < 0)
234
+ throw new Error("Draft reviewer output marker is missing.");
235
+ const payload = stdout.slice(markerIndex + marker.length).trim();
236
+ if (!payload.startsWith("{") || !payload.endsWith("}")) {
237
+ throw new Error("Draft reviewer output must end with one JSON object.");
238
+ }
239
+ const value = JSON.parse(payload);
240
+ if (!isRecord(value))
241
+ throw new Error("Draft reviewer result must be an object.");
242
+ return value;
243
+ }
244
+ export function createDraftReviewPrompt(inputPath) {
245
+ return [
246
+ `Read the immutable draft-review batch at ${inputPath}.`,
247
+ "Evaluate every draft independently from launch history, universality, flexibility, parameterization, duplication, safety, and likely future usefulness.",
248
+ "Choose exactly one action per draft: promote or discard. There is no selection quota: zero, one, some, or all drafts may be promoted.",
249
+ "Promotion requires a unique absent snake_case target and targetSha256: null. Never return recipe content: the deterministic executor promotes the exact immutable captured source without granting the reviewer executable-authoring authority. Invalid, secret-touching, or unchanged automatically demoted drafts must be discarded; a demoted draft becomes automatically eligible only after its executable fingerprint changes.",
250
+ "Provide assessment { launches, universality, flexibility, futureUsefulness, safety }; scores are evidence, not hard thresholds.",
251
+ "Do not create, update, move, register, or delete recipes. You are a read-only reviewer; the extension executor owns all mutation.",
252
+ "End stdout with DRAFT_REVIEW_RESULT on its own line followed by exactly one JSON result object: { batchId, createdAt, decisions }.",
253
+ ].join("\n");
254
+ }
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Automatic draft-sleep scheduling.
3
+ * Zones: twelve-draft trigger, immutable batch capture, silent post-turn launch
4
+ * Owns non-blocking review admission and persisted launch evidence, not reviewer decisions or mutation.
5
+ */
6
+ import type { DraftReviewActiveTool } from "./draft-review.ts";
7
+ export declare const DRAFT_SLEEP_THRESHOLD = 12;
8
+ export interface DraftSleepBatch {
9
+ batchId: string;
10
+ inputPath: string;
11
+ reviewerInputPath: string;
12
+ sourcePaths: string[];
13
+ }
14
+ export interface DraftSleepState {
15
+ attempts: number;
16
+ batchId: string;
17
+ inputPath: string;
18
+ evidencePath?: string;
19
+ failedStage?: string;
20
+ lastError?: string;
21
+ nextAction?: string;
22
+ phase: "captured" | "completed" | "failed" | "launched" | "processing_failed";
23
+ processingAttempts?: number;
24
+ reviewerInputPath: string;
25
+ runId?: string;
26
+ sourcePaths: string[];
27
+ updatedAt: string;
28
+ }
29
+ export interface DraftSleepProcessResult {
30
+ cleanup?(): void;
31
+ error?: string;
32
+ evidencePath?: string;
33
+ outcome: "completed" | "pending" | "processing_failed" | "review_failed";
34
+ stage?: string;
35
+ }
36
+ export interface DraftSleepSchedulerDeps {
37
+ activeTools?(): DraftReviewActiveTool[];
38
+ batchRoot?(batchId: string): string;
39
+ createBatchId?(): string;
40
+ delayMs?: number;
41
+ draftRoot?: string;
42
+ hasActiveActors(): boolean;
43
+ launch(batch: DraftSleepBatch): {
44
+ run: string;
45
+ };
46
+ now?(): Date;
47
+ process?(state: DraftSleepState): DraftSleepProcessResult;
48
+ recipeRoot?: string;
49
+ statePath?: string;
50
+ }
51
+ export interface DraftSleepScheduler {
52
+ close(): void;
53
+ schedule(): void;
54
+ }
55
+ type DraftSleepCaptureOptions = Pick<DraftSleepSchedulerDeps, "activeTools" | "batchRoot" | "createBatchId" | "draftRoot" | "now" | "recipeRoot" | "statePath">;
56
+ export declare function captureDraftSleepBatch(options?: DraftSleepCaptureOptions): DraftSleepBatch | undefined;
57
+ export interface ProcessDraftSleepReviewDeps {
58
+ getRunStatus(runId: string): Record<string, unknown>;
59
+ now?(): Date;
60
+ recipeRoot?: string;
61
+ }
62
+ export declare function processDraftSleepReview(state: DraftSleepState, deps: ProcessDraftSleepReviewDeps): DraftSleepProcessResult;
63
+ export declare function createDraftSleepScheduler(deps: DraftSleepSchedulerDeps): DraftSleepScheduler;
64
+ export declare function draftSleepRunId(batchId: string): string;
65
+ export {};