@runfusion/fusion 0.51.0 → 0.53.0
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/dist/bin.js +9816 -4572
- package/dist/client/.vite/manifest.json +326 -326
- package/dist/client/assets/AgentDetailView-CHSaiBNh.js +18 -0
- package/dist/client/assets/AgentPermissionPolicyEditor-Bfy55DIO.js +6 -0
- package/dist/client/assets/AgentPermissionPolicyEditor-TpdlOWZW.css +1 -0
- package/dist/client/assets/{AgentsView-CTjNaKu-.js → AgentsView-CMB_7xly.js} +6 -11
- package/dist/client/assets/ChatView-D_2wBIIx.css +1 -0
- package/dist/client/assets/ChatView-IwWaNSeS.js +6 -0
- package/dist/client/assets/CommandCenter-B84TXfg6.js +71 -0
- package/dist/client/assets/{DevServerView-BE_o7v9j.js → DevServerView-B9QEJETp.js} +1 -1
- package/dist/client/assets/{DirectoryPicker-BpcPo65A.js → DirectoryPicker-BnaH1pb_.js} +1 -1
- package/dist/client/assets/DocumentsView-Cvm4OBRl.js +1 -0
- package/dist/client/assets/EvalsView-BpgA1nvW.js +1 -0
- package/dist/client/assets/ExperimentalAgentOnboardingModal-D4Z1IAW2.js +1 -0
- package/dist/client/assets/GoalsView-ui2CM549.js +2 -0
- package/dist/client/assets/InsightsView-qdJ5GhE_.js +11 -0
- package/dist/client/assets/MemoryView-Csc-90G0.js +2 -0
- package/dist/client/assets/PiExtensionsManager-Dbm3IpQW.js +11 -0
- package/dist/client/assets/PluginManager-B_zgRoI8.js +1 -0
- package/dist/client/assets/{PullRequestView-B7k8ogy4.js → PullRequestView-CB6L4vJw.js} +1 -1
- package/dist/client/assets/ResearchView-CRtoNtCn.js +1 -0
- package/dist/client/assets/SecretsView-JB0lfuzZ.js +1 -0
- package/dist/client/assets/SessionTerminal-CnxWsHxS.js +2 -0
- package/dist/client/assets/{SettingsModal-DAH7LuLw.js → SettingsModal-CS1-kUSO.js} +1 -1
- package/dist/client/assets/SettingsModal-CaE4JYxi.css +1 -0
- package/dist/client/assets/SettingsModal-D7ArHi7z.js +21 -0
- package/dist/client/assets/{SetupWizardModal-Bm6bG31V.js → SetupWizardModal-PYaS5VB9.js} +2 -2
- package/dist/client/assets/ShadcnColorPicker-3OgfenMo.css +1 -0
- package/dist/client/assets/ShadcnColorPicker-Tl1Xu-G4.js +11 -0
- package/dist/client/assets/{SkillsView-D_UEJY_f.js → SkillsView-CWVVQ3y_.js} +1 -1
- package/dist/client/assets/TodoView-CCloQhKG.js +6 -0
- package/dist/client/assets/WorkflowNodeEditor-Df-_206_.css +1 -0
- package/dist/client/assets/WorkflowNodeEditor-Dz8TU3is.js +8 -0
- package/dist/client/assets/{agentSkills-BiipFw1z.js → agentSkills-CFiw3LtX.js} +1 -1
- package/dist/client/assets/app-5S4z84u5.js +13 -0
- package/dist/client/assets/app-B1VYocx2.js +13 -0
- package/dist/client/assets/app-BhtYYxin.js +13 -0
- package/dist/client/assets/app-Cts0__Vx.js +13 -0
- package/dist/client/assets/app-DczBmsP4.js +13 -0
- package/dist/client/assets/app-_GFUqcMK.js +13 -0
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-glwWkaDt.js → architectureDiagram-3BPJPVTR-DGp4hfr1.js} +1 -1
- package/dist/client/assets/blockDiagram-GPEHLZMM-CRyxRdCJ.js +132 -0
- package/dist/client/assets/{c4Diagram-AAUBKEIU-CQXf6PzI.js → c4Diagram-AAUBKEIU-CFjMzS7o.js} +1 -1
- package/dist/client/assets/channel-C9LQN4ee.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-kak65s83.js → chunk-2J33WTMH-BMvR_yYt.js} +1 -1
- package/dist/client/assets/{chunk-4BX2VUAB-B_yEpoxU.js → chunk-4BX2VUAB-BUPHOpQy.js} +1 -1
- package/dist/client/assets/chunk-55IACEB6-C1paNu5q.js +1 -0
- package/dist/client/assets/chunk-727SXJPM-CG4hnjZD.js +206 -0
- package/dist/client/assets/{chunk-AQP2D5EJ-DBHuj4BH.js → chunk-AQP2D5EJ-Dm2nZ5Sz.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-BJ3ghjau.js → chunk-FMBD7UC4-CY6d36wo.js} +1 -1
- package/dist/client/assets/chunk-ND2GUHAM-cbKdnrGz.js +1 -0
- package/dist/client/assets/{chunk-QZHKN3VN-DmVw_cEu.js → chunk-QZHKN3VN-BPenWytO.js} +1 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-C5TeEr7c.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-C5TeEr7c.js +1 -0
- package/dist/client/assets/cose-bilkent-S5V4N54A-BCFGTolm.js +1 -0
- package/dist/client/assets/dagre-BM42HDAG-yVhB-t2h.js +4 -0
- package/dist/client/assets/dashboard-view-C9dPtr0u.js +1 -0
- package/dist/client/assets/{dashboard-view-r4NTTh_X.js → dashboard-view-DHb5D1Hc.js} +218 -218
- package/dist/client/assets/diagram-2AECGRRQ-DtV2x39G.js +43 -0
- package/dist/client/assets/diagram-5GNKFQAL-DwwRRghJ.js +10 -0
- package/dist/client/assets/{diagram-KO2AKTUF-D7zY4Nlm.js → diagram-KO2AKTUF-JLrDx8k8.js} +1 -1
- package/dist/client/assets/diagram-LMA3HP47-C_AszN6R.js +24 -0
- package/dist/client/assets/diagram-OG6HWLK6-C-n05SOC.js +24 -0
- package/dist/client/assets/{erDiagram-TEJ5UH35-DfHtnaNg.js → erDiagram-TEJ5UH35-B-9edACX.js} +1 -1
- package/dist/client/assets/{flowDiagram-I6XJVG4X-Brbb_Jlh.js → flowDiagram-I6XJVG4X-D5ThlzTR.js} +1 -1
- package/dist/client/assets/{folder-open-BLwukrE0.js → folder-open-DLACu19m.js} +1 -1
- package/dist/client/assets/ganttDiagram-6RSMTGT7-DaqvxM8Q.js +292 -0
- package/dist/client/assets/gitGraphDiagram-PVQCEYII-CfWhxq7Y.js +106 -0
- package/dist/client/assets/index-D1IHwGhg.css +1 -0
- package/dist/client/assets/index-JlBzf2ck.js +1336 -0
- package/dist/client/assets/infoDiagram-5YYISTIA-BjDZFy9D.js +2 -0
- package/dist/client/assets/ishikawaDiagram-YF4QCWOH-BoMTizU1.js +70 -0
- package/dist/client/assets/journeyDiagram-JHISSGLW-BozwtvCa.js +139 -0
- package/dist/client/assets/kanban-definition-UN3LZRKU-CvrpmIXn.js +89 -0
- package/dist/client/assets/linear-CwI45w2t.js +1 -0
- package/dist/client/assets/{mermaid.core-0hUjZF5S.js → mermaid.core-KeGuTimD.js} +4 -4
- package/dist/client/assets/mindmap-definition-RKZ34NQL-DMjY04EF.js +96 -0
- package/dist/client/assets/pieDiagram-4H26LBE5-r_9L-pQr.js +30 -0
- package/dist/client/assets/quadrantDiagram-W4KKPZXB-CcZKANsw.js +7 -0
- package/dist/client/assets/requirementDiagram-4Y6WPE33-kqu_zuS5.js +84 -0
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-Btl4NRo-.js → sankeyDiagram-5OEKKPKP-BLbamdKk.js} +1 -1
- package/dist/client/assets/sequenceDiagram-3UESZ5HK-DAKxqBlR.js +162 -0
- package/dist/client/assets/{shield-alert-yWvC7t2v.js → shield-alert-BdoEg9Yo.js} +1 -1
- package/dist/client/assets/stateDiagram-AJRCARHV-RJ2xY2-p.js +1 -0
- package/dist/client/assets/{stateDiagram-v2-BHNVJYJU-DYJRRNh-.js → stateDiagram-v2-BHNVJYJU-BzhgwjfG.js} +1 -1
- package/dist/client/assets/time-Ckmi30gH.js +1 -0
- package/dist/client/assets/{timeline-definition-PNZ67QCA-DZga7lqO.js → timeline-definition-PNZ67QCA-CT9ZQc6n.js} +1 -1
- package/dist/client/assets/{upload-BsYRkl_8.js → upload-B4v89B2G.js} +1 -1
- package/dist/client/assets/{users-dyoJEvrM.js → users-vuVXnTg0.js} +1 -1
- package/dist/client/assets/vendor-reactflow-CnI7NMXG.js +15 -0
- package/dist/client/assets/{vennDiagram-CIIHVFJN-C2P26V71.js → vennDiagram-CIIHVFJN-DCcEEtaE.js} +1 -1
- package/dist/client/assets/{wardley-L42UT6IY-ckctH9bL.js → wardley-L42UT6IY-_KOTjC_D.js} +1 -1
- package/dist/client/assets/wardleyDiagram-YWT4CUSO-D16g9VQZ.js +78 -0
- package/dist/client/assets/xychartDiagram-2RQKCTM6-CMIdike8.js +7 -0
- package/dist/client/index.html +8 -8
- package/dist/client/theme-data.css +296 -0
- package/dist/client/version.json +1 -1
- package/dist/desktop/client/.vite/manifest.json +1650 -0
- package/dist/{client/assets/AgentDetailView-CjwOlcMI.js → desktop/client/assets/AgentDetailView-CVv4BoTE.js} +5 -5
- package/dist/desktop/client/assets/AgentDetailView-CgbB51Iw.css +1 -0
- package/dist/{client/assets/AgentPermissionPolicyEditor-CD8znNHS.js → desktop/client/assets/AgentPermissionPolicyEditor-CQLNC_-O.js} +1 -1
- package/dist/desktop/client/assets/AgentsView-CzMa5Olf.css +1 -0
- package/dist/desktop/client/assets/AgentsView-DybRxzuI.js +29 -0
- package/dist/desktop/client/assets/ChatView-BtjkE0V7.css +1 -0
- package/dist/desktop/client/assets/ChatView-D_byETJX.js +19 -0
- package/dist/desktop/client/assets/CommandCenter-DDjpYkPe.css +1 -0
- package/dist/desktop/client/assets/CommandCenter-DEXoC2F7.js +71 -0
- package/dist/desktop/client/assets/DevServerView-CnEZI8Ax.js +1 -0
- package/dist/desktop/client/assets/DevServerView-iBondC7z.css +1 -0
- package/dist/desktop/client/assets/DirectoryPicker-0rspvcMz.css +1 -0
- package/dist/desktop/client/assets/DirectoryPicker-BUIZKLgl.js +1 -0
- package/dist/{client/assets/DocumentsView-Cpma23hu.js → desktop/client/assets/DocumentsView-BFq47DE7.js} +1 -1
- package/dist/{client/assets/EvalsView-DYSobhb7.js → desktop/client/assets/EvalsView-BEiGrFFa.js} +1 -1
- package/dist/desktop/client/assets/EvalsView-CTbgPUne.css +1 -0
- package/dist/desktop/client/assets/ExperimentalAgentOnboardingModal-3ZEFv8sr.css +1 -0
- package/dist/{client/assets/ExperimentalAgentOnboardingModal-D_iQqD-n.js → desktop/client/assets/ExperimentalAgentOnboardingModal-WzGxsxku.js} +1 -1
- package/dist/{client/assets/GoalsView-B6Wfxk59.js → desktop/client/assets/GoalsView-C6Qsc-VS.js} +1 -1
- package/dist/desktop/client/assets/GoalsView-CUh8JBnJ.css +1 -0
- package/dist/{client/assets/InsightsView-DZyMvYQ8.js → desktop/client/assets/InsightsView-C14VGuty.js} +1 -1
- package/dist/desktop/client/assets/InsightsView-C7yRTMPn.css +1 -0
- package/dist/{client/assets/MemoryView-B9Z6cRma.js → desktop/client/assets/MemoryView--XlaBNzQ.js} +1 -1
- package/dist/desktop/client/assets/MemoryView-CBDUr2Jy.css +1 -0
- package/dist/{client/assets/PiExtensionsManager-BQt3JU60.js → desktop/client/assets/PiExtensionsManager-BaQnu6IY.js} +1 -1
- package/dist/desktop/client/assets/PiExtensionsManager-kgTOHPE9.css +1 -0
- package/dist/desktop/client/assets/PluginManager-DSiHizRD.css +1 -0
- package/dist/{client/assets/PluginManager-DEsUstVo.js → desktop/client/assets/PluginManager-DqnMI_Zm.js} +1 -1
- package/dist/desktop/client/assets/PullRequestView-C8kBQljB.js +6 -0
- package/dist/desktop/client/assets/PullRequestView-CpdE3Yo_.css +1 -0
- package/dist/desktop/client/assets/ResearchView-DIVNQF4_.css +1 -0
- package/dist/{client/assets/ResearchView-BseF58_R.js → desktop/client/assets/ResearchView-OlGNDmqI.js} +1 -1
- package/dist/desktop/client/assets/SecretsView-CvFioX7R.css +1 -0
- package/dist/{client/assets/SecretsView-bkNS5VBC.js → desktop/client/assets/SecretsView-vHezddkt.js} +1 -1
- package/dist/desktop/client/assets/SessionTerminal-CPbzm5Oi.css +1 -0
- package/dist/{client/assets/SessionTerminal-BSllyqgF.js → desktop/client/assets/SessionTerminal-ClbvT_Fb.js} +2 -2
- package/dist/desktop/client/assets/SettingsModal-CL4GS1q-.js +21 -0
- package/dist/desktop/client/assets/SettingsModal-CvbiSIHS.css +1 -0
- package/dist/desktop/client/assets/SettingsModal-EWTm15Fk.js +1 -0
- package/dist/desktop/client/assets/SettingsModal-ino68pI2.css +1 -0
- package/dist/desktop/client/assets/SetupWizardModal-DsBTXY7k.js +2 -0
- package/dist/{client/assets/ShadcnColorPicker-CLiOvo7W.js → desktop/client/assets/ShadcnColorPicker-BciIe8Ls.js} +1 -1
- package/dist/{client/assets/ShadcnColorPicker-CzZo9UOD.css → desktop/client/assets/ShadcnColorPicker-pqVWCC5-.css} +1 -1
- package/dist/desktop/client/assets/SkillsView-CJ8snrma.css +1 -0
- package/dist/desktop/client/assets/SkillsView-UyhBA4_r.js +1 -0
- package/dist/desktop/client/assets/TodoView-CIsL_uvQ.css +1 -0
- package/dist/{client/assets/TodoView-CMCoPep1.js → desktop/client/assets/TodoView-CV7ma8AL.js} +1 -1
- package/dist/desktop/client/assets/WorkflowNodeEditor-BOouksjw.css +1 -0
- package/dist/desktop/client/assets/WorkflowNodeEditor-ThUL4msx.js +8 -0
- package/dist/desktop/client/assets/addon-fit-C1WQXRvu.js +1 -0
- package/dist/desktop/client/assets/addon-unicode11-BVmNDUBM.js +1 -0
- package/dist/desktop/client/assets/addon-web-links-CkVew5xs.js +1 -0
- package/dist/desktop/client/assets/addon-webgl-uLc0RKcC.js +58 -0
- package/dist/desktop/client/assets/agentSkills-BQzMaofj.js +1 -0
- package/dist/desktop/client/assets/agentSkills-bQJ4X1gH.css +1 -0
- package/dist/desktop/client/assets/agentsOrgChartLayout-BMvyuaLA.js +1 -0
- package/dist/desktop/client/assets/app-BJGkp7Tt.js +13 -0
- package/dist/desktop/client/assets/app-BKLUvvm8.js +13 -0
- package/dist/desktop/client/assets/app-BaoNC9zg.js +13 -0
- package/dist/desktop/client/assets/app-CZQ_fFNf.js +13 -0
- package/dist/desktop/client/assets/app-DAu3AzsS.js +13 -0
- package/dist/desktop/client/assets/app-DgezOJub.js +13 -0
- package/dist/desktop/client/assets/arc-cxkkNsnK.js +1 -0
- package/dist/desktop/client/assets/architectureDiagram-3BPJPVTR-MtAzQYUn.js +36 -0
- package/dist/desktop/client/assets/band-CquvqAHh.js +1 -0
- package/dist/{client/assets/blockDiagram-GPEHLZMM-C8DhxwG4.js → desktop/client/assets/blockDiagram-GPEHLZMM-zelYfqn3.js} +1 -1
- package/dist/desktop/client/assets/c4Diagram-AAUBKEIU-D3hNx0Hv.js +10 -0
- package/dist/desktop/client/assets/channel-Dj1-27Yg.js +1 -0
- package/dist/desktop/client/assets/chunk-2J33WTMH-B9IKEZ0p.js +1 -0
- package/dist/desktop/client/assets/chunk-4BX2VUAB-Dd7FeAwm.js +1 -0
- package/dist/{client/assets/chunk-55IACEB6-C9lQVeH5.js → desktop/client/assets/chunk-55IACEB6-DbzB46sJ.js} +1 -1
- package/dist/{client/assets/chunk-727SXJPM-D4SVzqNs.js → desktop/client/assets/chunk-727SXJPM-CDmlBZKV.js} +1 -1
- package/dist/desktop/client/assets/chunk-AQP2D5EJ-whMl1uk-.js +231 -0
- package/dist/desktop/client/assets/chunk-FMBD7UC4-E1WzORFR.js +15 -0
- package/dist/{client/assets/chunk-ND2GUHAM-CE4tkh6e.js → desktop/client/assets/chunk-ND2GUHAM-e0FuVXk6.js} +1 -1
- package/dist/desktop/client/assets/chunk-QZHKN3VN-B6q2GrbB.js +1 -0
- package/dist/desktop/client/assets/classDiagram-4FO5ZUOK-36LCOV5F.js +1 -0
- package/dist/desktop/client/assets/classDiagram-v2-Q7XG4LA2-36LCOV5F.js +1 -0
- package/dist/desktop/client/assets/common-BDp2y6CF.js +1 -0
- package/dist/desktop/client/assets/common-BnEo5fLN.js +1 -0
- package/dist/desktop/client/assets/common-Bzr_Y8h4.js +1 -0
- package/dist/desktop/client/assets/common-CvwyFzfv.js +1 -0
- package/dist/desktop/client/assets/common-CztCXRkz.js +1 -0
- package/dist/desktop/client/assets/common-DPe2mbb7.js +1 -0
- package/dist/{client/assets/cose-bilkent-S5V4N54A-DI_-BOYE.js → desktop/client/assets/cose-bilkent-S5V4N54A-BjSZ5UKD.js} +1 -1
- package/dist/desktop/client/assets/cytoscape.esm-OyMbaexL.js +331 -0
- package/dist/{client/assets/dagre-BM42HDAG-ywUbHZxt.js → desktop/client/assets/dagre-BM42HDAG-DxMH6moD.js} +1 -1
- package/dist/{client/assets/dashboard-view-DJvdban3.js → desktop/client/assets/dashboard-view-BW8tRppT.js} +1 -1
- package/dist/desktop/client/assets/dashboard-view-CuUPQZzi.css +1 -0
- package/dist/desktop/client/assets/dashboard-view-D_zsA-kz.css +1 -0
- package/dist/desktop/client/assets/dashboard-view-L_H47lEp.js +8161 -0
- package/dist/desktop/client/assets/defaultLocale-DX6XiGOO.js +1 -0
- package/dist/{client/assets/diagram-2AECGRRQ-CAGucHCe.js → desktop/client/assets/diagram-2AECGRRQ-DDUjym9F.js} +1 -1
- package/dist/{client/assets/diagram-5GNKFQAL-D_1uzVtW.js → desktop/client/assets/diagram-5GNKFQAL-nEqF7CSb.js} +1 -1
- package/dist/desktop/client/assets/diagram-KO2AKTUF-CFABtl0k.js +3 -0
- package/dist/{client/assets/diagram-LMA3HP47-C1T9eOzA.js → desktop/client/assets/diagram-LMA3HP47-ButXw1gy.js} +1 -1
- package/dist/{client/assets/diagram-OG6HWLK6-sWxhPvzU.js → desktop/client/assets/diagram-OG6HWLK6-CA17ZRZI.js} +1 -1
- package/dist/desktop/client/assets/erDiagram-TEJ5UH35-DmROZaa0.js +85 -0
- package/dist/desktop/client/assets/errors-07IrmOYM.js +1 -0
- package/dist/desktop/client/assets/errors-BPsCufin.js +1 -0
- package/dist/desktop/client/assets/errors-CcVDgqlA.js +1 -0
- package/dist/desktop/client/assets/errors-D-i_Bxc6.js +1 -0
- package/dist/desktop/client/assets/errors-DDdWAK-U.js +1 -0
- package/dist/desktop/client/assets/errors-DOF5Td3F.js +1 -0
- package/dist/desktop/client/assets/flowDiagram-I6XJVG4X-BCa7HuJ3.js +162 -0
- package/dist/desktop/client/assets/folder-open-G_6UGFyI.js +6 -0
- package/dist/{client/assets/ganttDiagram-6RSMTGT7-CLvZ7891.js → desktop/client/assets/ganttDiagram-6RSMTGT7-BeAYpPxh.js} +1 -1
- package/dist/{client/assets/gitGraphDiagram-PVQCEYII-DD56Jsa3.js → desktop/client/assets/gitGraphDiagram-PVQCEYII-BLwp2lCj.js} +1 -1
- package/dist/desktop/client/assets/graph--OzhPTMs.js +1 -0
- package/dist/desktop/client/assets/index-CSVe-MIA.css +1 -0
- package/dist/desktop/client/assets/index-DIURDjTF.js +1301 -0
- package/dist/{client/assets/infoDiagram-5YYISTIA-uXai801q.js → desktop/client/assets/infoDiagram-5YYISTIA-DF-q3NMx.js} +1 -1
- package/dist/desktop/client/assets/init-Dmth1JHB.js +1 -0
- package/dist/{client/assets/ishikawaDiagram-YF4QCWOH-C_bWlUP_.js → desktop/client/assets/ishikawaDiagram-YF4QCWOH-CKYDbUiH.js} +1 -1
- package/dist/{client/assets/journeyDiagram-JHISSGLW-B2kB9niE.js → desktop/client/assets/journeyDiagram-JHISSGLW-BgkdCr6Q.js} +1 -1
- package/dist/{client/assets/kanban-definition-UN3LZRKU-BJwlpR9z.js → desktop/client/assets/kanban-definition-UN3LZRKU-B9V97j0D.js} +1 -1
- package/dist/desktop/client/assets/katex-HP8lGamR.js +257 -0
- package/dist/desktop/client/assets/layout-SsrduOYp.js +1 -0
- package/dist/desktop/client/assets/mermaid.core-BBN7poU5.js +309 -0
- package/dist/{client/assets/mindmap-definition-RKZ34NQL-DsTgTpX-.js → desktop/client/assets/mindmap-definition-RKZ34NQL-C2_Jhjnr.js} +1 -1
- package/dist/desktop/client/assets/ordinal-DILIJJjt.js +1 -0
- package/dist/{client/assets/pieDiagram-4H26LBE5-BUQsNWHN.js → desktop/client/assets/pieDiagram-4H26LBE5-DOrO8u2b.js} +1 -1
- package/dist/desktop/client/assets/projectDetection-G3XuxD2X.js +1 -0
- package/dist/{client/assets/quadrantDiagram-W4KKPZXB-DOYWgfAz.js → desktop/client/assets/quadrantDiagram-W4KKPZXB-D4xxkMPR.js} +1 -1
- package/dist/{client/assets/requirementDiagram-4Y6WPE33-DUnPKaMd.js → desktop/client/assets/requirementDiagram-4Y6WPE33-BuyUaAlW.js} +1 -1
- package/dist/desktop/client/assets/sankeyDiagram-5OEKKPKP-DLGaZ5Gy.js +40 -0
- package/dist/{client/assets/sequenceDiagram-3UESZ5HK-b0hyJ_Wr.js → desktop/client/assets/sequenceDiagram-3UESZ5HK-B3xhIZnf.js} +1 -1
- package/dist/desktop/client/assets/shield-alert-D-Fxd0Va.js +6 -0
- package/dist/{client/assets/stateDiagram-AJRCARHV-orREjkd9.js → desktop/client/assets/stateDiagram-AJRCARHV-3C2cVTwx.js} +1 -1
- package/dist/desktop/client/assets/stateDiagram-v2-BHNVJYJU-uyCHbCJn.js +1 -0
- package/dist/desktop/client/assets/step-yuy0qJer.js +1 -0
- package/dist/desktop/client/assets/timeline-definition-PNZ67QCA-DHzoutyf.js +120 -0
- package/dist/desktop/client/assets/upload-Cv9kGgTr.js +6 -0
- package/dist/desktop/client/assets/users-DuxdQK9U.js +6 -0
- package/dist/desktop/client/assets/vendor-codemirror-jBKmHyH0.js +27 -0
- package/dist/desktop/client/assets/vendor-i18n-GF3RlKbq.js +9 -0
- package/dist/desktop/client/assets/vendor-react-SZ_qB27O.js +49 -0
- package/dist/desktop/client/assets/vendor-reactflow-C5ap-Sga.css +1 -0
- package/dist/desktop/client/assets/vendor-xterm-BNq00GSj.js +9 -0
- package/dist/desktop/client/assets/vendor-xterm-LZoznX6r.css +32 -0
- package/dist/desktop/client/assets/vennDiagram-CIIHVFJN-CKB5IBNU.js +34 -0
- package/dist/desktop/client/assets/wardley-L42UT6IY-DUw_nnW7.js +173 -0
- package/dist/{client/assets/wardleyDiagram-YWT4CUSO-9It3QAYs.js → desktop/client/assets/wardleyDiagram-YWT4CUSO-CgWLugtp.js} +1 -1
- package/dist/{client/assets/xychartDiagram-2RQKCTM6-Dj3sSBqg.js → desktop/client/assets/xychartDiagram-2RQKCTM6-BWpeCtlX.js} +1 -1
- package/dist/desktop/client/assets/zoom-out-NWbVkreR.js +41 -0
- package/dist/desktop/client/brands/hermes-logo.svg +1 -0
- package/dist/desktop/client/fonts/SymbolsNerdFontMono-Regular.ttf +0 -0
- package/dist/desktop/client/icons/icon-192.png +0 -0
- package/dist/desktop/client/icons/icon-512.png +0 -0
- package/dist/desktop/client/index.html +244 -0
- package/dist/desktop/client/logo.svg +6 -0
- package/dist/desktop/client/manifest.json +23 -0
- package/dist/desktop/client/sw.js +175 -0
- package/dist/desktop/client/theme-data.css +6858 -0
- package/dist/desktop/client/version.json +1 -0
- package/dist/desktop/main.js +17159 -0
- package/dist/desktop/main.js.map +7 -0
- package/dist/desktop/preload.js +110 -0
- package/dist/desktop/preload.js.map +7 -0
- package/dist/droid-cli/package.json +1 -1
- package/dist/extension.js +7200 -3247
- package/dist/pi-claude-cli/index.ts +51 -6
- package/dist/pi-claude-cli/package.json +5 -3
- package/dist/pi-claude-cli/src/__tests__/process-manager.test.ts +1 -1
- package/dist/pi-claude-cli/src/__tests__/provider.test.ts +48 -9
- package/dist/plugin-sdk/index.d.ts +40 -2
- package/dist/plugins/fusion-plugin-acp-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-cli-printing-press/package.json +1 -1
- package/dist/plugins/fusion-plugin-compound-engineering/bundled.js +15 -3
- package/dist/plugins/fusion-plugin-compound-engineering/package.json +1 -1
- package/dist/plugins/fusion-plugin-cursor-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-dependency-graph/package.json +1 -1
- package/dist/plugins/fusion-plugin-droid-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-hermes-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-openclaw-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-paperclip-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-reports/package.json +1 -1
- package/dist/plugins/fusion-plugin-roadmap/package.json +1 -1
- package/dist/plugins/fusion-plugin-whatsapp-chat/package.json +1 -1
- package/package.json +4 -3
- package/skill/fusion/SKILL.md +1 -0
- package/skill/fusion/references/engine-tools.md +3 -3
- package/skill/fusion/references/extension-tools.md +81 -4
- package/skill/fusion/references/fusion-capabilities.md +8 -0
- package/dist/client/assets/ChatView-DCWypaw3.js +0 -19
- package/dist/client/assets/ChatView-DwIIrJxb.css +0 -1
- package/dist/client/assets/CommandCenter-C4v0FMxx.js +0 -71
- package/dist/client/assets/SettingsModal-Dso0K76J.js +0 -21
- package/dist/client/assets/SettingsModal-tUDR6nJ9.css +0 -1
- package/dist/client/assets/WorkflowNodeEditor-BeQcn0Wa.js +0 -8
- package/dist/client/assets/WorkflowNodeEditor-WYIxHTxY.css +0 -1
- package/dist/client/assets/app-A1yCJR4Q.js +0 -13
- package/dist/client/assets/app-Bfiafek7.js +0 -13
- package/dist/client/assets/app-Bh-Xj32t.js +0 -13
- package/dist/client/assets/app-DxJHfzxz.js +0 -13
- package/dist/client/assets/app-T5iMjZpX.js +0 -13
- package/dist/client/assets/app-zR_n4GL2.js +0 -13
- package/dist/client/assets/channel-BY6zFSV1.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-CeX_WCiC.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CeX_WCiC.js +0 -1
- package/dist/client/assets/index-DAv17W73.js +0 -1317
- package/dist/client/assets/index-DhBnj8YN.css +0 -1
- /package/dist/{client → desktop/client}/assets/AgentPermissionPolicyEditor-CGxjOr6G.css +0 -0
- /package/dist/{client → desktop/client}/assets/linear-dXivciGL.js +0 -0
- /package/dist/{client → desktop/client}/assets/time-DoDTxsna.js +0 -0
- /package/dist/{client → desktop/client}/assets/vendor-reactflow-Bg-Qjzh8.js +0 -0
|
@@ -5,7 +5,16 @@
|
|
|
5
5
|
* subprocess using stream-json NDJSON protocol.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
/*
|
|
9
|
+
* FNXC:ModelCatalog 2026-07-01-17:30:
|
|
10
|
+
* pi-ai 0.80 restructured its static catalog API: the top-level `getModels`
|
|
11
|
+
* export moved to the deprecated `/compat` shim, and the canonical accessor is
|
|
12
|
+
* `getBuiltinModels` from `@earendil-works/pi-ai/providers/all`. pi-claude-cli
|
|
13
|
+
* now pins `@earendil-works/pi-ai` and `@earendil-works/pi-coding-agent` to
|
|
14
|
+
* `^0.80.3` (matching cli/engine) so the whole extension resolves one pi-ai
|
|
15
|
+
* version and the ExtensionAPI stream types stay compatible.
|
|
16
|
+
*/
|
|
17
|
+
import { getBuiltinModels } from "@earendil-works/pi-ai/providers/all";
|
|
9
18
|
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
10
19
|
import { streamViaCli } from "./src/provider.js";
|
|
11
20
|
import { streamViaAcp } from "./src/acp-driver.js";
|
|
@@ -175,7 +184,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
175
184
|
// `claude` subprocess in streamViaCli still reports hard errors on send.
|
|
176
185
|
void runCliValidationOnce();
|
|
177
186
|
|
|
178
|
-
const catalogModels =
|
|
187
|
+
const catalogModels = getBuiltinModels("anthropic").map((model) => ({
|
|
179
188
|
id: model.id,
|
|
180
189
|
name: model.name,
|
|
181
190
|
reasoning: model.reasoning,
|
|
@@ -190,6 +199,42 @@ export default function (pi: ExtensionAPI) {
|
|
|
190
199
|
// catalog catches up.
|
|
191
200
|
// https://platform.claude.com/docs/en/about-claude/models/overview
|
|
192
201
|
const extraModels: typeof catalogModels = [
|
|
202
|
+
/*
|
|
203
|
+
* FNXC:ModelCatalog 2026-07-01-18:18:
|
|
204
|
+
* Keep Claude CLI supplemental metadata limited to models that Fusion can advertise without triggering the direct-Anthropic Sonnet 5 404 loop. `claude-sonnet-5` must come from the upstream/live registry before this provider shows it, because static metadata cannot prove the current account and CLI surface can call that model.
|
|
205
|
+
*
|
|
206
|
+
* FNXC:ModelCatalog 2026-07-01-20:37:
|
|
207
|
+
* Supersede the prior Claude CLI withholding only for `pi-claude-cli`: the local `claude` subprocess routes through the user's Claude subscription/login and its 2.1.197 `--model` help accepts latest aliases/full names, so the CLI picker should advertise Sonnet 5 and newer CLI-callable rows. Keep direct Anthropic supplemental metadata and static pricing withheld because FN-7374's per-account `404 not_found_error` applies to that API surface, not this subscription-authenticated CLI surface.
|
|
208
|
+
*/
|
|
209
|
+
{
|
|
210
|
+
id: "claude-sonnet-5",
|
|
211
|
+
name: "Claude Sonnet 5",
|
|
212
|
+
reasoning: true,
|
|
213
|
+
input: ["text", "image"],
|
|
214
|
+
cost: { input: 2, output: 10, cacheRead: 0.2, cacheWrite: 2.5 },
|
|
215
|
+
contextWindow: 1_000_000,
|
|
216
|
+
maxTokens: 128_000,
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
id: "claude-fable-5",
|
|
220
|
+
name: "Claude Fable 5",
|
|
221
|
+
reasoning: true,
|
|
222
|
+
input: ["text", "image"],
|
|
223
|
+
// FNXC:ModelCatalog 2026-07-01-21:04: Fable 5 must use Anthropic's current $10/$50 per MTok row so Fusion's CLI picker does not understate supplemental model cost estimates.
|
|
224
|
+
cost: { input: 10, output: 50, cacheRead: 1, cacheWrite: 12.5 },
|
|
225
|
+
contextWindow: 1_000_000,
|
|
226
|
+
maxTokens: 128_000,
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
id: "claude-opus-4-8",
|
|
230
|
+
name: "Claude Opus 4.8",
|
|
231
|
+
reasoning: true,
|
|
232
|
+
input: ["text", "image"],
|
|
233
|
+
// FNXC:ModelCatalog 2026-07-01-20:37: The overview confirms Opus 4.8 context/output limits; mirror the closest current Opus CLI supplemental pricing until a precise per-model price row is pinned for this subscription surface.
|
|
234
|
+
cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 },
|
|
235
|
+
contextWindow: 1_000_000,
|
|
236
|
+
maxTokens: 128_000,
|
|
237
|
+
},
|
|
193
238
|
{
|
|
194
239
|
id: "claude-opus-4-7",
|
|
195
240
|
name: "Claude Opus 4.7",
|
|
@@ -205,8 +250,8 @@ export default function (pi: ExtensionAPI) {
|
|
|
205
250
|
reasoning: true,
|
|
206
251
|
input: ["text", "image"],
|
|
207
252
|
cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 },
|
|
208
|
-
contextWindow:
|
|
209
|
-
maxTokens:
|
|
253
|
+
contextWindow: 1_000_000,
|
|
254
|
+
maxTokens: 64_000,
|
|
210
255
|
},
|
|
211
256
|
{
|
|
212
257
|
id: "claude-sonnet-4-5",
|
|
@@ -215,7 +260,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
215
260
|
input: ["text", "image"],
|
|
216
261
|
cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 },
|
|
217
262
|
contextWindow: 200_000,
|
|
218
|
-
maxTokens:
|
|
263
|
+
maxTokens: 64_000,
|
|
219
264
|
},
|
|
220
265
|
{
|
|
221
266
|
id: "claude-haiku-4-5",
|
|
@@ -224,7 +269,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
224
269
|
input: ["text", "image"],
|
|
225
270
|
cost: { input: 0.8, output: 4, cacheRead: 0.08, cacheWrite: 1 },
|
|
226
271
|
contextWindow: 200_000,
|
|
227
|
-
maxTokens:
|
|
272
|
+
maxTokens: 64_000,
|
|
228
273
|
},
|
|
229
274
|
];
|
|
230
275
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fusion/pi-claude-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.53.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"private": true,
|
|
6
6
|
"main": "index.ts",
|
|
@@ -13,12 +13,14 @@
|
|
|
13
13
|
"@agentclientprotocol/sdk": "0.24.0"
|
|
14
14
|
},
|
|
15
15
|
"devDependencies": {
|
|
16
|
+
"@earendil-works/pi-ai": "^0.80.3",
|
|
17
|
+
"@earendil-works/pi-coding-agent": "^0.80.3",
|
|
16
18
|
"@types/node": "^22.0.0",
|
|
17
19
|
"typescript": "^5.7.0",
|
|
18
20
|
"vitest": "^4.1.0"
|
|
19
21
|
},
|
|
20
22
|
"peerDependencies": {
|
|
21
|
-
"@earendil-works/pi-ai": "
|
|
22
|
-
"@earendil-works/pi-coding-agent": "
|
|
23
|
+
"@earendil-works/pi-ai": "^0.80.3",
|
|
24
|
+
"@earendil-works/pi-coding-agent": "^0.80.3"
|
|
23
25
|
}
|
|
24
26
|
}
|
|
@@ -68,7 +68,7 @@ describe("buildClaudeSpawnArgs", () => {
|
|
|
68
68
|
});
|
|
69
69
|
|
|
70
70
|
expect(args).toContain("--model");
|
|
71
|
-
expect(args).
|
|
71
|
+
expect(args[args.indexOf("--model") + 1]).toBe("claude-sonnet-4-6");
|
|
72
72
|
expect(args).toContain("--resume");
|
|
73
73
|
expect(args).toContain("sess-1");
|
|
74
74
|
expect(args).toContain("--effort");
|
|
@@ -59,13 +59,18 @@ const { MockAssistantMessageEventStream } = vi.hoisted(() => {
|
|
|
59
59
|
});
|
|
60
60
|
|
|
61
61
|
vi.mock("@earendil-works/pi-ai", () => ({
|
|
62
|
-
getModels: vi.fn(() => mockModels),
|
|
63
62
|
AssistantMessageEventStream: MockAssistantMessageEventStream,
|
|
64
63
|
calculateCost: vi.fn(),
|
|
65
64
|
}));
|
|
66
65
|
|
|
66
|
+
// pi-ai 0.80 moved the static catalog read to `getBuiltinModels` in the
|
|
67
|
+
// `/providers/all` subpath (see index.ts). Mock it there.
|
|
68
|
+
vi.mock("@earendil-works/pi-ai/providers/all", () => ({
|
|
69
|
+
getBuiltinModels: vi.fn(() => mockModels),
|
|
70
|
+
}));
|
|
71
|
+
|
|
67
72
|
import { spawn } from "node:child_process";
|
|
68
|
-
import {
|
|
73
|
+
import { getBuiltinModels } from "@earendil-works/pi-ai/providers/all";
|
|
69
74
|
import { streamViaCli } from "../provider";
|
|
70
75
|
|
|
71
76
|
describe("provider registration (default export)", () => {
|
|
@@ -116,7 +121,7 @@ describe("provider registration (default export)", () => {
|
|
|
116
121
|
expect(firstModel.cost).toBeDefined();
|
|
117
122
|
});
|
|
118
123
|
|
|
119
|
-
it("includes
|
|
124
|
+
it("includes latest Claude models including Sonnet 5 for the CLI surface", async () => {
|
|
120
125
|
const registerProvider = vi.fn();
|
|
121
126
|
const mockPi = { registerProvider, on: vi.fn() } as any;
|
|
122
127
|
|
|
@@ -127,6 +132,9 @@ describe("provider registration (default export)", () => {
|
|
|
127
132
|
const modelIds = new Set(config.models.map((m: { id: string }) => m.id));
|
|
128
133
|
|
|
129
134
|
for (const id of [
|
|
135
|
+
"claude-sonnet-5",
|
|
136
|
+
"claude-fable-5",
|
|
137
|
+
"claude-opus-4-8",
|
|
130
138
|
"claude-opus-4-7",
|
|
131
139
|
"claude-sonnet-4-6",
|
|
132
140
|
"claude-sonnet-4-5",
|
|
@@ -134,18 +142,36 @@ describe("provider registration (default export)", () => {
|
|
|
134
142
|
]) {
|
|
135
143
|
expect(modelIds.has(id)).toBe(true);
|
|
136
144
|
}
|
|
145
|
+
|
|
146
|
+
expect(
|
|
147
|
+
config.models.find((m: { id: string }) => m.id === "claude-fable-5"),
|
|
148
|
+
).toMatchObject({
|
|
149
|
+
cost: { input: 10, output: 50, cacheRead: 1, cacheWrite: 12.5 },
|
|
150
|
+
});
|
|
137
151
|
});
|
|
138
152
|
|
|
139
153
|
it("deduplicates extra models when catalog already includes them", async () => {
|
|
140
154
|
const registerProvider = vi.fn();
|
|
141
155
|
const mockPi = { registerProvider, on: vi.fn() } as any;
|
|
142
|
-
const getModelsMock = vi.mocked(
|
|
156
|
+
const getModelsMock = vi.mocked(getBuiltinModels);
|
|
157
|
+
const upstreamSonnet5 = {
|
|
158
|
+
id: "claude-sonnet-5",
|
|
159
|
+
name: "Claude Sonnet 5 Upstream",
|
|
160
|
+
api: "anthropic",
|
|
161
|
+
provider: "anthropic",
|
|
162
|
+
reasoning: false,
|
|
163
|
+
input: ["text"],
|
|
164
|
+
cost: { input: 99, output: 199, cacheRead: 9.9, cacheWrite: 24.75 },
|
|
165
|
+
contextWindow: 123_456,
|
|
166
|
+
maxTokens: 7_654,
|
|
167
|
+
} as any;
|
|
143
168
|
|
|
144
169
|
getModelsMock.mockReturnValueOnce([
|
|
145
170
|
...mockModels,
|
|
171
|
+
upstreamSonnet5,
|
|
146
172
|
{
|
|
147
173
|
id: "claude-sonnet-4-6",
|
|
148
|
-
name: "Claude Sonnet 4.6",
|
|
174
|
+
name: "Claude Sonnet 4.6 Upstream",
|
|
149
175
|
api: "anthropic",
|
|
150
176
|
provider: "anthropic",
|
|
151
177
|
reasoning: true,
|
|
@@ -160,10 +186,23 @@ describe("provider registration (default export)", () => {
|
|
|
160
186
|
mod.default(mockPi);
|
|
161
187
|
|
|
162
188
|
const config = registerProvider.mock.calls[0][1];
|
|
163
|
-
const
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
189
|
+
for (const id of ["claude-sonnet-5", "claude-sonnet-4-6"]) {
|
|
190
|
+
const matches = config.models.filter(
|
|
191
|
+
(m: { id: string }) => m.id === id,
|
|
192
|
+
);
|
|
193
|
+
expect(matches).toHaveLength(1);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
expect(
|
|
197
|
+
config.models.find((m: { id: string }) => m.id === "claude-sonnet-5"),
|
|
198
|
+
).toMatchObject({
|
|
199
|
+
name: upstreamSonnet5.name,
|
|
200
|
+
reasoning: upstreamSonnet5.reasoning,
|
|
201
|
+
input: upstreamSonnet5.input,
|
|
202
|
+
cost: upstreamSonnet5.cost,
|
|
203
|
+
contextWindow: upstreamSonnet5.contextWindow,
|
|
204
|
+
maxTokens: upstreamSonnet5.maxTokens,
|
|
205
|
+
});
|
|
167
206
|
});
|
|
168
207
|
});
|
|
169
208
|
|
|
@@ -689,6 +689,13 @@ interface CustomFieldRejection {
|
|
|
689
689
|
detail: string;
|
|
690
690
|
}
|
|
691
691
|
|
|
692
|
+
type WorkflowLifecycleWarningCode = "missing-completion-summary" | "missing-merge-region" | "unsafe-terminal-before-merge" | "optional-group-after-execution" | "review-gate-without-failure-route";
|
|
693
|
+
interface WorkflowLifecycleWarning {
|
|
694
|
+
code: WorkflowLifecycleWarningCode;
|
|
695
|
+
nodeId?: string;
|
|
696
|
+
message: string;
|
|
697
|
+
}
|
|
698
|
+
|
|
692
699
|
interface WorkflowNodeLayout {
|
|
693
700
|
x: number;
|
|
694
701
|
y: number;
|
|
@@ -698,15 +705,18 @@ interface WorkflowDefinition {
|
|
|
698
705
|
id: string;
|
|
699
706
|
name: string;
|
|
700
707
|
description: string;
|
|
708
|
+
icon?: string;
|
|
701
709
|
kind: WorkflowDefinitionKind;
|
|
702
710
|
ir: WorkflowIr;
|
|
703
711
|
layout: Record<string, WorkflowNodeLayout>;
|
|
712
|
+
lifecycleWarnings?: WorkflowLifecycleWarning[];
|
|
704
713
|
createdAt: string;
|
|
705
714
|
updatedAt: string;
|
|
706
715
|
}
|
|
707
716
|
interface WorkflowDefinitionInput {
|
|
708
717
|
name: string;
|
|
709
718
|
description?: string;
|
|
719
|
+
icon?: string;
|
|
710
720
|
ir: WorkflowIr;
|
|
711
721
|
layout?: Record<string, WorkflowNodeLayout>;
|
|
712
722
|
kind?: WorkflowDefinitionKind;
|
|
@@ -714,6 +724,7 @@ interface WorkflowDefinitionInput {
|
|
|
714
724
|
interface WorkflowDefinitionUpdate {
|
|
715
725
|
name?: string;
|
|
716
726
|
description?: string;
|
|
727
|
+
icon?: string | null;
|
|
717
728
|
ir?: WorkflowIr;
|
|
718
729
|
layout?: Record<string, WorkflowNodeLayout>;
|
|
719
730
|
rehomeTo?: string;
|
|
@@ -2662,6 +2673,8 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
|
|
|
2662
2673
|
private scanAndRecordCitations;
|
|
2663
2674
|
private getTaskSelectClause;
|
|
2664
2675
|
private computeTimedExecutionMs;
|
|
2676
|
+
private getLatestAgentLogActivityMs;
|
|
2677
|
+
private hasFreshAgentLogActivitySinceTaskUpdate;
|
|
2665
2678
|
private getTaskSelectClauseWithActivityLogLimit;
|
|
2666
2679
|
private createTaskPersistSerializationContext;
|
|
2667
2680
|
private getTaskPersistValues;
|
|
@@ -2902,6 +2915,7 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
|
|
|
2902
2915
|
handoffToReview(taskId: string, opts: HandoffToReviewOptions): Promise<Task>;
|
|
2903
2916
|
private resolveWorkflowMoveActor;
|
|
2904
2917
|
private resolveWorkflowBypassGuards;
|
|
2918
|
+
private isWorkflowDoneBypassGuardedTask;
|
|
2905
2919
|
private shouldSkipWorkflowMovePolicies;
|
|
2906
2920
|
private prepareWorkflowMovePolicyPreflight;
|
|
2907
2921
|
private evaluateWorkflowMovePolicies;
|
|
@@ -3001,6 +3015,7 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
|
|
|
3001
3015
|
githubTracking?: TaskGithubTracking | null;
|
|
3002
3016
|
tokenUsage?: TaskTokenUsage | null;
|
|
3003
3017
|
modifiedFiles?: string[] | null;
|
|
3018
|
+
workflowTransitionNotification?: Task["workflowTransitionNotification"] | null;
|
|
3004
3019
|
missionId?: string | null;
|
|
3005
3020
|
sliceId?: string | null;
|
|
3006
3021
|
}, runContext?: RunMutationContext): Promise<Task>;
|
|
@@ -3309,6 +3324,7 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
|
|
|
3309
3324
|
private resolveTaskWorkflowIrSync;
|
|
3310
3325
|
private resolveEffectiveWorkflowIdSync;
|
|
3311
3326
|
private countActiveInCapacitySlotSync;
|
|
3327
|
+
private countActiveExecutionWorktreeHoldersSync;
|
|
3312
3328
|
getTaskWorkflowSelection(taskId: string): {
|
|
3313
3329
|
workflowId: string;
|
|
3314
3330
|
stepIds: string[];
|
|
@@ -3504,6 +3520,7 @@ interface CreateInteractiveAiSessionOptions {
|
|
|
3504
3520
|
requestedSkillNames?: string[];
|
|
3505
3521
|
additionalSkillPaths?: string[];
|
|
3506
3522
|
onProgress?: (event: InteractiveAiSessionProgressEvent) => void;
|
|
3523
|
+
allowAnswerQuestionIdDrift?: boolean;
|
|
3507
3524
|
}
|
|
3508
3525
|
type InteractiveAiSessionProgressEvent = {
|
|
3509
3526
|
type: "thinking";
|
|
@@ -4328,7 +4345,7 @@ declare const COMPLETION_DOCUMENTATION_MODES: readonly ["off", "changeset", "cha
|
|
|
4328
4345
|
type CompletionDocumentationMode = (typeof COMPLETION_DOCUMENTATION_MODES)[number];
|
|
4329
4346
|
declare const THEME_MODES: readonly ["dark", "light", "system"];
|
|
4330
4347
|
type ThemeMode = (typeof THEME_MODES)[number];
|
|
4331
|
-
declare const COLOR_THEMES: readonly ["default", "ocean", "forest", "sunset", "zen", "berry", "high-contrast", "industrial", "monochrome", "slate", "ash", "air", "graphite", "silver", "solarized", "factory", "factory-mono", "ayu", "one-dark", "nord", "dracula", "gruvbox", "tokyo-night", "catppuccin-mocha", "github-dark", "everforest", "rose-pine", "kanagawa", "night-owl", "palenight", "monokai-pro", "slime", "brutalist", "neon-city", "parchment", "terminal", "glass", "horizon", "vitesse", "outrun", "snazzy", "porple", "espresso", "mars", "poimandres", "ember", "rust", "copper", "foundry", "carbon", "sandstone", "lagoon", "frost", "lavender", "neon-bloom", "sepia", "shadcn", "shadcn-custom", "shadcn-blue", "shadcn-green", "shadcn-red", "shadcn-purple", "shadcn-pink", "shadcn-orange", "shadcn-yellow", "shadcn-mono-red", "shadcn-mono-blue", "shadcn-mono-green", "shadcn-mono-purple", "shadcn-mono-pink", "shadcn-mono-orange", "shadcn-mono-yellow", "shadcn-black", "shadcn-gray", "shadcn-gray-blue"];
|
|
4348
|
+
declare const COLOR_THEMES: readonly ["default", "ocean", "forest", "sunset", "zen", "berry", "high-contrast", "industrial", "monochrome", "slate", "ash", "air", "graphite", "silver", "solarized", "factory", "factory-mono", "ayu", "one-dark", "nord", "dracula", "gruvbox", "tokyo-night", "catppuccin-mocha", "github-dark", "everforest", "rose-pine", "kanagawa", "night-owl", "palenight", "monokai-pro", "slime", "brutalist", "neon-city", "parchment", "terminal", "glass", "glass-silver", "horizon", "vitesse", "outrun", "snazzy", "porple", "espresso", "mars", "poimandres", "ember", "rust", "copper", "foundry", "carbon", "sandstone", "lagoon", "frost", "lavender", "neon-bloom", "sepia", "shadcn", "shadcn-ember", "shadcn-custom", "shadcn-blue", "shadcn-green", "shadcn-red", "shadcn-purple", "shadcn-pink", "shadcn-orange", "shadcn-yellow", "shadcn-mono-red", "shadcn-mono-blue", "shadcn-mono-green", "shadcn-mono-purple", "shadcn-mono-pink", "shadcn-mono-orange", "shadcn-mono-yellow", "shadcn-black", "shadcn-gray", "shadcn-gray-blue"];
|
|
4332
4349
|
type ColorTheme = (typeof COLOR_THEMES)[number];
|
|
4333
4350
|
declare const SUPPORTED_LOCALES: readonly ["en", "zh-CN", "zh-TW", "fr", "es", "ko"];
|
|
4334
4351
|
type Locale = (typeof SUPPORTED_LOCALES)[number];
|
|
@@ -4419,6 +4436,7 @@ interface WorkflowStepResult {
|
|
|
4419
4436
|
workflowStepId: string;
|
|
4420
4437
|
workflowStepName: string;
|
|
4421
4438
|
phase?: WorkflowStepPhase;
|
|
4439
|
+
source?: "optional-group" | "node";
|
|
4422
4440
|
status: "passed" | "failed" | "advisory_failure" | "skipped" | "pending";
|
|
4423
4441
|
output?: string;
|
|
4424
4442
|
verdict?: "APPROVE" | "APPROVE_WITH_NOTES" | "REVISE";
|
|
@@ -4537,6 +4555,15 @@ interface TaskLogEntry {
|
|
|
4537
4555
|
outcome?: string;
|
|
4538
4556
|
runContext?: RunMutationContext;
|
|
4539
4557
|
}
|
|
4558
|
+
type WorkflowTransitionNotificationKind = "manual-merge-hold" | "recovery-requeue";
|
|
4559
|
+
interface WorkflowTransitionNotificationMarker {
|
|
4560
|
+
kind: WorkflowTransitionNotificationKind;
|
|
4561
|
+
column: ColumnId;
|
|
4562
|
+
transitionId: string;
|
|
4563
|
+
nodeId?: string;
|
|
4564
|
+
reason?: string;
|
|
4565
|
+
createdAt: string;
|
|
4566
|
+
}
|
|
4540
4567
|
type ActivityEventType = "task:created" | "task:moved" | "task:updated" | "task:deleted" | "task:merged" | "task:failed" | "task:duplicate-warning-overridden" | "task:auto-archived-deterministic-duplicate" | "task:auto-archived-near-duplicate" | "task:near-duplicate-flagged" | "task:release-authorization-required" | "task:auto-archived-ghost-bug" | "task:auto-archived-duplicate" | "task:merge-worktree-reacquired" | "settings:updated" | "project:isolation-transition";
|
|
4541
4568
|
interface ActivityLogEntry {
|
|
4542
4569
|
id: string;
|
|
@@ -5115,6 +5142,7 @@ interface Task {
|
|
|
5115
5142
|
stalePausedReview?: StalePausedReviewSignal;
|
|
5116
5143
|
inReviewStalled?: InReviewStalledSignal;
|
|
5117
5144
|
stalePausedTodo?: StalePausedTodoSignal;
|
|
5145
|
+
workflowTransitionNotification?: WorkflowTransitionNotificationMarker;
|
|
5118
5146
|
stalledReview?: StalledReviewSignal;
|
|
5119
5147
|
tokenUsage?: TaskTokenUsage;
|
|
5120
5148
|
size?: "S" | "M" | "L";
|
|
@@ -5403,6 +5431,7 @@ interface GlobalSettings {
|
|
|
5403
5431
|
colorTheme?: ColorTheme;
|
|
5404
5432
|
shadcnCustomColors?: Record<string, string>;
|
|
5405
5433
|
dashboardFontScalePct?: number;
|
|
5434
|
+
dismissModalsOnOutsideClick?: boolean;
|
|
5406
5435
|
language?: Locale;
|
|
5407
5436
|
defaultProvider?: string;
|
|
5408
5437
|
defaultModelId?: string;
|
|
@@ -5579,6 +5608,7 @@ interface ProjectSettings {
|
|
|
5579
5608
|
groupOverlappingFiles: boolean;
|
|
5580
5609
|
ignoreHiddenOverlapPaths?: boolean;
|
|
5581
5610
|
overlapIgnorePaths?: string[];
|
|
5611
|
+
allowAbsoluteFileBrowserPaths?: boolean;
|
|
5582
5612
|
autoMerge: boolean;
|
|
5583
5613
|
testMode?: boolean;
|
|
5584
5614
|
mergeRequestContractShadowEnabled?: boolean;
|
|
@@ -5617,6 +5647,8 @@ interface ProjectSettings {
|
|
|
5617
5647
|
recycleWorktrees?: boolean;
|
|
5618
5648
|
showWorktreeGrouping?: boolean;
|
|
5619
5649
|
openTasksInRightSidebar?: boolean;
|
|
5650
|
+
openMobileTasksInPopup?: boolean;
|
|
5651
|
+
taskDetailChatFirst?: boolean;
|
|
5620
5652
|
executorAllowSiblingBranchRename?: boolean;
|
|
5621
5653
|
worktreeNaming?: "random" | "task-id" | "task-title";
|
|
5622
5654
|
worktrunk?: WorktrunkSettings;
|
|
@@ -5694,7 +5726,8 @@ interface ProjectSettings {
|
|
|
5694
5726
|
autoApproveBackendIds?: string[];
|
|
5695
5727
|
};
|
|
5696
5728
|
defaultAgentPermissionPolicy?: {
|
|
5697
|
-
rules
|
|
5729
|
+
rules?: Partial<AgentPermissionPolicyRules>;
|
|
5730
|
+
toolRules?: AgentPermissionPolicyToolRules;
|
|
5698
5731
|
};
|
|
5699
5732
|
specStalenessEnabled?: boolean;
|
|
5700
5733
|
specStalenessMaxAgeMs?: number;
|
|
@@ -5754,6 +5787,7 @@ interface ProjectSettings {
|
|
|
5754
5787
|
githubCommentTemplate?: string;
|
|
5755
5788
|
githubCloseSourceIssueOnDone?: boolean;
|
|
5756
5789
|
githubTrackingEnabledByDefault?: boolean;
|
|
5790
|
+
githubLinkImportedIssuesToTracking?: boolean;
|
|
5757
5791
|
githubTrackingDefaultRepo?: string;
|
|
5758
5792
|
githubTrackingDedupEnabled?: boolean;
|
|
5759
5793
|
githubAuthMode?: GithubAuthMode;
|
|
@@ -5801,7 +5835,9 @@ interface ProjectSettings {
|
|
|
5801
5835
|
reflectionAfterTask?: boolean;
|
|
5802
5836
|
reviewHandoffPolicy?: "disabled" | "comment-triggered" | "always";
|
|
5803
5837
|
quickChatButtonMode?: "floating" | "footer" | "off";
|
|
5838
|
+
quickChatCloseOnOutsideClick?: boolean;
|
|
5804
5839
|
showQuickChatFAB?: boolean;
|
|
5840
|
+
showTaskChatsInCommonFeed?: boolean;
|
|
5805
5841
|
chatAutoCleanupDays?: number;
|
|
5806
5842
|
mailAutoCleanupDays?: number;
|
|
5807
5843
|
operationalLogRetentionDays?: number;
|
|
@@ -6429,12 +6465,14 @@ declare const SANDBOX_PROVISIONING_APPROVAL_MODES: readonly ["always", "trusted-
|
|
|
6429
6465
|
type SandboxProvisioningApprovalMode = (typeof SANDBOX_PROVISIONING_APPROVAL_MODES)[number];
|
|
6430
6466
|
type AgentPermissionPolicyActionCategory = PermanentAgentSensitiveActionCategory;
|
|
6431
6467
|
type AgentPermissionPolicyDisposition = "allow" | "block" | "require-approval";
|
|
6468
|
+
type AgentPermissionPolicyToolRules = Record<string, AgentPermissionPolicyDisposition>;
|
|
6432
6469
|
declare const AGENT_PERMISSION_POLICY_PRESET_IDS: readonly ["unrestricted", "approval-required", "locked-down", "custom"];
|
|
6433
6470
|
type AgentPermissionPolicyPresetId = (typeof AGENT_PERMISSION_POLICY_PRESET_IDS)[number];
|
|
6434
6471
|
type AgentPermissionPolicyRules = Record<AgentPermissionPolicyActionCategory, AgentPermissionPolicyDisposition>;
|
|
6435
6472
|
interface AgentPermissionPolicy {
|
|
6436
6473
|
presetId: AgentPermissionPolicyPresetId;
|
|
6437
6474
|
rules: AgentPermissionPolicyRules;
|
|
6475
|
+
toolRules?: AgentPermissionPolicyToolRules;
|
|
6438
6476
|
}
|
|
6439
6477
|
interface Agent {
|
|
6440
6478
|
id: string;
|
|
@@ -1029,10 +1029,15 @@ function buildStageSystemPrompt(stage) {
|
|
|
1029
1029
|
`You are running the Compound Engineering "${stage.stageId}" stage.`,
|
|
1030
1030
|
`Apply the bundled skill "${stage.skillId}" (it has been loaded into this session).`,
|
|
1031
1031
|
"",
|
|
1032
|
+
/*
|
|
1033
|
+
* FNXC:CompoundEngineering 2026-07-01-13:41:
|
|
1034
|
+
* CE dashboard stages may load rich skills that were authored for chat/terminal flows, including instructions to ask blocking questions or write prose summaries. The interactive session seam is stricter: every visible turn must translate any loaded-skill instruction into the structured question/complete JSON protocol so a newly launched Debug stage cannot become an Error session from non-JSON output.
|
|
1035
|
+
*/
|
|
1036
|
+
"The JSON protocol below has priority over any loaded-skill instruction about asking questions, using blocking question tools, writing prose summaries, previewing commits/PRs, or ending with chat text: translate any loaded-skill instruction into a JSON question or JSON complete event.",
|
|
1032
1037
|
"Drive the stage as an interactive question/answer flow. On every turn respond with ONLY a JSON object:",
|
|
1033
1038
|
' - To ask the user something: {"type":"question","data":{"id":"<unique>","type":"single_select|multi_select|text|confirm","question":"...","options":[{"id":"..","label":".."}]}}',
|
|
1034
1039
|
' - When the stage is finished: {"type":"complete","data":{"artifact":"<full markdown document>", ...}}',
|
|
1035
|
-
"No markdown fences, no prose outside the JSON object.",
|
|
1040
|
+
"No markdown fences, no prose outside the JSON object. Do not call user-question tools from this interactive stage; emit a JSON question instead.",
|
|
1036
1041
|
"",
|
|
1037
1042
|
`The user's reply arrives as {"type":"answer","questionId":"...","response":...}. The response takes one of three shapes:`,
|
|
1038
1043
|
" - a direct answer to your question (an option id, array of option ids, text, or boolean),",
|
|
@@ -1085,7 +1090,7 @@ var CeOrchestrator = class {
|
|
|
1085
1090
|
* bundled skill (closing the U2/U5 skill-discovery carry-forward). Model
|
|
1086
1091
|
* provider/model are setting-gated (U9); omitted keys let the host pick defaults.
|
|
1087
1092
|
*/
|
|
1088
|
-
buildSessionOptions(stage, sessionId) {
|
|
1093
|
+
buildSessionOptions(stage, sessionId, opts = {}) {
|
|
1089
1094
|
const defaultProvider = getDefaultProvider(this.ctx.settings);
|
|
1090
1095
|
const defaultModelId = getDefaultModelId(this.ctx.settings);
|
|
1091
1096
|
const additionalSkillPaths = resolveStageSkillPaths();
|
|
@@ -1096,6 +1101,11 @@ var CeOrchestrator = class {
|
|
|
1096
1101
|
tools: "coding",
|
|
1097
1102
|
requestedSkillNames: [stage.skillId],
|
|
1098
1103
|
additionalSkillPaths,
|
|
1104
|
+
/*
|
|
1105
|
+
* FNXC:CompoundEngineering 2026-07-01-17:31:
|
|
1106
|
+
* Question-id drift tolerance is recovery-only. Fresh CE sessions keep the strict interactive seam guard so live/DB question divergence is surfaced immediately; rehydration enables the tolerance because the persisted session row is the recovery anchor after a restart.
|
|
1107
|
+
*/
|
|
1108
|
+
...opts.allowAnswerQuestionIdDrift ? { allowAnswerQuestionIdDrift: true } : {},
|
|
1099
1109
|
onProgress: (event) => this.handleProgress(sessionId, event),
|
|
1100
1110
|
...defaultProvider ? { defaultProvider } : {},
|
|
1101
1111
|
...defaultModelId ? { defaultModelId } : {}
|
|
@@ -1367,7 +1377,9 @@ var CeOrchestrator = class {
|
|
|
1367
1377
|
}
|
|
1368
1378
|
}
|
|
1369
1379
|
async rehydrateReplay(session, stage) {
|
|
1370
|
-
const interactive = await this.factory(
|
|
1380
|
+
const interactive = await this.factory(
|
|
1381
|
+
this.buildSessionOptions(stage, session.id, { allowAnswerQuestionIdDrift: true })
|
|
1382
|
+
);
|
|
1371
1383
|
const live = interactive.session;
|
|
1372
1384
|
const userTurns = session.conversationHistory.filter((t) => t.role === "user");
|
|
1373
1385
|
try {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@runfusion/fusion",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.53.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Fusion CLI: HTTP API server, daemon, dashboard launcher, and task tooling for the Fusion AI coding agent.",
|
|
6
6
|
"homepage": "https://github.com/Runfusion/Fusion#readme",
|
|
@@ -34,6 +34,7 @@
|
|
|
34
34
|
"dist/**/*.d.ts.map",
|
|
35
35
|
"dist/**/*.js.map",
|
|
36
36
|
"dist/client/**",
|
|
37
|
+
"dist/desktop/**",
|
|
37
38
|
"dist/pi-claude-cli/**",
|
|
38
39
|
"dist/droid-cli/**",
|
|
39
40
|
"dist/plugins/**",
|
|
@@ -41,8 +42,8 @@
|
|
|
41
42
|
"README.md"
|
|
42
43
|
],
|
|
43
44
|
"dependencies": {
|
|
44
|
-
"@earendil-works/pi-ai": "^0.
|
|
45
|
-
"@earendil-works/pi-coding-agent": "^0.
|
|
45
|
+
"@earendil-works/pi-ai": "^0.80.3",
|
|
46
|
+
"@earendil-works/pi-coding-agent": "^0.80.3",
|
|
46
47
|
"dockerode": "^4.0.12",
|
|
47
48
|
"express": "^5.1.0",
|
|
48
49
|
"i18next": "^26.3.1",
|
package/skill/fusion/SKILL.md
CHANGED
|
@@ -28,6 +28,7 @@ Mission → Milestone → Slice → Feature → Task
|
|
|
28
28
|
**Tool categories:**
|
|
29
29
|
<!-- BEGIN: tool-categories (auto-generated by scripts/sync-fusion-skill-tools.mjs — do not edit by hand) -->
|
|
30
30
|
- **Task tools** — `fn_task_create`, `fn_task_update`, `fn_task_list`, `fn_task_show`, `fn_task_attach`, `fn_task_pause`, `fn_task_unpause`, `fn_task_retry`, `fn_task_duplicate`, `fn_task_refine`, `fn_task_archive`, `fn_task_unarchive`, `fn_task_delete`, `fn_task_plan`
|
|
31
|
+
- **Workflow tools** — `fn_workflow_list`, `fn_workflow_get`, `fn_workflow_create`, `fn_workflow_update`, `fn_workflow_delete`, `fn_workflow_settings`, `fn_trait_list`, `fn_workflow_select`
|
|
31
32
|
- **GitHub tools** — `fn_task_import_github`, `fn_task_import_github_issue`, `fn_task_browse_github_issues`
|
|
32
33
|
- **Mission tools** — `fn_mission_create`, `fn_mission_list`, `fn_mission_show`, `fn_mission_list_goals`, `fn_mission_link_goal`, `fn_mission_unlink_goal`, `fn_mission_backfill_assertions`, `fn_mission_delete`, `fn_mission_update`, `fn_milestone_add`, `fn_slice_add`, `fn_feature_add`, `fn_feature_delete`, `fn_slice_delete`, `fn_milestone_delete`, `fn_slice_activate`, `fn_feature_link_task`, `fn_feature_update`, `fn_milestone_update`
|
|
33
34
|
- **Goal tools** — `fn_goal_list`, `fn_goal_create`, `fn_goal_archive`, `fn_goal_show`
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# Engine Session-Scoped Tools
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
This reference documents tools injected by the engine at runtime for specific agent session types. Some shared workflow tools are also part of the public extension surface; use `references/extension-tools.md` as the canonical user-invokable extension reference and this page for runtime agent-role availability.
|
|
4
4
|
|
|
5
5
|
- Source files: `packages/engine/src/agent-tools.ts`, `triage.ts`, `executor.ts`, `merger.ts`, `agent-heartbeat.ts`
|
|
6
6
|
- Availability: only when the engine creates a session for the matching agent role
|
|
7
7
|
- Runtime contract: engine sessions now forward requested skill names (`skillSelection.requestedSkillNames`) into the generic runtime `skills` field so non-pi runtimes can still receive Fusion skill intent.
|
|
8
|
-
- Important: do not tell users to call
|
|
8
|
+
- Important: do not tell users to call runtime-only tools directly from the generic extension tool list
|
|
9
9
|
|
|
10
10
|
## Shared runtime tools (`agent-tools.ts`)
|
|
11
11
|
|
|
@@ -54,7 +54,7 @@ These tools are **not** part of the user-invokable extension surface. They are i
|
|
|
54
54
|
| `fn_send_message` | executor, step-session, heartbeat | Send inbox messages to agents/users | `to_id` (string), `content` (string), `type?` (`agent-to-agent` \| `agent-to-user`), `reply_to_message_id?` (string) |
|
|
55
55
|
| `fn_read_messages` | executor, step-session, heartbeat | Read inbox messages | `unread_only?` (boolean), `limit?` (number) |
|
|
56
56
|
| `fn_post_room_message` | heartbeat | Post a message to a chat room the agent is a member of | `roomId` (string), `content` (string), `replyToMessageId?` (string), `mentions?` (string[]) |
|
|
57
|
-
| `fn_artifact_register` | triage, executor, heartbeat; chat/planning (explicit `task_id`) | Register an artifact (document, image, video, audio, or other) so other agents and tasks can discover it | `type` (string), `title` (string), `description?` (string), `mimeType?` (string), `uri?` (string), `content?` (string), `taskId?` (string); chat/planning also require `task_id` (string) |
|
|
57
|
+
| `fn_artifact_register` | triage, executor, heartbeat; chat/planning (explicit `task_id`) | Register an artifact (document, image, video, audio, or other) so other agents and tasks can discover it; image artifacts may provide `dataBase64` bytes for registry-managed media storage | `type` (string), `title` (string), `description?` (string), `mimeType?` (string), `uri?` (string), `content?` (string), `dataBase64?` (base64 string), `taskId?` (string); chat/planning also require `task_id` (string) |
|
|
58
58
|
| `fn_artifact_list` | triage, executor, heartbeat; chat/planning (explicit `task_id`) | List registered artifacts across agents and tasks with filters for type, authorId, taskId, search, limit, and offset | `type?` (string), `authorId?` (string), `taskId?` (string), `search?` (string), `limit?` (number), `offset?` (number); chat/planning also require `task_id` (string) |
|
|
59
59
|
| `fn_artifact_view` | triage, executor, heartbeat | View a registered artifact by id, including metadata and inline content or the uri/path reference for media artifacts | `id` (string) |
|
|
60
60
|
|