@runfusion/fusion 0.78.0-beta.2 → 0.78.0-beta.4

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.
Files changed (165) hide show
  1. package/dist/bin.js +5142 -5151
  2. package/dist/child-process-worker.js +3720 -3649
  3. package/dist/client/.vite/manifest.json +262 -262
  4. package/dist/client/assets/{AgentDetailView-4tEdPTG2.js → AgentDetailView-BVDrAj1Y.js} +3 -3
  5. package/dist/client/assets/AgentDetailView-DaSEdzYy.css +1 -0
  6. package/dist/client/assets/{AgentPermissionPolicyEditor-DIGxjQFE.js → AgentPermissionPolicyEditor--11QLSt_.js} +1 -1
  7. package/dist/client/assets/{AgentsView-BXFYQAPe.js → AgentsView-D3mLjE0-.js} +4 -4
  8. package/dist/client/assets/{CommandCenter-vknNrxBN.js → CommandCenter-CPy2a26y.js} +1 -1
  9. package/dist/client/assets/{DevServerView-COFb49kW.js → DevServerView-CWHhisoR.js} +1 -1
  10. package/dist/client/assets/{DirectoryPicker-C-wYRUc5.js → DirectoryPicker-DMd9MEtq.js} +1 -1
  11. package/dist/client/assets/DocumentsView-YeYy6DJV.js +1 -0
  12. package/dist/client/assets/{EvalsView-BcOgXvPe.js → EvalsView-DfvYGoX4.js} +1 -1
  13. package/dist/client/assets/{ExperimentalAgentOnboardingModal-B0zF29ER.js → ExperimentalAgentOnboardingModal-CFjRfBUk.js} +1 -1
  14. package/dist/client/assets/{GoalsView--Cj2se_t.js → GoalsView-DdlI85_-.js} +1 -1
  15. package/dist/client/assets/InsightsView-Du2UKeQE.js +11 -0
  16. package/dist/client/assets/{MemoryView-Ca0Y2fYg.js → MemoryView-DeSuPKc7.js} +1 -1
  17. package/dist/client/assets/{PatchnodeView--E259o36.js → PatchnodeView-Ow5ErHE3.js} +1 -1
  18. package/dist/client/assets/{PiExtensionsManager-DKKLn5YE.js → PiExtensionsManager-D65p_Z4a.js} +1 -1
  19. package/dist/client/assets/{PluginManager-e0Rnv7RI.js → PluginManager-BruzVBGM.js} +1 -1
  20. package/dist/client/assets/{PullRequestView-BFe77u-d.js → PullRequestView-BTzsKxrq.js} +1 -1
  21. package/dist/client/assets/{ReportModal-DvyDEj8D.js → ReportModal-YpkrGp21.js} +2 -2
  22. package/dist/client/assets/ResearchView-D0oWTBMk.js +2 -0
  23. package/dist/client/assets/{SecretsView-DTrrJEt9.js → SecretsView-B6ZH6O1O.js} +1 -1
  24. package/dist/client/assets/{SettingsModal-DnTX4rMK.js → SettingsModal-CN4NVtbD.js} +1 -1
  25. package/dist/client/assets/SettingsModal-CmPRFol7.css +1 -0
  26. package/dist/client/assets/SettingsModal-CwUcFHcw.js +21 -0
  27. package/dist/client/assets/{SettingsTextareaRow-y3gQ4u_G.js → SettingsTextareaRow-B_iNwevV.js} +1 -1
  28. package/dist/client/assets/{SetupWizardModal-ClAbtrU0.js → SetupWizardModal-BSAtv8xH.js} +2 -2
  29. package/dist/client/assets/{SkillsView-BpEJE16a.js → SkillsView-DhhiUAPO.js} +1 -1
  30. package/dist/client/assets/{WorkflowNodeEditor-CSbhpY5K.js → WorkflowNodeEditor-YeZ_DH3a.js} +1 -1
  31. package/dist/client/assets/{agent-import-generation-BT0ZBGQA.js → agent-import-generation-BPFU14s8.js} +1 -1
  32. package/dist/client/assets/{agentsOrgChartLayout-C_tkb_Pq.js → agentsOrgChartLayout-CWqQ9XMW.js} +1 -1
  33. package/dist/client/assets/app-BVuhE-pB.js +3 -0
  34. package/dist/client/assets/app-BVz53oEh.js +9 -0
  35. package/dist/client/assets/app-BfzM5z-d.js +9 -0
  36. package/dist/client/assets/app-BgtLSw3s.js +9 -0
  37. package/dist/client/assets/app-BpjF_vWi.js +9 -0
  38. package/dist/client/assets/app-Cjqb3Hrq.js +3 -0
  39. package/dist/client/assets/app-CoyPSunU.js +9 -0
  40. package/dist/client/assets/{architectureDiagram-3BPJPVTR-BfPYqDRS.js → architectureDiagram-3BPJPVTR-DX2xxWsB.js} +1 -1
  41. package/dist/client/assets/{blockDiagram-GPEHLZMM-BEcaGTmc.js → blockDiagram-GPEHLZMM-tVB-pLpH.js} +1 -1
  42. package/dist/client/assets/{c4Diagram-AAUBKEIU-BX1xrinF.js → c4Diagram-AAUBKEIU-BEV-l4nl.js} +1 -1
  43. package/dist/client/assets/channel-BoqUD_yo.js +1 -0
  44. package/dist/client/assets/{chunk-2J33WTMH-OksyoE_c.js → chunk-2J33WTMH-DduonyQt.js} +1 -1
  45. package/dist/client/assets/{chunk-4BX2VUAB-C5ivKrB5.js → chunk-4BX2VUAB-BPCXybBl.js} +1 -1
  46. package/dist/client/assets/{chunk-55IACEB6-C7vkVq-W.js → chunk-55IACEB6-ByqbaUCB.js} +1 -1
  47. package/dist/client/assets/{chunk-727SXJPM-c-khhz21.js → chunk-727SXJPM-DdtczHe_.js} +1 -1
  48. package/dist/client/assets/{chunk-AQP2D5EJ-DwxYJXXQ.js → chunk-AQP2D5EJ-V5pHkNOZ.js} +1 -1
  49. package/dist/client/assets/{chunk-FMBD7UC4-BKhdu4up.js → chunk-FMBD7UC4-i0P_U91V.js} +1 -1
  50. package/dist/client/assets/{chunk-ND2GUHAM-okVZM2p2.js → chunk-ND2GUHAM-BWdXSws9.js} +1 -1
  51. package/dist/client/assets/{chunk-QZHKN3VN-DDso7rM3.js → chunk-QZHKN3VN-C7vpw2O4.js} +1 -1
  52. package/dist/client/assets/classDiagram-4FO5ZUOK-5Yk5cF5o.js +1 -0
  53. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-5Yk5cF5o.js +1 -0
  54. package/dist/client/assets/{cose-bilkent-S5V4N54A-CNT9ltBk.js → cose-bilkent-S5V4N54A-C_OJmqvv.js} +1 -1
  55. package/dist/client/assets/{dagre-BM42HDAG-C5a30-g5.js → dagre-BM42HDAG-DlxhXtcR.js} +1 -1
  56. package/dist/client/assets/{dashboard-view-Brqe-SVE.js → dashboard-view-C_aj9Avl.js} +2 -2
  57. package/dist/client/assets/{dashboard-view-DyAQ_agZ.js → dashboard-view-CtFwciFc.js} +1 -1
  58. package/dist/client/assets/dashboard-view-Cy2aXOHq.js +1 -0
  59. package/dist/client/assets/{dashboard-view-WFOf0Kpl.js → dashboard-view-ZNgeI6tK.js} +1 -1
  60. package/dist/client/assets/{diagram-2AECGRRQ-DG7EyUNe.js → diagram-2AECGRRQ-B5OQ5SjT.js} +1 -1
  61. package/dist/client/assets/{diagram-5GNKFQAL-DE7lhEna.js → diagram-5GNKFQAL-OnHyeSDX.js} +1 -1
  62. package/dist/client/assets/{diagram-KO2AKTUF-DFtJNqNF.js → diagram-KO2AKTUF-BESRlk6K.js} +1 -1
  63. package/dist/client/assets/{diagram-LMA3HP47-DUAuxZQD.js → diagram-LMA3HP47-jc5KVOgo.js} +1 -1
  64. package/dist/client/assets/{diagram-OG6HWLK6-DCKETcWy.js → diagram-OG6HWLK6-CbvV1B1C.js} +1 -1
  65. package/dist/client/assets/{erDiagram-TEJ5UH35-pa0blyAD.js → erDiagram-TEJ5UH35-CU4gukmG.js} +1 -1
  66. package/dist/client/assets/{flowDiagram-I6XJVG4X-D7Veqs1W.js → flowDiagram-I6XJVG4X-Dq9UKge4.js} +1 -1
  67. package/dist/client/assets/{folder-open-CojKP0zy.js → folder-open-CF9O-sX4.js} +1 -1
  68. package/dist/client/assets/{ganttDiagram-6RSMTGT7-CsqBMy2D.js → ganttDiagram-6RSMTGT7-BWA_00UM.js} +1 -1
  69. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-BRrVKZJo.js → gitGraphDiagram-PVQCEYII-DKdPzNtQ.js} +1 -1
  70. package/dist/client/assets/index-CiVIbypZ.js +2949 -0
  71. package/dist/client/assets/index-Duxgoh_Y.css +1 -0
  72. package/dist/client/assets/{infoDiagram-5YYISTIA-o2GEmmb2.js → infoDiagram-5YYISTIA-BvusFnLt.js} +1 -1
  73. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-k1p6nWtj.js → ishikawaDiagram-YF4QCWOH-NLucC59B.js} +1 -1
  74. package/dist/client/assets/{journeyDiagram-JHISSGLW-B43V37S0.js → journeyDiagram-JHISSGLW-OMF0ZqP2.js} +1 -1
  75. package/dist/client/assets/{kanban-definition-UN3LZRKU-HRMYyAQB.js → kanban-definition-UN3LZRKU-DcIw1Gei.js} +1 -1
  76. package/dist/client/assets/{mermaid.core-6vt3zKxL.js → mermaid.core-BXdGnca4.js} +4 -4
  77. package/dist/client/assets/{mindmap-definition-RKZ34NQL-D3VJuvfj.js → mindmap-definition-RKZ34NQL-CJdZ2giE.js} +1 -1
  78. package/dist/client/assets/{pieDiagram-4H26LBE5-D0RjFhk9.js → pieDiagram-4H26LBE5-CIS3IXyQ.js} +1 -1
  79. package/dist/client/assets/{puzzle-D3dJEsTf.js → puzzle-DLP4jrVO.js} +1 -1
  80. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-DHaEqU3Q.js → quadrantDiagram-W4KKPZXB-CyXg_FqY.js} +1 -1
  81. package/dist/client/assets/{requirementDiagram-4Y6WPE33-DnfFCRP0.js → requirementDiagram-4Y6WPE33-Cl5zZfEW.js} +1 -1
  82. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-D6GCuiqV.js → sankeyDiagram-5OEKKPKP-RPvS_KDe.js} +1 -1
  83. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-DaGYYzxS.js → sequenceDiagram-3UESZ5HK-mqxbDVma.js} +1 -1
  84. package/dist/client/assets/{standing-instructions-template-CN8Kp4Hq.js → standing-instructions-template-oByMjuf9.js} +1 -1
  85. package/dist/client/assets/{stateDiagram-AJRCARHV-ek4Wb8ai.js → stateDiagram-AJRCARHV-BMThgwA0.js} +1 -1
  86. package/dist/client/assets/{stateDiagram-v2-BHNVJYJU-EPn8Vq7v.js → stateDiagram-v2-BHNVJYJU-BQQVmi0s.js} +1 -1
  87. package/dist/client/assets/{timeline-definition-PNZ67QCA-CyAwCbnE.js → timeline-definition-PNZ67QCA-DxRT4zz3.js} +1 -1
  88. package/dist/client/assets/{upload-BhpNL3xI.js → upload-C1hBXwxT.js} +1 -1
  89. package/dist/client/assets/{users-Bka1cIkR.js → users-CUTsjdYo.js} +1 -1
  90. package/dist/client/assets/{vennDiagram-CIIHVFJN-Bd8-8r3a.js → vennDiagram-CIIHVFJN-CplrXnmO.js} +1 -1
  91. package/dist/client/assets/{wardley-L42UT6IY-nNvWflNF.js → wardley-L42UT6IY-DN3nUl9Y.js} +1 -1
  92. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-Dy7XrvPx.js → wardleyDiagram-YWT4CUSO-C0hUcS3e.js} +1 -1
  93. package/dist/client/assets/{xychartDiagram-2RQKCTM6-38VTptR4.js → xychartDiagram-2RQKCTM6-CDB05pHe.js} +1 -1
  94. package/dist/client/index.html +2 -2
  95. package/dist/client/version.json +1 -1
  96. package/dist/droid-cli/package.json +1 -1
  97. package/dist/extension.js +4041 -4181
  98. package/dist/pi-claude-cli/package.json +1 -1
  99. package/dist/plugin-sdk/index.d.ts +108 -101
  100. package/dist/plugin-sdk/index.js +37 -95
  101. package/dist/plugins/fusion-plugin-acp-runtime/bundled.js +37 -95
  102. package/dist/plugins/fusion-plugin-acp-runtime/package.json +1 -1
  103. package/dist/plugins/fusion-plugin-claude-runtime/bundled.js +37 -95
  104. package/dist/plugins/fusion-plugin-claude-runtime/package.json +1 -1
  105. package/dist/plugins/fusion-plugin-cli-printing-press/bundled.js +37 -95
  106. package/dist/plugins/fusion-plugin-cli-printing-press/package.json +1 -1
  107. package/dist/plugins/fusion-plugin-compound-engineering/bundled.js +37 -95
  108. package/dist/plugins/fusion-plugin-compound-engineering/package.json +1 -1
  109. package/dist/plugins/fusion-plugin-cursor-runtime/bundled.js +37 -95
  110. package/dist/plugins/fusion-plugin-cursor-runtime/package.json +1 -1
  111. package/dist/plugins/fusion-plugin-dependency-graph/bundled.js +37 -95
  112. package/dist/plugins/fusion-plugin-dependency-graph/package.json +1 -1
  113. package/dist/plugins/fusion-plugin-droid-runtime/bundled.js +37 -95
  114. package/dist/plugins/fusion-plugin-droid-runtime/package.json +1 -1
  115. package/dist/plugins/fusion-plugin-grok-runtime/bundled.js +37 -95
  116. package/dist/plugins/fusion-plugin-grok-runtime/package.json +1 -1
  117. package/dist/plugins/fusion-plugin-hermes-runtime/bundled.js +37 -95
  118. package/dist/plugins/fusion-plugin-hermes-runtime/package.json +1 -1
  119. package/dist/plugins/fusion-plugin-linear-import/bundled.js +37 -95
  120. package/dist/plugins/fusion-plugin-linear-import/package.json +1 -1
  121. package/dist/plugins/fusion-plugin-omp-runtime/bundled.js +37 -95
  122. package/dist/plugins/fusion-plugin-omp-runtime/package.json +1 -1
  123. package/dist/plugins/fusion-plugin-openclaw-runtime/bundled.js +37 -95
  124. package/dist/plugins/fusion-plugin-openclaw-runtime/package.json +1 -1
  125. package/dist/plugins/fusion-plugin-paperclip-runtime/bundled.js +37 -95
  126. package/dist/plugins/fusion-plugin-paperclip-runtime/package.json +1 -1
  127. package/dist/plugins/fusion-plugin-quality/bundled.js +37 -95
  128. package/dist/plugins/fusion-plugin-quality/package.json +1 -1
  129. package/dist/plugins/fusion-plugin-reports/bundled.js +37 -95
  130. package/dist/plugins/fusion-plugin-reports/package.json +1 -1
  131. package/dist/plugins/fusion-plugin-roadmap/bundled.js +37 -95
  132. package/dist/plugins/fusion-plugin-roadmap/package.json +1 -1
  133. package/dist/plugins/fusion-plugin-todos/bundled.js +37 -95
  134. package/dist/plugins/fusion-plugin-todos/package.json +1 -1
  135. package/dist/plugins/fusion-plugin-whatsapp-chat/bundled.js +37 -95
  136. package/dist/plugins/fusion-plugin-whatsapp-chat/package.json +1 -1
  137. package/package.json +1 -1
  138. package/skill/fusion/SKILL.md +1 -1
  139. package/skill/fusion/references/best-practices.md +2 -2
  140. package/skill/fusion/references/cli-commands.md +0 -2
  141. package/skill/fusion/references/engine-tools.md +2 -2
  142. package/skill/fusion/references/extension-tools.md +1 -18
  143. package/skill/fusion/references/fusion-capabilities.md +1 -4
  144. package/skill/fusion/references/task-structure.md +1 -1
  145. package/skill/fusion/workflows/task-lifecycle.md +5 -9
  146. package/skill/fusion/workflows/task-management.md +1 -3
  147. package/dist/client/assets/AgentDetailView-DPoh46Ym.css +0 -1
  148. package/dist/client/assets/DocumentsView-B-uzhK3C.js +0 -1
  149. package/dist/client/assets/InsightsView-qMoM8oFe.js +0 -11
  150. package/dist/client/assets/ResearchView-DROedGZR.js +0 -2
  151. package/dist/client/assets/SettingsModal-CSbSmwxZ.js +0 -21
  152. package/dist/client/assets/SettingsModal-Crai1dEI.css +0 -1
  153. package/dist/client/assets/app-B0hINWeH.js +0 -5
  154. package/dist/client/assets/app-BSxI9vvS.js +0 -13
  155. package/dist/client/assets/app-BeDYumHl.js +0 -13
  156. package/dist/client/assets/app-C8jogXBu.js +0 -13
  157. package/dist/client/assets/app-C8kudFlj.js +0 -13
  158. package/dist/client/assets/app-DZ5j1n3j.js +0 -5
  159. package/dist/client/assets/app-hEhR2PdL.js +0 -13
  160. package/dist/client/assets/channel-BjDq20V4.js +0 -1
  161. package/dist/client/assets/classDiagram-4FO5ZUOK-B114c_Fi.js +0 -1
  162. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-B114c_Fi.js +0 -1
  163. package/dist/client/assets/dashboard-view-DxpkE7dL.js +0 -1
  164. package/dist/client/assets/index-Cv_ouAgx.js +0 -2959
  165. package/dist/client/assets/index-Dliz9s5K.css +0 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fusion/pi-claude-cli",
3
- "version": "0.78.0-beta.2",
3
+ "version": "0.78.0-beta.4",
4
4
  "type": "module",
5
5
  "private": true,
6
6
  "main": "index.ts",
@@ -209,15 +209,13 @@ declare class Database {
209
209
  getPath(): string;
210
210
  }
211
211
 
212
- type TaskColumnSortMode = "completion-date-desc" | "task-id-desc";
213
-
214
212
  declare const WORKFLOW_STEP_NOT_RUN_REASONS: readonly ["not-configured", "tooling-unavailable", "execution-mode-skip", "repository-context-unresolved"];
215
213
  type WorkflowStepNotRunReason = (typeof WORKFLOW_STEP_NOT_RUN_REASONS)[number];
216
214
 
217
215
  declare const THINKING_LEVELS: readonly ["off", "minimal", "low", "medium", "high", "xhigh", "max"];
218
216
  type ThinkingLevel = (typeof THINKING_LEVELS)[number];
219
- declare const COLUMNS: readonly ["triage", "todo", "in-progress", "in-review", "done", "archived"];
220
- type Column = (typeof COLUMNS)[number];
217
+ declare const COLUMNS: readonly ["triage", "todo", "in-progress", "in-review", "done"];
218
+ type Column = (typeof COLUMNS)[number] | "archived";
221
219
  type ColumnId = Column | (string & {});
222
220
  declare const TASK_PRIORITIES: readonly ["low", "normal", "high", "urgent"];
223
221
  type TaskPriority = (typeof TASK_PRIORITIES)[number];
@@ -1027,6 +1025,7 @@ interface WorkflowWorkItemTransitionPatch {
1027
1025
  nodeInstanceId?: string | null;
1028
1026
  now?: string;
1029
1027
  expectedState?: WorkflowWorkItemState;
1028
+ expectedLeaseOwner?: string | null;
1030
1029
  }
1031
1030
  interface WorkflowWorkItemDueFilter {
1032
1031
  projectId?: string;
@@ -1157,13 +1156,22 @@ interface WorkspaceLandIntent {
1157
1156
  resolvedAt?: string;
1158
1157
  }
1159
1158
 
1159
+ type WorkflowSelection = {
1160
+ workflowId: string;
1161
+ stepIds: string[];
1162
+ };
1163
+ type WorkflowSelectionCache = Map<string, WorkflowSelection | undefined>;
1164
+ type WorkflowSelectionReadTally = {
1165
+ batched: number;
1166
+ singles: number;
1167
+ };
1168
+
1160
1169
  interface TaskMoveLanes {
1161
1170
  readonly hold?: string;
1162
1171
  readonly intake?: string;
1163
1172
  readonly wip?: string;
1164
1173
  readonly review?: string;
1165
1174
  readonly complete?: string;
1166
- readonly archived?: string;
1167
1175
  readonly terminal?: readonly string[];
1168
1176
  }
1169
1177
 
@@ -1314,26 +1322,6 @@ declare class GlobalSettingsStore {
1314
1322
  private withLock;
1315
1323
  }
1316
1324
 
1317
- declare class ArchiveDatabase {
1318
- constructor(_fusionDir: string, _options?: {
1319
- inMemory?: boolean;
1320
- });
1321
- init(): void;
1322
- upsert(_entry: ArchivedTaskEntry): void;
1323
- list(): ArchivedTaskEntry[];
1324
- listPage(_limit: number, _offset: number): ArchivedTaskEntry[];
1325
- get(_id: string): ArchivedTaskEntry | undefined;
1326
- filterArchived(_ids: readonly string[]): Set<string>;
1327
- delete(_id: string): void;
1328
- get fts5Available(): boolean;
1329
- rebuildFts5Index(): boolean;
1330
- optimizeFts5(_mode?: "optimize" | "merge"): boolean;
1331
- getFtsIndexBytes(): number | null;
1332
- getArchivedRowCount(): number;
1333
- search(_query: string, _limit: number): ArchivedTaskEntry[];
1334
- close(): void;
1335
- }
1336
-
1337
1325
  type GoalStatus = "active" | "archived";
1338
1326
  interface Goal {
1339
1327
  id: string;
@@ -1922,6 +1910,8 @@ declare class MissionStore extends EventEmitter<MissionStoreEvents> {
1922
1910
  reconcileSupersededGeneratedFixFeatures(sliceId: string): {
1923
1911
  supersededCount: number;
1924
1912
  featureIds: string[];
1913
+ repairedCount: number;
1914
+ repairedFeatureIds: string[];
1925
1915
  };
1926
1916
  getFeatureLoopSnapshot(featureId: string): MissionFeatureLoopSnapshot;
1927
1917
  transitionLoopState(featureId: string, newState: FeatureLoopState): MissionFeature;
@@ -2051,7 +2041,7 @@ declare class AsyncMissionStore extends EventEmitter<MissionStoreEvents> {
2051
2041
  private getFeatureForStatusWrite;
2052
2042
  updateFeature(id: string, updates: Partial<MissionFeature>, options?: MissionUpdateOptions): Promise<MissionFeature>;
2053
2043
  updateFeatureStatus(featureId: string, status: FeatureStatus, options?: MissionUpdateOptions): Promise<MissionFeature>;
2054
- private archivedLanesFor;
2044
+ private historicalSentinelLanesFor;
2055
2045
  deleteFeature(id: string, force?: boolean): Promise<void>;
2056
2046
  reconcileFeatureDoneWithTerminalTask(featureId: string, taskId: string): Promise<MissionFeature>;
2057
2047
  claimDefinedFeatureTaskInTransaction(tx: DbTransaction, input: {
@@ -2070,7 +2060,7 @@ declare class AsyncMissionStore extends EventEmitter<MissionStoreEvents> {
2070
2060
  missionId: string;
2071
2061
  sliceId: string;
2072
2062
  }): Promise<MissionFeature>;
2073
- archiveDefinedFeatureBootstrapDuplicate(input: {
2063
+ deleteDefinedFeatureBootstrapDuplicate(input: {
2074
2064
  featureId: string;
2075
2065
  taskId: string;
2076
2066
  duplicateTaskId: string;
@@ -2118,6 +2108,8 @@ declare class AsyncMissionStore extends EventEmitter<MissionStoreEvents> {
2118
2108
  reconcileSupersededGeneratedFixFeatures(sliceId: string): Promise<{
2119
2109
  supersededCount: number;
2120
2110
  featureIds: string[];
2111
+ repairedCount: number;
2112
+ repairedFeatureIds: string[];
2121
2113
  }>;
2122
2114
  transitionLoopState(featureId: string, newState: FeatureLoopState): Promise<MissionFeature>;
2123
2115
  getFeatureLoopSnapshot(featureId: string): Promise<MissionFeatureLoopSnapshot>;
@@ -4398,6 +4390,62 @@ interface DeleteTaskIfResult {
4398
4390
  deleted: boolean;
4399
4391
  }
4400
4392
 
4393
+ interface MutateScriptInput {
4394
+ originalName?: string;
4395
+ name: string;
4396
+ command?: string;
4397
+ description?: string;
4398
+ delete?: boolean;
4399
+ }
4400
+ interface ScriptCatalogEntry {
4401
+ name: string;
4402
+ command: string;
4403
+ description?: string;
4404
+ }
4405
+
4406
+ type TaskColumnSortMode = "completion-date-desc" | "task-id-desc";
4407
+
4408
+ interface ListTasksOptions {
4409
+ limit?: number;
4410
+ offset?: number;
4411
+ includeArchived?: boolean;
4412
+ slim?: boolean;
4413
+ column?: ColumnId;
4414
+ columns?: readonly ColumnId[];
4415
+ excludeColumns?: readonly ColumnId[];
4416
+ sort?: "created-asc" | "completion-desc" | TaskColumnSortMode;
4417
+ startupMemo?: boolean;
4418
+ includeDeleted?: boolean;
4419
+ selectionCache?: WorkflowSelectionCache;
4420
+ selectionReadTally?: WorkflowSelectionReadTally;
4421
+ }
4422
+
4423
+ type ArchivedTaskReintegrationSource = "live-column" | "cold-storage";
4424
+ type ArchivedTaskReintegrationOutcome = "moved" | "restored" | "live-won" | "failed" | "retained";
4425
+ type ArchivedTaskReintegrationRetainedReason = "user-paused" | "failure-budget" | "malformed-snapshot";
4426
+ interface ArchivedTaskReintegrationItem {
4427
+ taskId: string;
4428
+ source: ArchivedTaskReintegrationSource;
4429
+ outcome: ArchivedTaskReintegrationOutcome;
4430
+ reason?: ArchivedTaskReintegrationRetainedReason;
4431
+ }
4432
+ interface ArchivedTaskReintegrationResult {
4433
+ movedCount: number;
4434
+ restoredCount: number;
4435
+ outcomes: ArchivedTaskReintegrationItem[];
4436
+ hasMore: boolean;
4437
+ }
4438
+ interface ArchivedTaskHistoryInspection {
4439
+ liveSentinels: Task[];
4440
+ coldEntries: ArchivedTaskEntry[];
4441
+ malformedColdEntryIds: string[];
4442
+ }
4443
+
4444
+ interface SupplementTaskHistoryResult {
4445
+ outcome: "supplemented" | "no-op" | "missing" | "user-paused";
4446
+ fields: string[];
4447
+ }
4448
+
4401
4449
  type PatchnodeEntryKind = "completed" | "reverted";
4402
4450
  interface PatchnodeEntry {
4403
4451
  entryId: string;
@@ -4464,7 +4512,7 @@ interface AgentHeartbeatRun {
4464
4512
  executionPrompt?: string;
4465
4513
  heartbeatProcedureSource?: "default" | "custom" | "default-no-task-override";
4466
4514
  }
4467
- declare const AGENT_PERMISSIONS: readonly ["tasks:assign", "tasks:create", "tasks:execute", "tasks:review", "tasks:merge", "tasks:delete", "tasks:archive", "agents:create", "agents:update", "agents:delete", "agents:view", "settings:read", "settings:update", "workflows:manage", "missions:manage", "automations:manage", "messages:send", "messages:read"];
4515
+ declare const AGENT_PERMISSIONS: readonly ["tasks:assign", "tasks:create", "tasks:execute", "tasks:review", "tasks:merge", "tasks:delete", "agents:create", "agents:update", "agents:delete", "agents:view", "settings:read", "settings:update", "workflows:manage", "missions:manage", "automations:manage", "messages:send", "messages:read"];
4468
4516
  type AgentPermission = (typeof AGENT_PERMISSIONS)[number];
4469
4517
  declare const PERMANENT_AGENT_ACTION_CATEGORIES: readonly ["git_write", "file_write_delete", "command_execution", "network_api", "task_agent_mutation", "review_gate_bypass", "file_scope", "none"];
4470
4518
  type PermanentAgentActionCategory = (typeof PERMANENT_AGENT_ACTION_CATEGORIES)[number];
@@ -5045,7 +5093,6 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
5045
5093
  configPath: string;
5046
5094
  _db: Database | null;
5047
5095
  activityListenersWired: boolean;
5048
- _archiveDb: ArchiveDatabase | null;
5049
5096
  readonly asyncLayer: AsyncDataLayer | null;
5050
5097
  readonly consumerId: string | null;
5051
5098
  private taskDeletedOutboxConsumer;
@@ -5132,14 +5179,15 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
5132
5179
  startTaskDeletedOutboxConsumer(): Promise<void>;
5133
5180
  stopTaskDeletedOutboxConsumer(): Promise<void>;
5134
5181
  get db(): Database;
5135
- get archiveDb(): ArchiveDatabase;
5136
5182
  buildTaskIdIntegrityFallbackReport(): TaskIdIntegrityReport;
5137
5183
  detectAndCacheTaskIdIntegrityReport(): TaskIdIntegrityReport;
5138
5184
  mergeTaskIdIntegrityReports(...reports: TaskIdIntegrityReport[]): TaskIdIntegrityReport;
5139
5185
  refreshTaskIdIntegrityReport(): TaskIdIntegrityReport;
5140
5186
  getTaskIdIntegrityReport(): TaskIdIntegrityReport;
5141
5187
  reconcileDistributedTaskIdStateOnOpen(): void;
5142
- init(): Promise<void>;
5188
+ init(options?: {
5189
+ skipArchiveReintegration?: boolean;
5190
+ }): Promise<void>;
5143
5191
  pgRowToTaskRow(row: Record<string, unknown>): TaskRow;
5144
5192
  rowToTask(row: TaskRow): Task;
5145
5193
  rowToBranchGroup(row: BranchGroupRow): BranchGroup;
@@ -5188,8 +5236,6 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
5188
5236
  taskIdExistsAnywhere(id: string): Promise<boolean>;
5189
5237
  assertTaskIdAvailable(id: string): Promise<void>;
5190
5238
  maybeResolveTombstonedTaskId(id: string, input: Pick<TaskCreateInput, "forceResurrect">, operation: "createTask" | "duplicateTask" | "refineTask"): Promise<void>;
5191
- isTaskArchived(id: string): boolean;
5192
- isTaskArchivedAsync(id: string): Promise<boolean>;
5193
5239
  findLiveDependents(id: string): string[];
5194
5240
  findLiveLineageChildren(id: string): Promise<string[]>;
5195
5241
  setupActivityLogListeners(): void;
@@ -5328,6 +5374,7 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
5328
5374
  project: Partial<ProjectSettings>;
5329
5375
  }>;
5330
5376
  updateSettings(patch: Partial<Settings>, changedBy?: ConfigChangedBy): Promise<Settings>;
5377
+ mutateScript(input: MutateScriptInput): Promise<ScriptCatalogEntry[]>;
5331
5378
  updateGlobalSettings(patch: Partial<GlobalSettings>, changedBy?: ConfigChangedBy): Promise<Settings>;
5332
5379
  getGlobalSettingsStore(): GlobalSettingsStore;
5333
5380
  readConfig(): Promise<BoardConfig>;
@@ -5396,7 +5443,7 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
5396
5443
  onTaskInserted?: (task: Task) => void;
5397
5444
  ownershipExemption?: IntakeOwnershipExemption;
5398
5445
  }): Promise<Task>;
5399
- _maybeAutoArchiveSameAgentDuplicateBackend(task: Task, input: TaskCreateInput): Promise<void>;
5446
+ _resolveSameAgentDuplicateIntakeBackend(task: Task, input: TaskCreateInput): Promise<void>;
5400
5447
  createTask(input: TaskCreateInput, options?: {
5401
5448
  onSummarize?: (description: string) => Promise<string | null>;
5402
5449
  settings?: {
@@ -5427,7 +5474,7 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
5427
5474
  onTaskInserted?: (task: Task) => void;
5428
5475
  ownershipExemption?: IntakeOwnershipExemption;
5429
5476
  }): Promise<Task>;
5430
- _maybeAutoArchiveSameAgentDuplicate(task: Task, input: TaskCreateInput): Promise<void>;
5477
+ _resolveSameAgentDuplicateIntake(task: Task, input: TaskCreateInput): Promise<void>;
5431
5478
  invokeTaskCreatedHook(task: Task): Promise<void>;
5432
5479
  duplicateTask(id: string, options?: {
5433
5480
  workflowId?: string | null;
@@ -5492,15 +5539,26 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
5492
5539
  sourceAgentId?: string | null;
5493
5540
  sourceParentTaskId?: string | null;
5494
5541
  }): Promise<Task[]>;
5495
- listTasks(options?: {
5542
+ listTasks(options?: ListTasksOptions): Promise<Task[]>;
5543
+ listCompletedTasks(options?: {
5496
5544
  limit?: number;
5497
5545
  offset?: number;
5498
- includeArchived?: boolean;
5499
5546
  slim?: boolean;
5500
- column?: ColumnId;
5501
- startupMemo?: boolean;
5502
- includeDeleted?: boolean;
5503
- }): Promise<Task[]>;
5547
+ sort?: TaskColumnSortMode;
5548
+ }): Promise<{
5549
+ tasks: Task[];
5550
+ total: number;
5551
+ hasMore: boolean;
5552
+ }>;
5553
+ inspectArchivedTaskHistory(): Promise<ArchivedTaskHistoryInspection>;
5554
+ readTaskHistoryArtifact(id: string): Promise<Task | undefined>;
5555
+ supplementTaskHistoryFromEvidence(id: string, evidence: Partial<Task>, options?: {
5556
+ dryRun?: boolean;
5557
+ }): Promise<SupplementTaskHistoryResult>;
5558
+ reconcileArchivedTasksIntoDone(options?: {
5559
+ limit?: number;
5560
+ maxFailureAttempts?: number;
5561
+ }): Promise<ArchivedTaskReintegrationResult>;
5504
5562
  getBranchProgressByTask(taskIds: readonly string[]): Promise<Map<string, Array<{
5505
5563
  branchId: string;
5506
5564
  nodeId: string;
@@ -5589,7 +5647,6 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
5589
5647
  }): Promise<void>;
5590
5648
  getTasksByAssignedAgent(agentId: string, options?: {
5591
5649
  pausedOnly?: boolean;
5592
- excludeArchived?: boolean;
5593
5650
  }): Promise<Task[]>;
5594
5651
  tryClaimCheckout(taskId: string, claim: {
5595
5652
  agentId: string;
@@ -6075,23 +6132,6 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
6075
6132
  source: "task-base-branch" | "task-branch-context" | "branch-group-integration" | "project-default" | "legacy-main";
6076
6133
  }): Promise<MergeDetails>;
6077
6134
  mergeTask(id: string): Promise<MergeResult>;
6078
- archiveAllDone(options?: {
6079
- removeLineageReferences?: boolean;
6080
- }): Promise<Task[]>;
6081
- archiveTask(id: string, optionsOrCleanup?: boolean | {
6082
- cleanup?: boolean;
6083
- removeLineageReferences?: boolean;
6084
- liveExecutionGuard?: "refuse" | "off";
6085
- }): Promise<Task>;
6086
- archiveTaskBackend(id: string, optionsOrCleanup: boolean | {
6087
- cleanup?: boolean;
6088
- removeLineageReferences?: boolean;
6089
- liveExecutionGuard?: "refuse" | "off";
6090
- }): Promise<Task>;
6091
- archiveTaskAndCleanup(id: string): Promise<Task>;
6092
- resolveUnarchiveTargetColumn(preArchiveColumn: unknown, taskId?: string): Promise<Column>;
6093
- readPreArchiveColumnFromTaskFile(dir: string): Promise<Column | undefined>;
6094
- unarchiveTask(id: string): Promise<Task>;
6095
6135
  moveToDone(task: Task, dir: string): Promise<void>;
6096
6136
  clearDoneTransientFields(task: Task): boolean;
6097
6137
  watch(): Promise<void>;
@@ -6162,7 +6202,6 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
6162
6202
  }): Promise<TaskDocumentWithTask[]>;
6163
6203
  getTaskDocument(taskId: string, key: string): Promise<TaskDocument | null>;
6164
6204
  upsertTaskDocument(taskId: string, input: TaskDocumentCreateInput): Promise<TaskDocument>;
6165
- publishArchivedTaskDocumentAddition(taskId: string, input: ArchivedTaskDocumentAdditionInput): Promise<ArchivedTaskDocumentAdditionResult>;
6166
6205
  getTaskDocumentRevisions(taskId: string, key: string, options?: {
6167
6206
  limit?: number;
6168
6207
  }): Promise<TaskDocumentRevision[]>;
@@ -6201,23 +6240,11 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
6201
6240
  migrateMovedSettingsToWorkflowValuesOnce(): Promise<void>;
6202
6241
  readRawProjectSettings(): Promise<Record<string, unknown>>;
6203
6242
  invalidateConfigCacheAfterMigration(): void;
6204
- readArchiveLog(): Promise<ArchivedTaskEntry[]>;
6205
- listArchivedTasks(options?: {
6206
- limit?: number;
6207
- offset?: number;
6208
- slim?: boolean;
6209
- sort?: TaskColumnSortMode;
6210
- sortMode?: TaskColumnSortMode;
6211
- }): Promise<{
6212
- tasks: Task[];
6213
- total: number;
6214
- hasMore: boolean;
6215
- }>;
6216
- findInArchive(id: string): Promise<ArchivedTaskEntry | undefined>;
6217
- migrateLegacyArchiveEntriesToArchiveDb(): void;
6218
- migrateActiveArchivedTasksToArchiveDb(): Promise<void>;
6219
- cleanupArchivedTasks(): Promise<string[]>;
6220
- restoreFromArchive(entry: ArchivedTaskEntry): Promise<Task>;
6243
+ restoreFromArchive(entry: ArchivedTaskEntry, options?: {
6244
+ targetColumn?: string;
6245
+ now?: string;
6246
+ authoritativeTask?: Task;
6247
+ }): Promise<Task>;
6221
6248
  generatePromptFromArchiveEntry(entry: ArchivedTaskEntry): string;
6222
6249
  createWorkflowStep(input: WorkflowStepInput): Promise<WorkflowStep>;
6223
6250
  setPluginWorkflowStepTemplates(templates: Array<{
@@ -6326,14 +6353,9 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
6326
6353
  clearTaskWorkflowSelection(taskId: string): Promise<void>;
6327
6354
  close(): Promise<void>;
6328
6355
  get fts5Available(): boolean;
6329
- get archiveFts5Available(): boolean;
6330
6356
  optimizeFts5(mode?: "optimize" | "merge"): boolean;
6331
- optimizeArchiveFts5(mode?: "optimize" | "merge"): boolean;
6332
6357
  getFtsIndexBytes(): number | null;
6333
- getArchiveFtsIndexBytes(): number | null;
6334
6358
  getTaskRowCount(): number;
6335
- getArchivedRowCount(): number;
6336
- rebuildArchiveFts5Index(): boolean;
6337
6359
  walCheckpoint(mode?: "PASSIVE" | "TRUNCATE"): {
6338
6360
  busy: number;
6339
6361
  log: number;
@@ -7331,20 +7353,6 @@ interface TaskDocumentCreateInput {
7331
7353
  expectedRevision?: number;
7332
7354
  expectedContentHash?: string;
7333
7355
  }
7334
- interface ArchivedTaskDocumentAdditionInput {
7335
- key: string;
7336
- appendContent: string;
7337
- expectedRevision: number;
7338
- expectedContentHash: string;
7339
- author: string;
7340
- reason: string;
7341
- }
7342
- interface ArchivedTaskDocumentAdditionResult {
7343
- document: TaskDocument;
7344
- previousRevision: number;
7345
- previousContentHash: string;
7346
- appendedContentHash: string;
7347
- }
7348
7356
  interface TaskDocumentWithTask extends TaskDocument {
7349
7357
  taskTitle?: string;
7350
7358
  taskDescription?: string;
@@ -8339,6 +8347,7 @@ interface GlobalSettings {
8339
8347
  dismissModalsOnOutsideClick?: boolean;
8340
8348
  skipConfirmationDialogs?: boolean;
8341
8349
  quickAddSubmitOnEnter?: boolean;
8350
+ chatSubmitOnEnter?: "auto" | "always" | "never";
8342
8351
  chatSnippets?: ChatSnippet[];
8343
8352
  language?: Locale;
8344
8353
  defaultProvider?: string;
@@ -8782,12 +8791,7 @@ interface ProjectSettings {
8782
8791
  preserveProgressOnStuckRequeue?: boolean;
8783
8792
  maxPostReviewFixes?: number;
8784
8793
  maintenanceIntervalMs?: number;
8785
- autoArchiveDoneTasksEnabled?: boolean;
8786
- autoArchiveDoneAfterMs?: number;
8787
- doneAutoArchiveDays?: number;
8788
- autoArchiveDuplicateTasksEnabled?: boolean;
8789
8794
  triageDuplicateResolution?: "prompt" | "keep" | "delete";
8790
- archiveAgentLogMode?: ArchiveAgentLogMode;
8791
8795
  autoUpdatePrStatus?: boolean;
8792
8796
  githubCommentOnDone?: boolean;
8793
8797
  githubCommentTemplate?: string;
@@ -8861,6 +8865,9 @@ interface ProjectSettings {
8861
8865
  prTitlePromptInstructions?: string;
8862
8866
  prDescriptionPromptInstructions?: string;
8863
8867
  scripts?: Record<string, string>;
8868
+ scriptMetadata?: Record<string, {
8869
+ description?: string;
8870
+ }>;
8864
8871
  setupScript?: string;
8865
8872
  insightExtractionEnabled?: boolean;
8866
8873
  insightExtractionSchedule?: string;