@qwen-code/qwen-code 0.22.2-preview.1 → 0.22.2
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.
- package/bundled/goal-draft/SKILL.md +109 -0
- package/bundled/qc-helper/docs/configuration/settings.md +10 -10
- package/bundled/qc-helper/docs/features/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/commands.md +2 -1
- package/bundled/qc-helper/docs/features/goals.md +58 -0
- package/bundled/qc-helper/docs/features/headless.md +13 -11
- package/bundled/qc-helper/docs/features/status-line.md +3 -3
- package/chunks/MaxSizedBox-X5FZSNAJ.js +112 -0
- package/chunks/{StandaloneSessionPicker-5D2L22SF.js → StandaloneSessionPicker-AVLI6VJP.js} +76 -76
- package/chunks/{acpAgent-4DCKLA32.js → acpAgent-MXEAN54C.js} +969 -255
- package/chunks/{agent-B4AFZL6H.js → agent-PJIPDWHB.js} +41 -41
- package/chunks/agent-headless-B4JVD7UK.js +87 -0
- package/chunks/{anthropicContentGenerator-U76GTVB6.js → anthropicContentGenerator-HGMBACVE.js} +7 -7
- package/chunks/{artifact-tool-XDJCZZCF.js → artifact-tool-5YT4QF7Y.js} +2 -2
- package/chunks/{askUserQuestion-ZXXERLEV.js → askUserQuestion-4SWJY65V.js} +2 -2
- package/chunks/bridge-FKZTVIS3.js +121 -0
- package/chunks/{channel-management-service-HXXS3HOZ.js → channel-management-service-X4AZ6IXX.js} +1 -1
- package/chunks/channel-settings-store-4UFCLBBG.js +117 -0
- package/chunks/{channel-worker-group-EVDC2P4K.js → channel-worker-group-27HMGD5S.js} +7 -6
- package/chunks/{channel-worker-manager-IJJZHGEI.js → channel-worker-manager-QEGX646Z.js} +9 -7
- package/chunks/{channel-worker-supervisor-YSKB5GVB.js → channel-worker-supervisor-UEW2WWCC.js} +5 -4
- package/chunks/{chunk-7QGEJI7M.js → chunk-23RFD54N.js} +1 -1
- package/chunks/{chunk-QR4AHMGQ.js → chunk-2K6ORIHJ.js} +13 -13
- package/chunks/{chunk-3D6PDLNJ.js → chunk-2NYCN6F2.js} +11 -11
- package/chunks/chunk-2TNL5KPM.js +49 -0
- package/chunks/{chunk-ZEADBZLO.js → chunk-3AFMQUTI.js} +3 -3
- package/chunks/{chunk-JSY43GMI.js → chunk-3DXFGHAJ.js} +185 -174
- package/chunks/{chunk-T45CL2NT.js → chunk-3FDFA4MZ.js} +3 -3
- package/chunks/{chunk-WBT3STGU.js → chunk-3I6UTTDX.js} +1 -1
- package/chunks/{chunk-FVDQ5E67.js → chunk-3JGZSIDA.js} +3 -3
- package/chunks/{chunk-J3CBIEDS.js → chunk-3SGB2UHX.js} +15 -10
- package/chunks/{chunk-77TOMRBG.js → chunk-43GGFFLY.js} +3 -3
- package/chunks/{chunk-ZJG323IA.js → chunk-43UYNAWX.js} +6 -4
- package/chunks/{chunk-NEZZHGEI.js → chunk-4CDSK5AZ.js} +6 -6
- package/chunks/chunk-4CMJKUND.js +95 -0
- package/chunks/{chunk-EB4VDXNI.js → chunk-4FTKQNWJ.js} +1 -1
- package/chunks/{chunk-PAJGKZAA.js → chunk-4HV6HH33.js} +10 -8
- package/chunks/{chunk-BQBUZDDH.js → chunk-4J657AJR.js} +3 -3
- package/chunks/{chunk-XMSMTU6H.js → chunk-4JWNNLPT.js} +4 -4
- package/chunks/{chunk-ALTQLFEG.js → chunk-4MQEPP3Y.js} +9 -84
- package/chunks/{chunk-3JKUX4PB.js → chunk-5O72BNDD.js} +8 -8
- package/chunks/{chunk-IKN3IUJP.js → chunk-5XBFCMWD.js} +2 -2
- package/chunks/{chunk-2YDYDDE2.js → chunk-66KDY3LV.js} +3 -3
- package/chunks/{chunk-VOEMVOM4.js → chunk-6CGL7E7G.js} +2 -2
- package/chunks/{chunk-SLEWBQWM.js → chunk-6DIGWMGT.js} +2 -2
- package/chunks/{chunk-SKNVVYIJ.js → chunk-6IUNAPLR.js} +3 -3
- package/chunks/{chunk-BHTJAO36.js → chunk-6LFJEACX.js} +4 -4
- package/chunks/{chunk-AP7WZONS.js → chunk-6LFTG244.js} +8 -8
- package/chunks/{chunk-PVBT5QPD.js → chunk-6PJOTWAN.js} +1 -1
- package/chunks/{chunk-5CMWFBML.js → chunk-77RG5SFQ.js} +1 -1
- package/chunks/{chunk-SDVF6A42.js → chunk-7DJCPZE3.js} +3 -3
- package/chunks/{chunk-ELY4QVIB.js → chunk-7EQQR46F.js} +1 -1
- package/chunks/{chunk-H3HZ4AWW.js → chunk-7UYV53BC.js} +1 -1
- package/chunks/{chunk-FCSWZAS3.js → chunk-A7YP63XN.js} +4 -4
- package/chunks/{chunk-E4I5MVBR.js → chunk-ABS25QER.js} +1 -1
- package/chunks/{chunk-WZ3QKPMQ.js → chunk-AGR5UROZ.js} +5 -5
- package/chunks/{chunk-5T4LWWNX.js → chunk-B7CDU2SL.js} +2 -2
- package/chunks/{chunk-HPECDZ6X.js → chunk-BAJKAAOY.js} +68 -64
- package/chunks/{chunk-WXDZZFH3.js → chunk-BBWV7ONL.js} +3 -3
- package/chunks/{chunk-4TPAG3O7.js → chunk-BFPESSTR.js} +1 -1
- package/chunks/{chunk-DID6IRGC.js → chunk-BNMF3K5X.js} +20 -19
- package/chunks/{chunk-IPQA4SR5.js → chunk-BWORX6FA.js} +1 -1
- package/chunks/{chunk-BKDAF7ES.js → chunk-BXDAPVQU.js} +2 -2
- package/chunks/{chunk-IOGKXPL3.js → chunk-C6K43ZDE.js} +4 -4
- package/chunks/{chunk-7OBH4AM2.js → chunk-CAJTKR6W.js} +5 -5
- package/chunks/{chunk-SUE2ZMUH.js → chunk-CCBZDVUA.js} +30 -25
- package/chunks/{chunk-U45D46O5.js → chunk-CMHFCLBU.js} +1 -1
- package/chunks/{chunk-AWFZDYSD.js → chunk-CPGJJJLU.js} +1 -1
- package/chunks/{chunk-LRKMQPMD.js → chunk-CQH5KTKC.js} +1 -1
- package/chunks/{chunk-3WBMPR3S.js → chunk-CSMI4FP5.js} +1 -1
- package/chunks/{chunk-JECO75XD.js → chunk-D5LUXLUH.js} +2 -2
- package/chunks/{chunk-UWICO5KN.js → chunk-DZWPESIF.js} +3 -3
- package/chunks/{chunk-I6DY753S.js → chunk-EFUM7RVY.js} +2 -2
- package/chunks/{chunk-3UZCLCXR.js → chunk-EKSCLBBF.js} +3 -3
- package/chunks/{chunk-LJP2BBMK.js → chunk-EOGELB3H.js} +4 -4
- package/chunks/{chunk-624NHDGB.js → chunk-ERFDKH32.js} +11 -0
- package/chunks/{chunk-GTUZ3R6I.js → chunk-F5SZP77N.js} +310 -78
- package/chunks/{chunk-SQPOJ4ZI.js → chunk-F6FV3C5K.js} +12 -7
- package/chunks/{chunk-TDQBVEPK.js → chunk-F7TNAPZ4.js} +9 -7
- package/chunks/{chunk-F7M6ZFGU.js → chunk-FBSSIAAQ.js} +6 -6
- package/chunks/{chunk-2FN2HNTI.js → chunk-FDY5RMGH.js} +2 -2
- package/chunks/{chunk-PTQF7WRA.js → chunk-FY76G3G5.js} +5 -5
- package/chunks/{chunk-X3XGCJ32.js → chunk-G34IR3D6.js} +9 -9
- package/chunks/{chunk-ZWKGZB2K.js → chunk-H2WDGQ6D.js} +3 -3
- package/chunks/chunk-H72BQNM3.js +645 -0
- package/chunks/{chunk-ILPXSKGQ.js → chunk-HVEYF6VT.js} +2 -2
- package/chunks/{chunk-5JCZ3UKB.js → chunk-HVQ3B7FF.js} +2 -2
- package/chunks/{chunk-VBF4KZRQ.js → chunk-IJKTMLBE.js} +1 -1
- package/chunks/{chunk-R7G7GKOX.js → chunk-IK5BW3CS.js} +2 -2
- package/chunks/{chunk-UCQOSV6A.js → chunk-IOPCFOTF.js} +3 -3
- package/chunks/{chunk-O3BUXIPM.js → chunk-IZIVM7LZ.js} +3 -3
- package/chunks/{chunk-I6VVOZDK.js → chunk-J2OSJFP3.js} +2 -2
- package/chunks/{chunk-AYVIGUUK.js → chunk-JB4JIVTJ.js} +1 -1
- package/chunks/{chunk-76WGY6LW.js → chunk-JCQD3INC.js} +3 -3
- package/chunks/{chunk-XUX6O2ZT.js → chunk-JHS74YAB.js} +4 -1
- package/chunks/{chunk-KPF2K55D.js → chunk-JSC3H3TD.js} +27 -4
- package/chunks/{chunk-CZFQ62RM.js → chunk-JSHHYW6T.js} +4 -4
- package/chunks/{chunk-MCKJTBZN.js → chunk-JU4EEXC7.js} +2 -2
- package/chunks/{chunk-T6OODF2U.js → chunk-JWALNCLT.js} +1 -1
- package/chunks/{chunk-CDUN63IN.js → chunk-K2NQPH5D.js} +3 -3
- package/chunks/{chunk-7UJTY5V3.js → chunk-KEKZFOL6.js} +1 -1
- package/chunks/{chunk-5URK47RN.js → chunk-KUX5D6DK.js} +1197 -336
- package/chunks/{chunk-OF2DPXUS.js → chunk-L2M46FP5.js} +116 -21
- package/chunks/{chunk-6US7BF3G.js → chunk-L6BZRIUL.js} +2 -2
- package/chunks/{chunk-TR7G7XFQ.js → chunk-L6YT5H34.js} +4 -4
- package/chunks/{chunk-W2WRNJKX.js → chunk-LDP5OD6N.js} +5 -5
- package/chunks/{chunk-OLS3MAXQ.js → chunk-LXIBMVRN.js} +7 -7
- package/chunks/{chunk-GNMJNDZE.js → chunk-M6FOJXW3.js} +1 -1
- package/chunks/{chunk-J5352S3S.js → chunk-MIIVI25Q.js} +3 -3
- package/chunks/{chunk-K3LPAED5.js → chunk-MQM5PJML.js} +24 -4
- package/chunks/{chunk-27ONXAFY.js → chunk-NIFYWDYN.js} +1 -1
- package/chunks/{chunk-IJVDHPKD.js → chunk-NU7RKEZR.js} +2 -2
- package/chunks/{chunk-LWLEPXKK.js → chunk-O2UN57NX.js} +2 -2
- package/chunks/{chunk-5SM2AK65.js → chunk-OIP7C4FE.js} +5 -5
- package/chunks/{chunk-UCSV2IZW.js → chunk-OIVXBW3W.js} +3 -3
- package/chunks/{chunk-TOF4UZHH.js → chunk-P2SU6ZTI.js} +3 -3
- package/chunks/{chunk-JLU3FPQR.js → chunk-P5GGM4KS.js} +5 -5
- package/chunks/{chunk-ZKAZP2ZG.js → chunk-PDMJ3KGS.js} +2 -2
- package/chunks/{chunk-RRKNX553.js → chunk-PDQGMSZK.js} +1 -1
- package/chunks/{chunk-KQYW2GB5.js → chunk-PFCQ62V4.js} +5 -5
- package/chunks/{chunk-JLGFGPZJ.js → chunk-PKAYJDB3.js} +2 -2
- package/chunks/{chunk-GTUKW3I6.js → chunk-PPKZ7JOE.js} +1 -1
- package/chunks/{chunk-HABT2Z7R.js → chunk-Q26AYA62.js} +4 -4
- package/chunks/{chunk-WEGXPP5E.js → chunk-QFCDF5PL.js} +1 -1
- package/chunks/{chunk-R3T33BG5.js → chunk-QP4C6WCE.js} +3 -3
- package/chunks/{chunk-Z6L3C4VF.js → chunk-R4PMVSR5.js} +27 -25
- package/chunks/{chunk-AKQA3WCH.js → chunk-RIEFGNTP.js} +579 -3419
- package/chunks/{chunk-ATLGYSYH.js → chunk-RJC5EIKY.js} +4 -4
- package/chunks/chunk-RKFGE7JH.js +93 -0
- package/chunks/{chunk-CPPYZHBN.js → chunk-RU7BK6B3.js} +1 -1
- package/chunks/{chunk-VYWCFWI5.js → chunk-RUGNCYNO.js} +11 -633
- package/chunks/{chunk-ZLTEQYNC.js → chunk-SFPGAQUL.js} +2 -2
- package/chunks/{chunk-TMGAS5TO.js → chunk-SJ3ZUWFK.js} +26 -4
- package/chunks/{chunk-DEYPMJPD.js → chunk-SMPR7SPO.js} +1 -1
- package/chunks/{chunk-7CWEZQ6T.js → chunk-STUJ7IMZ.js} +0 -77
- package/chunks/{chunk-BPMVPWBT.js → chunk-T32W2JHI.js} +6 -6
- package/chunks/chunk-T3WXYEZ4.js +304 -0
- package/chunks/{chunk-XIRDDFRS.js → chunk-TGWAQ5RB.js} +695 -294
- package/chunks/{chunk-EC5BONC3.js → chunk-TPI7O7HR.js} +1 -1
- package/chunks/{chunk-OI2DR6QB.js → chunk-TRZTNIQ6.js} +2 -2
- package/chunks/{chunk-T2CRBIDJ.js → chunk-TTX2JUE6.js} +1 -1
- package/chunks/{chunk-2NNTE2ED.js → chunk-UHQFIS7N.js} +15 -0
- package/chunks/{chunk-KOJ6MHD5.js → chunk-UTLCH2FK.js} +1 -1
- package/chunks/{chunk-7DPKPBOQ.js → chunk-V2NDP3I4.js} +2 -2
- package/chunks/{chunk-ZGWDHSUM.js → chunk-V4QXXQJ2.js} +3 -3
- package/chunks/{chunk-XR7OIAQF.js → chunk-V5J4J5TP.js} +2 -2
- package/chunks/{chunk-X2UOOG5V.js → chunk-VQUGEVGR.js} +1 -1
- package/chunks/{chunk-XJS54K4A.js → chunk-VTHREBQM.js} +2 -2
- package/chunks/{chunk-V3GINY6K.js → chunk-VVW4ZNFY.js} +3 -3
- package/chunks/{chunk-66GIFJ63.js → chunk-W5MJJ2V7.js} +1 -1
- package/chunks/{chunk-FPH6TXD3.js → chunk-WAOIHTJS.js} +1 -1
- package/chunks/{chunk-FN5C6C7G.js → chunk-WKK5BQNP.js} +151 -60
- package/chunks/chunk-XDFHY4R3.js +1584 -0
- package/chunks/{chunk-L436XFLJ.js → chunk-XDLEZ5HX.js} +1 -1
- package/chunks/{chunk-VL4YX3FH.js → chunk-XF63PKEN.js} +1 -1
- package/chunks/{chunk-3FSBMAYD.js → chunk-XQFT3QUF.js} +1 -1
- package/chunks/{chunk-2MHGD7EE.js → chunk-XRSOI3DL.js} +1 -1
- package/chunks/{chunk-FJWICLG7.js → chunk-Y3QL45LS.js} +1 -1
- package/chunks/{chunk-TFV4RXPU.js → chunk-Y6LSMB6J.js} +1 -1
- package/chunks/{chunk-2SERYG4T.js → chunk-YTDVNSUQ.js} +1 -1
- package/chunks/{chunk-AA7VBRBG.js → chunk-Z7FLBQPR.js} +7 -7
- package/chunks/{chunk-4K44OMLI.js → chunk-Z7TGYN5F.js} +3 -3
- package/chunks/{chunk-FJAITR4L.js → chunk-ZFKOCECU.js} +2 -2
- package/chunks/chunk-ZGXYO7DY.js +3416 -0
- package/chunks/{chunk-OT4YKUUV.js → chunk-ZU4UDIWX.js} +2 -2
- package/chunks/config-utils-BBOCOGZW.js +113 -0
- package/chunks/contextCommand-EET67MQ2.js +108 -0
- package/chunks/{core-runtime-CEJRHCRF.js → core-runtime-677KFX6Q.js} +53 -53
- package/chunks/{create-sub-session-RVHSWVAP.js → create-sub-session-23ITIELI.js} +3 -3
- package/chunks/{create-sub-session-DFZVIG56.js → create-sub-session-JKZAYZX7.js} +160 -79
- package/chunks/{cron-create-IJGVR5R2.js → cron-create-KJ4IY6PP.js} +57 -10
- package/chunks/{cron-delete-4N5BI6GL.js → cron-delete-MBLQCAYY.js} +4 -4
- package/chunks/{cron-list-2CATIPUX.js → cron-list-DWH2PQ47.js} +4 -4
- package/chunks/{daemon-NAYK4XXU.js → daemon-MJQUO7RA.js} +28 -1
- package/chunks/{daemon-git-worktree-guard-L6ZUFKF7.js → daemon-git-worktree-guard-6MVAAZZZ.js} +53 -53
- package/chunks/daemon-status-provider-RFKZOK3S.js +119 -0
- package/chunks/daemon-trust-policy-DRZPFB4Q.js +114 -0
- package/chunks/{daemon-trust-policy-monitor-2G3EKQEU.js → daemon-trust-policy-monitor-B5U6TQX5.js} +59 -59
- package/chunks/deferred-core-runtime-BBVIOP24.js +116 -0
- package/chunks/{display-image-6KHQNEAE.js → display-image-BE7I6ZB6.js} +5 -5
- package/chunks/{dist-FVJZSIO4.js → dist-ILDBUWDB.js} +71 -19
- package/chunks/{dist-6H6RZ5H6.js → dist-QODVOVWI.js} +58 -35
- package/chunks/earlyInputCapture-2JOMMNQ4.js +109 -0
- package/chunks/{edit-ZERGX3RV.js → edit-BSV6YRVW.js} +42 -42
- package/chunks/{en-6MDBWMTG.js → en-YLXBXM4Z.js} +2 -1
- package/chunks/{enter-worktree-UOZ6ZTP7.js → enter-worktree-MQXFFPKM.js} +7 -7
- package/chunks/{enterPlanMode-W2RP3P5B.js → enterPlanMode-PKNF35FE.js} +41 -41
- package/chunks/{environment-ZBJ23YVR.js → environment-MOZMPUHR.js} +55 -55
- package/chunks/errors-DMPQVYJL.js +115 -0
- package/chunks/{exit-worktree-G2QATUCV.js → exit-worktree-L344UY7K.js} +7 -7
- package/chunks/{exitPlanMode-VFJ5R5DD.js → exitPlanMode-UE4FGCY4.js} +41 -41
- package/chunks/{fast-path-4MWBCEUF.js → fast-path-773PV7PU.js} +5 -5
- package/chunks/{gemini-X5GQHQYF.js → gemini-IP4FJAP5.js} +101 -100
- package/chunks/{geminiContentGenerator-UDSWXZXL.js → geminiContentGenerator-PUNEBWJW.js} +8 -8
- package/chunks/{glob-DKTNG32L.js → glob-CZHOWUEA.js} +41 -41
- package/chunks/{goal-tools-CNVXMSZD.js → goal-tools-YZQJXTGH.js} +9 -8
- package/chunks/{grep-3NLSS32D.js → grep-5GPICQBU.js} +6 -6
- package/chunks/handleAutoUpdate-SGXKTQM6.js +111 -0
- package/chunks/{i18n-KX7FEKJJ.js → i18n-B42HKHKH.js} +54 -54
- package/chunks/{image-gen-63NN2H5N.js → image-gen-HAYOEQ4O.js} +9 -9
- package/chunks/initializer-FB66WYR3.js +115 -0
- package/chunks/installationInfo-Y7AULNMX.js +109 -0
- package/chunks/{keychain-token-storage-3MGFRYGM.js → keychain-token-storage-37XPR34V.js} +2 -2
- package/chunks/list-2HWGSVRA.js +118 -0
- package/chunks/{list-agents-EXRSHIDJ.js → list-agents-DI3YFTDT.js} +2 -2
- package/chunks/loadedSettingsAdapter-7Y7IEI6T.js +112 -0
- package/chunks/{loggingContentGenerator-73C7TKDK.js → loggingContentGenerator-2GGZNGLG.js} +35 -22
- package/chunks/{loop-wakeup-XBPB2BRO.js → loop-wakeup-XJFONSQ7.js} +5 -5
- package/chunks/{ls-WFONAND2.js → ls-3VAT2J7A.js} +4 -4
- package/chunks/{lsp-DUKPDUXN.js → lsp-5W7IRUBH.js} +2 -2
- package/chunks/{managed-npm-update-H2KOLQZU.js → managed-npm-update-5TEV2E3J.js} +54 -54
- package/chunks/mcp-QGG5NMJJ.js +112 -0
- package/chunks/{monitor-TGCMNJJH.js → monitor-FI7PY36Z.js} +41 -41
- package/chunks/nonInteractiveCli-4LO2TL72.js +186 -0
- package/chunks/{notebook-edit-YEUNZYDX.js → notebook-edit-TPGMGBST.js} +42 -42
- package/chunks/{openaiContentGenerator-J7LD4VSL.js → openaiContentGenerator-SUCYANUZ.js} +24 -24
- package/chunks/pidfile-JMF2CLMY.js +113 -0
- package/chunks/{processUtils-ZHFC7CSL.js → processUtils-IQZBYWSB.js} +2 -2
- package/chunks/prompt-terminal-ledger-DCZO6S7C.js +107 -0
- package/chunks/{qwenContentGenerator-YEWWK3JQ.js → qwenContentGenerator-J4TXFGJT.js} +46 -46
- package/chunks/{qwenOAuth2-JIYAWXTW.js → qwenOAuth2-RF33DNZW.js} +8 -8
- package/chunks/{read-file-ZQI3WPVK.js → read-file-QE2B5FTX.js} +12 -12
- package/chunks/{read-mcp-resource-7A7NFSFL.js → read-mcp-resource-XD257PGJ.js} +2 -2
- package/chunks/{record-artifact-CPJ4IJSD.js → record-artifact-RZGZBENU.js} +4 -4
- package/chunks/{report-findings-VFM5DENC.js → report-findings-Q3SYKKW5.js} +5 -5
- package/chunks/{request-shutdown-6IW46GD7.js → request-shutdown-BCLA3JV2.js} +7 -7
- package/chunks/resumeHistoryUtils-CZ4JRDVW.js +120 -0
- package/chunks/{ripGrep-46N4FLOS.js → ripGrep-R6B6HWPX.js} +17 -17
- package/chunks/{run-qwen-serve-WHWU7NZ6.js → run-qwen-serve-TPHZMSXJ.js} +148 -319
- package/chunks/{runtime-E7BSPWQP.js → runtime-TTIGSBM4.js} +62 -62
- package/chunks/scheduled-tasks-QB4ZVUQS.js +129 -0
- package/chunks/{scheduler-TJPATFOM.js → scheduler-YRUG22M7.js} +55 -55
- package/chunks/{sdk-exporters-http-XXSKBD2C.js → sdk-exporters-http-KCJ4ZFG7.js} +2 -2
- package/chunks/{sdk-impl-VPNBLV7I.js → sdk-impl-HLSEDAEP.js} +4 -4
- package/chunks/{send-message-OXZK6USO.js → send-message-Y5I6NYAM.js} +7 -7
- package/chunks/serve-MXXCDAQN.js +120 -0
- package/chunks/{server-AXCN7QBJ.js → server-DFUSSSHI.js} +19760 -19444
- package/chunks/{session-HO4US3AG.js → session-3TEHNENZ.js} +100 -99
- package/chunks/{settings-B2PFJJN4.js → settings-VOZYKLTT.js} +58 -58
- package/chunks/{shell-7XMSANI3.js → shell-6RTKZVMI.js} +41 -41
- package/chunks/{skill-NL3VH562.js → skill-FEOKFX26.js} +18 -18
- package/chunks/{skill-settings-SKMN5YXC.js → skill-settings-VA4XVYVL.js} +58 -58
- package/chunks/spawnChannel-F6WVP723.js +114 -0
- package/chunks/{standalone-update-XOCWGXAH.js → standalone-update-RGILUQVK.js} +55 -55
- package/chunks/{startInteractiveUI-G2XKSCQ7.js → startInteractiveUI-WHJPFOGH.js} +2757 -2223
- package/chunks/{syntheticOutput-5AJ444QT.js → syntheticOutput-ML43GEFN.js} +3 -3
- package/chunks/{task-create-TY7P6UHG.js → task-create-TMSV7RD5.js} +11 -11
- package/chunks/{task-list-BELMPA75.js → task-list-W55RBFRX.js} +5 -5
- package/chunks/{task-stop-U3S3KZG2.js → task-stop-CXEH5L2D.js} +2 -2
- package/chunks/{task-update-O4IGDPCK.js → task-update-N536I4GQ.js} +11 -11
- package/chunks/{team-create-IYBUOORE.js → team-create-QYSWCYCL.js} +41 -41
- package/chunks/{team-delete-YWFXX77L.js → team-delete-FJRFX33M.js} +5 -5
- package/chunks/{team-plan-approval-YKU57LBM.js → team-plan-approval-P7DAD644.js} +41 -41
- package/chunks/{terminal-image-renderer-NREKYTAD.js → terminal-image-renderer-SMQE46UJ.js} +55 -55
- package/chunks/theme-manager-RFO5WWFF.js +104 -0
- package/chunks/{todoWrite-435EO2CS.js → todoWrite-WDJNQEMW.js} +43 -25
- package/chunks/{tool-search-4Q3KASIQ.js → tool-search-F2EMIAPV.js} +17 -17
- package/chunks/total-session-admission-HTVTP4BS.js +116 -0
- package/chunks/{trustedFolders-OILZCHRD.js → trustedFolders-7OCNMUQE.js} +54 -54
- package/chunks/{update-relaunch-4DC2KKFS.js → update-relaunch-4GF3OXMB.js} +5 -5
- package/chunks/{updateCheck-AK4COHNK.js → updateCheck-7QBDXZRT.js} +56 -56
- package/chunks/useAutoAcceptIndicator-UI4SNL2O.js +122 -0
- package/chunks/{validateNonInterActiveAuth-YAE4YPO3.js → validateNonInterActiveAuth-BPPA563H.js} +96 -95
- package/chunks/{version-QFP7OGWX.js → version-ANP4TS6O.js} +1 -1
- package/chunks/{web-fetch-6T23IK6Q.js → web-fetch-QJADSAH3.js} +16 -16
- package/chunks/{web-search-WBWTCZK2.js → web-search-7TTQKEKM.js} +9 -9
- package/chunks/{workflow-FMAA3D4R.js → workflow-5XN6XSOT.js} +105 -60
- package/chunks/workspace-providers-status-PDFZWL5Q.js +116 -0
- package/chunks/{workspace-registration-store-CMMX7EPX.js → workspace-registration-store-XKVW2YVH.js} +1 -1
- package/chunks/{workspace-registry-WJLZPRTG.js → workspace-registry-23R7XRB5.js} +61 -59
- package/chunks/workspace-service-MUYO2QIC.js +131 -0
- package/chunks/workspace-skills-status-IKECTOOQ.js +115 -0
- package/chunks/{workspace-trust-reconciler-PJDQUTJL.js → workspace-trust-reconciler-KLGOB53D.js} +67 -65
- package/chunks/write-file-GGRBB5TZ.js +90 -0
- package/chunks/{zh-TW-MV4FWFB6.js → zh-TW-RPTMRTHG.js} +2 -1
- package/chunks/{zh-X3WGU6SI.js → zh-UNY63FR3.js} +2 -1
- package/chunks/{zoom-image-WVYVFRXF.js → zoom-image-6ASG6J4C.js} +12 -12
- package/cli.js +14 -14
- package/locales/en.js +2 -0
- package/locales/zh-TW.js +2 -0
- package/locales/zh.js +2 -0
- package/package.json +3 -3
- package/web-shell/assets/{abnfDiagram-VCTEODGH-d-8xa8uz.js → abnfDiagram-VCTEODGH-uS-vtfs3.js} +1 -1
- package/web-shell/assets/{arc-BhB7CrGK.js → arc-BSTnk5pu.js} +1 -1
- package/web-shell/assets/{architectureDiagram-5GKGNRK7-BDCd_IcJ.js → architectureDiagram-5GKGNRK7-DCMyiqzy.js} +1 -1
- package/web-shell/assets/{blockDiagram-NRAW4CY4-C-AHu6mi.js → blockDiagram-NRAW4CY4-C7_gt0r1.js} +1 -1
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-CFjQt0vl.js → c4Diagram-UCG6FXSJ-BeQg2L8B.js} +1 -1
- package/web-shell/assets/channel-CENAhErJ.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-DRjwqaDq.js → chunk-2Q5K7J3B-DnV9bKBe.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-eHM9noJE.js → chunk-5VM5RSS4-rT1GAcT7.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-CcSWUYn1.js → chunk-F27PBJKO-BcgSxqGA.js} +1 -1
- package/web-shell/assets/{chunk-G27WJ6UU-DNr-RF5S.js → chunk-G27WJ6UU-Bw1ZhyZq.js} +1 -1
- package/web-shell/assets/{chunk-JWPE2WC7-rVJHoNF8.js → chunk-JWPE2WC7-D4iDw-96.js} +1 -1
- package/web-shell/assets/{chunk-LCL6LL3I-B2aX0Gzy.js → chunk-LCL6LL3I-D3MB3GTZ.js} +1 -1
- package/web-shell/assets/{chunk-POPQ4Y6H-DVp07n32.js → chunk-POPQ4Y6H-Cep2ndrS.js} +1 -1
- package/web-shell/assets/{chunk-SVP7TREG-C6QB_KUr.js → chunk-SVP7TREG-BuahMHJc.js} +1 -1
- package/web-shell/assets/{chunk-XXDRQBXY-CLVxDNCy.js → chunk-XXDRQBXY-BdujIvJY.js} +1 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-CM6FArGH.js +1 -0
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-CM6FArGH.js +1 -0
- package/web-shell/assets/{cose-bilkent-JH36ORCC-B_aKX3A3.js → cose-bilkent-JH36ORCC-CGLLUbF8.js} +1 -1
- package/web-shell/assets/{cynefin-OW5HDTMX-BBw2pPUa.js → cynefin-OW5HDTMX-D6kDsRSh.js} +1 -1
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-WWPiBTwk.js → cynefinDiagram-5FMLGOSQ-CCy78qZx.js} +1 -1
- package/web-shell/assets/{dagre-3AP2YEHR-CPtIdka-.js → dagre-3AP2YEHR-D5gJuJsf.js} +1 -1
- package/web-shell/assets/{diagram-S7CK7UJ4-Dj5og1Xi.js → diagram-S7CK7UJ4-ZwEZ5W__.js} +1 -1
- package/web-shell/assets/{diagram-UQ7AKVKN-CC_x70YC.js → diagram-UQ7AKVKN-B036APjv.js} +1 -1
- package/web-shell/assets/{diagram-VSXAHHWV-rXMfsO4n.js → diagram-VSXAHHWV-BfDJ57Fq.js} +1 -1
- package/web-shell/assets/{diagram-VX7I27RA-DEmLYQbh.js → diagram-VX7I27RA-Wha0p5rT.js} +1 -1
- package/web-shell/assets/{diagram-Z3DM3KII-B0ys6Vxx.js → diagram-Z3DM3KII-L20bz2K1.js} +1 -1
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-Bq6y6lKH.js → ebnfDiagram-PWID7BFC-D1ZM0Cp7.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-l69JeBZ4.js → erDiagram-SSCWMZ5O-CMtA19v8.js} +1 -1
- package/web-shell/assets/{flowDiagram-A5DVABFB-Cm-EzGY4.js → flowDiagram-A5DVABFB-D96m326S.js} +1 -1
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-BRS9ZOp7.js → ganttDiagram-EL5Y4UJY-BuHiYG2o.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-DAMRKgLk.js → gitGraphDiagram-WWUBYQGX-Ck3NmkSw.js} +1 -1
- package/web-shell/assets/index-8hXIpvo4.js +1865 -0
- package/web-shell/assets/{index-Bncx8E8M.js → index-CBGz4Qjl.js} +1 -1
- package/web-shell/assets/{index-C-XlQn24.css → index-DclEv91i.css} +1 -1
- package/web-shell/assets/{infoDiagram-RXCK75RN-DasffaZp.js → infoDiagram-RXCK75RN-B6DAOyXe.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-5VMMS53U-CmRUt3C-.js → ishikawaDiagram-5VMMS53U-Bpg-joFo.js} +1 -1
- package/web-shell/assets/{journeyDiagram-EYS64GPL-DzhE_c1Z.js → journeyDiagram-EYS64GPL-BclrHzGa.js} +1 -1
- package/web-shell/assets/{kanban-definition-3QL26DDD-BH5b6nn3.js → kanban-definition-3QL26DDD-5gJzNTYG.js} +1 -1
- package/web-shell/assets/{layout-BxoLK-LY.js → layout-CEz_1L8z.js} +1 -1
- package/web-shell/assets/{linear-CqDPvVI7.js → linear-CBjTq9Hc.js} +1 -1
- package/web-shell/assets/{mermaid.core-DBoN4plo.js → mermaid.core-Dzhbxx_I.js} +6 -6
- package/web-shell/assets/{mindmap-definition-FBJOCRG2-DJJtXPEM.js → mindmap-definition-FBJOCRG2-DQdVqlBF.js} +1 -1
- package/web-shell/assets/{pegDiagram-XKGWAZYB-DmgPXP5l.js → pegDiagram-XKGWAZYB-D1JZlYXL.js} +1 -1
- package/web-shell/assets/{pieDiagram-E7YTZNPT-1ezjzcI5.js → pieDiagram-E7YTZNPT-BmkpYL0w.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-AXDQQJYC-ChKARz3k.js → quadrantDiagram-AXDQQJYC-DRvD6co5.js} +1 -1
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-k7mNB_QT.js → railroadDiagram-O6MQD6OU-CEdjDuoo.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-B0XFsii0.js → requirementDiagram-EFPCY7ZU-BCHG-ie8.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-repJ2Ukk.js → sankeyDiagram-P5KCCOFB-C9cZMnye.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-D0gUSKGu.js → sequenceDiagram-WJ2MYXX4-DYHRV4zL.js} +1 -1
- package/web-shell/assets/{sizeCapture-X5ZJPWSS-CE463F74.js → sizeCapture-X5ZJPWSS-DlK21aye.js} +1 -1
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-003zYtJa.js → stateDiagram-HBIQ2CUA-BrmZssvk.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-B2Q7XDaE.js +1 -0
- package/web-shell/assets/{swimlanes-XN3QIQJK-DBj8MFpu.js → swimlanes-XN3QIQJK-D9xfcayR.js} +1 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-DpZPOSbX.js +8 -0
- package/web-shell/assets/{timeline-definition-24CTP7MA-D2aCh4a9.js → timeline-definition-24CTP7MA-D4gdDL_d.js} +1 -1
- package/web-shell/assets/{vennDiagram-4TSXK5OY-BHMfWBpl.js → vennDiagram-4TSXK5OY-DdhIExjI.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-VM6X3IG4-RdHAj66j.js → wardleyDiagram-VM6X3IG4-C9RS_Zof.js} +1 -1
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-BgJWOvq0.js → xychartDiagram-S5SC5T6Z-orRgmxWk.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/MaxSizedBox-BFVLZP2E.js +0 -112
- package/chunks/agent-headless-UCBCS4V4.js +0 -87
- package/chunks/bridge-FRNYLYY7.js +0 -119
- package/chunks/channel-settings-store-IV4KDL7N.js +0 -117
- package/chunks/chunk-JS73NNWF.js +0 -30
- package/chunks/chunk-VGHZT6JR.js +0 -51
- package/chunks/config-utils-PMX4QZ5Y.js +0 -113
- package/chunks/contextCommand-NZRLVAFC.js +0 -108
- package/chunks/daemon-status-provider-FTTYZEKN.js +0 -118
- package/chunks/daemon-trust-policy-WMGFPA3Z.js +0 -114
- package/chunks/deferred-core-runtime-BUFEFYNA.js +0 -116
- package/chunks/earlyInputCapture-ROPLMXA7.js +0 -109
- package/chunks/errors-U5KNAADB.js +0 -115
- package/chunks/handleAutoUpdate-W4BUYFT7.js +0 -111
- package/chunks/initializer-SNVVLS7Y.js +0 -115
- package/chunks/installationInfo-D4XGQNHJ.js +0 -109
- package/chunks/list-WYECMLXZ.js +0 -118
- package/chunks/loadedSettingsAdapter-5WZBXBCR.js +0 -112
- package/chunks/mcp-CBWAROY3.js +0 -112
- package/chunks/nonInteractiveCli-O232UUV7.js +0 -185
- package/chunks/pidfile-MSPQ255Y.js +0 -113
- package/chunks/prompt-terminal-ledger-YPGMNDXT.js +0 -107
- package/chunks/resumeHistoryUtils-35D4KAVT.js +0 -120
- package/chunks/serve-WQ54UIYG.js +0 -120
- package/chunks/spawnChannel-NE43EEO3.js +0 -113
- package/chunks/theme-manager-IJS6OICX.js +0 -104
- package/chunks/total-session-admission-L5RPEFZ2.js +0 -114
- package/chunks/useAutoAcceptIndicator-O2N2Q6KG.js +0 -122
- package/chunks/workspace-providers-status-OCFEWIPQ.js +0 -116
- package/chunks/workspace-service-5ZOBMMIB.js +0 -131
- package/chunks/workspace-skills-status-B6NJZD4B.js +0 -115
- package/chunks/write-file-B2RNX6SU.js +0 -90
- package/web-shell/assets/channel-CU-Zyv0r.js +0 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-C0J2_LKs.js +0 -1
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-C0J2_LKs.js +0 -1
- package/web-shell/assets/index-gdvMN4J1.js +0 -1860
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-2uACDdJN.js +0 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-C4JJkavU.js +0 -8
|
@@ -1108,6 +1108,21 @@ var Storage = class _Storage {
|
|
|
1108
1108
|
getWorkflowRunsDir() {
|
|
1109
1109
|
return path2.join(this.getProjectDir(), "workflows");
|
|
1110
1110
|
}
|
|
1111
|
+
/**
|
|
1112
|
+
* Generated-workflow scripts directory: `<projectDir>/workflows/generated`.
|
|
1113
|
+
* A trusted root for `Workflow({scriptPath})` / `workflow({scriptPath})`
|
|
1114
|
+
* that is NOT a saved-workflow scope: scripts here are never listed as
|
|
1115
|
+
* `/<name>` slash commands and cannot be reached by `workflow('<name>')`.
|
|
1116
|
+
* It exists for tooling that emits a script for one run (a CLI subcommand
|
|
1117
|
+
* generating a fan-out for the model to dispatch) — such a script has no
|
|
1118
|
+
* business in the user's command namespace, and the runtime dir keeps it
|
|
1119
|
+
* out of the project tree. Layout below the root is the writer's; the
|
|
1120
|
+
* loader trusts the whole subtree. A subprocess reaches it as
|
|
1121
|
+
* `$QWEN_CODE_PROJECT_DIR/workflows/generated`.
|
|
1122
|
+
*/
|
|
1123
|
+
getGeneratedWorkflowsDir() {
|
|
1124
|
+
return path2.join(this.getWorkflowRunsDir(), "generated");
|
|
1125
|
+
}
|
|
1111
1126
|
/**
|
|
1112
1127
|
* Path to the persisted snapshot of a completed workflow run.
|
|
1113
1128
|
*/
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
isGitRepository
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-SMPR7SPO.js";
|
|
6
6
|
import {
|
|
7
7
|
createDebugLogger
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-UHQFIS7N.js";
|
|
9
9
|
import {
|
|
10
10
|
init_esbuild_shims
|
|
11
11
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -12,19 +12,19 @@ import {
|
|
|
12
12
|
} from "./chunk-MR3PXB6E.js";
|
|
13
13
|
import {
|
|
14
14
|
ideContextStore
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-TGWAQ5RB.js";
|
|
16
16
|
import {
|
|
17
17
|
require_proper_lockfile
|
|
18
18
|
} from "./chunk-MLXTMF7H.js";
|
|
19
19
|
import {
|
|
20
20
|
atomicWriteFileSync
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-23RFD54N.js";
|
|
22
22
|
import {
|
|
23
23
|
FatalConfigError,
|
|
24
24
|
Storage,
|
|
25
25
|
createDebugLogger,
|
|
26
26
|
getErrorMessage
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-UHQFIS7N.js";
|
|
28
28
|
import {
|
|
29
29
|
writeStderrLine
|
|
30
30
|
} from "./chunk-KGJGEEVR.js";
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
getCurrentAgentId
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-CMHFCLBU.js";
|
|
6
6
|
import {
|
|
7
7
|
getTeammateContext,
|
|
8
8
|
isTeammate
|
|
9
9
|
} from "./chunk-S6LOFUVP.js";
|
|
10
10
|
import {
|
|
11
11
|
ToolNames
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-UTLCH2FK.js";
|
|
13
13
|
import {
|
|
14
14
|
init_esbuild_shims
|
|
15
15
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
isTeamAutoMemPath
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-6PJOTWAN.js";
|
|
6
6
|
import {
|
|
7
7
|
createDebugLogger
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-UHQFIS7N.js";
|
|
9
9
|
import {
|
|
10
10
|
init_esbuild_shims
|
|
11
11
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
} from "./chunk-P3QQPMQA.js";
|
|
6
6
|
import {
|
|
7
7
|
classifyRetryError
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-J2OSJFP3.js";
|
|
9
9
|
import {
|
|
10
10
|
formatQuotaExhaustedMessage,
|
|
11
11
|
getRetryAfterDelayMs,
|
|
@@ -13,11 +13,11 @@ import {
|
|
|
13
13
|
isQuotaExhaustedError,
|
|
14
14
|
isQwenQuotaExceededError,
|
|
15
15
|
isRateLimitError
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-4FTKQNWJ.js";
|
|
17
17
|
import {
|
|
18
18
|
createDebugLogger,
|
|
19
19
|
getErrorStatus
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-UHQFIS7N.js";
|
|
21
21
|
import {
|
|
22
22
|
init_esbuild_shims
|
|
23
23
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
runSideQuery
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-BWORX6FA.js";
|
|
6
6
|
import {
|
|
7
7
|
init_esbuild_shims
|
|
8
8
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -23,8 +23,17 @@ var GOAL_EVIDENCE_CATALOG_EXHAUSTED_REASON = "The current Goal revision exceeded
|
|
|
23
23
|
var GOAL_CHECKPOINT_REQUEST_TOO_LARGE_REASON = "The current Goal revision exceeded the checkpoint verifier request limit. Automatic retries cannot recover. Edit or replace the Goal before resuming it.";
|
|
24
24
|
var GOAL_CHECKPOINT_STALL_LIMIT = 3;
|
|
25
25
|
var GOAL_CHECKPOINT_STALLED_REASON = "The current Goal revision ran three consecutive evidence checkpoints without relief: the evidence window overflowed every time, and each check either came back with a full claim list or a result that could not be folded into claims at all, so every turn paid a checkpoint call and lost uncatalogued evidence. Automatic retries cannot recover. Edit or replace the Goal with a narrower objective before resuming it.";
|
|
26
|
+
var GOAL_DEFAULT_TOKEN_BUDGET = 3e7;
|
|
27
|
+
function goalTokenBudgetReason(tokenBudget) {
|
|
28
|
+
return `The Goal spent its autonomous token budget (${tokenBudget.toLocaleString("en-US")} tokens). Resume the Goal to authorize another budget window, or clear it.`;
|
|
29
|
+
}
|
|
30
|
+
__name(goalTokenBudgetReason, "goalTokenBudgetReason");
|
|
31
|
+
function isGoalTokenBudgetSpent(goal) {
|
|
32
|
+
return goal.tokenBudget !== void 0 && goal.tokensUsed >= goal.tokenBudget;
|
|
33
|
+
}
|
|
34
|
+
__name(isGoalTokenBudgetSpent, "isGoalTokenBudgetSpent");
|
|
26
35
|
function isGoalLimitKind(value) {
|
|
27
|
-
return value === "evidence_catalog" || value === "checkpoint_request";
|
|
36
|
+
return value === "evidence_catalog" || value === "checkpoint_request" || value === "token_budget";
|
|
28
37
|
}
|
|
29
38
|
__name(isGoalLimitKind, "isGoalLimitKind");
|
|
30
39
|
function goalLimitKindForReason(reason) {
|
|
@@ -51,9 +60,10 @@ function goalRequiresExactPermit(snapshot) {
|
|
|
51
60
|
}
|
|
52
61
|
__name(goalRequiresExactPermit, "goalRequiresExactPermit");
|
|
53
62
|
function isRepeatedBlockerProposal(proposal) {
|
|
54
|
-
return proposal.status === "blocked" && proposal.blockerKind !== "authority" && proposal.blockerKind !== "external";
|
|
63
|
+
return proposal.status === "blocked" && proposal.blockerKind !== "authority" && proposal.blockerKind !== "external" && proposal.blockerKind !== "infeasible";
|
|
55
64
|
}
|
|
56
65
|
__name(isRepeatedBlockerProposal, "isRepeatedBlockerProposal");
|
|
66
|
+
var GOAL_INFEASIBLE_NEXT_STEP = "The objective cannot be satisfied as written; edit or replace the Goal with an objective the evidence allows before resuming it.";
|
|
57
67
|
function validateGoalProposalReason(reason) {
|
|
58
68
|
if (!reason.trim()) return "Goal proposal reason must not be empty";
|
|
59
69
|
if ([...reason].length > GOAL_PROPOSAL_REASON_MAX_CHARACTERS) {
|
|
@@ -1056,7 +1066,13 @@ function repeatedBlockerCoverageCatalogued(analysis) {
|
|
|
1056
1066
|
__name(repeatedBlockerCoverageCatalogued, "repeatedBlockerCoverageCatalogued");
|
|
1057
1067
|
function validateBlockerCoverage(proposal, citedRecords, analysis) {
|
|
1058
1068
|
if (proposal.status !== "blocked") return;
|
|
1059
|
-
if (proposal.blockerKind === "
|
|
1069
|
+
if (proposal.blockerKind === "infeasible" && !citedRecords.some(({ proofKind }) => proofKind === "external_fact")) {
|
|
1070
|
+
throw new InvalidGoalEvidenceReferenceError(
|
|
1071
|
+
"infeasible_blocker_external_fact_required",
|
|
1072
|
+
"An infeasible blocker requires cited external tool evidence of the fact that makes the objective unsatisfiable."
|
|
1073
|
+
);
|
|
1074
|
+
}
|
|
1075
|
+
if (proposal.blockerKind === "authority" || proposal.blockerKind === "external" || proposal.blockerKind === "infeasible") {
|
|
1060
1076
|
if (!citedRecords.some(
|
|
1061
1077
|
({ proofKind }) => proofKind === "user_input" || proofKind === "external_fact"
|
|
1062
1078
|
)) {
|
|
@@ -1372,7 +1388,8 @@ function reduceGoalControl(current, transition) {
|
|
|
1372
1388
|
transition.nextGoalId,
|
|
1373
1389
|
normalizeObjective(request.objective, snapshotOf(null)),
|
|
1374
1390
|
transition.now,
|
|
1375
|
-
transition.cursor
|
|
1391
|
+
transition.cursor,
|
|
1392
|
+
transition.tokenBudgetGrant
|
|
1376
1393
|
);
|
|
1377
1394
|
}
|
|
1378
1395
|
assertExpectedVersion(
|
|
@@ -1386,7 +1403,8 @@ function reduceGoalControl(current, transition) {
|
|
|
1386
1403
|
transition.nextGoalId,
|
|
1387
1404
|
normalizeObjective(request.objective, snapshotOf(current)),
|
|
1388
1405
|
transition.now,
|
|
1389
|
-
transition.cursor
|
|
1406
|
+
transition.cursor,
|
|
1407
|
+
transition.tokenBudgetGrant
|
|
1390
1408
|
);
|
|
1391
1409
|
}
|
|
1392
1410
|
if (request.action === "edit") {
|
|
@@ -1402,6 +1420,7 @@ function reduceGoalControl(current, transition) {
|
|
|
1402
1420
|
evidenceCursor: copyCursor(transition.cursor),
|
|
1403
1421
|
evidenceCheckpoint: void 0,
|
|
1404
1422
|
checkpointStalls: void 0,
|
|
1423
|
+
...rearmedTokenBudget(current, transition.tokenBudgetGrant),
|
|
1405
1424
|
lastReason: void 0,
|
|
1406
1425
|
limitKind: void 0
|
|
1407
1426
|
});
|
|
@@ -1427,6 +1446,14 @@ function reduceGoalControl(current, transition) {
|
|
|
1427
1446
|
snapshotOf(current)
|
|
1428
1447
|
);
|
|
1429
1448
|
}
|
|
1449
|
+
if (request.action === "resume" && current.status === "usage_limited" && current.limitKind === "token_budget") {
|
|
1450
|
+
return transitionGoal(current, transition.now, {
|
|
1451
|
+
status: "active",
|
|
1452
|
+
...rearmedTokenBudget(current, transition.tokenBudgetGrant),
|
|
1453
|
+
lastReason: void 0,
|
|
1454
|
+
limitKind: void 0
|
|
1455
|
+
});
|
|
1456
|
+
}
|
|
1430
1457
|
if (request.action !== "resume") {
|
|
1431
1458
|
return assertNever(request, snapshotOf(current));
|
|
1432
1459
|
}
|
|
@@ -1439,12 +1466,14 @@ function reduceGoalControl(current, transition) {
|
|
|
1439
1466
|
// a different one, so carrying it over would spend the new window's
|
|
1440
1467
|
// allowance on the old window's failures.
|
|
1441
1468
|
checkpointStalls: void 0,
|
|
1469
|
+
...rearmedTokenBudget(current, transition.tokenBudgetGrant),
|
|
1442
1470
|
lastReason: void 0,
|
|
1443
1471
|
limitKind: void 0
|
|
1444
1472
|
});
|
|
1445
1473
|
}
|
|
1446
1474
|
return transitionGoal(current, transition.now, {
|
|
1447
|
-
status: "active"
|
|
1475
|
+
status: "active",
|
|
1476
|
+
...rearmedTokenBudget(current, transition.tokenBudgetGrant)
|
|
1448
1477
|
});
|
|
1449
1478
|
}
|
|
1450
1479
|
__name(reduceGoalControl, "reduceGoalControl");
|
|
@@ -1458,7 +1487,8 @@ function reduceGoalTurnFinished(current, transition) {
|
|
|
1458
1487
|
return transitionGoal(current, transition.now, {
|
|
1459
1488
|
turnCount: current.turnCount + 1,
|
|
1460
1489
|
tokensUsed: current.tokensUsed + Math.max(0, transition.tokensUsed ?? 0),
|
|
1461
|
-
...transition.lastReason === void 0 ? {} : { lastReason: transition.lastReason }
|
|
1490
|
+
...transition.lastReason === void 0 ? {} : { lastReason: transition.lastReason },
|
|
1491
|
+
...transition.windDownTurnId === void 0 ? {} : { windDownTurnId: transition.windDownTurnId }
|
|
1462
1492
|
});
|
|
1463
1493
|
}
|
|
1464
1494
|
__name(reduceGoalTurnFinished, "reduceGoalTurnFinished");
|
|
@@ -1561,7 +1591,7 @@ function parseGoalStateCause(value) {
|
|
|
1561
1591
|
return isGoalStateCause(value) ? value : void 0;
|
|
1562
1592
|
}
|
|
1563
1593
|
__name(parseGoalStateCause, "parseGoalStateCause");
|
|
1564
|
-
function createGoal(goalId, objective, now, cursor) {
|
|
1594
|
+
function createGoal(goalId, objective, now, cursor, tokenBudget) {
|
|
1565
1595
|
return {
|
|
1566
1596
|
goalId,
|
|
1567
1597
|
revision: 1,
|
|
@@ -1571,6 +1601,9 @@ function createGoal(goalId, objective, now, cursor) {
|
|
|
1571
1601
|
turnCount: 0,
|
|
1572
1602
|
activeTimeMs: 0,
|
|
1573
1603
|
tokensUsed: 0,
|
|
1604
|
+
// A non-finite grant (a host opting out) arms nothing: `Infinity` would
|
|
1605
|
+
// not survive the JSON journal, so "unbounded" is spelled as no field.
|
|
1606
|
+
...tokenBudget !== void 0 && Number.isFinite(tokenBudget) ? { tokenBudget } : {},
|
|
1574
1607
|
createdAt: now,
|
|
1575
1608
|
updatedAt: now
|
|
1576
1609
|
};
|
|
@@ -1594,16 +1627,30 @@ function normalizeObjective(objective, current) {
|
|
|
1594
1627
|
}
|
|
1595
1628
|
__name(normalizeObjective, "normalizeObjective");
|
|
1596
1629
|
function isEvidenceLimited(goal) {
|
|
1597
|
-
return goal.limitKind
|
|
1630
|
+
return goal.limitKind === "evidence_catalog" || goal.limitKind === "checkpoint_request" || goal.lastReason !== void 0 && goalLimitKindForReason(goal.lastReason) !== void 0;
|
|
1598
1631
|
}
|
|
1599
1632
|
__name(isEvidenceLimited, "isEvidenceLimited");
|
|
1633
|
+
function rearmedTokenBudget(current, grant) {
|
|
1634
|
+
if (grant === void 0 || !isGoalTokenBudgetSpent(current)) {
|
|
1635
|
+
return {};
|
|
1636
|
+
}
|
|
1637
|
+
return Number.isFinite(grant) ? { tokenBudget: current.tokensUsed + grant, windDownTurnId: void 0 } : { tokenBudget: void 0, windDownTurnId: void 0 };
|
|
1638
|
+
}
|
|
1639
|
+
__name(rearmedTokenBudget, "rearmedTokenBudget");
|
|
1600
1640
|
function transitionGoal(goal, now, changes) {
|
|
1601
|
-
|
|
1641
|
+
const transitioned = {
|
|
1602
1642
|
...goal,
|
|
1603
1643
|
...changes,
|
|
1604
1644
|
activeTimeMs: elapsedActiveTime(goal, now),
|
|
1605
1645
|
updatedAt: now
|
|
1606
1646
|
};
|
|
1647
|
+
if ("tokenBudget" in changes && changes.tokenBudget === void 0) {
|
|
1648
|
+
delete transitioned.tokenBudget;
|
|
1649
|
+
}
|
|
1650
|
+
if ("windDownTurnId" in changes && changes.windDownTurnId === void 0) {
|
|
1651
|
+
delete transitioned.windDownTurnId;
|
|
1652
|
+
}
|
|
1653
|
+
return transitioned;
|
|
1607
1654
|
}
|
|
1608
1655
|
__name(transitionGoal, "transitionGoal");
|
|
1609
1656
|
function snapshotOf(goal) {
|
|
@@ -1634,13 +1681,15 @@ function parseGoalRecord(value) {
|
|
|
1634
1681
|
"turnCount",
|
|
1635
1682
|
"activeTimeMs",
|
|
1636
1683
|
"tokensUsed",
|
|
1684
|
+
"tokenBudget",
|
|
1685
|
+
"windDownTurnId",
|
|
1637
1686
|
"createdAt",
|
|
1638
1687
|
"updatedAt",
|
|
1639
1688
|
"evidenceCheckpoint",
|
|
1640
1689
|
"checkpointStalls",
|
|
1641
1690
|
"lastReason",
|
|
1642
1691
|
"limitKind"
|
|
1643
|
-
]) || typeof value["goalId"] !== "string" || !value["goalId"] || !isNonNegativeInteger(value["revision"]) || value["revision"] === 0 || typeof value["objective"] !== "string" || !value["objective"].trim() || !isGoalStatus(value["status"]) || !isTranscriptCursor(value["evidenceCursor"]) || !isNonNegativeInteger(value["turnCount"]) || !isNonNegativeNumber(value["activeTimeMs"]) || value["tokensUsed"] !== void 0 && !isNonNegativeNumber(value["tokensUsed"]) || !isFiniteNumber(value["createdAt"]) || !isFiniteNumber(value["updatedAt"]) || !isGoalEvidenceCheckpoint(value["evidenceCheckpoint"]) || value["checkpointStalls"] !== void 0 && !isNonNegativeInteger(value["checkpointStalls"]) || value["lastReason"] !== void 0 && typeof value["lastReason"] !== "string" || value["limitKind"] !== void 0 && (!isGoalLimitKind(value["limitKind"]) || value["status"] !== "usage_limited")) {
|
|
1692
|
+
]) || typeof value["goalId"] !== "string" || !value["goalId"] || !isNonNegativeInteger(value["revision"]) || value["revision"] === 0 || typeof value["objective"] !== "string" || !value["objective"].trim() || !isGoalStatus(value["status"]) || !isTranscriptCursor(value["evidenceCursor"]) || !isNonNegativeInteger(value["turnCount"]) || !isNonNegativeNumber(value["activeTimeMs"]) || value["tokensUsed"] !== void 0 && !isNonNegativeNumber(value["tokensUsed"]) || value["tokenBudget"] !== void 0 && !isNonNegativeNumber(value["tokenBudget"]) || value["windDownTurnId"] !== void 0 && (typeof value["windDownTurnId"] !== "string" || !value["windDownTurnId"]) || !isFiniteNumber(value["createdAt"]) || !isFiniteNumber(value["updatedAt"]) || !isGoalEvidenceCheckpoint(value["evidenceCheckpoint"]) || value["checkpointStalls"] !== void 0 && !isNonNegativeInteger(value["checkpointStalls"]) || value["lastReason"] !== void 0 && typeof value["lastReason"] !== "string" || value["limitKind"] !== void 0 && (!isGoalLimitKind(value["limitKind"]) || value["status"] !== "usage_limited")) {
|
|
1644
1693
|
return void 0;
|
|
1645
1694
|
}
|
|
1646
1695
|
if (value["evidenceCheckpoint"] && value["evidenceCursor"].recordId !== value["evidenceCheckpoint"].checkpointId) {
|
|
@@ -1656,6 +1705,9 @@ function parseGoalRecord(value) {
|
|
|
1656
1705
|
activeTimeMs: value["activeTimeMs"],
|
|
1657
1706
|
// Goals persisted before `tokensUsed` existed carry no spend to restore.
|
|
1658
1707
|
tokensUsed: value["tokensUsed"] ?? 0,
|
|
1708
|
+
// And no budget: a Goal from before budgets existed stays unbounded.
|
|
1709
|
+
...value["tokenBudget"] === void 0 ? {} : { tokenBudget: value["tokenBudget"] },
|
|
1710
|
+
...value["windDownTurnId"] === void 0 ? {} : { windDownTurnId: value["windDownTurnId"] },
|
|
1659
1711
|
createdAt: value["createdAt"],
|
|
1660
1712
|
updatedAt: value["updatedAt"],
|
|
1661
1713
|
...value["evidenceCheckpoint"] === void 0 ? {} : {
|
|
@@ -2227,6 +2279,7 @@ function createGoalRuntime(options) {
|
|
|
2227
2279
|
let currentTurnFeedback;
|
|
2228
2280
|
let restored = false;
|
|
2229
2281
|
let restoreActivationPending = false;
|
|
2282
|
+
let windDownTurnId;
|
|
2230
2283
|
let restorePreparation;
|
|
2231
2284
|
let restoreActivation;
|
|
2232
2285
|
let preparedRestoreCause;
|
|
@@ -2250,6 +2303,60 @@ function createGoalRuntime(options) {
|
|
|
2250
2303
|
return 0;
|
|
2251
2304
|
}
|
|
2252
2305
|
}, "takeTurnTokens");
|
|
2306
|
+
const tokenBudgetGrant = options.tokenBudgetGrant ?? GOAL_DEFAULT_TOKEN_BUDGET;
|
|
2307
|
+
const usageLimitedSnapshot = /* @__PURE__ */ __name((goal, reason, limitKind) => {
|
|
2308
|
+
const now = Date.now();
|
|
2309
|
+
return {
|
|
2310
|
+
v: GOAL_STATE_VERSION,
|
|
2311
|
+
goal: {
|
|
2312
|
+
...goal,
|
|
2313
|
+
status: "usage_limited",
|
|
2314
|
+
activeTimeMs: elapsedActiveTime(goal, now),
|
|
2315
|
+
updatedAt: now,
|
|
2316
|
+
lastReason: reason,
|
|
2317
|
+
...limitKind === void 0 ? {} : { limitKind }
|
|
2318
|
+
},
|
|
2319
|
+
activity: "idle"
|
|
2320
|
+
};
|
|
2321
|
+
}, "usageLimitedSnapshot");
|
|
2322
|
+
const journalUsageLimitedSettle = /* @__PURE__ */ __name(async (goal, reason, limitKind) => {
|
|
2323
|
+
const limitedSnapshot = usageLimitedSnapshot(goal, reason, limitKind);
|
|
2324
|
+
await options.journal.recordGoalState(randomUUID(), {
|
|
2325
|
+
v: GOAL_STATE_VERSION,
|
|
2326
|
+
cause: "usage_limited",
|
|
2327
|
+
snapshot: limitedSnapshot
|
|
2328
|
+
});
|
|
2329
|
+
return limitedSnapshot;
|
|
2330
|
+
}, "journalUsageLimitedSettle");
|
|
2331
|
+
const commitUsageLimitedSettle = /* @__PURE__ */ __name((limitedSnapshot) => {
|
|
2332
|
+
continuationQueued = false;
|
|
2333
|
+
currentTurnFeedback = void 0;
|
|
2334
|
+
snapshot = structuredClone(limitedSnapshot);
|
|
2335
|
+
broadcast("usage_limited");
|
|
2336
|
+
}, "commitUsageLimitedSettle");
|
|
2337
|
+
const stopForSpentBudget = /* @__PURE__ */ __name(() => {
|
|
2338
|
+
void enqueue(async () => {
|
|
2339
|
+
const goal = snapshot.goal;
|
|
2340
|
+
if (!goal || goal.status !== "active" || !isGoalTokenBudgetSpent(goal) || currentPermit || pendingProposal || verificationAttempt || checkpointAttempt) {
|
|
2341
|
+
return;
|
|
2342
|
+
}
|
|
2343
|
+
const reason = goalTokenBudgetReason(goal.tokenBudget);
|
|
2344
|
+
let limitedSnapshot;
|
|
2345
|
+
try {
|
|
2346
|
+
limitedSnapshot = await journalUsageLimitedSettle(
|
|
2347
|
+
goal,
|
|
2348
|
+
reason,
|
|
2349
|
+
"token_budget"
|
|
2350
|
+
);
|
|
2351
|
+
} catch {
|
|
2352
|
+
limitedSnapshot = usageLimitedSnapshot(goal, reason, "token_budget");
|
|
2353
|
+
}
|
|
2354
|
+
if (snapshot.goal?.goalId !== goal.goalId || snapshot.goal.revision !== goal.revision || snapshot.goal.status !== "active" || currentPermit) {
|
|
2355
|
+
return;
|
|
2356
|
+
}
|
|
2357
|
+
commitUsageLimitedSettle(limitedSnapshot);
|
|
2358
|
+
}).catch(() => void 0);
|
|
2359
|
+
}, "stopForSpentBudget");
|
|
2253
2360
|
const withCheckpointStalls = /* @__PURE__ */ __name((goal, checkpointStalls) => {
|
|
2254
2361
|
const { checkpointStalls: _previous, ...rest } = goal;
|
|
2255
2362
|
return checkpointStalls > 0 ? { ...rest, checkpointStalls } : rest;
|
|
@@ -2276,7 +2383,7 @@ function createGoalRuntime(options) {
|
|
|
2276
2383
|
} catch {
|
|
2277
2384
|
}
|
|
2278
2385
|
}, "preemptHost");
|
|
2279
|
-
const flushContinuation = /* @__PURE__ */ __name((cause) => {
|
|
2386
|
+
const flushContinuation = /* @__PURE__ */ __name((cause, windDown = false) => {
|
|
2280
2387
|
if (!continuationQueued || !host || currentPermit || pendingProposal || verificationAttempt || checkpointAttempt || snapshot.activity !== "idle" || snapshot.goal?.status !== "active") {
|
|
2281
2388
|
return;
|
|
2282
2389
|
}
|
|
@@ -2294,6 +2401,7 @@ function createGoalRuntime(options) {
|
|
|
2294
2401
|
currentPermitHost = scheduledHost;
|
|
2295
2402
|
currentTurnKey = `goal-runtime:${currentPermit.turnId}`;
|
|
2296
2403
|
const startedPermit = structuredClone(currentPermit);
|
|
2404
|
+
windDownTurnId = windDown ? startedPermit.turnId : void 0;
|
|
2297
2405
|
snapshot = { ...snapshot, activity: "running" };
|
|
2298
2406
|
broadcast(cause);
|
|
2299
2407
|
const handleStartFailure = /* @__PURE__ */ __name(() => {
|
|
@@ -2335,6 +2443,7 @@ function createGoalRuntime(options) {
|
|
|
2335
2443
|
started = scheduledHost.startGoalTurn({
|
|
2336
2444
|
permit: startedPermit,
|
|
2337
2445
|
continuationContext,
|
|
2446
|
+
...windDown ? { windDown } : {},
|
|
2338
2447
|
...verifierFeedback ? { verifierFeedback } : {}
|
|
2339
2448
|
});
|
|
2340
2449
|
} catch {
|
|
@@ -2347,6 +2456,15 @@ function createGoalRuntime(options) {
|
|
|
2347
2456
|
if (restoreActivationPending || snapshot.goal?.status !== "active" || currentPermit || pendingProposal || verificationAttempt || checkpointAttempt) {
|
|
2348
2457
|
return;
|
|
2349
2458
|
}
|
|
2459
|
+
if (isGoalTokenBudgetSpent(snapshot.goal)) {
|
|
2460
|
+
if (snapshot.goal.windDownTurnId !== void 0) {
|
|
2461
|
+
stopForSpentBudget();
|
|
2462
|
+
return;
|
|
2463
|
+
}
|
|
2464
|
+
continuationQueued = true;
|
|
2465
|
+
flushContinuation(cause, true);
|
|
2466
|
+
return;
|
|
2467
|
+
}
|
|
2350
2468
|
continuationQueued = true;
|
|
2351
2469
|
flushContinuation(cause);
|
|
2352
2470
|
}, "queueContinuation");
|
|
@@ -2404,7 +2522,7 @@ function createGoalRuntime(options) {
|
|
|
2404
2522
|
return {
|
|
2405
2523
|
...base,
|
|
2406
2524
|
proposal: { ...attempt.proposal, status: "blocked" },
|
|
2407
|
-
blockedPolicy: "A blocked Goal is resumable. It may be accepted immediately only when the evidence shows that new user authority or a material user choice is required, or that an external state change is required, and no meaningful in-scope work remains. An ordinary technical blocker requires evidence of the same cause from the current and two immediately preceding Goal turns. Difficulty, uncertainty, incomplete work, or a preference for clarification do not by themselves justify blocked."
|
|
2525
|
+
blockedPolicy: "A blocked Goal is resumable. It may be accepted immediately only when the evidence shows that new user authority or a material user choice is required, or that an external state change is required, and no meaningful in-scope work remains. An infeasible blocker may also be accepted immediately, only when cited external_fact evidence shows the objective cannot be satisfied as written: it contradicts itself, it names a target that verifiably does not exist, or it requires an action outside what the tools can perform; reject it when the obstacle is difficulty, uncertainty, information the model could still obtain, or a preference to ask. An ordinary technical blocker requires evidence of the same cause from the current and two immediately preceding Goal turns. Difficulty, uncertainty, incomplete work, or a preference for clarification do not by themselves justify blocked."
|
|
2408
2526
|
};
|
|
2409
2527
|
}, "verifierInput");
|
|
2410
2528
|
const promoteQueuedUserTurn = /* @__PURE__ */ __name(() => {
|
|
@@ -2441,7 +2559,7 @@ function createGoalRuntime(options) {
|
|
|
2441
2559
|
...snapshot.goal,
|
|
2442
2560
|
activeTimeMs: elapsedActiveTime(snapshot.goal, now),
|
|
2443
2561
|
updatedAt: now,
|
|
2444
|
-
lastReason: outcome.result.reason
|
|
2562
|
+
lastReason: attempt.proposal.blockerKind === "infeasible" ? `${outcome.result.reason} ${GOAL_INFEASIBLE_NEXT_STEP}` : outcome.result.reason
|
|
2445
2563
|
};
|
|
2446
2564
|
const acceptedSnapshot = {
|
|
2447
2565
|
v: GOAL_STATE_VERSION,
|
|
@@ -2479,31 +2597,16 @@ function createGoalRuntime(options) {
|
|
|
2479
2597
|
return void 0;
|
|
2480
2598
|
}
|
|
2481
2599
|
if (outcome.kind === "usage_limited") {
|
|
2482
|
-
const limitedSnapshot =
|
|
2483
|
-
|
|
2484
|
-
|
|
2485
|
-
|
|
2486
|
-
|
|
2487
|
-
activeTimeMs: elapsedActiveTime(snapshot.goal, now),
|
|
2488
|
-
updatedAt: now,
|
|
2489
|
-
lastReason: outcome.reason,
|
|
2490
|
-
...outcome.limitKind === void 0 ? {} : { limitKind: outcome.limitKind }
|
|
2491
|
-
},
|
|
2492
|
-
activity: "idle"
|
|
2493
|
-
};
|
|
2494
|
-
await options.journal.recordGoalState(randomUUID(), {
|
|
2495
|
-
v: GOAL_STATE_VERSION,
|
|
2496
|
-
cause: "usage_limited",
|
|
2497
|
-
snapshot: limitedSnapshot
|
|
2498
|
-
});
|
|
2600
|
+
const limitedSnapshot = await journalUsageLimitedSettle(
|
|
2601
|
+
snapshot.goal,
|
|
2602
|
+
outcome.reason,
|
|
2603
|
+
outcome.limitKind
|
|
2604
|
+
);
|
|
2499
2605
|
if (!isCurrentVerificationAttempt(attempt) || !snapshot.goal) return;
|
|
2500
2606
|
verificationAttempt = void 0;
|
|
2501
2607
|
pendingProposal = void 0;
|
|
2502
|
-
continuationQueued = false;
|
|
2503
2608
|
nextVerifierFeedback = void 0;
|
|
2504
|
-
|
|
2505
|
-
snapshot = structuredClone(limitedSnapshot);
|
|
2506
|
-
broadcast("usage_limited");
|
|
2609
|
+
commitUsageLimitedSettle(limitedSnapshot);
|
|
2507
2610
|
return void 0;
|
|
2508
2611
|
}
|
|
2509
2612
|
const rejectedCheckpoint = isRepeatedBlockerProposal(attempt.proposal) ? void 0 : createCheckpointAttempt(attempt.permit, snapshot.goal);
|
|
@@ -2650,30 +2753,14 @@ function createGoalRuntime(options) {
|
|
|
2650
2753
|
});
|
|
2651
2754
|
}, "finishCheckpointCheck");
|
|
2652
2755
|
const settleCheckpointFailure = /* @__PURE__ */ __name(async (attempt, goal, reason, limitKind) => {
|
|
2653
|
-
const
|
|
2654
|
-
|
|
2655
|
-
|
|
2656
|
-
|
|
2657
|
-
|
|
2658
|
-
status: "usage_limited",
|
|
2659
|
-
activeTimeMs: elapsedActiveTime(goal, now),
|
|
2660
|
-
updatedAt: now,
|
|
2661
|
-
lastReason: reason,
|
|
2662
|
-
...limitKind === void 0 ? {} : { limitKind }
|
|
2663
|
-
},
|
|
2664
|
-
activity: "idle"
|
|
2665
|
-
};
|
|
2666
|
-
await options.journal.recordGoalState(randomUUID(), {
|
|
2667
|
-
v: GOAL_STATE_VERSION,
|
|
2668
|
-
cause: "usage_limited",
|
|
2669
|
-
snapshot: limitedSnapshot
|
|
2670
|
-
});
|
|
2756
|
+
const limitedSnapshot = await journalUsageLimitedSettle(
|
|
2757
|
+
goal,
|
|
2758
|
+
reason,
|
|
2759
|
+
limitKind
|
|
2760
|
+
);
|
|
2671
2761
|
if (!isCurrentCheckpointAttempt(attempt) || !snapshot.goal) return;
|
|
2672
2762
|
checkpointAttempt = void 0;
|
|
2673
|
-
|
|
2674
|
-
currentTurnFeedback = void 0;
|
|
2675
|
-
snapshot = structuredClone(limitedSnapshot);
|
|
2676
|
-
broadcast("usage_limited");
|
|
2763
|
+
commitUsageLimitedSettle(limitedSnapshot);
|
|
2677
2764
|
}, "settleCheckpointFailure");
|
|
2678
2765
|
const settleIfCheckpointStalled = /* @__PURE__ */ __name(async (attempt, goal, checkpointStalls) => {
|
|
2679
2766
|
if (checkpointStalls < GOAL_CHECKPOINT_STALL_LIMIT) return false;
|
|
@@ -3067,10 +3154,13 @@ function createGoalRuntime(options) {
|
|
|
3067
3154
|
throw new Error(STALE_GOAL_TURN_MESSAGE);
|
|
3068
3155
|
}
|
|
3069
3156
|
const recordUuid = randomUUID();
|
|
3157
|
+
const finishedWindDown = windDownTurnId === permit.turnId;
|
|
3070
3158
|
const nextGoal = reduceGoalTurnFinished(snapshot.goal, {
|
|
3071
3159
|
now: Date.now(),
|
|
3072
|
-
tokensUsed: takeTurnTokens(permit.turnId)
|
|
3160
|
+
tokensUsed: takeTurnTokens(permit.turnId),
|
|
3161
|
+
...finishedWindDown ? { windDownTurnId: permit.turnId } : {}
|
|
3073
3162
|
});
|
|
3163
|
+
if (finishedWindDown) windDownTurnId = void 0;
|
|
3074
3164
|
const persistedSnapshot = {
|
|
3075
3165
|
v: GOAL_STATE_VERSION,
|
|
3076
3166
|
goal: nextGoal,
|
|
@@ -3241,7 +3331,8 @@ ${proposal.reason}`;
|
|
|
3241
3331
|
request,
|
|
3242
3332
|
now: Date.now(),
|
|
3243
3333
|
nextGoalId: randomUUID(),
|
|
3244
|
-
cursor: request.action === "create" || request.action === "replace" || request.action === "edit" ? { recordId: recordUuid } : options.journal.getTranscriptCursor()
|
|
3334
|
+
cursor: request.action === "create" || request.action === "replace" || request.action === "edit" ? { recordId: recordUuid } : options.journal.getTranscriptCursor(),
|
|
3335
|
+
tokenBudgetGrant
|
|
3245
3336
|
});
|
|
3246
3337
|
const nextSnapshot = {
|
|
3247
3338
|
v: GOAL_STATE_VERSION,
|