@lingjingai/scriptctl 0.63.14 → 0.63.16

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 (781) hide show
  1. package/README.md +12 -1
  2. package/changes/0.63.15.md +15 -0
  3. package/dist/bin.js +1 -20844
  4. package/dist/chunk-YOCQDDQC.js +823 -0
  5. package/dist/cli.d.ts +214 -5
  6. package/dist/cli.js +1 -187
  7. package/dist/review-agent.js +60 -3593
  8. package/package.json +17 -9
  9. package/skills/scriptctl/SKILL.md +2 -0
  10. package/skills/scriptctl/references/ingest-workflow.md +4 -0
  11. package/skills/scriptctl/references/production-writing-standard.md +10 -1
  12. package/skills/scriptctl/references/state-reference-repair.md +8 -0
  13. package/dist/bin.d.ts +0 -2
  14. package/dist/bin.js.map +0 -7
  15. package/dist/cli/register-authoring.d.ts +0 -4
  16. package/dist/cli/register-authoring.js +0 -35
  17. package/dist/cli/register-authoring.js.map +0 -1
  18. package/dist/cli/register-review.d.ts +0 -3
  19. package/dist/cli/register-review.js +0 -20
  20. package/dist/cli/register-review.js.map +0 -1
  21. package/dist/cli/register-script.d.ts +0 -3
  22. package/dist/cli/register-script.js +0 -297
  23. package/dist/cli/register-script.js.map +0 -1
  24. package/dist/cli/register-tools.d.ts +0 -3
  25. package/dist/cli/register-tools.js +0 -23
  26. package/dist/cli/register-tools.js.map +0 -1
  27. package/dist/cli/register-workflows.d.ts +0 -4
  28. package/dist/cli/register-workflows.js +0 -108
  29. package/dist/cli/register-workflows.js.map +0 -1
  30. package/dist/cli/registry.d.ts +0 -14
  31. package/dist/cli/registry.js +0 -65
  32. package/dist/cli/registry.js.map +0 -1
  33. package/dist/cli.js.map +0 -1
  34. package/dist/common.d.ts +0 -93
  35. package/dist/common.js +0 -240
  36. package/dist/common.js.map +0 -1
  37. package/dist/domain/authoring/apply.d.ts +0 -1
  38. package/dist/domain/authoring/apply.js +0 -2
  39. package/dist/domain/authoring/apply.js.map +0 -1
  40. package/dist/domain/authoring/export.d.ts +0 -1
  41. package/dist/domain/authoring/export.js +0 -2
  42. package/dist/domain/authoring/export.js.map +0 -1
  43. package/dist/domain/authoring/parser.d.ts +0 -2
  44. package/dist/domain/authoring/parser.js +0 -3
  45. package/dist/domain/authoring/parser.js.map +0 -1
  46. package/dist/domain/authoring/serializer.d.ts +0 -1
  47. package/dist/domain/authoring/serializer.js +0 -2
  48. package/dist/domain/authoring/serializer.js.map +0 -1
  49. package/dist/domain/authoring/shared/bracket.d.ts +0 -4
  50. package/dist/domain/authoring/shared/bracket.js +0 -95
  51. package/dist/domain/authoring/shared/bracket.js.map +0 -1
  52. package/dist/domain/authoring/shared/types.d.ts +0 -12
  53. package/dist/domain/authoring/shared/types.js +0 -2
  54. package/dist/domain/authoring/shared/types.js.map +0 -1
  55. package/dist/domain/authoring/types.d.ts +0 -2
  56. package/dist/domain/authoring/types.js +0 -3
  57. package/dist/domain/authoring/types.js.map +0 -1
  58. package/dist/domain/authoring/v3/apply.d.ts +0 -33
  59. package/dist/domain/authoring/v3/apply.js +0 -784
  60. package/dist/domain/authoring/v3/apply.js.map +0 -1
  61. package/dist/domain/authoring/v3/export.d.ts +0 -7
  62. package/dist/domain/authoring/v3/export.js +0 -85
  63. package/dist/domain/authoring/v3/export.js.map +0 -1
  64. package/dist/domain/authoring/v3/parser.d.ts +0 -3
  65. package/dist/domain/authoring/v3/parser.js +0 -823
  66. package/dist/domain/authoring/v3/parser.js.map +0 -1
  67. package/dist/domain/authoring/v3/serializer.d.ts +0 -2
  68. package/dist/domain/authoring/v3/serializer.js +0 -244
  69. package/dist/domain/authoring/v3/serializer.js.map +0 -1
  70. package/dist/domain/authoring/v3/types.d.ts +0 -76
  71. package/dist/domain/authoring/v3/types.js +0 -2
  72. package/dist/domain/authoring/v3/types.js.map +0 -1
  73. package/dist/domain/authoring/v4/apply.d.ts +0 -40
  74. package/dist/domain/authoring/v4/apply.js +0 -451
  75. package/dist/domain/authoring/v4/apply.js.map +0 -1
  76. package/dist/domain/authoring/v4/parser.d.ts +0 -2
  77. package/dist/domain/authoring/v4/parser.js +0 -729
  78. package/dist/domain/authoring/v4/parser.js.map +0 -1
  79. package/dist/domain/authoring/v4/serializer.d.ts +0 -6
  80. package/dist/domain/authoring/v4/serializer.js +0 -280
  81. package/dist/domain/authoring/v4/serializer.js.map +0 -1
  82. package/dist/domain/authoring/v4/types.d.ts +0 -50
  83. package/dist/domain/authoring/v4/types.js +0 -2
  84. package/dist/domain/authoring/v4/types.js.map +0 -1
  85. package/dist/domain/creative-draft/compose.d.ts +0 -18
  86. package/dist/domain/creative-draft/compose.js +0 -448
  87. package/dist/domain/creative-draft/compose.js.map +0 -1
  88. package/dist/domain/ingest/apply-plan.d.ts +0 -23
  89. package/dist/domain/ingest/apply-plan.js +0 -210
  90. package/dist/domain/ingest/apply-plan.js.map +0 -1
  91. package/dist/domain/ingest/assembler.d.ts +0 -65
  92. package/dist/domain/ingest/assembler.js +0 -263
  93. package/dist/domain/ingest/assembler.js.map +0 -1
  94. package/dist/domain/ingest/asset-audit.d.ts +0 -50
  95. package/dist/domain/ingest/asset-audit.js +0 -196
  96. package/dist/domain/ingest/asset-audit.js.map +0 -1
  97. package/dist/domain/ingest/chunker.d.ts +0 -9
  98. package/dist/domain/ingest/chunker.js +0 -49
  99. package/dist/domain/ingest/chunker.js.map +0 -1
  100. package/dist/domain/ingest/environment.d.ts +0 -3
  101. package/dist/domain/ingest/environment.js +0 -32
  102. package/dist/domain/ingest/environment.js.map +0 -1
  103. package/dist/domain/ingest/evidence.d.ts +0 -5
  104. package/dist/domain/ingest/evidence.js +0 -66
  105. package/dist/domain/ingest/evidence.js.map +0 -1
  106. package/dist/domain/ingest/govern.d.ts +0 -3
  107. package/dist/domain/ingest/govern.js +0 -157
  108. package/dist/domain/ingest/govern.js.map +0 -1
  109. package/dist/domain/ingest/jsonl-parser.d.ts +0 -6
  110. package/dist/domain/ingest/jsonl-parser.js +0 -204
  111. package/dist/domain/ingest/jsonl-parser.js.map +0 -1
  112. package/dist/domain/ingest/markdown-parser.d.ts +0 -6
  113. package/dist/domain/ingest/markdown-parser.js +0 -187
  114. package/dist/domain/ingest/markdown-parser.js.map +0 -1
  115. package/dist/domain/ingest/production-validation.d.ts +0 -8
  116. package/dist/domain/ingest/production-validation.js +0 -37
  117. package/dist/domain/ingest/production-validation.js.map +0 -1
  118. package/dist/domain/ingest/records.d.ts +0 -72
  119. package/dist/domain/ingest/records.js +0 -10
  120. package/dist/domain/ingest/records.js.map +0 -1
  121. package/dist/domain/ingest/renumber.d.ts +0 -14
  122. package/dist/domain/ingest/renumber.js +0 -130
  123. package/dist/domain/ingest/renumber.js.map +0 -1
  124. package/dist/domain/ingest/serial-context.d.ts +0 -93
  125. package/dist/domain/ingest/serial-context.js +0 -355
  126. package/dist/domain/ingest/serial-context.js.map +0 -1
  127. package/dist/domain/ingest/state-identity.d.ts +0 -2
  128. package/dist/domain/ingest/state-identity.js +0 -3
  129. package/dist/domain/ingest/state-identity.js.map +0 -1
  130. package/dist/domain/ingest/state-reconcile.d.ts +0 -12
  131. package/dist/domain/ingest/state-reconcile.js +0 -92
  132. package/dist/domain/ingest/state-reconcile.js.map +0 -1
  133. package/dist/domain/ingest/validation.d.ts +0 -1
  134. package/dist/domain/ingest/validation.js +0 -2
  135. package/dist/domain/ingest/validation.js.map +0 -1
  136. package/dist/domain/ingest/video-apply.d.ts +0 -4
  137. package/dist/domain/ingest/video-apply.js +0 -128
  138. package/dist/domain/ingest/video-apply.js.map +0 -1
  139. package/dist/domain/ingest/video-context.d.ts +0 -64
  140. package/dist/domain/ingest/video-context.js +0 -480
  141. package/dist/domain/ingest/video-context.js.map +0 -1
  142. package/dist/domain/ingest/video-records.d.ts +0 -57
  143. package/dist/domain/ingest/video-records.js +0 -9
  144. package/dist/domain/ingest/video-records.js.map +0 -1
  145. package/dist/domain/ingest/video-serial-md.d.ts +0 -81
  146. package/dist/domain/ingest/video-serial-md.js +0 -297
  147. package/dist/domain/ingest/video-serial-md.js.map +0 -1
  148. package/dist/domain/ingest/video-source-evolution.d.ts +0 -25
  149. package/dist/domain/ingest/video-source-evolution.js +0 -40
  150. package/dist/domain/ingest/video-source-evolution.js.map +0 -1
  151. package/dist/domain/ingest/video-state-evidence.d.ts +0 -66
  152. package/dist/domain/ingest/video-state-evidence.js +0 -385
  153. package/dist/domain/ingest/video-state-evidence.js.map +0 -1
  154. package/dist/domain/ingest/video-timestamp.d.ts +0 -8
  155. package/dist/domain/ingest/video-timestamp.js +0 -26
  156. package/dist/domain/ingest/video-timestamp.js.map +0 -1
  157. package/dist/domain/loom/checkpointer.d.ts +0 -3
  158. package/dist/domain/loom/checkpointer.js +0 -30
  159. package/dist/domain/loom/checkpointer.js.map +0 -1
  160. package/dist/domain/loom/index.d.ts +0 -45
  161. package/dist/domain/loom/index.js +0 -277
  162. package/dist/domain/loom/index.js.map +0 -1
  163. package/dist/domain/loom/types.d.ts +0 -101
  164. package/dist/domain/loom/types.js +0 -2
  165. package/dist/domain/loom/types.js.map +0 -1
  166. package/dist/domain/script/address.d.ts +0 -1
  167. package/dist/domain/script/address.js +0 -2
  168. package/dist/domain/script/address.js.map +0 -1
  169. package/dist/domain/script/dispatch.d.ts +0 -18
  170. package/dist/domain/script/dispatch.js +0 -55
  171. package/dist/domain/script/dispatch.js.map +0 -1
  172. package/dist/domain/script/lookups.d.ts +0 -1
  173. package/dist/domain/script/lookups.js +0 -2
  174. package/dist/domain/script/lookups.js.map +0 -1
  175. package/dist/domain/script/migrations/registry.d.ts +0 -4
  176. package/dist/domain/script/migrations/registry.js +0 -76
  177. package/dist/domain/script/migrations/registry.js.map +0 -1
  178. package/dist/domain/script/migrations/types.d.ts +0 -17
  179. package/dist/domain/script/migrations/types.js +0 -2
  180. package/dist/domain/script/migrations/types.js.map +0 -1
  181. package/dist/domain/script/migrations/v3-to-v4.d.ts +0 -3
  182. package/dist/domain/script/migrations/v3-to-v4.js +0 -57
  183. package/dist/domain/script/migrations/v3-to-v4.js.map +0 -1
  184. package/dist/domain/script/names.d.ts +0 -1
  185. package/dist/domain/script/names.js +0 -2
  186. package/dist/domain/script/names.js.map +0 -1
  187. package/dist/domain/script/parse.d.ts +0 -1
  188. package/dist/domain/script/parse.js +0 -2
  189. package/dist/domain/script/parse.js.map +0 -1
  190. package/dist/domain/script/patch/apply.d.ts +0 -1
  191. package/dist/domain/script/patch/apply.js +0 -2
  192. package/dist/domain/script/patch/apply.js.map +0 -1
  193. package/dist/domain/script/patch/helpers.d.ts +0 -1
  194. package/dist/domain/script/patch/helpers.js +0 -2
  195. package/dist/domain/script/patch/helpers.js.map +0 -1
  196. package/dist/domain/script/patch/inline-speaker.d.ts +0 -1
  197. package/dist/domain/script/patch/inline-speaker.js +0 -2
  198. package/dist/domain/script/patch/inline-speaker.js.map +0 -1
  199. package/dist/domain/script/patch/ops-action.d.ts +0 -1
  200. package/dist/domain/script/patch/ops-action.js +0 -2
  201. package/dist/domain/script/patch/ops-action.js.map +0 -1
  202. package/dist/domain/script/patch/ops-asset.d.ts +0 -1
  203. package/dist/domain/script/patch/ops-asset.js +0 -2
  204. package/dist/domain/script/patch/ops-asset.js.map +0 -1
  205. package/dist/domain/script/patch/ops-dialogue.d.ts +0 -1
  206. package/dist/domain/script/patch/ops-dialogue.js +0 -2
  207. package/dist/domain/script/patch/ops-dialogue.js.map +0 -1
  208. package/dist/domain/script/patch/ops-extend.d.ts +0 -1
  209. package/dist/domain/script/patch/ops-extend.js +0 -2
  210. package/dist/domain/script/patch/ops-extend.js.map +0 -1
  211. package/dist/domain/script/patch/ops-meta.d.ts +0 -1
  212. package/dist/domain/script/patch/ops-meta.js +0 -2
  213. package/dist/domain/script/patch/ops-meta.js.map +0 -1
  214. package/dist/domain/script/patch/ops-scene.d.ts +0 -1
  215. package/dist/domain/script/patch/ops-scene.js +0 -2
  216. package/dist/domain/script/patch/ops-scene.js.map +0 -1
  217. package/dist/domain/script/patch/ops-state.d.ts +0 -1
  218. package/dist/domain/script/patch/ops-state.js +0 -2
  219. package/dist/domain/script/patch/ops-state.js.map +0 -1
  220. package/dist/domain/script/patch/registry.d.ts +0 -1
  221. package/dist/domain/script/patch/registry.js +0 -2
  222. package/dist/domain/script/patch/registry.js.map +0 -1
  223. package/dist/domain/script/patch/types.d.ts +0 -1
  224. package/dist/domain/script/patch/types.js +0 -2
  225. package/dist/domain/script/patch/types.js.map +0 -1
  226. package/dist/domain/script/refs.d.ts +0 -1
  227. package/dist/domain/script/refs.js +0 -2
  228. package/dist/domain/script/refs.js.map +0 -1
  229. package/dist/domain/script/scene-refs.d.ts +0 -1
  230. package/dist/domain/script/scene-refs.js +0 -2
  231. package/dist/domain/script/scene-refs.js.map +0 -1
  232. package/dist/domain/script/schema.d.ts +0 -1
  233. package/dist/domain/script/schema.js +0 -2
  234. package/dist/domain/script/schema.js.map +0 -1
  235. package/dist/domain/script/selector.d.ts +0 -1
  236. package/dist/domain/script/selector.js +0 -2
  237. package/dist/domain/script/selector.js.map +0 -1
  238. package/dist/domain/script/shared/regex.d.ts +0 -2
  239. package/dist/domain/script/shared/regex.js +0 -7
  240. package/dist/domain/script/shared/regex.js.map +0 -1
  241. package/dist/domain/script/shared/types.d.ts +0 -1
  242. package/dist/domain/script/shared/types.js +0 -5
  243. package/dist/domain/script/shared/types.js.map +0 -1
  244. package/dist/domain/script/shared/validation.d.ts +0 -1
  245. package/dist/domain/script/shared/validation.js +0 -3
  246. package/dist/domain/script/shared/validation.js.map +0 -1
  247. package/dist/domain/script/shared.d.ts +0 -15
  248. package/dist/domain/script/shared.js +0 -35
  249. package/dist/domain/script/shared.js.map +0 -1
  250. package/dist/domain/script/text-util.d.ts +0 -7
  251. package/dist/domain/script/text-util.js +0 -95
  252. package/dist/domain/script/text-util.js.map +0 -1
  253. package/dist/domain/script/timestamp.d.ts +0 -1
  254. package/dist/domain/script/timestamp.js +0 -3
  255. package/dist/domain/script/timestamp.js.map +0 -1
  256. package/dist/domain/script/types.d.ts +0 -1
  257. package/dist/domain/script/types.js +0 -2
  258. package/dist/domain/script/types.js.map +0 -1
  259. package/dist/domain/script/v3/address.d.ts +0 -32
  260. package/dist/domain/script/v3/address.js +0 -136
  261. package/dist/domain/script/v3/address.js.map +0 -1
  262. package/dist/domain/script/v3/lookups.d.ts +0 -33
  263. package/dist/domain/script/v3/lookups.js +0 -316
  264. package/dist/domain/script/v3/lookups.js.map +0 -1
  265. package/dist/domain/script/v3/ordinal.d.ts +0 -8
  266. package/dist/domain/script/v3/ordinal.js +0 -91
  267. package/dist/domain/script/v3/ordinal.js.map +0 -1
  268. package/dist/domain/script/v3/parse.d.ts +0 -3
  269. package/dist/domain/script/v3/parse.js +0 -164
  270. package/dist/domain/script/v3/parse.js.map +0 -1
  271. package/dist/domain/script/v3/patch/apply.d.ts +0 -2
  272. package/dist/domain/script/v3/patch/apply.js +0 -31
  273. package/dist/domain/script/v3/patch/apply.js.map +0 -1
  274. package/dist/domain/script/v3/patch/helpers.d.ts +0 -15
  275. package/dist/domain/script/v3/patch/helpers.js +0 -155
  276. package/dist/domain/script/v3/patch/helpers.js.map +0 -1
  277. package/dist/domain/script/v3/patch/inline-speaker.d.ts +0 -2
  278. package/dist/domain/script/v3/patch/inline-speaker.js +0 -50
  279. package/dist/domain/script/v3/patch/inline-speaker.js.map +0 -1
  280. package/dist/domain/script/v3/patch/ops-action.d.ts +0 -12
  281. package/dist/domain/script/v3/patch/ops-action.js +0 -355
  282. package/dist/domain/script/v3/patch/ops-action.js.map +0 -1
  283. package/dist/domain/script/v3/patch/ops-asset.d.ts +0 -14
  284. package/dist/domain/script/v3/patch/ops-asset.js +0 -347
  285. package/dist/domain/script/v3/patch/ops-asset.js.map +0 -1
  286. package/dist/domain/script/v3/patch/ops-dialogue.d.ts +0 -2
  287. package/dist/domain/script/v3/patch/ops-dialogue.js +0 -21
  288. package/dist/domain/script/v3/patch/ops-dialogue.js.map +0 -1
  289. package/dist/domain/script/v3/patch/ops-extend.d.ts +0 -8
  290. package/dist/domain/script/v3/patch/ops-extend.js +0 -122
  291. package/dist/domain/script/v3/patch/ops-extend.js.map +0 -1
  292. package/dist/domain/script/v3/patch/ops-meta.d.ts +0 -5
  293. package/dist/domain/script/v3/patch/ops-meta.js +0 -82
  294. package/dist/domain/script/v3/patch/ops-meta.js.map +0 -1
  295. package/dist/domain/script/v3/patch/ops-scene.d.ts +0 -6
  296. package/dist/domain/script/v3/patch/ops-scene.js +0 -351
  297. package/dist/domain/script/v3/patch/ops-scene.js.map +0 -1
  298. package/dist/domain/script/v3/patch/ops-state.d.ts +0 -8
  299. package/dist/domain/script/v3/patch/ops-state.js +0 -155
  300. package/dist/domain/script/v3/patch/ops-state.js.map +0 -1
  301. package/dist/domain/script/v3/patch/ops-timestamp.d.ts +0 -6
  302. package/dist/domain/script/v3/patch/ops-timestamp.js +0 -47
  303. package/dist/domain/script/v3/patch/ops-timestamp.js.map +0 -1
  304. package/dist/domain/script/v3/patch/registry.d.ts +0 -2
  305. package/dist/domain/script/v3/patch/registry.js +0 -56
  306. package/dist/domain/script/v3/patch/registry.js.map +0 -1
  307. package/dist/domain/script/v3/patch/types.d.ts +0 -10
  308. package/dist/domain/script/v3/patch/types.js +0 -2
  309. package/dist/domain/script/v3/patch/types.js.map +0 -1
  310. package/dist/domain/script/v3/refs.d.ts +0 -4
  311. package/dist/domain/script/v3/refs.js +0 -64
  312. package/dist/domain/script/v3/refs.js.map +0 -1
  313. package/dist/domain/script/v3/scene-refs.d.ts +0 -3
  314. package/dist/domain/script/v3/scene-refs.js +0 -35
  315. package/dist/domain/script/v3/scene-refs.js.map +0 -1
  316. package/dist/domain/script/v3/schema.d.ts +0 -6
  317. package/dist/domain/script/v3/schema.js +0 -58
  318. package/dist/domain/script/v3/schema.js.map +0 -1
  319. package/dist/domain/script/v3/selector.d.ts +0 -44
  320. package/dist/domain/script/v3/selector.js +0 -178
  321. package/dist/domain/script/v3/selector.js.map +0 -1
  322. package/dist/domain/script/v3/types.d.ts +0 -106
  323. package/dist/domain/script/v3/types.js +0 -2
  324. package/dist/domain/script/v3/types.js.map +0 -1
  325. package/dist/domain/script/v3/validation.d.ts +0 -2
  326. package/dist/domain/script/v3/validation.js +0 -2
  327. package/dist/domain/script/v3/validation.js.map +0 -1
  328. package/dist/domain/script/v4/address.d.ts +0 -61
  329. package/dist/domain/script/v4/address.js +0 -99
  330. package/dist/domain/script/v4/address.js.map +0 -1
  331. package/dist/domain/script/v4/factory.d.ts +0 -2
  332. package/dist/domain/script/v4/factory.js +0 -13
  333. package/dist/domain/script/v4/factory.js.map +0 -1
  334. package/dist/domain/script/v4/from-v3.d.ts +0 -29
  335. package/dist/domain/script/v4/from-v3.js +0 -307
  336. package/dist/domain/script/v4/from-v3.js.map +0 -1
  337. package/dist/domain/script/v4/ids.d.ts +0 -5
  338. package/dist/domain/script/v4/ids.js +0 -41
  339. package/dist/domain/script/v4/ids.js.map +0 -1
  340. package/dist/domain/script/v4/ordinal.d.ts +0 -3
  341. package/dist/domain/script/v4/ordinal.js +0 -66
  342. package/dist/domain/script/v4/ordinal.js.map +0 -1
  343. package/dist/domain/script/v4/parse.d.ts +0 -5
  344. package/dist/domain/script/v4/parse.js +0 -196
  345. package/dist/domain/script/v4/parse.js.map +0 -1
  346. package/dist/domain/script/v4/patch/apply.d.ts +0 -3
  347. package/dist/domain/script/v4/patch/apply.js +0 -24
  348. package/dist/domain/script/v4/patch/apply.js.map +0 -1
  349. package/dist/domain/script/v4/patch/helpers.d.ts +0 -32
  350. package/dist/domain/script/v4/patch/helpers.js +0 -138
  351. package/dist/domain/script/v4/patch/helpers.js.map +0 -1
  352. package/dist/domain/script/v4/patch/ops-action.d.ts +0 -13
  353. package/dist/domain/script/v4/patch/ops-action.js +0 -351
  354. package/dist/domain/script/v4/patch/ops-action.js.map +0 -1
  355. package/dist/domain/script/v4/patch/ops-asset.d.ts +0 -17
  356. package/dist/domain/script/v4/patch/ops-asset.js +0 -556
  357. package/dist/domain/script/v4/patch/ops-asset.js.map +0 -1
  358. package/dist/domain/script/v4/patch/ops-extend.d.ts +0 -11
  359. package/dist/domain/script/v4/patch/ops-extend.js +0 -103
  360. package/dist/domain/script/v4/patch/ops-extend.js.map +0 -1
  361. package/dist/domain/script/v4/patch/ops-meta.d.ts +0 -5
  362. package/dist/domain/script/v4/patch/ops-meta.js +0 -49
  363. package/dist/domain/script/v4/patch/ops-meta.js.map +0 -1
  364. package/dist/domain/script/v4/patch/ops-scene-ref.d.ts +0 -3
  365. package/dist/domain/script/v4/patch/ops-scene-ref.js +0 -74
  366. package/dist/domain/script/v4/patch/ops-scene-ref.js.map +0 -1
  367. package/dist/domain/script/v4/patch/ops-structure.d.ts +0 -6
  368. package/dist/domain/script/v4/patch/ops-structure.js +0 -236
  369. package/dist/domain/script/v4/patch/ops-structure.js.map +0 -1
  370. package/dist/domain/script/v4/patch/ops-timestamp.d.ts +0 -6
  371. package/dist/domain/script/v4/patch/ops-timestamp.js +0 -40
  372. package/dist/domain/script/v4/patch/ops-timestamp.js.map +0 -1
  373. package/dist/domain/script/v4/patch/registry.d.ts +0 -2
  374. package/dist/domain/script/v4/patch/registry.js +0 -53
  375. package/dist/domain/script/v4/patch/registry.js.map +0 -1
  376. package/dist/domain/script/v4/patch/schema.d.ts +0 -7
  377. package/dist/domain/script/v4/patch/schema.js +0 -77
  378. package/dist/domain/script/v4/patch/schema.js.map +0 -1
  379. package/dist/domain/script/v4/patch/types.d.ts +0 -10
  380. package/dist/domain/script/v4/patch/types.js +0 -2
  381. package/dist/domain/script/v4/patch/types.js.map +0 -1
  382. package/dist/domain/script/v4/selector.d.ts +0 -11
  383. package/dist/domain/script/v4/selector.js +0 -124
  384. package/dist/domain/script/v4/selector.js.map +0 -1
  385. package/dist/domain/script/v4/types.d.ts +0 -120
  386. package/dist/domain/script/v4/types.js +0 -2
  387. package/dist/domain/script/v4/types.js.map +0 -1
  388. package/dist/domain/script/v4/validation.d.ts +0 -2
  389. package/dist/domain/script/v4/validation.js +0 -2
  390. package/dist/domain/script/v4/validation.js.map +0 -1
  391. package/dist/failures.d.ts +0 -58
  392. package/dist/failures.js +0 -96
  393. package/dist/failures.js.map +0 -1
  394. package/dist/infra/converters.d.ts +0 -9
  395. package/dist/infra/converters.js +0 -689
  396. package/dist/infra/converters.js.map +0 -1
  397. package/dist/infra/env.d.ts +0 -2
  398. package/dist/infra/env.js +0 -81
  399. package/dist/infra/env.js.map +0 -1
  400. package/dist/infra/episode-title.d.ts +0 -4
  401. package/dist/infra/episode-title.js +0 -129
  402. package/dist/infra/episode-title.js.map +0 -1
  403. package/dist/infra/ingest/review-renderer.d.ts +0 -1
  404. package/dist/infra/ingest/review-renderer.js +0 -440
  405. package/dist/infra/ingest/review-renderer.js.map +0 -1
  406. package/dist/infra/ingest/source-resolver.d.ts +0 -21
  407. package/dist/infra/ingest/source-resolver.js +0 -51
  408. package/dist/infra/ingest/source-resolver.js.map +0 -1
  409. package/dist/infra/ingest/text-reader.d.ts +0 -3
  410. package/dist/infra/ingest/text-reader.js +0 -27
  411. package/dist/infra/ingest/text-reader.js.map +0 -1
  412. package/dist/infra/ingest/video-discovery.d.ts +0 -8
  413. package/dist/infra/ingest/video-discovery.js +0 -69
  414. package/dist/infra/ingest/video-discovery.js.map +0 -1
  415. package/dist/infra/ingest/video-source-snapshot.d.ts +0 -4
  416. package/dist/infra/ingest/video-source-snapshot.js +0 -47
  417. package/dist/infra/ingest/video-source-snapshot.js.map +0 -1
  418. package/dist/infra/ingest/video-state-evidence.d.ts +0 -14
  419. package/dist/infra/ingest/video-state-evidence.js +0 -140
  420. package/dist/infra/ingest/video-state-evidence.js.map +0 -1
  421. package/dist/infra/ingest/video-transcode.d.ts +0 -7
  422. package/dist/infra/ingest/video-transcode.js +0 -98
  423. package/dist/infra/ingest/video-transcode.js.map +0 -1
  424. package/dist/infra/ingest/workspace-lock.d.ts +0 -1
  425. package/dist/infra/ingest/workspace-lock.js +0 -32
  426. package/dist/infra/ingest/workspace-lock.js.map +0 -1
  427. package/dist/infra/ingest/workspace-store.d.ts +0 -18
  428. package/dist/infra/ingest/workspace-store.js +0 -70
  429. package/dist/infra/ingest/workspace-store.js.map +0 -1
  430. package/dist/infra/llm/anthropic-model.d.ts +0 -11
  431. package/dist/infra/llm/anthropic-model.js +0 -130
  432. package/dist/infra/llm/anthropic-model.js.map +0 -1
  433. package/dist/infra/llm/doubao-model.d.ts +0 -60
  434. package/dist/infra/llm/doubao-model.js +0 -249
  435. package/dist/infra/llm/doubao-model.js.map +0 -1
  436. package/dist/infra/llm/failure-mapping.d.ts +0 -6
  437. package/dist/infra/llm/failure-mapping.js +0 -146
  438. package/dist/infra/llm/failure-mapping.js.map +0 -1
  439. package/dist/infra/llm/gemini-upload.d.ts +0 -13
  440. package/dist/infra/llm/gemini-upload.js +0 -138
  441. package/dist/infra/llm/gemini-upload.js.map +0 -1
  442. package/dist/infra/llm/gemini-video-model.d.ts +0 -50
  443. package/dist/infra/llm/gemini-video-model.js +0 -371
  444. package/dist/infra/llm/gemini-video-model.js.map +0 -1
  445. package/dist/infra/llm/openai-compatible-model.d.ts +0 -14
  446. package/dist/infra/llm/openai-compatible-model.js +0 -207
  447. package/dist/infra/llm/openai-compatible-model.js.map +0 -1
  448. package/dist/infra/llm/retry.d.ts +0 -8
  449. package/dist/infra/llm/retry.js +0 -41
  450. package/dist/infra/llm/retry.js.map +0 -1
  451. package/dist/infra/local-script-output-store.d.ts +0 -43
  452. package/dist/infra/local-script-output-store.js +0 -168
  453. package/dist/infra/local-script-output-store.js.map +0 -1
  454. package/dist/infra/script-output-api.d.ts +0 -50
  455. package/dist/infra/script-output-api.js +0 -251
  456. package/dist/infra/script-output-api.js.map +0 -1
  457. package/dist/infra/script-output-store.d.ts +0 -152
  458. package/dist/infra/script-output-store.js +0 -114
  459. package/dist/infra/script-output-store.js.map +0 -1
  460. package/dist/infra/script-working-copy.d.ts +0 -23
  461. package/dist/infra/script-working-copy.js +0 -157
  462. package/dist/infra/script-working-copy.js.map +0 -1
  463. package/dist/infra/storage.d.ts +0 -35
  464. package/dist/infra/storage.js +0 -91
  465. package/dist/infra/storage.js.map +0 -1
  466. package/dist/llm/composition.d.ts +0 -5
  467. package/dist/llm/composition.js +0 -5
  468. package/dist/llm/composition.js.map +0 -1
  469. package/dist/llm/config.d.ts +0 -28
  470. package/dist/llm/config.js +0 -231
  471. package/dist/llm/config.js.map +0 -1
  472. package/dist/llm/registry.d.ts +0 -43
  473. package/dist/llm/registry.js +0 -69
  474. package/dist/llm/registry.js.map +0 -1
  475. package/dist/llm/router.d.ts +0 -46
  476. package/dist/llm/router.js +0 -512
  477. package/dist/llm/router.js.map +0 -1
  478. package/dist/llm/tasks/ingest/arc-summary.d.ts +0 -8
  479. package/dist/llm/tasks/ingest/arc-summary.js +0 -26
  480. package/dist/llm/tasks/ingest/arc-summary.js.map +0 -1
  481. package/dist/llm/tasks/ingest/asset-audit.d.ts +0 -6
  482. package/dist/llm/tasks/ingest/asset-audit.js +0 -158
  483. package/dist/llm/tasks/ingest/asset-audit.js.map +0 -1
  484. package/dist/llm/tasks/ingest/asset-curate.d.ts +0 -13
  485. package/dist/llm/tasks/ingest/asset-curate.js +0 -45
  486. package/dist/llm/tasks/ingest/asset-curate.js.map +0 -1
  487. package/dist/llm/tasks/ingest/asset-extract.d.ts +0 -12
  488. package/dist/llm/tasks/ingest/asset-extract.js +0 -51
  489. package/dist/llm/tasks/ingest/asset-extract.js.map +0 -1
  490. package/dist/llm/tasks/ingest/asset-govern.d.ts +0 -22
  491. package/dist/llm/tasks/ingest/asset-govern.js +0 -143
  492. package/dist/llm/tasks/ingest/asset-govern.js.map +0 -1
  493. package/dist/llm/tasks/ingest/body-start.d.ts +0 -10
  494. package/dist/llm/tasks/ingest/body-start.js +0 -41
  495. package/dist/llm/tasks/ingest/body-start.js.map +0 -1
  496. package/dist/llm/tasks/ingest/episode-assets.d.ts +0 -29
  497. package/dist/llm/tasks/ingest/episode-assets.js +0 -282
  498. package/dist/llm/tasks/ingest/episode-assets.js.map +0 -1
  499. package/dist/llm/tasks/ingest/mention-resolve.d.ts +0 -9
  500. package/dist/llm/tasks/ingest/mention-resolve.js +0 -39
  501. package/dist/llm/tasks/ingest/mention-resolve.js.map +0 -1
  502. package/dist/llm/tasks/ingest/name-fix.d.ts +0 -9
  503. package/dist/llm/tasks/ingest/name-fix.js +0 -56
  504. package/dist/llm/tasks/ingest/name-fix.js.map +0 -1
  505. package/dist/llm/tasks/ingest/state-reconcile.d.ts +0 -8
  506. package/dist/llm/tasks/ingest/state-reconcile.js +0 -44
  507. package/dist/llm/tasks/ingest/state-reconcile.js.map +0 -1
  508. package/dist/llm/tasks/ingest/text-normalize.d.ts +0 -10
  509. package/dist/llm/tasks/ingest/text-normalize.js +0 -122
  510. package/dist/llm/tasks/ingest/text-normalize.js.map +0 -1
  511. package/dist/llm/tasks/ingest/video-serial.d.ts +0 -24
  512. package/dist/llm/tasks/ingest/video-serial.js +0 -416
  513. package/dist/llm/tasks/ingest/video-serial.js.map +0 -1
  514. package/dist/llm/tasks/schemas.d.ts +0 -9
  515. package/dist/llm/tasks/schemas.js +0 -466
  516. package/dist/llm/tasks/schemas.js.map +0 -1
  517. package/dist/llm/types.d.ts +0 -178
  518. package/dist/llm/types.js +0 -44
  519. package/dist/llm/types.js.map +0 -1
  520. package/dist/output.d.ts +0 -3
  521. package/dist/output.js +0 -94
  522. package/dist/output.js.map +0 -1
  523. package/dist/package-root.d.ts +0 -2
  524. package/dist/package-root.js +0 -38
  525. package/dist/package-root.js.map +0 -1
  526. package/dist/review-agent.js.map +0 -7
  527. package/dist/usecases/changelog.d.ts +0 -9
  528. package/dist/usecases/changelog.js +0 -134
  529. package/dist/usecases/changelog.js.map +0 -1
  530. package/dist/usecases/doctor.d.ts +0 -2
  531. package/dist/usecases/doctor.js +0 -231
  532. package/dist/usecases/doctor.js.map +0 -1
  533. package/dist/usecases/ingest/body-start.d.ts +0 -8
  534. package/dist/usecases/ingest/body-start.js +0 -36
  535. package/dist/usecases/ingest/body-start.js.map +0 -1
  536. package/dist/usecases/ingest/command.d.ts +0 -5
  537. package/dist/usecases/ingest/command.js +0 -183
  538. package/dist/usecases/ingest/command.js.map +0 -1
  539. package/dist/usecases/ingest/failure.d.ts +0 -26
  540. package/dist/usecases/ingest/failure.js +0 -153
  541. package/dist/usecases/ingest/failure.js.map +0 -1
  542. package/dist/usecases/ingest/fanout.d.ts +0 -10
  543. package/dist/usecases/ingest/fanout.js +0 -23
  544. package/dist/usecases/ingest/fanout.js.map +0 -1
  545. package/dist/usecases/ingest/final-asset-audit.d.ts +0 -39
  546. package/dist/usecases/ingest/final-asset-audit.js +0 -88
  547. package/dist/usecases/ingest/final-asset-audit.js.map +0 -1
  548. package/dist/usecases/ingest/generate-video-state-evidence.d.ts +0 -23
  549. package/dist/usecases/ingest/generate-video-state-evidence.js +0 -124
  550. package/dist/usecases/ingest/generate-video-state-evidence.js.map +0 -1
  551. package/dist/usecases/ingest/pass4-mention-resolve.d.ts +0 -11
  552. package/dist/usecases/ingest/pass4-mention-resolve.js +0 -52
  553. package/dist/usecases/ingest/pass4-mention-resolve.js.map +0 -1
  554. package/dist/usecases/ingest/pass5-extract.d.ts +0 -7
  555. package/dist/usecases/ingest/pass5-extract.js +0 -51
  556. package/dist/usecases/ingest/pass5-extract.js.map +0 -1
  557. package/dist/usecases/ingest/pass5-govern.d.ts +0 -13
  558. package/dist/usecases/ingest/pass5-govern.js +0 -157
  559. package/dist/usecases/ingest/pass5-govern.js.map +0 -1
  560. package/dist/usecases/ingest/pipeline.d.ts +0 -28
  561. package/dist/usecases/ingest/pipeline.js +0 -335
  562. package/dist/usecases/ingest/pipeline.js.map +0 -1
  563. package/dist/usecases/ingest/publish-command.d.ts +0 -1
  564. package/dist/usecases/ingest/publish-command.js +0 -4
  565. package/dist/usecases/ingest/publish-command.js.map +0 -1
  566. package/dist/usecases/ingest/serial-govern.d.ts +0 -40
  567. package/dist/usecases/ingest/serial-govern.js +0 -488
  568. package/dist/usecases/ingest/serial-govern.js.map +0 -1
  569. package/dist/usecases/ingest/skip-video-episode.d.ts +0 -4
  570. package/dist/usecases/ingest/skip-video-episode.js +0 -120
  571. package/dist/usecases/ingest/skip-video-episode.js.map +0 -1
  572. package/dist/usecases/ingest/status.d.ts +0 -61
  573. package/dist/usecases/ingest/status.js +0 -347
  574. package/dist/usecases/ingest/status.js.map +0 -1
  575. package/dist/usecases/ingest/timings.d.ts +0 -51
  576. package/dist/usecases/ingest/timings.js +0 -68
  577. package/dist/usecases/ingest/timings.js.map +0 -1
  578. package/dist/usecases/ingest/usage-report.d.ts +0 -125
  579. package/dist/usecases/ingest/usage-report.js +0 -248
  580. package/dist/usecases/ingest/usage-report.js.map +0 -1
  581. package/dist/usecases/ingest/video-pipeline.d.ts +0 -81
  582. package/dist/usecases/ingest/video-pipeline.js +0 -548
  583. package/dist/usecases/ingest/video-pipeline.js.map +0 -1
  584. package/dist/usecases/ingest/video-skip-state.d.ts +0 -29
  585. package/dist/usecases/ingest/video-skip-state.js +0 -148
  586. package/dist/usecases/ingest/video-skip-state.js.map +0 -1
  587. package/dist/usecases/ingest/view-command.d.ts +0 -4
  588. package/dist/usecases/ingest/view-command.js +0 -67
  589. package/dist/usecases/ingest/view-command.js.map +0 -1
  590. package/dist/usecases/ingest/view-server.d.ts +0 -29
  591. package/dist/usecases/ingest/view-server.js +0 -364
  592. package/dist/usecases/ingest/view-server.js.map +0 -1
  593. package/dist/usecases/script/action-span.d.ts +0 -10
  594. package/dist/usecases/script/action-span.js +0 -42
  595. package/dist/usecases/script/action-span.js.map +0 -1
  596. package/dist/usecases/script/actions.d.ts +0 -3
  597. package/dist/usecases/script/actions.js +0 -184
  598. package/dist/usecases/script/actions.js.map +0 -1
  599. package/dist/usecases/script/actor.d.ts +0 -3
  600. package/dist/usecases/script/actor.js +0 -26
  601. package/dist/usecases/script/actor.js.map +0 -1
  602. package/dist/usecases/script/actors.d.ts +0 -3
  603. package/dist/usecases/script/actors.js +0 -25
  604. package/dist/usecases/script/actors.js.map +0 -1
  605. package/dist/usecases/script/add-actor.d.ts +0 -3
  606. package/dist/usecases/script/add-actor.js +0 -13
  607. package/dist/usecases/script/add-actor.js.map +0 -1
  608. package/dist/usecases/script/add-episode.d.ts +0 -3
  609. package/dist/usecases/script/add-episode.js +0 -9
  610. package/dist/usecases/script/add-episode.js.map +0 -1
  611. package/dist/usecases/script/add-location.d.ts +0 -3
  612. package/dist/usecases/script/add-location.js +0 -11
  613. package/dist/usecases/script/add-location.js.map +0 -1
  614. package/dist/usecases/script/add-prop.d.ts +0 -3
  615. package/dist/usecases/script/add-prop.js +0 -11
  616. package/dist/usecases/script/add-prop.js.map +0 -1
  617. package/dist/usecases/script/alias.d.ts +0 -3
  618. package/dist/usecases/script/alias.js +0 -39
  619. package/dist/usecases/script/alias.js.map +0 -1
  620. package/dist/usecases/script/assets.d.ts +0 -3
  621. package/dist/usecases/script/assets.js +0 -46
  622. package/dist/usecases/script/assets.js.map +0 -1
  623. package/dist/usecases/script/audit-assets.d.ts +0 -4
  624. package/dist/usecases/script/audit-assets.js +0 -37
  625. package/dist/usecases/script/audit-assets.js.map +0 -1
  626. package/dist/usecases/script/command-constraints.d.ts +0 -38
  627. package/dist/usecases/script/command-constraints.js +0 -143
  628. package/dist/usecases/script/command-constraints.js.map +0 -1
  629. package/dist/usecases/script/compose-creative-draft.d.ts +0 -3
  630. package/dist/usecases/script/compose-creative-draft.js +0 -106
  631. package/dist/usecases/script/compose-creative-draft.js.map +0 -1
  632. package/dist/usecases/script/context.d.ts +0 -3
  633. package/dist/usecases/script/context.js +0 -52
  634. package/dist/usecases/script/context.js.map +0 -1
  635. package/dist/usecases/script/create.d.ts +0 -3
  636. package/dist/usecases/script/create.js +0 -27
  637. package/dist/usecases/script/create.js.map +0 -1
  638. package/dist/usecases/script/delete.d.ts +0 -3
  639. package/dist/usecases/script/delete.js +0 -88
  640. package/dist/usecases/script/delete.js.map +0 -1
  641. package/dist/usecases/script/describe.d.ts +0 -3
  642. package/dist/usecases/script/describe.js +0 -32
  643. package/dist/usecases/script/describe.js.map +0 -1
  644. package/dist/usecases/script/dialogue.d.ts +0 -3
  645. package/dist/usecases/script/dialogue.js +0 -30
  646. package/dist/usecases/script/dialogue.js.map +0 -1
  647. package/dist/usecases/script/dispatch.d.ts +0 -3
  648. package/dist/usecases/script/dispatch.js +0 -10
  649. package/dist/usecases/script/dispatch.js.map +0 -1
  650. package/dist/usecases/script/do.d.ts +0 -3
  651. package/dist/usecases/script/do.js +0 -186
  652. package/dist/usecases/script/do.js.map +0 -1
  653. package/dist/usecases/script/emotion.d.ts +0 -3
  654. package/dist/usecases/script/emotion.js +0 -24
  655. package/dist/usecases/script/emotion.js.map +0 -1
  656. package/dist/usecases/script/episodes.d.ts +0 -3
  657. package/dist/usecases/script/episodes.js +0 -62
  658. package/dist/usecases/script/episodes.js.map +0 -1
  659. package/dist/usecases/script/export-authoring.d.ts +0 -4
  660. package/dist/usecases/script/export-authoring.js +0 -326
  661. package/dist/usecases/script/export-authoring.js.map +0 -1
  662. package/dist/usecases/script/extend.d.ts +0 -3
  663. package/dist/usecases/script/extend.js +0 -94
  664. package/dist/usecases/script/extend.js.map +0 -1
  665. package/dist/usecases/script/ids.d.ts +0 -3
  666. package/dist/usecases/script/ids.js +0 -148
  667. package/dist/usecases/script/ids.js.map +0 -1
  668. package/dist/usecases/script/importance.d.ts +0 -3
  669. package/dist/usecases/script/importance.js +0 -16
  670. package/dist/usecases/script/importance.js.map +0 -1
  671. package/dist/usecases/script/insert.d.ts +0 -3
  672. package/dist/usecases/script/insert.js +0 -127
  673. package/dist/usecases/script/insert.js.map +0 -1
  674. package/dist/usecases/script/issues.d.ts +0 -3
  675. package/dist/usecases/script/issues.js +0 -35
  676. package/dist/usecases/script/issues.js.map +0 -1
  677. package/dist/usecases/script/lib.d.ts +0 -152
  678. package/dist/usecases/script/lib.js +0 -1654
  679. package/dist/usecases/script/lib.js.map +0 -1
  680. package/dist/usecases/script/locations.d.ts +0 -3
  681. package/dist/usecases/script/locations.js +0 -25
  682. package/dist/usecases/script/locations.js.map +0 -1
  683. package/dist/usecases/script/merge.d.ts +0 -3
  684. package/dist/usecases/script/merge.js +0 -43
  685. package/dist/usecases/script/merge.js.map +0 -1
  686. package/dist/usecases/script/migrate.d.ts +0 -3
  687. package/dist/usecases/script/migrate.js +0 -210
  688. package/dist/usecases/script/migrate.js.map +0 -1
  689. package/dist/usecases/script/move.d.ts +0 -3
  690. package/dist/usecases/script/move.js +0 -50
  691. package/dist/usecases/script/move.js.map +0 -1
  692. package/dist/usecases/script/parenthetical.d.ts +0 -3
  693. package/dist/usecases/script/parenthetical.js +0 -52
  694. package/dist/usecases/script/parenthetical.js.map +0 -1
  695. package/dist/usecases/script/props.d.ts +0 -3
  696. package/dist/usecases/script/props.js +0 -25
  697. package/dist/usecases/script/props.js.map +0 -1
  698. package/dist/usecases/script/refs.d.ts +0 -3
  699. package/dist/usecases/script/refs.js +0 -111
  700. package/dist/usecases/script/refs.js.map +0 -1
  701. package/dist/usecases/script/rename.d.ts +0 -3
  702. package/dist/usecases/script/rename.js +0 -35
  703. package/dist/usecases/script/rename.js.map +0 -1
  704. package/dist/usecases/script/replace.d.ts +0 -3
  705. package/dist/usecases/script/replace.js +0 -33
  706. package/dist/usecases/script/replace.js.map +0 -1
  707. package/dist/usecases/script/review.d.ts +0 -3
  708. package/dist/usecases/script/review.js +0 -187
  709. package/dist/usecases/script/review.js.map +0 -1
  710. package/dist/usecases/script/role.d.ts +0 -3
  711. package/dist/usecases/script/role.js +0 -16
  712. package/dist/usecases/script/role.js.map +0 -1
  713. package/dist/usecases/script/scenes.d.ts +0 -3
  714. package/dist/usecases/script/scenes.js +0 -66
  715. package/dist/usecases/script/scenes.js.map +0 -1
  716. package/dist/usecases/script/script-patch.d.ts +0 -3
  717. package/dist/usecases/script/script-patch.js +0 -321
  718. package/dist/usecases/script/script-patch.js.map +0 -1
  719. package/dist/usecases/script/script-validate.d.ts +0 -3
  720. package/dist/usecases/script/script-validate.js +0 -27
  721. package/dist/usecases/script/script-validate.js.map +0 -1
  722. package/dist/usecases/script/session.d.ts +0 -62
  723. package/dist/usecases/script/session.js +0 -567
  724. package/dist/usecases/script/session.js.map +0 -1
  725. package/dist/usecases/script/split.d.ts +0 -3
  726. package/dist/usecases/script/split.js +0 -41
  727. package/dist/usecases/script/split.js.map +0 -1
  728. package/dist/usecases/script/state-add.d.ts +0 -3
  729. package/dist/usecases/script/state-add.js +0 -22
  730. package/dist/usecases/script/state-add.js.map +0 -1
  731. package/dist/usecases/script/state-delete.d.ts +0 -3
  732. package/dist/usecases/script/state-delete.js +0 -22
  733. package/dist/usecases/script/state-delete.js.map +0 -1
  734. package/dist/usecases/script/state-rename.d.ts +0 -3
  735. package/dist/usecases/script/state-rename.js +0 -16
  736. package/dist/usecases/script/state-rename.js.map +0 -1
  737. package/dist/usecases/script/states.d.ts +0 -3
  738. package/dist/usecases/script/states.js +0 -197
  739. package/dist/usecases/script/states.js.map +0 -1
  740. package/dist/usecases/script/summary.d.ts +0 -3
  741. package/dist/usecases/script/summary.js +0 -72
  742. package/dist/usecases/script/summary.js.map +0 -1
  743. package/dist/usecases/script/synopsis-generate.d.ts +0 -115
  744. package/dist/usecases/script/synopsis-generate.js +0 -776
  745. package/dist/usecases/script/synopsis-generate.js.map +0 -1
  746. package/dist/usecases/script/synopsis.d.ts +0 -3
  747. package/dist/usecases/script/synopsis.js +0 -45
  748. package/dist/usecases/script/synopsis.js.map +0 -1
  749. package/dist/usecases/script/timestamp-filter.d.ts +0 -4
  750. package/dist/usecases/script/timestamp-filter.js +0 -55
  751. package/dist/usecases/script/timestamp-filter.js.map +0 -1
  752. package/dist/usecases/script/timestamp.d.ts +0 -3
  753. package/dist/usecases/script/timestamp.js +0 -11
  754. package/dist/usecases/script/timestamp.js.map +0 -1
  755. package/dist/usecases/script/transition.d.ts +0 -3
  756. package/dist/usecases/script/transition.js +0 -23
  757. package/dist/usecases/script/transition.js.map +0 -1
  758. package/dist/usecases/script/type.d.ts +0 -3
  759. package/dist/usecases/script/type.js +0 -23
  760. package/dist/usecases/script/type.js.map +0 -1
  761. package/dist/usecases/script/v3/mutations.d.ts +0 -2
  762. package/dist/usecases/script/v3/mutations.js +0 -5
  763. package/dist/usecases/script/v3/mutations.js.map +0 -1
  764. package/dist/usecases/script/v4/mutations.d.ts +0 -2
  765. package/dist/usecases/script/v4/mutations.js +0 -6
  766. package/dist/usecases/script/v4/mutations.js.map +0 -1
  767. package/dist/usecases/script/v4/queries.d.ts +0 -15
  768. package/dist/usecases/script/v4/queries.js +0 -196
  769. package/dist/usecases/script/v4/queries.js.map +0 -1
  770. package/dist/usecases/script/working-copy.d.ts +0 -5
  771. package/dist/usecases/script/working-copy.js +0 -399
  772. package/dist/usecases/script/working-copy.js.map +0 -1
  773. package/dist/usecases/script/worldview.d.ts +0 -3
  774. package/dist/usecases/script/worldview.js +0 -17
  775. package/dist/usecases/script/worldview.js.map +0 -1
  776. package/dist/usecases/script/write-authoring.d.ts +0 -3
  777. package/dist/usecases/script/write-authoring.js +0 -263
  778. package/dist/usecases/script/write-authoring.js.map +0 -1
  779. package/dist/usecases/update.d.ts +0 -13
  780. package/dist/usecases/update.js +0 -128
  781. 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":"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"}
@@ -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;