@runfusion/fusion 0.59.0 → 0.60.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 +173 -16
- package/dist/client/.vite/manifest.json +239 -239
- package/dist/client/assets/{AgentDetailView-UmilJU0C.js → AgentDetailView-BBjuuYbU.js} +1 -1
- package/dist/client/assets/{AgentPermissionPolicyEditor-DqYOX1kN.js → AgentPermissionPolicyEditor-DOdy1ln0.js} +1 -1
- package/dist/client/assets/{AgentsView-Dt0nKyx7.js → AgentsView-DlyT08sc.js} +3 -3
- package/dist/client/assets/{ChatView-C7trV16u.js → ChatView-CJBnc6rJ.js} +1 -1
- package/dist/client/assets/{CommandCenter-Dsg16_mK.js → CommandCenter-BhRLZmOH.js} +1 -1
- package/dist/client/assets/{DevServerView-DnpnAU_g.js → DevServerView-DRpi8Xqz.js} +1 -1
- package/dist/client/assets/{DirectoryPicker-BzpWdpTC.js → DirectoryPicker-Bw_A-64N.js} +1 -1
- package/dist/client/assets/{DocumentsView-C2jRDIo6.js → DocumentsView-w0eDbpbG.js} +1 -1
- package/dist/client/assets/{EvalsView-M1nIXx-S.js → EvalsView-DxQALLwD.js} +1 -1
- package/dist/client/assets/{ExperimentalAgentOnboardingModal-5Kg2iQtB.js → ExperimentalAgentOnboardingModal-BuEWZrjl.js} +1 -1
- package/dist/client/assets/{GoalsView-7bFpy-lr.js → GoalsView-C3MGEtSt.js} +1 -1
- package/dist/client/assets/{InsightsView-D0HPy3RP.js → InsightsView-C0-BkE8_.js} +1 -1
- package/dist/client/assets/{MemoryView-CNzJcoPi.js → MemoryView-Dd8uiLHH.js} +1 -1
- package/dist/client/assets/{PiExtensionsManager-D0a8Q47c.js → PiExtensionsManager-DlsEVOjG.js} +1 -1
- package/dist/client/assets/{PluginManager-N2Ne57i_.js → PluginManager-Cf9AOCcC.js} +1 -1
- package/dist/client/assets/{PullRequestView-Be4GM2H5.js → PullRequestView-hm77QtHV.js} +1 -1
- package/dist/client/assets/{ResearchView-DYW9ViMl.js → ResearchView-BMQEnYH6.js} +1 -1
- package/dist/client/assets/{SecretsView-B3jEFeGp.js → SecretsView-Dc3sWf40.js} +1 -1
- package/dist/client/assets/{SessionTerminal-DGFADOH4.js → SessionTerminal-CEv1G-9-.js} +1 -1
- package/dist/client/assets/SettingsModal-DFrTDsBm.js +21 -0
- package/dist/client/assets/{SettingsModal-Lw0RmeRd.js → SettingsModal-TuphE_CP.js} +1 -1
- package/dist/client/assets/{SetupWizardModal-BifMmJIa.js → SetupWizardModal-CNGogJJp.js} +2 -2
- package/dist/client/assets/{ShadcnColorPicker-B1UClHqm.js → ShadcnColorPicker-1Z7JIWTE.js} +1 -1
- package/dist/client/assets/{SkillsView--U-5lH1V.js → SkillsView-CjPvmnz6.js} +1 -1
- package/dist/client/assets/{TodoView-BwxNdIXm.js → TodoView-DmJPSWOu.js} +1 -1
- package/dist/client/assets/{WorkflowNodeEditor-BmTZR0i8.js → WorkflowNodeEditor-BqO2yRXe.js} +1 -1
- package/dist/client/assets/{agentSkills-PqEK0Uf_.js → agentSkills-BNahUMFe.js} +1 -1
- package/dist/client/assets/{app-BlgX3hw4.js → app-BzgEwAOr.js} +1 -1
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-DxAKryer.js → architectureDiagram-3BPJPVTR-Bb_ZGdtz.js} +1 -1
- package/dist/client/assets/{blockDiagram-GPEHLZMM-BfPC7WG4.js → blockDiagram-GPEHLZMM-CWfWJnIM.js} +1 -1
- package/dist/client/assets/{c4Diagram-AAUBKEIU-DnVJBAB1.js → c4Diagram-AAUBKEIU-Dufe_2hy.js} +1 -1
- package/dist/client/assets/channel-BYHFEnHT.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-2LaGYtnx.js → chunk-2J33WTMH-BdKWX3Y7.js} +1 -1
- package/dist/client/assets/{chunk-4BX2VUAB-C7xxOb1T.js → chunk-4BX2VUAB-CQ9_zgu6.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-CAxHAFXx.js → chunk-55IACEB6-DEFTCISD.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-CnZuaU-I.js → chunk-727SXJPM-8RnJp1fx.js} +1 -1
- package/dist/client/assets/{chunk-AQP2D5EJ-DutKSMk1.js → chunk-AQP2D5EJ-DJg6awe1.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-C7PQ58jc.js → chunk-FMBD7UC4-Bw-OImRT.js} +1 -1
- package/dist/client/assets/{chunk-ND2GUHAM-BQ0UHfJw.js → chunk-ND2GUHAM-BSx9p0RO.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-BadmXu1v.js → chunk-QZHKN3VN-Dbdv72P6.js} +1 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-BLstvJ1W.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-BLstvJ1W.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-37z9Hx7d.js → cose-bilkent-S5V4N54A-CXtcC6U2.js} +1 -1
- package/dist/client/assets/{dagre-BM42HDAG-B70rt1ZW.js → dagre-BM42HDAG-BO0r4g14.js} +1 -1
- package/dist/client/assets/{dashboard-view-GT7dDNd7.js → dashboard-view-BTnVGch5.js} +1 -1
- package/dist/client/assets/{dashboard-view-DdAL0vfN.js → dashboard-view-CoDeYJbQ.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-se4pabEk.js → diagram-2AECGRRQ-CLmeU2g6.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-ijyxpVgX.js → diagram-5GNKFQAL-CKyM23Jy.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-DUGQ8jXI.js → diagram-KO2AKTUF-ByeVRDs_.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47-BYydC37K.js → diagram-LMA3HP47-r8qKTJDn.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-DlUn5jkD.js → diagram-OG6HWLK6-D2ugPdm7.js} +1 -1
- package/dist/client/assets/{erDiagram-TEJ5UH35-ChYKGDIc.js → erDiagram-TEJ5UH35-dLzbDn0G.js} +1 -1
- package/dist/client/assets/{flowDiagram-I6XJVG4X-CoQKr6ba.js → flowDiagram-I6XJVG4X-et7EENd6.js} +1 -1
- package/dist/client/assets/{folder-open-YuIEuDwd.js → folder-open-BVtcjVIK.js} +1 -1
- package/dist/client/assets/{ganttDiagram-6RSMTGT7-Cff6URun.js → ganttDiagram-6RSMTGT7-DmiabChP.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-CnlZVE6T.js → gitGraphDiagram-PVQCEYII-I1vbhqer.js} +1 -1
- package/dist/client/assets/index-inWk2g6R.js +2540 -0
- package/dist/client/assets/{infoDiagram-5YYISTIA-DYLBAKrj.js → infoDiagram-5YYISTIA-xd6L9Gq3.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-7xSxQNhn.js → ishikawaDiagram-YF4QCWOH-fUeEYBvD.js} +1 -1
- package/dist/client/assets/{journeyDiagram-JHISSGLW-DREqJGeQ.js → journeyDiagram-JHISSGLW-B7xjU8Oh.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-_lzeYhpL.js → kanban-definition-UN3LZRKU-CJ8oRjFI.js} +1 -1
- package/dist/client/assets/{mermaid.core-DNTJMy0V.js → mermaid.core-2udKsaH3.js} +4 -4
- package/dist/client/assets/{mindmap-definition-RKZ34NQL-DR9UulDp.js → mindmap-definition-RKZ34NQL-CVywzN7Q.js} +1 -1
- package/dist/client/assets/{pieDiagram-4H26LBE5-DD1LCdSp.js → pieDiagram-4H26LBE5-8vzzC4Mg.js} +1 -1
- package/dist/client/assets/{puzzle-DaVSYDOd.js → puzzle-D60d3Nv1.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-iLEGylFT.js → quadrantDiagram-W4KKPZXB-Cxyb4Mom.js} +1 -1
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-D7IX9UbY.js → requirementDiagram-4Y6WPE33-Bs5RaG7r.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-DC30taEV.js → sankeyDiagram-5OEKKPKP-Jf7Zq43D.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-DjMKbjmL.js → sequenceDiagram-3UESZ5HK-CG0I780H.js} +1 -1
- package/dist/client/assets/{shield-alert-BcyPZs5t.js → shield-alert-B7JyuWPR.js} +1 -1
- package/dist/client/assets/{stateDiagram-AJRCARHV-DJSnSkUL.js → stateDiagram-AJRCARHV-C1c5XtKG.js} +1 -1
- package/dist/client/assets/{stateDiagram-v2-BHNVJYJU-KC2rSU3J.js → stateDiagram-v2-BHNVJYJU-Cv7_pOt_.js} +1 -1
- package/dist/client/assets/{timeline-definition-PNZ67QCA-5DyrH8WZ.js → timeline-definition-PNZ67QCA-BWg-lsI0.js} +1 -1
- package/dist/client/assets/{upload-C_8IHSzk.js → upload-Dxv5FPaS.js} +1 -1
- package/dist/client/assets/{users-DfGiwmqG.js → users-DvKg3opr.js} +1 -1
- package/dist/client/assets/{vennDiagram-CIIHVFJN-Bh5X-uVf.js → vennDiagram-CIIHVFJN-gFjFmLlv.js} +1 -1
- package/dist/client/assets/{wardley-L42UT6IY-ZIwV-wIZ.js → wardley-L42UT6IY-BaCNX8ou.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-DI92L1jA.js → wardleyDiagram-YWT4CUSO-BRR6aw0q.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-B6RjJCM8.js → xychartDiagram-2RQKCTM6-D6Gwn1XW.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/client/version.json +1 -1
- package/dist/droid-cli/package.json +1 -1
- package/dist/extension.js +173 -16
- package/dist/pi-claude-cli/package.json +1 -1
- package/dist/plugin-sdk/index.d.ts +7 -0
- package/dist/plugins/fusion-plugin-acp-runtime/bundled.js +0 -6
- 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 +0 -5
- package/dist/plugins/fusion-plugin-compound-engineering/package.json +1 -1
- package/dist/plugins/fusion-plugin-cursor-runtime/bundled.js +0 -5
- package/dist/plugins/fusion-plugin-cursor-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-dependency-graph/bundled.js +0 -5
- package/dist/plugins/fusion-plugin-dependency-graph/package.json +1 -1
- package/dist/plugins/fusion-plugin-droid-runtime/bundled.js +0 -5
- package/dist/plugins/fusion-plugin-droid-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-grok-runtime/bundled.js +0 -6
- package/dist/plugins/fusion-plugin-grok-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-hermes-runtime/bundled.js +0 -5
- package/dist/plugins/fusion-plugin-hermes-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-linear-import/bundled.js +0 -5
- package/dist/plugins/fusion-plugin-linear-import/package.json +1 -1
- package/dist/plugins/fusion-plugin-openclaw-runtime/bundled.js +0 -5
- package/dist/plugins/fusion-plugin-openclaw-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-paperclip-runtime/bundled.js +0 -5
- 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/bundled.js +0 -5
- package/dist/plugins/fusion-plugin-roadmap/package.json +1 -1
- package/dist/plugins/fusion-plugin-whatsapp-chat/package.json +1 -1
- package/package.json +1 -1
- package/dist/client/assets/SettingsModal-CtOCCZEj.js +0 -21
- package/dist/client/assets/channel-D23u9xEh.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-BMIDIijD.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-BMIDIijD.js +0 -1
- package/dist/client/assets/index-aBQwNV_I.js +0 -2540
package/dist/extension.js
CHANGED
|
@@ -1217,6 +1217,12 @@ var init_settings_schema = __esm({
|
|
|
1217
1217
|
titleSummarizerGlobalProvider: void 0,
|
|
1218
1218
|
titleSummarizerGlobalModelId: void 0,
|
|
1219
1219
|
/*
|
|
1220
|
+
FNXC:Settings-MergerModel 2026-07-13-07:52:
|
|
1221
|
+
Global merger baseline lane (provider/model/thinking) is independent of executor/planner/reviewer so operators can pin a merge-capable model under Settings → Global Models without changing other lanes. Undefined falls through to defaultProvider/defaultModelId at resolve time.
|
|
1222
|
+
*/
|
|
1223
|
+
mergerGlobalProvider: void 0,
|
|
1224
|
+
mergerGlobalModelId: void 0,
|
|
1225
|
+
/*
|
|
1220
1226
|
FNXC:Settings-ThinkingLevel 2026-07-10-00:00:
|
|
1221
1227
|
Global model lanes can override the default thinking effort independently. Undefined preserves the existing inheritance to `defaultThinkingLevel`.
|
|
1222
1228
|
*/
|
|
@@ -1224,6 +1230,7 @@ var init_settings_schema = __esm({
|
|
|
1224
1230
|
planningGlobalThinkingLevel: void 0,
|
|
1225
1231
|
validatorGlobalThinkingLevel: void 0,
|
|
1226
1232
|
titleSummarizerGlobalThinkingLevel: void 0,
|
|
1233
|
+
mergerGlobalThinkingLevel: void 0,
|
|
1227
1234
|
// Daemon mode settings
|
|
1228
1235
|
daemonToken: void 0,
|
|
1229
1236
|
daemonPort: 4040,
|
|
@@ -1414,6 +1421,11 @@ var init_settings_schema = __esm({
|
|
|
1414
1421
|
*/
|
|
1415
1422
|
openMobileTasksInPopup: false,
|
|
1416
1423
|
/*
|
|
1424
|
+
FNXC:TaskPopupViewGating 2026-07-13-00:00:
|
|
1425
|
+
Default off preserves current always-visible task-detail popup behavior. When true, the dashboard render gate shows each open task-detail FloatingWindow only on the Board/List view where it was opened without clearing popup snapshots or their shared persisted geometry.
|
|
1426
|
+
*/
|
|
1427
|
+
taskPopupsBoardListOnly: false,
|
|
1428
|
+
/*
|
|
1417
1429
|
FNXC:TaskCardCostBadge 2026-07-11-12:15:
|
|
1418
1430
|
Default off preserves existing board-card density. When true, the dashboard may render a read-time derived cost badge only for tasks with positive token usage; unavailable pricing remains the guess-free “—” sentinel.
|
|
1419
1431
|
*/
|
|
@@ -1615,6 +1627,13 @@ var init_settings_schema = __esm({
|
|
|
1615
1627
|
titleSummarizerFallbackProvider: void 0,
|
|
1616
1628
|
titleSummarizerFallbackModelId: void 0,
|
|
1617
1629
|
titleSummarizerFallbackThinkingLevel: void 0,
|
|
1630
|
+
/*
|
|
1631
|
+
FNXC:Settings-MergerModel 2026-07-13-07:52:
|
|
1632
|
+
Merger model lane stays project-scoped (not workflow-moved) like title summarizer: Settings → Project Models can override the global merger baseline without binding the choice to a workflow graph.
|
|
1633
|
+
*/
|
|
1634
|
+
mergerProvider: void 0,
|
|
1635
|
+
mergerModelId: void 0,
|
|
1636
|
+
mergerThinkingLevel: void 0,
|
|
1618
1637
|
prTitlePromptInstructions: void 0,
|
|
1619
1638
|
prDescriptionPromptInstructions: void 0,
|
|
1620
1639
|
scripts: void 0,
|
|
@@ -2664,6 +2683,22 @@ function resolveTitleSummarizerSettingsModel(settings) {
|
|
|
2664
2683
|
settings
|
|
2665
2684
|
);
|
|
2666
2685
|
}
|
|
2686
|
+
function resolveMergerSettingsModel(settings) {
|
|
2687
|
+
return applyTestModeOverrides(
|
|
2688
|
+
pickFirstModelPair(
|
|
2689
|
+
{
|
|
2690
|
+
provider: settings?.mergerProvider,
|
|
2691
|
+
modelId: settings?.mergerModelId
|
|
2692
|
+
},
|
|
2693
|
+
{
|
|
2694
|
+
provider: settings?.mergerGlobalProvider,
|
|
2695
|
+
modelId: settings?.mergerGlobalModelId
|
|
2696
|
+
},
|
|
2697
|
+
resolveProjectDefaultModel(settings)
|
|
2698
|
+
),
|
|
2699
|
+
settings
|
|
2700
|
+
);
|
|
2701
|
+
}
|
|
2667
2702
|
function resolveTaskExecutionModel(task, settings) {
|
|
2668
2703
|
return applyTestModeOverrides(
|
|
2669
2704
|
pickFirstModelPair(
|
|
@@ -93681,6 +93716,7 @@ __export(src_exports, {
|
|
|
93681
93716
|
resolveMaxReworkCycles: () => resolveMaxReworkCycles,
|
|
93682
93717
|
resolveMemoryBackend: () => resolveMemoryBackend,
|
|
93683
93718
|
resolveMemoryInstructionContext: () => resolveMemoryInstructionContext,
|
|
93719
|
+
resolveMergerSettingsModel: () => resolveMergerSettingsModel,
|
|
93684
93720
|
resolveOptionalReviewRevisionBudget: () => resolveOptionalReviewRevisionBudget,
|
|
93685
93721
|
resolveOptionalStepRevisionBudget: () => resolveOptionalStepRevisionBudget,
|
|
93686
93722
|
resolvePersistAgentThinkingLog: () => resolvePersistAgentThinkingLog,
|
|
@@ -139771,7 +139807,12 @@ function resolveTitleSummarizerThinkingLevel(settings) {
|
|
|
139771
139807
|
);
|
|
139772
139808
|
}
|
|
139773
139809
|
function resolveMergerThinkingLevel(settings) {
|
|
139774
|
-
return firstThinkingLevel2(
|
|
139810
|
+
return firstThinkingLevel2(
|
|
139811
|
+
settings?.mergerThinkingLevel,
|
|
139812
|
+
settings?.mergerGlobalThinkingLevel,
|
|
139813
|
+
settings?.defaultThinkingLevelOverride,
|
|
139814
|
+
settings?.defaultThinkingLevel
|
|
139815
|
+
);
|
|
139775
139816
|
}
|
|
139776
139817
|
function resolveExecutorFallbackThinkingLevel(taskThinkingLevel, settings) {
|
|
139777
139818
|
return firstThinkingLevel2(
|
|
@@ -139951,8 +139992,8 @@ function resolveMergerSessionModel(settings, assignedAgentRuntimeConfig) {
|
|
|
139951
139992
|
modelId: TEST_MODE_RESOLVED.modelId
|
|
139952
139993
|
};
|
|
139953
139994
|
}
|
|
139954
|
-
const
|
|
139955
|
-
return pickSettingsThenRuntimeModel(
|
|
139995
|
+
const mergerModel = resolveMergerSettingsModel(settings);
|
|
139996
|
+
return pickSettingsThenRuntimeModel(mergerModel, assignedAgentRuntimeConfig);
|
|
139956
139997
|
}
|
|
139957
139998
|
async function createResolvedAgentSession(options) {
|
|
139958
139999
|
const { sessionPurpose, pluginRunner, runtimeHint, runAuditor, settings, ...runtimeOptionsRaw } = options;
|
|
@@ -151069,7 +151110,9 @@ function readHeartbeatTimerRepairMetadata(agent) {
|
|
|
151069
151110
|
return {
|
|
151070
151111
|
repairedAt: typeof candidate.repairedAt === "string" ? candidate.repairedAt : void 0,
|
|
151071
151112
|
staleAtRepair: typeof candidate.staleAtRepair === "boolean" ? candidate.staleAtRepair : void 0,
|
|
151072
|
-
staleRepairReason: typeof candidate.staleRepairReason === "string" ? candidate.staleRepairReason : void 0
|
|
151113
|
+
staleRepairReason: typeof candidate.staleRepairReason === "string" ? candidate.staleRepairReason : void 0,
|
|
151114
|
+
consecutiveNonAdvancingRearms: typeof candidate.consecutiveNonAdvancingRearms === "number" ? candidate.consecutiveNonAdvancingRearms : void 0,
|
|
151115
|
+
nonAdvancingEscalated: typeof candidate.nonAdvancingEscalated === "boolean" ? candidate.nonAdvancingEscalated : void 0
|
|
151073
151116
|
};
|
|
151074
151117
|
}
|
|
151075
151118
|
var MAX_HEARTBEAT_WORKTREE_ACQUISITION_RETRIES, MAX_HEARTBEAT_ERROR_RECOVERY_ATTEMPTS, HEARTBEAT_ERROR_RECOVERY_METADATA_KEY, HEARTBEAT_ERROR_RETRY_EXHAUSTED_PAUSE_REASON, HEARTBEAT_ERROR_UNRECOVERABLE_PAUSE_REASON, promptSizeLog, REPORTS_STALE_INTERVAL_MULTIPLIER, MIN_HEARTBEAT_STALENESS_MS, agentSoulWordsCache, HEARTBEAT_SYSTEM_PROMPT, HEARTBEAT_NO_TASK_SYSTEM_PROMPT, HEARTBEAT_PROCEDURE_STRICT, HEARTBEAT_PROCEDURE_LITE, HEARTBEAT_PROCEDURE_OFF, HEARTBEAT_PROCEDURE, HEARTBEAT_NO_TASK_PROCEDURE_STRICT, HEARTBEAT_NO_TASK_PROCEDURE_LITE, HEARTBEAT_NO_TASK_PROCEDURE_OFF, heartbeatDoneParams, HeartbeatMonitor, OVERDUE_FIRE_JITTER_MS, HeartbeatTriggerScheduler;
|
|
@@ -154031,7 +154074,13 @@ ${trimPromptMd(taskDetail.prompt, promptTemplate)}` : "No PROMPT.md available.",
|
|
|
154031
154074
|
* Absent (legacy/no executor wiring) → treated as never effectively executing. */
|
|
154032
154075
|
isAgentEffectivelyExecuting;
|
|
154033
154076
|
timerAuditIntervalHandle = null;
|
|
154077
|
+
timerAuditWatchdogHandle = null;
|
|
154078
|
+
lastAuditRanAtMs = 0;
|
|
154079
|
+
nonAdvancingRearmState = /* @__PURE__ */ new Map();
|
|
154034
154080
|
static TIMER_AUDIT_INTERVAL_MS = 6e4;
|
|
154081
|
+
static TIMER_AUDIT_WATCHDOG_INTERVAL_MS = 6e4;
|
|
154082
|
+
static TIMER_AUDIT_WATCHDOG_STALE_MS = _HeartbeatTriggerScheduler.TIMER_AUDIT_INTERVAL_MS * 3;
|
|
154083
|
+
static NON_ADVANCING_REARM_ESCALATION_THRESHOLD = 3;
|
|
154035
154084
|
static DEFAULT_REPAIR_STALE_MULTIPLIER = 2;
|
|
154036
154085
|
static DEFAULT_HEARTBEAT_TIMEOUT_MS = 6e4;
|
|
154037
154086
|
constructor(store, callback, taskStore, options) {
|
|
@@ -154048,13 +154097,52 @@ ${trimPromptMd(taskDetail.prompt, promptTemplate)}` : "No PROMPT.md available.",
|
|
|
154048
154097
|
start() {
|
|
154049
154098
|
if (this.running) return;
|
|
154050
154099
|
this.running = true;
|
|
154100
|
+
this.lastAuditRanAtMs = Date.now();
|
|
154051
154101
|
this.watchAssignments();
|
|
154052
154102
|
this.watchAgentLifecycle();
|
|
154053
154103
|
void this.auditTimerRegistrations("start");
|
|
154104
|
+
this.armTimerAuditInterval();
|
|
154105
|
+
this.armTimerAuditWatchdog();
|
|
154106
|
+
heartbeatLog.log("HeartbeatTriggerScheduler started");
|
|
154107
|
+
}
|
|
154108
|
+
armTimerAuditInterval() {
|
|
154109
|
+
if (this.timerAuditIntervalHandle) {
|
|
154110
|
+
clearInterval(this.timerAuditIntervalHandle);
|
|
154111
|
+
this.timerAuditIntervalHandle = null;
|
|
154112
|
+
}
|
|
154113
|
+
if (!this.running) {
|
|
154114
|
+
return;
|
|
154115
|
+
}
|
|
154054
154116
|
this.timerAuditIntervalHandle = setInterval(() => {
|
|
154055
154117
|
void this.auditTimerRegistrations("interval");
|
|
154056
154118
|
}, _HeartbeatTriggerScheduler.TIMER_AUDIT_INTERVAL_MS);
|
|
154057
|
-
|
|
154119
|
+
}
|
|
154120
|
+
armTimerAuditWatchdog() {
|
|
154121
|
+
if (this.timerAuditWatchdogHandle) {
|
|
154122
|
+
clearInterval(this.timerAuditWatchdogHandle);
|
|
154123
|
+
this.timerAuditWatchdogHandle = null;
|
|
154124
|
+
}
|
|
154125
|
+
if (!this.running) {
|
|
154126
|
+
return;
|
|
154127
|
+
}
|
|
154128
|
+
this.timerAuditWatchdogHandle = setInterval(() => {
|
|
154129
|
+
void this.checkTimerAuditLiveness();
|
|
154130
|
+
}, _HeartbeatTriggerScheduler.TIMER_AUDIT_WATCHDOG_INTERVAL_MS);
|
|
154131
|
+
}
|
|
154132
|
+
async checkTimerAuditLiveness() {
|
|
154133
|
+
if (!this.running) {
|
|
154134
|
+
return;
|
|
154135
|
+
}
|
|
154136
|
+
const now = Date.now();
|
|
154137
|
+
const elapsedMs = this.lastAuditRanAtMs > 0 ? now - this.lastAuditRanAtMs : Number.POSITIVE_INFINITY;
|
|
154138
|
+
if (elapsedMs <= _HeartbeatTriggerScheduler.TIMER_AUDIT_WATCHDOG_STALE_MS) {
|
|
154139
|
+
return;
|
|
154140
|
+
}
|
|
154141
|
+
heartbeatLog.warn(
|
|
154142
|
+
`Heartbeat timer audit watchdog re-armed stalled auditor reason=heartbeat-audit-watchdog-rearmed elapsedMs=${elapsedMs} thresholdMs=${_HeartbeatTriggerScheduler.TIMER_AUDIT_WATCHDOG_STALE_MS}`
|
|
154143
|
+
);
|
|
154144
|
+
this.armTimerAuditInterval();
|
|
154145
|
+
await this.auditTimerRegistrations("interval");
|
|
154058
154146
|
}
|
|
154059
154147
|
/**
|
|
154060
154148
|
* Stop the scheduler and clear all timers.
|
|
@@ -154077,6 +154165,12 @@ ${trimPromptMd(taskDetail.prompt, promptTemplate)}` : "No PROMPT.md available.",
|
|
|
154077
154165
|
clearInterval(this.timerAuditIntervalHandle);
|
|
154078
154166
|
this.timerAuditIntervalHandle = null;
|
|
154079
154167
|
}
|
|
154168
|
+
if (this.timerAuditWatchdogHandle) {
|
|
154169
|
+
clearInterval(this.timerAuditWatchdogHandle);
|
|
154170
|
+
this.timerAuditWatchdogHandle = null;
|
|
154171
|
+
}
|
|
154172
|
+
this.lastAuditRanAtMs = 0;
|
|
154173
|
+
this.nonAdvancingRearmState.clear();
|
|
154080
154174
|
heartbeatLog.log("HeartbeatTriggerScheduler stopped");
|
|
154081
154175
|
}
|
|
154082
154176
|
/**
|
|
@@ -154221,6 +154315,7 @@ ${trimPromptMd(taskDetail.prompt, promptTemplate)}` : "No PROMPT.md available.",
|
|
|
154221
154315
|
unregisterAgent(agentId) {
|
|
154222
154316
|
this.registrationEpochs.set(agentId, (this.registrationEpochs.get(agentId) ?? 0) + 1);
|
|
154223
154317
|
this.pendingAssignments.delete(agentId);
|
|
154318
|
+
this.nonAdvancingRearmState.delete(agentId);
|
|
154224
154319
|
if (this.timers.has(agentId)) {
|
|
154225
154320
|
this.clearAgentTimer(agentId);
|
|
154226
154321
|
heartbeatLog.log(`Unregistered timer for ${agentId}`);
|
|
@@ -154542,7 +154637,7 @@ ${trimPromptMd(taskDetail.prompt, promptTemplate)}` : "No PROMPT.md available.",
|
|
|
154542
154637
|
);
|
|
154543
154638
|
return { reaped: true, elapsedMs, thresholdMs };
|
|
154544
154639
|
}
|
|
154545
|
-
async markRepairMetadata(agent, staleAtRepair, staleRepairReason) {
|
|
154640
|
+
async markRepairMetadata(agent, staleAtRepair, staleRepairReason, options) {
|
|
154546
154641
|
const updater = this.store.updateAgent;
|
|
154547
154642
|
if (typeof updater !== "function") {
|
|
154548
154643
|
return;
|
|
@@ -154552,9 +154647,11 @@ ${trimPromptMd(taskDetail.prompt, promptTemplate)}` : "No PROMPT.md available.",
|
|
|
154552
154647
|
const nextRepair = {
|
|
154553
154648
|
repairedAt,
|
|
154554
154649
|
staleAtRepair,
|
|
154555
|
-
...staleAtRepair && staleRepairReason ? { staleRepairReason } : {}
|
|
154650
|
+
...staleAtRepair && staleRepairReason ? { staleRepairReason } : {},
|
|
154651
|
+
...typeof options?.consecutiveNonAdvancingRearms === "number" ? { consecutiveNonAdvancingRearms: options.consecutiveNonAdvancingRearms } : {},
|
|
154652
|
+
...options?.nonAdvancingEscalated ? { nonAdvancingEscalated: true } : {}
|
|
154556
154653
|
};
|
|
154557
|
-
const didChange = existing.repairedAt !== nextRepair.repairedAt || existing.staleAtRepair !== nextRepair.staleAtRepair || existing.staleRepairReason !== nextRepair.staleRepairReason;
|
|
154654
|
+
const didChange = existing.repairedAt !== nextRepair.repairedAt || existing.staleAtRepair !== nextRepair.staleAtRepair || existing.staleRepairReason !== nextRepair.staleRepairReason || existing.consecutiveNonAdvancingRearms !== nextRepair.consecutiveNonAdvancingRearms || existing.nonAdvancingEscalated !== nextRepair.nonAdvancingEscalated;
|
|
154558
154655
|
if (!didChange) {
|
|
154559
154656
|
return;
|
|
154560
154657
|
}
|
|
@@ -154564,6 +154661,7 @@ ${trimPromptMd(taskDetail.prompt, promptTemplate)}` : "No PROMPT.md available.",
|
|
|
154564
154661
|
}
|
|
154565
154662
|
async auditTimerRegistrations(reason = "interval") {
|
|
154566
154663
|
if (!this.running) return;
|
|
154664
|
+
this.lastAuditRanAtMs = Date.now();
|
|
154567
154665
|
try {
|
|
154568
154666
|
const settings = this.taskStore && typeof this.taskStore.getSettings === "function" ? await this.taskStore.getSettings() : null;
|
|
154569
154667
|
const staleMultiplier = this.resolveRepairStaleMultiplier(settings);
|
|
@@ -154573,6 +154671,7 @@ ${trimPromptMd(taskDetail.prompt, promptTemplate)}` : "No PROMPT.md available.",
|
|
|
154573
154671
|
let zombieRearmedCount = 0;
|
|
154574
154672
|
for (const agent of agents) {
|
|
154575
154673
|
if (!this.isTimerEligibleAgent(agent)) {
|
|
154674
|
+
this.nonAdvancingRearmState.delete(agent.id);
|
|
154576
154675
|
if (this.timers.has(agent.id)) {
|
|
154577
154676
|
this.unregisterAgent(agent.id);
|
|
154578
154677
|
heartbeatLog.log(`Timer audit cleared orphaned timer for non-eligible agent ${agent.id} (audit:${reason})`);
|
|
@@ -154583,7 +154682,10 @@ ${trimPromptMd(taskDetail.prompt, promptTemplate)}` : "No PROMPT.md available.",
|
|
|
154583
154682
|
const staleThresholdMs = this.getRepairStaleThresholdMs(agent, staleMultiplier);
|
|
154584
154683
|
const elapsedMs = getHeartbeatAgeMs(agent);
|
|
154585
154684
|
const staleAtRepair = Number.isFinite(elapsedMs) && elapsedMs > staleThresholdMs;
|
|
154586
|
-
if (hasTimerEntry && !staleAtRepair)
|
|
154685
|
+
if (hasTimerEntry && !staleAtRepair) {
|
|
154686
|
+
this.nonAdvancingRearmState.delete(agent.id);
|
|
154687
|
+
continue;
|
|
154688
|
+
}
|
|
154587
154689
|
const isZombieRearm = hasTimerEntry && staleAtRepair;
|
|
154588
154690
|
const activeRun = await this.store.getActiveHeartbeatRun(agent.id);
|
|
154589
154691
|
const activeRunId = activeRun?.id ?? null;
|
|
@@ -154592,6 +154694,7 @@ ${trimPromptMd(taskDetail.prompt, promptTemplate)}` : "No PROMPT.md available.",
|
|
|
154592
154694
|
let activeRunThresholdMs = Number.NaN;
|
|
154593
154695
|
if (activeRun) {
|
|
154594
154696
|
if (settings?.globalPause || settings?.enginePaused) {
|
|
154697
|
+
this.nonAdvancingRearmState.delete(agent.id);
|
|
154595
154698
|
heartbeatLog.log(`Timer audit skipped re-arm for ${agent.id} (active run)`);
|
|
154596
154699
|
continue;
|
|
154597
154700
|
}
|
|
@@ -154600,15 +154703,34 @@ ${trimPromptMd(taskDetail.prompt, promptTemplate)}` : "No PROMPT.md available.",
|
|
|
154600
154703
|
activeRunElapsedMs = reapResult.elapsedMs;
|
|
154601
154704
|
activeRunThresholdMs = reapResult.thresholdMs;
|
|
154602
154705
|
if (!reapedActiveRun) {
|
|
154706
|
+
this.nonAdvancingRearmState.delete(agent.id);
|
|
154603
154707
|
heartbeatLog.log(`Timer audit skipped re-arm for ${agent.id} (active run)`);
|
|
154604
154708
|
continue;
|
|
154605
154709
|
}
|
|
154606
154710
|
}
|
|
154711
|
+
let consecutiveNonAdvancingRearms;
|
|
154712
|
+
let nonAdvancingEscalated = false;
|
|
154713
|
+
let escalationReason;
|
|
154714
|
+
if (isZombieRearm && !settings?.globalPause && !settings?.enginePaused) {
|
|
154715
|
+
const heartbeatMarker = typeof agent.lastHeartbeatAt === "string" ? agent.lastHeartbeatAt : null;
|
|
154716
|
+
const previous = this.nonAdvancingRearmState.get(agent.id);
|
|
154717
|
+
consecutiveNonAdvancingRearms = previous && previous.lastHeartbeatAt === heartbeatMarker ? previous.count + 1 : 1;
|
|
154718
|
+
this.nonAdvancingRearmState.set(agent.id, { lastHeartbeatAt: heartbeatMarker, count: consecutiveNonAdvancingRearms });
|
|
154719
|
+
nonAdvancingEscalated = consecutiveNonAdvancingRearms >= _HeartbeatTriggerScheduler.NON_ADVANCING_REARM_ESCALATION_THRESHOLD;
|
|
154720
|
+
if (nonAdvancingEscalated) {
|
|
154721
|
+
escalationReason = `heartbeat-rearm-nonadvancing-escalated: ${consecutiveNonAdvancingRearms} consecutive zombie re-arms without lastHeartbeatAt advancing`;
|
|
154722
|
+
}
|
|
154723
|
+
} else {
|
|
154724
|
+
this.nonAdvancingRearmState.delete(agent.id);
|
|
154725
|
+
}
|
|
154607
154726
|
this.registerAgent(agent.id, this.getAgentTimerConfig(agent), {
|
|
154608
154727
|
lastHeartbeatAt: agent.lastHeartbeatAt
|
|
154609
154728
|
});
|
|
154610
|
-
const staleRepairReason = staleAtRepair ? isZombieRearm ? `zombie-timer-rearmed: no heartbeat for ${Math.round(elapsedMs / 1e3)}s while a timer entry remained present (threshold ${Math.round(staleThresholdMs / 1e3)}s)` : `No heartbeat for ${Math.round(elapsedMs / 1e3)}s before timer audit repair (threshold ${Math.round(staleThresholdMs / 1e3)}s)` : void 0;
|
|
154611
|
-
await this.markRepairMetadata(agent, staleAtRepair, staleRepairReason
|
|
154729
|
+
const staleRepairReason = staleAtRepair ? escalationReason ? `${escalationReason}; zombie-timer-rearmed: no heartbeat for ${Math.round(elapsedMs / 1e3)}s while a timer entry remained present (threshold ${Math.round(staleThresholdMs / 1e3)}s)` : isZombieRearm ? `zombie-timer-rearmed: no heartbeat for ${Math.round(elapsedMs / 1e3)}s while a timer entry remained present (threshold ${Math.round(staleThresholdMs / 1e3)}s)` : `No heartbeat for ${Math.round(elapsedMs / 1e3)}s before timer audit repair (threshold ${Math.round(staleThresholdMs / 1e3)}s)` : void 0;
|
|
154730
|
+
await this.markRepairMetadata(agent, staleAtRepair, staleRepairReason, {
|
|
154731
|
+
consecutiveNonAdvancingRearms,
|
|
154732
|
+
nonAdvancingEscalated
|
|
154733
|
+
});
|
|
154612
154734
|
rearmedCount++;
|
|
154613
154735
|
if (isZombieRearm) zombieRearmedCount++;
|
|
154614
154736
|
if (reapedActiveRun && activeRunId) {
|
|
@@ -154616,7 +154738,11 @@ ${trimPromptMd(taskDetail.prompt, promptTemplate)}` : "No PROMPT.md available.",
|
|
|
154616
154738
|
`Timer audit re-armed after stale-run reap reason=timer-audit-rearmed agentId=${agent.id} runId=${activeRunId} elapsedMs=${activeRunElapsedMs} thresholdMs=${activeRunThresholdMs}`
|
|
154617
154739
|
);
|
|
154618
154740
|
}
|
|
154619
|
-
if (
|
|
154741
|
+
if (nonAdvancingEscalated) {
|
|
154742
|
+
heartbeatLog.warn(
|
|
154743
|
+
`Timer audit escalated non-advancing zombie re-arm reason=heartbeat-rearm-nonadvancing-escalated agentId=${agent.id} count=${consecutiveNonAdvancingRearms} threshold=${_HeartbeatTriggerScheduler.NON_ADVANCING_REARM_ESCALATION_THRESHOLD} (audit:${reason}): ${staleRepairReason}`
|
|
154744
|
+
);
|
|
154745
|
+
} else if (isZombieRearm) {
|
|
154620
154746
|
heartbeatLog.warn(`Timer audit force re-armed non-advancing agent ${agent.id} reason=zombie-timer-rearmed (audit:${reason}): ${staleRepairReason}`);
|
|
154621
154747
|
} else if (staleAtRepair) {
|
|
154622
154748
|
heartbeatLog.warn(`Timer re-armed stale agent ${agent.id} (audit:${reason}): ${staleRepairReason ?? "heartbeat exceeded stale threshold before repair"}`);
|
|
@@ -190140,12 +190266,43 @@ function canonicalizePath2(path7) {
|
|
|
190140
190266
|
return resolvePath(path7);
|
|
190141
190267
|
}
|
|
190142
190268
|
}
|
|
190269
|
+
function countExecuteRequeueTerminalSteps(live) {
|
|
190270
|
+
return live.steps?.filter((step) => step.status === "done" || step.status === "skipped").length ?? 0;
|
|
190271
|
+
}
|
|
190272
|
+
function parseExecuteRequeueLoopProgressSignature(signature) {
|
|
190273
|
+
if (!signature) return null;
|
|
190274
|
+
try {
|
|
190275
|
+
const parsed = JSON.parse(signature);
|
|
190276
|
+
if (typeof parsed.terminalStepCount !== "number" || typeof parsed.totalSteps !== "number") return null;
|
|
190277
|
+
return {
|
|
190278
|
+
terminalStepCount: parsed.terminalStepCount,
|
|
190279
|
+
totalSteps: parsed.totalSteps
|
|
190280
|
+
};
|
|
190281
|
+
} catch {
|
|
190282
|
+
return null;
|
|
190283
|
+
}
|
|
190284
|
+
}
|
|
190143
190285
|
function buildExecuteRequeueLoopSignature(live) {
|
|
190144
190286
|
return JSON.stringify({
|
|
190145
|
-
|
|
190146
|
-
|
|
190287
|
+
terminalStepCount: countExecuteRequeueTerminalSteps(live),
|
|
190288
|
+
totalSteps: live.steps?.length ?? 0
|
|
190147
190289
|
});
|
|
190148
190290
|
}
|
|
190291
|
+
function buildExecuteRequeueLoopHighWaterSignature(live, previousSignature) {
|
|
190292
|
+
const current = parseExecuteRequeueLoopProgressSignature(buildExecuteRequeueLoopSignature(live));
|
|
190293
|
+
const currentTerminalStepCount = current?.terminalStepCount ?? countExecuteRequeueTerminalSteps(live);
|
|
190294
|
+
const totalSteps = current?.totalSteps ?? (live.steps?.length ?? 0);
|
|
190295
|
+
const previous = parseExecuteRequeueLoopProgressSignature(previousSignature);
|
|
190296
|
+
const previousTerminalStepCount = previous?.terminalStepCount ?? currentTerminalStepCount;
|
|
190297
|
+
const madeForwardProgress = previous != null && currentTerminalStepCount > previousTerminalStepCount;
|
|
190298
|
+
return {
|
|
190299
|
+
madeForwardProgress,
|
|
190300
|
+
signature: JSON.stringify({
|
|
190301
|
+
terminalStepCount: Math.max(previousTerminalStepCount, currentTerminalStepCount),
|
|
190302
|
+
totalSteps
|
|
190303
|
+
})
|
|
190304
|
+
};
|
|
190305
|
+
}
|
|
190149
190306
|
function isTransientMissingTaskJsonError(error48, task) {
|
|
190150
190307
|
if (error48 instanceof TaskDeletedError) {
|
|
190151
190308
|
return false;
|
|
@@ -196713,8 +196870,8 @@ Graph value: ${failureValue}` : ""}`, budget.key),
|
|
|
196713
196870
|
await this.persistTokenUsage(task.id);
|
|
196714
196871
|
return;
|
|
196715
196872
|
}
|
|
196716
|
-
const signature =
|
|
196717
|
-
const nextCount = live.executeRequeueLoopSignature
|
|
196873
|
+
const { signature, madeForwardProgress } = buildExecuteRequeueLoopHighWaterSignature(live, live.executeRequeueLoopSignature);
|
|
196874
|
+
const nextCount = madeForwardProgress || live.executeRequeueLoopSignature == null ? 1 : (live.executeRequeueLoopCount ?? 0) + 1;
|
|
196718
196875
|
if (live.executeRequeueLoopCount !== nextCount || live.executeRequeueLoopSignature !== signature) {
|
|
196719
196876
|
await this.store.updateTask(task.id, {
|
|
196720
196877
|
executeRequeueLoopCount: nextCount,
|
|
@@ -5670,10 +5670,13 @@ interface GlobalSettings {
|
|
|
5670
5670
|
validatorGlobalModelId?: string;
|
|
5671
5671
|
titleSummarizerGlobalProvider?: string;
|
|
5672
5672
|
titleSummarizerGlobalModelId?: string;
|
|
5673
|
+
mergerGlobalProvider?: string;
|
|
5674
|
+
mergerGlobalModelId?: string;
|
|
5673
5675
|
executionGlobalThinkingLevel?: ThinkingLevel;
|
|
5674
5676
|
planningGlobalThinkingLevel?: ThinkingLevel;
|
|
5675
5677
|
validatorGlobalThinkingLevel?: ThinkingLevel;
|
|
5676
5678
|
titleSummarizerGlobalThinkingLevel?: ThinkingLevel;
|
|
5679
|
+
mergerGlobalThinkingLevel?: ThinkingLevel;
|
|
5677
5680
|
daemonToken?: string;
|
|
5678
5681
|
daemonPort?: number;
|
|
5679
5682
|
daemonHost?: string;
|
|
@@ -5830,6 +5833,7 @@ interface ProjectSettings {
|
|
|
5830
5833
|
showWorktreeGrouping?: boolean;
|
|
5831
5834
|
openTasksInRightSidebar?: boolean;
|
|
5832
5835
|
openMobileTasksInPopup?: boolean;
|
|
5836
|
+
taskPopupsBoardListOnly?: boolean;
|
|
5833
5837
|
showCostBadgeOnCards?: boolean;
|
|
5834
5838
|
taskDetailChatFirst?: boolean;
|
|
5835
5839
|
executorAllowSiblingBranchRename?: boolean;
|
|
@@ -6011,6 +6015,9 @@ interface ProjectSettings {
|
|
|
6011
6015
|
titleSummarizerProvider?: string;
|
|
6012
6016
|
titleSummarizerModelId?: string;
|
|
6013
6017
|
titleSummarizerThinkingLevel?: ThinkingLevel;
|
|
6018
|
+
mergerProvider?: string;
|
|
6019
|
+
mergerModelId?: string;
|
|
6020
|
+
mergerThinkingLevel?: ThinkingLevel;
|
|
6014
6021
|
titleSummarizerFallbackProvider?: string;
|
|
6015
6022
|
titleSummarizerFallbackModelId?: string;
|
|
6016
6023
|
titleSummarizerFallbackThinkingLevel?: ThinkingLevel;
|
|
@@ -5,11 +5,6 @@ var __export = (target, all) => {
|
|
|
5
5
|
};
|
|
6
6
|
|
|
7
7
|
// ../plugin-sdk/src/index.ts
|
|
8
|
-
import {
|
|
9
|
-
WORKFLOW_EXTENSION_SCHEMA_VERSION,
|
|
10
|
-
workflowExtensionRegistryId,
|
|
11
|
-
createBoardActionServices
|
|
12
|
-
} from "@fusion/core";
|
|
13
8
|
function definePlugin(plugin2) {
|
|
14
9
|
return plugin2;
|
|
15
10
|
}
|
|
@@ -16349,7 +16344,6 @@ var RequestError = class _RequestError extends Error {
|
|
|
16349
16344
|
|
|
16350
16345
|
// ../../plugins/fusion-plugin-acp-runtime/src/process-manager.ts
|
|
16351
16346
|
import { spawn } from "node:child_process";
|
|
16352
|
-
import { redactSecrets } from "@fusion/core";
|
|
16353
16347
|
function debugLog(message) {
|
|
16354
16348
|
if (process.env.PI_ACP_DEBUG !== "1") return;
|
|
16355
16349
|
console.error(`[acp-runtime] ${message}`);
|
|
@@ -129072,11 +129072,6 @@ var init_openai_responses = __esm({
|
|
|
129072
129072
|
});
|
|
129073
129073
|
|
|
129074
129074
|
// ../plugin-sdk/src/index.ts
|
|
129075
|
-
import {
|
|
129076
|
-
WORKFLOW_EXTENSION_SCHEMA_VERSION,
|
|
129077
|
-
workflowExtensionRegistryId,
|
|
129078
|
-
createBoardActionServices
|
|
129079
|
-
} from "@fusion/core";
|
|
129080
129075
|
function definePlugin(plugin2) {
|
|
129081
129076
|
return plugin2;
|
|
129082
129077
|
}
|
|
@@ -5,11 +5,6 @@ var __export = (target, all) => {
|
|
|
5
5
|
};
|
|
6
6
|
|
|
7
7
|
// ../plugin-sdk/src/index.ts
|
|
8
|
-
import {
|
|
9
|
-
WORKFLOW_EXTENSION_SCHEMA_VERSION,
|
|
10
|
-
workflowExtensionRegistryId,
|
|
11
|
-
createBoardActionServices
|
|
12
|
-
} from "@fusion/core";
|
|
13
8
|
function definePlugin(plugin2) {
|
|
14
9
|
return plugin2;
|
|
15
10
|
}
|
|
@@ -16337,7 +16332,6 @@ var RequestError = class _RequestError extends Error {
|
|
|
16337
16332
|
|
|
16338
16333
|
// ../../plugins/fusion-plugin-grok-runtime/src/acp/process-manager.ts
|
|
16339
16334
|
import { spawn } from "node:child_process";
|
|
16340
|
-
import { redactSecrets } from "@fusion/core";
|
|
16341
16335
|
function debugLog(message) {
|
|
16342
16336
|
if (process.env.PI_ACP_DEBUG !== "1" && process.env.FUSION_GROK_ACP_DEBUG !== "1") return;
|
|
16343
16337
|
console.error(`[grok-acp] ${message}`);
|