chainlesschain 0.166.103 → 0.166.105
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/README.md +14 -2
- package/package.json +2 -1
- package/src/assets/linux-subreaper/linux-arm64/manifest.json +1 -1
- package/src/assets/linux-subreaper/linux-x64/manifest.json +1 -1
- package/src/assets/web-panel/assets/{AIOps-BLrXpdnP.js → AIOps-CcD-AVDw.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-C0xy9uFy.js → ActionButton-CYy-g36A.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-C6EephQP.js → Analytics-DPFDNaBL.js} +3 -3
- package/src/assets/web-panel/assets/{AppLayout-ZCXdOD9y.js → AppLayout-PVIuRdgN.js} +5 -5
- package/src/assets/web-panel/assets/{Artifacts-D4MfZ-pl.js → Artifacts-BXGD3bM-.js} +1 -1
- package/src/assets/web-panel/assets/{Audit-BQ8c3bBu.js → Audit-Bu5s_4tu.js} +1 -1
- package/src/assets/web-panel/assets/{BackgroundAgents-BOA7_ljM.js → BackgroundAgents-BHmgpnzo.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-60uiQjGT.js → Backup-C872jURx.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-BDvEbGs_.js → BaseInput-Bh7xO30H.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-B3IkAuFQ.js → Chat-DaacK53T.js} +6 -6
- package/src/assets/web-panel/assets/ChatBubbleRenderer-PYrSKMM_.js +1 -0
- package/src/assets/web-panel/assets/{Checkbox-njGbfJWq.js → Checkbox-Cnt7_8I2.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-CF7DtdxC.js → Codegen-AZRz6kmW.js} +1 -1
- package/src/assets/web-panel/assets/{Col-C_3Zix40.js → Col-BtOXzMFt.js} +1 -1
- package/src/assets/web-panel/assets/{Community-CzU-ZC2d.js → Community-BFmFygS7.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-BgeqsPRh.js → Compact-2z5CfKpR.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-6l7cwiqp.js → Compliance-B5hKrPVF.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-D4s905fI.js → Cowork-CxEyp2ww.js} +3 -3
- package/src/assets/web-panel/assets/{Cron-CGTYSxRS.js → Cron-B-8f9_qF.js} +2 -2
- package/src/assets/web-panel/assets/{Crosschain-BnSo-Yt3.js → Crosschain-XARMOcc4.js} +1 -1
- package/src/assets/web-panel/assets/{DID-Dm4vk2X1.js → DID-DwLtEKAe.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-D7H-PZ_N.js → Dashboard-Cjw0L_iA.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-COslkgxn.js → Dropdown-BBGWIP7l.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer-CJWEetmk.js → EmailListRenderer-DG4kZFkm.js} +1 -1
- package/src/assets/web-panel/assets/{EvolutionSettings-BbzebAWe.js → EvolutionSettings-D8vuNDde.js} +1 -1
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-BsoTOXwk.js → FamilyGuardDashboard-COXCzDXI.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-Ck5kM_5H.js → Federation-Btb-aMhW.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-gShxCqtF.js → FormItemContext-TO-E6l6e.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-DarN1G-z.js → GenericCardRenderer-BWXdJCT0.js} +1 -1
- package/src/assets/web-panel/assets/{Git-CJfpLyP5.js → Git-B6icGhEv.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-CVcJmpQz.js → Governance-C5Y__K6S.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-ComU_ig8.js → Inference-DZGEKnbN.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-35hprFJy.js → KnowledgeGraph--Kga5yvm.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-BQDqBTz0.js → Logs-BXs3EPKj.js} +2 -2
- package/src/assets/web-panel/assets/MarkdownRenderer-BsSiyE-A.js +1 -0
- package/src/assets/web-panel/assets/{Marketplace-B9O9OKnn.js → Marketplace-JSEAu0su.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-VMKxA4Wc.js → McpTools-BUBifkKP.js} +3 -3
- package/src/assets/web-panel/assets/{Memory-CcBbf3Bc.js → Memory-Cb7sE4a-.js} +2 -2
- package/src/assets/web-panel/assets/{MobileBridge-D7myz46N.js → MobileBridge-BOzmmNV2.js} +1 -1
- package/src/assets/web-panel/assets/{MobileProjects-Da5KBXyx.js → MobileProjects-ClRlavdF.js} +1 -1
- package/src/assets/web-panel/assets/{Mtc-x3NPZfuL.js → Mtc-DmMWErG1.js} +5 -5
- package/src/assets/web-panel/assets/{MtcAudit-CwnzptEC.js → MtcAudit-DnGkRVXF.js} +2 -2
- package/src/assets/web-panel/assets/{Multisig-CCAxf4Ye.js → Multisig-C3mzascL.js} +3 -3
- package/src/assets/web-panel/assets/{NLProgramming-CptHKz-Q.js → NLProgramming-CrmMZZ1t.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-0uEp4DCJ.js → Notes-4S6uts9Q.js} +3 -3
- package/src/assets/web-panel/assets/{NotificationSettings-DthvrOLd.js → NotificationSettings-gn3UrWwW.js} +1 -1
- package/src/assets/web-panel/assets/OrderTableRenderer-CDVAlBUf.js +1 -0
- package/src/assets/web-panel/assets/{Organization-BWf2tmQQ.js → Organization-fMlkdgpW.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-BbvAtEth.js → Overflow-DGwCUPU1.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-zBo6enit.js → P2P-BDGcpPmf.js} +2 -2
- package/src/assets/web-panel/assets/{PdhVaultBrowser-D_LMQ4A4.js → PdhVaultBrowser-CccRPAB9.js} +3 -3
- package/src/assets/web-panel/assets/{Permissions-C1ucb2ck.js → Permissions-C33dNECx.js} +4 -4
- package/src/assets/web-panel/assets/{PersonalDataHub-Bz64RddJ.js → PersonalDataHub-BeqbCStc.js} +5 -5
- package/src/assets/web-panel/assets/{Pipeline-DXJt3y3_.js → Pipeline-CTmasgbQ.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-DiZ8b_ut.js → Privacy-ktd37BSp.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-DfLKKrJ4.js → ProjectInit-KOGvQtBX.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-Ct6kJuIY.js → ProjectSettings-CUvH_hC6.js} +2 -2
- package/src/assets/web-panel/assets/{Projects-BBUMlZ3m.js → Projects-BvP_Os-1.js} +1 -1
- package/src/assets/web-panel/assets/{Providers-DYVQPHvc.js → Providers-C-hmLXlO.js} +1 -1
- package/src/assets/web-panel/assets/{QrScannerModal-23Il7iPp.js → QrScannerModal-DzG_rbSL.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-WgOZKrv1.js → QuickAsk-ShwiATg4.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-CRIka6xT.js → Recommend-DkV8Ruep.js} +1 -1
- package/src/assets/web-panel/assets/{RemoteSession-DOy3GjVZ.js → RemoteSession-Ca2dOx_G.js} +2 -2
- package/src/assets/web-panel/assets/{Reputation-BXyi6xeR.js → Reputation-DYA5BJ6A.js} +1 -1
- package/src/assets/web-panel/assets/{Row-CoMxuIcR.js → Row-DvGDgxLS.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-87hPkoM6.js → RssFeed-DbwTBSPw.js} +3 -3
- package/src/assets/web-panel/assets/{Search-B1EqFCO4.js → Search-C5XAMQ9T.js} +1 -1
- package/src/assets/web-panel/assets/{Security-HcC41eGs.js → Security-CKWT60Qt.js} +3 -3
- package/src/assets/web-panel/assets/{Services-BqLwmvCM.js → Services-CZvASlWL.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-CIMmjW4r.js → Skeleton-DFkMVqws.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-CgurezJU.js → Skills-hslZ_GyP.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-CJuRuqPE.js → Sla-BLW5rmZ5.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-BUwsbd1o.js → SpeechSettings-Cn4ffCi5.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-qo04TOX-.js → SyncSettings-D1K0nJuo.js} +2 -2
- package/src/assets/web-panel/assets/Tasks-CCRu0xoN.js +1 -0
- package/src/assets/web-panel/assets/{Templates-D1PTczPW.js → Templates-L19GYuS4.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-Bi0FkEPR.js → Tenant-CZ6HE3PF.js} +1 -1
- package/src/assets/web-panel/assets/{Terminal-DfSt3bIF.js → Terminal-BiAwzaBT.js} +2 -2
- package/src/assets/web-panel/assets/{TimelineRenderer-B7bIVs4R.js → TimelineRenderer-DRHSWQT5.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-B6w5XrMb.js → Tokens-Cm-XATgh.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-XXVSDWiF.js → Trigger-BVXtx3kn.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-DYvlgcK-.js → Trust-Bb0TmkLJ.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-XyYwJMBM.js → UkeySign-Dbt9R7l0.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-C47WbtHH.js → VideoEditing-z0-Ti8eJ.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-CYfqTj_C.js → Wallet-BZh31tI-.js} +4 -4
- package/src/assets/web-panel/assets/{WebAuthn-3AduFn1l.js → WebAuthn-DQ0yIr5K.js} +4 -4
- package/src/assets/web-panel/assets/{WorkflowEditor-DHYEHjMJ.js → WorkflowEditor-DCt_yuWG.js} +1 -1
- package/src/assets/web-panel/assets/{chat-AeehErSw.js → chat-BLgtmFeS.js} +1 -1
- package/src/assets/web-panel/assets/{colors-DKXJ8paX.js → colors-xU4UH8M1.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-BOlCiomD.js → compact-item-C4w4v16T.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-BAP6U85b.js → createContext-CZM9hAaj.js} +1 -1
- package/src/assets/web-panel/assets/devWarning-BZUZgMkO.js +1 -0
- package/src/assets/web-panel/assets/{hasIn-BLmeL1Xe.js → hasIn-DvHqEpE7.js} +1 -1
- package/src/assets/web-panel/assets/index--_-pNhk0.js +1 -0
- package/src/assets/web-panel/assets/{index-wyKpTsGM.js → index-55Rkd1KA.js} +1 -1
- package/src/assets/web-panel/assets/{index-CaHhfpBi.js → index-B0IvKEVO.js} +1 -1
- package/src/assets/web-panel/assets/{index-EKNODw4P.js → index-B4jIcYSv.js} +1 -1
- package/src/assets/web-panel/assets/{index-C5AKY6bJ.js → index-B64Vf-8H.js} +1 -1
- package/src/assets/web-panel/assets/{index-C8qi53Ki.js → index-B6AQ2b5U.js} +1 -1
- package/src/assets/web-panel/assets/{index-FPXLIXoy.js → index-BHK3CQHq.js} +1 -1
- package/src/assets/web-panel/assets/{index-CRa4pAaM.js → index-BHg9NoJ5.js} +3 -3
- package/src/assets/web-panel/assets/{index-Bn54FU3i.js → index-BIWumeQl.js} +1 -1
- package/src/assets/web-panel/assets/{index-CdNSmvog.js → index-BRhD9RMV.js} +1 -1
- package/src/assets/web-panel/assets/{index-De2fPxdb.js → index-BTxhDCtg.js} +1 -1
- package/src/assets/web-panel/assets/{index-CgtaOzMo.js → index-BaQZvM4m.js} +1 -1
- package/src/assets/web-panel/assets/{index-CFKzWIo8.js → index-Bf8Wm4ks.js} +1 -1
- package/src/assets/web-panel/assets/{index-OLKhib9T.js → index-Bh14b1k0.js} +1 -1
- package/src/assets/web-panel/assets/{index-B0IjlB9m.js → index-BkTKWAgq.js} +1 -1
- package/src/assets/web-panel/assets/{index-PEe9OWEQ.js → index-BlN5KPq6.js} +1 -1
- package/src/assets/web-panel/assets/{index-DpZqbc4w.js → index-C6ZrTSw5.js} +1 -1
- package/src/assets/web-panel/assets/{index-Bpx54vfs.js → index-C9YnZFv2.js} +1 -1
- package/src/assets/web-panel/assets/{index-DsQ38fVY.js → index-CExiTobS.js} +1 -1
- package/src/assets/web-panel/assets/{index-BTnp4Nt3.js → index-CF9ebAIB.js} +1 -1
- package/src/assets/web-panel/assets/{index-BuUwKmEI.js → index-CKugxsw3.js} +1 -1
- package/src/assets/web-panel/assets/{index-IlzfIRNh.js → index-CPC7OGCe.js} +1 -1
- package/src/assets/web-panel/assets/{index-BSOenF5s.js → index-CPDw21XY.js} +1 -1
- package/src/assets/web-panel/assets/{index-T28naovw.js → index-CQEzxnYS.js} +1 -1
- package/src/assets/web-panel/assets/{index-DWYqOI1A.js → index-CRLP56-W.js} +1 -1
- package/src/assets/web-panel/assets/{index-ZMbXl5lo.js → index-CYrQnkqA.js} +1 -1
- package/src/assets/web-panel/assets/{index-DQLQuwpA.js → index-Cm00787d.js} +1 -1
- package/src/assets/web-panel/assets/{index-Co7pjF53.js → index-CpiuuIww.js} +1 -1
- package/src/assets/web-panel/assets/{index-urPvyUVk.js → index-CqDiY-jl.js} +1 -1
- package/src/assets/web-panel/assets/{index-BhcpWl5z.js → index-CyV8fNBg.js} +1 -1
- package/src/assets/web-panel/assets/{index-BAS2QqLn.js → index-DGdLkss8.js} +1 -1
- package/src/assets/web-panel/assets/{index-BRcJlKSa.js → index-DifMvnMQ.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dv8-g1pY.js → index-Ds1tM734.js} +1 -1
- package/src/assets/web-panel/assets/{index-DE7cbDDe.js → index-Ds6wKTMh.js} +1 -1
- package/src/assets/web-panel/assets/{index-Bt-FCVzh.js → index-QHmhwgfc.js} +1 -1
- package/src/assets/web-panel/assets/{index-Bs2O3f81.js → index-SNV95Zen.js} +1 -1
- package/src/assets/web-panel/assets/index-ftwO31cp.js +1 -0
- package/src/assets/web-panel/assets/{index-ClpwxOXo.js → index-n6SAUmmI.js} +1 -1
- package/src/assets/web-panel/assets/{index-CiqeF0Pf.js → index-wYRjvvbl.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-CDWa1rnn.js → initDefaultProps-C44ZER6c.js} +1 -1
- package/src/assets/web-panel/assets/{motion-CX2Cnsd5.js → motion-DbNzzScd.js} +1 -1
- package/src/assets/web-panel/assets/{move-Bfe1NcEF.js → move-BrRrDH2u.js} +1 -1
- package/src/assets/web-panel/assets/{mtc-parser-DbdqleHE.js → mtc-parser-DZ_T_Pw8.js} +1 -1
- package/src/assets/web-panel/assets/{omit-CE2K7NVv.js → omit-5QHHk_V3.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-y_bZgxWG.js → pickAttrs-BdxEl0G2.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-BOHR4zwr.js → placementArrow-CGyD615D.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-B8Jwq05-.js → responsiveObserve-QqcWAQmN.js} +1 -1
- package/src/assets/web-panel/assets/{slide-BD7RJ3Kn.js → slide-BumQrJ5R.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-BuxDJeDx.js → statusUtils-Pf64olM7.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-DgYQ2Q0o.js → styleChecker-DNwm5SQZ.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-DAHF0Fwi.js → useFlexGapSupport-c3gLKs6e.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-D4kDyLFp.js → useFs-TzTd6NDM.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-BHtSxW4A.js → usePersonalDataHub-BP5E_0Fe.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-CHKtdqW0.js → vnode-CVEkRfZU.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-CIZAMma9.js → zoom-C18X_8TJ.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/commands/agent.js +56 -20
- package/src/commands/batch.js +17 -12
- package/src/commands/eval.js +24 -8
- package/src/data/changelog.json +26 -0
- package/src/harness/mcp-client.js +187 -26
- package/src/lib/background-session-transport.js +21 -5
- package/src/lib/coding-task-guidance.js +13 -0
- package/src/lib/decision-layer/runtime.js +180 -10
- package/src/lib/direct-model-usage.js +34 -0
- package/src/lib/evolution/agent-evolution-ingress.js +63 -7
- package/src/lib/evolution/evolution-evidence-artifact-adapter.js +10 -0
- package/src/lib/evolution/evolution-evidence-projector.js +46 -7
- package/src/lib/evolution/skill-decision-projection.js +211 -0
- package/src/lib/evolution/skill-retrieval-revocation-authority.js +17 -2
- package/src/lib/file-import-diagnostics.js +246 -0
- package/src/lib/skill-loader.js +16 -0
- package/src/lib/transport-error-details.js +83 -0
- package/src/repl/agent-repl.js +86 -7
- package/src/runtime/agent-core.js +248 -15
- package/src/runtime/headless-runner.js +295 -71
- package/src/runtime/headless-stream.js +197 -27
- package/src/runtime/mcp-config.js +26 -17
- package/src/runtime/mcp-tool-search.js +44 -14
- package/src/assets/web-panel/assets/ChatBubbleRenderer-n6BVStHf.js +0 -1
- package/src/assets/web-panel/assets/MarkdownRenderer-BpdGAVCC.js +0 -1
- package/src/assets/web-panel/assets/OrderTableRenderer-CxXuPzZg.js +0 -1
- package/src/assets/web-panel/assets/Tasks-QEFENVsp.js +0 -1
- package/src/assets/web-panel/assets/devWarning-rGldFhxo.js +0 -1
- package/src/assets/web-panel/assets/index-Cw-lfvvV.js +0 -1
- package/src/assets/web-panel/assets/index-QBXRSyoZ.js +0 -1
package/src/commands/agent.js
CHANGED
|
@@ -46,6 +46,10 @@ import {
|
|
|
46
46
|
isFormalQualityHermeticRuntime,
|
|
47
47
|
} from "../lib/formal-quality-eval-runtime.js";
|
|
48
48
|
import { withQuietStdout } from "../runtime/quiet-stdout.js";
|
|
49
|
+
import {
|
|
50
|
+
createSessionPersistenceFailure,
|
|
51
|
+
projectSessionPersistenceFailure,
|
|
52
|
+
} from "../lib/session-persistence-failure.js";
|
|
49
53
|
import { registerControlledHostCommand } from "./agent-controlled-host.js";
|
|
50
54
|
import { registerProcessOwnershipCommands } from "./agent-process-ownership.js";
|
|
51
55
|
import { resolveCredentialEnvironmentValue } from "../lib/process-execution-broker/credential-transport.js";
|
|
@@ -1167,29 +1171,61 @@ export function registerAgentCommand(program, dependencies = {}) {
|
|
|
1167
1171
|
// initialize AppConfig/DatabaseManager. Their legacy console.info
|
|
1168
1172
|
// diagnostics belong on stderr; stdout may already be reserved for a
|
|
1169
1173
|
// JSON/NDJSON protocol selected by this command.
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1174
|
+
try {
|
|
1175
|
+
await withQuietStdout(async () => {
|
|
1176
|
+
const { sessionHasPersistedEvidence } = await import(
|
|
1177
|
+
"../harness/jsonl-session-store.js"
|
|
1178
|
+
);
|
|
1179
|
+
if (!sessionHasPersistedEvidence(options.session)) {
|
|
1180
|
+
const [{ bootstrap }, { ensureCanonicalSessionFromDatabase }] =
|
|
1181
|
+
await Promise.all([
|
|
1182
|
+
import("../runtime/bootstrap.js"),
|
|
1183
|
+
import("../lib/session-transcript-migration.js"),
|
|
1184
|
+
]);
|
|
1185
|
+
const context =
|
|
1186
|
+
sessionBootstrapContext ||
|
|
1187
|
+
(await bootstrap({ verbose: program.opts().verbose }));
|
|
1188
|
+
sessionBootstrapContext = context;
|
|
1189
|
+
const database =
|
|
1190
|
+
context.db?.getDatabase?.() || context.db?.getDb?.() || null;
|
|
1191
|
+
const migrated = ensureCanonicalSessionFromDatabase(
|
|
1192
|
+
database,
|
|
1193
|
+
options.session,
|
|
1194
|
+
);
|
|
1195
|
+
if (migrated?.sessionId) options.session = migrated.sessionId;
|
|
1196
|
+
}
|
|
1197
|
+
});
|
|
1198
|
+
} catch (error) {
|
|
1199
|
+
const persistence = projectSessionPersistenceFailure(
|
|
1200
|
+
createSessionPersistenceFailure(error, {
|
|
1201
|
+
sessionId: options.session,
|
|
1202
|
+
operation: "session-start",
|
|
1203
|
+
}),
|
|
1204
|
+
{ phase: "before-model" },
|
|
1173
1205
|
);
|
|
1174
|
-
if (!
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
options.session,
|
|
1206
|
+
if (!persistence) throw error;
|
|
1207
|
+
// Emit after withQuietStdout restores stdout, so a machine client
|
|
1208
|
+
// receives the failure even when preparation never reaches a runner.
|
|
1209
|
+
if (["json", "stream-json"].includes(options.outputFormat)) {
|
|
1210
|
+
process.stdout.write(
|
|
1211
|
+
`${JSON.stringify({
|
|
1212
|
+
type: "result",
|
|
1213
|
+
subtype: "error_persistence",
|
|
1214
|
+
is_error: true,
|
|
1215
|
+
code: persistence.code,
|
|
1216
|
+
error: "Canonical session preparation failed",
|
|
1217
|
+
session_id: options.session,
|
|
1218
|
+
persistence,
|
|
1219
|
+
})}\n`,
|
|
1189
1220
|
);
|
|
1190
|
-
if (migrated?.sessionId) options.session = migrated.sessionId;
|
|
1191
1221
|
}
|
|
1192
|
-
|
|
1222
|
+
process.stderr.write(
|
|
1223
|
+
`${persistence.code}: canonical session preparation was refused\n`,
|
|
1224
|
+
);
|
|
1225
|
+
await _finishWorktree();
|
|
1226
|
+
process.exitCode = 1;
|
|
1227
|
+
return;
|
|
1228
|
+
}
|
|
1193
1229
|
}
|
|
1194
1230
|
|
|
1195
1231
|
// --fork-session: branch the resolved session into a NEW id so the
|
package/src/commands/batch.js
CHANGED
|
@@ -44,6 +44,15 @@ export const _processDeps = {
|
|
|
44
44
|
execFileSync: executionBroker.execFileSync.bind(executionBroker),
|
|
45
45
|
};
|
|
46
46
|
|
|
47
|
+
function collectUtf8(stream) {
|
|
48
|
+
const decoder = new TextDecoder("utf-8");
|
|
49
|
+
let output = "";
|
|
50
|
+
stream?.on("data", (chunk) => {
|
|
51
|
+
output += decoder.decode(chunk, { stream: true });
|
|
52
|
+
});
|
|
53
|
+
return () => output + decoder.decode();
|
|
54
|
+
}
|
|
55
|
+
|
|
47
56
|
const BIN = path.resolve(
|
|
48
57
|
path.dirname(fileURLToPath(import.meta.url)),
|
|
49
58
|
"..",
|
|
@@ -382,8 +391,7 @@ function spawnAgent(prompt, cwd, opts = {}) {
|
|
|
382
391
|
},
|
|
383
392
|
"batch:agent-run",
|
|
384
393
|
);
|
|
385
|
-
|
|
386
|
-
child.stderr?.on("data", (d) => (err += d.toString("utf8")));
|
|
394
|
+
const readErr = collectUtf8(child.stderr);
|
|
387
395
|
if (child.stdin) {
|
|
388
396
|
child.stdin.on("error", () => {});
|
|
389
397
|
child.stdin.end(String(prompt || ""));
|
|
@@ -392,7 +400,7 @@ function spawnAgent(prompt, cwd, opts = {}) {
|
|
|
392
400
|
child.on("close", (code) =>
|
|
393
401
|
code === 0
|
|
394
402
|
? resolve({ code })
|
|
395
|
-
: reject(new Error(
|
|
403
|
+
: reject(new Error(readErr().trim() || `agent exited ${code}`)),
|
|
396
404
|
);
|
|
397
405
|
});
|
|
398
406
|
}
|
|
@@ -410,13 +418,12 @@ function runTestCommand(command, cwd) {
|
|
|
410
418
|
},
|
|
411
419
|
"batch:test-command",
|
|
412
420
|
);
|
|
413
|
-
|
|
414
|
-
child.stderr?.on("data", (d) => (err += d.toString("utf8")));
|
|
421
|
+
const readErr = collectUtf8(child.stderr);
|
|
415
422
|
child.on("error", (e) => reject(new Error(e.message)));
|
|
416
423
|
child.on("close", (code) =>
|
|
417
424
|
code === 0
|
|
418
425
|
? resolve({ code })
|
|
419
|
-
: reject(new Error(
|
|
426
|
+
: reject(new Error(readErr().trim() || `test exited ${code}`)),
|
|
420
427
|
);
|
|
421
428
|
});
|
|
422
429
|
}
|
|
@@ -494,18 +501,16 @@ async function decomposeGoal(goal, parts, opts = {}) {
|
|
|
494
501
|
},
|
|
495
502
|
"batch:decompose",
|
|
496
503
|
);
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
child.stdout?.on("data", (d) => (out += d.toString("utf8")));
|
|
500
|
-
child.stderr?.on("data", (d) => (err += d.toString("utf8")));
|
|
504
|
+
const readOut = collectUtf8(child.stdout);
|
|
505
|
+
const readErr = collectUtf8(child.stderr);
|
|
501
506
|
child.on("error", (e) => reject(new Error(e.message)));
|
|
502
507
|
child.on("close", (code) => {
|
|
503
508
|
if (code !== 0) {
|
|
504
|
-
reject(new Error(
|
|
509
|
+
reject(new Error(readErr().trim() || `decompose agent exited ${code}`));
|
|
505
510
|
return;
|
|
506
511
|
}
|
|
507
512
|
try {
|
|
508
|
-
const parsed = JSON.parse(
|
|
513
|
+
const parsed = JSON.parse(readOut().trim());
|
|
509
514
|
resolve(parsed.units);
|
|
510
515
|
} catch (e) {
|
|
511
516
|
reject(new Error(`could not parse decomposition output: ${e.message}`));
|
package/src/commands/eval.js
CHANGED
|
@@ -206,6 +206,16 @@ function makeHeadlessRunAgent(opts = {}) {
|
|
|
206
206
|
});
|
|
207
207
|
let out = "";
|
|
208
208
|
let err = "";
|
|
209
|
+
const stdoutDecoder = new TextDecoder("utf-8");
|
|
210
|
+
const stderrDecoder = new TextDecoder("utf-8");
|
|
211
|
+
const readOutput = () => {
|
|
212
|
+
out += stdoutDecoder.decode();
|
|
213
|
+
return out;
|
|
214
|
+
};
|
|
215
|
+
const readError = () => {
|
|
216
|
+
err += stderrDecoder.decode();
|
|
217
|
+
return err;
|
|
218
|
+
};
|
|
209
219
|
let settled = false;
|
|
210
220
|
let timedOut = false;
|
|
211
221
|
let graceTimer = null;
|
|
@@ -235,25 +245,31 @@ function makeHeadlessRunAgent(opts = {}) {
|
|
|
235
245
|
graceTimer = setTimeout(() => {
|
|
236
246
|
done({
|
|
237
247
|
ok: false,
|
|
238
|
-
output:
|
|
248
|
+
output: readOutput(),
|
|
239
249
|
error: `timed out after ${timeoutMs || 120000}ms (process did not exit after kill)`,
|
|
240
250
|
});
|
|
241
251
|
}, 10000);
|
|
242
252
|
if (typeof graceTimer.unref === "function") graceTimer.unref();
|
|
243
253
|
}, timeoutMs || 120000);
|
|
244
254
|
if (typeof timer.unref === "function") timer.unref();
|
|
245
|
-
child.stdout?.on("data", (d) =>
|
|
246
|
-
|
|
255
|
+
child.stdout?.on("data", (d) => {
|
|
256
|
+
out += stdoutDecoder.decode(d, { stream: true });
|
|
257
|
+
});
|
|
258
|
+
child.stderr?.on("data", (d) => {
|
|
259
|
+
err += stderrDecoder.decode(d, { stream: true });
|
|
260
|
+
});
|
|
247
261
|
child.on("error", (e) => {
|
|
248
262
|
clearTimeout(timer);
|
|
249
|
-
done({ ok: false, output:
|
|
263
|
+
done({ ok: false, output: readOutput(), error: e.message });
|
|
250
264
|
});
|
|
251
265
|
child.on("close", (code, signal) => {
|
|
252
266
|
clearTimeout(timer);
|
|
267
|
+
const output = readOutput();
|
|
268
|
+
const errorOutput = readError();
|
|
253
269
|
if (timedOut) {
|
|
254
270
|
done({
|
|
255
271
|
ok: false,
|
|
256
|
-
output
|
|
272
|
+
output,
|
|
257
273
|
exitCode: code,
|
|
258
274
|
signal: signal || null,
|
|
259
275
|
error: `timed out after ${timeoutMs || 120000}ms`,
|
|
@@ -268,11 +284,11 @@ function makeHeadlessRunAgent(opts = {}) {
|
|
|
268
284
|
usage: null,
|
|
269
285
|
totalCostUsd: null,
|
|
270
286
|
}
|
|
271
|
-
: verifyAgentTerminal(
|
|
287
|
+
: verifyAgentTerminal(output);
|
|
272
288
|
const ok = code === 0 && !signal && (opts._argv || terminalVerified);
|
|
273
289
|
done({
|
|
274
290
|
ok: Boolean(ok),
|
|
275
|
-
output
|
|
291
|
+
output,
|
|
276
292
|
exitCode: code,
|
|
277
293
|
signal: signal || null,
|
|
278
294
|
terminalVerified,
|
|
@@ -283,7 +299,7 @@ function makeHeadlessRunAgent(opts = {}) {
|
|
|
283
299
|
? null
|
|
284
300
|
: code === 0 && !signal
|
|
285
301
|
? "agent stream lacks a valid success terminal"
|
|
286
|
-
:
|
|
302
|
+
: errorOutput || `agent process exited with ${signal || code}`,
|
|
287
303
|
});
|
|
288
304
|
});
|
|
289
305
|
});
|
package/src/data/changelog.json
CHANGED
|
@@ -1,6 +1,32 @@
|
|
|
1
1
|
{
|
|
2
2
|
"source": "CHANGELOG.md",
|
|
3
3
|
"releases": [
|
|
4
|
+
{
|
|
5
|
+
"productVersion": null,
|
|
6
|
+
"cliVersion": "0.166.105",
|
|
7
|
+
"cliVersions": ["0.166.105"],
|
|
8
|
+
"date": "2026-10-18",
|
|
9
|
+
"title": "",
|
|
10
|
+
"sections": [
|
|
11
|
+
{
|
|
12
|
+
"heading": "Fixed - cc CLI 0.166.105: task delivery quality and safe diagnostics (candidate, 2026-10-18)",
|
|
13
|
+
"body": "- Add general coding guidance and static relative-import feedback without executing candidate code or injecting task-specific answers.\n- Do not report completion while deferred writes remain; distinguish provider transport aborts from owned cancellation.\n- Preserve bounded allowlisted transport cause details without changing original errors, exits, fetch, retries or replay.\n- Pair candidate VS Code 0.37.150 and JetBrains 0.4.167 with CLI 0.166.105 after exact-commit matrices, OIDC publishing and public readback. JetBrains restores saved Markdown consistently with live rendering.\n- Campaign: 25/45 cumulative candidate acceptances; latest 22/25 collected, 4 end-to-end passes, 3 Windows JetBrains samples ongoing. New versions are not yet published or retested."
|
|
14
|
+
}
|
|
15
|
+
]
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"productVersion": null,
|
|
19
|
+
"cliVersion": "0.166.104",
|
|
20
|
+
"cliVersions": ["0.166.104"],
|
|
21
|
+
"date": null,
|
|
22
|
+
"title": "",
|
|
23
|
+
"sections": [
|
|
24
|
+
{
|
|
25
|
+
"heading": "Fixed - cc CLI 0.166.104: recover governed sessions safely",
|
|
26
|
+
"body": "- Verify Jev model usage starts and settlements before resuming a durable\n session; stop further provider calls when usage or persistence is unresolved.\n- Bind session budget roots to verified JSONL for single-prompt, stream-json and\n REPL entry points, retaining the original limits across resume.\n- Preserve UTF-8 in background, batch and SDK process streams; reject malformed\n background frames and stale MCP tool catalogs before dispatch.\n- Publish Agent SDK 0.2.15 before this CLI release, then pair VS Code 0.37.149\n and JetBrains 0.4.166 with CLI 0.166.104 after exact-commit gates and public\n npm readback. Formal paid evaluation remains NOT_RUN."
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
},
|
|
4
30
|
{
|
|
5
31
|
"productVersion": null,
|
|
6
32
|
"cliVersion": "0.166.103",
|