@lingjingai/scriptctl 0.63.13 → 0.63.15

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 (778) hide show
  1. package/README.md +7 -1
  2. package/changes/0.63.14.md +7 -0
  3. package/changes/0.63.15.md +15 -0
  4. package/dist/bin.js +1 -20812
  5. package/dist/chunk-3LPIMYYI.js +823 -0
  6. package/dist/cli.d.ts +214 -5
  7. package/dist/cli.js +1 -187
  8. package/dist/review-agent.js +56 -3593
  9. package/package.json +12 -5
  10. package/dist/bin.d.ts +0 -2
  11. package/dist/bin.js.map +0 -7
  12. package/dist/cli/register-authoring.d.ts +0 -4
  13. package/dist/cli/register-authoring.js +0 -35
  14. package/dist/cli/register-authoring.js.map +0 -1
  15. package/dist/cli/register-review.d.ts +0 -3
  16. package/dist/cli/register-review.js +0 -20
  17. package/dist/cli/register-review.js.map +0 -1
  18. package/dist/cli/register-script.d.ts +0 -3
  19. package/dist/cli/register-script.js +0 -297
  20. package/dist/cli/register-script.js.map +0 -1
  21. package/dist/cli/register-tools.d.ts +0 -3
  22. package/dist/cli/register-tools.js +0 -23
  23. package/dist/cli/register-tools.js.map +0 -1
  24. package/dist/cli/register-workflows.d.ts +0 -4
  25. package/dist/cli/register-workflows.js +0 -108
  26. package/dist/cli/register-workflows.js.map +0 -1
  27. package/dist/cli/registry.d.ts +0 -14
  28. package/dist/cli/registry.js +0 -65
  29. package/dist/cli/registry.js.map +0 -1
  30. package/dist/cli.js.map +0 -1
  31. package/dist/common.d.ts +0 -93
  32. package/dist/common.js +0 -240
  33. package/dist/common.js.map +0 -1
  34. package/dist/domain/authoring/apply.d.ts +0 -1
  35. package/dist/domain/authoring/apply.js +0 -2
  36. package/dist/domain/authoring/apply.js.map +0 -1
  37. package/dist/domain/authoring/export.d.ts +0 -1
  38. package/dist/domain/authoring/export.js +0 -2
  39. package/dist/domain/authoring/export.js.map +0 -1
  40. package/dist/domain/authoring/parser.d.ts +0 -2
  41. package/dist/domain/authoring/parser.js +0 -3
  42. package/dist/domain/authoring/parser.js.map +0 -1
  43. package/dist/domain/authoring/serializer.d.ts +0 -1
  44. package/dist/domain/authoring/serializer.js +0 -2
  45. package/dist/domain/authoring/serializer.js.map +0 -1
  46. package/dist/domain/authoring/shared/bracket.d.ts +0 -4
  47. package/dist/domain/authoring/shared/bracket.js +0 -95
  48. package/dist/domain/authoring/shared/bracket.js.map +0 -1
  49. package/dist/domain/authoring/shared/types.d.ts +0 -12
  50. package/dist/domain/authoring/shared/types.js +0 -2
  51. package/dist/domain/authoring/shared/types.js.map +0 -1
  52. package/dist/domain/authoring/types.d.ts +0 -2
  53. package/dist/domain/authoring/types.js +0 -3
  54. package/dist/domain/authoring/types.js.map +0 -1
  55. package/dist/domain/authoring/v3/apply.d.ts +0 -33
  56. package/dist/domain/authoring/v3/apply.js +0 -784
  57. package/dist/domain/authoring/v3/apply.js.map +0 -1
  58. package/dist/domain/authoring/v3/export.d.ts +0 -7
  59. package/dist/domain/authoring/v3/export.js +0 -85
  60. package/dist/domain/authoring/v3/export.js.map +0 -1
  61. package/dist/domain/authoring/v3/parser.d.ts +0 -3
  62. package/dist/domain/authoring/v3/parser.js +0 -823
  63. package/dist/domain/authoring/v3/parser.js.map +0 -1
  64. package/dist/domain/authoring/v3/serializer.d.ts +0 -2
  65. package/dist/domain/authoring/v3/serializer.js +0 -244
  66. package/dist/domain/authoring/v3/serializer.js.map +0 -1
  67. package/dist/domain/authoring/v3/types.d.ts +0 -76
  68. package/dist/domain/authoring/v3/types.js +0 -2
  69. package/dist/domain/authoring/v3/types.js.map +0 -1
  70. package/dist/domain/authoring/v4/apply.d.ts +0 -40
  71. package/dist/domain/authoring/v4/apply.js +0 -451
  72. package/dist/domain/authoring/v4/apply.js.map +0 -1
  73. package/dist/domain/authoring/v4/parser.d.ts +0 -2
  74. package/dist/domain/authoring/v4/parser.js +0 -729
  75. package/dist/domain/authoring/v4/parser.js.map +0 -1
  76. package/dist/domain/authoring/v4/serializer.d.ts +0 -6
  77. package/dist/domain/authoring/v4/serializer.js +0 -280
  78. package/dist/domain/authoring/v4/serializer.js.map +0 -1
  79. package/dist/domain/authoring/v4/types.d.ts +0 -50
  80. package/dist/domain/authoring/v4/types.js +0 -2
  81. package/dist/domain/authoring/v4/types.js.map +0 -1
  82. package/dist/domain/creative-draft/compose.d.ts +0 -18
  83. package/dist/domain/creative-draft/compose.js +0 -448
  84. package/dist/domain/creative-draft/compose.js.map +0 -1
  85. package/dist/domain/ingest/apply-plan.d.ts +0 -23
  86. package/dist/domain/ingest/apply-plan.js +0 -210
  87. package/dist/domain/ingest/apply-plan.js.map +0 -1
  88. package/dist/domain/ingest/assembler.d.ts +0 -65
  89. package/dist/domain/ingest/assembler.js +0 -263
  90. package/dist/domain/ingest/assembler.js.map +0 -1
  91. package/dist/domain/ingest/asset-audit.d.ts +0 -50
  92. package/dist/domain/ingest/asset-audit.js +0 -196
  93. package/dist/domain/ingest/asset-audit.js.map +0 -1
  94. package/dist/domain/ingest/chunker.d.ts +0 -9
  95. package/dist/domain/ingest/chunker.js +0 -49
  96. package/dist/domain/ingest/chunker.js.map +0 -1
  97. package/dist/domain/ingest/environment.d.ts +0 -3
  98. package/dist/domain/ingest/environment.js +0 -32
  99. package/dist/domain/ingest/environment.js.map +0 -1
  100. package/dist/domain/ingest/evidence.d.ts +0 -5
  101. package/dist/domain/ingest/evidence.js +0 -66
  102. package/dist/domain/ingest/evidence.js.map +0 -1
  103. package/dist/domain/ingest/govern.d.ts +0 -3
  104. package/dist/domain/ingest/govern.js +0 -157
  105. package/dist/domain/ingest/govern.js.map +0 -1
  106. package/dist/domain/ingest/jsonl-parser.d.ts +0 -6
  107. package/dist/domain/ingest/jsonl-parser.js +0 -204
  108. package/dist/domain/ingest/jsonl-parser.js.map +0 -1
  109. package/dist/domain/ingest/markdown-parser.d.ts +0 -6
  110. package/dist/domain/ingest/markdown-parser.js +0 -187
  111. package/dist/domain/ingest/markdown-parser.js.map +0 -1
  112. package/dist/domain/ingest/production-validation.d.ts +0 -8
  113. package/dist/domain/ingest/production-validation.js +0 -37
  114. package/dist/domain/ingest/production-validation.js.map +0 -1
  115. package/dist/domain/ingest/records.d.ts +0 -72
  116. package/dist/domain/ingest/records.js +0 -10
  117. package/dist/domain/ingest/records.js.map +0 -1
  118. package/dist/domain/ingest/renumber.d.ts +0 -14
  119. package/dist/domain/ingest/renumber.js +0 -130
  120. package/dist/domain/ingest/renumber.js.map +0 -1
  121. package/dist/domain/ingest/serial-context.d.ts +0 -93
  122. package/dist/domain/ingest/serial-context.js +0 -355
  123. package/dist/domain/ingest/serial-context.js.map +0 -1
  124. package/dist/domain/ingest/state-identity.d.ts +0 -2
  125. package/dist/domain/ingest/state-identity.js +0 -3
  126. package/dist/domain/ingest/state-identity.js.map +0 -1
  127. package/dist/domain/ingest/state-reconcile.d.ts +0 -12
  128. package/dist/domain/ingest/state-reconcile.js +0 -92
  129. package/dist/domain/ingest/state-reconcile.js.map +0 -1
  130. package/dist/domain/ingest/validation.d.ts +0 -1
  131. package/dist/domain/ingest/validation.js +0 -2
  132. package/dist/domain/ingest/validation.js.map +0 -1
  133. package/dist/domain/ingest/video-apply.d.ts +0 -4
  134. package/dist/domain/ingest/video-apply.js +0 -128
  135. package/dist/domain/ingest/video-apply.js.map +0 -1
  136. package/dist/domain/ingest/video-context.d.ts +0 -64
  137. package/dist/domain/ingest/video-context.js +0 -480
  138. package/dist/domain/ingest/video-context.js.map +0 -1
  139. package/dist/domain/ingest/video-records.d.ts +0 -57
  140. package/dist/domain/ingest/video-records.js +0 -9
  141. package/dist/domain/ingest/video-records.js.map +0 -1
  142. package/dist/domain/ingest/video-serial-md.d.ts +0 -81
  143. package/dist/domain/ingest/video-serial-md.js +0 -297
  144. package/dist/domain/ingest/video-serial-md.js.map +0 -1
  145. package/dist/domain/ingest/video-source-evolution.d.ts +0 -25
  146. package/dist/domain/ingest/video-source-evolution.js +0 -40
  147. package/dist/domain/ingest/video-source-evolution.js.map +0 -1
  148. package/dist/domain/ingest/video-state-evidence.d.ts +0 -66
  149. package/dist/domain/ingest/video-state-evidence.js +0 -385
  150. package/dist/domain/ingest/video-state-evidence.js.map +0 -1
  151. package/dist/domain/ingest/video-timestamp.d.ts +0 -8
  152. package/dist/domain/ingest/video-timestamp.js +0 -26
  153. package/dist/domain/ingest/video-timestamp.js.map +0 -1
  154. package/dist/domain/loom/checkpointer.d.ts +0 -3
  155. package/dist/domain/loom/checkpointer.js +0 -30
  156. package/dist/domain/loom/checkpointer.js.map +0 -1
  157. package/dist/domain/loom/index.d.ts +0 -45
  158. package/dist/domain/loom/index.js +0 -277
  159. package/dist/domain/loom/index.js.map +0 -1
  160. package/dist/domain/loom/types.d.ts +0 -101
  161. package/dist/domain/loom/types.js +0 -2
  162. package/dist/domain/loom/types.js.map +0 -1
  163. package/dist/domain/script/address.d.ts +0 -1
  164. package/dist/domain/script/address.js +0 -2
  165. package/dist/domain/script/address.js.map +0 -1
  166. package/dist/domain/script/dispatch.d.ts +0 -18
  167. package/dist/domain/script/dispatch.js +0 -55
  168. package/dist/domain/script/dispatch.js.map +0 -1
  169. package/dist/domain/script/lookups.d.ts +0 -1
  170. package/dist/domain/script/lookups.js +0 -2
  171. package/dist/domain/script/lookups.js.map +0 -1
  172. package/dist/domain/script/migrations/registry.d.ts +0 -4
  173. package/dist/domain/script/migrations/registry.js +0 -76
  174. package/dist/domain/script/migrations/registry.js.map +0 -1
  175. package/dist/domain/script/migrations/types.d.ts +0 -17
  176. package/dist/domain/script/migrations/types.js +0 -2
  177. package/dist/domain/script/migrations/types.js.map +0 -1
  178. package/dist/domain/script/migrations/v3-to-v4.d.ts +0 -3
  179. package/dist/domain/script/migrations/v3-to-v4.js +0 -57
  180. package/dist/domain/script/migrations/v3-to-v4.js.map +0 -1
  181. package/dist/domain/script/names.d.ts +0 -1
  182. package/dist/domain/script/names.js +0 -2
  183. package/dist/domain/script/names.js.map +0 -1
  184. package/dist/domain/script/parse.d.ts +0 -1
  185. package/dist/domain/script/parse.js +0 -2
  186. package/dist/domain/script/parse.js.map +0 -1
  187. package/dist/domain/script/patch/apply.d.ts +0 -1
  188. package/dist/domain/script/patch/apply.js +0 -2
  189. package/dist/domain/script/patch/apply.js.map +0 -1
  190. package/dist/domain/script/patch/helpers.d.ts +0 -1
  191. package/dist/domain/script/patch/helpers.js +0 -2
  192. package/dist/domain/script/patch/helpers.js.map +0 -1
  193. package/dist/domain/script/patch/inline-speaker.d.ts +0 -1
  194. package/dist/domain/script/patch/inline-speaker.js +0 -2
  195. package/dist/domain/script/patch/inline-speaker.js.map +0 -1
  196. package/dist/domain/script/patch/ops-action.d.ts +0 -1
  197. package/dist/domain/script/patch/ops-action.js +0 -2
  198. package/dist/domain/script/patch/ops-action.js.map +0 -1
  199. package/dist/domain/script/patch/ops-asset.d.ts +0 -1
  200. package/dist/domain/script/patch/ops-asset.js +0 -2
  201. package/dist/domain/script/patch/ops-asset.js.map +0 -1
  202. package/dist/domain/script/patch/ops-dialogue.d.ts +0 -1
  203. package/dist/domain/script/patch/ops-dialogue.js +0 -2
  204. package/dist/domain/script/patch/ops-dialogue.js.map +0 -1
  205. package/dist/domain/script/patch/ops-extend.d.ts +0 -1
  206. package/dist/domain/script/patch/ops-extend.js +0 -2
  207. package/dist/domain/script/patch/ops-extend.js.map +0 -1
  208. package/dist/domain/script/patch/ops-meta.d.ts +0 -1
  209. package/dist/domain/script/patch/ops-meta.js +0 -2
  210. package/dist/domain/script/patch/ops-meta.js.map +0 -1
  211. package/dist/domain/script/patch/ops-scene.d.ts +0 -1
  212. package/dist/domain/script/patch/ops-scene.js +0 -2
  213. package/dist/domain/script/patch/ops-scene.js.map +0 -1
  214. package/dist/domain/script/patch/ops-state.d.ts +0 -1
  215. package/dist/domain/script/patch/ops-state.js +0 -2
  216. package/dist/domain/script/patch/ops-state.js.map +0 -1
  217. package/dist/domain/script/patch/registry.d.ts +0 -1
  218. package/dist/domain/script/patch/registry.js +0 -2
  219. package/dist/domain/script/patch/registry.js.map +0 -1
  220. package/dist/domain/script/patch/types.d.ts +0 -1
  221. package/dist/domain/script/patch/types.js +0 -2
  222. package/dist/domain/script/patch/types.js.map +0 -1
  223. package/dist/domain/script/refs.d.ts +0 -1
  224. package/dist/domain/script/refs.js +0 -2
  225. package/dist/domain/script/refs.js.map +0 -1
  226. package/dist/domain/script/scene-refs.d.ts +0 -1
  227. package/dist/domain/script/scene-refs.js +0 -2
  228. package/dist/domain/script/scene-refs.js.map +0 -1
  229. package/dist/domain/script/schema.d.ts +0 -1
  230. package/dist/domain/script/schema.js +0 -2
  231. package/dist/domain/script/schema.js.map +0 -1
  232. package/dist/domain/script/selector.d.ts +0 -1
  233. package/dist/domain/script/selector.js +0 -2
  234. package/dist/domain/script/selector.js.map +0 -1
  235. package/dist/domain/script/shared/regex.d.ts +0 -2
  236. package/dist/domain/script/shared/regex.js +0 -7
  237. package/dist/domain/script/shared/regex.js.map +0 -1
  238. package/dist/domain/script/shared/types.d.ts +0 -1
  239. package/dist/domain/script/shared/types.js +0 -5
  240. package/dist/domain/script/shared/types.js.map +0 -1
  241. package/dist/domain/script/shared/validation.d.ts +0 -1
  242. package/dist/domain/script/shared/validation.js +0 -3
  243. package/dist/domain/script/shared/validation.js.map +0 -1
  244. package/dist/domain/script/shared.d.ts +0 -15
  245. package/dist/domain/script/shared.js +0 -35
  246. package/dist/domain/script/shared.js.map +0 -1
  247. package/dist/domain/script/text-util.d.ts +0 -7
  248. package/dist/domain/script/text-util.js +0 -95
  249. package/dist/domain/script/text-util.js.map +0 -1
  250. package/dist/domain/script/timestamp.d.ts +0 -1
  251. package/dist/domain/script/timestamp.js +0 -3
  252. package/dist/domain/script/timestamp.js.map +0 -1
  253. package/dist/domain/script/types.d.ts +0 -1
  254. package/dist/domain/script/types.js +0 -2
  255. package/dist/domain/script/types.js.map +0 -1
  256. package/dist/domain/script/v3/address.d.ts +0 -32
  257. package/dist/domain/script/v3/address.js +0 -136
  258. package/dist/domain/script/v3/address.js.map +0 -1
  259. package/dist/domain/script/v3/lookups.d.ts +0 -33
  260. package/dist/domain/script/v3/lookups.js +0 -316
  261. package/dist/domain/script/v3/lookups.js.map +0 -1
  262. package/dist/domain/script/v3/ordinal.d.ts +0 -8
  263. package/dist/domain/script/v3/ordinal.js +0 -91
  264. package/dist/domain/script/v3/ordinal.js.map +0 -1
  265. package/dist/domain/script/v3/parse.d.ts +0 -3
  266. package/dist/domain/script/v3/parse.js +0 -164
  267. package/dist/domain/script/v3/parse.js.map +0 -1
  268. package/dist/domain/script/v3/patch/apply.d.ts +0 -2
  269. package/dist/domain/script/v3/patch/apply.js +0 -31
  270. package/dist/domain/script/v3/patch/apply.js.map +0 -1
  271. package/dist/domain/script/v3/patch/helpers.d.ts +0 -15
  272. package/dist/domain/script/v3/patch/helpers.js +0 -155
  273. package/dist/domain/script/v3/patch/helpers.js.map +0 -1
  274. package/dist/domain/script/v3/patch/inline-speaker.d.ts +0 -2
  275. package/dist/domain/script/v3/patch/inline-speaker.js +0 -50
  276. package/dist/domain/script/v3/patch/inline-speaker.js.map +0 -1
  277. package/dist/domain/script/v3/patch/ops-action.d.ts +0 -12
  278. package/dist/domain/script/v3/patch/ops-action.js +0 -355
  279. package/dist/domain/script/v3/patch/ops-action.js.map +0 -1
  280. package/dist/domain/script/v3/patch/ops-asset.d.ts +0 -14
  281. package/dist/domain/script/v3/patch/ops-asset.js +0 -347
  282. package/dist/domain/script/v3/patch/ops-asset.js.map +0 -1
  283. package/dist/domain/script/v3/patch/ops-dialogue.d.ts +0 -2
  284. package/dist/domain/script/v3/patch/ops-dialogue.js +0 -21
  285. package/dist/domain/script/v3/patch/ops-dialogue.js.map +0 -1
  286. package/dist/domain/script/v3/patch/ops-extend.d.ts +0 -8
  287. package/dist/domain/script/v3/patch/ops-extend.js +0 -122
  288. package/dist/domain/script/v3/patch/ops-extend.js.map +0 -1
  289. package/dist/domain/script/v3/patch/ops-meta.d.ts +0 -5
  290. package/dist/domain/script/v3/patch/ops-meta.js +0 -82
  291. package/dist/domain/script/v3/patch/ops-meta.js.map +0 -1
  292. package/dist/domain/script/v3/patch/ops-scene.d.ts +0 -6
  293. package/dist/domain/script/v3/patch/ops-scene.js +0 -351
  294. package/dist/domain/script/v3/patch/ops-scene.js.map +0 -1
  295. package/dist/domain/script/v3/patch/ops-state.d.ts +0 -8
  296. package/dist/domain/script/v3/patch/ops-state.js +0 -155
  297. package/dist/domain/script/v3/patch/ops-state.js.map +0 -1
  298. package/dist/domain/script/v3/patch/ops-timestamp.d.ts +0 -6
  299. package/dist/domain/script/v3/patch/ops-timestamp.js +0 -47
  300. package/dist/domain/script/v3/patch/ops-timestamp.js.map +0 -1
  301. package/dist/domain/script/v3/patch/registry.d.ts +0 -2
  302. package/dist/domain/script/v3/patch/registry.js +0 -56
  303. package/dist/domain/script/v3/patch/registry.js.map +0 -1
  304. package/dist/domain/script/v3/patch/types.d.ts +0 -10
  305. package/dist/domain/script/v3/patch/types.js +0 -2
  306. package/dist/domain/script/v3/patch/types.js.map +0 -1
  307. package/dist/domain/script/v3/refs.d.ts +0 -4
  308. package/dist/domain/script/v3/refs.js +0 -64
  309. package/dist/domain/script/v3/refs.js.map +0 -1
  310. package/dist/domain/script/v3/scene-refs.d.ts +0 -3
  311. package/dist/domain/script/v3/scene-refs.js +0 -35
  312. package/dist/domain/script/v3/scene-refs.js.map +0 -1
  313. package/dist/domain/script/v3/schema.d.ts +0 -6
  314. package/dist/domain/script/v3/schema.js +0 -58
  315. package/dist/domain/script/v3/schema.js.map +0 -1
  316. package/dist/domain/script/v3/selector.d.ts +0 -44
  317. package/dist/domain/script/v3/selector.js +0 -178
  318. package/dist/domain/script/v3/selector.js.map +0 -1
  319. package/dist/domain/script/v3/types.d.ts +0 -106
  320. package/dist/domain/script/v3/types.js +0 -2
  321. package/dist/domain/script/v3/types.js.map +0 -1
  322. package/dist/domain/script/v3/validation.d.ts +0 -2
  323. package/dist/domain/script/v3/validation.js +0 -2
  324. package/dist/domain/script/v3/validation.js.map +0 -1
  325. package/dist/domain/script/v4/address.d.ts +0 -61
  326. package/dist/domain/script/v4/address.js +0 -99
  327. package/dist/domain/script/v4/address.js.map +0 -1
  328. package/dist/domain/script/v4/factory.d.ts +0 -2
  329. package/dist/domain/script/v4/factory.js +0 -13
  330. package/dist/domain/script/v4/factory.js.map +0 -1
  331. package/dist/domain/script/v4/from-v3.d.ts +0 -29
  332. package/dist/domain/script/v4/from-v3.js +0 -307
  333. package/dist/domain/script/v4/from-v3.js.map +0 -1
  334. package/dist/domain/script/v4/ids.d.ts +0 -5
  335. package/dist/domain/script/v4/ids.js +0 -41
  336. package/dist/domain/script/v4/ids.js.map +0 -1
  337. package/dist/domain/script/v4/ordinal.d.ts +0 -3
  338. package/dist/domain/script/v4/ordinal.js +0 -66
  339. package/dist/domain/script/v4/ordinal.js.map +0 -1
  340. package/dist/domain/script/v4/parse.d.ts +0 -5
  341. package/dist/domain/script/v4/parse.js +0 -196
  342. package/dist/domain/script/v4/parse.js.map +0 -1
  343. package/dist/domain/script/v4/patch/apply.d.ts +0 -3
  344. package/dist/domain/script/v4/patch/apply.js +0 -24
  345. package/dist/domain/script/v4/patch/apply.js.map +0 -1
  346. package/dist/domain/script/v4/patch/helpers.d.ts +0 -32
  347. package/dist/domain/script/v4/patch/helpers.js +0 -138
  348. package/dist/domain/script/v4/patch/helpers.js.map +0 -1
  349. package/dist/domain/script/v4/patch/ops-action.d.ts +0 -13
  350. package/dist/domain/script/v4/patch/ops-action.js +0 -351
  351. package/dist/domain/script/v4/patch/ops-action.js.map +0 -1
  352. package/dist/domain/script/v4/patch/ops-asset.d.ts +0 -17
  353. package/dist/domain/script/v4/patch/ops-asset.js +0 -556
  354. package/dist/domain/script/v4/patch/ops-asset.js.map +0 -1
  355. package/dist/domain/script/v4/patch/ops-extend.d.ts +0 -11
  356. package/dist/domain/script/v4/patch/ops-extend.js +0 -103
  357. package/dist/domain/script/v4/patch/ops-extend.js.map +0 -1
  358. package/dist/domain/script/v4/patch/ops-meta.d.ts +0 -5
  359. package/dist/domain/script/v4/patch/ops-meta.js +0 -49
  360. package/dist/domain/script/v4/patch/ops-meta.js.map +0 -1
  361. package/dist/domain/script/v4/patch/ops-scene-ref.d.ts +0 -3
  362. package/dist/domain/script/v4/patch/ops-scene-ref.js +0 -74
  363. package/dist/domain/script/v4/patch/ops-scene-ref.js.map +0 -1
  364. package/dist/domain/script/v4/patch/ops-structure.d.ts +0 -6
  365. package/dist/domain/script/v4/patch/ops-structure.js +0 -236
  366. package/dist/domain/script/v4/patch/ops-structure.js.map +0 -1
  367. package/dist/domain/script/v4/patch/ops-timestamp.d.ts +0 -6
  368. package/dist/domain/script/v4/patch/ops-timestamp.js +0 -40
  369. package/dist/domain/script/v4/patch/ops-timestamp.js.map +0 -1
  370. package/dist/domain/script/v4/patch/registry.d.ts +0 -2
  371. package/dist/domain/script/v4/patch/registry.js +0 -53
  372. package/dist/domain/script/v4/patch/registry.js.map +0 -1
  373. package/dist/domain/script/v4/patch/schema.d.ts +0 -7
  374. package/dist/domain/script/v4/patch/schema.js +0 -77
  375. package/dist/domain/script/v4/patch/schema.js.map +0 -1
  376. package/dist/domain/script/v4/patch/types.d.ts +0 -10
  377. package/dist/domain/script/v4/patch/types.js +0 -2
  378. package/dist/domain/script/v4/patch/types.js.map +0 -1
  379. package/dist/domain/script/v4/selector.d.ts +0 -11
  380. package/dist/domain/script/v4/selector.js +0 -124
  381. package/dist/domain/script/v4/selector.js.map +0 -1
  382. package/dist/domain/script/v4/types.d.ts +0 -120
  383. package/dist/domain/script/v4/types.js +0 -2
  384. package/dist/domain/script/v4/types.js.map +0 -1
  385. package/dist/domain/script/v4/validation.d.ts +0 -2
  386. package/dist/domain/script/v4/validation.js +0 -2
  387. package/dist/domain/script/v4/validation.js.map +0 -1
  388. package/dist/failures.d.ts +0 -58
  389. package/dist/failures.js +0 -96
  390. package/dist/failures.js.map +0 -1
  391. package/dist/infra/converters.d.ts +0 -9
  392. package/dist/infra/converters.js +0 -689
  393. package/dist/infra/converters.js.map +0 -1
  394. package/dist/infra/env.d.ts +0 -2
  395. package/dist/infra/env.js +0 -81
  396. package/dist/infra/env.js.map +0 -1
  397. package/dist/infra/episode-title.d.ts +0 -4
  398. package/dist/infra/episode-title.js +0 -129
  399. package/dist/infra/episode-title.js.map +0 -1
  400. package/dist/infra/ingest/review-renderer.d.ts +0 -1
  401. package/dist/infra/ingest/review-renderer.js +0 -440
  402. package/dist/infra/ingest/review-renderer.js.map +0 -1
  403. package/dist/infra/ingest/source-resolver.d.ts +0 -21
  404. package/dist/infra/ingest/source-resolver.js +0 -51
  405. package/dist/infra/ingest/source-resolver.js.map +0 -1
  406. package/dist/infra/ingest/text-reader.d.ts +0 -3
  407. package/dist/infra/ingest/text-reader.js +0 -27
  408. package/dist/infra/ingest/text-reader.js.map +0 -1
  409. package/dist/infra/ingest/video-discovery.d.ts +0 -8
  410. package/dist/infra/ingest/video-discovery.js +0 -69
  411. package/dist/infra/ingest/video-discovery.js.map +0 -1
  412. package/dist/infra/ingest/video-source-snapshot.d.ts +0 -4
  413. package/dist/infra/ingest/video-source-snapshot.js +0 -47
  414. package/dist/infra/ingest/video-source-snapshot.js.map +0 -1
  415. package/dist/infra/ingest/video-state-evidence.d.ts +0 -14
  416. package/dist/infra/ingest/video-state-evidence.js +0 -140
  417. package/dist/infra/ingest/video-state-evidence.js.map +0 -1
  418. package/dist/infra/ingest/video-transcode.d.ts +0 -7
  419. package/dist/infra/ingest/video-transcode.js +0 -98
  420. package/dist/infra/ingest/video-transcode.js.map +0 -1
  421. package/dist/infra/ingest/workspace-lock.d.ts +0 -1
  422. package/dist/infra/ingest/workspace-lock.js +0 -32
  423. package/dist/infra/ingest/workspace-lock.js.map +0 -1
  424. package/dist/infra/ingest/workspace-store.d.ts +0 -18
  425. package/dist/infra/ingest/workspace-store.js +0 -70
  426. package/dist/infra/ingest/workspace-store.js.map +0 -1
  427. package/dist/infra/llm/anthropic-model.d.ts +0 -11
  428. package/dist/infra/llm/anthropic-model.js +0 -130
  429. package/dist/infra/llm/anthropic-model.js.map +0 -1
  430. package/dist/infra/llm/doubao-model.d.ts +0 -60
  431. package/dist/infra/llm/doubao-model.js +0 -249
  432. package/dist/infra/llm/doubao-model.js.map +0 -1
  433. package/dist/infra/llm/failure-mapping.d.ts +0 -6
  434. package/dist/infra/llm/failure-mapping.js +0 -146
  435. package/dist/infra/llm/failure-mapping.js.map +0 -1
  436. package/dist/infra/llm/gemini-upload.d.ts +0 -13
  437. package/dist/infra/llm/gemini-upload.js +0 -138
  438. package/dist/infra/llm/gemini-upload.js.map +0 -1
  439. package/dist/infra/llm/gemini-video-model.d.ts +0 -50
  440. package/dist/infra/llm/gemini-video-model.js +0 -371
  441. package/dist/infra/llm/gemini-video-model.js.map +0 -1
  442. package/dist/infra/llm/openai-compatible-model.d.ts +0 -14
  443. package/dist/infra/llm/openai-compatible-model.js +0 -207
  444. package/dist/infra/llm/openai-compatible-model.js.map +0 -1
  445. package/dist/infra/llm/retry.d.ts +0 -8
  446. package/dist/infra/llm/retry.js +0 -41
  447. package/dist/infra/llm/retry.js.map +0 -1
  448. package/dist/infra/local-script-output-store.d.ts +0 -43
  449. package/dist/infra/local-script-output-store.js +0 -168
  450. package/dist/infra/local-script-output-store.js.map +0 -1
  451. package/dist/infra/script-output-api.d.ts +0 -50
  452. package/dist/infra/script-output-api.js +0 -251
  453. package/dist/infra/script-output-api.js.map +0 -1
  454. package/dist/infra/script-output-store.d.ts +0 -152
  455. package/dist/infra/script-output-store.js +0 -114
  456. package/dist/infra/script-output-store.js.map +0 -1
  457. package/dist/infra/script-working-copy.d.ts +0 -23
  458. package/dist/infra/script-working-copy.js +0 -157
  459. package/dist/infra/script-working-copy.js.map +0 -1
  460. package/dist/infra/storage.d.ts +0 -35
  461. package/dist/infra/storage.js +0 -91
  462. package/dist/infra/storage.js.map +0 -1
  463. package/dist/llm/composition.d.ts +0 -5
  464. package/dist/llm/composition.js +0 -5
  465. package/dist/llm/composition.js.map +0 -1
  466. package/dist/llm/config.d.ts +0 -28
  467. package/dist/llm/config.js +0 -231
  468. package/dist/llm/config.js.map +0 -1
  469. package/dist/llm/registry.d.ts +0 -43
  470. package/dist/llm/registry.js +0 -69
  471. package/dist/llm/registry.js.map +0 -1
  472. package/dist/llm/router.d.ts +0 -46
  473. package/dist/llm/router.js +0 -512
  474. package/dist/llm/router.js.map +0 -1
  475. package/dist/llm/tasks/ingest/arc-summary.d.ts +0 -8
  476. package/dist/llm/tasks/ingest/arc-summary.js +0 -26
  477. package/dist/llm/tasks/ingest/arc-summary.js.map +0 -1
  478. package/dist/llm/tasks/ingest/asset-audit.d.ts +0 -6
  479. package/dist/llm/tasks/ingest/asset-audit.js +0 -158
  480. package/dist/llm/tasks/ingest/asset-audit.js.map +0 -1
  481. package/dist/llm/tasks/ingest/asset-curate.d.ts +0 -13
  482. package/dist/llm/tasks/ingest/asset-curate.js +0 -45
  483. package/dist/llm/tasks/ingest/asset-curate.js.map +0 -1
  484. package/dist/llm/tasks/ingest/asset-extract.d.ts +0 -12
  485. package/dist/llm/tasks/ingest/asset-extract.js +0 -51
  486. package/dist/llm/tasks/ingest/asset-extract.js.map +0 -1
  487. package/dist/llm/tasks/ingest/asset-govern.d.ts +0 -22
  488. package/dist/llm/tasks/ingest/asset-govern.js +0 -143
  489. package/dist/llm/tasks/ingest/asset-govern.js.map +0 -1
  490. package/dist/llm/tasks/ingest/body-start.d.ts +0 -10
  491. package/dist/llm/tasks/ingest/body-start.js +0 -41
  492. package/dist/llm/tasks/ingest/body-start.js.map +0 -1
  493. package/dist/llm/tasks/ingest/episode-assets.d.ts +0 -29
  494. package/dist/llm/tasks/ingest/episode-assets.js +0 -282
  495. package/dist/llm/tasks/ingest/episode-assets.js.map +0 -1
  496. package/dist/llm/tasks/ingest/mention-resolve.d.ts +0 -9
  497. package/dist/llm/tasks/ingest/mention-resolve.js +0 -39
  498. package/dist/llm/tasks/ingest/mention-resolve.js.map +0 -1
  499. package/dist/llm/tasks/ingest/name-fix.d.ts +0 -9
  500. package/dist/llm/tasks/ingest/name-fix.js +0 -56
  501. package/dist/llm/tasks/ingest/name-fix.js.map +0 -1
  502. package/dist/llm/tasks/ingest/state-reconcile.d.ts +0 -8
  503. package/dist/llm/tasks/ingest/state-reconcile.js +0 -44
  504. package/dist/llm/tasks/ingest/state-reconcile.js.map +0 -1
  505. package/dist/llm/tasks/ingest/text-normalize.d.ts +0 -10
  506. package/dist/llm/tasks/ingest/text-normalize.js +0 -122
  507. package/dist/llm/tasks/ingest/text-normalize.js.map +0 -1
  508. package/dist/llm/tasks/ingest/video-serial.d.ts +0 -14
  509. package/dist/llm/tasks/ingest/video-serial.js +0 -391
  510. package/dist/llm/tasks/ingest/video-serial.js.map +0 -1
  511. package/dist/llm/tasks/schemas.d.ts +0 -9
  512. package/dist/llm/tasks/schemas.js +0 -466
  513. package/dist/llm/tasks/schemas.js.map +0 -1
  514. package/dist/llm/types.d.ts +0 -178
  515. package/dist/llm/types.js +0 -44
  516. package/dist/llm/types.js.map +0 -1
  517. package/dist/output.d.ts +0 -3
  518. package/dist/output.js +0 -94
  519. package/dist/output.js.map +0 -1
  520. package/dist/package-root.d.ts +0 -2
  521. package/dist/package-root.js +0 -38
  522. package/dist/package-root.js.map +0 -1
  523. package/dist/review-agent.js.map +0 -7
  524. package/dist/usecases/changelog.d.ts +0 -9
  525. package/dist/usecases/changelog.js +0 -134
  526. package/dist/usecases/changelog.js.map +0 -1
  527. package/dist/usecases/doctor.d.ts +0 -2
  528. package/dist/usecases/doctor.js +0 -231
  529. package/dist/usecases/doctor.js.map +0 -1
  530. package/dist/usecases/ingest/body-start.d.ts +0 -8
  531. package/dist/usecases/ingest/body-start.js +0 -36
  532. package/dist/usecases/ingest/body-start.js.map +0 -1
  533. package/dist/usecases/ingest/command.d.ts +0 -5
  534. package/dist/usecases/ingest/command.js +0 -183
  535. package/dist/usecases/ingest/command.js.map +0 -1
  536. package/dist/usecases/ingest/failure.d.ts +0 -26
  537. package/dist/usecases/ingest/failure.js +0 -151
  538. package/dist/usecases/ingest/failure.js.map +0 -1
  539. package/dist/usecases/ingest/fanout.d.ts +0 -10
  540. package/dist/usecases/ingest/fanout.js +0 -23
  541. package/dist/usecases/ingest/fanout.js.map +0 -1
  542. package/dist/usecases/ingest/final-asset-audit.d.ts +0 -39
  543. package/dist/usecases/ingest/final-asset-audit.js +0 -88
  544. package/dist/usecases/ingest/final-asset-audit.js.map +0 -1
  545. package/dist/usecases/ingest/generate-video-state-evidence.d.ts +0 -23
  546. package/dist/usecases/ingest/generate-video-state-evidence.js +0 -124
  547. package/dist/usecases/ingest/generate-video-state-evidence.js.map +0 -1
  548. package/dist/usecases/ingest/pass4-mention-resolve.d.ts +0 -11
  549. package/dist/usecases/ingest/pass4-mention-resolve.js +0 -52
  550. package/dist/usecases/ingest/pass4-mention-resolve.js.map +0 -1
  551. package/dist/usecases/ingest/pass5-extract.d.ts +0 -7
  552. package/dist/usecases/ingest/pass5-extract.js +0 -51
  553. package/dist/usecases/ingest/pass5-extract.js.map +0 -1
  554. package/dist/usecases/ingest/pass5-govern.d.ts +0 -13
  555. package/dist/usecases/ingest/pass5-govern.js +0 -157
  556. package/dist/usecases/ingest/pass5-govern.js.map +0 -1
  557. package/dist/usecases/ingest/pipeline.d.ts +0 -28
  558. package/dist/usecases/ingest/pipeline.js +0 -335
  559. package/dist/usecases/ingest/pipeline.js.map +0 -1
  560. package/dist/usecases/ingest/publish-command.d.ts +0 -1
  561. package/dist/usecases/ingest/publish-command.js +0 -4
  562. package/dist/usecases/ingest/publish-command.js.map +0 -1
  563. package/dist/usecases/ingest/serial-govern.d.ts +0 -40
  564. package/dist/usecases/ingest/serial-govern.js +0 -488
  565. package/dist/usecases/ingest/serial-govern.js.map +0 -1
  566. package/dist/usecases/ingest/skip-video-episode.d.ts +0 -4
  567. package/dist/usecases/ingest/skip-video-episode.js +0 -120
  568. package/dist/usecases/ingest/skip-video-episode.js.map +0 -1
  569. package/dist/usecases/ingest/status.d.ts +0 -61
  570. package/dist/usecases/ingest/status.js +0 -347
  571. package/dist/usecases/ingest/status.js.map +0 -1
  572. package/dist/usecases/ingest/timings.d.ts +0 -51
  573. package/dist/usecases/ingest/timings.js +0 -68
  574. package/dist/usecases/ingest/timings.js.map +0 -1
  575. package/dist/usecases/ingest/usage-report.d.ts +0 -125
  576. package/dist/usecases/ingest/usage-report.js +0 -248
  577. package/dist/usecases/ingest/usage-report.js.map +0 -1
  578. package/dist/usecases/ingest/video-pipeline.d.ts +0 -81
  579. package/dist/usecases/ingest/video-pipeline.js +0 -547
  580. package/dist/usecases/ingest/video-pipeline.js.map +0 -1
  581. package/dist/usecases/ingest/video-skip-state.d.ts +0 -29
  582. package/dist/usecases/ingest/video-skip-state.js +0 -148
  583. package/dist/usecases/ingest/video-skip-state.js.map +0 -1
  584. package/dist/usecases/ingest/view-command.d.ts +0 -4
  585. package/dist/usecases/ingest/view-command.js +0 -67
  586. package/dist/usecases/ingest/view-command.js.map +0 -1
  587. package/dist/usecases/ingest/view-server.d.ts +0 -29
  588. package/dist/usecases/ingest/view-server.js +0 -364
  589. package/dist/usecases/ingest/view-server.js.map +0 -1
  590. package/dist/usecases/script/action-span.d.ts +0 -10
  591. package/dist/usecases/script/action-span.js +0 -42
  592. package/dist/usecases/script/action-span.js.map +0 -1
  593. package/dist/usecases/script/actions.d.ts +0 -3
  594. package/dist/usecases/script/actions.js +0 -184
  595. package/dist/usecases/script/actions.js.map +0 -1
  596. package/dist/usecases/script/actor.d.ts +0 -3
  597. package/dist/usecases/script/actor.js +0 -26
  598. package/dist/usecases/script/actor.js.map +0 -1
  599. package/dist/usecases/script/actors.d.ts +0 -3
  600. package/dist/usecases/script/actors.js +0 -25
  601. package/dist/usecases/script/actors.js.map +0 -1
  602. package/dist/usecases/script/add-actor.d.ts +0 -3
  603. package/dist/usecases/script/add-actor.js +0 -13
  604. package/dist/usecases/script/add-actor.js.map +0 -1
  605. package/dist/usecases/script/add-episode.d.ts +0 -3
  606. package/dist/usecases/script/add-episode.js +0 -9
  607. package/dist/usecases/script/add-episode.js.map +0 -1
  608. package/dist/usecases/script/add-location.d.ts +0 -3
  609. package/dist/usecases/script/add-location.js +0 -11
  610. package/dist/usecases/script/add-location.js.map +0 -1
  611. package/dist/usecases/script/add-prop.d.ts +0 -3
  612. package/dist/usecases/script/add-prop.js +0 -11
  613. package/dist/usecases/script/add-prop.js.map +0 -1
  614. package/dist/usecases/script/alias.d.ts +0 -3
  615. package/dist/usecases/script/alias.js +0 -39
  616. package/dist/usecases/script/alias.js.map +0 -1
  617. package/dist/usecases/script/assets.d.ts +0 -3
  618. package/dist/usecases/script/assets.js +0 -46
  619. package/dist/usecases/script/assets.js.map +0 -1
  620. package/dist/usecases/script/audit-assets.d.ts +0 -4
  621. package/dist/usecases/script/audit-assets.js +0 -37
  622. package/dist/usecases/script/audit-assets.js.map +0 -1
  623. package/dist/usecases/script/command-constraints.d.ts +0 -38
  624. package/dist/usecases/script/command-constraints.js +0 -143
  625. package/dist/usecases/script/command-constraints.js.map +0 -1
  626. package/dist/usecases/script/compose-creative-draft.d.ts +0 -3
  627. package/dist/usecases/script/compose-creative-draft.js +0 -106
  628. package/dist/usecases/script/compose-creative-draft.js.map +0 -1
  629. package/dist/usecases/script/context.d.ts +0 -3
  630. package/dist/usecases/script/context.js +0 -52
  631. package/dist/usecases/script/context.js.map +0 -1
  632. package/dist/usecases/script/create.d.ts +0 -3
  633. package/dist/usecases/script/create.js +0 -27
  634. package/dist/usecases/script/create.js.map +0 -1
  635. package/dist/usecases/script/delete.d.ts +0 -3
  636. package/dist/usecases/script/delete.js +0 -88
  637. package/dist/usecases/script/delete.js.map +0 -1
  638. package/dist/usecases/script/describe.d.ts +0 -3
  639. package/dist/usecases/script/describe.js +0 -32
  640. package/dist/usecases/script/describe.js.map +0 -1
  641. package/dist/usecases/script/dialogue.d.ts +0 -3
  642. package/dist/usecases/script/dialogue.js +0 -30
  643. package/dist/usecases/script/dialogue.js.map +0 -1
  644. package/dist/usecases/script/dispatch.d.ts +0 -3
  645. package/dist/usecases/script/dispatch.js +0 -10
  646. package/dist/usecases/script/dispatch.js.map +0 -1
  647. package/dist/usecases/script/do.d.ts +0 -3
  648. package/dist/usecases/script/do.js +0 -186
  649. package/dist/usecases/script/do.js.map +0 -1
  650. package/dist/usecases/script/emotion.d.ts +0 -3
  651. package/dist/usecases/script/emotion.js +0 -24
  652. package/dist/usecases/script/emotion.js.map +0 -1
  653. package/dist/usecases/script/episodes.d.ts +0 -3
  654. package/dist/usecases/script/episodes.js +0 -62
  655. package/dist/usecases/script/episodes.js.map +0 -1
  656. package/dist/usecases/script/export-authoring.d.ts +0 -4
  657. package/dist/usecases/script/export-authoring.js +0 -326
  658. package/dist/usecases/script/export-authoring.js.map +0 -1
  659. package/dist/usecases/script/extend.d.ts +0 -3
  660. package/dist/usecases/script/extend.js +0 -94
  661. package/dist/usecases/script/extend.js.map +0 -1
  662. package/dist/usecases/script/ids.d.ts +0 -3
  663. package/dist/usecases/script/ids.js +0 -148
  664. package/dist/usecases/script/ids.js.map +0 -1
  665. package/dist/usecases/script/importance.d.ts +0 -3
  666. package/dist/usecases/script/importance.js +0 -16
  667. package/dist/usecases/script/importance.js.map +0 -1
  668. package/dist/usecases/script/insert.d.ts +0 -3
  669. package/dist/usecases/script/insert.js +0 -127
  670. package/dist/usecases/script/insert.js.map +0 -1
  671. package/dist/usecases/script/issues.d.ts +0 -3
  672. package/dist/usecases/script/issues.js +0 -35
  673. package/dist/usecases/script/issues.js.map +0 -1
  674. package/dist/usecases/script/lib.d.ts +0 -152
  675. package/dist/usecases/script/lib.js +0 -1654
  676. package/dist/usecases/script/lib.js.map +0 -1
  677. package/dist/usecases/script/locations.d.ts +0 -3
  678. package/dist/usecases/script/locations.js +0 -25
  679. package/dist/usecases/script/locations.js.map +0 -1
  680. package/dist/usecases/script/merge.d.ts +0 -3
  681. package/dist/usecases/script/merge.js +0 -43
  682. package/dist/usecases/script/merge.js.map +0 -1
  683. package/dist/usecases/script/migrate.d.ts +0 -3
  684. package/dist/usecases/script/migrate.js +0 -210
  685. package/dist/usecases/script/migrate.js.map +0 -1
  686. package/dist/usecases/script/move.d.ts +0 -3
  687. package/dist/usecases/script/move.js +0 -50
  688. package/dist/usecases/script/move.js.map +0 -1
  689. package/dist/usecases/script/parenthetical.d.ts +0 -3
  690. package/dist/usecases/script/parenthetical.js +0 -52
  691. package/dist/usecases/script/parenthetical.js.map +0 -1
  692. package/dist/usecases/script/props.d.ts +0 -3
  693. package/dist/usecases/script/props.js +0 -25
  694. package/dist/usecases/script/props.js.map +0 -1
  695. package/dist/usecases/script/refs.d.ts +0 -3
  696. package/dist/usecases/script/refs.js +0 -111
  697. package/dist/usecases/script/refs.js.map +0 -1
  698. package/dist/usecases/script/rename.d.ts +0 -3
  699. package/dist/usecases/script/rename.js +0 -35
  700. package/dist/usecases/script/rename.js.map +0 -1
  701. package/dist/usecases/script/replace.d.ts +0 -3
  702. package/dist/usecases/script/replace.js +0 -33
  703. package/dist/usecases/script/replace.js.map +0 -1
  704. package/dist/usecases/script/review.d.ts +0 -3
  705. package/dist/usecases/script/review.js +0 -187
  706. package/dist/usecases/script/review.js.map +0 -1
  707. package/dist/usecases/script/role.d.ts +0 -3
  708. package/dist/usecases/script/role.js +0 -16
  709. package/dist/usecases/script/role.js.map +0 -1
  710. package/dist/usecases/script/scenes.d.ts +0 -3
  711. package/dist/usecases/script/scenes.js +0 -66
  712. package/dist/usecases/script/scenes.js.map +0 -1
  713. package/dist/usecases/script/script-patch.d.ts +0 -3
  714. package/dist/usecases/script/script-patch.js +0 -321
  715. package/dist/usecases/script/script-patch.js.map +0 -1
  716. package/dist/usecases/script/script-validate.d.ts +0 -3
  717. package/dist/usecases/script/script-validate.js +0 -27
  718. package/dist/usecases/script/script-validate.js.map +0 -1
  719. package/dist/usecases/script/session.d.ts +0 -62
  720. package/dist/usecases/script/session.js +0 -567
  721. package/dist/usecases/script/session.js.map +0 -1
  722. package/dist/usecases/script/split.d.ts +0 -3
  723. package/dist/usecases/script/split.js +0 -41
  724. package/dist/usecases/script/split.js.map +0 -1
  725. package/dist/usecases/script/state-add.d.ts +0 -3
  726. package/dist/usecases/script/state-add.js +0 -22
  727. package/dist/usecases/script/state-add.js.map +0 -1
  728. package/dist/usecases/script/state-delete.d.ts +0 -3
  729. package/dist/usecases/script/state-delete.js +0 -22
  730. package/dist/usecases/script/state-delete.js.map +0 -1
  731. package/dist/usecases/script/state-rename.d.ts +0 -3
  732. package/dist/usecases/script/state-rename.js +0 -16
  733. package/dist/usecases/script/state-rename.js.map +0 -1
  734. package/dist/usecases/script/states.d.ts +0 -3
  735. package/dist/usecases/script/states.js +0 -197
  736. package/dist/usecases/script/states.js.map +0 -1
  737. package/dist/usecases/script/summary.d.ts +0 -3
  738. package/dist/usecases/script/summary.js +0 -72
  739. package/dist/usecases/script/summary.js.map +0 -1
  740. package/dist/usecases/script/synopsis-generate.d.ts +0 -115
  741. package/dist/usecases/script/synopsis-generate.js +0 -776
  742. package/dist/usecases/script/synopsis-generate.js.map +0 -1
  743. package/dist/usecases/script/synopsis.d.ts +0 -3
  744. package/dist/usecases/script/synopsis.js +0 -45
  745. package/dist/usecases/script/synopsis.js.map +0 -1
  746. package/dist/usecases/script/timestamp-filter.d.ts +0 -4
  747. package/dist/usecases/script/timestamp-filter.js +0 -55
  748. package/dist/usecases/script/timestamp-filter.js.map +0 -1
  749. package/dist/usecases/script/timestamp.d.ts +0 -3
  750. package/dist/usecases/script/timestamp.js +0 -11
  751. package/dist/usecases/script/timestamp.js.map +0 -1
  752. package/dist/usecases/script/transition.d.ts +0 -3
  753. package/dist/usecases/script/transition.js +0 -23
  754. package/dist/usecases/script/transition.js.map +0 -1
  755. package/dist/usecases/script/type.d.ts +0 -3
  756. package/dist/usecases/script/type.js +0 -23
  757. package/dist/usecases/script/type.js.map +0 -1
  758. package/dist/usecases/script/v3/mutations.d.ts +0 -2
  759. package/dist/usecases/script/v3/mutations.js +0 -5
  760. package/dist/usecases/script/v3/mutations.js.map +0 -1
  761. package/dist/usecases/script/v4/mutations.d.ts +0 -2
  762. package/dist/usecases/script/v4/mutations.js +0 -6
  763. package/dist/usecases/script/v4/mutations.js.map +0 -1
  764. package/dist/usecases/script/v4/queries.d.ts +0 -15
  765. package/dist/usecases/script/v4/queries.js +0 -196
  766. package/dist/usecases/script/v4/queries.js.map +0 -1
  767. package/dist/usecases/script/working-copy.d.ts +0 -5
  768. package/dist/usecases/script/working-copy.js +0 -399
  769. package/dist/usecases/script/working-copy.js.map +0 -1
  770. package/dist/usecases/script/worldview.d.ts +0 -3
  771. package/dist/usecases/script/worldview.js +0 -17
  772. package/dist/usecases/script/worldview.js.map +0 -1
  773. package/dist/usecases/script/write-authoring.d.ts +0 -3
  774. package/dist/usecases/script/write-authoring.js +0 -263
  775. package/dist/usecases/script/write-authoring.js.map +0 -1
  776. package/dist/usecases/update.d.ts +0 -13
  777. package/dist/usecases/update.js +0 -128
  778. package/dist/usecases/update.js.map +0 -1
@@ -1,207 +0,0 @@
1
- import { LlmTransportError, } from "../../llm/types.js";
2
- import { addTokenUsage, withTransientRetry } from "./retry.js";
3
- // Token accounting from an OpenAI-shaped usage object. IMPORTANT: our gateway
4
- // (LiteLLM/aihubmix fronting Anthropic) reports Anthropic-style semantics through
5
- // OpenAI-shaped fields — prompt_tokens is FRESH (non-cached) input only, and
6
- // cached_tokens / cache_creation_tokens are SEPARATE additive buckets (verified: a
7
- // response with prompt_tokens=48 carried cached_tokens=640, impossible under a subset
8
- // model). So total input = prompt_tokens + cached + creation. cached/creation are then
9
- // reported as subsets of that total (matching TokenUsage's contract), so downstream
10
- // can price the cheap cache-read and pricey cache-creation portions separately.
11
- // (A true OpenAI endpoint folds cached into prompt_tokens; if we ever add one, gate on
12
- // provider protocol here. Today every profile routes through the Anthropic-style gateway.)
13
- function usageOf(payload) {
14
- if (!isRecord(payload) || !isRecord(payload["usage"]))
15
- return {};
16
- const u = payload["usage"];
17
- const num = (v) => {
18
- const n = typeof v === "number" ? v : 0;
19
- return Number.isFinite(n) ? n : 0;
20
- };
21
- const details = isRecord(u["prompt_tokens_details"]) ? u["prompt_tokens_details"] : {};
22
- const fresh = num(u["prompt_tokens"]);
23
- const cached = num(details["cached_tokens"]) || num(u["cache_read_input_tokens"]);
24
- const created = num(details["cache_creation_tokens"]) || num(u["cache_creation_input_tokens"]);
25
- return {
26
- inputTokens: fresh + cached + created,
27
- outputTokens: num(u["completion_tokens"]),
28
- cachedInputTokens: cached,
29
- cacheCreationTokens: created,
30
- };
31
- }
32
- function isRecord(value) {
33
- return typeof value === "object" && value !== null && !Array.isArray(value);
34
- }
35
- function endpoint(baseUrl) {
36
- const base = baseUrl.trim().replace(/\/+$/, "");
37
- if (base.endsWith("/chat/completions"))
38
- return base;
39
- if (base.endsWith("/v1"))
40
- return `${base}/chat/completions`;
41
- return `${base}/v1/chat/completions`;
42
- }
43
- function firstChoice(payload) {
44
- if (!isRecord(payload) || !Array.isArray(payload["choices"]))
45
- return null;
46
- return payload["choices"].find(isRecord) ?? null;
47
- }
48
- function finishReason(choice) {
49
- return choice && typeof choice["finish_reason"] === "string" ? choice["finish_reason"] : "";
50
- }
51
- function message(choice) {
52
- return choice && isRecord(choice["message"]) ? choice["message"] : null;
53
- }
54
- function messageText(choice) {
55
- const content = message(choice)?.["content"];
56
- if (typeof content === "string")
57
- return content.trim();
58
- if (!Array.isArray(content))
59
- return "";
60
- return content.flatMap((part) => isRecord(part) && typeof part["text"] === "string" ? [part["text"]] : []).join("\n").trim();
61
- }
62
- function parseJson(raw) {
63
- try {
64
- return JSON.parse(raw);
65
- }
66
- catch {
67
- throw new LlmTransportError("invalid_response", "Provider returned invalid JSON.", { details: [raw.slice(0, 500)] });
68
- }
69
- }
70
- export class OpenAiCompatibleModel {
71
- provider;
72
- model;
73
- apiKey;
74
- url;
75
- host;
76
- constructor(provider, model, apiKey) {
77
- this.provider = provider;
78
- this.model = model;
79
- this.apiKey = apiKey;
80
- // A null baseUrl means the endpoint env var never resolved (the built-in
81
- // `gw` provider reads PROJECT_LITELLM_GATEWAY_BASE_URL). Name it so the
82
- // failure is self-diagnosing instead of a generic "request failed".
83
- if (!provider.baseUrl) {
84
- throw new LlmTransportError("endpoint", "OpenAI-compatible provider endpoint (baseUrl) is not set — the built-in gateway reads PROJECT_LITELLM_GATEWAY_BASE_URL.");
85
- }
86
- this.url = endpoint(provider.baseUrl);
87
- try {
88
- this.host = new URL(this.url).host;
89
- }
90
- catch {
91
- this.host = this.url;
92
- }
93
- }
94
- async post(body, signal) {
95
- const result = await withTransientRetry(this.provider.maxAttempts, async () => {
96
- const timeoutSignal = AbortSignal.timeout(this.provider.timeoutMs);
97
- const combinedSignal = signal ? AbortSignal.any([signal, timeoutSignal]) : timeoutSignal;
98
- let response;
99
- try {
100
- response = await fetch(this.url, {
101
- method: "POST",
102
- headers: { authorization: `Bearer ${this.apiKey}`, "content-type": "application/json" },
103
- body: JSON.stringify(body),
104
- signal: combinedSignal,
105
- });
106
- }
107
- catch (error) {
108
- const message = error instanceof Error ? error.message : String(error);
109
- const timeout = combinedSignal.aborted && !signal?.aborted;
110
- // Put the transport cause + endpoint host in the MESSAGE (not just
111
- // redacted details) so it survives into the per-unit error sidecar and
112
- // the agent can tell "host unreachable" from "auth" without debug mode.
113
- // The network message and host are not secrets; the api key never is.
114
- throw new LlmTransportError(timeout ? "timeout" : "request_failed", timeout
115
- ? `OpenAI-compatible request timed out reaching ${this.host}.`
116
- : `OpenAI-compatible request could not reach ${this.host}: ${message}`, { retryable: !signal?.aborted, details: [message.slice(0, 500)] });
117
- }
118
- const raw = await response.text();
119
- if (!response.ok) {
120
- const retryable = response.status === 408 || response.status === 429 || response.status >= 500;
121
- const code = response.status === 401 || response.status === 403 ? "auth" : response.status === 429 ? "rate_limited" : "request_failed";
122
- throw new LlmTransportError(code, `OpenAI-compatible request to ${this.host} failed (status ${response.status}).`, {
123
- retryable,
124
- details: [`status: ${response.status}`, raw.slice(0, 500)],
125
- });
126
- }
127
- return parseJson(raw);
128
- });
129
- return { payload: result.value, attempts: result.attempts, failedUsage: result.failedUsage };
130
- }
131
- baseBody(request) {
132
- const messages = [];
133
- if (request.system.trim())
134
- messages.push({ role: "system", content: request.system });
135
- messages.push({ role: "user", content: request.user });
136
- return {
137
- model: this.model.model,
138
- messages,
139
- ...(request.responseFormat === "json_object" ? { response_format: { type: "json_object" } } : {}),
140
- ...(this.model.reasoning ? { reasoning_effort: this.model.reasoning } : {}),
141
- ...(this.model.temperature !== undefined ? { temperature: this.model.temperature } : {}),
142
- };
143
- }
144
- async generateText(request) {
145
- const { payload, attempts, failedUsage } = await this.post(this.baseBody(request), request.signal);
146
- const usage = addTokenUsage(failedUsage, usageOf(payload));
147
- try {
148
- const choice = firstChoice(payload);
149
- const reason = finishReason(choice);
150
- if (reason === "length")
151
- throw new LlmTransportError("truncated", "Provider output was truncated.");
152
- if (reason === "content_filter" || reason.startsWith("content_filter:"))
153
- throw new LlmTransportError("content_filtered", `Provider filtered the response (${reason}).`);
154
- const text = messageText(choice);
155
- if (!text)
156
- throw new LlmTransportError("empty_response", "Provider returned an empty text response.");
157
- return { text, finishReason: reason, attempts, usage, raw: payload };
158
- }
159
- catch (error) {
160
- if (error instanceof LlmTransportError) {
161
- error.attempts = attempts;
162
- error.usage = usage;
163
- }
164
- throw error;
165
- }
166
- }
167
- async generateTool(request) {
168
- const { payload, attempts, failedUsage } = await this.post({
169
- ...this.baseBody(request),
170
- tools: [{
171
- type: "function",
172
- function: { name: request.tool.name, description: request.tool.description, parameters: request.tool.inputSchema },
173
- }],
174
- tool_choice: { type: "function", function: { name: request.tool.name } },
175
- parallel_tool_calls: false,
176
- }, request.signal);
177
- const usage = addTokenUsage(failedUsage, usageOf(payload));
178
- try {
179
- const choice = firstChoice(payload);
180
- const reason = finishReason(choice);
181
- if (reason === "length")
182
- throw new LlmTransportError("truncated", "Provider tool output was truncated.");
183
- if (reason === "content_filter" || reason.startsWith("content_filter:"))
184
- throw new LlmTransportError("content_filtered", `Provider filtered the response (${reason}).`);
185
- const calls = message(choice)?.["tool_calls"];
186
- if (!Array.isArray(calls))
187
- throw new LlmTransportError("invalid_response", "Provider did not return a tool call.");
188
- for (const call of calls) {
189
- if (!isRecord(call) || !isRecord(call["function"]))
190
- continue;
191
- const fn = call["function"];
192
- if (fn["name"] !== request.tool.name || typeof fn["arguments"] !== "string")
193
- continue;
194
- return { input: parseJson(fn["arguments"]), finishReason: reason, attempts, usage, raw: payload };
195
- }
196
- throw new LlmTransportError("invalid_response", "Provider did not return the required tool call.");
197
- }
198
- catch (error) {
199
- if (error instanceof LlmTransportError) {
200
- error.attempts = attempts;
201
- error.usage = usage;
202
- }
203
- throw error;
204
- }
205
- }
206
- }
207
- //# sourceMappingURL=openai-compatible-model.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai-compatible-model.js","sourceRoot":"","sources":["../../../src/infra/llm/openai-compatible-model.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,GAOlB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAI/D,8EAA8E;AAC9E,kFAAkF;AAClF,6EAA6E;AAC7E,mFAAmF;AACnF,sFAAsF;AACtF,uFAAuF;AACvF,oFAAoF;AACpF,gFAAgF;AAChF,uFAAuF;AACvF,2FAA2F;AAC3F,SAAS,OAAO,CAAC,OAAgB;IAC/B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IACjE,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3B,MAAM,GAAG,GAAG,CAAC,CAAU,EAAU,EAAE;QACjC,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvF,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAClF,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC;IAC/F,OAAO;QACL,WAAW,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO;QACrC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;QACzC,iBAAiB,EAAE,MAAM;QACzB,mBAAmB,EAAE,OAAO;KAC7B,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe;IAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAChD,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAAE,OAAO,IAAI,CAAC;IACpD,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,GAAG,IAAI,mBAAmB,CAAC;IAC5D,OAAO,GAAG,IAAI,sBAAsB,CAAC;AACvC,CAAC;AAED,SAAS,WAAW,CAAC,OAAgB;IACnC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1E,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;AACnD,CAAC;AAED,SAAS,YAAY,CAAC,MAA4B;IAChD,OAAO,MAAM,IAAI,OAAO,MAAM,CAAC,eAAe,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9F,CAAC;AAED,SAAS,OAAO,CAAC,MAA4B;IAC3C,OAAO,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1E,CAAC;AAED,SAAS,WAAW,CAAC,MAA4B;IAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;IAC7C,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;IACvD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AAC/H,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC5B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,iBAAiB,CAAC,kBAAkB,EAAE,iCAAiC,EAAE,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACvH,CAAC;AACH,CAAC;AAED,MAAM,OAAO,qBAAqB;IAKb;IACA;IACA;IANF,GAAG,CAAS;IACZ,IAAI,CAAS;IAE9B,YACmB,QAA2B,EAC3B,KAAqB,EACrB,MAAc;QAFd,aAAQ,GAAR,QAAQ,CAAmB;QAC3B,UAAK,GAAL,KAAK,CAAgB;QACrB,WAAM,GAAN,MAAM,CAAQ;QAE/B,yEAAyE;QACzE,wEAAwE;QACxE,oEAAoE;QACpE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,MAAM,IAAI,iBAAiB,CAAC,UAAU,EAAE,yHAAyH,CAAC,CAAC;QACrK,CAAC;QACD,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;QACvB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,IAAI,CAAC,IAAmB,EAAE,MAAoB;QAC1D,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;YAC5E,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACnE,MAAM,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YACzF,IAAI,QAAkB,CAAC;YACvB,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;oBAC/B,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;oBACvF,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;oBAC1B,MAAM,EAAE,cAAc;iBACvB,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvE,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;gBAC3D,mEAAmE;gBACnE,uEAAuE;gBACvE,wEAAwE;gBACxE,sEAAsE;gBACtE,MAAM,IAAI,iBAAiB,CACzB,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,EACtC,OAAO;oBACL,CAAC,CAAC,gDAAgD,IAAI,CAAC,IAAI,GAAG;oBAC9D,CAAC,CAAC,6CAA6C,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,EACxE,EAAE,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAClE,CAAC;YACJ,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC;gBAC/F,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,gBAAgB,CAAC;gBACvI,MAAM,IAAI,iBAAiB,CAAC,IAAI,EAAE,gCAAgC,IAAI,CAAC,IAAI,mBAAmB,QAAQ,CAAC,MAAM,IAAI,EAAE;oBACjH,SAAS;oBACT,OAAO,EAAE,CAAC,WAAW,QAAQ,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;iBAC3D,CAAC,CAAC;YACL,CAAC;YACD,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;IAC/F,CAAC;IAEO,QAAQ,CAAC,OAA8B;QAC7C,MAAM,QAAQ,GAAwD,EAAE,CAAC;QACzE,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;YAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACtF,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACvD,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;YACvB,QAAQ;YACR,GAAG,CAAC,OAAO,CAAC,cAAc,KAAK,aAAa,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAA8B;QAC/C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACnG,MAAM,KAAK,GAAG,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;YACpC,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,MAAM,KAAK,QAAQ;gBAAE,MAAM,IAAI,iBAAiB,CAAC,WAAW,EAAE,gCAAgC,CAAC,CAAC;YACpG,IAAI,MAAM,KAAK,gBAAgB,IAAI,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC;gBAAE,MAAM,IAAI,iBAAiB,CAAC,kBAAkB,EAAE,mCAAmC,MAAM,IAAI,CAAC,CAAC;YACxK,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;YACjC,IAAI,CAAC,IAAI;gBAAE,MAAM,IAAI,iBAAiB,CAAC,gBAAgB,EAAE,2CAA2C,CAAC,CAAC;YACtG,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;QACvE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;gBACvC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBAC1B,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;YACtB,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAA8B;QAC/C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;YACzD,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YACzB,KAAK,EAAE,CAAC;oBACN,IAAI,EAAE,UAAU;oBAChB,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE;iBACnH,CAAC;YACF,WAAW,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE;YACxE,mBAAmB,EAAE,KAAK;SAC3B,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACnB,MAAM,KAAK,GAAG,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;YACpC,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,MAAM,KAAK,QAAQ;gBAAE,MAAM,IAAI,iBAAiB,CAAC,WAAW,EAAE,qCAAqC,CAAC,CAAC;YACzG,IAAI,MAAM,KAAK,gBAAgB,IAAI,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC;gBAAE,MAAM,IAAI,iBAAiB,CAAC,kBAAkB,EAAE,mCAAmC,MAAM,IAAI,CAAC,CAAC;YACxK,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;YAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBAAE,MAAM,IAAI,iBAAiB,CAAC,kBAAkB,EAAE,sCAAsC,CAAC,CAAC;YACnH,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBAAE,SAAS;gBAC7D,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC5B,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC,WAAW,CAAC,KAAK,QAAQ;oBAAE,SAAS;gBACtF,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;YACpG,CAAC;YACD,MAAM,IAAI,iBAAiB,CAAC,kBAAkB,EAAE,iDAAiD,CAAC,CAAC;QACrG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;gBACvC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBAC1B,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;YACtB,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
@@ -1,8 +0,0 @@
1
- import { type TokenUsage } from "../../llm/types.js";
2
- export interface RetryResult<T> {
3
- value: T;
4
- attempts: number;
5
- failedUsage: TokenUsage;
6
- }
7
- export declare function addTokenUsage(left?: TokenUsage, right?: TokenUsage): TokenUsage;
8
- export declare function withTransientRetry<T>(maxAttempts: number, operation: () => Promise<T>): Promise<RetryResult<T>>;
@@ -1,41 +0,0 @@
1
- import { LlmTransportError } from "../../llm/types.js";
2
- function delay(ms) {
3
- return new Promise((resolve) => setTimeout(resolve, ms));
4
- }
5
- export function addTokenUsage(left = {}, right = {}) {
6
- const sum = (key) => left[key] === undefined && right[key] === undefined
7
- ? undefined
8
- : (left[key] ?? 0) + (right[key] ?? 0);
9
- const inputTokens = sum("inputTokens");
10
- const outputTokens = sum("outputTokens");
11
- const cachedInputTokens = sum("cachedInputTokens");
12
- const cacheCreationTokens = sum("cacheCreationTokens");
13
- return {
14
- ...(inputTokens !== undefined ? { inputTokens } : {}),
15
- ...(outputTokens !== undefined ? { outputTokens } : {}),
16
- ...(cachedInputTokens !== undefined ? { cachedInputTokens } : {}),
17
- ...(cacheCreationTokens !== undefined ? { cacheCreationTokens } : {}),
18
- };
19
- }
20
- export async function withTransientRetry(maxAttempts, operation) {
21
- let failedUsage = {};
22
- for (let attempt = 1; attempt <= maxAttempts; attempt += 1) {
23
- try {
24
- return { value: await operation(), attempts: attempt, failedUsage };
25
- }
26
- catch (error) {
27
- if (error instanceof LlmTransportError) {
28
- failedUsage = addTokenUsage(failedUsage, error.usage);
29
- error.attempts = attempt;
30
- error.usage = failedUsage;
31
- }
32
- if (!(error instanceof LlmTransportError) || !error.retryable || attempt === maxAttempts)
33
- throw error;
34
- // Exponential backoff (30s cap) — a shared LAN gateway under load needs the
35
- // retries spaced out, not hammered within a few seconds.
36
- await delay(Math.min(30_000, 1000 * 2 ** (attempt - 1)));
37
- }
38
- }
39
- throw new Error("unreachable retry state");
40
- }
41
- //# sourceMappingURL=retry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../../src/infra/llm/retry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAmB,MAAM,oBAAoB,CAAC;AAExE,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAQD,MAAM,UAAU,aAAa,CAAC,OAAmB,EAAE,EAAE,QAAoB,EAAE;IACzE,MAAM,GAAG,GAAG,CAAC,GAAqB,EAAsB,EAAE,CACxD,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS;QACjD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC;IACvC,MAAM,YAAY,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC;IACzC,MAAM,iBAAiB,GAAG,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACnD,MAAM,mBAAmB,GAAG,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACvD,OAAO;QACL,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,GAAG,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,GAAG,CAAC,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtE,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAI,WAAmB,EAAE,SAA2B;IAC1F,IAAI,WAAW,GAAe,EAAE,CAAC;IACjC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QAC3D,IAAI,CAAC;YACH,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;QACtE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;gBACvC,WAAW,GAAG,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBACtD,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;gBACzB,KAAK,CAAC,KAAK,GAAG,WAAW,CAAC;YAC5B,CAAC;YACD,IAAI,CAAC,CAAC,KAAK,YAAY,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,OAAO,KAAK,WAAW;gBAAE,MAAM,KAAK,CAAC;YACtG,4EAA4E;YAC5E,yDAAyD;YACzD,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;AAC7C,CAAC"}
@@ -1,43 +0,0 @@
1
- import { type PatchScriptOptions, type ReplaceScriptOptions, type SaveValidationOptions, type ScriptOutputStore } from "./script-output-store.js";
2
- /**
3
- * Filesystem-backed ScriptOutputStore for local debugging. Layout:
4
- *
5
- * $dir/
6
- * ├── script.json ← current published script document
7
- * ├── revision.json ← {revision, requestId, baseRevision, idempotency: {...}}
8
- * └── validations/r{N}.json ← per-revision validation submission
9
- *
10
- * Semantics intentionally mirror RemoteScriptOutputStore + the fake gateway:
11
- * - GET-when-missing returns null (not throw)
12
- * - replaceScript enforces baseRevision CAS; conflict throws ScriptOutputApiError
13
- * with `code: 9001` and message containing "版本冲突" so apiErrorToCli's
14
- * substring matching produces the same SCRIPT_REVISION_CONFLICT envelope
15
- * - replaceScript with replayed requestId returns the cached result with
16
- * `idempotent: true`, matching the gateway's behaviour
17
- */
18
- export declare class LocalScriptOutputStore implements ScriptOutputStore {
19
- readonly dirPath: string;
20
- constructor(dirPath: string);
21
- get projectGroupNo(): string;
22
- /**
23
- * Resolve the on-disk store path:
24
- * 1. `SCRIPTCTL_OUTPUT_DIR` env if set (explicit override)
25
- * 2. otherwise a sibling of the workspace dir named `output/` — matching
26
- * the project-template convention where `workspace/` and `output/` sit
27
- * next to each other under the run dir.
28
- *
29
- * Callers pass `workspacePath` from `--workspace-path` so a custom workspace
30
- * still gets a co-located output dir; when omitted, defaults to "workspace"
31
- * (the same default used by all usecases), which resolves to `<cwd>/output`.
32
- */
33
- static fromEnv(workspacePath?: string): LocalScriptOutputStore;
34
- private get scriptPath();
35
- private get revisionPath();
36
- private validationPath;
37
- private readRevision;
38
- getScript(): Promise<Record<string, unknown> | null>;
39
- getRevision(): Promise<Record<string, unknown> | null>;
40
- replaceScript(opts: ReplaceScriptOptions): Promise<Record<string, unknown>>;
41
- patchScript(opts: PatchScriptOptions): Promise<Record<string, unknown>>;
42
- saveValidationResult(opts: SaveValidationOptions): Promise<Record<string, unknown>>;
43
- }
@@ -1,168 +0,0 @@
1
- import * as fs from "node:fs";
2
- import * as path from "node:path";
3
- import { exists, readJson, writeJson } from "../common.js";
4
- import { ScriptOutputApiError, } from "./script-output-store.js";
5
- const IDEMPOTENCY_CAP = 256;
6
- /**
7
- * Filesystem-backed ScriptOutputStore for local debugging. Layout:
8
- *
9
- * $dir/
10
- * ├── script.json ← current published script document
11
- * ├── revision.json ← {revision, requestId, baseRevision, idempotency: {...}}
12
- * └── validations/r{N}.json ← per-revision validation submission
13
- *
14
- * Semantics intentionally mirror RemoteScriptOutputStore + the fake gateway:
15
- * - GET-when-missing returns null (not throw)
16
- * - replaceScript enforces baseRevision CAS; conflict throws ScriptOutputApiError
17
- * with `code: 9001` and message containing "版本冲突" so apiErrorToCli's
18
- * substring matching produces the same SCRIPT_REVISION_CONFLICT envelope
19
- * - replaceScript with replayed requestId returns the cached result with
20
- * `idempotent: true`, matching the gateway's behaviour
21
- */
22
- export class LocalScriptOutputStore {
23
- dirPath;
24
- constructor(dirPath) {
25
- this.dirPath = dirPath;
26
- }
27
- // Satisfy ScriptOutputStore.projectGroupNo with the store's filesystem
28
- // identity. Used by ScriptEditSession.artifactLabel and "not found" error
29
- // context — the dir path is meaningful local-debug context, not a leaked
30
- // secret.
31
- get projectGroupNo() {
32
- return this.dirPath;
33
- }
34
- /**
35
- * Resolve the on-disk store path:
36
- * 1. `SCRIPTCTL_OUTPUT_DIR` env if set (explicit override)
37
- * 2. otherwise a sibling of the workspace dir named `output/` — matching
38
- * the project-template convention where `workspace/` and `output/` sit
39
- * next to each other under the run dir.
40
- *
41
- * Callers pass `workspacePath` from `--workspace-path` so a custom workspace
42
- * still gets a co-located output dir; when omitted, defaults to "workspace"
43
- * (the same default used by all usecases), which resolves to `<cwd>/output`.
44
- */
45
- static fromEnv(workspacePath) {
46
- const envDir = (process.env.SCRIPTCTL_OUTPUT_DIR ?? "").trim();
47
- const ws = (workspacePath ?? "").trim() || "workspace";
48
- const dir = envDir || path.join(path.dirname(path.resolve(ws)), "output");
49
- try {
50
- fs.mkdirSync(dir, { recursive: true });
51
- }
52
- catch (err) {
53
- const reason = err instanceof Error ? err.message : String(err);
54
- throw new ScriptOutputApiError(`local output dir not writable: ${reason}`, {
55
- configMissing: "output",
56
- });
57
- }
58
- return new LocalScriptOutputStore(dir);
59
- }
60
- get scriptPath() {
61
- return path.join(this.dirPath, "script.json");
62
- }
63
- get revisionPath() {
64
- return path.join(this.dirPath, "revision.json");
65
- }
66
- validationPath(rev) {
67
- return path.join(this.dirPath, "validations", `r${rev}.json`);
68
- }
69
- readRevision() {
70
- if (!exists(this.revisionPath))
71
- return null;
72
- return readJson(this.revisionPath);
73
- }
74
- async getScript() {
75
- if (!exists(this.scriptPath))
76
- return null;
77
- return readJson(this.scriptPath);
78
- }
79
- async getRevision() {
80
- const rev = this.readRevision();
81
- if (rev === null)
82
- return null;
83
- return { revision: rev.revision };
84
- }
85
- async replaceScript(opts) {
86
- const current = this.readRevision();
87
- const currentRevision = current?.revision ?? 0;
88
- // Idempotent replay: same requestId returns cached result without
89
- // re-bumping revision. Matches fake-gateway.ts lines 92-105.
90
- const cached = current?.idempotency?.[opts.requestId];
91
- if (cached) {
92
- return {
93
- baseRevision: cached.baseRevision,
94
- revision: cached.revision,
95
- requestId: opts.requestId,
96
- source: cached.source,
97
- idempotent: true,
98
- };
99
- }
100
- if (opts.baseRevision !== currentRevision) {
101
- throw new ScriptOutputApiError(`剧本版本冲突,baseRevision=${opts.baseRevision},currentRevision=${currentRevision}`, { status: 200, code: 9001 });
102
- }
103
- const nextRevision = currentRevision + 1;
104
- const source = opts.source ?? "ctl";
105
- const updatedAt = new Date().toISOString();
106
- // writeJson uses DEFAULT_STORE's atomic write (tmp file + rename). Script
107
- // lands first so a crash between writes leaves on-disk script ahead of
108
- // revision pointer — getScript still works, getRevision returns the old
109
- // (or null) revision, and the next replaceScript replays cleanly.
110
- writeJson(this.scriptPath, opts.script);
111
- const idempotency = { ...(current?.idempotency ?? {}) };
112
- idempotency[opts.requestId] = {
113
- baseRevision: opts.baseRevision,
114
- revision: nextRevision,
115
- source,
116
- };
117
- // Cap idempotency map at IDEMPOTENCY_CAP entries — replay protection only
118
- // covers very recent writes in production-equivalent flows, and the cap
119
- // keeps revision.json from growing unbounded on long-running local stores.
120
- // JS objects preserve insertion order, so dropping the oldest keys is FIFO.
121
- const idempotencyKeys = Object.keys(idempotency);
122
- if (idempotencyKeys.length > IDEMPOTENCY_CAP) {
123
- for (const stale of idempotencyKeys.slice(0, idempotencyKeys.length - IDEMPOTENCY_CAP)) {
124
- delete idempotency[stale];
125
- }
126
- }
127
- writeJson(this.revisionPath, {
128
- revision: nextRevision,
129
- requestId: opts.requestId,
130
- baseRevision: opts.baseRevision,
131
- source,
132
- updatedAt,
133
- idempotency,
134
- });
135
- return {
136
- baseRevision: opts.baseRevision,
137
- revision: nextRevision,
138
- requestId: opts.requestId,
139
- source,
140
- idempotent: false,
141
- };
142
- }
143
- // The local store has no incremental endpoint either: an edit re-writes the
144
- // whole edited document through the same CAS path as replaceScript. Keeps the
145
- // local debug store behaviourally identical to V1 remote.
146
- async patchScript(opts) {
147
- return this.replaceScript({
148
- requestId: opts.requestId,
149
- baseRevision: opts.baseRevision,
150
- script: opts.edited,
151
- source: opts.source,
152
- });
153
- }
154
- async saveValidationResult(opts) {
155
- fs.mkdirSync(path.join(this.dirPath, "validations"), { recursive: true });
156
- writeJson(this.validationPath(opts.revision), {
157
- revision: opts.revision,
158
- validationStatus: opts.validationStatus,
159
- validationSummary: opts.validationSummary,
160
- issues: opts.issues,
161
- savedAt: new Date().toISOString(),
162
- });
163
- // Remote's POST /validation-result returns data:null; caller awaits and
164
- // ignores. Returning {} keeps the interface contract honest.
165
- return {};
166
- }
167
- }
168
- //# sourceMappingURL=local-script-output-store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"local-script-output-store.js","sourceRoot":"","sources":["../../src/infra/local-script-output-store.ts"],"names":[],"mappings":"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"}
@@ -1,50 +0,0 @@
1
- import { type PatchScriptOptions, type PublishPatchOptions, type ReplaceScriptOptions, type SaveValidationOptions, type ScriptSnapshot, type ScriptOutputStore } from "./script-output-store.js";
2
- export { ScriptOutputApiError, type ScriptOutputApiErrorOptions, type PatchScriptOptions, type PublishPatchOptions, type ReplaceScriptOptions, type SaveValidationOptions, type ScriptSnapshot, type ScriptOutputStore, } from "./script-output-store.js";
3
- export declare function normalizeGatewayBase(value: string): string;
4
- export declare function quotePath(value: string): string;
5
- /**
6
- * V2 script-output store. Same gateway base + X-Access-Key auth as V1, but:
7
- * - publishPatch uses the dedicated strict-CAS publish endpoint.
8
- * - replaceScript and patchScript retain the legacy endpoint contracts.
9
- * - patchScript sends an RFC6902 PATCH (the compare() diff of old→edited),
10
- * which V1 cannot do (it degrades to a whole-document replace).
11
- *
12
- * Selected over V1 by the `SCRIPT_OUTPUT_API_VERSION=v2` env (see
13
- * remoteScriptOutputStoreFromEnv). Endpoints:
14
- * GET {prefix}/{projectGroupNo}
15
- * GET {prefix}/{projectGroupNo}/revision
16
- * GET {prefix}/{projectGroupNo}/snapshot
17
- * PATCH {prefix}/{projectGroupNo}/publish { baseRevision, patch, validation }
18
- * PATCH {prefix}/{projectGroupNo} RFC6902 patch array (wrapped with requestId)
19
- * DELETE {prefix}/{projectGroupNo}
20
- */
21
- export declare class ScriptV2OutputStore implements ScriptOutputStore {
22
- readonly gatewayBase: string;
23
- readonly projectGroupNo: string;
24
- readonly accessKey: string;
25
- readonly timeoutMs: number;
26
- constructor(opts: {
27
- gatewayBase: string;
28
- projectGroupNo: string;
29
- accessKey: string;
30
- timeoutMs?: number;
31
- });
32
- static fromEnv(projectGroupNo?: string | null): ScriptV2OutputStore;
33
- private get projectPrefix();
34
- getScript(): Promise<Record<string, unknown> | null>;
35
- getRevision(): Promise<Record<string, unknown> | null>;
36
- getSnapshot(): Promise<ScriptSnapshot | null>;
37
- publishPatch(opts: PublishPatchOptions): Promise<Record<string, unknown>>;
38
- replaceScript(opts: ReplaceScriptOptions): Promise<Record<string, unknown>>;
39
- patchScript(opts: PatchScriptOptions): Promise<Record<string, unknown>>;
40
- saveValidationResult(opts: SaveValidationOptions): Promise<Record<string, unknown> | null>;
41
- updateEpisodeCount(episodeCount: number): Promise<void>;
42
- private request;
43
- }
44
- /**
45
- * Build the remote script-output store. The CLI is V2-only: every write goes to
46
- * the single-PUT / incremental-PATCH blob store, the same backend the frontend
47
- * writes to — so the two never split-brain across V1/V2. The legacy begin→commit
48
- * V1 client was removed; there is no version flag.
49
- */
50
- export declare function remoteScriptOutputStoreFromEnv(projectGroupNo?: string | null): ScriptV2OutputStore;