@blxzer/pactile 0.6.0-beta.2 → 0.6.0-beta.5

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 (704) hide show
  1. package/README.md +93 -84
  2. package/README.zh-CN.md +90 -81
  3. package/dist/bin/compat-warning.d.ts +2 -0
  4. package/dist/bin/compat-warning.d.ts.map +1 -0
  5. package/dist/bin/compat-warning.js +8 -0
  6. package/dist/bin/compat-warning.js.map +1 -0
  7. package/dist/bin/cstl.d.ts +3 -0
  8. package/dist/bin/cstl.d.ts.map +1 -0
  9. package/{bin → dist/bin}/cstl.js +2 -3
  10. package/dist/bin/cstl.js.map +1 -0
  11. package/dist/bin/pactile.d.ts +3 -0
  12. package/dist/bin/pactile.d.ts.map +1 -0
  13. package/dist/bin/pactile.js +4 -0
  14. package/dist/bin/pactile.js.map +1 -0
  15. package/dist/cli/index.d.ts.map +1 -1
  16. package/dist/cli/index.js +77 -17
  17. package/dist/cli/index.js.map +1 -1
  18. package/dist/commands/capability.d.ts +3 -0
  19. package/dist/commands/capability.d.ts.map +1 -0
  20. package/dist/commands/capability.js +129 -0
  21. package/dist/commands/capability.js.map +1 -0
  22. package/dist/commands/codex.d.ts.map +1 -1
  23. package/dist/commands/codex.js +54 -6
  24. package/dist/commands/codex.js.map +1 -1
  25. package/dist/commands/context.d.ts +2 -0
  26. package/dist/commands/context.d.ts.map +1 -1
  27. package/dist/commands/context.js +367 -41
  28. package/dist/commands/context.js.map +1 -1
  29. package/dist/commands/detach.d.ts.map +1 -1
  30. package/dist/commands/detach.js +5 -4
  31. package/dist/commands/detach.js.map +1 -1
  32. package/dist/commands/init.d.ts.map +1 -1
  33. package/dist/commands/init.js +615 -259
  34. package/dist/commands/init.js.map +1 -1
  35. package/dist/commands/legacy-task.d.ts +3 -0
  36. package/dist/commands/legacy-task.d.ts.map +1 -0
  37. package/dist/commands/legacy-task.js +295 -0
  38. package/dist/commands/legacy-task.js.map +1 -0
  39. package/dist/commands/pi.d.ts +3 -2
  40. package/dist/commands/pi.d.ts.map +1 -1
  41. package/dist/commands/pi.js +333 -10
  42. package/dist/commands/pi.js.map +1 -1
  43. package/dist/commands/session.d.ts.map +1 -1
  44. package/dist/commands/session.js +148 -24
  45. package/dist/commands/session.js.map +1 -1
  46. package/dist/commands/task-schedule.d.ts +17 -0
  47. package/dist/commands/task-schedule.d.ts.map +1 -0
  48. package/dist/commands/task-schedule.js +395 -0
  49. package/dist/commands/task-schedule.js.map +1 -0
  50. package/dist/commands/task-verify-plan.d.ts +3 -0
  51. package/dist/commands/task-verify-plan.d.ts.map +1 -0
  52. package/dist/commands/task-verify-plan.js +503 -0
  53. package/dist/commands/task-verify-plan.js.map +1 -0
  54. package/dist/commands/task-worktree-close.d.ts +4 -0
  55. package/dist/commands/task-worktree-close.d.ts.map +1 -0
  56. package/dist/commands/task-worktree-close.js +81 -0
  57. package/dist/commands/task-worktree-close.js.map +1 -0
  58. package/dist/commands/task.d.ts +3 -0
  59. package/dist/commands/task.d.ts.map +1 -1
  60. package/dist/commands/task.js +1373 -184
  61. package/dist/commands/task.js.map +1 -1
  62. package/dist/commands/tile-selection.d.ts +3 -0
  63. package/dist/commands/tile-selection.d.ts.map +1 -0
  64. package/dist/commands/tile-selection.js +174 -0
  65. package/dist/commands/tile-selection.js.map +1 -0
  66. package/dist/commands/update.d.ts +1 -1
  67. package/dist/commands/update.d.ts.map +1 -1
  68. package/dist/commands/update.js +80 -55
  69. package/dist/commands/update.js.map +1 -1
  70. package/dist/commands/worktree.d.ts +4 -0
  71. package/dist/commands/worktree.d.ts.map +1 -0
  72. package/dist/commands/worktree.js +198 -0
  73. package/dist/commands/worktree.js.map +1 -0
  74. package/dist/configurators/shared.js +1 -1
  75. package/dist/configurators/shared.js.map +1 -1
  76. package/dist/core/compat/environment.d.ts +0 -1
  77. package/dist/core/compat/environment.d.ts.map +1 -1
  78. package/dist/core/compat/environment.js +1 -9
  79. package/dist/core/compat/environment.js.map +1 -1
  80. package/dist/core/pactile/bounded-capabilities.d.ts +127 -0
  81. package/dist/core/pactile/bounded-capabilities.d.ts.map +1 -0
  82. package/dist/core/pactile/bounded-capabilities.js +188 -0
  83. package/dist/core/pactile/bounded-capabilities.js.map +1 -0
  84. package/dist/core/pactile/index.d.ts +1 -0
  85. package/dist/core/pactile/index.d.ts.map +1 -1
  86. package/dist/core/pactile/index.js +1 -0
  87. package/dist/core/pactile/index.js.map +1 -1
  88. package/dist/core/task/index.d.ts +4 -2
  89. package/dist/core/task/index.d.ts.map +1 -1
  90. package/dist/core/task/index.js +2 -1
  91. package/dist/core/task/index.js.map +1 -1
  92. package/dist/core/task/kernel-cli.d.ts +14 -1
  93. package/dist/core/task/kernel-cli.d.ts.map +1 -1
  94. package/dist/core/task/kernel-cli.js +128 -0
  95. package/dist/core/task/kernel-cli.js.map +1 -1
  96. package/dist/core/task/kernel-contract.d.ts +6 -3
  97. package/dist/core/task/kernel-contract.d.ts.map +1 -1
  98. package/dist/core/task/kernel-contract.js +71 -23
  99. package/dist/core/task/kernel-contract.js.map +1 -1
  100. package/dist/core/task/kernel-store.d.ts +6 -0
  101. package/dist/core/task/kernel-store.d.ts.map +1 -1
  102. package/dist/core/task/kernel-store.js +54 -2
  103. package/dist/core/task/kernel-store.js.map +1 -1
  104. package/dist/core/task/legacy-task-migration-reader.d.ts +137 -0
  105. package/dist/core/task/legacy-task-migration-reader.d.ts.map +1 -0
  106. package/dist/core/task/legacy-task-migration-reader.js +512 -0
  107. package/dist/core/task/legacy-task-migration-reader.js.map +1 -0
  108. package/dist/core/task/legacy-task-migration.d.ts +105 -0
  109. package/dist/core/task/legacy-task-migration.d.ts.map +1 -0
  110. package/dist/core/task/legacy-task-migration.js +562 -0
  111. package/dist/core/task/legacy-task-migration.js.map +1 -0
  112. package/dist/core/task/legacy-task-overlay-durable-io.d.ts +18 -0
  113. package/dist/core/task/legacy-task-overlay-durable-io.d.ts.map +1 -0
  114. package/dist/core/task/legacy-task-overlay-durable-io.js +66 -0
  115. package/dist/core/task/legacy-task-overlay-durable-io.js.map +1 -0
  116. package/dist/core/task/legacy-task-reconciliation-reader.d.ts +26 -0
  117. package/dist/core/task/legacy-task-reconciliation-reader.d.ts.map +1 -0
  118. package/dist/core/task/legacy-task-reconciliation-reader.js +324 -0
  119. package/dist/core/task/legacy-task-reconciliation-reader.js.map +1 -0
  120. package/dist/core/task/legacy-task-v2-import.d.ts +67 -0
  121. package/dist/core/task/legacy-task-v2-import.d.ts.map +1 -0
  122. package/dist/core/task/legacy-task-v2-import.js +1046 -0
  123. package/dist/core/task/legacy-task-v2-import.js.map +1 -0
  124. package/dist/core/task/project-file-observer.d.ts +46 -0
  125. package/dist/core/task/project-file-observer.d.ts.map +1 -0
  126. package/dist/core/task/project-file-observer.js +618 -0
  127. package/dist/core/task/project-file-observer.js.map +1 -0
  128. package/dist/core/task/start-authority.d.ts +14 -0
  129. package/dist/core/task/start-authority.d.ts.map +1 -0
  130. package/dist/core/task/start-authority.js +146 -0
  131. package/dist/core/task/start-authority.js.map +1 -0
  132. package/dist/core/task/strategy.d.ts +24 -0
  133. package/dist/core/task/strategy.d.ts.map +1 -0
  134. package/dist/core/task/strategy.js +136 -0
  135. package/dist/core/task/strategy.js.map +1 -0
  136. package/dist/core/task/task-candidate-observer.d.ts +111 -0
  137. package/dist/core/task/task-candidate-observer.d.ts.map +1 -0
  138. package/dist/core/task/task-candidate-observer.js +762 -0
  139. package/dist/core/task/task-candidate-observer.js.map +1 -0
  140. package/dist/core/task/task-kernel-close.d.ts +5 -0
  141. package/dist/core/task/task-kernel-close.d.ts.map +1 -0
  142. package/dist/core/task/task-kernel-close.js +367 -0
  143. package/dist/core/task/task-kernel-close.js.map +1 -0
  144. package/dist/core/task/task-kernel-dependencies.d.ts +3 -0
  145. package/dist/core/task/task-kernel-dependencies.d.ts.map +1 -0
  146. package/dist/core/task/task-kernel-dependencies.js +24 -0
  147. package/dist/core/task/task-kernel-dependencies.js.map +1 -0
  148. package/dist/core/task/task-kernel-host.d.ts +5 -0
  149. package/dist/core/task/task-kernel-host.d.ts.map +1 -0
  150. package/dist/core/task/task-kernel-host.js +136 -0
  151. package/dist/core/task/task-kernel-host.js.map +1 -0
  152. package/dist/core/task/task-kernel-paths.d.ts +19 -0
  153. package/dist/core/task/task-kernel-paths.d.ts.map +1 -0
  154. package/dist/core/task/task-kernel-paths.js +237 -0
  155. package/dist/core/task/task-kernel-paths.js.map +1 -0
  156. package/dist/core/task/task-kernel-reviews.d.ts +3 -0
  157. package/dist/core/task/task-kernel-reviews.d.ts.map +1 -0
  158. package/dist/core/task/task-kernel-reviews.js +100 -0
  159. package/dist/core/task/task-kernel-reviews.js.map +1 -0
  160. package/dist/core/task/task-kernel-runs.d.ts +5 -0
  161. package/dist/core/task/task-kernel-runs.d.ts.map +1 -0
  162. package/dist/core/task/task-kernel-runs.js +196 -0
  163. package/dist/core/task/task-kernel-runs.js.map +1 -0
  164. package/dist/core/task/task-kernel-schema.d.ts +29 -0
  165. package/dist/core/task/task-kernel-schema.d.ts.map +1 -0
  166. package/dist/core/task/task-kernel-schema.js +1169 -0
  167. package/dist/core/task/task-kernel-schema.js.map +1 -0
  168. package/dist/core/task/task-kernel-store-v2.d.ts +33 -0
  169. package/dist/core/task/task-kernel-store-v2.d.ts.map +1 -0
  170. package/dist/core/task/task-kernel-store-v2.js +574 -0
  171. package/dist/core/task/task-kernel-store-v2.js.map +1 -0
  172. package/dist/core/task/task-kernel-types.d.ts +585 -0
  173. package/dist/core/task/task-kernel-types.d.ts.map +1 -0
  174. package/dist/core/task/task-kernel-types.js +31 -0
  175. package/dist/core/task/task-kernel-types.js.map +1 -0
  176. package/dist/core/task/task-kernel-workspaces.d.ts +10 -0
  177. package/dist/core/task/task-kernel-workspaces.d.ts.map +1 -0
  178. package/dist/core/task/task-kernel-workspaces.js +250 -0
  179. package/dist/core/task/task-kernel-workspaces.js.map +1 -0
  180. package/dist/core/task/task-kernel-write-set.d.ts +3 -0
  181. package/dist/core/task/task-kernel-write-set.d.ts.map +1 -0
  182. package/dist/core/task/task-kernel-write-set.js +12 -0
  183. package/dist/core/task/task-kernel-write-set.js.map +1 -0
  184. package/dist/core/task/task-kernel.d.ts +19 -0
  185. package/dist/core/task/task-kernel.d.ts.map +1 -0
  186. package/dist/core/task/task-kernel.js +17 -0
  187. package/dist/core/task/task-kernel.js.map +1 -0
  188. package/dist/core/task/task-pull-request-observer.d.ts +25 -0
  189. package/dist/core/task/task-pull-request-observer.d.ts.map +1 -0
  190. package/dist/core/task/task-pull-request-observer.js +187 -0
  191. package/dist/core/task/task-pull-request-observer.js.map +1 -0
  192. package/dist/core/task/task-review-evidence.d.ts +27 -0
  193. package/dist/core/task/task-review-evidence.d.ts.map +1 -0
  194. package/dist/core/task/task-review-evidence.js +383 -0
  195. package/dist/core/task/task-review-evidence.js.map +1 -0
  196. package/dist/migrations/index.d.ts +1 -1
  197. package/dist/migrations/index.d.ts.map +1 -1
  198. package/dist/migrations/index.js +5 -3
  199. package/dist/migrations/index.js.map +1 -1
  200. package/dist/migrations/manifests/0.6.0-beta.3.json +9 -0
  201. package/dist/migrations/manifests/0.6.0-beta.4.json +9 -0
  202. package/dist/migrations/manifests/0.6.0-beta.5.json +9 -0
  203. package/dist/pactile/artifacts/documents.d.ts +72 -0
  204. package/dist/pactile/artifacts/documents.d.ts.map +1 -0
  205. package/dist/pactile/artifacts/documents.js +406 -0
  206. package/dist/pactile/artifacts/documents.js.map +1 -0
  207. package/dist/pactile/artifacts/index.d.ts +6 -0
  208. package/dist/pactile/artifacts/index.d.ts.map +1 -0
  209. package/dist/pactile/artifacts/index.js +6 -0
  210. package/dist/pactile/artifacts/index.js.map +1 -0
  211. package/dist/pactile/artifacts/projection.d.ts +50 -0
  212. package/dist/pactile/artifacts/projection.d.ts.map +1 -0
  213. package/dist/pactile/artifacts/projection.js +139 -0
  214. package/dist/pactile/artifacts/projection.js.map +1 -0
  215. package/dist/pactile/artifacts/reader.d.ts +20 -0
  216. package/dist/pactile/artifacts/reader.d.ts.map +1 -0
  217. package/dist/pactile/artifacts/reader.js +559 -0
  218. package/dist/pactile/artifacts/reader.js.map +1 -0
  219. package/dist/pactile/artifacts/schema.d.ts +4 -0
  220. package/dist/pactile/artifacts/schema.d.ts.map +1 -0
  221. package/dist/pactile/artifacts/schema.js +217 -0
  222. package/dist/pactile/artifacts/schema.js.map +1 -0
  223. package/dist/pactile/artifacts/types.d.ts +66 -0
  224. package/dist/pactile/artifacts/types.d.ts.map +1 -0
  225. package/dist/pactile/artifacts/types.js +45 -0
  226. package/dist/pactile/artifacts/types.js.map +1 -0
  227. package/dist/pactile/capabilities/claim.d.ts +3 -0
  228. package/dist/pactile/capabilities/claim.d.ts.map +1 -0
  229. package/dist/pactile/capabilities/claim.js +97 -0
  230. package/dist/pactile/capabilities/claim.js.map +1 -0
  231. package/dist/pactile/capabilities/command.d.ts +6 -0
  232. package/dist/pactile/capabilities/command.d.ts.map +1 -0
  233. package/dist/pactile/capabilities/command.js +253 -0
  234. package/dist/pactile/capabilities/command.js.map +1 -0
  235. package/dist/pactile/capabilities/discover.d.ts +6 -0
  236. package/dist/pactile/capabilities/discover.d.ts.map +1 -0
  237. package/dist/pactile/capabilities/discover.js +48 -0
  238. package/dist/pactile/capabilities/discover.js.map +1 -0
  239. package/dist/pactile/capabilities/node.d.ts +15 -0
  240. package/dist/pactile/capabilities/node.d.ts.map +1 -0
  241. package/dist/pactile/capabilities/node.js +292 -0
  242. package/dist/pactile/capabilities/node.js.map +1 -0
  243. package/dist/pactile/capabilities/read.d.ts +6 -0
  244. package/dist/pactile/capabilities/read.d.ts.map +1 -0
  245. package/dist/pactile/capabilities/read.js +100 -0
  246. package/dist/pactile/capabilities/read.js.map +1 -0
  247. package/dist/pactile/capabilities/receipts.d.ts +17 -0
  248. package/dist/pactile/capabilities/receipts.d.ts.map +1 -0
  249. package/dist/pactile/capabilities/receipts.js +90 -0
  250. package/dist/pactile/capabilities/receipts.js.map +1 -0
  251. package/dist/pactile/capabilities/search.d.ts +6 -0
  252. package/dist/pactile/capabilities/search.d.ts.map +1 -0
  253. package/dist/pactile/capabilities/search.js +181 -0
  254. package/dist/pactile/capabilities/search.js.map +1 -0
  255. package/dist/pactile/capabilities/shared.d.ts +29 -0
  256. package/dist/pactile/capabilities/shared.d.ts.map +1 -0
  257. package/dist/pactile/capabilities/shared.js +134 -0
  258. package/dist/pactile/capabilities/shared.js.map +1 -0
  259. package/dist/pactile/capabilities/workspace.d.ts +19 -0
  260. package/dist/pactile/capabilities/workspace.d.ts.map +1 -0
  261. package/dist/pactile/capabilities/workspace.js +273 -0
  262. package/dist/pactile/capabilities/workspace.js.map +1 -0
  263. package/dist/pactile/codex/bridge.d.ts +105 -2
  264. package/dist/pactile/codex/bridge.d.ts.map +1 -1
  265. package/dist/pactile/codex/bridge.js +1266 -92
  266. package/dist/pactile/codex/bridge.js.map +1 -1
  267. package/dist/pactile/codex/dispatch-stop-proof.d.ts +43 -0
  268. package/dist/pactile/codex/dispatch-stop-proof.d.ts.map +1 -0
  269. package/dist/pactile/codex/dispatch-stop-proof.js +177 -0
  270. package/dist/pactile/codex/dispatch-stop-proof.js.map +1 -0
  271. package/dist/pactile/codex/host-stop.d.ts +47 -0
  272. package/dist/pactile/codex/host-stop.d.ts.map +1 -0
  273. package/dist/pactile/codex/host-stop.js +344 -0
  274. package/dist/pactile/codex/host-stop.js.map +1 -0
  275. package/dist/pactile/coordination/index.d.ts +4 -0
  276. package/dist/pactile/coordination/index.d.ts.map +1 -0
  277. package/dist/pactile/coordination/index.js +4 -0
  278. package/dist/pactile/coordination/index.js.map +1 -0
  279. package/dist/pactile/coordination/journal.d.ts +10 -0
  280. package/dist/pactile/coordination/journal.d.ts.map +1 -0
  281. package/dist/pactile/coordination/journal.js +255 -0
  282. package/dist/pactile/coordination/journal.js.map +1 -0
  283. package/dist/pactile/coordination/kernel-resume.d.ts +8 -0
  284. package/dist/pactile/coordination/kernel-resume.d.ts.map +1 -0
  285. package/dist/pactile/coordination/kernel-resume.js +87 -0
  286. package/dist/pactile/coordination/kernel-resume.js.map +1 -0
  287. package/dist/pactile/coordination/model.d.ts +553 -0
  288. package/dist/pactile/coordination/model.d.ts.map +1 -0
  289. package/dist/pactile/coordination/model.js +239 -0
  290. package/dist/pactile/coordination/model.js.map +1 -0
  291. package/dist/pactile/coordination/state.d.ts +46 -0
  292. package/dist/pactile/coordination/state.d.ts.map +1 -0
  293. package/dist/pactile/coordination/state.js +301 -0
  294. package/dist/pactile/coordination/state.js.map +1 -0
  295. package/dist/pactile/coordination/store.d.ts +94 -0
  296. package/dist/pactile/coordination/store.d.ts.map +1 -0
  297. package/dist/pactile/coordination/store.js +396 -0
  298. package/dist/pactile/coordination/store.js.map +1 -0
  299. package/dist/pactile/index.d.ts +7 -1
  300. package/dist/pactile/index.d.ts.map +1 -1
  301. package/dist/pactile/index.js +7 -1
  302. package/dist/pactile/index.js.map +1 -1
  303. package/dist/pactile/jev/contracts.d.ts +104 -0
  304. package/dist/pactile/jev/contracts.d.ts.map +1 -0
  305. package/dist/pactile/jev/contracts.js +53 -0
  306. package/dist/pactile/jev/contracts.js.map +1 -0
  307. package/dist/pactile/jev/decision.d.ts +58 -0
  308. package/dist/pactile/jev/decision.d.ts.map +1 -0
  309. package/dist/pactile/jev/decision.js +149 -0
  310. package/dist/pactile/jev/decision.js.map +1 -0
  311. package/dist/pactile/jev/http.d.ts +25 -0
  312. package/dist/pactile/jev/http.d.ts.map +1 -0
  313. package/dist/pactile/jev/http.js +234 -0
  314. package/dist/pactile/jev/http.js.map +1 -0
  315. package/dist/pactile/jev/index.d.ts +8 -0
  316. package/dist/pactile/jev/index.d.ts.map +1 -0
  317. package/dist/pactile/jev/index.js +4 -0
  318. package/dist/pactile/jev/index.js.map +1 -0
  319. package/dist/pactile/jev/outbound.d.ts +15 -0
  320. package/dist/pactile/jev/outbound.d.ts.map +1 -0
  321. package/dist/pactile/jev/outbound.js +264 -0
  322. package/dist/pactile/jev/outbound.js.map +1 -0
  323. package/dist/pactile/jev/project-policy.d.ts +10 -0
  324. package/dist/pactile/jev/project-policy.d.ts.map +1 -0
  325. package/dist/pactile/jev/project-policy.js +53 -0
  326. package/dist/pactile/jev/project-policy.js.map +1 -0
  327. package/dist/pactile/jev/response.d.ts +17 -0
  328. package/dist/pactile/jev/response.d.ts.map +1 -0
  329. package/dist/pactile/jev/response.js +280 -0
  330. package/dist/pactile/jev/response.js.map +1 -0
  331. package/dist/pactile/jev/scheduler-advice.d.ts +92 -0
  332. package/dist/pactile/jev/scheduler-advice.d.ts.map +1 -0
  333. package/dist/pactile/jev/scheduler-advice.js +323 -0
  334. package/dist/pactile/jev/scheduler-advice.js.map +1 -0
  335. package/dist/pactile/jev/transport.d.ts +6 -0
  336. package/dist/pactile/jev/transport.d.ts.map +1 -0
  337. package/dist/pactile/jev/transport.js +87 -0
  338. package/dist/pactile/jev/transport.js.map +1 -0
  339. package/dist/pactile/lifecycle/deferred-live.d.ts +17 -0
  340. package/dist/pactile/lifecycle/deferred-live.d.ts.map +1 -0
  341. package/dist/pactile/lifecycle/deferred-live.js +173 -0
  342. package/dist/pactile/lifecycle/deferred-live.js.map +1 -0
  343. package/dist/pactile/lifecycle/legacy-import.d.ts +1 -1
  344. package/dist/pactile/lifecycle/legacy-import.js +3 -3
  345. package/dist/pactile/lifecycle/legacy-import.js.map +1 -1
  346. package/dist/pactile/lifecycle/project-files.d.ts.map +1 -1
  347. package/dist/pactile/lifecycle/project-files.js +1 -0
  348. package/dist/pactile/lifecycle/project-files.js.map +1 -1
  349. package/dist/pactile/migration/legacy-task-batch-generation.d.ts +23 -0
  350. package/dist/pactile/migration/legacy-task-batch-generation.d.ts.map +1 -0
  351. package/dist/pactile/migration/legacy-task-batch-generation.js +102 -0
  352. package/dist/pactile/migration/legacy-task-batch-generation.js.map +1 -0
  353. package/dist/pactile/migration/legacy-task-batch-io.d.ts +9 -0
  354. package/dist/pactile/migration/legacy-task-batch-io.d.ts.map +1 -0
  355. package/dist/pactile/migration/legacy-task-batch-io.js +208 -0
  356. package/dist/pactile/migration/legacy-task-batch-io.js.map +1 -0
  357. package/dist/pactile/migration/legacy-task-batch-journal.d.ts +6 -0
  358. package/dist/pactile/migration/legacy-task-batch-journal.d.ts.map +1 -0
  359. package/dist/pactile/migration/legacy-task-batch-journal.js +121 -0
  360. package/dist/pactile/migration/legacy-task-batch-journal.js.map +1 -0
  361. package/dist/pactile/migration/legacy-task-batch-orchestrator.d.ts +18 -0
  362. package/dist/pactile/migration/legacy-task-batch-orchestrator.d.ts.map +1 -0
  363. package/dist/pactile/migration/legacy-task-batch-orchestrator.js +634 -0
  364. package/dist/pactile/migration/legacy-task-batch-orchestrator.js.map +1 -0
  365. package/dist/pactile/migration/legacy-task-batch-source.d.ts +8 -0
  366. package/dist/pactile/migration/legacy-task-batch-source.d.ts.map +1 -0
  367. package/dist/pactile/migration/legacy-task-batch-source.js +158 -0
  368. package/dist/pactile/migration/legacy-task-batch-source.js.map +1 -0
  369. package/dist/pactile/migration/legacy-task-batch-types.d.ts +127 -0
  370. package/dist/pactile/migration/legacy-task-batch-types.d.ts.map +1 -0
  371. package/dist/pactile/migration/legacy-task-batch-types.js +127 -0
  372. package/dist/pactile/migration/legacy-task-batch-types.js.map +1 -0
  373. package/dist/pactile/migration/legacy-task-batch.d.ts +3 -0
  374. package/dist/pactile/migration/legacy-task-batch.d.ts.map +1 -0
  375. package/dist/pactile/migration/legacy-task-batch.js +2 -0
  376. package/dist/pactile/migration/legacy-task-batch.js.map +1 -0
  377. package/dist/pactile/migration/legacy-task-held-source-reader.d.ts +27 -0
  378. package/dist/pactile/migration/legacy-task-held-source-reader.d.ts.map +1 -0
  379. package/dist/pactile/migration/legacy-task-held-source-reader.js +261 -0
  380. package/dist/pactile/migration/legacy-task-held-source-reader.js.map +1 -0
  381. package/dist/pactile/migration/legacy-task-reconciliation.d.ts +46 -0
  382. package/dist/pactile/migration/legacy-task-reconciliation.d.ts.map +1 -0
  383. package/dist/pactile/migration/legacy-task-reconciliation.js +589 -0
  384. package/dist/pactile/migration/legacy-task-reconciliation.js.map +1 -0
  385. package/dist/pactile/migration/legacy-task-update.d.ts +19 -0
  386. package/dist/pactile/migration/legacy-task-update.d.ts.map +1 -0
  387. package/dist/pactile/migration/legacy-task-update.js +164 -0
  388. package/dist/pactile/migration/legacy-task-update.js.map +1 -0
  389. package/dist/pactile/parallel/batch.d.ts +21 -2
  390. package/dist/pactile/parallel/batch.d.ts.map +1 -1
  391. package/dist/pactile/parallel/batch.js +271 -50
  392. package/dist/pactile/parallel/batch.js.map +1 -1
  393. package/dist/pactile/parallel/policy.d.ts +1 -1
  394. package/dist/pactile/parallel/policy.d.ts.map +1 -1
  395. package/dist/pactile/parallel/policy.js +130 -102
  396. package/dist/pactile/parallel/policy.js.map +1 -1
  397. package/dist/pactile/pi/bridge.d.ts +139 -2
  398. package/dist/pactile/pi/bridge.d.ts.map +1 -1
  399. package/dist/pactile/pi/bridge.js +1317 -106
  400. package/dist/pactile/pi/bridge.js.map +1 -1
  401. package/dist/pactile/pi/rpc.d.ts +23 -4
  402. package/dist/pactile/pi/rpc.d.ts.map +1 -1
  403. package/dist/pactile/pi/rpc.js +243 -42
  404. package/dist/pactile/pi/rpc.js.map +1 -1
  405. package/dist/pactile/pi/v2-dispatch.d.ts +113 -0
  406. package/dist/pactile/pi/v2-dispatch.d.ts.map +1 -0
  407. package/dist/pactile/pi/v2-dispatch.js +919 -0
  408. package/dist/pactile/pi/v2-dispatch.js.map +1 -0
  409. package/dist/pactile/projection/planner.js +1 -1
  410. package/dist/pactile/projection/planner.js.map +1 -1
  411. package/dist/pactile/registry.d.ts +63 -1
  412. package/dist/pactile/registry.d.ts.map +1 -1
  413. package/dist/pactile/registry.js +633 -4
  414. package/dist/pactile/registry.js.map +1 -1
  415. package/dist/pactile/retrieval/index.d.ts +1 -0
  416. package/dist/pactile/retrieval/index.d.ts.map +1 -1
  417. package/dist/pactile/retrieval/index.js +1 -0
  418. package/dist/pactile/retrieval/index.js.map +1 -1
  419. package/dist/pactile/retrieval/jev-planning.d.ts +28 -0
  420. package/dist/pactile/retrieval/jev-planning.d.ts.map +1 -0
  421. package/dist/pactile/retrieval/jev-planning.js +96 -0
  422. package/dist/pactile/retrieval/jev-planning.js.map +1 -0
  423. package/dist/pactile/review/contract.d.ts +232 -0
  424. package/dist/pactile/review/contract.d.ts.map +1 -0
  425. package/dist/pactile/review/contract.js +695 -0
  426. package/dist/pactile/review/contract.js.map +1 -0
  427. package/dist/pactile/review/escalation-artifacts.d.ts +41 -0
  428. package/dist/pactile/review/escalation-artifacts.d.ts.map +1 -0
  429. package/dist/pactile/review/escalation-artifacts.js +415 -0
  430. package/dist/pactile/review/escalation-artifacts.js.map +1 -0
  431. package/dist/pactile/review/escalation-contract.d.ts +115 -0
  432. package/dist/pactile/review/escalation-contract.d.ts.map +1 -0
  433. package/dist/pactile/review/escalation-contract.js +151 -0
  434. package/dist/pactile/review/escalation-contract.js.map +1 -0
  435. package/dist/pactile/review/escalation-finalize.d.ts +14 -0
  436. package/dist/pactile/review/escalation-finalize.d.ts.map +1 -0
  437. package/dist/pactile/review/escalation-finalize.js +319 -0
  438. package/dist/pactile/review/escalation-finalize.js.map +1 -0
  439. package/dist/pactile/review/escalation-reply.d.ts +10 -0
  440. package/dist/pactile/review/escalation-reply.d.ts.map +1 -0
  441. package/dist/pactile/review/escalation-reply.js +61 -0
  442. package/dist/pactile/review/escalation-reply.js.map +1 -0
  443. package/dist/pactile/review/escalation-transport.d.ts +32 -0
  444. package/dist/pactile/review/escalation-transport.d.ts.map +1 -0
  445. package/dist/pactile/review/escalation-transport.js +216 -0
  446. package/dist/pactile/review/escalation-transport.js.map +1 -0
  447. package/dist/pactile/review/escalation.d.ts +7 -0
  448. package/dist/pactile/review/escalation.d.ts.map +1 -0
  449. package/dist/pactile/review/escalation.js +6 -0
  450. package/dist/pactile/review/escalation.js.map +1 -0
  451. package/dist/pactile/review/evidence.d.ts +25 -0
  452. package/dist/pactile/review/evidence.d.ts.map +1 -0
  453. package/dist/pactile/review/evidence.js +58 -0
  454. package/dist/pactile/review/evidence.js.map +1 -0
  455. package/dist/pactile/review/jev-escalation-advice.d.ts +77 -0
  456. package/dist/pactile/review/jev-escalation-advice.d.ts.map +1 -0
  457. package/dist/pactile/review/jev-escalation-advice.js +358 -0
  458. package/dist/pactile/review/jev-escalation-advice.js.map +1 -0
  459. package/dist/pactile/scheduler/index.d.ts +6 -0
  460. package/dist/pactile/scheduler/index.d.ts.map +1 -0
  461. package/dist/pactile/scheduler/index.js +5 -0
  462. package/dist/pactile/scheduler/index.js.map +1 -0
  463. package/dist/pactile/scheduler/project-lease-store.d.ts +35 -0
  464. package/dist/pactile/scheduler/project-lease-store.d.ts.map +1 -0
  465. package/dist/pactile/scheduler/project-lease-store.js +189 -0
  466. package/dist/pactile/scheduler/project-lease-store.js.map +1 -0
  467. package/dist/pactile/scheduler/scheduler.d.ts +91 -0
  468. package/dist/pactile/scheduler/scheduler.d.ts.map +1 -0
  469. package/dist/pactile/scheduler/scheduler.js +589 -0
  470. package/dist/pactile/scheduler/scheduler.js.map +1 -0
  471. package/dist/pactile/scheduler/task-kernel-admission.d.ts +173 -0
  472. package/dist/pactile/scheduler/task-kernel-admission.d.ts.map +1 -0
  473. package/dist/pactile/scheduler/task-kernel-admission.js +1560 -0
  474. package/dist/pactile/scheduler/task-kernel-admission.js.map +1 -0
  475. package/dist/pactile/scheduler/task-kernel-wave-dispatch.d.ts +184 -0
  476. package/dist/pactile/scheduler/task-kernel-wave-dispatch.d.ts.map +1 -0
  477. package/dist/pactile/scheduler/task-kernel-wave-dispatch.js +952 -0
  478. package/dist/pactile/scheduler/task-kernel-wave-dispatch.js.map +1 -0
  479. package/dist/pactile/scheduler/task-map-scheduler.d.ts +116 -0
  480. package/dist/pactile/scheduler/task-map-scheduler.d.ts.map +1 -0
  481. package/dist/pactile/scheduler/task-map-scheduler.js +1448 -0
  482. package/dist/pactile/scheduler/task-map-scheduler.js.map +1 -0
  483. package/dist/pactile/scheduler/task-run-dispatch-state.d.ts +7 -0
  484. package/dist/pactile/scheduler/task-run-dispatch-state.d.ts.map +1 -0
  485. package/dist/pactile/scheduler/task-run-dispatch-state.js +69 -0
  486. package/dist/pactile/scheduler/task-run-dispatch-state.js.map +1 -0
  487. package/dist/pactile/task/authorization.d.ts +3 -0
  488. package/dist/pactile/task/authorization.d.ts.map +1 -0
  489. package/dist/pactile/task/authorization.js +43 -0
  490. package/dist/pactile/task/authorization.js.map +1 -0
  491. package/dist/pactile/task/creation.d.ts +22 -0
  492. package/dist/pactile/task/creation.d.ts.map +1 -0
  493. package/dist/pactile/task/creation.js +95 -0
  494. package/dist/pactile/task/creation.js.map +1 -0
  495. package/dist/pactile/task/guards.d.ts +1 -4
  496. package/dist/pactile/task/guards.d.ts.map +1 -1
  497. package/dist/pactile/task/guards.js +5 -57
  498. package/dist/pactile/task/guards.js.map +1 -1
  499. package/dist/pactile/task/session-jev-receipt.d.ts +58 -0
  500. package/dist/pactile/task/session-jev-receipt.d.ts.map +1 -0
  501. package/dist/pactile/task/session-jev-receipt.js +375 -0
  502. package/dist/pactile/task/session-jev-receipt.js.map +1 -0
  503. package/dist/pactile/task/session-jev.d.ts +7 -0
  504. package/dist/pactile/task/session-jev.d.ts.map +1 -0
  505. package/dist/pactile/task/session-jev.js +217 -0
  506. package/dist/pactile/task/session-jev.js.map +1 -0
  507. package/dist/pactile/task/session-pack.d.ts.map +1 -1
  508. package/dist/pactile/task/session-pack.js +155 -16
  509. package/dist/pactile/task/session-pack.js.map +1 -1
  510. package/dist/pactile/task/session-retrieval-jev-receipt.d.ts +49 -0
  511. package/dist/pactile/task/session-retrieval-jev-receipt.d.ts.map +1 -0
  512. package/dist/pactile/task/session-retrieval-jev-receipt.js +97 -0
  513. package/dist/pactile/task/session-retrieval-jev-receipt.js.map +1 -0
  514. package/dist/pactile/task/session-retrieval-jev.d.ts +8 -0
  515. package/dist/pactile/task/session-retrieval-jev.d.ts.map +1 -0
  516. package/dist/pactile/task/session-retrieval-jev.js +352 -0
  517. package/dist/pactile/task/session-retrieval-jev.js.map +1 -0
  518. package/dist/pactile/task/strategy.d.ts +1 -23
  519. package/dist/pactile/task/strategy.d.ts.map +1 -1
  520. package/dist/pactile/task/strategy.js +2 -135
  521. package/dist/pactile/task/strategy.js.map +1 -1
  522. package/dist/pactile/tiles/jev-selection.d.ts +44 -0
  523. package/dist/pactile/tiles/jev-selection.d.ts.map +1 -0
  524. package/dist/pactile/tiles/jev-selection.js +210 -0
  525. package/dist/pactile/tiles/jev-selection.js.map +1 -0
  526. package/dist/pactile/tiles/safe-yaml.d.ts +5 -1
  527. package/dist/pactile/tiles/safe-yaml.d.ts.map +1 -1
  528. package/dist/pactile/tiles/safe-yaml.js +8 -8
  529. package/dist/pactile/tiles/safe-yaml.js.map +1 -1
  530. package/dist/pactile/tiles/selection-receipts.d.ts +71 -0
  531. package/dist/pactile/tiles/selection-receipts.d.ts.map +1 -0
  532. package/dist/pactile/tiles/selection-receipts.js +319 -0
  533. package/dist/pactile/tiles/selection-receipts.js.map +1 -0
  534. package/dist/pactile/tiles/selection.d.ts +185 -0
  535. package/dist/pactile/tiles/selection.d.ts.map +1 -0
  536. package/dist/pactile/tiles/selection.js +985 -0
  537. package/dist/pactile/tiles/selection.js.map +1 -0
  538. package/dist/pactile/verification/git-observer.d.ts +3 -0
  539. package/dist/pactile/verification/git-observer.d.ts.map +1 -0
  540. package/dist/pactile/verification/git-observer.js +3 -0
  541. package/dist/pactile/verification/git-observer.js.map +1 -0
  542. package/dist/pactile/verification/index.d.ts +11 -0
  543. package/dist/pactile/verification/index.d.ts.map +1 -0
  544. package/dist/pactile/verification/index.js +6 -0
  545. package/dist/pactile/verification/index.js.map +1 -0
  546. package/dist/pactile/verification/jev-advice.d.ts +78 -0
  547. package/dist/pactile/verification/jev-advice.d.ts.map +1 -0
  548. package/dist/pactile/verification/jev-advice.js +397 -0
  549. package/dist/pactile/verification/jev-advice.js.map +1 -0
  550. package/dist/pactile/verification/planner.d.ts +15 -0
  551. package/dist/pactile/verification/planner.d.ts.map +1 -0
  552. package/dist/pactile/verification/planner.js +412 -0
  553. package/dist/pactile/verification/planner.js.map +1 -0
  554. package/dist/pactile/verification/receipt.d.ts +101 -0
  555. package/dist/pactile/verification/receipt.d.ts.map +1 -0
  556. package/dist/pactile/verification/receipt.js +400 -0
  557. package/dist/pactile/verification/receipt.js.map +1 -0
  558. package/dist/pactile/verification/types.d.ts +72 -0
  559. package/dist/pactile/verification/types.d.ts.map +1 -0
  560. package/dist/pactile/verification/types.js +21 -0
  561. package/dist/pactile/verification/types.js.map +1 -0
  562. package/dist/pactile/worktree/git-probe.d.ts +32 -0
  563. package/dist/pactile/worktree/git-probe.d.ts.map +1 -0
  564. package/dist/pactile/worktree/git-probe.js +336 -0
  565. package/dist/pactile/worktree/git-probe.js.map +1 -0
  566. package/dist/pactile/worktree/git-removal.d.ts +3 -0
  567. package/dist/pactile/worktree/git-removal.d.ts.map +1 -0
  568. package/dist/pactile/worktree/git-removal.js +11 -0
  569. package/dist/pactile/worktree/git-removal.js.map +1 -0
  570. package/dist/pactile/worktree/index.d.ts +2 -0
  571. package/dist/pactile/worktree/index.d.ts.map +1 -0
  572. package/dist/pactile/worktree/index.js +2 -0
  573. package/dist/pactile/worktree/index.js.map +1 -0
  574. package/dist/pactile/worktree/integration-evidence.d.ts +80 -0
  575. package/dist/pactile/worktree/integration-evidence.d.ts.map +1 -0
  576. package/dist/pactile/worktree/integration-evidence.js +166 -0
  577. package/dist/pactile/worktree/integration-evidence.js.map +1 -0
  578. package/dist/pactile/worktree/manager-core.d.ts +50 -0
  579. package/dist/pactile/worktree/manager-core.d.ts.map +1 -0
  580. package/dist/pactile/worktree/manager-core.js +359 -0
  581. package/dist/pactile/worktree/manager-core.js.map +1 -0
  582. package/dist/pactile/worktree/manager-provenance.d.ts +32 -0
  583. package/dist/pactile/worktree/manager-provenance.d.ts.map +1 -0
  584. package/dist/pactile/worktree/manager-provenance.js +409 -0
  585. package/dist/pactile/worktree/manager-provenance.js.map +1 -0
  586. package/dist/pactile/worktree/manager-types.d.ts +84 -0
  587. package/dist/pactile/worktree/manager-types.d.ts.map +1 -0
  588. package/dist/pactile/worktree/manager-types.js +11 -0
  589. package/dist/pactile/worktree/manager-types.js.map +1 -0
  590. package/dist/pactile/worktree/manager.d.ts +10 -0
  591. package/dist/pactile/worktree/manager.d.ts.map +1 -0
  592. package/dist/pactile/worktree/manager.js +6 -0
  593. package/dist/pactile/worktree/manager.js.map +1 -0
  594. package/dist/pactile/worktree/run-workspace-cleanup.d.ts +10 -0
  595. package/dist/pactile/worktree/run-workspace-cleanup.d.ts.map +1 -0
  596. package/dist/pactile/worktree/run-workspace-cleanup.js +695 -0
  597. package/dist/pactile/worktree/run-workspace-cleanup.js.map +1 -0
  598. package/dist/pactile/worktree/run-workspace-lifecycle.d.ts +65 -0
  599. package/dist/pactile/worktree/run-workspace-lifecycle.d.ts.map +1 -0
  600. package/dist/pactile/worktree/run-workspace-lifecycle.js +276 -0
  601. package/dist/pactile/worktree/run-workspace-lifecycle.js.map +1 -0
  602. package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/change-hooks.md +1 -1
  603. package/dist/templates/common/bundled-skills/pactile-meta/references/local-architecture/generated-files.md +1 -1
  604. package/dist/templates/common/bundled-skills/pactile-meta/references/platform-files/hooks-and-settings.md +1 -1
  605. package/dist/templates/common/bundled-skills/pactile-meta/references/platform-files/overview.md +1 -1
  606. package/dist/templates/common/bundled-skills/pactile-meta/references/platform-files/platform-map.md +1 -1
  607. package/dist/templates/common/bundled-skills/smart-search-cli/SKILL.md +2 -0
  608. package/dist/templates/common/skills/brainstorm.md +19 -13
  609. package/dist/templates/markdown/agents.md +2 -2
  610. package/dist/templates/markdown/framework/execution-strategy.md.txt +1 -1
  611. package/dist/templates/markdown/framework/index.md.txt +1 -1
  612. package/dist/templates/markdown/framework/parallel-first-execution.md.txt +17 -105
  613. package/dist/templates/markdown/framework/prd-grill-frontier.md.txt +3 -3
  614. package/dist/templates/markdown/framework/release-boundary.md.txt +9 -10
  615. package/dist/templates/markdown/framework/retrieval-daily-guide.md.txt +1 -1
  616. package/dist/templates/pactile/CONTEXT.md +48 -36
  617. package/dist/templates/pactile/modules/approval-personal/contract.md +12 -24
  618. package/dist/templates/pactile/modules/close-basic/contract.md +15 -18
  619. package/dist/templates/pactile/modules/debug-recovery/contract.md +4 -4
  620. package/dist/templates/pactile/modules/define-basic/contract.md +15 -19
  621. package/dist/templates/pactile/modules/define-extended/contract.md +3 -3
  622. package/dist/templates/pactile/modules/execute-agent/contract.md +11 -19
  623. package/dist/templates/pactile/modules/intake-basic/contract.md +16 -13
  624. package/dist/templates/pactile/modules/verify-basic/contract.md +11 -20
  625. package/dist/templates/pactile/tasks/templates/release-execution/design.md +5 -5
  626. package/dist/templates/pactile/tasks/templates/release-readiness/design.md +6 -6
  627. package/dist/templates/pactile/tasks/templates/release-readiness/handoff-template.md +8 -2
  628. package/dist/templates/pactile/workflow.md +37 -41
  629. package/dist/templates/template-utils.d.ts +1 -2
  630. package/dist/templates/template-utils.d.ts.map +1 -1
  631. package/dist/templates/template-utils.js +2 -13
  632. package/dist/templates/template-utils.js.map +1 -1
  633. package/dist/types/ai-tools.d.ts +1 -1
  634. package/dist/types/ai-tools.js +1 -1
  635. package/dist/utils/manifest-prune.js +1 -1
  636. package/dist/utils/manifest-prune.js.map +1 -1
  637. package/dist/utils/p36-upgrade.d.ts +2 -2
  638. package/dist/utils/p36-upgrade.d.ts.map +1 -1
  639. package/dist/utils/p36-upgrade.js +2 -10
  640. package/dist/utils/p36-upgrade.js.map +1 -1
  641. package/dist/utils/post-update-smoke.js +1 -1
  642. package/dist/utils/post-update-smoke.js.map +1 -1
  643. package/dist/utils/readiness.d.ts +2 -2
  644. package/dist/utils/readiness.js +2 -2
  645. package/dist/utils/uninstall-scrubbers.js +1 -1
  646. package/dist/utils/workflow-dir.d.ts +1 -1
  647. package/dist/utils/workflow-dir.d.ts.map +1 -1
  648. package/dist/utils/workflow-dir.js +1 -1
  649. package/dist/utils/workflow-dir.js.map +1 -1
  650. package/package.json +42 -37
  651. package/CHANGELOG.md +0 -651
  652. package/bin/compat-warning.js +0 -11
  653. package/bin/pactile.js +0 -3
  654. package/bin/smart-search.js +0 -38
  655. package/dist/migrations/manifests/0.1.0.json +0 -9
  656. package/dist/migrations/manifests/0.1.1.json +0 -9
  657. package/dist/migrations/manifests/0.1.2.json +0 -9
  658. package/dist/migrations/manifests/0.1.3.json +0 -9
  659. package/dist/migrations/manifests/0.1.4.json +0 -9
  660. package/dist/migrations/manifests/0.2.1.json +0 -9
  661. package/dist/migrations/manifests/0.2.10.json +0 -374
  662. package/dist/migrations/manifests/0.2.2.json +0 -9
  663. package/dist/migrations/manifests/0.2.3.json +0 -9
  664. package/dist/migrations/manifests/0.2.4.json +0 -9
  665. package/dist/migrations/manifests/0.2.5.json +0 -9
  666. package/dist/migrations/manifests/0.2.6.json +0 -9
  667. package/dist/migrations/manifests/0.2.7.json +0 -9
  668. package/dist/migrations/manifests/0.2.8.json +0 -9
  669. package/dist/migrations/manifests/0.2.9.json +0 -9
  670. package/dist/migrations/manifests/0.3.0.json +0 -89
  671. package/dist/migrations/manifests/0.3.1.json +0 -32
  672. package/dist/migrations/manifests/0.3.2.json +0 -16
  673. package/dist/migrations/manifests/0.3.3.json +0 -9
  674. package/dist/migrations/manifests/0.3.4.json +0 -9
  675. package/dist/migrations/manifests/0.3.5.json +0 -9
  676. package/dist/migrations/manifests/0.3.6.json +0 -9
  677. package/dist/migrations/manifests/0.4.0.json +0 -9
  678. package/dist/migrations/manifests/0.4.1.json +0 -9
  679. package/dist/migrations/manifests/0.4.2.json +0 -9
  680. package/dist/migrations/manifests/0.4.3.json +0 -9
  681. package/dist/migrations/manifests/0.5.0-beta.0.json +0 -9
  682. package/dist/migrations/manifests/0.5.0-beta.1.json +0 -9
  683. package/dist/migrations/manifests/0.5.0-beta.2.json +0 -9
  684. package/dist/migrations/manifests/0.5.0-beta.3.json +0 -9
  685. package/dist/migrations/manifests/0.5.0-beta.4.json +0 -9
  686. package/dist/migrations/manifests/0.5.0-beta.5.json +0 -9
  687. package/dist/migrations/manifests/0.5.0.json +0 -9
  688. package/dist/pactile/compat/retired-alternate-client.d.ts +0 -42
  689. package/dist/pactile/compat/retired-alternate-client.d.ts.map +0 -1
  690. package/dist/pactile/compat/retired-alternate-client.js +0 -153
  691. package/dist/pactile/compat/retired-alternate-client.js.map +0 -1
  692. package/dist/pactile/compat/update-residue.d.ts +0 -4
  693. package/dist/pactile/compat/update-residue.d.ts.map +0 -1
  694. package/dist/pactile/compat/update-residue.js +0 -55
  695. package/dist/pactile/compat/update-residue.js.map +0 -1
  696. package/dist/utils/cursor-retrieval-env.d.ts +0 -17
  697. package/dist/utils/cursor-retrieval-env.d.ts.map +0 -1
  698. package/dist/utils/cursor-retrieval-env.js +0 -19
  699. package/dist/utils/cursor-retrieval-env.js.map +0 -1
  700. package/dist/utils/proxy.d.ts +0 -25
  701. package/dist/utils/proxy.d.ts.map +0 -1
  702. package/dist/utils/proxy.js +0 -60
  703. package/dist/utils/proxy.js.map +0 -1
  704. package/scripts/postinstall.js +0 -6
@@ -0,0 +1,104 @@
1
+ export declare const JEV_ENDPOINT_V1 = "https://api.typesafe.ai/v1/systemone";
2
+ export declare const JEV_ORIGIN_V1 = "https://api.typesafe.ai";
3
+ export declare const MODEL_PATTERN: RegExp;
4
+ export declare const MAX_DEADLINE_MS = 5000;
5
+ export type JevQuestionV1 = {
6
+ readonly type: "noul";
7
+ readonly instructions: string;
8
+ readonly criteria?: {
9
+ readonly true?: string | null;
10
+ readonly false?: string | null;
11
+ } | null;
12
+ } | {
13
+ readonly type: "choice";
14
+ readonly instructions: string;
15
+ readonly criteria: Readonly<Record<string, string | null>>;
16
+ } | {
17
+ readonly type: "score";
18
+ readonly instructions: string;
19
+ readonly criteria: readonly (string | null)[];
20
+ };
21
+ export interface JevDecisionRequestV1 {
22
+ readonly taskSummary: string;
23
+ readonly sourceSnippets?: readonly {
24
+ readonly ref: string;
25
+ readonly text: string;
26
+ }[];
27
+ readonly questions: Readonly<Record<string, JevQuestionV1>>;
28
+ readonly model?: string;
29
+ }
30
+ export interface JevEgressAuthorizationV1 {
31
+ readonly network: "project-authorized";
32
+ readonly privacy: "project-approved-egress";
33
+ readonly credentials: "project-authorized";
34
+ readonly destination: typeof JEV_ORIGIN_V1;
35
+ readonly egressDestinations: readonly string[];
36
+ readonly contentDecision: "task-summary-approved" | "task-summary-and-snippets-approved";
37
+ }
38
+ export interface JevTransportConfigV1 {
39
+ readonly apiKey?: string;
40
+ readonly fetchImpl?: typeof fetch;
41
+ readonly deadlineMs?: number;
42
+ readonly maxRetries?: number;
43
+ }
44
+ export interface JevCallOptionsV1 {
45
+ readonly egress: JevEgressAuthorizationV1;
46
+ readonly signal?: AbortSignal;
47
+ readonly minimumDecisionConfidence?: number;
48
+ }
49
+ export type JevFallbackCodeV1 = "disabled" | "budget-exhausted" | "runtime-unsupported" | "configuration-missing" | "configuration-invalid" | "egress-denied" | "content-not-approved" | "sensitive-content" | "input-invalid" | "input-too-large" | "cancelled" | "deadline-exceeded" | "authentication" | "invalid-request" | "rate-limited" | "service-unavailable" | "http-error" | "transport-error" | "response-too-large" | "invalid-response" | "low-confidence";
50
+ export interface JevReceiptV1 {
51
+ readonly provider: "typesafe-jev";
52
+ readonly outcome: "answered" | "fallback";
53
+ readonly reasonCode: JevFallbackCodeV1 | null;
54
+ readonly attempts: number;
55
+ readonly latencyMs: number;
56
+ readonly httpStatus: number | null;
57
+ readonly requestId: string | null;
58
+ readonly model: string | null;
59
+ readonly inputTokens: number | null;
60
+ readonly outputTokens: number | null;
61
+ readonly estimatedInputCostMicrousd: number | null;
62
+ /** Provider-reported values only; unavailable entries are never inferred. */
63
+ readonly confidence: JevConfidenceReceiptV1;
64
+ }
65
+ export type JevConfidenceUnavailableReasonV1 = "not-returned" | "not-provided" | "invalid";
66
+ export type JevConfidenceValueV1 = {
67
+ readonly status: "available";
68
+ readonly value: number;
69
+ } | {
70
+ readonly status: "unavailable";
71
+ readonly reasonCode: JevConfidenceUnavailableReasonV1;
72
+ };
73
+ export type JevConfidenceReceiptV1 = Readonly<Record<string, JevConfidenceValueV1>>;
74
+ export type JevAnswerV1 = {
75
+ readonly type: "noul";
76
+ readonly noul: number;
77
+ } | {
78
+ readonly type: "choice";
79
+ readonly choice: string;
80
+ readonly confidence: number;
81
+ readonly probabilities: Readonly<Record<string, number>>;
82
+ } | {
83
+ readonly type: "score";
84
+ readonly score: number;
85
+ readonly confidence: number;
86
+ readonly probabilities: Readonly<Record<string, number>>;
87
+ readonly legend: Readonly<Record<string, string | null>>;
88
+ };
89
+ export type JevTransportResultV1 = {
90
+ readonly status: "answered";
91
+ readonly answers: Readonly<Record<string, JevAnswerV1>>;
92
+ readonly fallback: null;
93
+ readonly receipt: JevReceiptV1;
94
+ } | {
95
+ readonly status: "fallback";
96
+ readonly answers: null;
97
+ readonly fallback: {
98
+ readonly reasonCode: JevFallbackCodeV1;
99
+ readonly explanation: string;
100
+ };
101
+ readonly receipt: JevReceiptV1;
102
+ };
103
+ export declare function fail(code: JevFallbackCodeV1, info?: Partial<Omit<JevReceiptV1, "provider" | "outcome" | "reasonCode">>): JevTransportResultV1;
104
+ //# sourceMappingURL=contracts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../src/pactile/jev/contracts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ export const JEV_ENDPOINT_V1 = "https://api.typesafe.ai/v1/systemone";
2
+ export const JEV_ORIGIN_V1 = "https://api.typesafe.ai";
3
+ export const MODEL_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/u;
4
+ export const MAX_DEADLINE_MS = 5_000;
5
+ const EXPLANATION = {
6
+ disabled: "Jev is not configured; continue with the local deterministic path.",
7
+ "budget-exhausted": "The local Jev decision budget is exhausted; continue with the local deterministic path.",
8
+ "runtime-unsupported": "Jev requires Node.js 20 or newer; continue locally.",
9
+ "configuration-missing": "No Jev API key is configured; continue locally.",
10
+ "configuration-invalid": "Jev configuration is invalid; continue locally.",
11
+ "egress-denied": "Project policy does not authorize this Jev destination; continue locally.",
12
+ "content-not-approved": "Outgoing content is not approved for this destination; continue locally.",
13
+ "sensitive-content": "A credential, sensitive marker, or structured key/value field was found; nothing was sent.",
14
+ "input-invalid": "The Jev request is not a supported plain-data request; continue locally.",
15
+ "input-too-large": "The Jev request exceeds the configured content bound; continue locally.",
16
+ cancelled: "The Jev request was cancelled; continue locally.",
17
+ "deadline-exceeded": "The Jev request exceeded its total deadline; continue locally.",
18
+ authentication: "Jev rejected authentication; check local configuration and continue locally.",
19
+ "invalid-request": "Jev rejected the request shape; continue locally.",
20
+ "rate-limited": "Jev rate-limited the request; continue locally.",
21
+ "service-unavailable": "Jev is temporarily unavailable; continue locally.",
22
+ "http-error": "Jev returned an unsupported HTTP status; continue locally.",
23
+ "transport-error": "Jev could not be reached safely; continue locally.",
24
+ "response-too-large": "Jev returned a response above the configured bound; continue locally.",
25
+ "invalid-response": "Jev returned a response that failed local contract checks; continue locally.",
26
+ "low-confidence": "Jev's decision did not meet the configured confidence threshold; continue locally.",
27
+ };
28
+ export function fail(code, info = {}) {
29
+ const receipt = Object.freeze({
30
+ provider: "typesafe-jev",
31
+ outcome: "fallback",
32
+ reasonCode: code,
33
+ attempts: info.attempts ?? 0,
34
+ latencyMs: info.latencyMs ?? 0,
35
+ httpStatus: info.httpStatus ?? null,
36
+ requestId: info.requestId ?? null,
37
+ model: info.model ?? null,
38
+ inputTokens: info.inputTokens ?? null,
39
+ outputTokens: info.outputTokens ?? null,
40
+ estimatedInputCostMicrousd: info.estimatedInputCostMicrousd ?? null,
41
+ confidence: info.confidence ?? Object.freeze({}),
42
+ });
43
+ return Object.freeze({
44
+ status: "fallback",
45
+ answers: null,
46
+ fallback: Object.freeze({
47
+ reasonCode: code,
48
+ explanation: EXPLANATION[code],
49
+ }),
50
+ receipt,
51
+ });
52
+ }
53
+ //# sourceMappingURL=contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../src/pactile/jev/contracts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,sCAAsC,CAAC;AACtE,MAAM,CAAC,MAAM,aAAa,GAAG,yBAAyB,CAAC;AACvD,MAAM,CAAC,MAAM,aAAa,GAAG,oCAAoC,CAAC;AAClE,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;AAqIrC,MAAM,WAAW,GAAgD;IAC/D,QAAQ,EACN,oEAAoE;IACtE,kBAAkB,EAChB,yFAAyF;IAC3F,qBAAqB,EAAE,qDAAqD;IAC5E,uBAAuB,EAAE,iDAAiD;IAC1E,uBAAuB,EAAE,iDAAiD;IAC1E,eAAe,EACb,2EAA2E;IAC7E,sBAAsB,EACpB,0EAA0E;IAC5E,mBAAmB,EACjB,4FAA4F;IAC9F,eAAe,EACb,0EAA0E;IAC5E,iBAAiB,EACf,yEAAyE;IAC3E,SAAS,EAAE,kDAAkD;IAC7D,mBAAmB,EACjB,gEAAgE;IAClE,cAAc,EACZ,8EAA8E;IAChF,iBAAiB,EAAE,mDAAmD;IACtE,cAAc,EAAE,iDAAiD;IACjE,qBAAqB,EAAE,mDAAmD;IAC1E,YAAY,EAAE,4DAA4D;IAC1E,iBAAiB,EAAE,oDAAoD;IACvE,oBAAoB,EAClB,uEAAuE;IACzE,kBAAkB,EAChB,8EAA8E;IAChF,gBAAgB,EACd,oFAAoF;CACvF,CAAC;AAEF,MAAM,UAAU,IAAI,CAClB,IAAuB,EACvB,OAA2E,EAAE;IAE7E,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,QAAQ,EAAE,cAAuB;QACjC,OAAO,EAAE,UAAmB;QAC5B,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC;QAC5B,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC;QAC9B,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI;QACnC,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;QACjC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;QACzB,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI;QACrC,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI;QACvC,0BAA0B,EAAE,IAAI,CAAC,0BAA0B,IAAI,IAAI;QACnE,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;KACjD,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,MAAM,EAAE,UAAmB;QAC3B,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;YACtB,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC;SAC/B,CAAC;QACF,OAAO;KACR,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,58 @@
1
+ import type { JevCallOptionsV1, JevDecisionRequestV1, JevFallbackCodeV1, JevReceiptV1, JevTransportConfigV1, JevTransportResultV1 } from "./contracts.js";
2
+ export declare const JEV_DECISION_NODES_V1: readonly ["tile-selection", "task-scheduling", "execution-routing", "review-routing", "verification-planning", "retrieval-planning"];
3
+ export type JevDecisionNodeV1 = (typeof JEV_DECISION_NODES_V1)[number];
4
+ export interface JevDecisionFacadeConfigV1 {
5
+ /** Optional kill switch. A configured key and approved egress enable calls unless false. */
6
+ readonly enabled?: boolean;
7
+ /** Maximum provider decisions for this facade instance, excluding retries. */
8
+ readonly maxDecisions?: number;
9
+ /** Hard cap applied to each request deadline. */
10
+ readonly maxDeadlineMs?: number;
11
+ readonly transport?: JevTransportConfigV1;
12
+ }
13
+ export interface JevDecisionInvocationV1 {
14
+ readonly node: JevDecisionNodeV1;
15
+ readonly request: JevDecisionRequestV1;
16
+ readonly options: JevCallOptionsV1;
17
+ }
18
+ export interface JevDecisionBudgetV1 {
19
+ readonly maxDecisions: number;
20
+ readonly decisionsUsed: number;
21
+ readonly decisionsRemaining: number;
22
+ readonly maximumHttpAttempts: number;
23
+ /** Sum of the provider's reported-input-token cost estimates for this instance. */
24
+ readonly observedEstimatedInputCostMicrousd: number;
25
+ }
26
+ export interface JevDecisionReceiptV1 {
27
+ readonly schemaVersion: 1;
28
+ readonly node: JevDecisionNodeV1;
29
+ readonly transport: JevReceiptV1;
30
+ readonly budget: JevDecisionBudgetV1;
31
+ }
32
+ export type JevDecisionResultV1 = {
33
+ readonly node: JevDecisionNodeV1;
34
+ readonly status: "answered";
35
+ readonly answers: Extract<JevTransportResultV1, {
36
+ status: "answered";
37
+ }>["answers"];
38
+ readonly fallback: null;
39
+ readonly receipt: JevDecisionReceiptV1;
40
+ } | {
41
+ readonly node: JevDecisionNodeV1;
42
+ readonly status: "fallback";
43
+ readonly answers: null;
44
+ readonly fallback: {
45
+ readonly reasonCode: JevFallbackCodeV1;
46
+ readonly explanation: string;
47
+ };
48
+ readonly receipt: JevDecisionReceiptV1;
49
+ };
50
+ export interface JevDecisionFacadeV1 {
51
+ decide(input: JevDecisionInvocationV1): Promise<JevDecisionResultV1>;
52
+ }
53
+ /**
54
+ * Build an optional, bounded decision facade. It returns suggestions and
55
+ * receipts only; callers retain deterministic validation and authority.
56
+ */
57
+ export declare function createJevDecisionFacadeV1(config?: JevDecisionFacadeConfigV1): JevDecisionFacadeV1;
58
+ //# sourceMappingURL=decision.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decision.d.ts","sourceRoot":"","sources":["../../../src/pactile/jev/decision.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,gBAAgB,CAAC;AAIxB,eAAO,MAAM,qBAAqB,sIAOxB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAKvE,MAAM,WAAW,yBAAyB;IACxC,4FAA4F;IAC5F,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,8EAA8E;IAC9E,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,iDAAiD;IACjD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,oBAAoB,CAAC;CAC3C;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;CACpC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,mFAAmF;IACnF,QAAQ,CAAC,kCAAkC,EAAE,MAAM,CAAC;CACrD;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;CACtC;AAED,MAAM,MAAM,mBAAmB,GAC3B;IACE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CACvB,oBAAoB,EACpB;QAAE,MAAM,EAAE,UAAU,CAAA;KAAE,CACvB,CAAC,SAAS,CAAC,CAAC;IACb,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;CACxC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;QACvC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;KAC9B,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;CACxC,CAAC;AAEN,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACtE;AA6DD;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,GAAE,yBAA8B,GACrC,mBAAmB,CA6GrB"}
@@ -0,0 +1,149 @@
1
+ import process from "node:process";
2
+ import { fail, MAX_DEADLINE_MS } from "./contracts.js";
3
+ import { egressFailure, validateInput } from "./outbound.js";
4
+ import { createJevTransportV1 } from "./transport.js";
5
+ export const JEV_DECISION_NODES_V1 = [
6
+ "tile-selection",
7
+ "task-scheduling",
8
+ "execution-routing",
9
+ "review-routing",
10
+ "verification-planning",
11
+ "retrieval-planning",
12
+ ];
13
+ const DEFAULT_MAX_DECISIONS = 1;
14
+ const MAX_DECISIONS = 32;
15
+ function validNode(value) {
16
+ return (typeof value === "string" &&
17
+ JEV_DECISION_NODES_V1.includes(value));
18
+ }
19
+ function receiptBudget(maxDecisions, decisionsUsed, maximumHttpAttempts, observedEstimatedInputCostMicrousd) {
20
+ return Object.freeze({
21
+ maxDecisions,
22
+ decisionsUsed,
23
+ decisionsRemaining: Math.max(0, maxDecisions - decisionsUsed),
24
+ maximumHttpAttempts,
25
+ observedEstimatedInputCostMicrousd,
26
+ });
27
+ }
28
+ function withReceipt(node, result, budget) {
29
+ const receipt = Object.freeze({
30
+ schemaVersion: 1,
31
+ node,
32
+ transport: result.receipt,
33
+ budget,
34
+ });
35
+ if (result.status === "answered") {
36
+ return Object.freeze({
37
+ node,
38
+ status: "answered",
39
+ answers: result.answers,
40
+ fallback: null,
41
+ receipt,
42
+ });
43
+ }
44
+ return Object.freeze({
45
+ node,
46
+ status: "fallback",
47
+ answers: null,
48
+ fallback: result.fallback,
49
+ receipt,
50
+ });
51
+ }
52
+ function fallback(node, code, budget) {
53
+ return withReceipt(node, fail(code), budget);
54
+ }
55
+ /**
56
+ * Build an optional, bounded decision facade. It returns suggestions and
57
+ * receipts only; callers retain deterministic validation and authority.
58
+ */
59
+ export function createJevDecisionFacadeV1(config = {}) {
60
+ const requestedMaxDecisions = config.maxDecisions ?? DEFAULT_MAX_DECISIONS;
61
+ const maxDecisionsValid = Number.isSafeInteger(requestedMaxDecisions) &&
62
+ requestedMaxDecisions >= 1 &&
63
+ requestedMaxDecisions <= MAX_DECISIONS;
64
+ const maxDecisions = maxDecisionsValid
65
+ ? requestedMaxDecisions
66
+ : DEFAULT_MAX_DECISIONS;
67
+ const requestedMaxDeadlineMs = config.maxDeadlineMs ?? MAX_DEADLINE_MS;
68
+ const maxDeadlineValid = Number.isSafeInteger(requestedMaxDeadlineMs) &&
69
+ requestedMaxDeadlineMs >= 1 &&
70
+ requestedMaxDeadlineMs <= MAX_DEADLINE_MS;
71
+ const maxDeadlineMs = maxDeadlineValid
72
+ ? requestedMaxDeadlineMs
73
+ : MAX_DEADLINE_MS;
74
+ const requestedDeadlineMs = config.transport?.deadlineMs ?? 2_500;
75
+ const deadlineValid = Number.isSafeInteger(requestedDeadlineMs) &&
76
+ requestedDeadlineMs >= 1 &&
77
+ requestedDeadlineMs <= MAX_DEADLINE_MS;
78
+ const deadlineMs = deadlineValid
79
+ ? Math.min(requestedDeadlineMs, maxDeadlineMs)
80
+ : 2_500;
81
+ const requestedMaxRetries = config.transport?.maxRetries ?? 1;
82
+ const retriesValid = Number.isSafeInteger(requestedMaxRetries) &&
83
+ requestedMaxRetries >= 0 &&
84
+ requestedMaxRetries <= 1;
85
+ const maxRetries = retriesValid ? requestedMaxRetries : 1;
86
+ const enabledValid = config.enabled === undefined || typeof config.enabled === "boolean";
87
+ const configValid = enabledValid &&
88
+ maxDecisionsValid &&
89
+ maxDeadlineValid &&
90
+ deadlineValid &&
91
+ retriesValid;
92
+ const maximumHttpAttempts = maxDecisions * (maxRetries + 1);
93
+ const transportConfig = {
94
+ ...config.transport,
95
+ deadlineMs,
96
+ };
97
+ const requestTransport = createJevTransportV1(transportConfig);
98
+ let decisionsUsed = 0;
99
+ let observedEstimatedInputCostMicrousd = 0;
100
+ return Object.freeze({
101
+ async decide(input) {
102
+ const node = validNode(input?.node) ? input.node : "retrieval-planning";
103
+ const budget = () => receiptBudget(maxDecisions, decisionsUsed, maximumHttpAttempts, observedEstimatedInputCostMicrousd);
104
+ if (!configValid)
105
+ return fallback(node, "configuration-invalid", budget());
106
+ if (config.enabled === false)
107
+ return fallback(node, "disabled", budget());
108
+ if (Number(process.versions.node.split(".")[0]) < 20)
109
+ return fallback(node, "runtime-unsupported", budget());
110
+ const apiKey = config.transport?.apiKey;
111
+ if (typeof apiKey !== "string" || apiKey.length === 0)
112
+ return fallback(node, "configuration-missing", budget());
113
+ if (apiKey.length < 8 ||
114
+ apiKey.length > 512 ||
115
+ !/^[\x21-\x7E]+$/u.test(apiKey))
116
+ return fallback(node, "configuration-invalid", budget());
117
+ if (!validNode(input?.node) ||
118
+ input.request === undefined ||
119
+ input.options === undefined ||
120
+ input.options === null)
121
+ return fallback(node, "input-invalid", budget());
122
+ const checked = validateInput(input.request, apiKey);
123
+ if (!checked.ok)
124
+ return fallback(node, checked.code, budget());
125
+ const egressError = egressFailure(input.options.egress, (checked.request.sourceSnippets?.length ?? 0) > 0);
126
+ if (egressError !== null)
127
+ return fallback(node, egressError, budget());
128
+ const minimumDecisionConfidence = input.options.minimumDecisionConfidence ?? 0.65;
129
+ if (!Number.isFinite(minimumDecisionConfidence) ||
130
+ minimumDecisionConfidence < 0 ||
131
+ minimumDecisionConfidence > 1)
132
+ return fallback(node, "configuration-invalid", budget());
133
+ if (input.options.signal?.aborted)
134
+ return fallback(node, "cancelled", budget());
135
+ const fetchImpl = config.transport?.fetchImpl ?? globalThis.fetch;
136
+ if (typeof fetchImpl !== "function")
137
+ return fallback(node, "runtime-unsupported", budget());
138
+ if (decisionsUsed >= maxDecisions)
139
+ return fallback(node, "budget-exhausted", budget());
140
+ decisionsUsed += 1;
141
+ const result = await requestTransport(input.request, input.options);
142
+ const callCost = result.receipt.estimatedInputCostMicrousd;
143
+ if (callCost !== null)
144
+ observedEstimatedInputCostMicrousd += callCost;
145
+ return withReceipt(node, result, budget());
146
+ },
147
+ });
148
+ }
149
+ //# sourceMappingURL=decision.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decision.js","sourceRoot":"","sources":["../../../src/pactile/jev/decision.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { JevFallbackCodeV1 } from "./contracts.js";
2
+ export interface JevHttpMetricsV1 {
3
+ readonly attempts: number;
4
+ readonly latencyMs: number;
5
+ readonly httpStatus: number | null;
6
+ readonly requestId: string | null;
7
+ }
8
+ export type JevHttpOutcomeV1 = {
9
+ readonly ok: true;
10
+ readonly payload: unknown;
11
+ readonly metrics: JevHttpMetricsV1;
12
+ } | {
13
+ readonly ok: false;
14
+ readonly reasonCode: JevFallbackCodeV1;
15
+ readonly metrics: JevHttpMetricsV1;
16
+ };
17
+ export declare function requestJevHttpV1(input: {
18
+ readonly apiKey: string;
19
+ readonly body: string;
20
+ readonly deadlineMs: number;
21
+ readonly maxRetries: number;
22
+ readonly fetchImpl: typeof fetch;
23
+ readonly signal?: AbortSignal;
24
+ }): Promise<JevHttpOutcomeV1>;
25
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/pactile/jev/http.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAkIxD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AACD,MAAM,MAAM,gBAAgB,GACxB;IACE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;CACpC,GACD;IACE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;CACpC,CAAC;AAEN,wBAAsB,gBAAgB,CAAC,KAAK,EAAE;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,OAAO,KAAK,CAAC;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA6G5B"}
@@ -0,0 +1,234 @@
1
+ import { performance } from "node:perf_hooks";
2
+ import { isPlainOwnDataJsonTreeV3 } from "../retrieval/boundary.js";
3
+ import { JEV_ENDPOINT_V1 } from "./contracts.js";
4
+ const SAFE_HEADER_ID = /^req_[A-Za-z0-9_-]{1,76}$/u;
5
+ const MAX_RESPONSE_BYTES = 24 * 1024;
6
+ function getRequestId(response, apiKey) {
7
+ const value = response.headers.get("x-typesafe-request-id");
8
+ return value !== null && SAFE_HEADER_ID.test(value) && !value.includes(apiKey)
9
+ ? value
10
+ : null;
11
+ }
12
+ function retryDelay(response) {
13
+ const ms = response.headers.get("retry-after-ms");
14
+ if (ms !== null && /^\d{1,6}$/u.test(ms.trim()))
15
+ return Math.min(500, Number(ms.trim()));
16
+ const s = response.headers.get("retry-after");
17
+ if (s !== null && /^\d{1,3}(?:\.\d+)?$/u.test(s.trim()))
18
+ return Math.min(500, Math.max(0, Math.round(Number(s.trim()) * 1_000)));
19
+ return 100;
20
+ }
21
+ function raceAbort(promise, signal) {
22
+ return new Promise((resolve) => {
23
+ if (signal.aborted) {
24
+ resolve(null);
25
+ return;
26
+ }
27
+ let done = false;
28
+ const finish = (value) => {
29
+ if (done)
30
+ return;
31
+ done = true;
32
+ signal.removeEventListener("abort", onAbort);
33
+ resolve(value);
34
+ };
35
+ const onAbort = () => finish(null);
36
+ signal.addEventListener("abort", onAbort, { once: true });
37
+ promise.then((value) => finish(value), () => finish(null));
38
+ });
39
+ }
40
+ function cancelBody(response) {
41
+ try {
42
+ const cancellation = response.body?.cancel();
43
+ if (cancellation !== undefined)
44
+ void cancellation.catch(() => undefined);
45
+ }
46
+ catch {
47
+ /* Never retain raw transport errors. */
48
+ }
49
+ }
50
+ function cancelReader(reader) {
51
+ try {
52
+ void reader.cancel().catch(() => undefined);
53
+ }
54
+ catch {
55
+ /* Never retain raw transport errors. */
56
+ }
57
+ }
58
+ async function retryWait(ms, signal) {
59
+ return await new Promise((resolve) => {
60
+ const timer = setTimeout(() => finish(true), ms);
61
+ const finish = (complete) => {
62
+ clearTimeout(timer);
63
+ signal.removeEventListener("abort", abort);
64
+ resolve(complete);
65
+ };
66
+ const abort = () => finish(false);
67
+ if (signal.aborted)
68
+ finish(false);
69
+ else
70
+ signal.addEventListener("abort", abort, { once: true });
71
+ });
72
+ }
73
+ async function readBoundedText(response, signal) {
74
+ const length = response.headers.get("content-length");
75
+ if (length !== null &&
76
+ /^\d{1,10}$/u.test(length) &&
77
+ Number(length) > MAX_RESPONSE_BYTES) {
78
+ cancelBody(response);
79
+ return "too-large";
80
+ }
81
+ const reader = response.body?.getReader();
82
+ if (reader === undefined)
83
+ return "failed";
84
+ const chunks = [];
85
+ let total = 0;
86
+ try {
87
+ while (true) {
88
+ const item = await raceAbort(reader.read(), signal);
89
+ if (item === null) {
90
+ cancelReader(reader);
91
+ return signal.aborted ? "aborted" : "failed";
92
+ }
93
+ if (item.done)
94
+ break;
95
+ total += item.value.byteLength;
96
+ if (total > MAX_RESPONSE_BYTES) {
97
+ cancelReader(reader);
98
+ return "too-large";
99
+ }
100
+ chunks.push(item.value);
101
+ }
102
+ }
103
+ finally {
104
+ try {
105
+ reader.releaseLock();
106
+ }
107
+ catch {
108
+ /* The reader may already be closed. */
109
+ }
110
+ }
111
+ const bytes = new Uint8Array(total);
112
+ let offset = 0;
113
+ for (const chunk of chunks) {
114
+ bytes.set(chunk, offset);
115
+ offset += chunk.byteLength;
116
+ }
117
+ try {
118
+ return { text: new TextDecoder("utf-8", { fatal: true }).decode(bytes) };
119
+ }
120
+ catch {
121
+ return "failed";
122
+ }
123
+ }
124
+ export async function requestJevHttpV1(input) {
125
+ const started = performance.now();
126
+ let attempts = 0;
127
+ let status = null;
128
+ let requestId = null;
129
+ let callerCancelled = false;
130
+ let expired = false;
131
+ const controller = new AbortController();
132
+ const abortCaller = () => {
133
+ callerCancelled = true;
134
+ controller.abort();
135
+ };
136
+ input.signal?.addEventListener("abort", abortCaller, { once: true });
137
+ const deadlineTimer = setTimeout(() => {
138
+ expired = true;
139
+ controller.abort();
140
+ }, input.deadlineMs);
141
+ const latency = () => Math.max(0, Math.min(5_000, Math.round(performance.now() - started)));
142
+ const metrics = () => ({
143
+ attempts,
144
+ latencyMs: latency(),
145
+ httpStatus: status,
146
+ requestId,
147
+ });
148
+ const error = (reasonCode) => ({
149
+ ok: false,
150
+ reasonCode,
151
+ metrics: metrics(),
152
+ });
153
+ try {
154
+ for (let attempt = 0; attempt <= input.maxRetries; attempt += 1) {
155
+ if (controller.signal.aborted)
156
+ return error(callerCancelled ? "cancelled" : "deadline-exceeded");
157
+ attempts += 1;
158
+ let response;
159
+ try {
160
+ response = await raceAbort(input.fetchImpl(JEV_ENDPOINT_V1, {
161
+ method: "POST",
162
+ redirect: "error",
163
+ headers: {
164
+ authorization: "Bearer " + input.apiKey,
165
+ "content-type": "application/json",
166
+ accept: "application/json",
167
+ },
168
+ body: input.body,
169
+ signal: controller.signal,
170
+ }), controller.signal);
171
+ }
172
+ catch {
173
+ response = null;
174
+ }
175
+ if (response === null)
176
+ return error(callerCancelled
177
+ ? "cancelled"
178
+ : expired
179
+ ? "deadline-exceeded"
180
+ : "transport-error");
181
+ status = response.status;
182
+ requestId = getRequestId(response, input.apiKey);
183
+ if (!response.ok) {
184
+ cancelBody(response);
185
+ if (status === 401 || status === 403)
186
+ return error("authentication");
187
+ if (status === 422)
188
+ return error("invalid-request");
189
+ if (status === 408)
190
+ return error("deadline-exceeded");
191
+ if (status === 429 || (status >= 500 && status <= 599)) {
192
+ const code = status === 429 ? "rate-limited" : "service-unavailable";
193
+ if (attempt < input.maxRetries) {
194
+ const delay = retryDelay(response);
195
+ if (latency() + delay >= input.deadlineMs)
196
+ return error(code);
197
+ const completed = await retryWait(delay, controller.signal);
198
+ if (completed !== true)
199
+ return error(callerCancelled ? "cancelled" : "deadline-exceeded");
200
+ continue;
201
+ }
202
+ return error(code);
203
+ }
204
+ return error("http-error");
205
+ }
206
+ const contentType = response.headers.get("content-type") ?? "";
207
+ if (!/^application\/(?:[a-z0-9.+-]+\+)?json(?:\s*;|$)/iu.test(contentType))
208
+ return error("invalid-response");
209
+ const bodyResult = await readBoundedText(response, controller.signal);
210
+ if (bodyResult === "too-large")
211
+ return error("response-too-large");
212
+ if (bodyResult === "aborted")
213
+ return error(callerCancelled ? "cancelled" : "deadline-exceeded");
214
+ if (bodyResult === "failed")
215
+ return error("transport-error");
216
+ let decoded;
217
+ try {
218
+ decoded = JSON.parse(bodyResult.text);
219
+ }
220
+ catch {
221
+ return error("invalid-response");
222
+ }
223
+ if (!isPlainOwnDataJsonTreeV3(decoded))
224
+ return error("invalid-response");
225
+ return { ok: true, payload: decoded, metrics: metrics() };
226
+ }
227
+ return error("transport-error");
228
+ }
229
+ finally {
230
+ clearTimeout(deadlineTimer);
231
+ input.signal?.removeEventListener("abort", abortCaller);
232
+ }
233
+ }
234
+ //# sourceMappingURL=http.js.map