chainlesschain 0.166.0 → 0.166.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/package.json +1 -1
- package/src/assets/web-panel/assets/{AIOps-D5_pwQ7M.js → AIOps-BnZ24WRk.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-DgoYO32D.js → ActionButton-ivXY7MGb.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-BIpoZ4QH.js → Analytics-BQS4OD-k.js} +3 -3
- package/src/assets/web-panel/assets/{AppLayout-BJ3XrCEe.js → AppLayout-wOBuOKTO.js} +5 -5
- package/src/assets/web-panel/assets/{Artifacts-DUFs_izZ.js → Artifacts-BYuC4nw-.js} +1 -1
- package/src/assets/web-panel/assets/{Audit-BZdPwwfL.js → Audit-BIeVfBt6.js} +1 -1
- package/src/assets/web-panel/assets/{BackgroundAgents-DK9Fn-8B.js → BackgroundAgents-hIuyhmJ7.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-Bd6bOhV_.js → Backup-B6ohdgPQ.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-CRnWlXrd.js → BaseInput-BzgYCw6h.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-D1G_yEl6.js → Chat-CwahvZU1.js} +5 -5
- package/src/assets/web-panel/assets/{ChatBubbleRenderer-DDAlEtm-.js → ChatBubbleRenderer-B-1IZ_k8.js} +1 -1
- package/src/assets/web-panel/assets/{Checkbox-CP35SH7R.js → Checkbox-26EDP2x0.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-DugeL4pj.js → Codegen-DYLw1Zvd.js} +1 -1
- package/src/assets/web-panel/assets/{Col-DPuJsvKg.js → Col-DH_zAvD-.js} +1 -1
- package/src/assets/web-panel/assets/{Community-CZqNjNNp.js → Community-DURrTXJu.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-eeyIPEAb.js → Compact-CQyBqN0p.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-MGzTw87k.js → Compliance-a0DfgKHD.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-D3goVIA5.js → Cowork-C6fY_5Ke.js} +3 -3
- package/src/assets/web-panel/assets/{Cron-9HA8hLLG.js → Cron-DOwmpbTe.js} +2 -2
- package/src/assets/web-panel/assets/{Crosschain-DCSOX3l6.js → Crosschain-DEPOIEUs.js} +1 -1
- package/src/assets/web-panel/assets/{DID-ji3lN5Bc.js → DID-DaKc-CEV.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-DlZvF1E5.js → Dashboard-C-0KLXq5.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-2FyZcow9.js → Dropdown-CnsDukzr.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer-qH2bSpSY.js → EmailListRenderer-Bi_ACD4N.js} +1 -1
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-Bfx47wZj.js → FamilyGuardDashboard-BZASpnx3.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-DhGcZbIv.js → Federation-43oTtzyp.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-BMgi9_YQ.js → FormItemContext-oyVadnkZ.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-DugMac-4.js → GenericCardRenderer-Cwvfd6TZ.js} +1 -1
- package/src/assets/web-panel/assets/{Git-D943BpH-.js → Git-Cgi2wvU0.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-DZ66a8Aa.js → Governance-l8TWDKZ0.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-B00Mp2tN.js → Inference-Dc8j6TaO.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-BdwXXO2Q.js → KnowledgeGraph-DgcO-Fwz.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-_MVXyYWc.js → Logs-DjiZpiwa.js} +2 -2
- package/src/assets/web-panel/assets/{MarkdownRenderer-hOTeNyi7.js → MarkdownRenderer-B5MFCi0N.js} +1 -1
- package/src/assets/web-panel/assets/{Marketplace-CxeHRsnO.js → Marketplace-BeDn1hFc.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-BOieTxZ4.js → McpTools-PGdVfWK6.js} +3 -3
- package/src/assets/web-panel/assets/{Memory-BQD26CM3.js → Memory-e76lY3a1.js} +2 -2
- package/src/assets/web-panel/assets/{MobileBridge-CPJ8ZlvR.js → MobileBridge-DKlQqot_.js} +1 -1
- package/src/assets/web-panel/assets/{MobileProjects-D7qRVu0y.js → MobileProjects-C4g6WOEr.js} +1 -1
- package/src/assets/web-panel/assets/{Mtc-BOyndGuk.js → Mtc-1j3NpRQq.js} +4 -4
- package/src/assets/web-panel/assets/{MtcAudit-CXQ_8ZoR.js → MtcAudit-DgwiVd1C.js} +2 -2
- package/src/assets/web-panel/assets/{Multisig-32Oh9KbH.js → Multisig-Dzg5lZZY.js} +3 -3
- package/src/assets/web-panel/assets/{NLProgramming-CFAd00CX.js → NLProgramming-D7GYhst-.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-BBCY_qJA.js → Notes-Blcfvaic.js} +3 -3
- package/src/assets/web-panel/assets/{NotificationSettings-uaQ0PdmW.js → NotificationSettings-Dc4Y6vfr.js} +1 -1
- package/src/assets/web-panel/assets/OrderTableRenderer-dgM87XIn.js +1 -0
- package/src/assets/web-panel/assets/{Organization-CmFn7Oeo.js → Organization-DBXq024L.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-R_avat3a.js → Overflow-CFPbdx1Y.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-BIhLFmkY.js → P2P-w7z61NR5.js} +2 -2
- package/src/assets/web-panel/assets/{PdhVaultBrowser-DTJjk-_i.js → PdhVaultBrowser-B7eGGZOa.js} +3 -3
- package/src/assets/web-panel/assets/{Permissions-CkzYv8Yb.js → Permissions-Df5Cl50D.js} +4 -4
- package/src/assets/web-panel/assets/{PersonalDataHub--0QvN2Nz.js → PersonalDataHub-C-We7RF6.js} +5 -5
- package/src/assets/web-panel/assets/{Pipeline-Bfw5gQCH.js → Pipeline-B6fHPnKy.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-DicjKfax.js → Privacy-B85BdiIc.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-DUl_ykBp.js → ProjectInit-CcOyazSe.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-CPYDvN8a.js → ProjectSettings-BE53KfuU.js} +2 -2
- package/src/assets/web-panel/assets/{Projects-DnZ9_fAr.js → Projects-DOvMOoe_.js} +1 -1
- package/src/assets/web-panel/assets/{Providers-BX1jP31w.js → Providers-5l7sT9lq.js} +1 -1
- package/src/assets/web-panel/assets/{QrScannerModal-COab5qUl.js → QrScannerModal-DE37RXy4.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-CdKQ_JZ0.js → QuickAsk-BGmGCo7j.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-BPFHg8pK.js → Recommend-BFdx8Nrm.js} +1 -1
- package/src/assets/web-panel/assets/{RemoteSession-CqrfTJvO.js → RemoteSession-C1w-j_hB.js} +2 -2
- package/src/assets/web-panel/assets/{Reputation-DM-l8Pb3.js → Reputation-BOvn-10y.js} +1 -1
- package/src/assets/web-panel/assets/{Row-CKGBTeCw.js → Row-db-a1YO9.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-Wb0YHIkc.js → RssFeed-DeS43ZGM.js} +3 -3
- package/src/assets/web-panel/assets/{Search-DiBjxKv-.js → Search-BaQYNfeb.js} +1 -1
- package/src/assets/web-panel/assets/{Security-BAVEmbWP.js → Security-yt1ESHDg.js} +4 -4
- package/src/assets/web-panel/assets/{Services-A_a3TIRn.js → Services-BcNqPUsS.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-CloHJ-I7.js → Skeleton-X3ceUQWf.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-CkvV5hKa.js → Skills-DmYeax6C.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-BYozxxsV.js → Sla-C_fdfbuJ.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-CWianiZF.js → SpeechSettings-CDqohXXQ.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-BR4G75do.js → SyncSettings-B25maYEY.js} +2 -2
- package/src/assets/web-panel/assets/{Tasks-D6gyUVrM.js → Tasks-3ILwauYw.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-DbfYIRzT.js → Templates-DUH0iuc4.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-BHutvukT.js → Tenant-DrvhHf9T.js} +1 -1
- package/src/assets/web-panel/assets/{Terminal-CYEiy2wJ.js → Terminal-C2lJVYHA.js} +2 -2
- package/src/assets/web-panel/assets/{TimelineRenderer-D9s1AxfE.js → TimelineRenderer-C1Hf_jYn.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-ij9vxnoy.js → Tokens-DniS1NpS.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-Dq_DCVeQ.js → Trigger-4jrcb8oA.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-Bs6wdfoH.js → Trust-DiBte55w.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-CLazyr5t.js → UkeySign-CZRtc4VB.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-viWotIHA.js → VideoEditing-BtYGJDmg.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-DlZ-A78d.js → Wallet-D1nrTm7H.js} +4 -4
- package/src/assets/web-panel/assets/{WebAuthn-DSmOND3Y.js → WebAuthn-DI91acpx.js} +5 -5
- package/src/assets/web-panel/assets/{WorkflowEditor-BempLOJi.js → WorkflowEditor-BtQjI50d.js} +1 -1
- package/src/assets/web-panel/assets/{chat-CyJzf4JI.js → chat-I4A-f4FC.js} +1 -1
- package/src/assets/web-panel/assets/{colors-C62q7WrL.js → colors-QZkDkFVt.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-7dYM1KW3.js → compact-item--FtCdzpr.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-CYTy7z2Q.js → createContext-CaIKIKxP.js} +1 -1
- package/src/assets/web-panel/assets/devWarning-D7qVrkrO.js +1 -0
- package/src/assets/web-panel/assets/{hasIn-DHoclUqm.js → hasIn-DLYUII6-.js} +1 -1
- package/src/assets/web-panel/assets/{index-CW86F2Zw.js → index-0DYBQ-6e.js} +1 -1
- package/src/assets/web-panel/assets/{index-C2efftJb.js → index-21I79XSf.js} +1 -1
- package/src/assets/web-panel/assets/{index-4gWv-Ubg.js → index-3rVtgqa2.js} +1 -1
- package/src/assets/web-panel/assets/{index-QXtrdrub.js → index-B65QxJaG.js} +1 -1
- package/src/assets/web-panel/assets/{index-BMxvWauP.js → index-BGWSmE3G.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dyq9tK5u.js → index-BLGJmgmx.js} +1 -1
- package/src/assets/web-panel/assets/{index-DYKwGrAn.js → index-BcgtvJbC.js} +1 -1
- package/src/assets/web-panel/assets/{index-BMRmxFU_.js → index-BebTT7iR.js} +1 -1
- package/src/assets/web-panel/assets/{index-XrsAHHQN.js → index-BkJgWW_L.js} +1 -1
- package/src/assets/web-panel/assets/{index-2C8Xx2UO.js → index-Bs0qPPFb.js} +1 -1
- package/src/assets/web-panel/assets/{index-CnEZ4ZHj.js → index-BvdwNnHC.js} +3 -3
- package/src/assets/web-panel/assets/{index-DkczsbiP.js → index-BxPoPofq.js} +1 -1
- package/src/assets/web-panel/assets/{index-DvEtHpLc.js → index-C3PnIEOH.js} +1 -1
- package/src/assets/web-panel/assets/{index-DK84lAS0.js → index-CBtII-nl.js} +1 -1
- package/src/assets/web-panel/assets/{index-DKdv8cju.js → index-CL4c5D6G.js} +1 -1
- package/src/assets/web-panel/assets/{index-CjeViaU-.js → index-CQ7OBHka.js} +1 -1
- package/src/assets/web-panel/assets/{index-DhJjifZe.js → index-CXaeZCRP.js} +1 -1
- package/src/assets/web-panel/assets/{index-BghdJ87W.js → index-CgMm85BY.js} +1 -1
- package/src/assets/web-panel/assets/{index-lHfNxiB5.js → index-Ch0IFpGy.js} +1 -1
- package/src/assets/web-panel/assets/{index-DJzZaPlb.js → index-CisYjy88.js} +1 -1
- package/src/assets/web-panel/assets/{index-DghnbMlY.js → index-D2xETCkj.js} +1 -1
- package/src/assets/web-panel/assets/{index-C5YWYlW9.js → index-D4CXFU-w.js} +1 -1
- package/src/assets/web-panel/assets/index-D9Y_ZwZn.js +1 -0
- package/src/assets/web-panel/assets/{index-LK1MZoBj.js → index-DA_TPdzX.js} +1 -1
- package/src/assets/web-panel/assets/{index-DOFAwpUK.js → index-DAuf8r5o.js} +1 -1
- package/src/assets/web-panel/assets/{index-DA-_807C.js → index-DGLHSCHM.js} +1 -1
- package/src/assets/web-panel/assets/{index-9uR7rc9a.js → index-DJrd_CR3.js} +1 -1
- package/src/assets/web-panel/assets/{index-CVTnruDt.js → index-DK2r6Bv7.js} +1 -1
- package/src/assets/web-panel/assets/{index-ZXYp76IB.js → index-DVitI3UQ.js} +1 -1
- package/src/assets/web-panel/assets/index-D_cPes4G.js +1 -0
- package/src/assets/web-panel/assets/{index-Bzz0aJ86.js → index-Deg2S9ZJ.js} +1 -1
- package/src/assets/web-panel/assets/{index-DHgSRimK.js → index-Du2wUavy.js} +1 -1
- package/src/assets/web-panel/assets/{index-94ktimZG.js → index-OQPIS_am.js} +1 -1
- package/src/assets/web-panel/assets/{index-3pI7AfmD.js → index-Ooo_5jHo.js} +1 -1
- package/src/assets/web-panel/assets/{index-DNLD3nZY.js → index-Ygi2rYL1.js} +1 -1
- package/src/assets/web-panel/assets/{index-CZRBvN6i.js → index-eTqL91aV.js} +1 -1
- package/src/assets/web-panel/assets/{index-D6BC4mmz.js → index-hfiZ-i2b.js} +1 -1
- package/src/assets/web-panel/assets/{index-DAYanuSk.js → index-vfiDxdN2.js} +1 -1
- package/src/assets/web-panel/assets/{index-NuNCstRO.js → index-yayaayEA.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-CwCl5sFQ.js → initDefaultProps-DDkTvw8k.js} +1 -1
- package/src/assets/web-panel/assets/{motion-BFJFy70N.js → motion-fkr96tN5.js} +1 -1
- package/src/assets/web-panel/assets/{move-ByrtVGq8.js → move-CGBV0SV2.js} +1 -1
- package/src/assets/web-panel/assets/{mtc-parser-BFiH1mT3.js → mtc-parser-DAsCliFt.js} +1 -1
- package/src/assets/web-panel/assets/{omit-bdvgpivj.js → omit-BM8PMmKN.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-BlfuuE3s.js → pickAttrs-C6SdWoTK.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-t2SC3DMy.js → placementArrow-BG0EVu-d.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-CoEXv2Li.js → responsiveObserve-L10IvfYC.js} +1 -1
- package/src/assets/web-panel/assets/{slide-BfXCf0Fu.js → slide-TddIkbrn.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-DNsdyOuS.js → statusUtils-FlveF2Yn.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-9aHukmoG.js → styleChecker-BrXRyebg.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-dTkPxzHN.js → useFlexGapSupport-B7_oiDXZ.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-DINwfItP.js → useFs-CQYeRYWb.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-Bj_RriBV.js → usePersonalDataHub-DspIkhVi.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-BzRAZrTc.js → vnode-BCwmwMAW.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-CamPjkeK.js → zoom-B0cEGluV.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/commands/team.js +74 -2
- package/src/data/changelog.json +26 -0
- package/src/generated/cc-agent-protocol.schema.json +49 -0
- package/src/lib/agent-team/team-mailbox.js +508 -2
- package/src/lib/agent-team/team-message-bridge.js +644 -0
- package/src/lib/agent-team/team-message-tools.js +198 -0
- package/src/lib/agent-team/team-runner.js +57 -3
- package/src/lib/graph-kernel/compiler.js +548 -16
- package/src/lib/graph-kernel/runtime.js +1158 -30
- package/src/lib/graph-kernel/trace-reducer.js +101 -7
- package/src/lib/subagent-inheritance.js +5 -3
- package/src/runtime/agent-core.js +38 -0
- package/src/runtime/headless-runner.js +36 -3
- package/src/assets/web-panel/assets/OrderTableRenderer-kpBxJ-SG.js +0 -1
- package/src/assets/web-panel/assets/devWarning-BdTg_AMF.js +0 -1
- package/src/assets/web-panel/assets/index-B6WvFV4N.js +0 -1
- package/src/assets/web-panel/assets/index-BKgfptzA.js +0 -1
|
@@ -25,20 +25,41 @@ function durationMs(attempt) {
|
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
function criticalPath(definition, attempts) {
|
|
28
|
-
const
|
|
28
|
+
const compensationNodeIds = new Set(
|
|
29
|
+
[
|
|
30
|
+
...definition.nodes.map((node) => node.compensationNodeId),
|
|
31
|
+
...definition.edges
|
|
32
|
+
.filter((edge) => edge.kind === "compensation")
|
|
33
|
+
.map((edge) => edge.to),
|
|
34
|
+
].filter((nodeId) => typeof nodeId === "string"),
|
|
35
|
+
);
|
|
36
|
+
const forwardNodes = definition.nodes.filter(
|
|
37
|
+
(node) => !compensationNodeIds.has(node.id),
|
|
38
|
+
);
|
|
39
|
+
const nodes = new Map(forwardNodes.map((node) => [node.id, node]));
|
|
29
40
|
const duration = new Map(
|
|
30
|
-
|
|
41
|
+
forwardNodes.map((node) => [
|
|
31
42
|
node.id,
|
|
32
|
-
|
|
33
|
-
0,
|
|
43
|
+
[
|
|
34
44
|
...attempts
|
|
35
45
|
.filter((attempt) => attempt.nodeId === node.id)
|
|
36
|
-
.
|
|
37
|
-
|
|
46
|
+
.reduce((iterations, attempt) => {
|
|
47
|
+
const key = JSON.stringify(attempt.iterationPath || []);
|
|
48
|
+
iterations.set(
|
|
49
|
+
key,
|
|
50
|
+
Math.max(iterations.get(key) || 0, durationMs(attempt)),
|
|
51
|
+
);
|
|
52
|
+
return iterations;
|
|
53
|
+
}, new Map())
|
|
54
|
+
.values(),
|
|
55
|
+
].reduce((total, value) => total + value, 0),
|
|
38
56
|
]),
|
|
39
57
|
);
|
|
40
58
|
const dependencies = new Map(
|
|
41
|
-
|
|
59
|
+
forwardNodes.map((node) => [
|
|
60
|
+
node.id,
|
|
61
|
+
new Set(node.dependsOn.filter((nodeId) => nodes.has(nodeId))),
|
|
62
|
+
]),
|
|
42
63
|
);
|
|
43
64
|
for (const edge of definition.edges) {
|
|
44
65
|
if (
|
|
@@ -137,7 +158,34 @@ export function reduceGraphTrace(
|
|
|
137
158
|
const handoffs = [...mapFromEntries(state.handoffs).values()];
|
|
138
159
|
const humanTasks = [...mapFromEntries(state.humanTasks).values()];
|
|
139
160
|
const agents = [...mapFromEntries(state.agents).values()];
|
|
161
|
+
const loopStates = [...mapFromEntries(state.loopStates).values()].sort(
|
|
162
|
+
(left, right) => left.regionId.localeCompare(right.regionId),
|
|
163
|
+
);
|
|
164
|
+
const iterationFrames = [
|
|
165
|
+
...mapFromEntries(state.iterationFrames).values(),
|
|
166
|
+
].sort(
|
|
167
|
+
(left, right) =>
|
|
168
|
+
left.regionId.localeCompare(right.regionId) ||
|
|
169
|
+
left.iterationPath.join(".").localeCompare(right.iterationPath.join(".")),
|
|
170
|
+
);
|
|
171
|
+
const subgraphRuns = [...mapFromEntries(state.subgraphRuns).values()].sort(
|
|
172
|
+
(left, right) => left.nodeId.localeCompare(right.nodeId),
|
|
173
|
+
);
|
|
140
174
|
const definition = state.definition;
|
|
175
|
+
const compensationForNode = new Map([
|
|
176
|
+
...definition.nodes
|
|
177
|
+
.filter((node) => node.compensationNodeId)
|
|
178
|
+
.map((node) => [node.compensationNodeId, node.id]),
|
|
179
|
+
...definition.edges
|
|
180
|
+
.filter((edge) => edge.kind === "compensation")
|
|
181
|
+
.map((edge) => [edge.to, edge.from]),
|
|
182
|
+
]);
|
|
183
|
+
const compensationByNode = new Map(
|
|
184
|
+
[...compensationForNode].map(([targetId, sourceId]) => [
|
|
185
|
+
sourceId,
|
|
186
|
+
targetId,
|
|
187
|
+
]),
|
|
188
|
+
);
|
|
141
189
|
const taskNodes = definition.nodes.map((node) => ({
|
|
142
190
|
id: node.id,
|
|
143
191
|
kind: node.kind,
|
|
@@ -145,8 +193,12 @@ export function reduceGraphTrace(
|
|
|
145
193
|
blockedRoot: nodeStates.get(node.id)?.blockedRoot || null,
|
|
146
194
|
acceptedAttemptId: nodeStates.get(node.id)?.acceptedAttemptId || null,
|
|
147
195
|
attemptIds: nodeStates.get(node.id)?.attemptIds || [],
|
|
196
|
+
iterationPath: nodeStates.get(node.id)?.iterationPath || [],
|
|
148
197
|
writeSet: node.writeSet || [],
|
|
149
198
|
workspaceIsolation: node.workspaceIsolation || null,
|
|
199
|
+
compensationNodeId:
|
|
200
|
+
node.compensationNodeId || compensationByNode.get(node.id) || null,
|
|
201
|
+
compensationForNodeId: compensationForNode.get(node.id) || null,
|
|
150
202
|
}));
|
|
151
203
|
const dependencyEdges = [
|
|
152
204
|
...definition.nodes.flatMap((node) =>
|
|
@@ -160,6 +212,26 @@ export function reduceGraphTrace(
|
|
|
160
212
|
),
|
|
161
213
|
...definition.edges,
|
|
162
214
|
];
|
|
215
|
+
const compensationEdgeKeys = new Set(
|
|
216
|
+
dependencyEdges
|
|
217
|
+
.filter((edge) => edge.kind === "compensation")
|
|
218
|
+
.map((edge) => `${edge.from}\0${edge.to}`),
|
|
219
|
+
);
|
|
220
|
+
for (const node of definition.nodes) {
|
|
221
|
+
if (
|
|
222
|
+
!node.compensationNodeId ||
|
|
223
|
+
compensationEdgeKeys.has(`${node.id}\0${node.compensationNodeId}`)
|
|
224
|
+
) {
|
|
225
|
+
continue;
|
|
226
|
+
}
|
|
227
|
+
dependencyEdges.push({
|
|
228
|
+
id: `compensation:${node.id}:${node.compensationNodeId}`,
|
|
229
|
+
from: node.id,
|
|
230
|
+
to: node.compensationNodeId,
|
|
231
|
+
kind: "compensation",
|
|
232
|
+
when: "always",
|
|
233
|
+
});
|
|
234
|
+
}
|
|
163
235
|
const artifactEdges = artifacts.flatMap((artifact) => [
|
|
164
236
|
{
|
|
165
237
|
from: artifact.producerNodeId,
|
|
@@ -213,6 +285,7 @@ export function reduceGraphTrace(
|
|
|
213
285
|
revisionDigest: state.revisionDigest,
|
|
214
286
|
phase: state.phase,
|
|
215
287
|
status: state.status,
|
|
288
|
+
compensation: clone(state.compensation || null),
|
|
216
289
|
agentTree,
|
|
217
290
|
taskGraph: { nodes: taskNodes, edges: dependencyEdges },
|
|
218
291
|
artifactGraph: { artifacts, edges: artifactEdges },
|
|
@@ -221,6 +294,27 @@ export function reduceGraphTrace(
|
|
|
221
294
|
attempts,
|
|
222
295
|
handoffs,
|
|
223
296
|
humanTasks,
|
|
297
|
+
iterationGraph: {
|
|
298
|
+
loops: loopStates,
|
|
299
|
+
frames: iterationFrames,
|
|
300
|
+
attempts: attempts.map((attempt) => ({
|
|
301
|
+
id: attempt.id,
|
|
302
|
+
nodeId: attempt.nodeId,
|
|
303
|
+
iterationPath: attempt.iterationPath || [],
|
|
304
|
+
attempt: attempt.attempt || 1,
|
|
305
|
+
status: attempt.status,
|
|
306
|
+
})),
|
|
307
|
+
},
|
|
308
|
+
subgraphGraph: {
|
|
309
|
+
runs: subgraphRuns,
|
|
310
|
+
edges: subgraphRuns.map((relation) => ({
|
|
311
|
+
from: relation.nodeId,
|
|
312
|
+
to: `run:${relation.childRunId}`,
|
|
313
|
+
kind: "subgraph_call",
|
|
314
|
+
revisionDigest: relation.revisionDigest,
|
|
315
|
+
status: relation.status,
|
|
316
|
+
})),
|
|
317
|
+
},
|
|
224
318
|
criticalPath: criticalPath(definition, attempts),
|
|
225
319
|
timeline,
|
|
226
320
|
};
|
|
@@ -54,20 +54,22 @@ export function filterInheritedMcp(parent, allow) {
|
|
|
54
54
|
typeof parent.externalToolExecutors === "object"
|
|
55
55
|
? parent.externalToolExecutors
|
|
56
56
|
: {};
|
|
57
|
+
const inheritable = (name) =>
|
|
58
|
+
descs[name]?.inheritable !== false && execs[name]?.inheritable !== false;
|
|
57
59
|
|
|
58
60
|
const outDefs = defs.filter((d) => {
|
|
59
61
|
const name = d?.function?.name;
|
|
60
|
-
return name && serverAllowed(mcpServerOf(name));
|
|
62
|
+
return name && inheritable(name) && serverAllowed(mcpServerOf(name));
|
|
61
63
|
});
|
|
62
64
|
const outDescs = {};
|
|
63
65
|
for (const [name, desc] of Object.entries(descs)) {
|
|
64
66
|
const server = desc?.serverName || mcpServerOf(name);
|
|
65
|
-
if (serverAllowed(server)) outDescs[name] = desc;
|
|
67
|
+
if (inheritable(name) && serverAllowed(server)) outDescs[name] = desc;
|
|
66
68
|
}
|
|
67
69
|
const outExecs = {};
|
|
68
70
|
for (const [name, exec] of Object.entries(execs)) {
|
|
69
71
|
const server = exec?.serverName || mcpServerOf(name);
|
|
70
|
-
if (serverAllowed(server)) outExecs[name] = exec;
|
|
72
|
+
if (inheritable(name) && serverAllowed(server)) outExecs[name] = exec;
|
|
71
73
|
}
|
|
72
74
|
|
|
73
75
|
if (
|
|
@@ -8304,6 +8304,44 @@ async function executeToolInner(
|
|
|
8304
8304
|
);
|
|
8305
8305
|
}
|
|
8306
8306
|
|
|
8307
|
+
if (localToolExecutor?.kind === "team-message") {
|
|
8308
|
+
if (
|
|
8309
|
+
localToolExecutor.inheritable !== false ||
|
|
8310
|
+
typeof localToolExecutor.execute !== "function"
|
|
8311
|
+
) {
|
|
8312
|
+
return attachDescriptor({
|
|
8313
|
+
error:
|
|
8314
|
+
"Team message tool blocked because its host authority is invalid",
|
|
8315
|
+
code: "TEAM_MESSAGE_TOOL_AUTHORITY_INVALID",
|
|
8316
|
+
policy: {
|
|
8317
|
+
decision: "blocked",
|
|
8318
|
+
via: "team-message-authority",
|
|
8319
|
+
},
|
|
8320
|
+
});
|
|
8321
|
+
}
|
|
8322
|
+
try {
|
|
8323
|
+
const result = await localToolExecutor.execute(args || {}, {
|
|
8324
|
+
signal,
|
|
8325
|
+
});
|
|
8326
|
+
return attachDescriptor(
|
|
8327
|
+
result && typeof result === "object" ? result : { result },
|
|
8328
|
+
);
|
|
8329
|
+
} catch (error) {
|
|
8330
|
+
return attachDescriptor({
|
|
8331
|
+
error: `Team message tool failed: ${String(error?.message || error).slice(0, 2048)}`,
|
|
8332
|
+
code: String(
|
|
8333
|
+
error?.code || "TEAM_MESSAGE_TOOL_EXECUTION_FAILED",
|
|
8334
|
+
).slice(0, 128),
|
|
8335
|
+
retryable:
|
|
8336
|
+
error?.code === "TEAM_MESSAGE_BRIDGE_TIMEOUT" ||
|
|
8337
|
+
Number.isSafeInteger(error?.retryAfterMs),
|
|
8338
|
+
...(Number.isSafeInteger(error?.retryAfterMs)
|
|
8339
|
+
? { retryAfterMs: error.retryAfterMs }
|
|
8340
|
+
: {}),
|
|
8341
|
+
});
|
|
8342
|
+
}
|
|
8343
|
+
}
|
|
8344
|
+
|
|
8307
8345
|
if (localToolExecutor?.kind === "mcp") {
|
|
8308
8346
|
if (!mcpClient || typeof mcpClient.callTool !== "function") {
|
|
8309
8347
|
return attachDescriptor({
|
|
@@ -204,6 +204,7 @@ import {
|
|
|
204
204
|
runtimeToolCallId,
|
|
205
205
|
} from "../lib/runtime-usage-ledger.js";
|
|
206
206
|
import { runMeteredDirectModelCall } from "../lib/direct-model-usage.js";
|
|
207
|
+
import { resolveTeamMessageToolBundle } from "../lib/agent-team/team-message-tools.js";
|
|
207
208
|
|
|
208
209
|
/**
|
|
209
210
|
* Normalize a public --permission-mode spelling to the canonical internal mode.
|
|
@@ -1990,6 +1991,20 @@ async function runAgentHeadlessInWorkspace(
|
|
|
1990
1991
|
const hostMcp = mcp
|
|
1991
1992
|
? { ...mcp, mcpClient: mcpRecoveryRuntime.client || mcp.mcpClient }
|
|
1992
1993
|
: null;
|
|
1994
|
+
let teamMessageTools = null;
|
|
1995
|
+
try {
|
|
1996
|
+
teamMessageTools = (
|
|
1997
|
+
deps.resolveTeamMessageToolBundle || resolveTeamMessageToolBundle
|
|
1998
|
+
)({ env: options.teamMessageEnv || process.env });
|
|
1999
|
+
} catch (error) {
|
|
2000
|
+
writeErr(`Error: ${error.message}\n`);
|
|
2001
|
+
emitHeadlessError(error.message);
|
|
2002
|
+
return {
|
|
2003
|
+
exitCode: HEADLESS_EXIT_CODES.CONFIG_ERROR,
|
|
2004
|
+
result: error.message,
|
|
2005
|
+
isError: true,
|
|
2006
|
+
};
|
|
2007
|
+
}
|
|
1993
2008
|
|
|
1994
2009
|
// Seed MCP roots for --add-dir (Claude-Code roots/list_changed parity): a
|
|
1995
2010
|
// headless session started with extra workspace roots must advertise the FULL
|
|
@@ -2424,9 +2439,27 @@ async function runAgentHeadlessInWorkspace(
|
|
|
2424
2439
|
// --mcp-config wiring: tool defs for the LLM + dispatch map + live client.
|
|
2425
2440
|
mcpClient: mcp?.mcpClient || null,
|
|
2426
2441
|
mcpHostClient: mcpRecoveryRuntime.client || mcp?.mcpClient || null,
|
|
2427
|
-
extraToolDefinitions:
|
|
2428
|
-
|
|
2429
|
-
|
|
2442
|
+
extraToolDefinitions:
|
|
2443
|
+
mcp?.extraToolDefinitions || teamMessageTools?.extraToolDefinitions
|
|
2444
|
+
? [
|
|
2445
|
+
...(mcp?.extraToolDefinitions || []),
|
|
2446
|
+
...(teamMessageTools?.extraToolDefinitions || []),
|
|
2447
|
+
]
|
|
2448
|
+
: undefined,
|
|
2449
|
+
externalToolExecutors:
|
|
2450
|
+
mcp?.externalToolExecutors || teamMessageTools?.externalToolExecutors
|
|
2451
|
+
? {
|
|
2452
|
+
...(mcp?.externalToolExecutors || {}),
|
|
2453
|
+
...(teamMessageTools?.externalToolExecutors || {}),
|
|
2454
|
+
}
|
|
2455
|
+
: undefined,
|
|
2456
|
+
externalToolDescriptors:
|
|
2457
|
+
mcp?.externalToolDescriptors || teamMessageTools?.externalToolDescriptors
|
|
2458
|
+
? {
|
|
2459
|
+
...(mcp?.externalToolDescriptors || {}),
|
|
2460
|
+
...(teamMessageTools?.externalToolDescriptors || {}),
|
|
2461
|
+
}
|
|
2462
|
+
: undefined,
|
|
2430
2463
|
// Persist every MCP started/settled record into this exact canonical
|
|
2431
2464
|
// session. Unknown/write/destructive prewrite failure then blocks before
|
|
2432
2465
|
// the external call; a settlement failure leaves a recoverable started row.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{I as w,P as l,J as u,U as s,R as n,c as i,K as v,Q as _,V as g,b as a}from"./vendor-Bn1JzzAn.js";import{_ as S}from"./index-CnEZ4ZHj.js";import"./icons-DG5UD-6K.js";const k={__name:"OrderTableRenderer",props:{event:{type:Object,required:!0}},setup(p,{expose:r}){r();const o=p,e=a(()=>o.event.content||{}),d=a(()=>o.event.extra||{}),m=a(()=>d.value.merchant||e.value.merchant||e.value.counterparty||"—"),c=a(()=>e.value.title||e.value.name||e.value.itemName||e.value.text||"—"),y=a(()=>{const t=e.value.amount??e.value.price??e.value.total;return t==null?"—":`${e.value.currency||"¥"} ${typeof t=="number"?t.toFixed(2):t}`}),T=a(()=>d.value.orderNo||e.value.orderNo||e.value.orderId),f=a(()=>e.value.status||e.value.state),b=a(()=>{const t=(f.value||"").toLowerCase();return t.includes("成功")||t.includes("succe")||t.includes("paid")?"green":t.includes("退")||t.includes("refund")?"orange":t.includes("失败")||t.includes("fail")?"red":"default"}),h=a(()=>{if(!o.event.occurredAt)return"";const t=new Date(o.event.occurredAt);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")} ${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}`}),x={props:o,c:e,e:d,merchantText:m,itemText:c,amountText:y,orderNo:T,statusText:f,statusColor:b,formattedTime:h,computed:a};return Object.defineProperty(x,"__isScriptSetup",{enumerable:!1,value:!0}),x}},N={class:"order-card"},C={class:"head"},O={class:"time"},V={class:"row"},R={class:"val"},B={class:"row"},D={class:"val"},I={class:"row amount-row"},P={class:"val amount"},j={key:0,class:"row"},A={class:"val mono"},F={key:1,class:"row"};function K(p,r,o,e,d,m){const c=w("a-tag");return l(),u("div",N,[s("div",C,[s("span",O,n(e.formattedTime),1),i(c,{color:"gold"},{default:v(()=>[_(n(o.event.source.adapter),1)]),_:1}),i(c,null,{default:v(()=>[_(n(o.event.subtype),1)]),_:1})]),s("div",V,[r[0]||(r[0]=s("span",{class:"key"},"商户",-1)),s("span",R,n(e.merchantText),1)]),s("div",B,[r[1]||(r[1]=s("span",{class:"key"},"商品/项目",-1)),s("span",D,n(e.itemText),1)]),s("div",I,[r[2]||(r[2]=s("span",{class:"key"},"金额",-1)),s("span",P,n(e.amountText),1)]),e.orderNo?(l(),u("div",j,[r[3]||(r[3]=s("span",{class:"key"},"单号",-1)),s("span",A,n(e.orderNo),1)])):g("v-if",!0),e.statusText?(l(),u("div",F,[r[4]||(r[4]=s("span",{class:"key"},"状态",-1)),i(c,{color:e.statusColor},{default:v(()=>[_(n(e.statusText),1)]),_:1},8,["color"])])):g("v-if",!0)])}const J=S(k,[["render",K],["__scopeId","data-v-5ed5524d"],["__file","/tmp/cc-web-panel-OP7nKs/repo/packages/web-panel/src/components/pdh/renderers/OrderTableRenderer.vue"]]);export{J as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Q as r}from"./index-CnEZ4ZHj.js";const o=((n,a,e)=>{r(n,`[ant-design-vue: ${a}] ${e}`)});export{o as d};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as o}from"./Col-DPuJsvKg.js";import{a0 as t}from"./index-CnEZ4ZHj.js";import"./vendor-Bn1JzzAn.js";import"./index-DkczsbiP.js";import"./icons-DG5UD-6K.js";const s=t(o);export{s as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{A as o}from"./Row-CKGBTeCw.js";import{a0 as t}from"./index-CnEZ4ZHj.js";import"./vendor-Bn1JzzAn.js";import"./responsiveObserve-CoEXv2Li.js";import"./useFlexGapSupport-dTkPxzHN.js";import"./styleChecker-9aHukmoG.js";import"./index-DkczsbiP.js";import"./icons-DG5UD-6K.js";const l=t(o);export{l as default};
|