chainlesschain 0.166.97 → 0.166.98
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/package.json +3 -3
- 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-BB9kKNVw.js → AIOps-DCIQFtF1.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-DTg-lWE0.js → ActionButton-BxhHU3nE.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-BWUZ0Tpc.js → Analytics-DdM_307O.js} +3 -3
- package/src/assets/web-panel/assets/{AppLayout-Dj8WDnCf.js → AppLayout-C43-kSrh.js} +5 -5
- package/src/assets/web-panel/assets/{Artifacts-x8NiiPTg.js → Artifacts-B2Vp2Am6.js} +1 -1
- package/src/assets/web-panel/assets/{Audit-q7otRAqO.js → Audit-s-lYUfOp.js} +1 -1
- package/src/assets/web-panel/assets/{BackgroundAgents-f6qlO2au.js → BackgroundAgents-DTE7Kzio.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-BbuX9qQS.js → Backup-9k1q4Mt6.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-amgV-Y0y.js → BaseInput-DlpUtK5R.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-CZW3DW7j.js → Chat-CR9S8Rmb.js} +5 -5
- package/src/assets/web-panel/assets/ChatBubbleRenderer-Xtgfw3-c.js +1 -0
- package/src/assets/web-panel/assets/{Checkbox-DXHXC52i.js → Checkbox-DpFRu7Df.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-DQh47r4e.js → Codegen-BIl72E4Y.js} +1 -1
- package/src/assets/web-panel/assets/{Col-lBOOXCD7.js → Col-91tl_err.js} +1 -1
- package/src/assets/web-panel/assets/{Community-BNFPnBu9.js → Community-CswahO9-.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-7MOWfBGb.js → Compact-D9pfHmaM.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-x0UA-rxk.js → Compliance-CXSZzAO9.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-C_eLfk_Q.js → Cowork-CuT9RWTn.js} +2 -2
- package/src/assets/web-panel/assets/{Cron-BP2-_Fja.js → Cron-B71aJWDV.js} +2 -2
- package/src/assets/web-panel/assets/{Crosschain-Dn-e1217.js → Crosschain-CcUuWyx8.js} +1 -1
- package/src/assets/web-panel/assets/{DID-D_jverif.js → DID-CtVVGOPL.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-BysweBms.js → Dashboard-CV7ZCYQq.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-osJi0Pci.js → Dropdown-DKHxwLgE.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer-C72k1SKQ.js → EmailListRenderer-Bd03UIvv.js} +1 -1
- package/src/assets/web-panel/assets/{EvolutionSettings-CAtA1F9s.js → EvolutionSettings-CTrG03B_.js} +1 -1
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-Bi0luzvO.js → FamilyGuardDashboard-DXS4bS6Q.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-CIwntDLI.js → Federation-BODG2Szj.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-DRfwhPW-.js → FormItemContext-D32ccUqD.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-COJTzZ61.js → GenericCardRenderer-ClsyrKvF.js} +1 -1
- package/src/assets/web-panel/assets/{Git-CwsR46lj.js → Git-DcM2yhbL.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-B1U-u9BN.js → Governance-BhUzM87n.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-vPsdYTS_.js → Inference-Dq1n0Ifg.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-CVDRZM5h.js → KnowledgeGraph-dmmPwEks.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-YRslKbRL.js → Logs-CBSYrPmh.js} +2 -2
- package/src/assets/web-panel/assets/MarkdownRenderer-CRoDI77y.js +1 -0
- package/src/assets/web-panel/assets/{Marketplace-CtxYHchd.js → Marketplace-Cfw7XLck.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-BkfCbpAk.js → McpTools-CNrZRy4n.js} +3 -3
- package/src/assets/web-panel/assets/{Memory-COp-8Z20.js → Memory-BESjTxdd.js} +2 -2
- package/src/assets/web-panel/assets/{MobileBridge-7fX-n_xn.js → MobileBridge-Boyjo07i.js} +1 -1
- package/src/assets/web-panel/assets/{MobileProjects-DUyTVgId.js → MobileProjects-BmxmpTWz.js} +1 -1
- package/src/assets/web-panel/assets/{Mtc-CLXFZ5dV.js → Mtc-CBkrD0Fq.js} +5 -5
- package/src/assets/web-panel/assets/{MtcAudit-yJ4eP1wB.js → MtcAudit-BA7cAK8h.js} +5 -5
- package/src/assets/web-panel/assets/{Multisig-Cwb_qTh0.js → Multisig-m0RGzkKO.js} +3 -3
- package/src/assets/web-panel/assets/{NLProgramming-CkuojSSJ.js → NLProgramming-D_TgzifU.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-ju-QtUhJ.js → Notes-Dr-Yr9LL.js} +3 -3
- package/src/assets/web-panel/assets/{NotificationSettings-DjryXIC3.js → NotificationSettings-DGanpkqO.js} +1 -1
- package/src/assets/web-panel/assets/{OrderTableRenderer-B4KNF8xr.js → OrderTableRenderer-D1FX50QY.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-6-EtcVaO.js → Organization-DRbPg-gs.js} +2 -2
- package/src/assets/web-panel/assets/{Overflow-BKja8nqr.js → Overflow-flEO37z6.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-BX20f9uL.js → P2P-DqfqFbCW.js} +2 -2
- package/src/assets/web-panel/assets/{PdhVaultBrowser-C9zwOEUo.js → PdhVaultBrowser-Cmi5a5dW.js} +3 -3
- package/src/assets/web-panel/assets/{Permissions-YQjQVrfE.js → Permissions-DBVRlvBW.js} +4 -4
- package/src/assets/web-panel/assets/{PersonalDataHub-yZYclXxq.js → PersonalDataHub-gQqjPr9X.js} +4 -4
- package/src/assets/web-panel/assets/{Pipeline-ChZCCXAI.js → Pipeline-6HlifUc9.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-Ds7R-a0H.js → Privacy-bm_2-Zwg.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-B3qz_xab.js → ProjectInit-BJW3isuq.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-BlwNctdF.js → ProjectSettings-DD3yolz7.js} +2 -2
- package/src/assets/web-panel/assets/{Projects-BxtYpNl7.js → Projects-BF3GtWny.js} +1 -1
- package/src/assets/web-panel/assets/{Providers-BE_1SS_-.js → Providers-CQA6WAK7.js} +1 -1
- package/src/assets/web-panel/assets/{QrScannerModal-CMQ25oLb.js → QrScannerModal-DOAwp5Xo.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-DQRFLDeP.js → QuickAsk-qeFXsAZT.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-ChVra4Pk.js → Recommend-zDWXwZN8.js} +1 -1
- package/src/assets/web-panel/assets/{RemoteSession-9vPBIowJ.js → RemoteSession-toe6Ip06.js} +3 -3
- package/src/assets/web-panel/assets/{Reputation-MdbWbyQQ.js → Reputation-DRDi_Eqp.js} +1 -1
- package/src/assets/web-panel/assets/{Row-JLcBncLR.js → Row-Do2UbYkf.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-CnMXnpFv.js → RssFeed-B57C6_Sa.js} +3 -3
- package/src/assets/web-panel/assets/{Search-Cf5ISVUe.js → Search-DfDyBpe9.js} +1 -1
- package/src/assets/web-panel/assets/{Security-CywFo2EM.js → Security-CulNxeAM.js} +3 -3
- package/src/assets/web-panel/assets/{Services-CLYnSCG3.js → Services-COfAYvs4.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-BtbhOlo1.js → Skeleton-0fn0T146.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-DPeqcIo2.js → Skills-pPQgAhvJ.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-BRb4SqDn.js → Sla-CIsRmePR.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-0Wuxts-7.js → SpeechSettings-Bn01d-8b.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-BXtsOjXL.js → SyncSettings-Cx_Znk7L.js} +2 -2
- package/src/assets/web-panel/assets/{Tasks-D455Wfhx.js → Tasks-DvaskzpG.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-LGc4O0fj.js → Templates-DmHCEiDO.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-DA--0GFz.js → Tenant-CqHyvnbW.js} +1 -1
- package/src/assets/web-panel/assets/{Terminal-DQsA0xCq.js → Terminal-DTt3yqWL.js} +2 -2
- package/src/assets/web-panel/assets/{TimelineRenderer-VH8AuSLp.js → TimelineRenderer-BhkIxcR3.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-B8RyzFRN.js → Tokens-mhjYcBBP.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-CA7lVVEf.js → Trigger-CdlMQfwX.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-wUoRRLg9.js → Trust-Bzovg_Gw.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-ByoT_alW.js → UkeySign-ph3EuYi7.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-D9fgAxJV.js → VideoEditing-Bo2B4VZE.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-CRkTndvj.js → Wallet-BQTKsSUT.js} +2 -2
- package/src/assets/web-panel/assets/{WebAuthn-VwmHOxJK.js → WebAuthn-nJxsXNHV.js} +5 -5
- package/src/assets/web-panel/assets/{WorkflowEditor-Z0bPZc2O.js → WorkflowEditor-CjH8g2N7.js} +1 -1
- package/src/assets/web-panel/assets/{chat-CfX_5qUm.js → chat-CkbNmnQD.js} +1 -1
- package/src/assets/web-panel/assets/{colors-BK7mXUnR.js → colors-BY9JcObR.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-Uq755CeO.js → compact-item-Dzzq-d8n.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-DWXq8Qnk.js → createContext-DiJxxdTx.js} +1 -1
- package/src/assets/web-panel/assets/devWarning-D502_Z3w.js +1 -0
- package/src/assets/web-panel/assets/{hasIn-BXgy5JZA.js → hasIn-DaXPOw3D.js} +1 -1
- package/src/assets/web-panel/assets/{index-_I4nSJFc.js → index-6Z6Z4UwN.js} +1 -1
- package/src/assets/web-panel/assets/{index-D4yvdQCj.js → index-7YVCjSqG.js} +1 -1
- package/src/assets/web-panel/assets/{index-D63nsr0a.js → index-B31oMRmK.js} +1 -1
- package/src/assets/web-panel/assets/{index-DdwC1i3O.js → index-B4Sf1AMk.js} +1 -1
- package/src/assets/web-panel/assets/{index-CRLOeoFE.js → index-BGvIb1Sr.js} +1 -1
- package/src/assets/web-panel/assets/{index-JX7mXB5a.js → index-BHeHyLRM.js} +3 -3
- package/src/assets/web-panel/assets/{index-Ct41B4y4.js → index-BQvtlYUd.js} +1 -1
- package/src/assets/web-panel/assets/{index-VrR8eMCk.js → index-Bhsxh-rH.js} +1 -1
- package/src/assets/web-panel/assets/{index-C8e4SYX4.js → index-BlWg1bRA.js} +1 -1
- package/src/assets/web-panel/assets/{index-C3VnhfYU.js → index-BqCHe05H.js} +1 -1
- package/src/assets/web-panel/assets/index-BrQ4nI4W.js +1 -0
- package/src/assets/web-panel/assets/{index-DSb7SKp5.js → index-BvgMt6Io.js} +1 -1
- package/src/assets/web-panel/assets/{index-Y77S-ZC0.js → index-BycyBM6g.js} +1 -1
- package/src/assets/web-panel/assets/index-C0_sewGO.js +1 -0
- package/src/assets/web-panel/assets/{index-CGy7b2rd.js → index-C6XSCXeb.js} +1 -1
- package/src/assets/web-panel/assets/{index-XdoslBhl.js → index-CAzfu6k5.js} +1 -1
- package/src/assets/web-panel/assets/{index-B09haI0M.js → index-CVblRqUN.js} +1 -1
- package/src/assets/web-panel/assets/{index-Bt3tjvj-.js → index-CWLpEg34.js} +1 -1
- package/src/assets/web-panel/assets/{index-wYTro42F.js → index-C_OMH_FT.js} +1 -1
- package/src/assets/web-panel/assets/{index-H13lvPme.js → index-CbOOm8I8.js} +1 -1
- package/src/assets/web-panel/assets/{index-TDPkVyse.js → index-CnLO1_yN.js} +1 -1
- package/src/assets/web-panel/assets/{index-DuhlVXh4.js → index-CqOkm6kW.js} +1 -1
- package/src/assets/web-panel/assets/{index-CfYb8FjC.js → index-DDnqjZa2.js} +1 -1
- package/src/assets/web-panel/assets/{index-VPLA-GO7.js → index-DObXhPhH.js} +1 -1
- package/src/assets/web-panel/assets/{index-CarQiRSA.js → index-DSqQyS9-.js} +1 -1
- package/src/assets/web-panel/assets/{index-Ait-_UUh.js → index-DWT9-E5b.js} +1 -1
- package/src/assets/web-panel/assets/{index-D-8lN1rG.js → index-D_Eoh740.js} +1 -1
- package/src/assets/web-panel/assets/{index-DiVH_NiY.js → index-DaylJfw6.js} +1 -1
- package/src/assets/web-panel/assets/{index-DbjUfyVq.js → index-DbmHmeP-.js} +1 -1
- package/src/assets/web-panel/assets/{index-LsBPnXHh.js → index-Djeh6rAb.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dg9P9EDV.js → index-Dl8U-0hn.js} +1 -1
- package/src/assets/web-panel/assets/{index-BRQSkXde.js → index-EiaWq1TH.js} +1 -1
- package/src/assets/web-panel/assets/{index-BZD1My0S.js → index-Igq-72Ep.js} +1 -1
- package/src/assets/web-panel/assets/{index-QXKuGlOS.js → index-Jmlk_lDX.js} +1 -1
- package/src/assets/web-panel/assets/{index-p3BlIre2.js → index-LRZSVBxC.js} +1 -1
- package/src/assets/web-panel/assets/{index-CUR7dnMg.js → index-Uh9SjtgW.js} +1 -1
- package/src/assets/web-panel/assets/{index-CqJw5WsH.js → index-cu1J4avY.js} +1 -1
- package/src/assets/web-panel/assets/{index-9XsaovMH.js → index-dC2JACyJ.js} +1 -1
- package/src/assets/web-panel/assets/{index-BxSClhg5.js → index-i9eu2Kir.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-DTuF67Yy.js → initDefaultProps-B0WuG3fa.js} +1 -1
- package/src/assets/web-panel/assets/{motion-DZasLgsl.js → motion-1r5YB22w.js} +1 -1
- package/src/assets/web-panel/assets/{move-pPR4O1Du.js → move-CvtXWA_V.js} +1 -1
- package/src/assets/web-panel/assets/{mtc-parser-Dc7fidhm.js → mtc-parser-ChedmEE_.js} +1 -1
- package/src/assets/web-panel/assets/{omit-CZ1IcubN.js → omit-DpEA3MP0.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-BMtJilhr.js → pickAttrs-BWgrUZF6.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-D0EXaZA7.js → placementArrow-BWfo_VbI.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-HftdThc5.js → responsiveObserve-CRft03Vk.js} +1 -1
- package/src/assets/web-panel/assets/{slide-CT1JEPWV.js → slide-l5LeXusH.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-rwE-IPZB.js → statusUtils-CCEC0JR-.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-B2B8XHVq.js → styleChecker-Bw5Gw_2w.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-TXNvIFVa.js → useFlexGapSupport-BAuxWB7K.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-BcWgJKvf.js → useFs-CxUP97Cw.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-DWBDnOSR.js → usePersonalDataHub-BJDjT4Sy.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-Cf_LjUuu.js → vnode-BcCsFzIs.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-DM2Bfuyl.js → zoom-MLmG09h6.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/commands/eval.js +79 -3
- package/src/commands/llm.js +40 -5
- package/src/data/changelog.json +13 -0
- package/src/lib/context-memory-kernel/message-adapter.js +41 -24
- package/src/lib/context-memory-kernel/segmented-memory-port.js +18 -0
- package/src/lib/eval/runner.js +22 -1
- package/src/lib/eval/verify01-contracts.js +106 -51
- package/src/lib/eval/verify01-execution.js +148 -166
- package/src/lib/eval/verify01-host-evidence.js +34 -2
- package/src/lib/eval/verify01-workspace.js +302 -0
- package/src/lib/execution-location-failure-site.js +18 -0
- package/src/lib/execution-location-target.js +10 -0
- package/src/lib/llm-connection-probe.js +147 -6
- package/src/lib/provider-http-error.js +30 -11
- package/src/lib/task-progress-tracker.js +1 -0
- package/src/runtime/agent-core.js +22 -0
- package/src/runtime/headless-runner.js +30 -20
- package/src/runtime/headless-stream.js +15 -10
- package/src/assets/web-panel/assets/ChatBubbleRenderer-DgMYDmBW.js +0 -1
- package/src/assets/web-panel/assets/MarkdownRenderer-CUBuc97a.js +0 -1
- package/src/assets/web-panel/assets/devWarning-CbtBfs7a.js +0 -1
- package/src/assets/web-panel/assets/index-CicoHC0s.js +0 -1
- package/src/assets/web-panel/assets/index-DttyUwDx.js +0 -1
|
@@ -1368,14 +1368,19 @@ async function runAgentHeadlessInWorkspace(
|
|
|
1368
1368
|
assertManagedPermissionMode(options.permissionMode, managedSettings);
|
|
1369
1369
|
}
|
|
1370
1370
|
const perm = resolvePermissionMode(options.permissionMode);
|
|
1371
|
+
const requestedToolNames = resolveEnabledTools({
|
|
1372
|
+
// An explicit --allowed-tools wins; otherwise a matched command's
|
|
1373
|
+
// `allowed-tools:` frontmatter scopes the run (null when neither applies).
|
|
1374
|
+
allowedTools: options.allowedTools || macroAllowedTools,
|
|
1375
|
+
readOnly: perm.readOnly,
|
|
1376
|
+
});
|
|
1377
|
+
// The formal file-only ceiling must also honor narrower caller permissions,
|
|
1378
|
+
// including an empty allowlist and plan mode's read-only intersection.
|
|
1371
1379
|
const enabledToolNames = formalQualityHermetic
|
|
1372
|
-
?
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
allowedTools: options.allowedTools || macroAllowedTools,
|
|
1377
|
-
readOnly: perm.readOnly,
|
|
1378
|
-
});
|
|
1380
|
+
? (requestedToolNames ?? FORMAL_QUALITY_FILE_TOOLS).filter((name) =>
|
|
1381
|
+
FORMAL_QUALITY_FILE_TOOLS.includes(name),
|
|
1382
|
+
)
|
|
1383
|
+
: requestedToolNames;
|
|
1379
1384
|
const disabledTools = options.disallowedTools || [];
|
|
1380
1385
|
|
|
1381
1386
|
// ── Best-effort runtime bootstrap (DB optional, like startAgentRepl) ───
|
|
@@ -3300,9 +3305,23 @@ async function runAgentHeadlessInWorkspace(
|
|
|
3300
3305
|
}
|
|
3301
3306
|
case "tool-result": {
|
|
3302
3307
|
const err = event.error || event.result?.error || null;
|
|
3308
|
+
// A denied request has no invocation to settle. Explicit provider
|
|
3309
|
+
// IDs must never fall back to a different pending invocation.
|
|
3310
|
+
const settledCall =
|
|
3311
|
+
event.execution_started === false
|
|
3312
|
+
? null
|
|
3313
|
+
: event.tool_use_id
|
|
3314
|
+
? activeToolCalls.get(event.tool_use_id) || null
|
|
3315
|
+
: [...toolCalls]
|
|
3316
|
+
.reverse()
|
|
3317
|
+
.find(
|
|
3318
|
+
(call) =>
|
|
3319
|
+
!call._runtimeSettled &&
|
|
3320
|
+
(!event.tool || call.tool === event.tool),
|
|
3321
|
+
) || null;
|
|
3303
3322
|
// P0-2: settle the in-flight side-effect (commit on success, fail on
|
|
3304
3323
|
// a clean error) and persist the updated ledger snapshot.
|
|
3305
|
-
if (persist && currentSideEffectOpId) {
|
|
3324
|
+
if (persist && currentSideEffectOpId && settledCall) {
|
|
3306
3325
|
if (event.permission_decision) {
|
|
3307
3326
|
sideEffectLedger.annotate(currentSideEffectOpId, {
|
|
3308
3327
|
permissionDecision: event.permission_decision,
|
|
@@ -3330,6 +3349,9 @@ async function runAgentHeadlessInWorkspace(
|
|
|
3330
3349
|
...(event.tool_use_id ? { id: event.tool_use_id } : {}),
|
|
3331
3350
|
tool: event.tool,
|
|
3332
3351
|
is_error: Boolean(err),
|
|
3352
|
+
...(event.execution_started === false
|
|
3353
|
+
? { execution_started: false }
|
|
3354
|
+
: {}),
|
|
3333
3355
|
error: err,
|
|
3334
3356
|
result: event.result,
|
|
3335
3357
|
...(event.permission_decision_id
|
|
@@ -3347,18 +3369,6 @@ async function runAgentHeadlessInWorkspace(
|
|
|
3347
3369
|
});
|
|
3348
3370
|
if (policyEvent) emitStream(policyEvent);
|
|
3349
3371
|
}
|
|
3350
|
-
const settledCall =
|
|
3351
|
-
(event.tool_use_id
|
|
3352
|
-
? activeToolCalls.get(event.tool_use_id)
|
|
3353
|
-
: null) ||
|
|
3354
|
-
[...toolCalls]
|
|
3355
|
-
.reverse()
|
|
3356
|
-
.find(
|
|
3357
|
-
(call) =>
|
|
3358
|
-
!call._runtimeSettled &&
|
|
3359
|
-
(!event.tool || call.tool === event.tool),
|
|
3360
|
-
) ||
|
|
3361
|
-
null;
|
|
3362
3372
|
if (settledCall) {
|
|
3363
3373
|
settledCall.is_error = Boolean(err);
|
|
3364
3374
|
settledCall.durationMs =
|
|
@@ -1061,9 +1061,17 @@ async function runTurn(
|
|
|
1061
1061
|
}
|
|
1062
1062
|
case "tool-result": {
|
|
1063
1063
|
const err = event.error || event.result?.error || null;
|
|
1064
|
+
// No invocation started for a preflight denial. For actual results,
|
|
1065
|
+
// retain the adjacency fallback only for legacy events without IDs.
|
|
1066
|
+
const lastCall =
|
|
1067
|
+
event.execution_started === false
|
|
1068
|
+
? null
|
|
1069
|
+
: event.tool_use_id
|
|
1070
|
+
? toolCalls.find((call) => call.id === event.tool_use_id) || null
|
|
1071
|
+
: toolCalls.at(-1) || null;
|
|
1064
1072
|
// P0-2: settle the in-flight side-effect (commit on success, fail on
|
|
1065
1073
|
// a clean error) and persist the updated ledger snapshot.
|
|
1066
|
-
if (sideEffects && currentSideEffectOpId) {
|
|
1074
|
+
if (sideEffects && currentSideEffectOpId && lastCall) {
|
|
1067
1075
|
if (event.permission_decision) {
|
|
1068
1076
|
sideEffects.ledger.annotate(currentSideEffectOpId, {
|
|
1069
1077
|
permissionDecision: event.permission_decision,
|
|
@@ -1085,14 +1093,6 @@ async function runTurn(
|
|
|
1085
1093
|
sideEffects.persist();
|
|
1086
1094
|
currentSideEffectOpId = null;
|
|
1087
1095
|
}
|
|
1088
|
-
// The loop runs tools serially, so this result settles the most
|
|
1089
|
-
// recent tool_use (same adjacency rule the is_error attribution
|
|
1090
|
-
// below has always used).
|
|
1091
|
-
const lastCall =
|
|
1092
|
-
(event.tool_use_id
|
|
1093
|
-
? toolCalls.find((call) => call.id === event.tool_use_id)
|
|
1094
|
-
: null) ||
|
|
1095
|
-
(toolCalls.length > 0 ? toolCalls[toolCalls.length - 1] : null);
|
|
1096
1096
|
if (lastCall) {
|
|
1097
1097
|
lastCall.is_error = Boolean(err);
|
|
1098
1098
|
lastCall.durationMs =
|
|
@@ -1117,13 +1117,18 @@ async function runTurn(
|
|
|
1117
1117
|
: null;
|
|
1118
1118
|
emit({
|
|
1119
1119
|
type: "tool_result",
|
|
1120
|
-
...(
|
|
1120
|
+
...(event.tool_use_id || lastCall?.id
|
|
1121
|
+
? { id: event.tool_use_id || lastCall.id }
|
|
1122
|
+
: {}),
|
|
1121
1123
|
...(lastCall?.planItemId
|
|
1122
1124
|
? { plan_item_id: lastCall.planItemId }
|
|
1123
1125
|
: {}),
|
|
1124
1126
|
...(settledItem?.turn ? { turn: settledItem.turn } : {}),
|
|
1125
1127
|
tool: event.tool,
|
|
1126
1128
|
is_error: Boolean(err),
|
|
1129
|
+
...(event.execution_started === false
|
|
1130
|
+
? { execution_started: false }
|
|
1131
|
+
: {}),
|
|
1127
1132
|
error: err,
|
|
1128
1133
|
result: event.result,
|
|
1129
1134
|
...(event.permission_decision_id
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{I as v,P as u,J as S,U as n,R as a,S as y,K as C,Q as x,V as w,_ as B,b as s}from"./vendor-Bn1JzzAn.js";import{_ as k}from"./index-JX7mXB5a.js";import"./icons-DG5UD-6K.js";const T={__name:"ChatBubbleRenderer",props:{event:{type:Object,required:!0}},setup(c,{expose:d}){d();const t=c,r=s(()=>{const e=t.event.content||{};return e.text||e.body||e.message||e.title||JSON.stringify(e).slice(0,200)}),i=s(()=>{const e=t.event.content||{};return e.from||e.sender||e.senderName||t.event.actor||"(unknown)"}),l=s(()=>{const e=(t.event.actor||"").toLowerCase();return e.includes("self")||e==="me"||e.endsWith("_self")}),o=s(()=>{const e=t.event.source.adapter||"";return e.startsWith("messaging-qq")?"magenta":e==="wechat"?"green":"blue"}),m=s(()=>{if(!t.event.occurredAt)return"";try{const e=new Date(t.event.occurredAt),p=e.getFullYear(),b=String(e.getMonth()+1).padStart(2,"0"),f=String(e.getDate()).padStart(2,"0"),g=String(e.getHours()).padStart(2,"0"),h=String(e.getMinutes()).padStart(2,"0");return`${p}-${b}-${f} ${g}:${h}`}catch{return""}}),_={props:t,messageText:r,actorLabel:i,isMine:l,adapterColor:o,formattedTime:m,computed:s};return Object.defineProperty(_,"__isScriptSetup",{enumerable:!1,value:!0}),_}},N={class:"bubble"},R={class:"meta"},M={class:"actor"},V={class:"time"},q={class:"body"};function D(c,d,t,r,i,l){const o=v("a-tag");return u(),S("div",{class:B(["chat-row",{mine:r.isMine}])},[n("div",N,[n("div",R,[n("span",M,a(r.actorLabel),1),n("span",V,a(r.formattedTime),1)]),n("div",q,a(r.messageText),1),t.event.source.adapter?(u(),y(o,{key:0,class:"src",color:r.adapterColor},{default:C(()=>[x(a(t.event.source.adapter),1)]),_:1},8,["color"])):w("v-if",!0)])],2)}const j=k(T,[["render",D],["__scopeId","data-v-49238629"],["__file","/tmp/cc-web-panel-TRWb3u/repo/packages/web-panel/src/components/pdh/renderers/ChatBubbleRenderer.vue"]]);export{j as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{P as c,J as p,b as s}from"./vendor-Bn1JzzAn.js";import{r as a}from"./markdown-Yo_c6Krv.js";import{_ as d}from"./index-JX7mXB5a.js";const _={__name:"MarkdownRenderer",props:{content:{type:String,default:""}},setup(t,{expose:o}){o();const e=t,r=s(()=>a(e.content||"")),n={props:e,rendered:r,computed:s,get renderMarkdown(){return a}};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}},i=["innerHTML"];function u(t,o,e,r,n,m){return c(),p("div",{class:"markdown-content",innerHTML:r.rendered},null,8,i)}const b=d(_,[["render",u],["__scopeId","data-v-0b0b9f63"],["__file","/tmp/cc-web-panel-TRWb3u/repo/packages/web-panel/src/components/MarkdownRenderer.vue"]]);export{b as M};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Q as r}from"./index-JX7mXB5a.js";const o=((n,a,e)=>{r(n,`[ant-design-vue: ${a}] ${e}`)});export{o as d};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{A as o}from"./Row-JLcBncLR.js";import{a0 as t}from"./index-JX7mXB5a.js";import"./vendor-Bn1JzzAn.js";import"./responsiveObserve-HftdThc5.js";import"./useFlexGapSupport-TXNvIFVa.js";import"./styleChecker-B2B8XHVq.js";import"./index-DdwC1i3O.js";import"./icons-DG5UD-6K.js";const l=t(o);export{l as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as o}from"./Col-lBOOXCD7.js";import{a0 as t}from"./index-JX7mXB5a.js";import"./vendor-Bn1JzzAn.js";import"./index-DdwC1i3O.js";import"./icons-DG5UD-6K.js";const s=t(o);export{s as default};
|