@lingjingai/scriptctl 0.66.10 → 0.66.11

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.
@@ -0,0 +1,4 @@
1
+ # 0.66.11
2
+
3
+ - 全剧审核完成必须包含成功的 validate 工具结果;供应商纯文本拒绝和空工具结束保留为失败。
4
+ - 保留已完成单元检查点和失败证据,不新增模型调用、不更改审核路由。
@@ -66,7 +66,7 @@ ${JSON.stringify(n)}`].filter(Boolean).join(`
66
66
  ## \u7A0B\u5E8F\u626B\u63CF\u7684\u5236\u4F5C\u5B57\u6BB5\u7F3A\u9879
67
67
  ${w.map(O=>`${O.path}: ${O.message}`).join(`
68
68
  `)}
69
- \u9010\u9879\u67E5\u8BC1\u5E76\u4FEE\u590D\uFF0C\u5B8C\u6210\u540E validate \u590D\u626B\uFF1B\u8BC1\u636E\u4E0D\u8DB3\u65F6\u4FDD\u7559\u672A\u77E5\u5E76\u8BB0\u5F55\u5177\u4F53\u573A\u5730\u5740\u548C\u539F\u56E0\u3002`:n,U=await d.generate(y,{maxSteps:t.maxSteps,modelSettings:{temperature:0,timeout:{totalMs:t.timeoutMs}},onStepFinish:()=>{g+=1}});g=U?.steps?.length??0,p=U?.text?.trim()||`\u7B2C ${r} \u96C6\u5BA1\u6838\u5B8C\u6210`}catch(w){let y=w instanceof Error?w.message:String(w),U=/timeout|aborted|AbortError/i.test(y);f="failed",u=[...c,y].join(`
69
+ \u9010\u9879\u67E5\u8BC1\u5E76\u4FEE\u590D\uFF0C\u5B8C\u6210\u540E validate \u590D\u626B\uFF1B\u8BC1\u636E\u4E0D\u8DB3\u65F6\u4FDD\u7559\u672A\u77E5\u5E76\u8BB0\u5F55\u5177\u4F53\u573A\u5730\u5740\u548C\u539F\u56E0\u3002`:n,U=await d.generate(y,{maxSteps:t.maxSteps,modelSettings:{temperature:0,timeout:{totalMs:t.timeoutMs}},onStepFinish:()=>{g+=1}});g=U?.steps?.length??0,p=U?.text?.trim()||`\u7B2C ${r} \u96C6\u5BA1\u6838\u5B8C\u6210`,e.phase==="converge"&&!U.steps.some(O=>O.toolResults.some(E=>E.payload.toolName==="validate"&&!E.payload.isError))&&(f="failed",u=`\u5168\u5267\u5BA1\u6838\u672A\u6267\u884C\u4EFB\u52A1\u8981\u6C42\u7684 validate \u6536\u53E3\uFF1A${p}`,p="\u5168\u5267\u5BA1\u6838\u672A\u5B8C\u6210\u6536\u53E3\uFF0C\u5DF2\u4FDD\u7559\u6B64\u524D\u7ED3\u8BBA")}catch(w){let y=w instanceof Error?w.message:String(w),U=/timeout|aborted|AbortError/i.test(y);f="failed",u=[...c,y].join(`
70
70
  `),p=U?`\u5BA1\u6838\u5728 ${h} \u5206\u949F\u8D85\u65F6\u540E\u4E2D\u65AD\uFF0C\u5DF2\u4FDD\u7559\u6B64\u524D\u7ED3\u8BBA`:`\u7B2C ${r} \u96C6\u5BA1\u6838\u5931\u8D25`,U&&e.findings.push($E(r,h))}for(let w of e.usage)a.push({call_key:w.call_key,provider:w.provider,model:w.model,input_tokens:w.input_tokens,cached_input_tokens:w.cached_input_tokens,output_tokens:w.output_tokens,reasoning_tokens:w.reasoning_tokens});return{episode_number:r,...e.asset?{asset:e.asset}:{},state:f,message:p,error:u,findings:e.findings,wall_ms:Date.now()-i,steps:g,media_calls:e.mediaCalls,usage:a}}function bo(e){return Te(e,"").split(`
71
71
  episodes
72
72
  `)[0].trim()}function ss(e,t){return e.episodes.filter(o=>Math.abs(o.no-t)<=1&&o.synopsis).map(o=>`\u7B2C ${o.no} \u96C6\uFF1A${o.synopsis}`).join(`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lingjingai/scriptctl",
3
- "version": "0.66.10",
3
+ "version": "0.66.11",
4
4
  "description": "剧本阶段统一 CLI:素材转 Script v4,并兼容 Script v3 的本地写作、精修、校验和发布。",
5
5
  "type": "module",
6
6
  "bin": {