@phyzess/pappra 0.1.0-beta.13 → 0.1.0-beta.18

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 (357) hide show
  1. package/README.md +134 -15
  2. package/assets/integrations/skills/pappra/SKILL.md +28 -7
  3. package/assets/integrations/skills/pappra/references/collaboration.md +633 -0
  4. package/assets/integrations/skills/pappra/references/environment.md +360 -0
  5. package/assets/integrations/skills/pappra/references/hosts.md +20 -0
  6. package/assets/integrations/skills/pappra/references/operations.md +36 -5
  7. package/dist/adapters/pi/recovery-extension.d.ts +65 -0
  8. package/dist/adapters/pi/recovery-extension.js +238 -0
  9. package/dist/adapters/pi/session-transition-extension.d.ts +30 -0
  10. package/dist/adapters/pi/session-transition-extension.js +265 -0
  11. package/dist/app/automatic-handoff-events.d.ts +26 -0
  12. package/dist/app/automatic-handoff-events.js +134 -0
  13. package/dist/app/bounded-file.d.ts +2 -0
  14. package/dist/app/bounded-file.js +2 -0
  15. package/dist/app/capability-evidence/claude.d.ts +37 -0
  16. package/dist/app/capability-evidence/claude.js +206 -0
  17. package/dist/app/capability-evidence/codex.d.ts +35 -0
  18. package/dist/app/capability-evidence/codex.js +193 -0
  19. package/dist/app/capability-evidence/index.d.ts +33 -0
  20. package/dist/app/capability-evidence/index.js +117 -0
  21. package/dist/app/capability-evidence/pi.d.ts +73 -0
  22. package/dist/app/capability-evidence/pi.js +669 -0
  23. package/dist/app/capability-evidence/shared.d.ts +69 -0
  24. package/dist/app/capability-evidence/shared.js +195 -0
  25. package/dist/app/collab-auto-handoff.d.ts +55 -0
  26. package/dist/app/collab-auto-handoff.js +384 -0
  27. package/dist/app/collab-bindings.d.ts +57 -0
  28. package/dist/app/collab-bindings.js +1006 -0
  29. package/dist/app/collab-bootstrap-transport.d.ts +163 -0
  30. package/dist/app/collab-bootstrap-transport.js +769 -0
  31. package/dist/app/collab-bootstrap.d.ts +137 -0
  32. package/dist/app/collab-bootstrap.js +3455 -0
  33. package/dist/app/collab-handoff.d.ts +12 -0
  34. package/dist/app/collab-handoff.js +511 -0
  35. package/dist/app/collab-messages.d.ts +2 -0
  36. package/dist/app/collab-messages.js +2 -0
  37. package/dist/app/collab-notify.d.ts +156 -0
  38. package/dist/app/collab-notify.js +1208 -0
  39. package/dist/app/collab-preflight.d.ts +34 -0
  40. package/dist/app/collab-preflight.js +96 -0
  41. package/dist/app/collab-recovery-executor.d.ts +161 -0
  42. package/dist/app/collab-recovery-executor.js +1153 -0
  43. package/dist/app/collab-recovery-projection.d.ts +103 -0
  44. package/dist/app/collab-recovery-projection.js +659 -0
  45. package/dist/app/collab-recovery.d.ts +25 -0
  46. package/dist/app/collab-recovery.js +429 -0
  47. package/dist/app/collab-resources.d.ts +16 -0
  48. package/dist/app/collab-resources.js +278 -0
  49. package/dist/app/collab-role-events.d.ts +22 -0
  50. package/dist/app/collab-role-events.js +329 -0
  51. package/dist/app/collab-role-orchestration.d.ts +53 -0
  52. package/dist/app/collab-role-orchestration.js +601 -0
  53. package/dist/app/collab-role-plan.d.ts +81 -0
  54. package/dist/app/collab-role-plan.js +504 -0
  55. package/dist/app/collab-role-repair.d.ts +109 -0
  56. package/dist/app/collab-role-repair.js +821 -0
  57. package/dist/app/collab-rollover.d.ts +263 -0
  58. package/dist/app/collab-rollover.js +1112 -0
  59. package/dist/app/collab-route.d.ts +64 -0
  60. package/dist/app/collab-route.js +240 -0
  61. package/dist/app/collab-session-transition.d.ts +221 -0
  62. package/dist/app/collab-session-transition.js +3334 -0
  63. package/dist/app/collab-state.d.ts +7 -0
  64. package/dist/app/collab-state.js +162 -0
  65. package/dist/app/collab-task-store.d.ts +22 -0
  66. package/dist/app/collab-task-store.js +204 -0
  67. package/dist/app/collab-work-execution.d.ts +127 -0
  68. package/dist/app/collab-work-execution.js +1027 -0
  69. package/dist/app/collab-work-plan.d.ts +87 -0
  70. package/dist/app/collab-work-plan.js +437 -0
  71. package/dist/app/collaboration.d.ts +8 -2
  72. package/dist/app/collaboration.js +101 -12
  73. package/dist/app/doctor.js +108 -5
  74. package/dist/app/host-mcp.js +34 -8
  75. package/dist/app/host-probe.js +4 -4
  76. package/dist/app/init.d.ts +58 -4
  77. package/dist/app/init.js +768 -155
  78. package/dist/app/managed-pi-bootstrap-admission.d.ts +14 -0
  79. package/dist/app/managed-pi-bootstrap-admission.js +104 -0
  80. package/dist/app/managed-pi-bootstrap-refresh.d.ts +10 -0
  81. package/dist/app/managed-pi-bootstrap-refresh.js +78 -0
  82. package/dist/app/managed-pi-delivery.d.ts +8 -0
  83. package/dist/app/managed-pi-delivery.js +110 -0
  84. package/dist/app/managed-pi-handoff-receiver.d.ts +15 -0
  85. package/dist/app/managed-pi-handoff-receiver.js +263 -0
  86. package/dist/app/managed-pi-handoff-reference.d.ts +3 -0
  87. package/dist/app/managed-pi-handoff-reference.js +60 -0
  88. package/dist/app/managed-pi-herdr.d.ts +21 -0
  89. package/dist/app/managed-pi-herdr.js +185 -0
  90. package/dist/app/managed-pi-initial-admission.d.ts +28 -0
  91. package/dist/app/managed-pi-initial-admission.js +416 -0
  92. package/dist/app/managed-pi-initial-launch.d.ts +5 -0
  93. package/dist/app/managed-pi-initial-launch.js +61 -0
  94. package/dist/app/managed-pi-native-observation.d.ts +36 -0
  95. package/dist/app/managed-pi-native-observation.js +191 -0
  96. package/dist/app/managed-pi-readiness.d.ts +29 -0
  97. package/dist/app/managed-pi-readiness.js +288 -0
  98. package/dist/app/managed-pi-repair-stop.d.ts +21 -0
  99. package/dist/app/managed-pi-repair-stop.js +371 -0
  100. package/dist/app/managed-pi-resume-admission.d.ts +32 -0
  101. package/dist/app/managed-pi-resume-admission.js +618 -0
  102. package/dist/app/managed-pi-retirement.d.ts +28 -0
  103. package/dist/app/managed-pi-retirement.js +112 -0
  104. package/dist/app/managed-pi-sdk-control.d.ts +7 -0
  105. package/dist/app/managed-pi-sdk-control.js +169 -0
  106. package/dist/app/managed-pi-sdk-runtime.d.ts +3 -0
  107. package/dist/app/managed-pi-sdk-runtime.js +483 -0
  108. package/dist/app/managed-pi-source-admission.d.ts +14 -0
  109. package/dist/app/managed-pi-source-admission.js +323 -0
  110. package/dist/app/managed-pi-transition-host.d.ts +36 -0
  111. package/dist/app/managed-pi-transition-host.js +292 -0
  112. package/dist/app/managed-pi.d.ts +54 -0
  113. package/dist/app/managed-pi.js +248 -0
  114. package/dist/app/shell-readiness.d.ts +66 -0
  115. package/dist/app/shell-readiness.js +368 -0
  116. package/dist/app/task-pin.d.ts +2 -23
  117. package/dist/app/task-pin.js +2 -113
  118. package/dist/cli/commands/collaboration-binding.d.ts +13 -0
  119. package/dist/cli/commands/collaboration-binding.js +118 -0
  120. package/dist/cli/commands/collaboration-bootstrap.d.ts +10 -0
  121. package/dist/cli/commands/collaboration-bootstrap.js +84 -0
  122. package/dist/cli/commands/collaboration-capabilities.d.ts +13 -0
  123. package/dist/cli/commands/collaboration-capabilities.js +127 -0
  124. package/dist/cli/commands/collaboration-handoff.d.ts +13 -0
  125. package/dist/cli/commands/collaboration-handoff.js +102 -0
  126. package/dist/cli/commands/collaboration-message.d.ts +17 -0
  127. package/dist/cli/commands/collaboration-message.js +177 -0
  128. package/dist/cli/commands/collaboration-plan.d.ts +8 -0
  129. package/dist/cli/commands/collaboration-plan.js +108 -0
  130. package/dist/cli/commands/collaboration-preflight.d.ts +10 -0
  131. package/dist/cli/commands/collaboration-preflight.js +167 -0
  132. package/dist/cli/commands/collaboration-recovery-run.d.ts +46 -0
  133. package/dist/cli/commands/collaboration-recovery-run.js +224 -0
  134. package/dist/cli/commands/collaboration-recovery.d.ts +11 -0
  135. package/dist/cli/commands/collaboration-recovery.js +104 -0
  136. package/dist/cli/commands/collaboration-resources.d.ts +11 -0
  137. package/dist/cli/commands/collaboration-resources.js +96 -0
  138. package/dist/cli/commands/collaboration-role-plan.d.ts +9 -0
  139. package/dist/cli/commands/collaboration-role-plan.js +69 -0
  140. package/dist/cli/commands/collaboration-role-run.d.ts +11 -0
  141. package/dist/cli/commands/collaboration-role-run.js +128 -0
  142. package/dist/cli/commands/collaboration-rollover.d.ts +10 -0
  143. package/dist/cli/commands/collaboration-rollover.js +103 -0
  144. package/dist/cli/commands/collaboration-state.d.ts +10 -0
  145. package/dist/cli/commands/collaboration-state.js +96 -0
  146. package/dist/cli/commands/collaboration-transition.d.ts +10 -0
  147. package/dist/cli/commands/collaboration-transition.js +75 -0
  148. package/dist/cli/commands/collaboration-work-run.d.ts +34 -0
  149. package/dist/cli/commands/collaboration-work-run.js +178 -0
  150. package/dist/cli/commands/collaboration.d.ts +4 -0
  151. package/dist/cli/commands/collaboration.js +39 -4
  152. package/dist/cli/commands/continuity.js +2 -6
  153. package/dist/cli/commands/docs.d.ts +2 -0
  154. package/dist/cli/commands/docs.js +89 -15
  155. package/dist/cli/commands/host.d.ts +7 -1
  156. package/dist/cli/commands/host.js +122 -7
  157. package/dist/cli/commands/init.d.ts +20 -3
  158. package/dist/cli/commands/init.js +897 -232
  159. package/dist/cli/commands/mcp.d.ts +1 -0
  160. package/dist/cli/commands/mcp.js +11 -5
  161. package/dist/cli/commands/repair.d.ts +12 -0
  162. package/dist/cli/commands/repair.js +41 -0
  163. package/dist/cli/commands/runtime.d.ts +1 -1
  164. package/dist/cli/commands/runtime.js +139 -38
  165. package/dist/cli/commands/session.d.ts +7 -0
  166. package/dist/cli/commands/session.js +82 -0
  167. package/dist/cli/commands/task.js +19 -5
  168. package/dist/cli/run.js +866 -24
  169. package/dist/code/identity.d.ts +7 -0
  170. package/dist/code/identity.js +7 -3
  171. package/dist/code/registration.js +7 -0
  172. package/dist/code/service.d.ts +9 -0
  173. package/dist/code/service.js +16 -3
  174. package/dist/code/text.js +19 -7
  175. package/dist/collab/admission.d.ts +91 -66
  176. package/dist/collab/admission.js +21 -6
  177. package/dist/collab/canonical.d.ts +1 -1
  178. package/dist/collab/canonical.js +44 -3
  179. package/dist/collab/envelope.d.ts +2 -2
  180. package/dist/collab/envelope.js +12 -12
  181. package/dist/collab/first-work.d.ts +3 -0
  182. package/dist/collab/first-work.js +15 -0
  183. package/dist/collab/handoff.d.ts +16 -0
  184. package/dist/collab/handoff.js +39 -5
  185. package/dist/collab/index.d.ts +97 -1
  186. package/dist/collab/index.js +9 -1
  187. package/dist/collab/messages.js +126 -3
  188. package/dist/collab/persisted-messages.d.ts +123 -0
  189. package/dist/collab/persisted-messages.js +496 -0
  190. package/dist/collab/preflight.d.ts +1 -1
  191. package/dist/collab/resources.d.ts +13 -3
  192. package/dist/collab/resources.js +37 -6
  193. package/dist/collab/rollover.d.ts +311 -0
  194. package/dist/collab/rollover.js +1024 -0
  195. package/dist/collab/store.d.ts +1 -0
  196. package/dist/collab/store.js +1 -4
  197. package/dist/collab/types.d.ts +2 -354
  198. package/dist/collab/validation.d.ts +2 -10
  199. package/dist/collab/validation.js +2 -303
  200. package/dist/collab/work-plan.d.ts +105 -0
  201. package/dist/collab/work-plan.js +843 -0
  202. package/dist/continuity/context.d.ts +11 -2
  203. package/dist/continuity/context.js +100 -13
  204. package/dist/continuity/handoff-bundle.d.ts +296 -0
  205. package/dist/continuity/handoff-bundle.js +477 -0
  206. package/dist/continuity/index.d.ts +2 -0
  207. package/dist/continuity/index.js +1 -0
  208. package/dist/continuity/paths.js +10 -2
  209. package/dist/continuity/service.js +91 -15
  210. package/dist/continuity/task-pin.d.ts +24 -0
  211. package/dist/continuity/task-pin.js +590 -0
  212. package/dist/doctor.d.ts +1 -0
  213. package/dist/doctor.js +6 -0
  214. package/dist/experimental/index.d.ts +13 -0
  215. package/dist/experimental/index.js +25 -0
  216. package/dist/experimental/pi.d.ts +4 -0
  217. package/dist/experimental/pi.js +12 -0
  218. package/dist/hosts/claude/native.js +1 -1
  219. package/dist/hosts/codex/native.js +1 -1
  220. package/dist/hosts/codex/protocol.js +1 -1
  221. package/dist/hosts/integration/bootstrap-config.d.ts +58 -0
  222. package/dist/hosts/integration/bootstrap-config.js +254 -0
  223. package/dist/hosts/integration/bundle-export.d.ts +44 -0
  224. package/dist/hosts/integration/bundle-export.js +366 -3
  225. package/dist/hosts/integration/bundle.js +3 -0
  226. package/dist/hosts/integration/hook.js +36 -9
  227. package/dist/hosts/integration/pappra-bootstrap-extension.mjs +80 -0
  228. package/dist/hosts/integration/pappra-extension-runtime.mjs +59 -24631
  229. package/dist/hosts/integration/pappra-hook.mjs +61 -24749
  230. package/dist/hosts/integration/pappra-recovery-extension.mjs +259 -0
  231. package/dist/hosts/integration/pappra-session-transition-extension.mjs +276 -0
  232. package/dist/hosts/integration/pi-bootstrap-extension.d.ts +36 -0
  233. package/dist/hosts/integration/pi-bootstrap-extension.js +101 -0
  234. package/dist/hosts/integration/pi-bootstrap-guard.d.ts +125 -0
  235. package/dist/hosts/integration/pi-bootstrap-guard.js +438 -0
  236. package/dist/hosts/integration/pi-bootstrap-runtime.d.ts +63 -0
  237. package/dist/hosts/integration/pi-bootstrap-runtime.js +223 -0
  238. package/dist/hosts/integration/pi-native-events.d.ts +112 -0
  239. package/dist/hosts/integration/pi-native-events.js +348 -0
  240. package/dist/hosts/integration/pi-rollover-extension.d.ts +166 -0
  241. package/dist/hosts/integration/pi-rollover-extension.js +431 -0
  242. package/dist/hosts/integration/recovery-config.d.ts +48 -0
  243. package/dist/hosts/integration/recovery-config.js +117 -0
  244. package/dist/hosts/integration/service.d.ts +6 -1
  245. package/dist/hosts/integration/service.js +485 -35
  246. package/dist/hosts/integration/support.d.ts +7 -0
  247. package/dist/hosts/integration/support.js +9 -1
  248. package/dist/hosts/integration/templates.d.ts +3 -0
  249. package/dist/hosts/integration/templates.js +26 -3
  250. package/dist/hosts/pi/managed-host-identity.d.ts +2 -0
  251. package/dist/hosts/pi/managed-host-identity.js +40 -0
  252. package/dist/hosts/pi/managed-provider-diagnostics.d.ts +6 -0
  253. package/dist/hosts/pi/managed-provider-diagnostics.js +184 -0
  254. package/dist/hosts/pi/managed-sdk-session.d.ts +335 -0
  255. package/dist/hosts/pi/managed-sdk-session.js +1639 -0
  256. package/dist/hosts/pi/managed-session-extension.d.ts +20 -0
  257. package/dist/hosts/pi/managed-session-extension.js +84 -0
  258. package/dist/hosts/pi/managed-session.d.ts +177 -0
  259. package/dist/hosts/pi/managed-session.js +1557 -0
  260. package/dist/hosts/pi/protocol.js +1 -1
  261. package/dist/hosts/pi/query-result.js +1 -1
  262. package/dist/hosts/pi/resume-capability.d.ts +41 -0
  263. package/dist/hosts/pi/resume-capability.js +33 -0
  264. package/dist/hosts/pi/rpc.d.ts +182 -134
  265. package/dist/hosts/pi/rpc.js +230 -37
  266. package/dist/hosts/pilot.d.ts +97 -74
  267. package/dist/hosts/pilot.js +5 -1
  268. package/dist/hosts/version.d.ts +3 -0
  269. package/dist/hosts/version.js +18 -0
  270. package/dist/index.d.ts +0 -1
  271. package/dist/index.js +0 -1
  272. package/dist/infra/bounded-file.d.ts +19 -0
  273. package/dist/infra/bounded-file.js +66 -0
  274. package/dist/infra/fs.js +10 -2
  275. package/dist/infra/git.d.ts +29 -0
  276. package/dist/infra/git.js +45 -9
  277. package/dist/infra/json-property.d.ts +2 -0
  278. package/dist/infra/json-property.js +69 -0
  279. package/dist/infra/json.d.ts +4 -0
  280. package/dist/infra/json.js +24 -0
  281. package/dist/infra/owned-process-group.js +1 -1
  282. package/dist/infra/private-lock.d.ts +16 -0
  283. package/dist/infra/private-lock.js +148 -0
  284. package/dist/infra/private-state.d.ts +7 -0
  285. package/dist/infra/private-state.js +146 -0
  286. package/dist/infra/process-identity.d.ts +12 -0
  287. package/dist/infra/process-identity.js +142 -0
  288. package/dist/infra/validation.d.ts +5 -0
  289. package/dist/infra/validation.js +15 -0
  290. package/dist/init.d.ts +1 -0
  291. package/dist/init.js +6 -0
  292. package/dist/install/apply.d.ts +9 -1
  293. package/dist/install/apply.js +176 -12
  294. package/dist/install/dependencies.d.ts +38 -0
  295. package/dist/install/dependencies.js +282 -0
  296. package/dist/install/ownership.js +30 -1
  297. package/dist/install/references.d.ts +31 -0
  298. package/dist/install/references.js +208 -0
  299. package/dist/install/repair.d.ts +37 -0
  300. package/dist/install/repair.js +798 -0
  301. package/dist/install/reset-local.d.ts +16 -0
  302. package/dist/install/reset-local.js +304 -0
  303. package/dist/install/rollback.d.ts +3 -0
  304. package/dist/install/rollback.js +9 -3
  305. package/dist/install/runtime.d.ts +10 -6
  306. package/dist/install/runtime.js +299 -59
  307. package/dist/install/source-fingerprint.d.ts +2 -0
  308. package/dist/install/source-fingerprint.js +103 -0
  309. package/dist/knowledge/catalog.d.ts +1 -0
  310. package/dist/knowledge/catalog.js +143 -10
  311. package/dist/knowledge/journal.js +17 -7
  312. package/dist/knowledge/paths.js +2 -1
  313. package/dist/knowledge/refs.js +4 -0
  314. package/dist/knowledge/register-batch.d.ts +4 -0
  315. package/dist/knowledge/register-batch.js +225 -0
  316. package/dist/knowledge/relocate.d.ts +5 -0
  317. package/dist/knowledge/relocate.js +92 -0
  318. package/dist/knowledge/scan.js +103 -47
  319. package/dist/knowledge/service.d.ts +3 -0
  320. package/dist/knowledge/service.js +33 -1
  321. package/dist/knowledge/write.d.ts +4 -1
  322. package/dist/knowledge/write.js +1 -1
  323. package/dist/mcp/server.d.ts +4 -2
  324. package/dist/mcp/server.js +87 -136
  325. package/dist/schemas/collaboration-state-validation.d.ts +6 -0
  326. package/dist/schemas/collaboration-state-validation.js +342 -0
  327. package/dist/schemas/collaboration-state.d.ts +436 -0
  328. package/dist/schemas/collaboration-state.js +1 -0
  329. package/dist/schemas/collaboration.d.ts +335 -0
  330. package/dist/schemas/collaboration.js +272 -0
  331. package/dist/schemas/continuity.d.ts +8 -0
  332. package/dist/schemas/continuity.js +13 -3
  333. package/dist/schemas/doctor.d.ts +1 -0
  334. package/dist/schemas/doctor.js +1 -0
  335. package/dist/schemas/document.d.ts +61 -0
  336. package/dist/schemas/document.js +9 -0
  337. package/dist/schemas/errors.d.ts +1 -0
  338. package/dist/schemas/errors.js +1 -0
  339. package/dist/schemas/host.d.ts +24 -0
  340. package/dist/schemas/host.js +19 -0
  341. package/dist/schemas/install.d.ts +8 -2
  342. package/dist/schemas/install.js +11 -1
  343. package/dist/schemas/managed-pi-execution.d.ts +16 -0
  344. package/dist/schemas/managed-pi-execution.js +2 -0
  345. package/dist/schemas/outcome.d.ts +9 -5
  346. package/dist/workspace/config-file.js +1 -3
  347. package/dist/workspace/documents.js +12 -2
  348. package/dist/workspace/repositories.d.ts +7 -0
  349. package/dist/workspace/repositories.js +14 -5
  350. package/package.json +35 -35
  351. package/skills/pappra/SKILL.md +28 -7
  352. package/skills/pappra/references/collaboration.md +633 -0
  353. package/skills/pappra/references/environment.md +360 -0
  354. package/skills/pappra/references/hosts.md +20 -0
  355. package/skills/pappra/references/operations.md +36 -5
  356. package/dist/app/collab-from.d.ts +0 -35
  357. package/dist/app/collab-from.js +0 -84
@@ -0,0 +1,342 @@
1
+ import { object } from '../infra/validation.js';
2
+ export { object, text, errorCode, parseJson } from '../infra/validation.js';
3
+ const string = (value) => typeof value === 'string';
4
+ const number = (value) => typeof value === 'number' && Number.isSafeInteger(value);
5
+ const nullable = (test) => (value) => value === null || test(value);
6
+ const optional = (test) => (value) => value === undefined || test(value);
7
+ const array = (test) => (value) => Array.isArray(value) && value.every(test);
8
+ function shape(value, fields) {
9
+ return (object(value) &&
10
+ Object.entries(fields).every(([key, test]) => test(value[key])));
11
+ }
12
+ const identity = (value) => shape(value, {
13
+ agent_id: string,
14
+ session_id: string,
15
+ harness: nullable(string),
16
+ cwd: optional(string),
17
+ });
18
+ const coordinator = (value) => identity(value) &&
19
+ shape(value, {
20
+ owner_epoch: number,
21
+ since: string,
22
+ previous: optional(nullable((item) => shape(item, {
23
+ agent_id: string,
24
+ session_id: string,
25
+ owner_epoch: number,
26
+ }))),
27
+ });
28
+ const native = (value) => shape(value, {
29
+ runner: nullable(string),
30
+ session_id: nullable(string),
31
+ run_id: nullable(string),
32
+ mission_id: nullable(string),
33
+ observation: string,
34
+ observed_at: nullable(string),
35
+ evidence_ref: nullable(string),
36
+ manager: optional(string),
37
+ launch_kind: optional(string),
38
+ mode: optional(string),
39
+ identity_status: optional(string),
40
+ });
41
+ const transition = (value) => shape(value, {
42
+ from: nullable(string),
43
+ to: string,
44
+ at: string,
45
+ actor: string,
46
+ reason: nullable(string),
47
+ });
48
+ const approval = (value) => shape(value, { approved_by: string, reason: string });
49
+ const attempt = (value) => shape(value, {
50
+ subtask_id: string,
51
+ attempt: number,
52
+ state: string,
53
+ owner_epoch: nullable(number),
54
+ assignee: identity,
55
+ assignment_message_id: string,
56
+ assignment_ref: nullable(string),
57
+ assignment_digest: nullable(string),
58
+ input_revision: nullable(string),
59
+ created_at: string,
60
+ updated_at: string,
61
+ native,
62
+ approval: nullable(approval),
63
+ transitions: array(transition),
64
+ closed_at: optional(string),
65
+ awaiting: optional(string),
66
+ ownership: optional(string),
67
+ cancel_requested_at: optional(string),
68
+ cwd: optional(string),
69
+ });
70
+ const claim = (value) => shape(value, {
71
+ claim_id: string,
72
+ key: string,
73
+ kind: string,
74
+ scope: string,
75
+ label: string,
76
+ path: optional(nullable(string)),
77
+ port: optional(nullable(number)),
78
+ origin: optional(string),
79
+ derived_from: optional(nullable(string)),
80
+ access: string,
81
+ holder: identity,
82
+ resource_epoch: number,
83
+ claimed_at: string,
84
+ released_at: nullable(string),
85
+ subtask_id: nullable(string),
86
+ attempt: nullable(number),
87
+ note: nullable(string),
88
+ cancel_pending: optional((item) => typeof item === 'boolean'),
89
+ released_by: optional(string),
90
+ release_reason: optional(nullable(string)),
91
+ transferred_from: optional(identity),
92
+ transferred_at: optional(string),
93
+ });
94
+ const appliedMessage = (value) => shape(value, {
95
+ message_id: string,
96
+ type: string,
97
+ subtask_id: nullable(string),
98
+ attempt: nullable(number),
99
+ from: identity,
100
+ to: nullable(identity),
101
+ reply_to: nullable(string),
102
+ owner_epoch: nullable(number),
103
+ content_digest: string,
104
+ at: string,
105
+ applied_at: string,
106
+ state: string,
107
+ detail: string,
108
+ body_kind: nullable(string),
109
+ });
110
+ const uncertainty = (value) => shape(value, {
111
+ uncertainty_id: string,
112
+ kind: string,
113
+ subtask_id: nullable(string),
114
+ attempt: nullable(number),
115
+ detail: nullable(string),
116
+ evidence_ref: nullable(string),
117
+ resolution_hint: nullable(string),
118
+ opened_at: string,
119
+ resolved_at: nullable(string),
120
+ resolution: nullable(string),
121
+ auto_restart: (item) => typeof item === 'boolean',
122
+ resolved_by: optional(string),
123
+ resolution_source: optional(string),
124
+ });
125
+ const result = (value) => shape(value, {
126
+ schema: string,
127
+ subtask_id: string,
128
+ attempt: number,
129
+ status: string,
130
+ message_id: string,
131
+ input_revision: nullable(string),
132
+ outputs: Array.isArray,
133
+ recorded_at: string,
134
+ evidence_ref: nullable(string),
135
+ classification: string,
136
+ reason: nullable(string),
137
+ });
138
+ const snapshot = (value) => shape(value, {
139
+ claim_id: string,
140
+ holder: optional(nullable(identity)),
141
+ resource_epoch: optional(nullable(number)),
142
+ released_at: optional(nullable(string)),
143
+ missing: optional((item) => typeof item === 'boolean'),
144
+ });
145
+ const nativeIdentity = (value) => shape(value, {
146
+ agent_id: nullable(string),
147
+ runner: nullable(string),
148
+ session_id: nullable(string),
149
+ run_id: nullable(string),
150
+ mission_id: nullable(string),
151
+ });
152
+ const rolloverClaimReference = (value) => shape(value, { claim_id: string, resource_epoch: number });
153
+ const rolloverBundleReference = (value) => shape(value, { ref: string, digest: string });
154
+ const rolloverBoundary = (value) => shape(value, { message_count: number, state_revision: number, at: string });
155
+ const rolloverIntent = (value) => shape(value, {
156
+ schema: string,
157
+ intent_id: string,
158
+ generation: number,
159
+ task_id: string,
160
+ handoff_id: string,
161
+ subtask_id: string,
162
+ attempt: number,
163
+ input_revision: string,
164
+ coordinator_epoch: number,
165
+ from: identity,
166
+ to: identity,
167
+ claims: array(rolloverClaimReference),
168
+ bundle: rolloverBundleReference,
169
+ created_at: string,
170
+ source_native: nativeIdentity,
171
+ prepared: optional(nullable((item) => shape(item, {
172
+ evidence_ref: string,
173
+ inventory: string,
174
+ at: string,
175
+ }))),
176
+ transfer_boundary: optional(nullable(rolloverBoundary)),
177
+ successor_native: optional(nullable(nativeIdentity)),
178
+ });
179
+ const successionEntry = (value) => shape(value, {
180
+ schema: string,
181
+ intent_id: string,
182
+ handoff_id: string,
183
+ generation: number,
184
+ old_native: nativeIdentity,
185
+ successor_native: nativeIdentity,
186
+ archived_at: string,
187
+ history_retained: (item) => item === true,
188
+ routing: string,
189
+ native_archive: string,
190
+ proof: (item) => shape(item, {
191
+ message_id: string,
192
+ digest: string,
193
+ }),
194
+ });
195
+ const handoff = (value) => shape(value, {
196
+ schema: string,
197
+ handoff_id: string,
198
+ kind: string,
199
+ subtask_id: nullable(string),
200
+ attempt: nullable(number),
201
+ from: identity,
202
+ to: identity,
203
+ resources: array(string),
204
+ ownership_snapshot: array(snapshot),
205
+ state: string,
206
+ owner_epoch: number,
207
+ created_at: string,
208
+ updated_at: string,
209
+ reason: nullable(string),
210
+ steps: array((item) => shape(item, { state: string, at: string, actor: string })),
211
+ partial_outputs: Array.isArray,
212
+ inflight: Array.isArray,
213
+ pending_approvals: Array.isArray,
214
+ confirmation_message_id: nullable(string),
215
+ snapshot_at: optional(string),
216
+ previous_coordinator: optional(nullable(coordinator)),
217
+ resource_transfers: optional(array((item) => shape(item, {
218
+ claim_id: string,
219
+ resource_epoch: number,
220
+ from: identity,
221
+ }))),
222
+ });
223
+ const notificationEntry = (value) => shape(value, {
224
+ notification_id: string,
225
+ key: string,
226
+ kind: string,
227
+ task_id: string,
228
+ subtask_id: nullable(string),
229
+ attempt: nullable(number),
230
+ origin_session: string,
231
+ target_session: string,
232
+ depth: number,
233
+ at: string,
234
+ decision: string,
235
+ reason: nullable(string),
236
+ });
237
+ const reservation = (value) => shape(value, {
238
+ reservation_id: string,
239
+ subtask_id: string,
240
+ attempt: number,
241
+ kind: string,
242
+ mode: string,
243
+ holder: identity,
244
+ requested_session_id: nullable(string),
245
+ reserved_at: string,
246
+ released_at: nullable(string),
247
+ outcome: nullable(string),
248
+ phase: optional(string),
249
+ pid: optional(number),
250
+ resume_selector: optional(nullable(string)),
251
+ transport: optional(string),
252
+ exit_code: optional(nullable(number)),
253
+ session_id: optional(nullable(string)),
254
+ run_id: optional(nullable(string)),
255
+ detail: optional(nullable(string)),
256
+ identity_status: optional(string),
257
+ expected_identity: optional(nullable(string)),
258
+ observed_identity: optional(nullable(string)),
259
+ });
260
+ export function isTaskRecord(value) {
261
+ return shape(value, {
262
+ schema: string,
263
+ task_id: string,
264
+ domain_id: string,
265
+ domain_root: string,
266
+ task_root: string,
267
+ created_at: string,
268
+ updated_at: string,
269
+ state_revision: number,
270
+ coordinator: nullable(coordinator),
271
+ input_revision: nullable(string),
272
+ policy: object,
273
+ attempts: array(attempt),
274
+ messages: array(appliedMessage),
275
+ claims: array(claim),
276
+ handoffs: array(handoff),
277
+ uncertainty: array(uncertainty),
278
+ results: array(result),
279
+ native: Array.isArray,
280
+ dispatch_frozen: optional((item) => typeof item === 'boolean'),
281
+ dispatch_released_at: optional(string),
282
+ dispatch_released_by: optional(string),
283
+ notifications: optional(array(notificationEntry)),
284
+ notifications_trimmed: optional(number),
285
+ launch_reservations: optional(array(reservation)),
286
+ rollover: optional(array(rolloverIntent)),
287
+ successions: optional(array(successionEntry)),
288
+ });
289
+ }
290
+ export function isLockHolder(value) {
291
+ return shape(value, {
292
+ schema: string,
293
+ nonce: string,
294
+ actor: string,
295
+ purpose: string,
296
+ pid: number,
297
+ hostname: string,
298
+ acquired_at: string,
299
+ });
300
+ }
301
+ export function isMessage(value) {
302
+ return shape(value, {
303
+ schema: string,
304
+ message_id: string,
305
+ type: string,
306
+ task_id: string,
307
+ from: identity,
308
+ to: identity,
309
+ reply_to: nullable(string),
310
+ subtask_id: nullable(string),
311
+ attempt: nullable(number),
312
+ owner_epoch: nullable(number),
313
+ created_at: string,
314
+ content_digest: nullable(string),
315
+ body: (body) => shape(body, {
316
+ assignment_ref: optional(nullable(string)),
317
+ assignment_digest: optional(nullable(string)),
318
+ input_revision: optional(nullable(string)),
319
+ approval: optional(approval),
320
+ status: optional(string),
321
+ kind: optional(string),
322
+ phase: optional(string),
323
+ handoff_id: optional(string),
324
+ resources: optional(array(string)),
325
+ reason: optional(nullable(string)),
326
+ outputs: optional(Array.isArray),
327
+ evidence_ref: optional(nullable(string)),
328
+ }),
329
+ });
330
+ }
331
+ export function isNotification(value) {
332
+ return shape(value, {
333
+ schema: string,
334
+ kind: string,
335
+ origin_session: string,
336
+ target_session: string,
337
+ task_id: string,
338
+ depth: optional(number),
339
+ subtask_id: optional(nullable(string)),
340
+ attempt: optional(nullable(number)),
341
+ });
342
+ }