@runfusion/fusion 0.48.0 → 0.50.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 +43336 -15114
- package/dist/client/.vite/manifest.json +250 -249
- package/dist/client/assets/AgentDetailView-BzSyldiW.css +1 -0
- package/dist/client/assets/{AgentDetailView-CF6isJ51.js → AgentDetailView-D2oYUApl.js} +5 -5
- package/dist/client/assets/{AgentPermissionPolicyEditor-DFldf6aS.js → AgentPermissionPolicyEditor-DGgx46f3.js} +1 -1
- package/dist/client/assets/AgentsView-Dhf5Vq_T.js +29 -0
- package/dist/client/assets/ChatView-DpgpxHva.js +19 -0
- package/dist/client/assets/ChatView-DwIIrJxb.css +1 -0
- package/dist/client/assets/CommandCenter-B9q-zM9p.css +1 -0
- package/dist/client/assets/CommandCenter-DzQhGq_J.js +71 -0
- package/dist/client/assets/{DevServerView-D6RFaGPU.js → DevServerView-DjJYp6Jj.js} +1 -1
- package/dist/client/assets/{DirectoryPicker-DNBB-viz.js → DirectoryPicker-CYPYp9T4.js} +1 -1
- package/dist/client/assets/{DocumentsView-DXG-sctG.js → DocumentsView-CeQVRVdp.js} +1 -1
- package/dist/client/assets/{EvalsView-Ol6ECKz5.js → EvalsView-D250mVR5.js} +1 -1
- package/dist/client/assets/{ExperimentalAgentOnboardingModal-BQc3GaE_.js → ExperimentalAgentOnboardingModal-B1EEY_bl.js} +1 -1
- package/dist/client/assets/{GoalsView-C_m90anC.js → GoalsView-MftVwE9g.js} +1 -1
- package/dist/client/assets/{InsightsView-BbFgPsDH.js → InsightsView-CbWItYe8.js} +1 -1
- package/dist/client/assets/{MemoryView-CRS7AjWK.js → MemoryView-Ct0nOTES.js} +1 -1
- package/dist/client/assets/{PiExtensionsManager-BEj5xu45.js → PiExtensionsManager-DSQwngX-.js} +1 -1
- package/dist/client/assets/{PluginManager-CzCM3XUY.js → PluginManager-DqLxCiNg.js} +1 -1
- package/dist/client/assets/{PullRequestView-9yNYCunb.js → PullRequestView-D0WgwdAi.js} +1 -1
- package/dist/client/assets/{ResearchView-BKdirpiw.js → ResearchView-CJQL9XKC.js} +1 -1
- package/dist/client/assets/{SecretsView-qGjo-0Cp.js → SecretsView-ChN9aTbi.js} +1 -1
- package/dist/client/assets/{SessionTerminal-C7YlkdGJ.js → SessionTerminal-BVon9kbr.js} +1 -1
- package/dist/client/assets/SettingsModal-B4WANQnu.js +21 -0
- package/dist/client/assets/{SettingsModal-CvbiSIHS.css → SettingsModal-BzZNPNIh.css} +1 -1
- package/dist/client/assets/{SettingsModal-DihNd7g8.js → SettingsModal-CIC5jhgo.js} +1 -1
- package/dist/client/assets/SettingsModal-tUDR6nJ9.css +1 -0
- package/dist/client/assets/{SetupWizardModal-MovTj5pY.js → SetupWizardModal-C6EGjmbd.js} +2 -2
- package/dist/client/assets/{ShadcnColorPicker-Bnf5n5R4.js → ShadcnColorPicker-4e_aXoGX.js} +1 -1
- package/dist/client/assets/{ShadcnColorPicker-pqVWCC5-.css → ShadcnColorPicker-CzZo9UOD.css} +1 -1
- package/dist/client/assets/SkillsView-Dz8dDwfP.js +1 -0
- package/dist/client/assets/SkillsView-tAW7TTCz.css +1 -0
- package/dist/client/assets/{TodoView-CIsL_uvQ.css → TodoView--YoVYWvw.css} +1 -1
- package/dist/client/assets/{TodoView-BEdk6FTU.js → TodoView-DvJFzoOv.js} +1 -1
- package/dist/client/assets/WorkflowNodeEditor-DrdTCstS.js +8 -0
- package/dist/client/assets/WorkflowNodeEditor-WYIxHTxY.css +1 -0
- package/dist/client/assets/{agentSkills-D5nDZPRY.js → agentSkills-B2dD5Nm5.js} +1 -1
- package/dist/client/assets/app-BYq4S7Cb.js +13 -0
- package/dist/client/assets/app-D27ewSC0.js +13 -0
- package/dist/client/assets/app-DFLDkeOE.js +13 -0
- package/dist/client/assets/app-OPrfgjjn.js +13 -0
- package/dist/client/assets/app-dATBczl3.js +13 -0
- package/dist/client/assets/{app-D_IT9Buz.js → app-k1K9zAjp.js} +3 -3
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-BbkXWBni.js → architectureDiagram-3BPJPVTR-ClO0MnzR.js} +1 -1
- package/dist/client/assets/{blockDiagram-GPEHLZMM-DhaqpHqZ.js → blockDiagram-GPEHLZMM-C4cyy4WE.js} +1 -1
- package/dist/client/assets/{c4Diagram-AAUBKEIU-qC0WSHMZ.js → c4Diagram-AAUBKEIU-NHPC9TJo.js} +1 -1
- package/dist/client/assets/channel-Q2WKocEP.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-Dah9zMeT.js → chunk-2J33WTMH-CGYIKTVR.js} +1 -1
- package/dist/client/assets/{chunk-4BX2VUAB-epHwnUb_.js → chunk-4BX2VUAB-BkCCD0tE.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-DpYBy44g.js → chunk-55IACEB6-Be3yOIDe.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-B9b8698e.js → chunk-727SXJPM-DxjyMaQQ.js} +1 -1
- package/dist/client/assets/{chunk-AQP2D5EJ-DrM8nnhR.js → chunk-AQP2D5EJ-BC0PjN0W.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-jyT6Scwe.js → chunk-FMBD7UC4-DoWxmM8k.js} +1 -1
- package/dist/client/assets/{chunk-ND2GUHAM-EoPfF-PK.js → chunk-ND2GUHAM-EOpuc9pP.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-qMwLVfgJ.js → chunk-QZHKN3VN-DiRyx9QZ.js} +1 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-CPFl2Aqd.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CPFl2Aqd.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-DmPFKoVD.js → cose-bilkent-S5V4N54A-CfVoUUxT.js} +1 -1
- package/dist/client/assets/{dagre-BM42HDAG-DeHxd-ej.js → dagre-BM42HDAG-BfILvxLb.js} +1 -1
- package/dist/client/assets/{dashboard-view-DXjNQ5IF.js → dashboard-view-C9YIcx-O.js} +2 -2
- package/dist/client/assets/{dashboard-view-Cw5mMJay.js → dashboard-view-wFC1pe4d.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-C04A2mhr.js → diagram-2AECGRRQ-6mdmbH-5.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-DqtOwADI.js → diagram-5GNKFQAL-CY7MMwO1.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-CH0har-Z.js → diagram-KO2AKTUF-D05XnQqd.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47-CxN-U-0W.js → diagram-LMA3HP47-B18FTOJG.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-42A7wpwF.js → diagram-OG6HWLK6-xmXlYf5m.js} +1 -1
- package/dist/client/assets/{erDiagram-TEJ5UH35-CnZI5YlN.js → erDiagram-TEJ5UH35-4XlgVLCs.js} +1 -1
- package/dist/client/assets/{flowDiagram-I6XJVG4X-BKfQhMVF.js → flowDiagram-I6XJVG4X-BYl3ps7f.js} +1 -1
- package/dist/client/assets/{folder-open-STXgbemw.js → folder-open-BH6FwmO7.js} +1 -1
- package/dist/client/assets/{ganttDiagram-6RSMTGT7-BfA0pME8.js → ganttDiagram-6RSMTGT7-4vxuH9Dx.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-BgDFB7PS.js → gitGraphDiagram-PVQCEYII-BESmFgXT.js} +1 -1
- package/dist/client/assets/index-B9jtBwFy.css +1 -0
- package/dist/client/assets/index-DFeBJ3GM.js +1302 -0
- package/dist/client/assets/{infoDiagram-5YYISTIA-Bb5F155s.js → infoDiagram-5YYISTIA-DvjdjtwB.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-8Oati7l_.js → ishikawaDiagram-YF4QCWOH-Cis5IoEm.js} +1 -1
- package/dist/client/assets/{journeyDiagram-JHISSGLW-DhHTHXTM.js → journeyDiagram-JHISSGLW-C20pB1W8.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-BWB9EtUX.js → kanban-definition-UN3LZRKU-CiVfCeU3.js} +1 -1
- package/dist/client/assets/{mermaid.core-BD-L2gUQ.js → mermaid.core-CW0vCXA6.js} +4 -4
- package/dist/client/assets/{mindmap-definition-RKZ34NQL-BSKGd7LE.js → mindmap-definition-RKZ34NQL-E5rPHUdw.js} +1 -1
- package/dist/client/assets/{pieDiagram-4H26LBE5-BtBFPvSW.js → pieDiagram-4H26LBE5-DVIFbPjH.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-aWQWYPto.js → quadrantDiagram-W4KKPZXB-C8qPRe_x.js} +1 -1
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-CprlEpIa.js → requirementDiagram-4Y6WPE33-DQ-pwXh3.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-Cw-AcRAV.js → sankeyDiagram-5OEKKPKP-BnghLuUc.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-BMW5slyv.js → sequenceDiagram-3UESZ5HK-ChlGxGVk.js} +1 -1
- package/dist/client/assets/{shield-alert-Bzf8yNOc.js → shield-alert-BfOnDO6O.js} +1 -1
- package/dist/client/assets/{stateDiagram-AJRCARHV-CcxvIVwM.js → stateDiagram-AJRCARHV-ByUvNEch.js} +1 -1
- package/dist/client/assets/{stateDiagram-v2-BHNVJYJU-awOfoFOB.js → stateDiagram-v2-BHNVJYJU-Df38ITSP.js} +1 -1
- package/dist/client/assets/{timeline-definition-PNZ67QCA-DIEAc2YP.js → timeline-definition-PNZ67QCA-bsAGc83D.js} +1 -1
- package/dist/client/assets/{upload-DuwyPTKe.js → upload-BK1crTqn.js} +1 -1
- package/dist/client/assets/{users-D1Qhfyro.js → users-DW8jC2Z9.js} +1 -1
- package/dist/client/assets/{vennDiagram-CIIHVFJN-DOkqg5Wi.js → vennDiagram-CIIHVFJN-BBIj6LFN.js} +1 -1
- package/dist/client/assets/{wardley-L42UT6IY-DoPK1Q6d.js → wardley-L42UT6IY-De6JFroy.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-l1vun-m2.js → wardleyDiagram-YWT4CUSO-P1LOLx0_.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-DcUOUKvl.js → xychartDiagram-2RQKCTM6-v1G4ki6U.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/client/version.json +1 -1
- package/dist/droid-cli/package.json +6 -25
- package/dist/extension.js +37091 -9900
- package/dist/pi-claude-cli/index.ts +26 -22
- package/dist/pi-claude-cli/package.json +6 -20
- package/dist/pi-claude-cli/src/mcp-config.ts +58 -7
- package/dist/plugin-sdk/index.d.ts +246 -186
- package/dist/plugins/fusion-plugin-acp-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-cli-printing-press/package.json +2 -9
- package/dist/plugins/fusion-plugin-compound-engineering/bundled.js +250 -19
- 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 +2 -10
- package/dist/plugins/fusion-plugin-roadmap/package.json +1 -1
- package/dist/plugins/fusion-plugin-whatsapp-chat/package.json +3 -15
- package/package.json +1 -1
- package/skill/fusion/references/engine-tools.md +5 -1
- package/dist/client/assets/AgentDetailView-CgbB51Iw.css +0 -1
- package/dist/client/assets/AgentsView-DiGseTuo.js +0 -29
- package/dist/client/assets/ChatView-BjQBbDyo.js +0 -19
- package/dist/client/assets/ChatView-BtjkE0V7.css +0 -1
- package/dist/client/assets/CommandCenter-DDjpYkPe.css +0 -1
- package/dist/client/assets/CommandCenter-DwpiADSX.js +0 -71
- package/dist/client/assets/SettingsModal-DpaptT6t.js +0 -21
- package/dist/client/assets/SettingsModal-ino68pI2.css +0 -1
- package/dist/client/assets/SkillsView-Br2LkA3x.js +0 -1
- package/dist/client/assets/SkillsView-CJ8snrma.css +0 -1
- package/dist/client/assets/WorkflowNodeEditor-BOouksjw.css +0 -1
- package/dist/client/assets/WorkflowNodeEditor-e-eR6yzw.js +0 -8
- package/dist/client/assets/app-BM6bAO0b.js +0 -13
- package/dist/client/assets/app-BglOELbc.js +0 -13
- package/dist/client/assets/app-ChkCVQpq.js +0 -13
- package/dist/client/assets/app-DMn7Jt9g.js +0 -13
- package/dist/client/assets/app-S8fehQv8.js +0 -13
- package/dist/client/assets/channel-CCKvUami.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-C_HqY7AI.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-C_HqY7AI.js +0 -1
- package/dist/client/assets/index-BnfnLXyO.css +0 -1
- package/dist/client/assets/index-CHy0WNjH.js +0 -1301
|
@@ -366,6 +366,8 @@ declare class DatabaseSync {
|
|
|
366
366
|
constructor(path: string);
|
|
367
367
|
exec(sql: string): void;
|
|
368
368
|
close(): void;
|
|
369
|
+
serialize(): Uint8Array;
|
|
370
|
+
deserialize(data: Uint8Array): void;
|
|
369
371
|
prepare(sql: string): SqliteStatement;
|
|
370
372
|
}
|
|
371
373
|
|
|
@@ -980,11 +982,13 @@ declare class MissionStore extends EventEmitter<MissionStoreEvents> {
|
|
|
980
982
|
branch?: string;
|
|
981
983
|
baseBranch?: string;
|
|
982
984
|
assignmentMode?: "shared" | "per-task-derived";
|
|
985
|
+
workflowId?: string | null;
|
|
983
986
|
}): Promise<MissionFeature>;
|
|
984
987
|
triageSlice(sliceId: string, branchOptions?: {
|
|
985
988
|
branch?: string;
|
|
986
989
|
baseBranch?: string;
|
|
987
990
|
assignmentMode?: "shared" | "per-task-derived";
|
|
991
|
+
workflowId?: string | null;
|
|
988
992
|
}): Promise<MissionFeature[]>;
|
|
989
993
|
computeSliceStatus(sliceId: string): SliceStatus;
|
|
990
994
|
computeMilestoneStatus(milestoneId: string): MilestoneStatus;
|
|
@@ -1047,6 +1051,7 @@ declare class PluginStore extends EventEmitter<PluginStoreEvents> {
|
|
|
1047
1051
|
});
|
|
1048
1052
|
private get localDb();
|
|
1049
1053
|
private get centralDb();
|
|
1054
|
+
close(): void;
|
|
1050
1055
|
init(): Promise<void>;
|
|
1051
1056
|
private validateIdFormat;
|
|
1052
1057
|
private validateSettingsAgainstSchema;
|
|
@@ -2167,6 +2172,12 @@ interface EnsureGitRepositoryOptions {
|
|
|
2167
2172
|
}
|
|
2168
2173
|
declare function ensureGitRepositoryForProjectPath(projectPath: string, options?: EnsureGitRepositoryOptions): Promise<GitRepositoryEnsureOutcome>;
|
|
2169
2174
|
|
|
2175
|
+
type RunningAgentCountSource = (projectIds: readonly string[]) => Promise<Record<string, number>> | Record<string, number>;
|
|
2176
|
+
interface RunningAgentCounts {
|
|
2177
|
+
currentlyActive: number;
|
|
2178
|
+
projectsActive: Record<string, number>;
|
|
2179
|
+
}
|
|
2180
|
+
|
|
2170
2181
|
interface CentralCoreEvents {
|
|
2171
2182
|
"project:registered": [project: RegisteredProject];
|
|
2172
2183
|
"project:reattached": [project: RegisteredProject, reason: string];
|
|
@@ -2386,6 +2397,9 @@ declare class CentralCore extends EventEmitter<CentralCoreEvents> {
|
|
|
2386
2397
|
getDefaultProjectId(): Promise<string | undefined>;
|
|
2387
2398
|
setDefaultProjectId(projectId: string | null): Promise<void>;
|
|
2388
2399
|
getGlobalConcurrencyState(): Promise<GlobalConcurrencyState>;
|
|
2400
|
+
getLiveRunningAgentCounts(options?: {
|
|
2401
|
+
source?: RunningAgentCountSource;
|
|
2402
|
+
}): Promise<RunningAgentCounts>;
|
|
2389
2403
|
updateGlobalConcurrency(updates: Partial<Pick<GlobalConcurrencyState, "globalMaxConcurrent" | "currentlyActive" | "queuedCount">>): Promise<GlobalConcurrencyState>;
|
|
2390
2404
|
acquireGlobalSlot(projectId: string): Promise<boolean>;
|
|
2391
2405
|
releaseGlobalSlot(projectId: string): Promise<void>;
|
|
@@ -2436,157 +2450,6 @@ declare class CentralCore extends EventEmitter<CentralCoreEvents> {
|
|
|
2436
2450
|
private rowToSettingsSyncState;
|
|
2437
2451
|
}
|
|
2438
2452
|
|
|
2439
|
-
declare class CentralDatabase implements CentralClaimStore {
|
|
2440
|
-
private db;
|
|
2441
|
-
private readonly dbPath;
|
|
2442
|
-
private readonly globalDir;
|
|
2443
|
-
private transactionDepth;
|
|
2444
|
-
private readonly busyTimeoutMs;
|
|
2445
|
-
private readonly lockRecoveryWindowMs;
|
|
2446
|
-
private readonly lockRecoveryDelayMs;
|
|
2447
|
-
constructor(globalDir?: string, options?: {
|
|
2448
|
-
busyTimeoutMs?: number;
|
|
2449
|
-
lockRecoveryWindowMs?: number;
|
|
2450
|
-
lockRecoveryDelayMs?: number;
|
|
2451
|
-
});
|
|
2452
|
-
init(): void;
|
|
2453
|
-
private hasColumn;
|
|
2454
|
-
close(): void;
|
|
2455
|
-
private runWithLockRecovery;
|
|
2456
|
-
transaction<T>(fn: () => T): T;
|
|
2457
|
-
private mapTaskClaimRow;
|
|
2458
|
-
getTaskClaim(projectId: string, taskId: string): TaskClaimRow | null;
|
|
2459
|
-
tryClaimTask(input: {
|
|
2460
|
-
projectId: string;
|
|
2461
|
-
taskId: string;
|
|
2462
|
-
nodeId: string;
|
|
2463
|
-
agentId: string;
|
|
2464
|
-
runId: string | null;
|
|
2465
|
-
renewedAt: string;
|
|
2466
|
-
expectedEpoch?: number | null;
|
|
2467
|
-
}): {
|
|
2468
|
-
ok: true;
|
|
2469
|
-
claim: TaskClaimRow;
|
|
2470
|
-
} | {
|
|
2471
|
-
ok: false;
|
|
2472
|
-
reason: "conflict";
|
|
2473
|
-
current: TaskClaimRow;
|
|
2474
|
-
};
|
|
2475
|
-
renewTaskClaim(input: {
|
|
2476
|
-
projectId: string;
|
|
2477
|
-
taskId: string;
|
|
2478
|
-
nodeId: string;
|
|
2479
|
-
agentId: string;
|
|
2480
|
-
runId: string | null;
|
|
2481
|
-
renewedAt: string;
|
|
2482
|
-
expectedEpoch: number;
|
|
2483
|
-
}): {
|
|
2484
|
-
ok: true;
|
|
2485
|
-
claim: TaskClaimRow;
|
|
2486
|
-
} | {
|
|
2487
|
-
ok: false;
|
|
2488
|
-
reason: "conflict" | "not_found";
|
|
2489
|
-
current: TaskClaimRow | null;
|
|
2490
|
-
};
|
|
2491
|
-
releaseTaskClaim(input: {
|
|
2492
|
-
projectId: string;
|
|
2493
|
-
taskId: string;
|
|
2494
|
-
nodeId: string;
|
|
2495
|
-
agentId: string;
|
|
2496
|
-
}): {
|
|
2497
|
-
ok: true;
|
|
2498
|
-
} | {
|
|
2499
|
-
ok: false;
|
|
2500
|
-
reason: "not_owner" | "not_found";
|
|
2501
|
-
current: TaskClaimRow | null;
|
|
2502
|
-
};
|
|
2503
|
-
prepare(sql: string): Statement;
|
|
2504
|
-
exec(sql: string): void;
|
|
2505
|
-
getLastModified(): number;
|
|
2506
|
-
bumpLastModified(): void;
|
|
2507
|
-
getSchemaVersion(): number;
|
|
2508
|
-
getPath(): string;
|
|
2509
|
-
getGlobalDir(): string;
|
|
2510
|
-
}
|
|
2511
|
-
|
|
2512
|
-
type MasterKeyProvider = () => Promise<Buffer>;
|
|
2513
|
-
|
|
2514
|
-
type SecretScope = "project" | "global";
|
|
2515
|
-
type SecretAccessPolicy$1 = "auto" | "prompt" | "deny";
|
|
2516
|
-
interface SecretRecord {
|
|
2517
|
-
id: string;
|
|
2518
|
-
key: string;
|
|
2519
|
-
scope: SecretScope;
|
|
2520
|
-
description: string | null;
|
|
2521
|
-
accessPolicy: SecretAccessPolicy$1;
|
|
2522
|
-
envExportable: boolean;
|
|
2523
|
-
envExportKey: string | null;
|
|
2524
|
-
createdAt: string;
|
|
2525
|
-
updatedAt: string;
|
|
2526
|
-
lastReadAt: string | null;
|
|
2527
|
-
lastReadBy: string | null;
|
|
2528
|
-
}
|
|
2529
|
-
interface EnvExportableSecret {
|
|
2530
|
-
id: string;
|
|
2531
|
-
key: string;
|
|
2532
|
-
exportKey: string;
|
|
2533
|
-
scope: SecretScope;
|
|
2534
|
-
plaintextValue: string;
|
|
2535
|
-
}
|
|
2536
|
-
type SecretsStoreAuditEvent = {
|
|
2537
|
-
mutationType: "secret:create" | "secret:update" | "secret:delete" | "secret:read";
|
|
2538
|
-
scope: SecretScope;
|
|
2539
|
-
secretId: string;
|
|
2540
|
-
key: string;
|
|
2541
|
-
actor?: {
|
|
2542
|
-
agentId?: string | null;
|
|
2543
|
-
userId?: string | null;
|
|
2544
|
-
};
|
|
2545
|
-
};
|
|
2546
|
-
interface SecretsStoreOptions {
|
|
2547
|
-
auditEmitter?: (event: SecretsStoreAuditEvent) => void;
|
|
2548
|
-
}
|
|
2549
|
-
declare class SecretsStore {
|
|
2550
|
-
private readonly projectDb;
|
|
2551
|
-
private readonly centralDb;
|
|
2552
|
-
private readonly options;
|
|
2553
|
-
private readonly cipher;
|
|
2554
|
-
constructor(projectDb: Pick<Database, "prepare" | "bumpLastModified">, centralDb: Pick<CentralDatabase, "prepare" | "bumpLastModified">, masterKeyProvider: MasterKeyProvider, options?: SecretsStoreOptions);
|
|
2555
|
-
private emitAudit;
|
|
2556
|
-
private dbForScope;
|
|
2557
|
-
private rowToRecord;
|
|
2558
|
-
listSecrets(scope?: SecretScope): SecretRecord[];
|
|
2559
|
-
listEnvExportable(opts?: {
|
|
2560
|
-
keyPrefix?: string;
|
|
2561
|
-
}): Promise<EnvExportableSecret[]>;
|
|
2562
|
-
getSecretMetadata(id: string, scope: SecretScope): SecretRecord | null;
|
|
2563
|
-
createSecret(input: {
|
|
2564
|
-
scope: SecretScope;
|
|
2565
|
-
key: string;
|
|
2566
|
-
plaintextValue: string;
|
|
2567
|
-
description?: string | null;
|
|
2568
|
-
accessPolicy?: SecretAccessPolicy$1;
|
|
2569
|
-
envExportable?: boolean;
|
|
2570
|
-
envExportKey?: string | null;
|
|
2571
|
-
}): Promise<SecretRecord>;
|
|
2572
|
-
updateSecret(id: string, scope: SecretScope, patch: {
|
|
2573
|
-
key?: string;
|
|
2574
|
-
plaintextValue?: string;
|
|
2575
|
-
description?: string | null;
|
|
2576
|
-
accessPolicy?: SecretAccessPolicy$1;
|
|
2577
|
-
envExportable?: boolean;
|
|
2578
|
-
envExportKey?: string | null;
|
|
2579
|
-
}): Promise<SecretRecord>;
|
|
2580
|
-
deleteSecret(id: string, scope: SecretScope): void;
|
|
2581
|
-
revealSecret(id: string, scope: SecretScope, reader: {
|
|
2582
|
-
agentId?: string | null;
|
|
2583
|
-
userId?: string | null;
|
|
2584
|
-
}): Promise<{
|
|
2585
|
-
key: string;
|
|
2586
|
-
plaintextValue: string;
|
|
2587
|
-
}>;
|
|
2588
|
-
}
|
|
2589
|
-
|
|
2590
2453
|
type UsageEventKind = "tool_call" | "tool_result" | "tool_error" | "user_message" | "session_start" | "session_stop";
|
|
2591
2454
|
interface UsageEventInput {
|
|
2592
2455
|
kind: UsageEventKind;
|
|
@@ -2634,6 +2497,23 @@ interface StepParser {
|
|
|
2634
2497
|
parse(content: string): StepParseResult;
|
|
2635
2498
|
}
|
|
2636
2499
|
|
|
2500
|
+
type OverlapBlockerRepairReason = "task-not-found" | "no-overlap-blocker" | "not-repairable-state" | "blocker-missing" | "scopes-still-overlap" | "dependency-blocker-remains" | "overlap-blocker-changed" | "rerouted-to-current-overlap" | "repaired";
|
|
2501
|
+
interface RepairOverlapBlockerOptions {
|
|
2502
|
+
dryRun?: boolean;
|
|
2503
|
+
reason?: string;
|
|
2504
|
+
}
|
|
2505
|
+
interface RepairOverlapBlockerResult {
|
|
2506
|
+
taskId: string;
|
|
2507
|
+
dryRun: boolean;
|
|
2508
|
+
repaired: boolean;
|
|
2509
|
+
statusCleared: boolean;
|
|
2510
|
+
previousOverlapBlockedBy?: string;
|
|
2511
|
+
currentOverlapBlockedBy?: string;
|
|
2512
|
+
reason: OverlapBlockerRepairReason;
|
|
2513
|
+
message: string;
|
|
2514
|
+
task?: Task;
|
|
2515
|
+
}
|
|
2516
|
+
|
|
2637
2517
|
interface TaskStoreEvents {
|
|
2638
2518
|
"task:created": [task: Task];
|
|
2639
2519
|
"task:moved": [data: {
|
|
@@ -2825,6 +2705,13 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
|
|
|
2825
2705
|
reason: string;
|
|
2826
2706
|
}>;
|
|
2827
2707
|
}>;
|
|
2708
|
+
reconcilePhantomCommittedReservations(): Promise<{
|
|
2709
|
+
reconciled: string[];
|
|
2710
|
+
skipped: Array<{
|
|
2711
|
+
id: string;
|
|
2712
|
+
reason: string;
|
|
2713
|
+
}>;
|
|
2714
|
+
}>;
|
|
2828
2715
|
private readTaskJson;
|
|
2829
2716
|
private writeTaskJsonFile;
|
|
2830
2717
|
private atomicCreateTaskJson;
|
|
@@ -2849,16 +2736,10 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
|
|
|
2849
2736
|
private writeConfig;
|
|
2850
2737
|
resolveLocalNodeIdForTaskAllocation(): Promise<string>;
|
|
2851
2738
|
private createTaskWithDistributedReservation;
|
|
2739
|
+
private rollbackFailedDistributedReservationCreate;
|
|
2852
2740
|
private taskDir;
|
|
2853
2741
|
private artifactRegistryDir;
|
|
2854
2742
|
private static artifactStoredName;
|
|
2855
|
-
private getBuiltInWorkflowTemplate;
|
|
2856
|
-
private toBuiltInWorkflowStep;
|
|
2857
|
-
private toStoredWorkflowStep;
|
|
2858
|
-
private getLegacyWorkflowStepSnapshot;
|
|
2859
|
-
private applyLegacyWorkflowStepOverrides;
|
|
2860
|
-
private ensureWorkflowStepForTemplate;
|
|
2861
|
-
private optionalGroupIdSet;
|
|
2862
2743
|
private resolveEnabledWorkflowSteps;
|
|
2863
2744
|
private buildActiveTaskDependencyLookup;
|
|
2864
2745
|
private recordDependencyCycleRejectedAudit;
|
|
@@ -2877,6 +2758,10 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
|
|
|
2877
2758
|
prompt?: string;
|
|
2878
2759
|
applyDefaultWorkflowSteps?: boolean;
|
|
2879
2760
|
invokeTaskCreatedHook?: boolean;
|
|
2761
|
+
reservationCommit?: {
|
|
2762
|
+
reservationId: string;
|
|
2763
|
+
nodeId: string;
|
|
2764
|
+
};
|
|
2880
2765
|
}): Promise<Task>;
|
|
2881
2766
|
applyReplicatedTaskCreate(payload: MeshReplicatedTaskCreatePayload): Promise<MeshReplicatedTaskApplyResult>;
|
|
2882
2767
|
private _createTaskInternal;
|
|
@@ -2901,6 +2786,10 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
|
|
|
2901
2786
|
assignmentMode?: TaskBranchAssignmentMode;
|
|
2902
2787
|
}): Promise<void>;
|
|
2903
2788
|
listTasksByBranchGroup(groupId: string): Promise<Task[]>;
|
|
2789
|
+
reconcileActiveTimingForEngineDowntime(now?: Date): Promise<{
|
|
2790
|
+
shiftedTaskIds: string[];
|
|
2791
|
+
downtimeMs: number;
|
|
2792
|
+
}>;
|
|
2904
2793
|
private rowToPrEntity;
|
|
2905
2794
|
private generatePrEntityId;
|
|
2906
2795
|
getPrEntity(id: string): PrEntity | null;
|
|
@@ -3229,6 +3118,8 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
|
|
|
3229
3118
|
parseStepsFromPrompt(id: string): Promise<TaskStep[]>;
|
|
3230
3119
|
parseDependenciesFromPrompt(id: string): Promise<string[]>;
|
|
3231
3120
|
parseFileScopeFromPrompt(id: string): Promise<string[]>;
|
|
3121
|
+
repairOverlapBlocker(id: string, options?: RepairOverlapBlockerOptions): Promise<RepairOverlapBlockerResult>;
|
|
3122
|
+
private findCurrentOverlapBlockerForRepair;
|
|
3232
3123
|
private makeSyntheticDeleteRunId;
|
|
3233
3124
|
deleteTask(id: string, options?: {
|
|
3234
3125
|
removeDependencyReferences?: boolean;
|
|
@@ -3361,7 +3252,6 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
|
|
|
3361
3252
|
cleanupArchivedTasks(): Promise<string[]>;
|
|
3362
3253
|
private restoreFromArchive;
|
|
3363
3254
|
private generatePromptFromArchiveEntry;
|
|
3364
|
-
createWorkflowStep(input: WorkflowStepInput): Promise<WorkflowStep>;
|
|
3365
3255
|
setPluginWorkflowStepTemplates(templates: Array<{
|
|
3366
3256
|
pluginId: string;
|
|
3367
3257
|
template: WorkflowStepTemplate;
|
|
@@ -3369,8 +3259,6 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
|
|
|
3369
3259
|
private resolvePluginWorkflowStep;
|
|
3370
3260
|
listWorkflowSteps(): Promise<WorkflowStep[]>;
|
|
3371
3261
|
getWorkflowStep(id: string): Promise<WorkflowStep | undefined>;
|
|
3372
|
-
updateWorkflowStep(id: string, updates: Partial<WorkflowStepInput>): Promise<WorkflowStep>;
|
|
3373
|
-
deleteWorkflowStep(id: string): Promise<void>;
|
|
3374
3262
|
private nextWorkflowDefinitionId;
|
|
3375
3263
|
private toWorkflowDefinition;
|
|
3376
3264
|
private parseWorkflowLayout;
|
|
@@ -3406,11 +3294,6 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
|
|
|
3406
3294
|
getDefaultWorkflowId(): Promise<string | undefined>;
|
|
3407
3295
|
setDefaultWorkflowId(workflowId: string | null): Promise<void>;
|
|
3408
3296
|
private insertWorkflowDefinitionSync;
|
|
3409
|
-
migrateLegacyWorkflowSteps(): Promise<{
|
|
3410
|
-
migrated: number;
|
|
3411
|
-
skipped: number;
|
|
3412
|
-
combinedWorkflowId?: string;
|
|
3413
|
-
}>;
|
|
3414
3297
|
isWorkflowCliCommandApproved(command: string): Promise<boolean>;
|
|
3415
3298
|
approveWorkflowCliCommand(command: string): Promise<void>;
|
|
3416
3299
|
isCliAutonomyApproved(adapterId: string): Promise<boolean>;
|
|
@@ -3432,8 +3315,7 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
|
|
|
3432
3315
|
private writeTaskWorkflowSelection;
|
|
3433
3316
|
private removeMaterializedSelection;
|
|
3434
3317
|
private purgeTaskWorkflowSelectionRows;
|
|
3435
|
-
private
|
|
3436
|
-
private materializeWorkflowSteps;
|
|
3318
|
+
private validateWorkflowCompilable;
|
|
3437
3319
|
private materializeDefaultWorkflowSteps;
|
|
3438
3320
|
private materializeExplicitWorkflowSteps;
|
|
3439
3321
|
selectTaskWorkflow(taskId: string, workflowId: string): Promise<string[]>;
|
|
@@ -3473,6 +3355,7 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
|
|
|
3473
3355
|
};
|
|
3474
3356
|
getRootDir(): string;
|
|
3475
3357
|
getFusionDir(): string;
|
|
3358
|
+
getGlobalSettingsDir(): string;
|
|
3476
3359
|
getTasksDir(): string;
|
|
3477
3360
|
getTaskDir(id: string): string;
|
|
3478
3361
|
getDatabase(): Database;
|
|
@@ -4081,6 +3964,7 @@ declare class Database {
|
|
|
4081
3964
|
lockRecoveryWindowMs?: number;
|
|
4082
3965
|
lockRecoveryDelayMs?: number;
|
|
4083
3966
|
});
|
|
3967
|
+
serializeSnapshot(): Uint8Array;
|
|
4084
3968
|
get fts5Available(): boolean;
|
|
4085
3969
|
private getTaskFtsTriggerParts;
|
|
4086
3970
|
private configureTaskFts5;
|
|
@@ -4126,6 +4010,7 @@ declare class Database {
|
|
|
4126
4010
|
private applyMigration;
|
|
4127
4011
|
private hasTable;
|
|
4128
4012
|
isFts5CorruptionError(error: unknown): boolean;
|
|
4013
|
+
reindexMessages(): void;
|
|
4129
4014
|
private getTableColumns;
|
|
4130
4015
|
private hasColumn;
|
|
4131
4016
|
private tableExists;
|
|
@@ -4165,6 +4050,157 @@ declare class Database {
|
|
|
4165
4050
|
getPath(): string;
|
|
4166
4051
|
}
|
|
4167
4052
|
|
|
4053
|
+
declare class CentralDatabase implements CentralClaimStore {
|
|
4054
|
+
private db;
|
|
4055
|
+
private readonly dbPath;
|
|
4056
|
+
private readonly globalDir;
|
|
4057
|
+
private transactionDepth;
|
|
4058
|
+
private readonly busyTimeoutMs;
|
|
4059
|
+
private readonly lockRecoveryWindowMs;
|
|
4060
|
+
private readonly lockRecoveryDelayMs;
|
|
4061
|
+
constructor(globalDir?: string, options?: {
|
|
4062
|
+
busyTimeoutMs?: number;
|
|
4063
|
+
lockRecoveryWindowMs?: number;
|
|
4064
|
+
lockRecoveryDelayMs?: number;
|
|
4065
|
+
});
|
|
4066
|
+
init(): void;
|
|
4067
|
+
private hasColumn;
|
|
4068
|
+
close(): void;
|
|
4069
|
+
private runWithLockRecovery;
|
|
4070
|
+
transaction<T>(fn: () => T): T;
|
|
4071
|
+
private mapTaskClaimRow;
|
|
4072
|
+
getTaskClaim(projectId: string, taskId: string): TaskClaimRow | null;
|
|
4073
|
+
tryClaimTask(input: {
|
|
4074
|
+
projectId: string;
|
|
4075
|
+
taskId: string;
|
|
4076
|
+
nodeId: string;
|
|
4077
|
+
agentId: string;
|
|
4078
|
+
runId: string | null;
|
|
4079
|
+
renewedAt: string;
|
|
4080
|
+
expectedEpoch?: number | null;
|
|
4081
|
+
}): {
|
|
4082
|
+
ok: true;
|
|
4083
|
+
claim: TaskClaimRow;
|
|
4084
|
+
} | {
|
|
4085
|
+
ok: false;
|
|
4086
|
+
reason: "conflict";
|
|
4087
|
+
current: TaskClaimRow;
|
|
4088
|
+
};
|
|
4089
|
+
renewTaskClaim(input: {
|
|
4090
|
+
projectId: string;
|
|
4091
|
+
taskId: string;
|
|
4092
|
+
nodeId: string;
|
|
4093
|
+
agentId: string;
|
|
4094
|
+
runId: string | null;
|
|
4095
|
+
renewedAt: string;
|
|
4096
|
+
expectedEpoch: number;
|
|
4097
|
+
}): {
|
|
4098
|
+
ok: true;
|
|
4099
|
+
claim: TaskClaimRow;
|
|
4100
|
+
} | {
|
|
4101
|
+
ok: false;
|
|
4102
|
+
reason: "conflict" | "not_found";
|
|
4103
|
+
current: TaskClaimRow | null;
|
|
4104
|
+
};
|
|
4105
|
+
releaseTaskClaim(input: {
|
|
4106
|
+
projectId: string;
|
|
4107
|
+
taskId: string;
|
|
4108
|
+
nodeId: string;
|
|
4109
|
+
agentId: string;
|
|
4110
|
+
}): {
|
|
4111
|
+
ok: true;
|
|
4112
|
+
} | {
|
|
4113
|
+
ok: false;
|
|
4114
|
+
reason: "not_owner" | "not_found";
|
|
4115
|
+
current: TaskClaimRow | null;
|
|
4116
|
+
};
|
|
4117
|
+
prepare(sql: string): Statement;
|
|
4118
|
+
exec(sql: string): void;
|
|
4119
|
+
getLastModified(): number;
|
|
4120
|
+
bumpLastModified(): void;
|
|
4121
|
+
getSchemaVersion(): number;
|
|
4122
|
+
getPath(): string;
|
|
4123
|
+
getGlobalDir(): string;
|
|
4124
|
+
}
|
|
4125
|
+
|
|
4126
|
+
type MasterKeyProvider = () => Promise<Buffer>;
|
|
4127
|
+
|
|
4128
|
+
type SecretScope = "project" | "global";
|
|
4129
|
+
type SecretAccessPolicy$1 = "auto" | "prompt" | "deny";
|
|
4130
|
+
interface SecretRecord {
|
|
4131
|
+
id: string;
|
|
4132
|
+
key: string;
|
|
4133
|
+
scope: SecretScope;
|
|
4134
|
+
description: string | null;
|
|
4135
|
+
accessPolicy: SecretAccessPolicy$1;
|
|
4136
|
+
envExportable: boolean;
|
|
4137
|
+
envExportKey: string | null;
|
|
4138
|
+
createdAt: string;
|
|
4139
|
+
updatedAt: string;
|
|
4140
|
+
lastReadAt: string | null;
|
|
4141
|
+
lastReadBy: string | null;
|
|
4142
|
+
}
|
|
4143
|
+
interface EnvExportableSecret {
|
|
4144
|
+
id: string;
|
|
4145
|
+
key: string;
|
|
4146
|
+
exportKey: string;
|
|
4147
|
+
scope: SecretScope;
|
|
4148
|
+
plaintextValue: string;
|
|
4149
|
+
}
|
|
4150
|
+
type SecretsStoreAuditEvent = {
|
|
4151
|
+
mutationType: "secret:create" | "secret:update" | "secret:delete" | "secret:read";
|
|
4152
|
+
scope: SecretScope;
|
|
4153
|
+
secretId: string;
|
|
4154
|
+
key: string;
|
|
4155
|
+
actor?: {
|
|
4156
|
+
agentId?: string | null;
|
|
4157
|
+
userId?: string | null;
|
|
4158
|
+
};
|
|
4159
|
+
};
|
|
4160
|
+
interface SecretsStoreOptions {
|
|
4161
|
+
auditEmitter?: (event: SecretsStoreAuditEvent) => void;
|
|
4162
|
+
}
|
|
4163
|
+
declare class SecretsStore {
|
|
4164
|
+
private readonly projectDb;
|
|
4165
|
+
private readonly centralDb;
|
|
4166
|
+
private readonly options;
|
|
4167
|
+
private readonly cipher;
|
|
4168
|
+
constructor(projectDb: Pick<Database, "prepare" | "bumpLastModified">, centralDb: Pick<CentralDatabase, "prepare" | "bumpLastModified">, masterKeyProvider: MasterKeyProvider, options?: SecretsStoreOptions);
|
|
4169
|
+
private emitAudit;
|
|
4170
|
+
private dbForScope;
|
|
4171
|
+
private rowToRecord;
|
|
4172
|
+
listSecrets(scope?: SecretScope): SecretRecord[];
|
|
4173
|
+
listEnvExportable(opts?: {
|
|
4174
|
+
keyPrefix?: string;
|
|
4175
|
+
}): Promise<EnvExportableSecret[]>;
|
|
4176
|
+
getSecretMetadata(id: string, scope: SecretScope): SecretRecord | null;
|
|
4177
|
+
createSecret(input: {
|
|
4178
|
+
scope: SecretScope;
|
|
4179
|
+
key: string;
|
|
4180
|
+
plaintextValue: string;
|
|
4181
|
+
description?: string | null;
|
|
4182
|
+
accessPolicy?: SecretAccessPolicy$1;
|
|
4183
|
+
envExportable?: boolean;
|
|
4184
|
+
envExportKey?: string | null;
|
|
4185
|
+
}): Promise<SecretRecord>;
|
|
4186
|
+
updateSecret(id: string, scope: SecretScope, patch: {
|
|
4187
|
+
key?: string;
|
|
4188
|
+
plaintextValue?: string;
|
|
4189
|
+
description?: string | null;
|
|
4190
|
+
accessPolicy?: SecretAccessPolicy$1;
|
|
4191
|
+
envExportable?: boolean;
|
|
4192
|
+
envExportKey?: string | null;
|
|
4193
|
+
}): Promise<SecretRecord>;
|
|
4194
|
+
deleteSecret(id: string, scope: SecretScope): void;
|
|
4195
|
+
revealSecret(id: string, scope: SecretScope, reader: {
|
|
4196
|
+
agentId?: string | null;
|
|
4197
|
+
userId?: string | null;
|
|
4198
|
+
}): Promise<{
|
|
4199
|
+
key: string;
|
|
4200
|
+
plaintextValue: string;
|
|
4201
|
+
}>;
|
|
4202
|
+
}
|
|
4203
|
+
|
|
4168
4204
|
declare const THINKING_LEVELS: readonly ["off", "minimal", "low", "medium", "high", "xhigh"];
|
|
4169
4205
|
type ThinkingLevel = (typeof THINKING_LEVELS)[number];
|
|
4170
4206
|
declare const COLUMNS: readonly ["triage", "todo", "in-progress", "in-review", "done", "archived"];
|
|
@@ -4349,6 +4385,7 @@ interface WorkflowStep {
|
|
|
4349
4385
|
prompt: string;
|
|
4350
4386
|
toolMode?: WorkflowStepToolMode;
|
|
4351
4387
|
skillName?: string;
|
|
4388
|
+
requiresBrowser?: boolean;
|
|
4352
4389
|
scriptName?: string;
|
|
4353
4390
|
enabled: boolean;
|
|
4354
4391
|
defaultOn?: boolean;
|
|
@@ -4358,7 +4395,7 @@ interface WorkflowStep {
|
|
|
4358
4395
|
createdAt: string;
|
|
4359
4396
|
updatedAt: string;
|
|
4360
4397
|
}
|
|
4361
|
-
type NtfyNotificationEvent = "in-review" | "merged" | "failed" | "awaiting-approval" | "awaiting-user-review" | "planning-awaiting-input" | "gridlock" | "board-stall-unrecovered" | "db-corruption-detected" | "fallback-used" | "memory-dreams-processed" | "token-budget" | "message:agent-to-user" | "message:agent-to-agent" | "message:room" | "oauth-token-expired" | "task-created" | "workflow-notify";
|
|
4398
|
+
type NtfyNotificationEvent = "in-review" | "merged" | "failed" | "awaiting-approval" | "awaiting-user-review" | "planning-awaiting-input" | "cli-agent-awaiting-input" | "gridlock" | "board-stall-unrecovered" | "db-corruption-detected" | "fallback-used" | "memory-dreams-processed" | "token-budget" | "message:agent-to-user" | "message:agent-to-agent" | "message:room" | "oauth-token-expired" | "task-created" | "workflow-notify";
|
|
4362
4399
|
interface NotificationProviderConfig {
|
|
4363
4400
|
id: string;
|
|
4364
4401
|
name: string;
|
|
@@ -4377,23 +4414,6 @@ interface CustomProvider {
|
|
|
4377
4414
|
name: string;
|
|
4378
4415
|
}[];
|
|
4379
4416
|
}
|
|
4380
|
-
interface WorkflowStepInput {
|
|
4381
|
-
templateId?: string;
|
|
4382
|
-
name: string;
|
|
4383
|
-
description: string;
|
|
4384
|
-
mode?: WorkflowStepMode;
|
|
4385
|
-
phase?: WorkflowStepPhase;
|
|
4386
|
-
gateMode?: WorkflowStepGateMode;
|
|
4387
|
-
prompt?: string;
|
|
4388
|
-
toolMode?: WorkflowStepToolMode;
|
|
4389
|
-
skillName?: string;
|
|
4390
|
-
scriptName?: string;
|
|
4391
|
-
enabled?: boolean;
|
|
4392
|
-
defaultOn?: boolean;
|
|
4393
|
-
modelProvider?: string;
|
|
4394
|
-
modelId?: string;
|
|
4395
|
-
migratedFragmentId?: string;
|
|
4396
|
-
}
|
|
4397
4417
|
interface WorkflowStepResult {
|
|
4398
4418
|
workflowStepId: string;
|
|
4399
4419
|
workflowStepName: string;
|
|
@@ -5154,6 +5174,7 @@ interface Task {
|
|
|
5154
5174
|
columnMovedAt?: string;
|
|
5155
5175
|
firstExecutionAt?: string;
|
|
5156
5176
|
cumulativeActiveMs?: number;
|
|
5177
|
+
columnDwellMs?: Record<string, number>;
|
|
5157
5178
|
executionStartedAt?: string;
|
|
5158
5179
|
executionCompletedAt?: string;
|
|
5159
5180
|
deletedAt?: string;
|
|
@@ -5345,6 +5366,36 @@ interface WorktrunkSettings {
|
|
|
5345
5366
|
onFailure?: WorktrunkOnFailure;
|
|
5346
5367
|
installedBinaryPath?: string;
|
|
5347
5368
|
}
|
|
5369
|
+
interface McpSecretRef {
|
|
5370
|
+
secretRef: string;
|
|
5371
|
+
scope: SecretScope;
|
|
5372
|
+
}
|
|
5373
|
+
type McpSensitiveValue = McpSecretRef | string;
|
|
5374
|
+
interface McpStdioTransport {
|
|
5375
|
+
transport: "stdio";
|
|
5376
|
+
command: string;
|
|
5377
|
+
args?: string[];
|
|
5378
|
+
env?: Record<string, McpSensitiveValue>;
|
|
5379
|
+
}
|
|
5380
|
+
interface McpSseTransport {
|
|
5381
|
+
transport: "sse";
|
|
5382
|
+
url: string;
|
|
5383
|
+
headers?: Record<string, McpSensitiveValue>;
|
|
5384
|
+
}
|
|
5385
|
+
interface McpStreamableHttpTransport {
|
|
5386
|
+
transport: "streamable-http";
|
|
5387
|
+
url: string;
|
|
5388
|
+
headers?: Record<string, McpSensitiveValue>;
|
|
5389
|
+
}
|
|
5390
|
+
type McpTransport = McpStdioTransport | McpSseTransport | McpStreamableHttpTransport;
|
|
5391
|
+
type McpServerDefinition = {
|
|
5392
|
+
name: string;
|
|
5393
|
+
enabled?: boolean;
|
|
5394
|
+
} & McpTransport;
|
|
5395
|
+
interface McpServersSettings {
|
|
5396
|
+
enabled?: boolean;
|
|
5397
|
+
servers?: McpServerDefinition[];
|
|
5398
|
+
}
|
|
5348
5399
|
interface GlobalSettings {
|
|
5349
5400
|
themeMode?: ThemeMode;
|
|
5350
5401
|
colorTheme?: ColorTheme;
|
|
@@ -5446,6 +5497,7 @@ interface GlobalSettings {
|
|
|
5446
5497
|
researchGlobalFetchTimeoutMs?: number;
|
|
5447
5498
|
researchGlobalUserAgent?: string;
|
|
5448
5499
|
remoteAccess?: RemoteAccessProjectSettings;
|
|
5500
|
+
mcpServers?: McpServersSettings;
|
|
5449
5501
|
worktrunk?: WorktrunkSettings;
|
|
5450
5502
|
experimentalFeatures?: Record<string, boolean>;
|
|
5451
5503
|
cliAgents?: Record<string, CliAgentSettings>;
|
|
@@ -5510,6 +5562,7 @@ interface ProjectSettings {
|
|
|
5510
5562
|
approvedWorkflowCliCommands?: string[];
|
|
5511
5563
|
approvedCliAutonomyAdapters?: string[];
|
|
5512
5564
|
enginePaused?: boolean;
|
|
5565
|
+
engineLastActiveAt?: string;
|
|
5513
5566
|
maxConcurrent: number;
|
|
5514
5567
|
maxTriageConcurrent?: number;
|
|
5515
5568
|
globalMaxConcurrent?: number;
|
|
@@ -5522,6 +5575,7 @@ interface ProjectSettings {
|
|
|
5522
5575
|
heartbeatScopeDiscipline?: HeartbeatScopeDisciplineMode;
|
|
5523
5576
|
heartbeatPromptTemplate?: HeartbeatPromptTemplate;
|
|
5524
5577
|
groupOverlappingFiles: boolean;
|
|
5578
|
+
ignoreHiddenOverlapPaths?: boolean;
|
|
5525
5579
|
overlapIgnorePaths?: string[];
|
|
5526
5580
|
autoMerge: boolean;
|
|
5527
5581
|
testMode?: boolean;
|
|
@@ -5539,6 +5593,7 @@ interface ProjectSettings {
|
|
|
5539
5593
|
owningNodeHandoffPolicy?: OwningNodeHandoffPolicy;
|
|
5540
5594
|
researchSettings?: ResearchProjectSettings;
|
|
5541
5595
|
secretsEnv?: SecretsEnvSettings;
|
|
5596
|
+
mcpServers?: McpServersSettings;
|
|
5542
5597
|
sandbox?: SandboxProjectSettings;
|
|
5543
5598
|
evalSettings?: EvalProjectSettings;
|
|
5544
5599
|
taskEvaluationEnabled?: boolean;
|
|
@@ -5554,6 +5609,7 @@ interface ProjectSettings {
|
|
|
5554
5609
|
researchMaxSynthesisRounds?: number;
|
|
5555
5610
|
defaultNodeId?: string;
|
|
5556
5611
|
worktreeInitCommand?: string;
|
|
5612
|
+
worktreeCopyFiles?: string[];
|
|
5557
5613
|
testCommand?: string;
|
|
5558
5614
|
buildCommand?: string;
|
|
5559
5615
|
recycleWorktrees?: boolean;
|
|
@@ -5617,7 +5673,9 @@ interface ProjectSettings {
|
|
|
5617
5673
|
verificationFixRetries?: number;
|
|
5618
5674
|
buildTimeoutMs?: number;
|
|
5619
5675
|
verificationCommandTimeoutMs?: number;
|
|
5676
|
+
scopeVerificationToChangedFiles?: boolean;
|
|
5620
5677
|
requirePlanApproval?: boolean;
|
|
5678
|
+
planApprovalMode?: "workflow" | "auto-approve-all" | "require-all";
|
|
5621
5679
|
ephemeralAgentsEnabled?: boolean;
|
|
5622
5680
|
agentProvisioning?: {
|
|
5623
5681
|
approvalMode?: AgentProvisioningApprovalMode;
|
|
@@ -5905,6 +5963,7 @@ interface ArchivedTaskEntry {
|
|
|
5905
5963
|
columnMovedAt?: string;
|
|
5906
5964
|
firstExecutionAt?: string;
|
|
5907
5965
|
cumulativeActiveMs?: number;
|
|
5966
|
+
columnDwellMs?: Record<string, number>;
|
|
5908
5967
|
executionStartedAt?: string;
|
|
5909
5968
|
executionCompletedAt?: string;
|
|
5910
5969
|
deletedAt?: string;
|
|
@@ -6393,6 +6452,7 @@ interface Agent {
|
|
|
6393
6452
|
totalOutputTokens?: number;
|
|
6394
6453
|
lastError?: string;
|
|
6395
6454
|
pendingApprovalCount?: number;
|
|
6455
|
+
taskColumn?: string;
|
|
6396
6456
|
instructionsPath?: string;
|
|
6397
6457
|
instructionsText?: string;
|
|
6398
6458
|
soul?: string;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fusion-plugin-examples/cli-printing-press",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.30",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"description": "CLI Printing Press plugin package for Fusion",
|
|
6
5
|
"private": true,
|
|
7
6
|
"exports": {
|
|
8
7
|
".": {
|
|
@@ -18,13 +17,7 @@
|
|
|
18
17
|
"import": "./src/manage-view.tsx"
|
|
19
18
|
}
|
|
20
19
|
},
|
|
21
|
-
"scripts": {
|
|
22
|
-
"build": "tsc",
|
|
23
|
-
"test": "vitest run --silent=passed-only --reporter=dot"
|
|
24
|
-
},
|
|
25
20
|
"dependencies": {
|
|
26
|
-
"@fusion/core": "workspace:*",
|
|
27
|
-
"@fusion/plugin-sdk": "workspace:*",
|
|
28
21
|
"express": "^5.1.0",
|
|
29
22
|
"lucide-react": "^0.542.0",
|
|
30
23
|
"react": "^19.0.0",
|
|
@@ -40,4 +33,4 @@
|
|
|
40
33
|
"typescript": "^5.7.0",
|
|
41
34
|
"vitest": "^4.1.0"
|
|
42
35
|
}
|
|
43
|
-
}
|
|
36
|
+
}
|