@xenosystem/agent-interface-ui 0.1.36 → 0.1.37

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 (244) hide show
  1. package/dist/adapters/agentHostPlatformBridge.d.ts.map +1 -1
  2. package/dist/adapters/agentHostPlatformBridge.js +21 -1
  3. package/dist/adapters/agentHostPlatformBridge.js.map +1 -1
  4. package/dist/agent.css +2180 -7
  5. package/dist/components/agent/AgentAuthGate.d.ts +86 -0
  6. package/dist/components/agent/AgentAuthGate.d.ts.map +1 -0
  7. package/dist/components/agent/AgentAuthGate.js +189 -0
  8. package/dist/components/agent/AgentAuthGate.js.map +1 -0
  9. package/dist/components/agent/AgentInterface.d.ts +8 -1
  10. package/dist/components/agent/AgentInterface.d.ts.map +1 -1
  11. package/dist/components/agent/AgentInterface.js +27 -8
  12. package/dist/components/agent/AgentInterface.js.map +1 -1
  13. package/dist/components/agent/settings/sections/AccountWorkspacePanel.d.ts.map +1 -1
  14. package/dist/components/agent/settings/sections/AccountWorkspacePanel.js +37 -6
  15. package/dist/components/agent/settings/sections/AccountWorkspacePanel.js.map +1 -1
  16. package/dist/components/agent/settings/sections/WorkspaceDirectoryAccessSection.d.ts.map +1 -1
  17. package/dist/components/agent/settings/sections/WorkspaceDirectoryAccessSection.js +1 -0
  18. package/dist/components/agent/settings/sections/WorkspaceDirectoryAccessSection.js.map +1 -1
  19. package/dist/components/product/XenoAgentProductHeader.d.ts +2 -1
  20. package/dist/components/product/XenoAgentProductHeader.d.ts.map +1 -1
  21. package/dist/components/product/XenoAgentProductHeader.js +2 -2
  22. package/dist/components/product/XenoAgentProductHeader.js.map +1 -1
  23. package/dist/index.d.ts +10 -0
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +27 -4
  26. package/dist/index.js.map +1 -1
  27. package/dist/stores/workspaceStore.d.ts.map +1 -1
  28. package/dist/stores/workspaceStore.js +1 -0
  29. package/dist/stores/workspaceStore.js.map +1 -1
  30. package/package.json +8 -7
  31. package/src/agent.css +5 -0
  32. package/src/fonts/inter/OFL.txt +92 -0
  33. package/src/fonts/inter/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2 +0 -0
  34. package/src/fonts/inter/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2 +0 -0
  35. package/src/fonts/inter/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2 +0 -0
  36. package/src/fonts/inter/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2 +0 -0
  37. package/src/fonts/inter/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2 +0 -0
  38. package/src/fonts/inter/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2 +0 -0
  39. package/src/fonts/inter/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2 +0 -0
  40. package/src/fonts/inter.css +75 -0
  41. package/dist/adapters/xenoAgentCompatibilityBridge.d.ts +0 -14
  42. package/dist/adapters/xenoAgentCompatibilityBridge.d.ts.map +0 -1
  43. package/dist/adapters/xenoAgentCompatibilityBridge.js +0 -247
  44. package/dist/adapters/xenoAgentCompatibilityBridge.js.map +0 -1
  45. package/dist/adapters/xenoAgentHostCatalog.d.ts +0 -40
  46. package/dist/adapters/xenoAgentHostCatalog.d.ts.map +0 -1
  47. package/dist/adapters/xenoAgentHostCatalog.js +0 -231
  48. package/dist/adapters/xenoAgentHostCatalog.js.map +0 -1
  49. package/dist/components/agent/AIStatusIndicator.d.ts +0 -25
  50. package/dist/components/agent/AIStatusIndicator.d.ts.map +0 -1
  51. package/dist/components/agent/AIStatusIndicator.js +0 -85
  52. package/dist/components/agent/AIStatusIndicator.js.map +0 -1
  53. package/dist/components/agent/AgentNotificationBanner.d.ts +0 -10
  54. package/dist/components/agent/AgentNotificationBanner.d.ts.map +0 -1
  55. package/dist/components/agent/AgentNotificationBanner.js +0 -28
  56. package/dist/components/agent/AgentNotificationBanner.js.map +0 -1
  57. package/dist/components/agent/AgentView.d.ts +0 -185
  58. package/dist/components/agent/AgentView.d.ts.map +0 -1
  59. package/dist/components/agent/AgentView.js +0 -7850
  60. package/dist/components/agent/AgentView.js.map +0 -1
  61. package/dist/components/agent/AssistantTurnStatusNotice.d.ts +0 -16
  62. package/dist/components/agent/AssistantTurnStatusNotice.d.ts.map +0 -1
  63. package/dist/components/agent/AssistantTurnStatusNotice.js +0 -54
  64. package/dist/components/agent/AssistantTurnStatusNotice.js.map +0 -1
  65. package/dist/components/agent/CommandToolCard.d.ts +0 -11
  66. package/dist/components/agent/CommandToolCard.d.ts.map +0 -1
  67. package/dist/components/agent/CommandToolCard.js +0 -29
  68. package/dist/components/agent/CommandToolCard.js.map +0 -1
  69. package/dist/components/agent/GhostTextArea.d.ts +0 -13
  70. package/dist/components/agent/GhostTextArea.d.ts.map +0 -1
  71. package/dist/components/agent/GhostTextArea.js +0 -21
  72. package/dist/components/agent/GhostTextArea.js.map +0 -1
  73. package/dist/components/agent/LiveConversationCollaboration.d.ts +0 -27
  74. package/dist/components/agent/LiveConversationCollaboration.d.ts.map +0 -1
  75. package/dist/components/agent/LiveConversationCollaboration.js +0 -127
  76. package/dist/components/agent/LiveConversationCollaboration.js.map +0 -1
  77. package/dist/components/agent/SdkSessionPanel.d.ts +0 -25
  78. package/dist/components/agent/SdkSessionPanel.d.ts.map +0 -1
  79. package/dist/components/agent/SdkSessionPanel.js +0 -15
  80. package/dist/components/agent/SdkSessionPanel.js.map +0 -1
  81. package/dist/components/agent/SlashCommandAutocomplete.d.ts +0 -12
  82. package/dist/components/agent/SlashCommandAutocomplete.d.ts.map +0 -1
  83. package/dist/components/agent/SlashCommandAutocomplete.js +0 -33
  84. package/dist/components/agent/SlashCommandAutocomplete.js.map +0 -1
  85. package/dist/components/agent/collaborationWindow.d.ts +0 -11
  86. package/dist/components/agent/collaborationWindow.d.ts.map +0 -1
  87. package/dist/components/agent/collaborationWindow.js +0 -10
  88. package/dist/components/agent/collaborationWindow.js.map +0 -1
  89. package/dist/components/agent/conversationCollaborationAppendJournal.d.ts +0 -25
  90. package/dist/components/agent/conversationCollaborationAppendJournal.d.ts.map +0 -1
  91. package/dist/components/agent/conversationCollaborationAppendJournal.js +0 -118
  92. package/dist/components/agent/conversationCollaborationAppendJournal.js.map +0 -1
  93. package/dist/components/agent/conversationCollaborationController.d.ts +0 -96
  94. package/dist/components/agent/conversationCollaborationController.d.ts.map +0 -1
  95. package/dist/components/agent/conversationCollaborationController.js +0 -597
  96. package/dist/components/agent/conversationCollaborationController.js.map +0 -1
  97. package/dist/components/agent/destructiveConfirmation.d.ts +0 -76
  98. package/dist/components/agent/destructiveConfirmation.d.ts.map +0 -1
  99. package/dist/components/agent/destructiveConfirmation.js +0 -231
  100. package/dist/components/agent/destructiveConfirmation.js.map +0 -1
  101. package/dist/components/agent/editorOperationAuthority.d.ts +0 -29
  102. package/dist/components/agent/editorOperationAuthority.d.ts.map +0 -1
  103. package/dist/components/agent/editorOperationAuthority.js +0 -73
  104. package/dist/components/agent/editorOperationAuthority.js.map +0 -1
  105. package/dist/components/agent/mainAssistant.d.ts +0 -24
  106. package/dist/components/agent/mainAssistant.d.ts.map +0 -1
  107. package/dist/components/agent/mainAssistant.js +0 -24
  108. package/dist/components/agent/mainAssistant.js.map +0 -1
  109. package/dist/components/agent/nativeTuiComposerInput.d.ts +0 -42
  110. package/dist/components/agent/nativeTuiComposerInput.d.ts.map +0 -1
  111. package/dist/components/agent/nativeTuiComposerInput.js +0 -51
  112. package/dist/components/agent/nativeTuiComposerInput.js.map +0 -1
  113. package/dist/components/agent/settings/shared/InAppConfirmationDialog.d.ts +0 -25
  114. package/dist/components/agent/settings/shared/InAppConfirmationDialog.d.ts.map +0 -1
  115. package/dist/components/agent/settings/shared/InAppConfirmationDialog.js +0 -89
  116. package/dist/components/agent/settings/shared/InAppConfirmationDialog.js.map +0 -1
  117. package/dist/components/agent/toolCardDisplay.d.ts +0 -24
  118. package/dist/components/agent/toolCardDisplay.d.ts.map +0 -1
  119. package/dist/components/agent/toolCardDisplay.js +0 -85
  120. package/dist/components/agent/toolCardDisplay.js.map +0 -1
  121. package/dist/components/agent/webJobProgressView.d.ts +0 -90
  122. package/dist/components/agent/webJobProgressView.d.ts.map +0 -1
  123. package/dist/components/agent/webJobProgressView.js +0 -104
  124. package/dist/components/agent/webJobProgressView.js.map +0 -1
  125. package/dist/components/ui/CodeBlock.d.ts +0 -8
  126. package/dist/components/ui/CodeBlock.d.ts.map +0 -1
  127. package/dist/components/ui/CodeBlock.js +0 -89
  128. package/dist/components/ui/CodeBlock.js.map +0 -1
  129. package/dist/platformApiTypes.d.ts +0 -4176
  130. package/dist/platformApiTypes.d.ts.map +0 -1
  131. package/dist/platformApiTypes.js +0 -2
  132. package/dist/platformApiTypes.js.map +0 -1
  133. package/dist/platformBridge.d.ts +0 -43
  134. package/dist/platformBridge.d.ts.map +0 -1
  135. package/dist/platformBridge.js +0 -67
  136. package/dist/platformBridge.js.map +0 -1
  137. package/dist/providerSelector.d.ts +0 -28
  138. package/dist/providerSelector.d.ts.map +0 -1
  139. package/dist/providerSelector.js +0 -104
  140. package/dist/providerSelector.js.map +0 -1
  141. package/dist/services/connectionMode.d.ts +0 -13
  142. package/dist/services/connectionMode.d.ts.map +0 -1
  143. package/dist/services/connectionMode.js +0 -31
  144. package/dist/services/connectionMode.js.map +0 -1
  145. package/dist/sessionTabs.d.ts +0 -48
  146. package/dist/sessionTabs.d.ts.map +0 -1
  147. package/dist/sessionTabs.js +0 -106
  148. package/dist/sessionTabs.js.map +0 -1
  149. package/dist/stores/acpAgentStore.d.ts +0 -264
  150. package/dist/stores/acpAgentStore.d.ts.map +0 -1
  151. package/dist/stores/acpAgentStore.js +0 -825
  152. package/dist/stores/acpAgentStore.js.map +0 -1
  153. package/dist/stores/agentChatStore.d.ts +0 -693
  154. package/dist/stores/agentChatStore.d.ts.map +0 -1
  155. package/dist/stores/agentChatStore.js +0 -5876
  156. package/dist/stores/agentChatStore.js.map +0 -1
  157. package/dist/stores/authStore.d.ts +0 -26
  158. package/dist/stores/authStore.d.ts.map +0 -1
  159. package/dist/stores/authStore.js +0 -163
  160. package/dist/stores/authStore.js.map +0 -1
  161. package/dist/stores/suggestionStore.d.ts +0 -36
  162. package/dist/stores/suggestionStore.d.ts.map +0 -1
  163. package/dist/stores/suggestionStore.js +0 -187
  164. package/dist/stores/suggestionStore.js.map +0 -1
  165. package/dist/stores/tabStore.d.ts +0 -30
  166. package/dist/stores/tabStore.d.ts.map +0 -1
  167. package/dist/stores/tabStore.js +0 -252
  168. package/dist/stores/tabStore.js.map +0 -1
  169. package/dist/stores/xenoChatStore.d.ts +0 -88
  170. package/dist/stores/xenoChatStore.d.ts.map +0 -1
  171. package/dist/stores/xenoChatStore.js +0 -583
  172. package/dist/stores/xenoChatStore.js.map +0 -1
  173. package/dist/types/agentEditor.d.ts +0 -40
  174. package/dist/types/agentEditor.d.ts.map +0 -1
  175. package/dist/types/agentEditor.js +0 -2
  176. package/dist/types/agentEditor.js.map +0 -1
  177. package/dist/types/agentRuntimeProvider.d.ts +0 -2
  178. package/dist/types/agentRuntimeProvider.d.ts.map +0 -1
  179. package/dist/types/agentRuntimeProvider.js +0 -2
  180. package/dist/types/agentRuntimeProvider.js.map +0 -1
  181. package/dist/utils/acpExecutionAuthority.d.ts +0 -26
  182. package/dist/utils/acpExecutionAuthority.d.ts.map +0 -1
  183. package/dist/utils/acpExecutionAuthority.js +0 -46
  184. package/dist/utils/acpExecutionAuthority.js.map +0 -1
  185. package/dist/utils/advertisedReasoning.d.ts +0 -25
  186. package/dist/utils/advertisedReasoning.d.ts.map +0 -1
  187. package/dist/utils/advertisedReasoning.js +0 -62
  188. package/dist/utils/advertisedReasoning.js.map +0 -1
  189. package/dist/utils/agentAttachedContextPrompt.d.ts +0 -2
  190. package/dist/utils/agentAttachedContextPrompt.d.ts.map +0 -1
  191. package/dist/utils/agentAttachedContextPrompt.js +0 -2
  192. package/dist/utils/agentAttachedContextPrompt.js.map +0 -1
  193. package/dist/utils/agentModelContext.d.ts +0 -2
  194. package/dist/utils/agentModelContext.d.ts.map +0 -1
  195. package/dist/utils/agentModelContext.js +0 -2
  196. package/dist/utils/agentModelContext.js.map +0 -1
  197. package/dist/utils/agentReasoningEffort.d.ts +0 -3
  198. package/dist/utils/agentReasoningEffort.d.ts.map +0 -1
  199. package/dist/utils/agentReasoningEffort.js +0 -2
  200. package/dist/utils/agentReasoningEffort.js.map +0 -1
  201. package/dist/utils/agentRuntimeProvider.d.ts +0 -3
  202. package/dist/utils/agentRuntimeProvider.d.ts.map +0 -1
  203. package/dist/utils/agentRuntimeProvider.js +0 -2
  204. package/dist/utils/agentRuntimeProvider.js.map +0 -1
  205. package/dist/utils/clipboardCopy.d.ts +0 -4
  206. package/dist/utils/clipboardCopy.d.ts.map +0 -1
  207. package/dist/utils/clipboardCopy.js +0 -27
  208. package/dist/utils/clipboardCopy.js.map +0 -1
  209. package/dist/utils/cloudModels.d.ts +0 -3
  210. package/dist/utils/cloudModels.d.ts.map +0 -1
  211. package/dist/utils/cloudModels.js +0 -181
  212. package/dist/utils/cloudModels.js.map +0 -1
  213. package/dist/utils/conversationRuntime.d.ts +0 -3
  214. package/dist/utils/conversationRuntime.d.ts.map +0 -1
  215. package/dist/utils/conversationRuntime.js +0 -2
  216. package/dist/utils/conversationRuntime.js.map +0 -1
  217. package/dist/utils/fileCreateIntent.d.ts +0 -16
  218. package/dist/utils/fileCreateIntent.d.ts.map +0 -1
  219. package/dist/utils/fileCreateIntent.js +0 -123
  220. package/dist/utils/fileCreateIntent.js.map +0 -1
  221. package/dist/utils/legacyAgentRuntimeEvents.d.ts +0 -2
  222. package/dist/utils/legacyAgentRuntimeEvents.d.ts.map +0 -1
  223. package/dist/utils/legacyAgentRuntimeEvents.js +0 -2
  224. package/dist/utils/legacyAgentRuntimeEvents.js.map +0 -1
  225. package/dist/utils/markdownWindowsPaths.d.ts +0 -2
  226. package/dist/utils/markdownWindowsPaths.d.ts.map +0 -1
  227. package/dist/utils/markdownWindowsPaths.js +0 -2
  228. package/dist/utils/markdownWindowsPaths.js.map +0 -1
  229. package/dist/utils/modelAvailability.d.ts +0 -11
  230. package/dist/utils/modelAvailability.d.ts.map +0 -1
  231. package/dist/utils/modelAvailability.js +0 -10
  232. package/dist/utils/modelAvailability.js.map +0 -1
  233. package/dist/utils/providerAvailability.d.ts +0 -8
  234. package/dist/utils/providerAvailability.d.ts.map +0 -1
  235. package/dist/utils/providerAvailability.js +0 -13
  236. package/dist/utils/providerAvailability.js.map +0 -1
  237. package/dist/utils/providerCommandArgs.d.ts +0 -11
  238. package/dist/utils/providerCommandArgs.d.ts.map +0 -1
  239. package/dist/utils/providerCommandArgs.js +0 -18
  240. package/dist/utils/providerCommandArgs.js.map +0 -1
  241. package/dist/utils/workspaceSelectionContinuation.d.ts +0 -2
  242. package/dist/utils/workspaceSelectionContinuation.d.ts.map +0 -1
  243. package/dist/utils/workspaceSelectionContinuation.js +0 -2
  244. package/dist/utils/workspaceSelectionContinuation.js.map +0 -1
@@ -1,4176 +0,0 @@
1
- interface SpeechRecognitionEvent extends Event {
2
- readonly resultIndex: number;
3
- readonly results: SpeechRecognitionResultList;
4
- }
5
- interface SpeechRecognitionResultList {
6
- readonly length: number;
7
- item(index: number): SpeechRecognitionResult;
8
- [index: number]: SpeechRecognitionResult;
9
- }
10
- interface SpeechRecognitionResult {
11
- readonly isFinal: boolean;
12
- readonly length: number;
13
- item(index: number): SpeechRecognitionAlternative;
14
- [index: number]: SpeechRecognitionAlternative;
15
- }
16
- interface SpeechRecognitionAlternative {
17
- readonly transcript: string;
18
- readonly confidence: number;
19
- }
20
- interface SpeechRecognitionErrorEvent extends Event {
21
- readonly error: string;
22
- readonly message: string;
23
- }
24
- interface SpeechRecognition extends EventTarget {
25
- continuous: boolean;
26
- interimResults: boolean;
27
- lang: string;
28
- maxAlternatives: number;
29
- onresult: ((event: SpeechRecognitionEvent) => void) | null;
30
- onerror: ((event: SpeechRecognitionErrorEvent) => void) | null;
31
- onend: (() => void) | null;
32
- onstart: (() => void) | null;
33
- start(): void;
34
- stop(): void;
35
- abort(): void;
36
- }
37
- interface AgentContextCompactionMetrics {
38
- strategyVersion: number;
39
- contextDigest: string;
40
- rawMessageCount: number;
41
- sentMessageCount: number;
42
- compactedMessageCount: number;
43
- estimatedRawTokens: number;
44
- estimatedSentTokens: number;
45
- retainedAnchorCount: number;
46
- retainedArtifactCount: number;
47
- retainedGrantedDirectoryCount: number;
48
- }
49
- interface SpeechRecognitionConstructor {
50
- new (): SpeechRecognition;
51
- }
52
- import type { ConversationEditorDiff } from './types/agentEditor.js';
53
- type ScopedIpcParams = Record<string, unknown>;
54
- type PathIpcInput = string | ScopedIpcParams;
55
- type WebSearchIpcInput = string | ({
56
- query: string;
57
- count?: number;
58
- } & ScopedIpcParams);
59
- type ConvertOptions = {
60
- quality?: number;
61
- sampleRate?: number;
62
- bitsPerSample?: number;
63
- compressionLevel?: number;
64
- };
65
- export type MarketplaceListingKind = 'app-native' | 'app-sandboxed' | 'panel' | 'plugin' | 'mcp' | 'model' | 'mind' | 'swarm';
66
- export type MarketplaceTrustTier = 'official' | 'verified' | 'community';
67
- export type MarketplacePricingModel = 'free' | 'one_time' | 'subscription' | 'pay_per_use' | 'rental';
68
- export type MarketplaceEntitlementKind = 'owned' | 'subscribed' | 'rental';
69
- export type MarketplaceEntitlementStatus = 'active' | 'expired' | 'revoked';
70
- export interface MarketplacePricing {
71
- model: MarketplacePricingModel;
72
- priceCredits: number | null;
73
- priceUsd: number | null;
74
- period: string | null;
75
- meterUnit: string | null;
76
- }
77
- export interface MarketplaceListing {
78
- id: string;
79
- slug: string;
80
- kind: MarketplaceListingKind;
81
- title: string;
82
- summary: string;
83
- category: string | null;
84
- trustTier: MarketplaceTrustTier;
85
- iconUrl: string | null;
86
- developerName: string | null;
87
- currentVersion: string | null;
88
- pricing: MarketplacePricing[];
89
- rating: number | null;
90
- reviewCount: number | null;
91
- downloads: number | null;
92
- nativeAppId?: string | null;
93
- isDevFixture?: boolean;
94
- }
95
- export interface MarketplaceListingVersion {
96
- version: string;
97
- releaseNotes: string | null;
98
- declaredCapabilities: string[];
99
- publishedAt: string | null;
100
- }
101
- export interface MarketplaceListingDetail extends MarketplaceListing {
102
- description: string;
103
- screenshots: string[];
104
- versions: MarketplaceListingVersion[];
105
- reviews: Array<{
106
- id: string;
107
- userName: string;
108
- rating: number;
109
- text: string;
110
- createdAt: string;
111
- }>;
112
- declaredCapabilities: string[];
113
- }
114
- export interface MarketplaceEntitlement {
115
- listingId: string;
116
- listingSlug: string | null;
117
- kind: MarketplaceEntitlementKind;
118
- status: MarketplaceEntitlementStatus;
119
- grantedAt: string | null;
120
- expiresAt: string | null;
121
- }
122
- /** Canonical host DTO; a duplicate here previously hid artifact/candidate IDs. */
123
- export type LandingQueueView = import('@xenosystem/agent-interface-contract').LandingQueueResponse;
124
- export interface XenoAPI {
125
- ownedBrowser?: {
126
- session(input: import('@xenosystem/agent-interface-contract').AgentBrowserSessionClientRequest): Promise<import('@xenosystem/agent-interface-contract').AgentBrowserSessionResult>;
127
- command(input: Omit<import('@xenosystem/agent-interface-contract').AgentBrowserRequest, 'client'>): Promise<import('@xenosystem/agent-interface-contract').AgentBrowserResult>;
128
- };
129
- /** Tool-free requests are not the legacy streaming chat API. */
130
- auxiliaryInference?: Pick<XenoAPI['llm'], 'chatOnce' | 'localModels' | 'localWarmup'>;
131
- workspaceRules?: {
132
- request(input: import('@xenosystem/agent-interface-contract').AgentWorkspaceRulesRequest): Promise<import('@xenosystem/agent-interface-contract').AgentWorkspaceRulesResult>;
133
- };
134
- account?: {
135
- request(input: import('@xenosystem/agent-interface-contract').AgentAccountRequest): Promise<import('@xenosystem/agent-interface-contract').AgentAccountResult>;
136
- };
137
- workforce?: {
138
- request(input: import('@xenosystem/agent-interface-contract').AgentWorkforceRequest): Promise<import('@xenosystem/agent-interface-contract').AgentWorkforceResult>;
139
- };
140
- notifications?: {
141
- request(input: import('@xenosystem/agent-interface-contract').AgentNotificationsRequest): Promise<import('@xenosystem/agent-interface-contract').AgentNotificationsResult>;
142
- };
143
- window: {
144
- minimize: () => Promise<void>;
145
- maximize: () => Promise<void>;
146
- close: () => Promise<void>;
147
- isMaximized: () => Promise<boolean>;
148
- openExternal: (url: string) => Promise<void>;
149
- onMaximizedChange: (callback: (isMaximized: boolean) => void) => void;
150
- };
151
- agentHost?: {
152
- request: (method: string, input: unknown) => Promise<unknown>;
153
- subscribe: (callback: (event: unknown) => void) => string;
154
- unsubscribe: (subscriptionId: string) => boolean;
155
- };
156
- debug?: {
157
- log: (scope: string, message: string, meta?: Record<string, unknown>) => void;
158
- };
159
- perf?: {
160
- rendererReady: () => Promise<{
161
- success: boolean;
162
- metrics: {
163
- processStart: number;
164
- appReady?: number;
165
- windowCreated?: number;
166
- windowShown?: number;
167
- rendererReady?: number;
168
- toAppReady?: number;
169
- toWindowCreated?: number;
170
- toWindowShown?: number;
171
- toRendererReady?: number;
172
- appVersion: string;
173
- date: string;
174
- };
175
- }>;
176
- getMetrics: () => Promise<{
177
- success: boolean;
178
- data: unknown;
179
- }>;
180
- };
181
- auth: {
182
- status: () => Promise<{
183
- authenticated: boolean;
184
- }>;
185
- getWebToken: () => Promise<string | null>;
186
- getApiKey: () => Promise<string | null>;
187
- saveCredentials: (webToken: string) => Promise<{
188
- success: boolean;
189
- }>;
190
- logout: () => Promise<{
191
- success: boolean;
192
- }>;
193
- openOAuth: (provider: string) => Promise<{
194
- success: boolean;
195
- cancelled?: boolean;
196
- user?: unknown;
197
- apiKey?: string;
198
- error?: string;
199
- }>;
200
- cancelOAuth: () => Promise<{
201
- success: boolean;
202
- }>;
203
- loginWithEmail: (email: string, password: string) => Promise<{
204
- success: boolean;
205
- token?: string;
206
- apiKey?: string;
207
- user?: unknown;
208
- error?: string;
209
- }>;
210
- registerWithEmail: (name: string, email: string, password: string) => Promise<{
211
- success: boolean;
212
- token?: string;
213
- apiKey?: string;
214
- user?: unknown;
215
- error?: string;
216
- }>;
217
- validateToken: (token: string) => Promise<{
218
- valid: boolean;
219
- user?: unknown;
220
- apiKey?: string;
221
- error?: string;
222
- }>;
223
- };
224
- content: {
225
- fetchJson: (params: {
226
- url: string;
227
- auth?: boolean;
228
- timeoutMs?: number;
229
- } & ScopedIpcParams) => Promise<{
230
- success: boolean;
231
- status: number;
232
- error: string | null;
233
- data: unknown;
234
- }>;
235
- };
236
- apps?: {
237
- list: () => Promise<Array<{
238
- id: string;
239
- name: string;
240
- description: string;
241
- icon: string;
242
- executable: string;
243
- status: string;
244
- version?: string;
245
- category: string;
246
- }>>;
247
- get: (appId: string) => Promise<{
248
- id: string;
249
- name: string;
250
- description: string;
251
- icon: string;
252
- executable: string;
253
- status: string;
254
- version?: string;
255
- category: string;
256
- } | null>;
257
- launch: (appId: string) => Promise<{
258
- success: boolean;
259
- error?: string;
260
- }>;
261
- isRunning: (appId: string) => Promise<boolean>;
262
- stop: (appId: string) => Promise<{
263
- success: boolean;
264
- error?: string;
265
- }>;
266
- onLaunchRequest: (callback: (appId: string) => void) => void;
267
- };
268
- creativeApps?: {
269
- list: () => Promise<Array<{
270
- id: string;
271
- name: string;
272
- description: string;
273
- version: string;
274
- installedVersion: string | null;
275
- status: 'not_installed' | 'installed' | 'running' | 'update_available';
276
- installPath: string | null;
277
- downloadUrl: string;
278
- notes: string | null;
279
- category: 'studio' | 'office' | 'corpo' | 'automation';
280
- }>>;
281
- install: (appId: string) => Promise<{
282
- success: boolean;
283
- error?: string;
284
- }>;
285
- cancelInstall: (appId: string) => Promise<{
286
- success: boolean;
287
- error?: string;
288
- }>;
289
- launch: (appId: string) => Promise<{
290
- success: boolean;
291
- error?: string;
292
- }>;
293
- stop: (appId: string) => Promise<{
294
- success: boolean;
295
- error?: string;
296
- }>;
297
- checkUpdate: (appId: string) => Promise<{
298
- available: boolean;
299
- version: string;
300
- installedVersion?: string;
301
- notes?: string;
302
- }>;
303
- uninstall: (appId: string) => Promise<{
304
- success: boolean;
305
- error?: string;
306
- }>;
307
- openInstallLocation: (appId: string) => Promise<{
308
- success: boolean;
309
- error?: string;
310
- }>;
311
- onInstallProgress: (callback: (data: {
312
- appId: string;
313
- phase: 'downloading' | 'installing' | 'complete' | 'error';
314
- percent: number;
315
- bytesDownloaded: number;
316
- totalBytes: number;
317
- error?: string;
318
- }) => void) => void;
319
- offInstallProgress: () => void;
320
- onStatusChanged: (callback: (data: {
321
- reason: string;
322
- running: Record<string, boolean>;
323
- timestamp: number;
324
- }) => void) => void;
325
- offStatusChanged: () => void;
326
- };
327
- marketplace?: {
328
- catalog: (params?: {
329
- kind?: string;
330
- category?: string;
331
- trustTier?: string;
332
- q?: string;
333
- page?: number;
334
- pageSize?: number;
335
- }) => Promise<{
336
- success: boolean;
337
- listings: MarketplaceListing[];
338
- total: number;
339
- page?: number;
340
- pageSize?: number;
341
- devFixture?: boolean;
342
- error?: string;
343
- }>;
344
- listing: (slug: string) => Promise<{
345
- success: boolean;
346
- listing?: MarketplaceListingDetail;
347
- devFixture?: boolean;
348
- error?: string;
349
- }>;
350
- entitlements: () => Promise<{
351
- success: boolean;
352
- entitlements: MarketplaceEntitlement[];
353
- authenticated: boolean;
354
- error?: string;
355
- }>;
356
- purchase: (params: {
357
- listingId: string;
358
- versionId?: string;
359
- }) => Promise<{
360
- success: boolean;
361
- entitlement?: MarketplaceEntitlement | null;
362
- transaction?: unknown;
363
- error?: string;
364
- }>;
365
- subscribe: (params: {
366
- listingId: string;
367
- period?: string;
368
- }) => Promise<{
369
- success: boolean;
370
- entitlement?: MarketplaceEntitlement | null;
371
- transaction?: unknown;
372
- error?: string;
373
- }>;
374
- rent: (params: {
375
- listingId: string;
376
- period?: string;
377
- }) => Promise<{
378
- success: boolean;
379
- entitlement?: MarketplaceEntitlement | null;
380
- transaction?: unknown;
381
- error?: string;
382
- }>;
383
- install: (params: {
384
- listingId: string;
385
- kind: string;
386
- nativeAppId?: string | null;
387
- versionId?: string;
388
- }) => Promise<{
389
- success: boolean;
390
- error?: string;
391
- notAvailableYet?: boolean;
392
- }>;
393
- launch: (params: {
394
- nativeAppId: string;
395
- }) => Promise<{
396
- success: boolean;
397
- error?: string;
398
- }>;
399
- nativeStatus: (params: {
400
- nativeAppId: string;
401
- }) => Promise<{
402
- success: boolean;
403
- status: 'not_installed' | 'installed' | 'running' | 'update_available';
404
- installPath: string | null;
405
- installedVersion: string | null;
406
- error?: string;
407
- }>;
408
- invoke: (params: {
409
- listingId: string;
410
- input?: unknown;
411
- }) => Promise<{
412
- success: boolean;
413
- output?: unknown;
414
- usage?: unknown;
415
- creditsCharged?: number | null;
416
- error?: string;
417
- }>;
418
- openExternal: (url: string) => Promise<{
419
- success: boolean;
420
- error?: string;
421
- }>;
422
- onInstallProgress: (callback: (data: {
423
- listingId: string | null;
424
- appId: string;
425
- kind: string;
426
- phase: 'downloading' | 'installing' | 'complete' | 'error';
427
- percent: number;
428
- bytesDownloaded: number;
429
- totalBytes: number;
430
- error?: string;
431
- }) => void) => void;
432
- offInstallProgress: () => void;
433
- };
434
- pixelBridge?: {
435
- status: () => Promise<{
436
- success: boolean;
437
- status: {
438
- running: boolean;
439
- processDetected: boolean;
440
- bridgeReady: boolean;
441
- stale: boolean;
442
- activeProjectPath: string | null;
443
- activeProjectName: string | null;
444
- activeDocumentId: string | null;
445
- activeDocumentName: string | null;
446
- hasOpenDocument: boolean;
447
- updatedAt: number | null;
448
- };
449
- error?: string;
450
- }>;
451
- sendImage: (params: {
452
- dataUrl: string;
453
- sourceName?: string;
454
- layerName?: string;
455
- workspaceId?: string;
456
- teamId?: string;
457
- agentId?: string;
458
- caller?: {
459
- userId?: string;
460
- workspaceId?: string;
461
- teamId?: string;
462
- agentId?: string;
463
- allowedDirectories?: string[];
464
- };
465
- }) => Promise<{
466
- success: boolean;
467
- commandId?: string;
468
- error?: string;
469
- policyDecision?: {
470
- allowed: boolean;
471
- reason: string;
472
- };
473
- status?: {
474
- running: boolean;
475
- bridgeReady: boolean;
476
- hasOpenDocument: boolean;
477
- activeProjectName: string | null;
478
- activeDocumentName: string | null;
479
- };
480
- }>;
481
- };
482
- motionBridge?: {
483
- status: () => Promise<{
484
- success: boolean;
485
- status: {
486
- running: boolean;
487
- processDetected: boolean;
488
- bridgeReady: boolean;
489
- stale: boolean;
490
- activeProjectPath: string | null;
491
- activeProjectName: string | null;
492
- activeSequenceId: string | null;
493
- activeSequenceName: string | null;
494
- currentFrame: number | null;
495
- hasOpenProject: boolean;
496
- updatedAt: number | null;
497
- };
498
- error?: string;
499
- }>;
500
- sendImage: (params: {
501
- dataUrl: string;
502
- sourceName?: string;
503
- mediaName?: string;
504
- durationFrames?: number;
505
- placeOnTimeline?: boolean;
506
- workspaceId?: string;
507
- teamId?: string;
508
- agentId?: string;
509
- caller?: {
510
- userId?: string;
511
- workspaceId?: string;
512
- teamId?: string;
513
- agentId?: string;
514
- allowedDirectories?: string[];
515
- };
516
- }) => Promise<{
517
- success: boolean;
518
- commandId?: string;
519
- error?: string;
520
- policyDecision?: {
521
- allowed: boolean;
522
- reason: string;
523
- };
524
- status?: {
525
- running: boolean;
526
- bridgeReady: boolean;
527
- hasOpenProject: boolean;
528
- activeProjectName: string | null;
529
- activeSequenceName: string | null;
530
- };
531
- }>;
532
- };
533
- credits?: {
534
- balance: () => Promise<{
535
- balance: number;
536
- currency: string;
537
- lastUpdated: string;
538
- }>;
539
- transactions: (limit?: number) => Promise<Array<{
540
- id: string;
541
- operation: string;
542
- credits: number;
543
- timestamp: string;
544
- description: string;
545
- }>>;
546
- refresh: () => Promise<{
547
- success: boolean;
548
- }>;
549
- purchase: (amount: number) => Promise<{
550
- success: boolean;
551
- creditsAdded?: number;
552
- newBalance?: number;
553
- error?: string;
554
- }>;
555
- getPaymentMethod: () => Promise<{
556
- hasMethod: boolean;
557
- card?: {
558
- brand: string;
559
- last4: string;
560
- expMonth: number;
561
- expYear: number;
562
- name: string;
563
- };
564
- }>;
565
- savePaymentMethod: (data: Record<string, string>) => Promise<{
566
- success: boolean;
567
- card?: {
568
- brand: string;
569
- last4: string;
570
- expMonth: number;
571
- expYear: number;
572
- name: string;
573
- };
574
- error?: string;
575
- }>;
576
- };
577
- settings: {
578
- get: () => Promise<{
579
- theme: 'dark' | 'light' | 'system';
580
- startOnBoot: boolean;
581
- minimizeToTray: boolean;
582
- checkUpdatesAutomatically: boolean;
583
- showNotifications: boolean;
584
- defaultApp: string | null;
585
- language: string;
586
- analytics: boolean;
587
- }>;
588
- getValue: (key: string) => Promise<unknown>;
589
- set: (updates: Record<string, unknown>) => Promise<Record<string, unknown>>;
590
- reset: () => Promise<Record<string, unknown>>;
591
- };
592
- bgRemoval?: {
593
- checkAvailable: () => Promise<{
594
- available: boolean;
595
- error: string | null;
596
- }>;
597
- checkModel: () => Promise<{
598
- exists: boolean;
599
- path: string | null;
600
- error: string | null;
601
- }>;
602
- initModel: (useGpu?: boolean) => Promise<{
603
- loaded: boolean;
604
- modelPath: string | null;
605
- usingGpu: boolean;
606
- error: string | null;
607
- }>;
608
- getStatus: () => Promise<{
609
- loaded: boolean;
610
- modelPath: string | null;
611
- usingGpu: boolean;
612
- error: string | null;
613
- }>;
614
- processFile: (inputPath: string, outputPath?: string) => Promise<{
615
- success: boolean;
616
- outputPath: string | null;
617
- error: string | null;
618
- processingTimeMs: number | null;
619
- }>;
620
- processBuffer: (base64Data: string) => Promise<{
621
- success: boolean;
622
- data: string | null;
623
- error: string | null;
624
- }>;
625
- downloadModel: () => Promise<{
626
- success: boolean;
627
- error?: string;
628
- }>;
629
- onDownloadProgress: (callback: (progress: {
630
- downloaded: number;
631
- total: number;
632
- progress: number;
633
- }) => void) => void;
634
- offDownloadProgress: () => void;
635
- };
636
- llm: {
637
- chat: (params: {
638
- requestId: string;
639
- model: string;
640
- messages: Array<{
641
- role: string;
642
- content: string;
643
- }>;
644
- temperature?: number;
645
- max_tokens?: number;
646
- system?: string;
647
- think?: boolean;
648
- enableTools?: boolean;
649
- }) => Promise<{
650
- success: boolean;
651
- requestId: string;
652
- }>;
653
- chatOnce: (params: {
654
- model: string;
655
- messages: Array<{
656
- role: string;
657
- content: string;
658
- }>;
659
- temperature?: number;
660
- max_tokens?: number;
661
- system?: string;
662
- think?: boolean;
663
- }) => Promise<{
664
- success: boolean;
665
- content: string;
666
- thinking: string;
667
- error: string | null;
668
- }>;
669
- localWarmup: (params: {
670
- model: string;
671
- timeoutMs?: number;
672
- }) => Promise<{
673
- success: boolean;
674
- loadedModel: string | null;
675
- error: string | null;
676
- }>;
677
- localRuntimeStart: () => Promise<{
678
- success: boolean;
679
- runtime: {
680
- available: boolean;
681
- managed: boolean;
682
- loadedModelId: string | null;
683
- loadedModelName: string | null;
684
- error: string | null;
685
- };
686
- error: string | null;
687
- }>;
688
- localRuntimeStop: () => Promise<{
689
- success: boolean;
690
- runtime: {
691
- available: boolean;
692
- managed: boolean;
693
- loadedModelId: string | null;
694
- loadedModelName: string | null;
695
- error: string | null;
696
- };
697
- error: string | null;
698
- }>;
699
- localModelInstall: (params: {
700
- modelId: string;
701
- repo?: string;
702
- file?: string;
703
- quantization?: string;
704
- source?: 'r2' | 'huggingface';
705
- downloadUrl?: string;
706
- artifactKey?: string;
707
- filename?: string;
708
- sizeBytes?: number;
709
- sha256?: string;
710
- }) => Promise<{
711
- success: boolean;
712
- installedPath?: string;
713
- error?: string;
714
- }>;
715
- localModelRemove: (params: {
716
- modelId: string;
717
- path: string;
718
- }) => Promise<{
719
- success: boolean;
720
- error?: string;
721
- }>;
722
- abort: (requestId: string) => Promise<{
723
- success: boolean;
724
- error?: string;
725
- }>;
726
- models: () => Promise<{
727
- success: boolean;
728
- models: Array<{
729
- id: string;
730
- object: string;
731
- availability?: 'available' | 'degraded' | 'unavailable';
732
- availabilityReason?: string | null;
733
- source?: 'api' | 'platform-auth' | 'public-fallback' | 'static-fallback';
734
- }>;
735
- error: string | null;
736
- }>;
737
- localModelCatalog: () => Promise<{
738
- success: boolean;
739
- source: 'platform' | 'fallback';
740
- catalogVersion: string | null;
741
- updatedAt: string | null;
742
- models: Array<{
743
- id: string;
744
- name: string;
745
- provider: string;
746
- category: 'all' | 'llm' | 'image' | 'video' | 'audio' | 'upscale' | 'embedding';
747
- description: string;
748
- size: string;
749
- sizeBytes?: number | null;
750
- parameters?: string | null;
751
- tags: string[];
752
- license?: string | null;
753
- runtime?: string | null;
754
- installable: boolean;
755
- installSpec?: {
756
- source?: 'r2' | 'huggingface';
757
- repo?: string;
758
- file?: string;
759
- quantization?: string;
760
- downloadUrl?: string | null;
761
- artifactKey?: string | null;
762
- filename?: string | null;
763
- sizeBytes?: number | null;
764
- sha256?: string | null;
765
- expectedLocalIds: string[];
766
- } | null;
767
- unavailableReason?: string | null;
768
- }>;
769
- error: string | null;
770
- }>;
771
- localModels: () => Promise<{
772
- success: boolean;
773
- models: Array<{
774
- id: string;
775
- name: string;
776
- tag: string;
777
- size: number;
778
- parameterSize: string | null;
779
- family: string | null;
780
- path: string;
781
- loaded: boolean;
782
- }>;
783
- runtime: {
784
- available: boolean;
785
- managed: boolean;
786
- loadedModelId: string | null;
787
- loadedModelName: string | null;
788
- error: string | null;
789
- };
790
- error: string | null;
791
- }>;
792
- onLocalModelInstallProgress: (callback: (data: {
793
- modelId: string;
794
- phase: 'starting' | 'downloading' | 'complete' | 'error';
795
- progress: number;
796
- message: string;
797
- installedPath?: string;
798
- }) => void) => void;
799
- offLocalModelInstallProgress: () => void;
800
- onChatChunk: (callback: (data: {
801
- requestId: string;
802
- content: string;
803
- thinking: string;
804
- done: boolean;
805
- }) => void) => void;
806
- offChatChunk: () => void;
807
- onChatError: (callback: (data: {
808
- requestId: string;
809
- error: string;
810
- }) => void) => void;
811
- offChatError: () => void;
812
- onToolCall: (callback: (data: {
813
- requestId: string;
814
- status: 'start' | 'end';
815
- toolName: string;
816
- toolParams?: Record<string, unknown>;
817
- result?: string;
818
- success?: boolean;
819
- }) => void) => void;
820
- offToolCall: () => void;
821
- };
822
- agent: {
823
- run: (params: {
824
- requestId: string;
825
- conversationId?: string;
826
- sdkSessionId?: string;
827
- previousRunId?: string;
828
- subagentRunId?: string;
829
- workspaceId?: string;
830
- teamId?: string;
831
- agentId?: string;
832
- providerId?: string;
833
- providerKind?: 'sdk-native' | 'xeno-cloud';
834
- mode?: 'chat' | 'development';
835
- model: string;
836
- messages: Array<{
837
- role: string;
838
- content: string;
839
- }>;
840
- systemPrompt?: string;
841
- maxIterations?: number;
842
- enableThinking?: boolean;
843
- reasoningOptionId?: string;
844
- capabilities?: {
845
- terminal?: boolean;
846
- browser?: boolean;
847
- fileRead?: boolean;
848
- fileWrite?: boolean;
849
- appLaunch?: boolean;
850
- webSearch?: boolean;
851
- codeExecution?: boolean;
852
- imageGeneration?: boolean;
853
- dataAnalysis?: boolean;
854
- };
855
- permissionProfile?: 'standard' | 'read-only' | 'edit-with-approval' | 'trusted-workspace' | 'plan';
856
- allowedDirectories?: string[];
857
- approvalRules?: Array<Record<string, unknown>>;
858
- contextCompaction?: AgentContextCompactionMetrics;
859
- }) => Promise<{
860
- success: boolean;
861
- requestId?: string;
862
- error?: string;
863
- hostBinding?: import('@xenosystem/agent-interface-contract').AgentSessionHostBindingV1;
864
- activeLane?: import('@xenosystem/agent-interface-contract').ProviderLaneProjectionV1;
865
- lanes?: import('@xenosystem/agent-interface-contract').ProviderLaneProjectionV1[];
866
- }>;
867
- cancel: (requestId: string) => Promise<{
868
- success: boolean;
869
- error?: string;
870
- }>;
871
- onTextChunk: (callback: (data: {
872
- requestId: string;
873
- text: string;
874
- }) => void) => void;
875
- offTextChunk: () => void;
876
- onToolStart: (callback: (data: {
877
- requestId: string;
878
- toolCallId?: string;
879
- name: string;
880
- input: unknown;
881
- startedAt?: number;
882
- }) => void) => void;
883
- offToolStart: () => void;
884
- onToolEnd: (callback: (data: {
885
- requestId: string;
886
- toolCallId?: string;
887
- name: string;
888
- result: string;
889
- success: boolean;
890
- startedAt?: number;
891
- endedAt?: number;
892
- durationMs?: number;
893
- diff?: ConversationEditorDiff;
894
- }) => void) => void;
895
- offToolEnd: () => void;
896
- onRuntimeEvent: (callback: (data: {
897
- requestId: string;
898
- event: Record<string, unknown>;
899
- }) => void) => void;
900
- offRuntimeEvent: () => void;
901
- onTaskEvent: (callback: (data: {
902
- requestId: string;
903
- action: 'create' | 'update' | 'clear';
904
- task?: {
905
- id: string;
906
- text: string;
907
- detail?: string;
908
- status?: 'pending' | 'in_progress' | 'done' | 'blocked';
909
- order?: number;
910
- };
911
- taskId?: string;
912
- patch?: {
913
- text?: string;
914
- detail?: string;
915
- status?: 'pending' | 'in_progress' | 'done' | 'blocked';
916
- order?: number;
917
- };
918
- }) => void) => void;
919
- offTaskEvent: () => void;
920
- onDone: (callback: (data: {
921
- requestId: string;
922
- }) => void) => void;
923
- offDone: () => void;
924
- onError: (callback: (data: {
925
- requestId: string;
926
- error: string;
927
- context?: string;
928
- }) => void) => void;
929
- offError: () => void;
930
- onPermissionRequest: (callback: (data: {
931
- requestId: string;
932
- permissionId: string;
933
- toolName: string;
934
- path: string;
935
- directory: string;
936
- browserOrigin?: string;
937
- allowAlwaysOptionId?: string;
938
- rejectAlwaysOptionId?: string;
939
- }) => void) => void;
940
- offPermissionRequest: () => void;
941
- onAskUserRequest: (callback: (data: {
942
- requestId: string;
943
- askUserId: string;
944
- question: string;
945
- options?: string[];
946
- context?: string;
947
- }) => void) => void;
948
- offAskUserRequest: () => void;
949
- onChooseDirectoryRequest: (callback: (data: {
950
- requestId: string;
951
- chooseDirectoryId: string;
952
- title?: string;
953
- }) => void) => void;
954
- offChooseDirectoryRequest: () => void;
955
- subscribeChooseDirectoryRequested: (callback: (data: unknown) => void) => string;
956
- unsubscribeChooseDirectoryRequested: (subscriptionId: string) => boolean;
957
- onWorkspacePlacementRequest: (callback: (data: {
958
- requestId: string;
959
- workspacePlacementId: string;
960
- directory: string;
961
- title?: string;
962
- }) => void) => void;
963
- offWorkspacePlacementRequest: () => void;
964
- subscribeWorkspacePlacementRequested: (callback: (data: unknown) => void) => string;
965
- unsubscribeWorkspacePlacementRequested: (subscriptionId: string) => boolean;
966
- grantAccess: (params: {
967
- permissionId: string;
968
- directory: string;
969
- selectedOptionId?: string;
970
- }) => Promise<{
971
- success: boolean;
972
- error?: string;
973
- }>;
974
- denyAccess: (params: {
975
- permissionId: string;
976
- selectedOptionId?: string;
977
- }) => Promise<{
978
- success: boolean;
979
- error?: string;
980
- }>;
981
- steerTurn: (params: {
982
- conversationId: string;
983
- requestId: string;
984
- instruction: string;
985
- }) => Promise<{
986
- success: boolean;
987
- error?: string;
988
- }>;
989
- resumeTurn: (params: {
990
- conversationId: string;
991
- requestId: string;
992
- }) => Promise<{
993
- success: boolean;
994
- error?: string;
995
- }>;
996
- /**
997
- * What is waiting to run for this conversation, and how to take it
998
- * back out.
999
- *
1000
- * 🔴 These exist because the host's queue had no surface at all.
1001
- * Typing during a turn the agent cannot take mid-flight becomes a
1002
- * queued instruction, and until now a person was told that had
1003
- * happened with no way to see it or undo it.
1004
- */
1005
- /**
1006
- * Messages withheld from a run pending a human (coordination §6).
1007
- *
1008
- * 🔴 `available: false` means this host does not coordinate at all,
1009
- * which is a different fact from a run with nothing held. A surface
1010
- * that showed an empty list for both would wait for approvals that
1011
- * can never arrive.
1012
- */
1013
- listHeldMessages: (params: {
1014
- runId: string;
1015
- }) => Promise<{
1016
- available: boolean;
1017
- runId: string;
1018
- held: Array<{
1019
- id: string;
1020
- fromRunId: string;
1021
- text: string;
1022
- sentAt: number;
1023
- }>;
1024
- reason?: string;
1025
- }>;
1026
- releaseHeldMessage: (params: {
1027
- runId: string;
1028
- messageId: string;
1029
- }) => Promise<{
1030
- status: 'delivered' | 'expired' | 'refused' | 'held';
1031
- messageId: string;
1032
- reason?: string;
1033
- }>;
1034
- /**
1035
- * Pins or clears a run's inbound-message policy (§6).
1036
- *
1037
- * `policy: null` returns the run to the derived default and is NOT the
1038
- * same as 'accept', which pins the permissive answer.
1039
- */
1040
- setInboundPolicy: (params: {
1041
- runId: string;
1042
- policy: 'accept' | 'hold' | 'refuse' | null;
1043
- }) => Promise<{
1044
- ok: boolean;
1045
- explicit?: 'accept' | 'hold' | 'refuse';
1046
- reason?: string;
1047
- }>;
1048
- listQueuedInstructions: (params: {
1049
- conversationId: string;
1050
- }) => Promise<{
1051
- conversationId: string;
1052
- /**
1053
- * 🔴 `queuedByYou`, never the raw instance id.
1054
- *
1055
- * The contract carries `queuedByInstanceId` "for provenance in the
1056
- * timeline" and no surface read it. Rendering an opaque id would be
1057
- * noise; the useful question is whether ANOTHER surface queued this,
1058
- * which matters before you drop it — the same reason the sessions
1059
- * board surfaces `othersWatching`.
1060
- *
1061
- * Derived in the bridge because the bridge already holds this
1062
- * surface's identity and already answers exactly this question when
1063
- * routing PTY events. A panel doing its own comparison would be a
1064
- * second copy of that rule.
1065
- */
1066
- queue: Array<{
1067
- id: string;
1068
- instruction: string;
1069
- queuedAt: string;
1070
- queuedByYou: boolean;
1071
- }>;
1072
- turnActive: boolean;
1073
- }>;
1074
- dropQueuedInstruction: (params: {
1075
- conversationId: string;
1076
- instructionId?: string;
1077
- }) => Promise<{
1078
- success: boolean;
1079
- safeError?: string;
1080
- }>;
1081
- listPermissionRules: () => Promise<{
1082
- success: boolean;
1083
- rules: Array<{
1084
- id: string;
1085
- decision: 'allow' | 'deny';
1086
- toolKind?: string;
1087
- pathPrefix?: string;
1088
- createdAt?: number;
1089
- }>;
1090
- error?: string;
1091
- }>;
1092
- revokePermissionRule: (params: {
1093
- ruleId: string;
1094
- }) => Promise<{
1095
- success: boolean;
1096
- revoked: boolean;
1097
- error?: string;
1098
- }>;
1099
- answerAskUser: (params: {
1100
- askUserId: string;
1101
- answer: string;
1102
- selectedOption?: string;
1103
- cancelled?: boolean;
1104
- }) => Promise<{
1105
- success: boolean;
1106
- error?: string;
1107
- }>;
1108
- answerChooseDirectory: (params: {
1109
- requestId?: string;
1110
- chooseDirectoryId: string;
1111
- path?: string;
1112
- cancelled?: boolean;
1113
- error?: string;
1114
- }) => Promise<{
1115
- success: boolean;
1116
- error?: string;
1117
- }>;
1118
- answerWorkspacePlacement: (params: {
1119
- requestId?: string;
1120
- workspacePlacementId: string;
1121
- directory?: string;
1122
- choice?: 'inbox' | 'reuse' | 'create';
1123
- workspaceName?: string;
1124
- result?: string;
1125
- cancelled?: boolean;
1126
- error?: string;
1127
- }) => Promise<{
1128
- success: boolean;
1129
- error?: string;
1130
- }>;
1131
- listSdkSessions: (params?: {
1132
- role?: string;
1133
- workingDirectory?: string;
1134
- limit?: number;
1135
- }) => Promise<{
1136
- success: boolean;
1137
- sessions?: unknown[];
1138
- error?: string;
1139
- }>;
1140
- showSdkSession: (params: {
1141
- sessionId: string;
1142
- }) => Promise<{
1143
- success: boolean;
1144
- session?: unknown;
1145
- sessionDir?: string;
1146
- checkpoints?: unknown[];
1147
- error?: string;
1148
- }>;
1149
- attachSdkSession: (params: {
1150
- conversationId: string;
1151
- sessionId: string;
1152
- }) => Promise<{
1153
- success: boolean;
1154
- session?: unknown;
1155
- sessionDir?: string;
1156
- sessionHistoryPath?: string;
1157
- coordinationSessionId?: string;
1158
- checkpoints?: unknown[];
1159
- error?: string;
1160
- }>;
1161
- detachSdkSession: (params: {
1162
- conversationId: string;
1163
- }) => Promise<{
1164
- success: boolean;
1165
- error?: string;
1166
- }>;
1167
- deleteSdkSession: (params: {
1168
- sessionId: string;
1169
- }) => Promise<{
1170
- success: boolean;
1171
- error?: string;
1172
- }>;
1173
- cleanSdkSessions: (params: {
1174
- workingDirectory: string;
1175
- excludeSessionIds?: string[];
1176
- }) => Promise<{
1177
- success: boolean;
1178
- result?: unknown;
1179
- error?: string;
1180
- }>;
1181
- listSdkCheckpoints: (params: {
1182
- sessionId: string;
1183
- }) => Promise<{
1184
- success: boolean;
1185
- checkpoints?: unknown[];
1186
- error?: string;
1187
- }>;
1188
- restoreSdkCheckpoint: (params: {
1189
- sessionId: string;
1190
- checkpointId: string;
1191
- conversationId?: string;
1192
- }) => Promise<{
1193
- success: boolean;
1194
- restored?: unknown;
1195
- pendingRuntimeRestore?: boolean;
1196
- error?: string;
1197
- }>;
1198
- deleteSdkCheckpoint: (params: {
1199
- sessionId: string;
1200
- checkpointId: string;
1201
- }) => Promise<{
1202
- success: boolean;
1203
- error?: string;
1204
- }>;
1205
- readSdkTaskOutput: (params: {
1206
- taskId: string;
1207
- offset?: number;
1208
- }) => Promise<{
1209
- success: boolean;
1210
- output?: string;
1211
- error?: string;
1212
- command?: string;
1213
- status?: 'running' | 'completed' | 'failed' | 'stopped' | 'unknown';
1214
- exitCode?: number | null;
1215
- totalSize?: number;
1216
- }>;
1217
- stopSdkTask: (params: {
1218
- taskId: string;
1219
- }) => Promise<{
1220
- success: boolean;
1221
- output?: string;
1222
- error?: string;
1223
- command?: string;
1224
- status?: 'running' | 'completed' | 'failed' | 'stopped' | 'unknown';
1225
- exitCode?: number | null;
1226
- totalSize?: number;
1227
- }>;
1228
- };
1229
- agentsCloud?: {
1230
- status: () => Promise<{
1231
- success: boolean;
1232
- authenticated: boolean;
1233
- ok?: boolean;
1234
- capabilities?: string[];
1235
- version?: string;
1236
- error?: string;
1237
- code?: string;
1238
- }>;
1239
- createRun: (params: {
1240
- prompt: string;
1241
- model?: string;
1242
- title?: string;
1243
- previousRunId?: string;
1244
- workspace?: string;
1245
- budget?: {
1246
- maxCredits?: number;
1247
- };
1248
- }) => Promise<{
1249
- success: boolean;
1250
- run?: import('@xenosystem/agent-interface-contract').AgentRunRecord;
1251
- error?: string;
1252
- code?: string;
1253
- status?: number;
1254
- }>;
1255
- listRuns: (params?: {
1256
- limit?: number;
1257
- }) => Promise<{
1258
- success: boolean;
1259
- runs?: import('@xenosystem/agent-interface-contract').RunListItem[];
1260
- error?: string;
1261
- code?: string;
1262
- }>;
1263
- getRun: (params: {
1264
- runId: string;
1265
- }) => Promise<{
1266
- success: boolean;
1267
- run?: import('@xenosystem/agent-interface-contract').AgentRunRecord;
1268
- error?: string;
1269
- code?: string;
1270
- }>;
1271
- attach: (params: {
1272
- requestId: string;
1273
- runId: string;
1274
- }) => Promise<{
1275
- success: boolean;
1276
- requestId?: string;
1277
- runId?: string;
1278
- error?: string;
1279
- code?: string;
1280
- }>;
1281
- stop: (params: {
1282
- requestId?: string;
1283
- runId?: string;
1284
- }) => Promise<{
1285
- success: boolean;
1286
- run?: import('@xenosystem/agent-interface-contract').AgentRunRecord;
1287
- error?: string;
1288
- code?: string;
1289
- }>;
1290
- onRunStatus: (callback: (data: {
1291
- requestId: string;
1292
- runId: string;
1293
- status?: string;
1294
- statusReason?: string | null;
1295
- creditsHeld?: number | null;
1296
- creditsSettled?: number | null;
1297
- url?: string;
1298
- }) => void) => void;
1299
- offRunStatus: () => void;
1300
- };
1301
- workspace: {
1302
- lifecycle?: (input: Omit<import('@xenosystem/agent-interface-contract').AgentWorkspaceLifecycleRequest, 'command'>) => Promise<import('@xenosystem/agent-interface-contract').AgentWorkspaceLifecycleResult>;
1303
- schedule?: (input: import('@xenosystem/agent-interface-contract').AgentScheduleRequest) => Promise<import('@xenosystem/agent-interface-contract').AgentScheduleResult>;
1304
- environment?: (input: import('@xenosystem/agent-interface-contract').AgentEnvironmentRequest) => Promise<import('@xenosystem/agent-interface-contract').AgentEnvironmentResult>;
1305
- pickDirectory: () => Promise<{
1306
- success: boolean;
1307
- path: string | null;
1308
- error: string | null;
1309
- }>;
1310
- pickExecutable: () => Promise<{
1311
- success: boolean;
1312
- path: string | null;
1313
- error: string | null;
1314
- }>;
1315
- listDirectory: (params: {
1316
- dirPath: string;
1317
- allowedDirs: string[];
1318
- }) => Promise<{
1319
- success: boolean;
1320
- entries: Array<{
1321
- name: string;
1322
- path: string;
1323
- size: number;
1324
- modified: string;
1325
- type: 'file' | 'directory';
1326
- extension: string;
1327
- }>;
1328
- error: string | null;
1329
- }>;
1330
- readFile: (params: {
1331
- path: string;
1332
- allowedDirs: string[];
1333
- conversationId?: string;
1334
- }) => Promise<{
1335
- success: boolean;
1336
- path: string | null;
1337
- content: string;
1338
- bytes: number;
1339
- error: string | null;
1340
- }>;
1341
- getFileOpenOptions: (params: {
1342
- path: string;
1343
- allowedDirs: string[];
1344
- conversationId?: string;
1345
- }) => Promise<{
1346
- success: boolean;
1347
- path: string | null;
1348
- defaultApp: {
1349
- name: string;
1350
- } | null;
1351
- options: Array<{
1352
- target: 'cursor' | 'antigravity' | 'default' | 'explorer' | 'terminal' | 'git-bash' | 'wsl';
1353
- label: string;
1354
- }>;
1355
- revealLabel: string;
1356
- error: string | null;
1357
- }>;
1358
- openFileWith: (params: {
1359
- path: string;
1360
- target: 'cursor' | 'antigravity' | 'default' | 'explorer' | 'terminal' | 'git-bash' | 'wsl';
1361
- allowedDirs: string[];
1362
- conversationId?: string;
1363
- }) => Promise<{
1364
- success: boolean;
1365
- path: string | null;
1366
- target: 'cursor' | 'antigravity' | 'default' | 'explorer' | 'terminal' | 'git-bash' | 'wsl' | null;
1367
- error: string | null;
1368
- }>;
1369
- runCommand: (params: {
1370
- conversationId?: string;
1371
- workspaceId?: string;
1372
- teamId?: string;
1373
- agentId?: string;
1374
- command: string;
1375
- cwd?: string;
1376
- allowedDirs: string[];
1377
- timeoutMs?: number;
1378
- }) => Promise<{
1379
- success: boolean;
1380
- stdout: string;
1381
- stderr: string;
1382
- exitCode: number | null;
1383
- cwd: string | null;
1384
- error: string | null;
1385
- /**
1386
- * Output hit the ceiling and was trimmed.
1387
- *
1388
- * OPTIONAL here while REQUIRED on the contract, and the asymmetry is
1389
- * deliberate: the contract describes what THIS host produces, and it
1390
- * always knows. This describes what a preload happens to deliver,
1391
- * which may be an older host that predates the field. Absent
1392
- * therefore means "this host cannot say" — which is exactly why it
1393
- * must not be defaulted to `false` on the way through, since that
1394
- * would assert output was complete on no evidence.
1395
- */
1396
- truncated?: boolean;
1397
- }>;
1398
- terminalStart: (params: {
1399
- conversationId?: string;
1400
- command: string;
1401
- cwd?: string;
1402
- allowedDirs: string[];
1403
- timeoutMs?: number;
1404
- }) => Promise<{
1405
- success: boolean;
1406
- terminalId: string | null;
1407
- cwd: string | null;
1408
- error: string | null;
1409
- }>;
1410
- terminalStop: (params: {
1411
- terminalId: string;
1412
- }) => Promise<{
1413
- success: boolean;
1414
- error: string | null;
1415
- }>;
1416
- ptyStart: (params: {
1417
- conversationId?: string;
1418
- cwd?: string;
1419
- allowedDirs: string[];
1420
- cols?: number;
1421
- rows?: number;
1422
- profile?: import('@xenosystem/agent-interface-contract').ProviderSessionPtyProfile;
1423
- }) => Promise<{
1424
- success: boolean;
1425
- terminalId: string | null;
1426
- cwd: string | null;
1427
- code?: import('@xenosystem/agent-interface-contract').AgentCockpitErrorCode;
1428
- error: string | null;
1429
- }>;
1430
- xenoTuiAttach?: (params: {
1431
- conversationId: string;
1432
- workspaceMode: 'agent' | 'chat';
1433
- workingDirectory?: string;
1434
- workspaceId?: string;
1435
- providerKind: 'sdk-native' | 'xeno-cloud' | 'acp-provider';
1436
- providerId?: string;
1437
- acpAgentConfigId?: string;
1438
- model?: string;
1439
- cols?: number;
1440
- rows?: number;
1441
- }) => Promise<import('@xenosystem/agent-interface-contract').AgentXenoTuiAttachResult & {
1442
- lanes?: import('@xenosystem/agent-interface-contract').ProviderLaneProjectionV1[];
1443
- }>;
1444
- providerLaneSelect?: (params: {
1445
- conversationId: string;
1446
- workspaceMode: 'agent' | 'chat';
1447
- workingDirectory?: string;
1448
- workspaceId?: string;
1449
- providerKind: 'sdk-native' | 'xeno-cloud' | 'acp-provider';
1450
- providerId?: string;
1451
- acpAgentConfigId?: string;
1452
- model?: string;
1453
- }) => Promise<{
1454
- success: boolean;
1455
- error?: string;
1456
- hostBinding?: import('@xenosystem/agent-interface-contract').AgentSessionHostBindingV1;
1457
- activeLane?: import('@xenosystem/agent-interface-contract').ProviderLaneProjectionV1;
1458
- lanes?: import('@xenosystem/agent-interface-contract').ProviderLaneProjectionV1[];
1459
- }>;
1460
- providerNativeAttach?: (params: {
1461
- conversationId: string;
1462
- laneId: string;
1463
- expectedLaneRevision: number;
1464
- workspaceTrust?: 'standard' | 'trusted';
1465
- executionPolicy?: import('@xenosystem/agent-interface-contract').AgentNativeExecutionPolicy;
1466
- cols?: number;
1467
- rows?: number;
1468
- }) => Promise<import('@xenosystem/agent-interface-contract').AgentProviderNativeAttachResult>;
1469
- conversationResume?: (params: {
1470
- conversationId: string;
1471
- expectedWorkspaceEpochId?: string;
1472
- }) => Promise<import('@xenosystem/agent-interface-contract').AgentConversationResumeResult>;
1473
- providerLanesList?: (params: {
1474
- conversationId: string;
1475
- includeHistorical?: boolean;
1476
- }) => Promise<import('@xenosystem/agent-interface-contract').AgentProviderLaneListResult>;
1477
- providerNativeDetach?: (params: {
1478
- conversationId: string;
1479
- laneId: string;
1480
- terminalId?: string;
1481
- }) => Promise<import('@xenosystem/agent-interface-contract').AgentProviderNativeDetachResult>;
1482
- providerNativeReattach?: (params: {
1483
- conversationId: string;
1484
- laneId: string;
1485
- terminalId: string;
1486
- cols?: number;
1487
- rows?: number;
1488
- }) => Promise<import('@xenosystem/agent-interface-contract').AgentProviderNativeReattachResult>;
1489
- providerNativeStop?: (params: {
1490
- conversationId: string;
1491
- laneId: string;
1492
- terminalId?: string;
1493
- force?: boolean;
1494
- reason?: string;
1495
- }) => Promise<import('@xenosystem/agent-interface-contract').AgentProviderNativeStopResult>;
1496
- providerReconcile?: (params: {
1497
- conversationId: string;
1498
- laneId: string;
1499
- expectedLaneRevision: number;
1500
- acknowledgePartialContext?: boolean;
1501
- }) => Promise<import('@xenosystem/agent-interface-contract').AgentProviderReconcileResult>;
1502
- ptySnapshot: (params: {
1503
- terminalId: string;
1504
- }) => Promise<{
1505
- success: boolean;
1506
- exists: boolean;
1507
- terminalId: string;
1508
- cwd: string | null;
1509
- output: string;
1510
- error: string | null;
1511
- }>;
1512
- ptyInput: (params: {
1513
- terminalId: string;
1514
- data: string;
1515
- }) => Promise<{
1516
- success: boolean;
1517
- error: string | null;
1518
- }>;
1519
- ptyResize: (params: {
1520
- terminalId: string;
1521
- cols: number;
1522
- rows: number;
1523
- }) => Promise<{
1524
- success: boolean;
1525
- error: string | null;
1526
- }>;
1527
- ptyClear: (params: {
1528
- terminalId: string;
1529
- }) => Promise<{
1530
- success: boolean;
1531
- error: string | null;
1532
- }>;
1533
- ptyStop: (params: {
1534
- terminalId: string;
1535
- }) => Promise<{
1536
- success: boolean;
1537
- error: string | null;
1538
- }>;
1539
- browserRegister: (params: {
1540
- browserTabId: string;
1541
- label?: string;
1542
- webContentsId: number;
1543
- }) => Promise<{
1544
- success: boolean;
1545
- error: string | null;
1546
- }>;
1547
- browserUnregister: (params: {
1548
- browserTabId: string;
1549
- }) => Promise<{
1550
- success: boolean;
1551
- error: string | null;
1552
- }>;
1553
- browserList: () => Promise<{
1554
- success: boolean;
1555
- tabs: Array<{
1556
- browserTabId: string;
1557
- label: string;
1558
- webContentsId: number;
1559
- url: string;
1560
- title: string;
1561
- isLoading: boolean;
1562
- canGoBack: boolean;
1563
- canGoForward: boolean;
1564
- }>;
1565
- error: string | null;
1566
- }>;
1567
- browserSnapshot: (params: {
1568
- browserTabId: string;
1569
- maxTextChars?: number;
1570
- maxElements?: number;
1571
- }) => Promise<{
1572
- success: boolean;
1573
- snapshot: unknown | null;
1574
- error: string | null;
1575
- }>;
1576
- browserGoto: (params: {
1577
- browserTabId: string;
1578
- url: string;
1579
- }) => Promise<{
1580
- success: boolean;
1581
- error: string | null;
1582
- }>;
1583
- browserClick: (params: {
1584
- browserTabId: string;
1585
- selector: string;
1586
- }) => Promise<{
1587
- success: boolean;
1588
- error: string | null;
1589
- }>;
1590
- browserType: (params: {
1591
- browserTabId: string;
1592
- selector: string;
1593
- text: string;
1594
- clear?: boolean;
1595
- }) => Promise<{
1596
- success: boolean;
1597
- error: string | null;
1598
- }>;
1599
- browserKey: (params: {
1600
- browserTabId: string;
1601
- key: string;
1602
- }) => Promise<{
1603
- success: boolean;
1604
- error: string | null;
1605
- }>;
1606
- onPtyData: (callback: (data: {
1607
- terminalId: string;
1608
- data: string;
1609
- }) => void) => void;
1610
- offPtyData: () => void;
1611
- onPtyExit: (callback: (data: {
1612
- terminalId: string;
1613
- exitCode: number;
1614
- signal?: number;
1615
- }) => void) => void;
1616
- offPtyExit: () => void;
1617
- onTerminalData: (callback: (data: {
1618
- terminalId: string;
1619
- stream: 'stdout' | 'stderr';
1620
- chunk: string;
1621
- }) => void) => void;
1622
- offTerminalData: () => void;
1623
- onTerminalExit: (callback: (data: {
1624
- terminalId: string;
1625
- command: string;
1626
- cwd: string;
1627
- success: boolean;
1628
- exitCode: number | null;
1629
- error: string | null;
1630
- }) => void) => void;
1631
- offTerminalExit: () => void;
1632
- writeFile: (params: {
1633
- conversationId?: string;
1634
- workspaceId?: string;
1635
- teamId?: string;
1636
- agentId?: string;
1637
- path: string;
1638
- content: string;
1639
- expectedContent?: string | null;
1640
- allowedDirs: string[];
1641
- }) => Promise<{
1642
- success: boolean;
1643
- path: string | null;
1644
- bytes: number;
1645
- error: string | null;
1646
- outcome?: 'committed' | 'not-committed' | 'uncertain';
1647
- sha256?: string;
1648
- recoveryPaths?: string[];
1649
- }>;
1650
- openApp: (params: {
1651
- appPath: string;
1652
- args?: string[];
1653
- allowedApps: string[];
1654
- }) => Promise<{
1655
- success: boolean;
1656
- appPath: string | null;
1657
- error: string | null;
1658
- }>;
1659
- };
1660
- sandbox?: {
1661
- execute: (params: {
1662
- conversationId: string;
1663
- language: 'python' | 'javascript';
1664
- code: string;
1665
- timeoutMs?: number;
1666
- }) => Promise<{
1667
- success: boolean;
1668
- stdout: string;
1669
- stderr: string;
1670
- exitCode: number | null;
1671
- durationMs: number;
1672
- files: string[];
1673
- error: string | null;
1674
- }>;
1675
- abort: (params: {
1676
- conversationId: string;
1677
- }) => Promise<{
1678
- success: boolean;
1679
- }>;
1680
- cleanup: (params: {
1681
- conversationId: string;
1682
- }) => Promise<{
1683
- success: boolean;
1684
- error: string | null;
1685
- }>;
1686
- detectRuntimes: () => Promise<{
1687
- python: {
1688
- available: boolean;
1689
- version: string | null;
1690
- command: string | null;
1691
- };
1692
- node: {
1693
- available: boolean;
1694
- version: string | null;
1695
- };
1696
- }>;
1697
- };
1698
- convert?: {
1699
- checkAvailable: (params?: ScopedIpcParams) => Promise<{
1700
- available: boolean;
1701
- error: string | null;
1702
- }>;
1703
- supportedFormats: (params?: ScopedIpcParams) => Promise<{
1704
- success: boolean;
1705
- error: string | null;
1706
- formats: {
1707
- imageInput: string[];
1708
- imageOutput: string[];
1709
- audioInput: string[];
1710
- audioOutput: string[];
1711
- } | null;
1712
- }>;
1713
- inspectFile: (filePath: PathIpcInput) => Promise<{
1714
- success: boolean;
1715
- error: string | null;
1716
- info: {
1717
- fileType: string;
1718
- format: string;
1719
- fileSize: number;
1720
- fileName: string;
1721
- width?: number;
1722
- height?: number;
1723
- sampleRate?: number;
1724
- channels?: number;
1725
- durationSecs?: number;
1726
- bitrateKbps?: number;
1727
- codec?: string;
1728
- bitsPerSample?: number;
1729
- title?: string;
1730
- artist?: string;
1731
- album?: string;
1732
- } | null;
1733
- }>;
1734
- writeTempImage: (dataUrl: string | ({
1735
- dataUrl: string;
1736
- } & ScopedIpcParams)) => Promise<{
1737
- success: boolean;
1738
- path: string | null;
1739
- error: string | null;
1740
- }>;
1741
- getPathForFile: (file: File) => string;
1742
- convert: (inputPath: string | ({
1743
- inputPath: string;
1744
- outputPath: string;
1745
- options?: ConvertOptions;
1746
- } & ScopedIpcParams), outputPath?: string, options?: ConvertOptions) => Promise<{
1747
- success: boolean;
1748
- outputPath?: string;
1749
- error?: string;
1750
- processingTimeMs?: number;
1751
- }>;
1752
- createVideoPreview: (filePath: PathIpcInput) => Promise<{
1753
- success: boolean;
1754
- outputPath: string | null;
1755
- error: string | null;
1756
- reused?: boolean;
1757
- processingTimeMs?: number;
1758
- }>;
1759
- pickFile: (params?: ScopedIpcParams) => Promise<{
1760
- success: boolean;
1761
- path: string | null;
1762
- }>;
1763
- saveFile: (format: string | ({
1764
- format: string;
1765
- defaultName?: string;
1766
- } & ScopedIpcParams), defaultName?: string) => Promise<{
1767
- success: boolean;
1768
- path: string | null;
1769
- error?: string;
1770
- }>;
1771
- readThumbnail: (filePath: PathIpcInput) => Promise<{
1772
- success: boolean;
1773
- dataUrl: string | null;
1774
- error?: string;
1775
- }>;
1776
- };
1777
- compressor?: {
1778
- pickFiles: () => Promise<{
1779
- success: boolean;
1780
- paths: string[];
1781
- error: string | null;
1782
- }>;
1783
- pickOutputDirectory: (defaultPath?: string) => Promise<{
1784
- success: boolean;
1785
- path: string | null;
1786
- error: string | null;
1787
- }>;
1788
- inspectFiles: (inputPaths: string[]) => Promise<{
1789
- success: boolean;
1790
- files: Array<{
1791
- path: string;
1792
- name: string;
1793
- kind: 'image' | 'pdf' | 'unsupported';
1794
- formatLabel: string;
1795
- extension: string;
1796
- bytes: number;
1797
- supported: boolean;
1798
- reason: string | null;
1799
- width?: number;
1800
- height?: number;
1801
- pageCount?: number;
1802
- }>;
1803
- error: string | null;
1804
- }>;
1805
- compress: (params: {
1806
- requestId: string;
1807
- inputPaths: string[];
1808
- outputDirectory: string;
1809
- profile: 'light' | 'balanced' | 'strong';
1810
- imageFormat: 'auto' | 'same' | 'webp' | 'jpeg' | 'png';
1811
- skipIfLarger?: boolean;
1812
- stripPdfMetadata?: boolean;
1813
- }) => Promise<{
1814
- success: boolean;
1815
- results: Array<{
1816
- path: string;
1817
- name: string;
1818
- kind: 'image' | 'pdf' | 'unsupported';
1819
- status: 'compressed' | 'skipped' | 'failed';
1820
- inputBytes: number;
1821
- outputBytes?: number;
1822
- bytesSaved: number;
1823
- percentSaved: number;
1824
- outputPath?: string;
1825
- outputFormat?: string;
1826
- message: string;
1827
- processingTimeMs?: number;
1828
- }>;
1829
- summary: {
1830
- processed: number;
1831
- compressed: number;
1832
- skipped: number;
1833
- failed: number;
1834
- totalOriginalBytes: number;
1835
- totalEffectiveBytes: number;
1836
- totalBytesSaved: number;
1837
- percentSaved: number;
1838
- outputDirectory: string;
1839
- firstOutputPath?: string;
1840
- } | null;
1841
- error: string | null;
1842
- }>;
1843
- showInFolder: (targetPath: string) => Promise<{
1844
- success: boolean;
1845
- error: string | null;
1846
- }>;
1847
- onProgress: (callback: (data: {
1848
- requestId: string;
1849
- current: number;
1850
- total: number;
1851
- path: string;
1852
- name: string;
1853
- stage: 'start' | 'end';
1854
- result?: {
1855
- path: string;
1856
- name: string;
1857
- kind: 'image' | 'pdf' | 'unsupported';
1858
- status: 'compressed' | 'skipped' | 'failed';
1859
- inputBytes: number;
1860
- outputBytes?: number;
1861
- bytesSaved: number;
1862
- percentSaved: number;
1863
- outputPath?: string;
1864
- outputFormat?: string;
1865
- message: string;
1866
- processingTimeMs?: number;
1867
- };
1868
- }) => void) => void;
1869
- offProgress: () => void;
1870
- };
1871
- pdfMerge?: {
1872
- pickFiles: () => Promise<{
1873
- success: boolean;
1874
- paths: string[];
1875
- error: string | null;
1876
- }>;
1877
- saveFile: (defaultName?: string) => Promise<{
1878
- success: boolean;
1879
- path: string | null;
1880
- error: string | null;
1881
- }>;
1882
- readFile: (filePath: string) => Promise<{
1883
- success: boolean;
1884
- sourceType: 'pdf' | 'image' | null;
1885
- pdfBase64: string | null;
1886
- imageDataUrl: string | null;
1887
- error: string | null;
1888
- }>;
1889
- preview: (inputPaths: string[]) => Promise<{
1890
- success: boolean;
1891
- pdfBase64: string | null;
1892
- pageCount: number;
1893
- error: string | null;
1894
- }>;
1895
- merge: (params: {
1896
- inputPaths: string[];
1897
- outputPath: string;
1898
- }) => Promise<{
1899
- success: boolean;
1900
- outputPath?: string;
1901
- mergedCount?: number;
1902
- pageCount?: number;
1903
- error?: string;
1904
- }>;
1905
- showInFolder: (filePath: string) => Promise<{
1906
- success: boolean;
1907
- error: string | null;
1908
- }>;
1909
- };
1910
- latex?: {
1911
- checkInstalled: () => Promise<{
1912
- installed: boolean;
1913
- engine: string | null;
1914
- version: string | null;
1915
- installInstructions: string | null;
1916
- }>;
1917
- compile: (texContent: string, engine?: string) => Promise<{
1918
- success: boolean;
1919
- pdfPath: string | null;
1920
- pdfBase64: string | null;
1921
- log: string;
1922
- }>;
1923
- openFile: () => Promise<{
1924
- success: boolean;
1925
- content: string | null;
1926
- filePath: string | null;
1927
- error: string | null;
1928
- }>;
1929
- savePdf: (pdfPath: string) => Promise<{
1930
- success: boolean;
1931
- savedPath?: string;
1932
- error: string | null;
1933
- }>;
1934
- saveTexFile: (content: string, currentPath?: string) => Promise<{
1935
- success: boolean;
1936
- filePath: string | null;
1937
- error: string | null;
1938
- }>;
1939
- aifix: (texContent: string, compilationLog: string) => Promise<{
1940
- success: boolean;
1941
- fixedContent: string | null;
1942
- error: string | null;
1943
- }>;
1944
- install: () => Promise<{
1945
- success: boolean;
1946
- error?: string;
1947
- }>;
1948
- onInstallProgress: (callback: (data: {
1949
- phase: string;
1950
- percent: number;
1951
- }) => void) => void;
1952
- offInstallProgress: () => void;
1953
- };
1954
- updater?: {
1955
- check: () => Promise<unknown>;
1956
- download: () => Promise<void>;
1957
- install: () => void;
1958
- getVersion: () => Promise<string>;
1959
- onUpdateAvailable: (cb: (info: {
1960
- version: string;
1961
- releaseNotes?: string;
1962
- }) => void) => void;
1963
- onUpToDate: (cb: () => void) => void;
1964
- onDownloadProgress: (cb: (progress: {
1965
- percent: number;
1966
- bytesPerSecond: number;
1967
- transferred: number;
1968
- total: number;
1969
- }) => void) => void;
1970
- onDownloaded: (cb: () => void) => void;
1971
- onError: (cb: (msg: string) => void) => void;
1972
- offAll: () => void;
1973
- };
1974
- chatStorage?: {
1975
- saveConversation: (conversation: unknown) => Promise<{
1976
- success: boolean;
1977
- error?: string;
1978
- }>;
1979
- loadConversations: () => Promise<{
1980
- success: boolean;
1981
- conversations: unknown[];
1982
- error?: string;
1983
- }>;
1984
- deleteConversation: (id: string) => Promise<{
1985
- success: boolean;
1986
- error?: string;
1987
- }>;
1988
- };
1989
- workspaceStorage: {
1990
- save: (workspaces: unknown, expectedRevision?: string) => Promise<{
1991
- success: boolean;
1992
- revision?: string;
1993
- code?: 'WORKSPACE_CONFLICT' | 'WORKSPACE_REVISION_REQUIRED';
1994
- error?: string;
1995
- }>;
1996
- load: () => Promise<import('@xenosystem/agent-interface-contract').AgentWorkspaceStateLoadResult>;
1997
- onChanged: (callback: (data: {
1998
- source?: string;
1999
- action?: string;
2000
- revision?: string;
2001
- }) => void) => void | (() => void);
2002
- offChanged: () => void;
2003
- };
2004
- imageProjects?: {
2005
- listModels: () => Promise<{
2006
- success: boolean;
2007
- models: Array<{
2008
- id: string;
2009
- type: 'image' | 'video';
2010
- available: boolean;
2011
- reason?: string | null;
2012
- capabilities?: {
2013
- maxCount?: number;
2014
- supportedAspectRatios?: string[];
2015
- supportedResolutions?: string[];
2016
- maxResolution?: string;
2017
- minDuration?: number;
2018
- maxDuration?: number;
2019
- supportsAudio?: boolean;
2020
- supportsLastFrame?: boolean;
2021
- requiresReferenceImage?: boolean;
2022
- supportsReferenceImages?: boolean;
2023
- maxReferenceImages?: number;
2024
- } | null;
2025
- }>;
2026
- error?: string | null;
2027
- }>;
2028
- list: () => Promise<any[]>;
2029
- create: (params: {
2030
- name: string;
2031
- modelPreference?: string;
2032
- }) => Promise<any>;
2033
- update: (params: {
2034
- id: string;
2035
- name?: string;
2036
- modelPreference?: string | null;
2037
- thumbnailUrl?: string | null;
2038
- }) => Promise<any>;
2039
- delete: (id: string) => Promise<any>;
2040
- getGenerations: (params: {
2041
- projectId: string;
2042
- limit?: number;
2043
- offset?: number;
2044
- favoritesOnly?: boolean;
2045
- lite?: boolean;
2046
- view?: 'gallery' | 'full' | 'lite';
2047
- }) => Promise<any>;
2048
- getGeneration: (params: {
2049
- projectId: string;
2050
- genId: string;
2051
- }) => Promise<any>;
2052
- saveGeneration: (params: {
2053
- projectId: string;
2054
- [key: string]: any;
2055
- }) => Promise<any>;
2056
- deleteGeneration: (params: {
2057
- projectId: string;
2058
- generationId: string;
2059
- }) => Promise<any>;
2060
- toggleFavorite: (params: {
2061
- projectId: string;
2062
- generationId: string;
2063
- }) => Promise<any>;
2064
- bulkDelete: (ids: string[]) => Promise<any>;
2065
- duplicate: (id: string) => Promise<any>;
2066
- generateImage: (params: Record<string, unknown>) => Promise<any>;
2067
- upscaleImage: (params: Record<string, unknown>) => Promise<any>;
2068
- generateVideo: (params: Record<string, unknown>) => Promise<any>;
2069
- upscaleVideo: (params: Record<string, unknown>) => Promise<any>;
2070
- readReferenceImage: (params: {
2071
- path: string;
2072
- } | string) => Promise<{
2073
- success: boolean;
2074
- path?: string;
2075
- name?: string;
2076
- mimeType?: string;
2077
- size?: number;
2078
- dataUrl?: string;
2079
- error?: string;
2080
- }>;
2081
- selectFolder: () => Promise<string | null>;
2082
- readFolderImages: (folderPath: string) => Promise<Array<{
2083
- name: string;
2084
- path: string;
2085
- size: number;
2086
- modified: number;
2087
- }>>;
2088
- };
2089
- agentContext?: {
2090
- get: () => Promise<{
2091
- success: boolean;
2092
- context: {
2093
- installedApps: string[];
2094
- userName: string | null;
2095
- provider: string;
2096
- } | null;
2097
- error?: string;
2098
- }>;
2099
- };
2100
- agentStorage: {
2101
- saveConversation: (conversation: unknown) => Promise<{
2102
- success: boolean;
2103
- error?: string;
2104
- }>;
2105
- loadConversations: () => Promise<{
2106
- success: boolean;
2107
- conversations: unknown[];
2108
- recoveredConversationIds?: string[];
2109
- corruptConversationFiles?: string[];
2110
- error?: string;
2111
- }>;
2112
- deleteConversation: (id: string) => Promise<{
2113
- success: boolean;
2114
- error?: string;
2115
- }>;
2116
- };
2117
- agentSearch?: {
2118
- query: (params: unknown) => Promise<{
2119
- success: boolean;
2120
- results: unknown[];
2121
- total: number;
2122
- stats?: unknown;
2123
- error?: string;
2124
- }>;
2125
- hydrateResult: (params: {
2126
- id: string;
2127
- }) => Promise<{
2128
- success: boolean;
2129
- document?: unknown;
2130
- error?: string;
2131
- }>;
2132
- attachConversation: (params: unknown) => Promise<{
2133
- success: boolean;
2134
- attachment?: unknown;
2135
- error?: string;
2136
- }>;
2137
- detachConversation: (params: {
2138
- attachmentId: string;
2139
- }) => Promise<{
2140
- success: boolean;
2141
- error?: string;
2142
- }>;
2143
- listAttachments: (params: {
2144
- conversationId: string;
2145
- }) => Promise<{
2146
- success: boolean;
2147
- attachments: unknown[];
2148
- error?: string;
2149
- }>;
2150
- reindex: (params?: {
2151
- force?: boolean;
2152
- reason?: string;
2153
- cancelActive?: boolean;
2154
- }) => Promise<{
2155
- ready: boolean;
2156
- building: boolean;
2157
- error?: string;
2158
- stats: unknown;
2159
- health?: unknown;
2160
- lifecycle?: unknown;
2161
- }>;
2162
- cancelIndexing: (params?: {
2163
- jobId?: string;
2164
- reason?: string;
2165
- }) => Promise<{
2166
- ready: boolean;
2167
- building: boolean;
2168
- error?: string;
2169
- stats: unknown;
2170
- health?: unknown;
2171
- lifecycle?: unknown;
2172
- }>;
2173
- repair: (params?: {
2174
- force?: boolean;
2175
- cleanSnapshot?: boolean;
2176
- }) => Promise<{
2177
- success: boolean;
2178
- status: unknown;
2179
- repaired: unknown[];
2180
- durationMs: number;
2181
- error?: string;
2182
- }>;
2183
- health: (params?: unknown) => Promise<{
2184
- checkedAt: number;
2185
- healthy: boolean;
2186
- stale: boolean;
2187
- issues: unknown[];
2188
- }>;
2189
- profile: (params?: {
2190
- limit?: number;
2191
- slowOnly?: boolean;
2192
- }) => Promise<{
2193
- entries: unknown[];
2194
- slowQueries: unknown[];
2195
- averageQueryMs: number | null;
2196
- p95QueryMs: number | null;
2197
- failedQueryCount?: number;
2198
- health?: string;
2199
- }>;
2200
- watcherStatus: (params?: unknown) => Promise<{
2201
- success: boolean;
2202
- status?: unknown;
2203
- error?: string;
2204
- }>;
2205
- lifecycleStatus: (params?: unknown) => Promise<{
2206
- success: boolean;
2207
- status?: unknown;
2208
- error?: string;
2209
- }>;
2210
- status: () => Promise<{
2211
- ready: boolean;
2212
- building: boolean;
2213
- error?: string;
2214
- stats: unknown;
2215
- health?: unknown;
2216
- lifecycle?: unknown;
2217
- }>;
2218
- };
2219
- codeIndex?: {
2220
- indexWorkspace: (params: unknown) => Promise<{
2221
- success: boolean;
2222
- snapshot?: unknown;
2223
- stats?: unknown;
2224
- error?: string;
2225
- }>;
2226
- watch: (params: unknown) => Promise<{
2227
- success: boolean;
2228
- snapshot?: unknown;
2229
- stats?: unknown;
2230
- error?: string;
2231
- }>;
2232
- searchFiles: (params: unknown) => Promise<{
2233
- success: boolean;
2234
- files: unknown[];
2235
- total: number;
2236
- error?: string;
2237
- }>;
2238
- searchText: (params: unknown) => Promise<{
2239
- success: boolean;
2240
- results: unknown[];
2241
- total: number;
2242
- error?: string;
2243
- }>;
2244
- listSymbols: (params: unknown) => Promise<{
2245
- success: boolean;
2246
- symbols: unknown[];
2247
- total: number;
2248
- error?: string;
2249
- }>;
2250
- getSymbol: (params: unknown) => Promise<{
2251
- success: boolean;
2252
- symbol?: unknown;
2253
- file?: unknown;
2254
- references?: unknown[];
2255
- error?: string;
2256
- }>;
2257
- references: (params: unknown) => Promise<{
2258
- success: boolean;
2259
- results: unknown[];
2260
- total: number;
2261
- error?: string;
2262
- }>;
2263
- codeActions: (params: unknown) => Promise<{
2264
- success: boolean;
2265
- rootDirectory: string;
2266
- filePath?: string;
2267
- actions: unknown[];
2268
- diagnostics: unknown[];
2269
- error?: string;
2270
- }>;
2271
- applyCodeAction: (params: unknown) => Promise<{
2272
- success: boolean;
2273
- rootDirectory: string;
2274
- filePath?: string;
2275
- applied: boolean;
2276
- edits: unknown[];
2277
- diagnostics?: unknown[];
2278
- error?: string;
2279
- }>;
2280
- organizeImports: (params: unknown) => Promise<{
2281
- success: boolean;
2282
- rootDirectory: string;
2283
- filePath?: string;
2284
- applied: boolean;
2285
- edits: unknown[];
2286
- diagnostics?: unknown[];
2287
- error?: string;
2288
- }>;
2289
- renameSymbol: (params: unknown) => Promise<{
2290
- success: boolean;
2291
- rootDirectory: string;
2292
- filePath?: string;
2293
- applied: boolean;
2294
- edits: unknown[];
2295
- diagnostics?: unknown[];
2296
- error?: string;
2297
- }>;
2298
- languageServiceStatus: (params: unknown) => Promise<{
2299
- success: boolean;
2300
- rootDirectory: string;
2301
- services: unknown[];
2302
- error?: string;
2303
- }>;
2304
- controlLanguageService: (params: unknown) => Promise<{
2305
- success: boolean;
2306
- rootDirectory: string;
2307
- service?: unknown;
2308
- error?: string;
2309
- }>;
2310
- repairIndex: (params: unknown) => Promise<{
2311
- success: boolean;
2312
- rootDirectory: string;
2313
- repaired: boolean;
2314
- removedFiles: string[];
2315
- rebuilt?: unknown;
2316
- durationMs: number;
2317
- error?: string;
2318
- }>;
2319
- dependencyGraph: (params: unknown) => Promise<{
2320
- success: boolean;
2321
- graph?: unknown;
2322
- error?: string;
2323
- }>;
2324
- createContextPack: (params: unknown) => Promise<{
2325
- success: boolean;
2326
- pack?: unknown;
2327
- error?: string;
2328
- }>;
2329
- updateContextPack: (params: unknown) => Promise<{
2330
- success: boolean;
2331
- pack?: unknown;
2332
- error?: string;
2333
- }>;
2334
- listContextPacks: (params: unknown) => Promise<{
2335
- success: boolean;
2336
- packs: unknown[];
2337
- error?: string;
2338
- }>;
2339
- materializeContextPack: (params: unknown) => Promise<{
2340
- success: boolean;
2341
- materialized?: unknown;
2342
- error?: string;
2343
- }>;
2344
- whatChanged: (params: unknown) => Promise<{
2345
- success: boolean;
2346
- isGitRepo: boolean;
2347
- rootDirectory: string;
2348
- summary: string;
2349
- changedFiles: unknown[];
2350
- diffStat?: string;
2351
- workPacket: string;
2352
- error?: string;
2353
- }>;
2354
- };
2355
- /**
2356
- * §2.9 review and §5.7 landing, as the surface sees them.
2357
- *
2358
- * Every one of these can answer `available: false`. That is not an error
2359
- * path to collapse into a catch: a host with no isolation substrate wired
2360
- * observes nothing, and a surface must be able to tell "this run changed
2361
- * nothing" from "nobody was watching".
2362
- */
2363
- /** ADE §9 step 6. `coordinationComplete` is false today in every case —
2364
- * collisions are only what this host has seen since it started — so a
2365
- * surface must render the notice rather than presenting the board as the
2366
- * whole picture. */
2367
- /** ADE §5.5. Every call can report unavailable — a host with no session
2368
- * substrate mounted has no sessions, which is different from having none
2369
- * open, and a surface must be able to tell them apart. */
2370
- /** ADE §5.1. `complete: false` means a tracker could not be read, so the
2371
- * inbox may be MISSING work — a short list is not the same as no work. */
2372
- /** ADE §5.8. `durable: false` means these facts vanish when the app
2373
- * closes — a surface must say so rather than rendering them identically. */
2374
- knowledge?: {
2375
- list: (params: {
2376
- workspaceId: string;
2377
- }) => Promise<{
2378
- available: boolean;
2379
- entries: Array<{
2380
- id: string;
2381
- subject: string;
2382
- fact: string;
2383
- pinned?: boolean;
2384
- runId: string;
2385
- providerId?: string;
2386
- at: number;
2387
- }>;
2388
- durable: boolean;
2389
- reason?: string;
2390
- }>;
2391
- record: (params: {
2392
- workspaceId: string;
2393
- subject: string;
2394
- fact: string;
2395
- pinned?: boolean;
2396
- runId: string;
2397
- providerId?: string;
2398
- }) => Promise<{
2399
- ok: boolean;
2400
- reason?: string;
2401
- entry?: {
2402
- id: string;
2403
- };
2404
- }>;
2405
- forget: (params: {
2406
- workspaceId: string;
2407
- entryId: string;
2408
- }) => Promise<{
2409
- ok: boolean;
2410
- reason?: string;
2411
- }>;
2412
- context: (params: {
2413
- workspaceId: string;
2414
- maxChars?: number;
2415
- }) => Promise<{
2416
- available: boolean;
2417
- text: string;
2418
- complete: boolean;
2419
- omitted: Array<{
2420
- subject: string;
2421
- reason: string;
2422
- }>;
2423
- reason?: string;
2424
- }>;
2425
- };
2426
- intake?: {
2427
- sources: (params: Record<string, never>) => Promise<{
2428
- available: boolean;
2429
- sources: Array<{
2430
- sourceId: string;
2431
- label: string;
2432
- healthy: boolean;
2433
- problem?: string;
2434
- }>;
2435
- reason?: string;
2436
- }>;
2437
- list: (params: {
2438
- sourceId?: string;
2439
- }) => Promise<{
2440
- available: boolean;
2441
- items: Array<{
2442
- id: string;
2443
- sourceId: string;
2444
- externalId: string;
2445
- title: string;
2446
- detail?: string;
2447
- createdAt?: number;
2448
- url?: string;
2449
- claimState: string;
2450
- claimedBy?: string;
2451
- runId?: string;
2452
- }>;
2453
- complete: boolean;
2454
- failedSources: Array<{
2455
- sourceId: string;
2456
- problem: string;
2457
- }>;
2458
- reason?: string;
2459
- }>;
2460
- /** 🔴 A second claimant is REFUSED and told who won. Show `reason`
2461
- * verbatim — the loser's next move depends on knowing it lost. */
2462
- claim: (params: {
2463
- itemId: string;
2464
- clientId: string;
2465
- }) => Promise<{
2466
- ok: boolean;
2467
- reason?: string;
2468
- heldBy?: string;
2469
- runId?: string;
2470
- claimState?: string;
2471
- }>;
2472
- release: (params: {
2473
- itemId: string;
2474
- clientId: string;
2475
- }) => Promise<{
2476
- ok: boolean;
2477
- reason?: string;
2478
- heldBy?: string;
2479
- claimState?: string;
2480
- }>;
2481
- dispatch: (params: {
2482
- itemId: string;
2483
- clientId: string;
2484
- runId: string;
2485
- }) => Promise<{
2486
- ok: boolean;
2487
- reason?: string;
2488
- heldBy?: string;
2489
- runId?: string;
2490
- claimState?: string;
2491
- }>;
2492
- };
2493
- session: {
2494
- list: (params: {
2495
- runId?: string;
2496
- }) => Promise<{
2497
- available: boolean;
2498
- sessions: Array<{
2499
- sessionId: string;
2500
- runId: string;
2501
- mode: string;
2502
- switchable: boolean;
2503
- hasProtocolChannel: boolean;
2504
- openedAt: number;
2505
- viewers: string[];
2506
- lease: {
2507
- holder: string | null;
2508
- heldSince: number | null;
2509
- interventions: number;
2510
- };
2511
- }>;
2512
- reason?: string;
2513
- }>;
2514
- attach: (params: {
2515
- sessionId: string;
2516
- viewerId: string;
2517
- }) => Promise<{
2518
- ok: boolean;
2519
- reason?: string;
2520
- }>;
2521
- detach: (params: {
2522
- sessionId: string;
2523
- viewerId: string;
2524
- }) => Promise<{
2525
- ok: boolean;
2526
- reason?: string;
2527
- }>;
2528
- snapshot: (params: {
2529
- sessionId: string;
2530
- }) => Promise<{
2531
- available: boolean;
2532
- output: string;
2533
- truncated: boolean;
2534
- reason?: string;
2535
- }>;
2536
- /**
2537
- * Ordinary typing — §2.8. Honours the write lease WITHOUT seizing it.
2538
- *
2539
- * The routing (steer now, or queue for the next turn) is decided by the
2540
- * host from facts it owns; a surface supplies only what was typed.
2541
- * `delivered` says whether the agent already has it — see `sink`.
2542
- */
2543
- input: (params: {
2544
- sessionId: string;
2545
- viewerId: string;
2546
- data: string;
2547
- }) => Promise<{
2548
- ok: boolean;
2549
- code?: 'no_such_session' | 'lease_held';
2550
- disposition?: 'steer' | 'queue';
2551
- delivered?: boolean;
2552
- sink?: 'pty' | 'turn.steer' | 'turn.queue';
2553
- /**
2554
- * 🔴 The EFFECT of a `queue` disposition, with the address
2555
- * needed to act on it. `disposition` is the intent and cannot say
2556
- * whether it happened; a surface reading it as if it could is how
2557
- * this panel came to report a queue entry that did not exist.
2558
- */
2559
- queued?: {
2560
- instructionId: string;
2561
- conversationId: string;
2562
- };
2563
- reason?: string;
2564
- }>;
2565
- /** 🔴 Refused when ANOTHER human holds the lease, and the keystrokes are
2566
- * NOT written in that case. Show `reason` verbatim. */
2567
- takeover: (params: {
2568
- sessionId: string;
2569
- viewerId: string;
2570
- data: string;
2571
- }) => Promise<{
2572
- ok: boolean;
2573
- lease?: {
2574
- holder: string | null;
2575
- heldSince: number | null;
2576
- interventions: number;
2577
- };
2578
- reason?: string;
2579
- }>;
2580
- release: (params: {
2581
- sessionId: string;
2582
- viewerId: string;
2583
- }) => Promise<{
2584
- ok: boolean;
2585
- reason?: string;
2586
- }>;
2587
- /**
2588
- * Change what renders into the session — ADE §2.8's "the user switches".
2589
- *
2590
- * 🔴 Offer it ONLY when the row says `switchable`. Every refusal names
2591
- * which half is missing, and today the honest answer is usually no: no
2592
- * composition attaches a vendor TUI, so most agents have exactly one
2593
- * mode. A control that is always present and always refuses teaches
2594
- * people to ignore it.
2595
- *
2596
- * Optional because a host predating the verb has none, and a panel must
2597
- * degrade to showing the mode rather than fail to mount.
2598
- */
2599
- setMode?: (params: {
2600
- sessionId: string;
2601
- mode: string;
2602
- }) => Promise<{
2603
- ok: boolean;
2604
- mode?: string;
2605
- reason?: string;
2606
- }>;
2607
- /**
2608
- * A session opened, closed, or gained or lost a viewer — ADE §2.8.
2609
- *
2610
- * 🔴 IDS AND COUNTS ONLY. Terminal bytes are per-viewer and large, so
2611
- * the substrate keeps them off the event feed on purpose; `snapshot` is
2612
- * the read path for output and stays a poll. A surface that treated this
2613
- * as an output stream would be waiting for bytes that never come.
2614
- *
2615
- * Optional because a host predating it has no such channel, and a panel
2616
- * must degrade to its one-shot list rather than fail to mount.
2617
- */
2618
- subscribeChanged?: (listener: (payload: unknown) => void) => () => void;
2619
- };
2620
- fleet?: {
2621
- view: (params: {
2622
- claimedPathsByRun?: Record<string, string[]>;
2623
- }) => Promise<{
2624
- runs: Array<{
2625
- runId: string;
2626
- conversationId?: string;
2627
- workspaceId?: string;
2628
- agentId?: string;
2629
- working: boolean;
2630
- claims: string[];
2631
- changes?: {
2632
- added: number;
2633
- modified: number;
2634
- deleted: number;
2635
- };
2636
- diffComplete?: boolean;
2637
- contestedPaths: string[];
2638
- }>;
2639
- collisions: Array<{
2640
- scope: string;
2641
- wantedByRunId: string;
2642
- heldByRunId: string;
2643
- at: string;
2644
- stillHeld: boolean;
2645
- }>;
2646
- coordinationComplete: boolean;
2647
- observationComplete: boolean;
2648
- problems: string[];
2649
- }>;
2650
- /**
2651
- * Anything a board row is composed from moved — claims, collisions and
2652
- * run state (`coordination.event`), or change counts and diff trust
2653
- * (`run.observation`).
2654
- *
2655
- * Optional, so a host predating it leaves the panel on its manual
2656
- * refresh rather than failing to mount.
2657
- */
2658
- subscribeChanged?: (listener: (payload: unknown) => void) => () => void;
2659
- };
2660
- developmentCoordination?: {
2661
- /** Stable identity whose lease is owned and heartbeated by the host client. */
2662
- ownerId: string;
2663
- getState: (params: {
2664
- sessionId: string;
2665
- }) => Promise<{
2666
- schemaVersion: 1;
2667
- sessionId: string;
2668
- result: unknown;
2669
- state: object;
2670
- }>;
2671
- action: (params: {
2672
- sessionId: string;
2673
- action: 'goal.create' | 'goal.update' | 'goal.complete' | 'goal.cancel' | 'goal.steer' | 'loop.start' | 'loop.get' | 'loop.begin' | 'loop.finish' | 'loop.set_status' | 'ownership.acquire' | 'ownership.renew' | 'ownership.release' | 'handoff.create' | 'handoff.claim' | 'handoff.complete' | 'handoff.fail';
2674
- payload?: Record<string, unknown>;
2675
- }) => Promise<{
2676
- schemaVersion: 1;
2677
- sessionId: string;
2678
- result: unknown;
2679
- state: object;
2680
- }>;
2681
- subscribeChanged?: (listener: (payload: unknown) => void) => () => void;
2682
- };
2683
- review: {
2684
- snapshot: (params: {
2685
- runId: string;
2686
- poll?: boolean;
2687
- }) => Promise<{
2688
- available: boolean;
2689
- runId: string;
2690
- changes: Array<{
2691
- path: string;
2692
- kind: 'added' | 'modified' | 'deleted';
2693
- }>;
2694
- complete: boolean;
2695
- droppedEvents: number;
2696
- problems: string[];
2697
- reason?: string;
2698
- }>;
2699
- /**
2700
- * A run's tier-1 change set moved — §2.9.
2701
- *
2702
- * Payload carries `runId`; a pane watching one run FILTERS for itself.
2703
- * Optional, so a host predating it leaves the pane on manual refresh
2704
- * rather than failing to mount.
2705
- */
2706
- subscribeChanged?: (listener: (payload: unknown) => void) => () => void;
2707
- change: (params: {
2708
- runId: string;
2709
- path: string;
2710
- }) => Promise<{
2711
- available: boolean;
2712
- path: string;
2713
- before?: string;
2714
- after?: string;
2715
- binary: boolean;
2716
- truncated: boolean;
2717
- refusal?: string;
2718
- }>;
2719
- overlaps: (params: {
2720
- claimedPathsByRun?: Record<string, string[]>;
2721
- }) => Promise<{
2722
- available: boolean;
2723
- overlaps: Array<{
2724
- path: string;
2725
- runIds: string[];
2726
- kind: string;
2727
- unclaimed?: boolean;
2728
- }>;
2729
- incompleteRuns: string[];
2730
- complete: boolean;
2731
- reason?: string;
2732
- }>;
2733
- };
2734
- engineering: {
2735
- gitStatus: (params: unknown) => Promise<{
2736
- success: boolean;
2737
- isGitRepo: boolean;
2738
- rootDirectory: string;
2739
- branch?: string;
2740
- upstream?: string;
2741
- ahead?: number;
2742
- behind?: number;
2743
- clean: boolean;
2744
- files: unknown[];
2745
- raw?: string;
2746
- error?: string;
2747
- }>;
2748
- gitDiff: (params: unknown) => Promise<{
2749
- success: boolean;
2750
- isGitRepo: boolean;
2751
- rootDirectory: string;
2752
- diff: string;
2753
- truncated: boolean;
2754
- error?: string;
2755
- }>;
2756
- gitStage: (params: unknown) => Promise<{
2757
- success: boolean;
2758
- isGitRepo: boolean;
2759
- rootDirectory: string;
2760
- branch?: string;
2761
- upstream?: string;
2762
- ahead?: number;
2763
- behind?: number;
2764
- clean: boolean;
2765
- files: unknown[];
2766
- raw?: string;
2767
- error?: string;
2768
- }>;
2769
- gitUnstage: (params: unknown) => Promise<{
2770
- success: boolean;
2771
- isGitRepo: boolean;
2772
- rootDirectory: string;
2773
- branch?: string;
2774
- upstream?: string;
2775
- ahead?: number;
2776
- behind?: number;
2777
- clean: boolean;
2778
- files: unknown[];
2779
- raw?: string;
2780
- error?: string;
2781
- }>;
2782
- gitCommit: (params: unknown) => Promise<{
2783
- success: boolean;
2784
- isGitRepo: boolean;
2785
- rootDirectory: string;
2786
- branch?: string;
2787
- upstream?: string;
2788
- ahead?: number;
2789
- behind?: number;
2790
- clean: boolean;
2791
- files: unknown[];
2792
- raw?: string;
2793
- error?: string;
2794
- }>;
2795
- gitBranch: (params: unknown) => Promise<{
2796
- success: boolean;
2797
- isGitRepo: boolean;
2798
- rootDirectory: string;
2799
- branch?: string;
2800
- clean: boolean;
2801
- files: unknown[];
2802
- error?: string;
2803
- }>;
2804
- /** 🔴 Outward-facing. Refuses unless `confirmed: true` comes from a real
2805
- * human action — never set as a constant by a caller. */
2806
- gitPush: (params: unknown) => Promise<{
2807
- success: boolean;
2808
- pushed: boolean;
2809
- remote?: string;
2810
- pushedBranch?: string;
2811
- error?: string;
2812
- }>;
2813
- /** 🔴 Outward-facing. Same rule as `gitPush`. */
2814
- gitCreatePullRequest: (params: unknown) => Promise<{
2815
- success: boolean;
2816
- created: boolean;
2817
- url?: string;
2818
- number?: number;
2819
- error?: string;
2820
- }>;
2821
- landingEnqueue: (params: import('@xenosystem/agent-interface-contract').LandingEnqueueRequest) => Promise<LandingQueueView>;
2822
- landingRemove: (params: import('@xenosystem/agent-interface-contract').LandingRemoveRequest) => Promise<LandingQueueView>;
2823
- landingStatus: (params: import('@xenosystem/agent-interface-contract').EngineeringRequestBase) => Promise<LandingQueueView>;
2824
- landingVerify: (params: import('@xenosystem/agent-interface-contract').LandingVerifyRequest) => Promise<import('@xenosystem/agent-interface-contract').LandingVerifyResponse>;
2825
- /** 🔴 Outward-facing: this merges into trunk. Confirmation is required
2826
- * AND is not the gate — the host still refuses an unverified, stale or
2827
- * overlapping combination. */
2828
- landingLand: (params: import('@xenosystem/agent-interface-contract').LandingLandRequest) => Promise<import('@xenosystem/agent-interface-contract').LandingLandResponse>;
2829
- discoverChecks: (params: unknown) => Promise<{
2830
- success: boolean;
2831
- rootDirectory: string;
2832
- checks: unknown[];
2833
- packageManager?: 'npm';
2834
- error?: string;
2835
- }>;
2836
- runCheck: (params: unknown) => Promise<{
2837
- success: boolean;
2838
- run?: unknown;
2839
- error?: string;
2840
- }>;
2841
- startBackgroundCheck: (params: unknown) => Promise<{
2842
- success: boolean;
2843
- rootDirectory?: string;
2844
- run?: unknown;
2845
- error?: string;
2846
- }>;
2847
- listBackgroundRuns: (params: unknown) => Promise<{
2848
- success: boolean;
2849
- rootDirectory: string;
2850
- runs: unknown[];
2851
- error?: string;
2852
- }>;
2853
- readBackgroundRunOutput: (params: unknown) => Promise<{
2854
- success: boolean;
2855
- rootDirectory?: string;
2856
- run?: unknown;
2857
- error?: string;
2858
- }>;
2859
- stopBackgroundRun: (params: unknown) => Promise<{
2860
- success: boolean;
2861
- rootDirectory?: string;
2862
- run?: unknown;
2863
- error?: string;
2864
- }>;
2865
- listRuns: (params: unknown) => Promise<{
2866
- success: boolean;
2867
- rootDirectory: string;
2868
- runs: unknown[];
2869
- error?: string;
2870
- }>;
2871
- diagnostics: (params: unknown) => Promise<{
2872
- success: boolean;
2873
- rootDirectory: string;
2874
- summary: string;
2875
- git?: unknown;
2876
- checks: unknown[];
2877
- recentRuns: unknown[];
2878
- backgroundRuns?: unknown[];
2879
- issues: unknown[];
2880
- error?: string;
2881
- }>;
2882
- listPatchReviews: (params: unknown) => Promise<{
2883
- success: boolean;
2884
- rootDirectory: string;
2885
- items: unknown[];
2886
- error?: string;
2887
- }>;
2888
- enqueuePatchReview: (params: unknown) => Promise<{
2889
- success: boolean;
2890
- rootDirectory: string;
2891
- item?: unknown;
2892
- items?: unknown[];
2893
- error?: string;
2894
- }>;
2895
- updatePatchReview: (params: unknown) => Promise<{
2896
- success: boolean;
2897
- rootDirectory: string;
2898
- item?: unknown;
2899
- items?: unknown[];
2900
- error?: string;
2901
- }>;
2902
- reviewPatchSelection: (params: unknown) => Promise<{
2903
- success: boolean;
2904
- rootDirectory: string;
2905
- item?: unknown;
2906
- selectedHunkIds: string[];
2907
- wouldChangeFiles: string[];
2908
- previewToken?: string;
2909
- conflicts?: Array<{
2910
- relativePath: string;
2911
- reason: string;
2912
- detail?: string;
2913
- }>;
2914
- applied?: boolean;
2915
- transactionId?: string;
2916
- error?: string;
2917
- }>;
2918
- listCheckpoints: (params: unknown) => Promise<{
2919
- success: boolean;
2920
- rootDirectory: string;
2921
- checkpoints: unknown[];
2922
- error?: string;
2923
- }>;
2924
- compareCheckpoints: (params: unknown) => Promise<{
2925
- success: boolean;
2926
- rootDirectory: string;
2927
- from?: unknown;
2928
- to?: unknown;
2929
- filesChanged: string[];
2930
- diff: string;
2931
- patches: unknown[];
2932
- error?: string;
2933
- }>;
2934
- restoreCheckpoint: (params: unknown) => Promise<{
2935
- success: boolean;
2936
- rootDirectory: string;
2937
- checkpoint?: unknown;
2938
- previewDiff: string;
2939
- wouldRestoreFiles: string[];
2940
- previewToken?: string;
2941
- conflicts?: Array<{
2942
- relativePath: string;
2943
- reason: string;
2944
- detail?: string;
2945
- }>;
2946
- restored?: boolean;
2947
- restoredFiles?: string[];
2948
- transactionId?: string;
2949
- runtimeEvent?: unknown;
2950
- error?: string;
2951
- }>;
2952
- listSessions: (params: unknown) => Promise<{
2953
- success: boolean;
2954
- rootDirectory: string;
2955
- sessions: unknown[];
2956
- error?: string;
2957
- }>;
2958
- runtimeTimeline: (params: unknown) => Promise<import('@xenosystem/agent-interface-contract').EngineeringRuntimeTimelineResponse>;
2959
- };
2960
- runtimeEvents: {
2961
- append: (params: unknown) => Promise<{
2962
- success: boolean;
2963
- event?: unknown;
2964
- duplicate?: boolean;
2965
- error?: string;
2966
- }>;
2967
- list: (params: unknown) => Promise<{
2968
- success: boolean;
2969
- events: unknown[];
2970
- error?: string;
2971
- }>;
2972
- listSubagentTrace: (params: unknown) => Promise<{
2973
- success: boolean;
2974
- events: unknown[];
2975
- error?: string;
2976
- }>;
2977
- project: (params: unknown) => Promise<{
2978
- success: boolean;
2979
- projection?: unknown;
2980
- error?: string;
2981
- }>;
2982
- repair: (params: unknown) => Promise<{
2983
- success: boolean;
2984
- conversationId?: string;
2985
- scannedLineCount?: number;
2986
- validEventCount?: number;
2987
- corruptLineCount?: number;
2988
- duplicateEventCount?: number;
2989
- reordered?: boolean;
2990
- resequenced?: boolean;
2991
- backupPath?: string;
2992
- error?: string;
2993
- }>;
2994
- subscribeAppended: (callback: (payload: unknown) => void) => string;
2995
- unsubscribeAppended: (subscriptionId: string) => boolean;
2996
- };
2997
- subagents: {
2998
- createRun: (params: unknown) => Promise<{
2999
- success: boolean;
3000
- run?: unknown;
3001
- error?: string;
3002
- }>;
3003
- createTeamAgentDelegation: (params: unknown) => Promise<{
3004
- success: boolean;
3005
- run?: unknown;
3006
- hostManaged?: boolean;
3007
- route?: unknown;
3008
- policy?: unknown;
3009
- error?: string;
3010
- }>;
3011
- updateRun: (params: unknown) => Promise<{
3012
- success: boolean;
3013
- run?: unknown;
3014
- error?: string;
3015
- }>;
3016
- getRun: (params: unknown) => Promise<{
3017
- success: boolean;
3018
- run?: unknown;
3019
- error?: string;
3020
- }>;
3021
- listRuns: (params: unknown) => Promise<{
3022
- success: boolean;
3023
- runs: unknown[];
3024
- error?: string;
3025
- }>;
3026
- getAgentStatus: (params: unknown) => Promise<{
3027
- success: boolean;
3028
- status?: unknown;
3029
- error?: string;
3030
- }>;
3031
- matchCapabilities: (params: unknown) => Promise<{
3032
- success: boolean;
3033
- capabilityMatch?: unknown;
3034
- error?: string;
3035
- }>;
3036
- claimNextRun: (params: unknown) => Promise<{
3037
- success: boolean;
3038
- run?: unknown;
3039
- error?: string;
3040
- }>;
3041
- launchQueuedRun: (params: unknown) => Promise<{
3042
- success: boolean;
3043
- run?: unknown;
3044
- launched?: boolean;
3045
- adapterStatus?: unknown;
3046
- error?: string;
3047
- }>;
3048
- markRunRunning: (params: unknown) => Promise<{
3049
- success: boolean;
3050
- run?: unknown;
3051
- error?: string;
3052
- }>;
3053
- markRunTerminal: (params: unknown) => Promise<{
3054
- success: boolean;
3055
- run?: unknown;
3056
- error?: string;
3057
- }>;
3058
- heartbeatRun: (params: unknown) => Promise<{
3059
- success: boolean;
3060
- run?: unknown;
3061
- error?: string;
3062
- }>;
3063
- cancelRun: (params: unknown) => Promise<{
3064
- success: boolean;
3065
- run?: unknown;
3066
- error?: string;
3067
- }>;
3068
- cancelExecution: (params: unknown) => Promise<{
3069
- success: boolean;
3070
- run?: unknown;
3071
- error?: string;
3072
- }>;
3073
- recoverExpiredRuns: (params: unknown) => Promise<{
3074
- success: boolean;
3075
- recovered: number;
3076
- failed: number;
3077
- timedOut?: number;
3078
- stale?: number;
3079
- runs: unknown[];
3080
- error?: string;
3081
- }>;
3082
- adapterStatus: (params?: unknown) => Promise<{
3083
- success: boolean;
3084
- statuses: unknown[];
3085
- error?: string;
3086
- }>;
3087
- hydrateExecutionAttempt: (params: unknown) => Promise<{
3088
- success: boolean;
3089
- run?: unknown;
3090
- attempts?: unknown[];
3091
- attempt?: unknown;
3092
- adapterStatus?: unknown;
3093
- error?: string;
3094
- }>;
3095
- schedulerStatus: (params?: unknown) => Promise<{
3096
- success: boolean;
3097
- status?: unknown;
3098
- error?: string;
3099
- }>;
3100
- };
3101
- cliControlPlane: {
3102
- inspectAppServer: (params: unknown) => Promise<{
3103
- success: boolean;
3104
- endpoint: string | null;
3105
- checkedAt: number;
3106
- status: string;
3107
- manifest: unknown;
3108
- openapi: unknown;
3109
- workflows: unknown[];
3110
- dashboards: unknown[];
3111
- versionSkewWarning?: string;
3112
- error?: string;
3113
- }>;
3114
- inspectWorkflowOperation: (params: unknown) => Promise<{
3115
- success: boolean;
3116
- endpoint: string | null;
3117
- checkedAt: number;
3118
- status: string;
3119
- method: string;
3120
- path: string | null;
3121
- operationId?: string;
3122
- response: unknown;
3123
- error?: string;
3124
- }>;
3125
- runThread: (params: unknown) => Promise<{
3126
- success: boolean;
3127
- endpoint: string | null;
3128
- checkedAt: number;
3129
- status: string;
3130
- method: 'thread.run';
3131
- messageCount: number;
3132
- text?: string;
3133
- messages?: unknown[];
3134
- cancelled?: boolean;
3135
- error?: string;
3136
- }>;
3137
- cancelThread: (params: unknown) => Promise<{
3138
- success: boolean;
3139
- checkedAt: number;
3140
- requestId: string | null;
3141
- cancelled: boolean;
3142
- error?: string;
3143
- }>;
3144
- runRemoteTurn: (params: unknown) => Promise<{
3145
- success: boolean;
3146
- checkedAt: number;
3147
- status: string;
3148
- method: 'xeno run --remote';
3149
- requestId: string;
3150
- runId?: string;
3151
- text?: string;
3152
- cancelled?: boolean;
3153
- error?: string;
3154
- }>;
3155
- remoteRunOperation: (params: unknown) => Promise<{
3156
- success: boolean;
3157
- endpoint: string | null;
3158
- checkedAt: number;
3159
- status: string;
3160
- action: string;
3161
- method: string;
3162
- path: string | null;
3163
- runId?: string;
3164
- response: unknown;
3165
- error?: string;
3166
- }>;
3167
- shareReplayOperation: (params: unknown) => Promise<{
3168
- success: boolean;
3169
- checkedAt: number;
3170
- status: string;
3171
- action: string;
3172
- method: string;
3173
- sourceId?: string;
3174
- pathLabel?: string;
3175
- response: unknown;
3176
- error?: string;
3177
- }>;
3178
- evalOperation: (params: unknown) => Promise<{
3179
- success: boolean;
3180
- checkedAt: number;
3181
- status: string;
3182
- action: string;
3183
- method: string;
3184
- suite?: string;
3185
- pathLabel?: string;
3186
- response: unknown;
3187
- error?: string;
3188
- }>;
3189
- orgMetadataOperation: (params: unknown) => Promise<{
3190
- success: boolean;
3191
- checkedAt: number;
3192
- status: string;
3193
- action: string;
3194
- method: string;
3195
- workspaceLabel?: string;
3196
- response: unknown;
3197
- error?: string;
3198
- }>;
3199
- mcpAuthOperation: (params: unknown) => Promise<{
3200
- success: boolean;
3201
- checkedAt: number;
3202
- status: string;
3203
- action: string;
3204
- method: string;
3205
- server?: string;
3206
- response: unknown;
3207
- error?: string;
3208
- }>;
3209
- githubAppOperation: (params: unknown) => Promise<{
3210
- success: boolean;
3211
- checkedAt: number;
3212
- status: string;
3213
- action: string;
3214
- method: string;
3215
- fixtureLabel?: string;
3216
- backendUrl?: string;
3217
- response: unknown;
3218
- error?: string;
3219
- }>;
3220
- cancelRemoteTurn: (params: unknown) => Promise<{
3221
- success: boolean;
3222
- checkedAt: number;
3223
- requestId: string | null;
3224
- cancelled: boolean;
3225
- error?: string;
3226
- }>;
3227
- };
3228
- workspacePolicy?: {
3229
- evaluate: (params: unknown) => Promise<{
3230
- allowed: boolean;
3231
- reason: string;
3232
- matchedVisibility?: string;
3233
- matchedScope?: unknown;
3234
- }>;
3235
- writeMemory: (params: unknown) => Promise<{
3236
- success: boolean;
3237
- entry?: unknown;
3238
- error?: string;
3239
- }>;
3240
- listMemory: (params: unknown) => Promise<{
3241
- success: boolean;
3242
- entries: unknown[];
3243
- error?: string;
3244
- }>;
3245
- registerArtifact: (params: unknown) => Promise<{
3246
- success: boolean;
3247
- artifact?: unknown;
3248
- error?: string;
3249
- }>;
3250
- listArtifacts: (params: unknown) => Promise<{
3251
- success: boolean;
3252
- artifacts: unknown[];
3253
- error?: string;
3254
- }>;
3255
- getArtifact: (params: unknown) => Promise<{
3256
- success: boolean;
3257
- result?: unknown;
3258
- error?: string;
3259
- }>;
3260
- deleteArtifact: (params: unknown) => Promise<{
3261
- success: boolean;
3262
- error?: string;
3263
- }>;
3264
- getTaskBoard: (params: unknown) => Promise<{
3265
- success: boolean;
3266
- board?: unknown;
3267
- error?: string;
3268
- }>;
3269
- upsertTask: (params: unknown) => Promise<{
3270
- success: boolean;
3271
- board?: unknown;
3272
- task?: unknown;
3273
- error?: string;
3274
- }>;
3275
- deleteTask: (params: unknown) => Promise<{
3276
- success: boolean;
3277
- board?: unknown;
3278
- error?: string;
3279
- }>;
3280
- listTaskBoards: (params: unknown) => Promise<{
3281
- success: boolean;
3282
- boards: unknown[];
3283
- error?: string;
3284
- }>;
3285
- snapshot: (params?: unknown) => Promise<{
3286
- success: boolean;
3287
- snapshot: unknown;
3288
- }>;
3289
- };
3290
- pluginMcp: {
3291
- snapshot: (params?: unknown) => Promise<{
3292
- success: boolean;
3293
- snapshot: unknown;
3294
- }>;
3295
- installPlugin: (params: unknown) => Promise<{
3296
- success: boolean;
3297
- plugin?: unknown;
3298
- error?: string;
3299
- }>;
3300
- installLocalPlugin: (params: unknown) => Promise<{
3301
- success: boolean;
3302
- plugin?: unknown;
3303
- error?: string;
3304
- }>;
3305
- activatePlugin: (params: unknown) => Promise<{
3306
- success: boolean;
3307
- plugin?: unknown;
3308
- error?: string;
3309
- }>;
3310
- deactivatePlugin: (params: unknown) => Promise<{
3311
- success: boolean;
3312
- plugin?: unknown;
3313
- error?: string;
3314
- }>;
3315
- uninstallPlugin: (params: unknown) => Promise<{
3316
- success: boolean;
3317
- error?: string;
3318
- }>;
3319
- updatePlugin: (params: unknown) => Promise<{
3320
- success: boolean;
3321
- plugin?: unknown;
3322
- error?: string;
3323
- }>;
3324
- setPluginTrust: (params: unknown) => Promise<{
3325
- success: boolean;
3326
- plugin?: unknown;
3327
- error?: string;
3328
- }>;
3329
- upsertMcpServer: (params: unknown) => Promise<{
3330
- success: boolean;
3331
- server?: unknown;
3332
- error?: string;
3333
- }>;
3334
- removeMcpServer: (params: unknown) => Promise<{
3335
- success: boolean;
3336
- error?: string;
3337
- }>;
3338
- setMcpApproval: (params: unknown) => Promise<{
3339
- success: boolean;
3340
- server?: unknown;
3341
- error?: string;
3342
- }>;
3343
- reloadMcp: (params: unknown) => Promise<{
3344
- success: boolean;
3345
- snapshot?: unknown;
3346
- connected: string[];
3347
- skipped: string[];
3348
- errors: Array<{
3349
- name: string;
3350
- error: string;
3351
- }>;
3352
- error?: string;
3353
- }>;
3354
- setMcpRegistryPolicy: (params: unknown) => Promise<{
3355
- success: boolean;
3356
- snapshot?: unknown;
3357
- error?: string;
3358
- }>;
3359
- setScopedPolicy: (params: unknown) => Promise<{
3360
- success: boolean;
3361
- policy?: unknown;
3362
- snapshot?: unknown;
3363
- error?: string;
3364
- }>;
3365
- deleteScopedPolicy: (params: unknown) => Promise<{
3366
- success: boolean;
3367
- snapshot?: unknown;
3368
- error?: string;
3369
- }>;
3370
- searchMarketplace: (params: unknown) => Promise<{
3371
- success: boolean;
3372
- listings: unknown[];
3373
- error?: string;
3374
- }>;
3375
- syncProjectMcp: (params: unknown) => Promise<{
3376
- success: boolean;
3377
- direction: 'import' | 'export';
3378
- configPath?: string;
3379
- synced: number;
3380
- servers: unknown[];
3381
- snapshot?: unknown;
3382
- error?: string;
3383
- }>;
3384
- callMcpTool: (params: unknown) => Promise<{
3385
- success: boolean;
3386
- result?: unknown;
3387
- preview?: unknown;
3388
- auditId?: string;
3389
- error?: string;
3390
- denial?: unknown;
3391
- }>;
3392
- getMcpPrompt: (params: unknown) => Promise<{
3393
- success: boolean;
3394
- result?: unknown;
3395
- preview?: unknown;
3396
- auditId?: string;
3397
- error?: string;
3398
- denial?: unknown;
3399
- }>;
3400
- readMcpResource: (params: unknown) => Promise<{
3401
- success: boolean;
3402
- result?: unknown;
3403
- preview?: unknown;
3404
- auditId?: string;
3405
- error?: string;
3406
- denial?: unknown;
3407
- }>;
3408
- preflightTrust: (params: unknown) => Promise<{
3409
- success: boolean;
3410
- allowed: boolean;
3411
- target?: unknown;
3412
- checks: unknown[];
3413
- plugin?: unknown;
3414
- server?: unknown;
3415
- reasons: string[];
3416
- remediation: unknown[];
3417
- denial?: unknown;
3418
- error?: string;
3419
- }>;
3420
- };
3421
- acp: {
3422
- listAgents: () => Promise<{
3423
- success: boolean;
3424
- agents: unknown[];
3425
- repaired?: boolean;
3426
- error?: string;
3427
- }>;
3428
- /**
3429
- * The provider catalog changed — by any surface, or by the host.
3430
- *
3431
- * Optional, so a host predating it leaves a surface on its own reloads
3432
- * rather than failing to mount.
3433
- */
3434
- subscribeCatalogChanged?: (listener: (payload: unknown) => void) => () => void;
3435
- listProviderCatalog: (refresh?: boolean) => Promise<{
3436
- success: boolean;
3437
- catalog?: unknown;
3438
- error?: string;
3439
- }>;
3440
- syncProviderCatalog: (refresh?: boolean) => Promise<{
3441
- success: boolean;
3442
- catalog?: unknown;
3443
- error?: string;
3444
- }>;
3445
- setProviderCatalogEnabled: (enabled: boolean) => Promise<{
3446
- success: boolean;
3447
- catalog?: unknown;
3448
- error?: string;
3449
- }>;
3450
- setCatalogProviderEnabled: (providerId: string, enabled: boolean) => Promise<{
3451
- success: boolean;
3452
- catalog?: unknown;
3453
- error?: string;
3454
- }>;
3455
- updateCatalogProvider: (providerId: string) => Promise<{
3456
- success: boolean;
3457
- catalog?: unknown;
3458
- error?: string;
3459
- }>;
3460
- setPreferredCatalogProvider: (providerId: string) => Promise<{
3461
- success: boolean;
3462
- catalog?: unknown;
3463
- error?: string;
3464
- }>;
3465
- getAgent: (id: string) => Promise<{
3466
- success: boolean;
3467
- agent?: unknown;
3468
- error?: string;
3469
- }>;
3470
- saveAgent: (input: unknown) => Promise<{
3471
- success: boolean;
3472
- agent?: unknown;
3473
- repaired?: boolean;
3474
- error?: string;
3475
- }>;
3476
- createFixtureAgent: (input?: unknown) => Promise<{
3477
- success: boolean;
3478
- agent?: unknown;
3479
- repaired?: boolean;
3480
- error?: string;
3481
- }>;
3482
- createLocalProviderAgent: (providerId: 'codex-local' | 'claude-local' | 'kimi' | 'grok' | 'agy' | 'opencode') => Promise<{
3483
- success: boolean;
3484
- agent?: unknown;
3485
- repaired?: boolean;
3486
- error?: string;
3487
- }>;
3488
- removeAgent: (id: string) => Promise<{
3489
- success: boolean;
3490
- removed: boolean;
3491
- error?: string;
3492
- }>;
3493
- testAgent: (id: string) => Promise<{
3494
- success: boolean;
3495
- protocolVersion?: number;
3496
- agentInfo?: unknown;
3497
- updateCount: number;
3498
- stopReason?: string;
3499
- diagnostics: unknown;
3500
- error?: string;
3501
- }>;
3502
- getProviderModels: (id: string, providerId?: string) => Promise<{
3503
- success: boolean;
3504
- result?: unknown;
3505
- error?: string;
3506
- }>;
3507
- certifyAgent: (id: string) => Promise<{
3508
- success: boolean;
3509
- result?: unknown;
3510
- agent?: unknown;
3511
- error?: string;
3512
- }>;
3513
- approveProvider: (id: string, providerId?: string) => Promise<{
3514
- success: boolean;
3515
- result?: unknown;
3516
- error?: string;
3517
- }>;
3518
- revokeProvider: (id: string, providerId?: string) => Promise<{
3519
- success: boolean;
3520
- result?: unknown;
3521
- error?: string;
3522
- }>;
3523
- runAgentPrompt: (params: unknown) => Promise<{
3524
- success: boolean;
3525
- result?: unknown;
3526
- status?: string;
3527
- events?: unknown[];
3528
- error?: string;
3529
- hostBinding?: import('@xenosystem/agent-interface-contract').AgentSessionHostBindingV1;
3530
- activeLane?: import('@xenosystem/agent-interface-contract').ProviderLaneProjectionV1;
3531
- lanes?: import('@xenosystem/agent-interface-contract').ProviderLaneProjectionV1[];
3532
- }>;
3533
- cancelAgentPrompt: (params: unknown) => Promise<{
3534
- success: boolean;
3535
- cancelled: boolean;
3536
- error?: string;
3537
- }>;
3538
- closeConversation: (params: unknown) => Promise<{
3539
- success: boolean;
3540
- closedSessionCount: number;
3541
- error?: string;
3542
- }>;
3543
- getDiagnostics: () => Promise<{
3544
- success: boolean;
3545
- diagnostics?: unknown;
3546
- error?: string;
3547
- }>;
3548
- getCapabilitySnapshot?: (params: {
3549
- conversationId: string;
3550
- sessionId?: string;
3551
- acpAgentConfigId?: string;
3552
- }) => Promise<{
3553
- success: boolean;
3554
- capabilitySnapshot?: unknown;
3555
- error?: string;
3556
- }>;
3557
- invokeCommand?: (params: {
3558
- conversationId: string;
3559
- sessionId?: string;
3560
- commandId: string;
3561
- rawInput?: string;
3562
- args?: Record<string, unknown>;
3563
- idempotencyKey?: string;
3564
- }) => Promise<{
3565
- success: boolean;
3566
- commandEvent?: unknown;
3567
- error?: string;
3568
- }>;
3569
- };
3570
- webSearch?: {
3571
- search: (query: WebSearchIpcInput, count?: number) => Promise<{
3572
- success: boolean;
3573
- results: Array<{
3574
- title: string;
3575
- url: string;
3576
- snippet: string;
3577
- }>;
3578
- error?: string;
3579
- }>;
3580
- };
3581
- usage: {
3582
- snapshot?: (input: import('@xenosystem/agent-interface-contract').AgentUsageRequest) => Promise<import('@xenosystem/agent-interface-contract').AgentUsageResult>;
3583
- summary: (entityType: string, entityId: string, period: string) => Promise<unknown>;
3584
- byModel: () => Promise<unknown>;
3585
- topAgents: () => Promise<unknown>;
3586
- };
3587
- audit?: {
3588
- snapshot?: (input: import('@xenosystem/agent-interface-contract').AgentAuditRequest) => Promise<import('@xenosystem/agent-interface-contract').AgentAuditResult>;
3589
- list: (limit?: number) => Promise<unknown>;
3590
- log: (action: string, entity: string, entityId: string, details: string) => Promise<unknown>;
3591
- };
3592
- exportBackup: {
3593
- exportJson: (params?: ScopedIpcParams) => Promise<{
3594
- success: boolean;
3595
- path?: string;
3596
- error?: string;
3597
- }>;
3598
- exportCsv: (params?: ScopedIpcParams) => Promise<{
3599
- success: boolean;
3600
- path?: string;
3601
- error?: string;
3602
- }>;
3603
- createBackup: (name?: string | ({
3604
- name?: string;
3605
- } & ScopedIpcParams)) => Promise<{
3606
- success: boolean;
3607
- backup?: unknown;
3608
- error?: string;
3609
- }>;
3610
- listBackups: (params?: ScopedIpcParams) => Promise<{
3611
- success: boolean;
3612
- backups: Array<{
3613
- id: string;
3614
- name: string;
3615
- createdAt: string;
3616
- size: number;
3617
- fileName: string;
3618
- }>;
3619
- }>;
3620
- downloadBackup: (id: string | ({
3621
- id?: string;
3622
- backupId?: string;
3623
- } & ScopedIpcParams)) => Promise<{
3624
- success: boolean;
3625
- path?: string;
3626
- error?: string;
3627
- }>;
3628
- deleteBackup: (id: string | ({
3629
- id?: string;
3630
- backupId?: string;
3631
- } & ScopedIpcParams)) => Promise<{
3632
- success: boolean;
3633
- error?: string;
3634
- }>;
3635
- importBackup: (params?: ScopedIpcParams) => Promise<{
3636
- success: boolean;
3637
- restored?: {
3638
- workspaces: boolean;
3639
- conversations: number;
3640
- settings: boolean;
3641
- };
3642
- restoredConversations?: Array<{
3643
- sourceId: string;
3644
- conversationId: string;
3645
- }>;
3646
- error?: string;
3647
- }>;
3648
- getSettings: (params?: ScopedIpcParams) => Promise<{
3649
- success: boolean;
3650
- settings: {
3651
- autoBackupEnabled: boolean;
3652
- frequency: string;
3653
- retentionDays: number;
3654
- lastError?: string;
3655
- };
3656
- }>;
3657
- updateSettings: (settings: Record<string, unknown>) => Promise<{
3658
- success: boolean;
3659
- error?: string;
3660
- }>;
3661
- };
3662
- capture: {
3663
- screenshot: (params?: ScopedIpcParams) => Promise<{
3664
- success: boolean;
3665
- localPath: string | null;
3666
- clipboardCopied: boolean;
3667
- width?: number;
3668
- height?: number;
3669
- dataUrl?: string;
3670
- error: string | null;
3671
- }>;
3672
- getHistory: (params?: ScopedIpcParams) => Promise<{
3673
- success: boolean;
3674
- captures: Array<{
3675
- name: string;
3676
- path: string;
3677
- size: number;
3678
- date: string;
3679
- type: 'image' | 'video' | 'gif';
3680
- thumbnailDataUrl: string | null;
3681
- }>;
3682
- error: string | null;
3683
- }>;
3684
- deleteCapture: (filePath: PathIpcInput) => Promise<{
3685
- success: boolean;
3686
- error: string | null;
3687
- }>;
3688
- openFolder: (params?: ScopedIpcParams) => Promise<{
3689
- success: boolean;
3690
- error: string | null;
3691
- }>;
3692
- copyToClipboard: (filePath: PathIpcInput) => Promise<{
3693
- success: boolean;
3694
- error: string | null;
3695
- }>;
3696
- getImageDataUrl: (filePath: PathIpcInput) => Promise<{
3697
- success: boolean;
3698
- dataUrl: string | null;
3699
- error: string | null;
3700
- }>;
3701
- saveAnnotated: (dataUrl: string | ({
3702
- dataUrl: string;
3703
- originalPath?: string;
3704
- } & ScopedIpcParams), originalPath?: string) => Promise<{
3705
- success: boolean;
3706
- localPath: string | null;
3707
- error: string | null;
3708
- }>;
3709
- copyAnnotatedToClipboard: (dataUrl: string | ({
3710
- dataUrl: string;
3711
- } & ScopedIpcParams)) => Promise<{
3712
- success: boolean;
3713
- error: string | null;
3714
- }>;
3715
- onHotkeyScreenshot: (callback: () => void) => void;
3716
- offHotkeyScreenshot: () => void;
3717
- };
3718
- whisper?: {
3719
- copyToClipboard: (text: string) => Promise<{
3720
- success: boolean;
3721
- error: string | null;
3722
- }>;
3723
- saveEntry: (entry: {
3724
- id: string;
3725
- text: string;
3726
- language: string;
3727
- duration: number;
3728
- timestamp: string;
3729
- }) => Promise<{
3730
- success: boolean;
3731
- error: string | null;
3732
- }>;
3733
- getHistory: () => Promise<{
3734
- success: boolean;
3735
- entries: Array<{
3736
- id: string;
3737
- text: string;
3738
- language: string;
3739
- duration: number;
3740
- timestamp: string;
3741
- }>;
3742
- error: string | null;
3743
- }>;
3744
- deleteEntry: (id: string) => Promise<{
3745
- success: boolean;
3746
- error: string | null;
3747
- }>;
3748
- clearHistory: () => Promise<{
3749
- success: boolean;
3750
- error: string | null;
3751
- }>;
3752
- getSettings: () => Promise<{
3753
- success: boolean;
3754
- settings: {
3755
- language: string;
3756
- autoCopy: boolean;
3757
- quality: 'fast' | 'accurate';
3758
- };
3759
- error: string | null;
3760
- }>;
3761
- updateSettings: (updates: Record<string, unknown>) => Promise<{
3762
- success: boolean;
3763
- settings?: {
3764
- language: string;
3765
- autoCopy: boolean;
3766
- quality: 'fast' | 'accurate';
3767
- };
3768
- error: string | null;
3769
- }>;
3770
- transcribe: (data: {
3771
- audioBase64: string;
3772
- language?: string;
3773
- mimeType?: string;
3774
- }) => Promise<{
3775
- success: boolean;
3776
- text: string;
3777
- error: string | null;
3778
- }>;
3779
- onHotkeyToggle: (callback: () => void) => void;
3780
- offHotkeyToggle: () => void;
3781
- };
3782
- files: {
3783
- getRoots: (params?: ScopedIpcParams) => Promise<{
3784
- success: boolean;
3785
- roots: Array<{
3786
- id: string;
3787
- name: string;
3788
- path: string;
3789
- icon: string;
3790
- fileCount: number;
3791
- totalSize: number;
3792
- }>;
3793
- error: string | null;
3794
- }>;
3795
- list: (dirPath: PathIpcInput) => Promise<{
3796
- success: boolean;
3797
- files: Array<{
3798
- name: string;
3799
- path: string;
3800
- size: number;
3801
- modified: string;
3802
- type: 'file' | 'directory';
3803
- extension: string;
3804
- }>;
3805
- error: string | null;
3806
- }>;
3807
- listExternal: (dirPath: PathIpcInput) => Promise<{
3808
- success: boolean;
3809
- files: Array<{
3810
- name: string;
3811
- path: string;
3812
- size: number;
3813
- modified: string;
3814
- type: 'file' | 'directory';
3815
- extension: string;
3816
- }>;
3817
- error: string | null;
3818
- }>;
3819
- open: (filePath: PathIpcInput) => Promise<{
3820
- success: boolean;
3821
- error: string | null;
3822
- }>;
3823
- openExternal: (filePath: PathIpcInput) => Promise<{
3824
- success: boolean;
3825
- error: string | null;
3826
- }>;
3827
- showInExplorer: (filePath: PathIpcInput) => Promise<{
3828
- success: boolean;
3829
- error: string | null;
3830
- }>;
3831
- showInExplorerExternal: (filePath: PathIpcInput) => Promise<{
3832
- success: boolean;
3833
- error: string | null;
3834
- }>;
3835
- delete: (filePath: PathIpcInput) => Promise<{
3836
- success: boolean;
3837
- error: string | null;
3838
- }>;
3839
- getDiskUsage: (params?: ScopedIpcParams) => Promise<{
3840
- success: boolean;
3841
- usage: {
3842
- total: number;
3843
- byDirectory: Record<string, number>;
3844
- };
3845
- error: string | null;
3846
- }>;
3847
- rename: (oldPath: string | ({
3848
- oldPath: string;
3849
- newName: string;
3850
- } & ScopedIpcParams), newName?: string) => Promise<{
3851
- success: boolean;
3852
- newPath?: string;
3853
- error: string | null;
3854
- }>;
3855
- openRoot: (params?: ScopedIpcParams) => Promise<{
3856
- success: boolean;
3857
- error: string | null;
3858
- }>;
3859
- };
3860
- uiAssetPipeline?: {
3861
- status: (pipelineRoot?: string) => Promise<{
3862
- success: boolean;
3863
- pipelineRoot: string;
3864
- scriptPath: string;
3865
- defaultOutputDirectory: string;
3866
- python: string;
3867
- error: string | null;
3868
- }>;
3869
- pickImage: () => Promise<{
3870
- success: boolean;
3871
- path: string | null;
3872
- error: string | null;
3873
- }>;
3874
- pickOutputDirectory: (defaultPath?: string) => Promise<{
3875
- success: boolean;
3876
- path: string | null;
3877
- error: string | null;
3878
- }>;
3879
- readProject: (projectPath: string) => Promise<{
3880
- success: boolean;
3881
- projectPath?: string;
3882
- inputImage?: string;
3883
- profile?: 'gamedev' | 'animation';
3884
- extractionMode?: 'essential' | 'full' | 'both';
3885
- agentMode?: 'cli' | 'api';
3886
- paths?: {
3887
- summaryPath?: string;
3888
- combinedSummaryPath?: string;
3889
- finalDir?: string;
3890
- qualityReportMd?: string;
3891
- mountingMd?: string;
3892
- rawResultsPath?: string;
3893
- };
3894
- error: string | null;
3895
- }>;
3896
- deleteProject: (params: {
3897
- projectPath: string;
3898
- outputDirectory: string;
3899
- }) => Promise<{
3900
- success: boolean;
3901
- error: string | null;
3902
- }>;
3903
- run: (params: {
3904
- imagePath: string;
3905
- outputDirectory: string;
3906
- pipelineRoot?: string;
3907
- profile: 'gamedev' | 'animation';
3908
- extractionMode: 'essential' | 'full' | 'both';
3909
- agentMode: 'cli' | 'api';
3910
- chromaBgMode?: 'chroma-bg-dynamic-color' | 'chroma-bg-fixed-color';
3911
- maxWorkers?: number;
3912
- cleanOutput?: boolean;
3913
- overwrite?: boolean;
3914
- apiKey?: string;
3915
- edgeCleanup?: boolean;
3916
- alphaEdgeDefringe?: boolean;
3917
- deriveStateVariants?: boolean;
3918
- extractElements?: string[];
3919
- skipInventory?: boolean;
3920
- finalDir?: string;
3921
- }) => Promise<{
3922
- success: boolean;
3923
- jobId: string | null;
3924
- error: string | null;
3925
- }>;
3926
- cancel: (jobId: string) => Promise<{
3927
- success: boolean;
3928
- error: string | null;
3929
- }>;
3930
- openPath: (targetPath: string) => Promise<{
3931
- success: boolean;
3932
- error: string | null;
3933
- }>;
3934
- onEvent: (callback: (event: {
3935
- jobId: string;
3936
- type: string;
3937
- stream?: 'stdout' | 'stderr';
3938
- text?: string;
3939
- success?: boolean;
3940
- exitCode?: number;
3941
- durationMs?: number;
3942
- paths?: {
3943
- summaryPath?: string;
3944
- combinedSummaryPath?: string;
3945
- finalDir?: string;
3946
- qualityReportMd?: string;
3947
- mountingMd?: string;
3948
- rawResultsPath?: string;
3949
- };
3950
- finalAssetCount?: number;
3951
- qualityStatus?: string | null;
3952
- qualityErrorCount?: number;
3953
- qualityWarningCount?: number;
3954
- error?: string;
3955
- stderr?: string;
3956
- command?: string;
3957
- pipelineRoot?: string;
3958
- outputDirectory?: string;
3959
- assets?: Array<{
3960
- slug: string;
3961
- name: string;
3962
- stage?: 'queued' | 'chroma' | 'transparent' | 'final' | 'error';
3963
- status?: string;
3964
- path?: string;
3965
- chromaPath?: string;
3966
- transparentPath?: string;
3967
- finalPath?: string;
3968
- index?: number;
3969
- total?: number;
3970
- size?: number;
3971
- }>;
3972
- asset?: {
3973
- slug: string;
3974
- name: string;
3975
- stage?: 'queued' | 'chroma' | 'transparent' | 'final' | 'error';
3976
- status?: string;
3977
- path?: string;
3978
- chromaPath?: string;
3979
- transparentPath?: string;
3980
- finalPath?: string;
3981
- index?: number;
3982
- total?: number;
3983
- size?: number;
3984
- };
3985
- }) => void) => void;
3986
- offEvent: () => void;
3987
- };
3988
- materialGenerator?: {
3989
- pickImage: () => Promise<{
3990
- success: boolean;
3991
- path: string | null;
3992
- error: string | null;
3993
- }>;
3994
- readImage: (filePath: string) => Promise<{
3995
- success: boolean;
3996
- dataUrl: string | null;
3997
- error: string | null;
3998
- }>;
3999
- pickOutputDirectory: (defaultName?: string) => Promise<{
4000
- success: boolean;
4001
- path: string | null;
4002
- error: string | null;
4003
- }>;
4004
- pickPackage: () => Promise<{
4005
- success: boolean;
4006
- path: string | null;
4007
- error: string | null;
4008
- }>;
4009
- readPackage: (packagePath: string) => Promise<{
4010
- success: boolean;
4011
- manifestPath: string | null;
4012
- directory: string | null;
4013
- manifest: any;
4014
- maps: Array<{
4015
- key: string;
4016
- fileName: string;
4017
- dataUrl: string;
4018
- }>;
4019
- error: string | null;
4020
- }>;
4021
- findEngineProjects: (engine: 'unreal' | 'unity' | 'godot' | 'folder') => Promise<{
4022
- success: boolean;
4023
- projects: Array<{
4024
- engine: 'unreal' | 'unity' | 'godot' | 'folder';
4025
- name: string;
4026
- path: string;
4027
- importDirectory: string;
4028
- source: 'open-process' | 'recent-scan' | 'manual';
4029
- }>;
4030
- error: string | null;
4031
- }>;
4032
- pickEngineProject: (engine: 'unreal' | 'unity' | 'godot' | 'folder') => Promise<{
4033
- success: boolean;
4034
- project: {
4035
- engine: 'unreal' | 'unity' | 'godot' | 'folder';
4036
- name: string;
4037
- path: string;
4038
- importDirectory: string;
4039
- source: 'open-process' | 'recent-scan' | 'manual';
4040
- } | null;
4041
- error: string | null;
4042
- }>;
4043
- writeOutput: (params: {
4044
- outputDirectory: string;
4045
- files: Array<{
4046
- relativePath: string;
4047
- dataUrl?: string;
4048
- content?: string;
4049
- }>;
4050
- }) => Promise<{
4051
- success: boolean;
4052
- outputDirectory?: string;
4053
- files: string[];
4054
- error: string | null;
4055
- }>;
4056
- runUnrealImportScript: (params: {
4057
- packageDirectory: string;
4058
- projectName?: string;
4059
- projectPath?: string;
4060
- }) => Promise<{
4061
- success: boolean;
4062
- remoteImported: boolean;
4063
- error: string | null;
4064
- details: string | null;
4065
- setupRequired: boolean;
4066
- }>;
4067
- openPath: (targetPath: string) => Promise<{
4068
- success: boolean;
4069
- error: string | null;
4070
- }>;
4071
- };
4072
- system?: {
4073
- health: () => Promise<{
4074
- cpu: {
4075
- model: string;
4076
- cores: number;
4077
- usage: number;
4078
- };
4079
- ram: {
4080
- total: number;
4081
- free: number;
4082
- used: number;
4083
- usagePercent: number;
4084
- };
4085
- gpu: {
4086
- name: string;
4087
- vendor: string;
4088
- vramMb: number | null;
4089
- driverVersion: string | null;
4090
- } | null;
4091
- disk: {
4092
- total: number;
4093
- free: number;
4094
- used: number;
4095
- xenoUsage: number;
4096
- };
4097
- network: {
4098
- online: boolean;
4099
- };
4100
- os: {
4101
- platform: string;
4102
- arch: string;
4103
- release: string;
4104
- };
4105
- xenoAppsSize: Record<string, number>;
4106
- }>;
4107
- cleanOldVersions: () => Promise<{
4108
- success: boolean;
4109
- cleaned: number;
4110
- }>;
4111
- };
4112
- support?: {
4113
- createBundle: (params?: unknown) => Promise<{
4114
- success: boolean;
4115
- path?: string;
4116
- summary?: Record<string, unknown>;
4117
- error?: string;
4118
- }>;
4119
- repairAll: (params?: unknown) => Promise<{
4120
- success: boolean;
4121
- repaired: Array<{
4122
- id: string;
4123
- success: boolean;
4124
- detail?: string;
4125
- error?: string;
4126
- }>;
4127
- durationMs: number;
4128
- error?: string;
4129
- }>;
4130
- runMigrations: () => Promise<{
4131
- success: boolean;
4132
- version: number;
4133
- migrated: boolean;
4134
- path: string;
4135
- checks: Array<{
4136
- id: string;
4137
- status: string;
4138
- detail?: string;
4139
- error?: string;
4140
- }>;
4141
- durationMs: number;
4142
- error?: string;
4143
- }>;
4144
- profile: () => Promise<unknown>;
4145
- };
4146
- errorReporting?: {
4147
- report: (data: {
4148
- message: string;
4149
- stack?: string;
4150
- component?: string;
4151
- userDescription?: string;
4152
- }) => Promise<{
4153
- success: boolean;
4154
- }>;
4155
- getCrashLog: () => Promise<{
4156
- success: boolean;
4157
- log: string;
4158
- }>;
4159
- clearCrashLog: () => Promise<{
4160
- success: boolean;
4161
- }>;
4162
- };
4163
- onDeepLink?: (callback: (url: string) => void) => void;
4164
- offDeepLink?: () => void;
4165
- }
4166
- declare global {
4167
- interface Window {
4168
- xenoAPI: XenoAPI;
4169
- XENO_API_KEY?: string;
4170
- GEMINI_API_TOKEN?: string;
4171
- SpeechRecognition?: SpeechRecognitionConstructor;
4172
- webkitSpeechRecognition?: SpeechRecognitionConstructor;
4173
- }
4174
- }
4175
- export {};
4176
- //# sourceMappingURL=platformApiTypes.d.ts.map