@slopus/happy-terminal 0.3.0-beta.13

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 (248) hide show
  1. package/LICENSE +21 -0
  2. package/LICENSE-CODEX +203 -0
  3. package/LICENSE-GROK-BUILD +204 -0
  4. package/LICENSE-HAPPY +21 -0
  5. package/README.md +60 -0
  6. package/THIRD-PARTY-NOTICES.md +34 -0
  7. package/dist/HappyTerminalUserError.d.ts +12 -0
  8. package/dist/app/AppTranscriptEntry.d.ts +33 -0
  9. package/dist/app/AppendOnlyStreamingRender.d.ts +12 -0
  10. package/dist/app/CodexFileDiff.d.ts +20 -0
  11. package/dist/app/CodexMcpToolCall.d.ts +25 -0
  12. package/dist/app/CodingAssistantAgentBackend.d.ts +81 -0
  13. package/dist/app/CodingAssistantApp.d.ts +128 -0
  14. package/dist/app/CompletedTurn.d.ts +11 -0
  15. package/dist/app/FileMentionAutocomplete.d.ts +30 -0
  16. package/dist/app/HappyTerminalProcessTerminal.d.ts +7 -0
  17. package/dist/app/NoticeChild.d.ts +4 -0
  18. package/dist/app/SecretMenuController.d.ts +31 -0
  19. package/dist/app/SelectionList.d.ts +24 -0
  20. package/dist/app/SessionDraftSync.d.ts +51 -0
  21. package/dist/app/StartupStatusApp.d.ts +34 -0
  22. package/dist/app/StartupStatusCardModel.d.ts +22 -0
  23. package/dist/app/TemporaryFullscreenController.d.ts +9 -0
  24. package/dist/app/TerminalColorLevel.d.ts +1 -0
  25. package/dist/app/TerminalOutputTrace.d.ts +12 -0
  26. package/dist/app/TerminalTheme.d.ts +11 -0
  27. package/dist/app/TranscriptEntryRenderCache.d.ts +10 -0
  28. package/dist/app/applyWorkflowRunUpdate.d.ts +2 -0
  29. package/dist/app/blendComposerBackground.d.ts +2 -0
  30. package/dist/app/boundedJsonStringify.d.ts +1 -0
  31. package/dist/app/calculateCacheHitPercent.d.ts +2 -0
  32. package/dist/app/codexDiffAnsi.d.ts +17 -0
  33. package/dist/app/compactCompletedTurnEntries.d.ts +2 -0
  34. package/dist/app/containsMarkdownTable.d.ts +1 -0
  35. package/dist/app/createAgentMarkdownTheme.d.ts +3 -0
  36. package/dist/app/createBackgroundTerminalViewer.d.ts +16 -0
  37. package/dist/app/createCompletedTurn.d.ts +6 -0
  38. package/dist/app/createEditorTheme.d.ts +3 -0
  39. package/dist/app/createFileMentionAutocompleteItems.d.ts +3 -0
  40. package/dist/app/createSecretInputPanel.d.ts +12 -0
  41. package/dist/app/createSelectionPanel.d.ts +14 -0
  42. package/dist/app/createSerialTaskQueue.d.ts +1 -0
  43. package/dist/app/createSessionPicker.d.ts +17 -0
  44. package/dist/app/createSlashCommands.d.ts +7 -0
  45. package/dist/app/createStopOnceHandler.d.ts +1 -0
  46. package/dist/app/createSubagentMonitor.d.ts +17 -0
  47. package/dist/app/createTerminalInputBurstHandler.d.ts +5 -0
  48. package/dist/app/createWorkflowMonitor.d.ts +15 -0
  49. package/dist/app/defaultTerminalTheme.d.ts +1 -0
  50. package/dist/app/describeModelChoice.d.ts +4 -0
  51. package/dist/app/describeProviderSignIn.d.ts +2 -0
  52. package/dist/app/describeReasoningLevel.d.ts +4 -0
  53. package/dist/app/detectCodexDiffLanguage.d.ts +1 -0
  54. package/dist/app/encodeModelChoice.d.ts +1 -0
  55. package/dist/app/endsAfterOpeningCodeFence.d.ts +1 -0
  56. package/dist/app/findFileMentionContext.d.ts +9 -0
  57. package/dist/app/findFileMentionPrefix.d.ts +5 -0
  58. package/dist/app/formatActivityElapsedTime.d.ts +1 -0
  59. package/dist/app/formatCodexMcpToolResult.d.ts +3 -0
  60. package/dist/app/formatCompactTokens.d.ts +1 -0
  61. package/dist/app/formatFileMention.d.ts +1 -0
  62. package/dist/app/formatProviderError.d.ts +6 -0
  63. package/dist/app/formatRelativeTime.d.ts +2 -0
  64. package/dist/app/formatResetDuration.d.ts +1 -0
  65. package/dist/app/formatSessionPickerEntry.d.ts +14 -0
  66. package/dist/app/formatSessionTokenStatus.d.ts +6 -0
  67. package/dist/app/formatSessionUsageSummary.d.ts +3 -0
  68. package/dist/app/formatStartupStatusUsageRemaining.d.ts +2 -0
  69. package/dist/app/formatStartupStatusUsageRows.d.ts +2 -0
  70. package/dist/app/formatSubagentToolCall.d.ts +10 -0
  71. package/dist/app/formatToolPermissionNotice.d.ts +3 -0
  72. package/dist/app/formatToolResultForDisplay.d.ts +2 -0
  73. package/dist/app/formatTurnUsageSummary.d.ts +2 -0
  74. package/dist/app/formatWorkUsageSummary.d.ts +14 -0
  75. package/dist/app/highlightAgentCode.d.ts +1 -0
  76. package/dist/app/highlightCodexDiffLine.d.ts +2 -0
  77. package/dist/app/highlightShellCommand.d.ts +1 -0
  78. package/dist/app/humanizeGoalStatus.d.ts +2 -0
  79. package/dist/app/humanizeMcpName.d.ts +1 -0
  80. package/dist/app/humanizePermissionMode.d.ts +2 -0
  81. package/dist/app/humanizePermissionReviewLevel.d.ts +2 -0
  82. package/dist/app/humanizeProviderId.d.ts +1 -0
  83. package/dist/app/humanizeReasoningLevel.d.ts +1 -0
  84. package/dist/app/humanizeSubagentStatus.d.ts +2 -0
  85. package/dist/app/humanizeToolName.d.ts +1 -0
  86. package/dist/app/humanizeWorkflowStatus.d.ts +2 -0
  87. package/dist/app/installResumeInstructions.d.ts +26 -0
  88. package/dist/app/installTerminalCrashCleanup.d.ts +26 -0
  89. package/dist/app/isLightTerminalBackground.d.ts +2 -0
  90. package/dist/app/layoutCodexFileDiff.d.ts +13 -0
  91. package/dist/app/looksLikeAuthenticationFailure.d.ts +5 -0
  92. package/dist/app/nearestXtermColorIndex.d.ts +2 -0
  93. package/dist/app/parseCodexMcpToolInvocation.d.ts +2 -0
  94. package/dist/app/parseSessionCommand.d.ts +6 -0
  95. package/dist/app/providerErrorResetAt.d.ts +2 -0
  96. package/dist/app/providerQuotaToStartupStatusUsage.d.ts +3 -0
  97. package/dist/app/readClipboardImage.d.ts +9 -0
  98. package/dist/app/renderActivityWave.d.ts +3 -0
  99. package/dist/app/renderAgentMarkdown.d.ts +8 -0
  100. package/dist/app/renderBackgroundTerminalCompletion.d.ts +1 -0
  101. package/dist/app/renderBackgroundTerminalInteraction.d.ts +2 -0
  102. package/dist/app/renderBackgroundTerminalSummary.d.ts +1 -0
  103. package/dist/app/renderChildRows.d.ts +13 -0
  104. package/dist/app/renderCodexDiffLine.d.ts +3 -0
  105. package/dist/app/renderCodexFileDiff.d.ts +7 -0
  106. package/dist/app/renderCodexMcpToolCall.d.ts +2 -0
  107. package/dist/app/renderCompletedTurnStats.d.ts +2 -0
  108. package/dist/app/renderExecCommand.d.ts +11 -0
  109. package/dist/app/renderExploration.d.ts +9 -0
  110. package/dist/app/renderFullscreenComponent.d.ts +8 -0
  111. package/dist/app/renderHappyTerminalBanner.d.ts +6 -0
  112. package/dist/app/renderHappyTerminalVersion.d.ts +1 -0
  113. package/dist/app/renderNoticeWithChildren.d.ts +7 -0
  114. package/dist/app/renderPendingSteeringMessages.d.ts +1 -0
  115. package/dist/app/renderStartupStatusCard.d.ts +7 -0
  116. package/dist/app/renderSubagentSummary.d.ts +6 -0
  117. package/dist/app/renderTurnCompletionSeparator.d.ts +1 -0
  118. package/dist/app/renderWorkflowSummary.d.ts +1 -0
  119. package/dist/app/resolveInputBackground.d.ts +3 -0
  120. package/dist/app/resolveStartupProviderQuota.d.ts +3 -0
  121. package/dist/app/resolveStartupSessionId.d.ts +18 -0
  122. package/dist/app/resolveTerminalColorLevel.d.ts +2 -0
  123. package/dist/app/resolveTerminalStyle.d.ts +1 -0
  124. package/dist/app/resolveTerminalTheme.d.ts +5 -0
  125. package/dist/app/runApp.d.ts +27 -0
  126. package/dist/app/runClipboardCommand.d.ts +8 -0
  127. package/dist/app/sanitizeTerminalText.d.ts +1 -0
  128. package/dist/app/shortenHomePath.d.ts +2 -0
  129. package/dist/app/sortSubagentsForDisplay.d.ts +2 -0
  130. package/dist/app/subagentElapsedMs.d.ts +2 -0
  131. package/dist/app/subagentLogMessageText.d.ts +2 -0
  132. package/dist/app/surfaceThemedLine.d.ts +3 -0
  133. package/dist/app/truncatePathToWidth.d.ts +1 -0
  134. package/dist/app/truncateTextForDisplay.d.ts +5 -0
  135. package/dist/app/truncateUtf8BytesForDisplay.d.ts +1 -0
  136. package/dist/app/upsertSubagentSummary.d.ts +2 -0
  137. package/dist/app/workflowDisplay.d.ts +2 -0
  138. package/dist/client/HappyAgentEventHub.d.ts +25 -0
  139. package/dist/client/RemoteAgent.d.ts +74 -0
  140. package/dist/client/RemoteAgentRunError.d.ts +4 -0
  141. package/dist/client/RemoteTerminalAttachment.d.ts +19 -0
  142. package/dist/client/RemoteTerminalClientReplica.d.ts +14 -0
  143. package/dist/client/ensureLocalProtocolServer.d.ts +10 -0
  144. package/dist/client/fetchProviderQuotas.d.ts +10 -0
  145. package/dist/client/index.d.ts +8 -0
  146. package/dist/client/loadAgentCatalog.d.ts +32 -0
  147. package/dist/config/createProjectConfigSecurityNotice.d.ts +10 -0
  148. package/dist/config/defaultConfig.d.ts +2 -0
  149. package/dist/config/getDefaultGlobalConfigPath.d.ts +1 -0
  150. package/dist/config/getDefaultLocalConfigPath.d.ts +1 -0
  151. package/dist/config/getDefaultRuntimeConfigPath.d.ts +1 -0
  152. package/dist/config/getHappyConfigDirectory.d.ts +1 -0
  153. package/dist/config/getHappyTerminalHome.d.ts +1 -0
  154. package/dist/config/index.d.ts +15 -0
  155. package/dist/config/loadConfig.d.ts +2 -0
  156. package/dist/config/mergeConfigValues.d.ts +2 -0
  157. package/dist/config/parseConfigToml.d.ts +7 -0
  158. package/dist/config/readConfigFile.d.ts +2 -0
  159. package/dist/config/readProjectConfigFile.d.ts +2 -0
  160. package/dist/config/resolveConfigPaths.d.ts +2 -0
  161. package/dist/config/runtimeConfigLock.d.ts +1 -0
  162. package/dist/config/types.d.ts +74 -0
  163. package/dist/config/updateRuntimeConfig.d.ts +2 -0
  164. package/dist/config/updateRuntimePreferences.d.ts +2 -0
  165. package/dist/config/withoutProjectMachineSettings.d.ts +7 -0
  166. package/dist/config/writeRuntimeConfig.d.ts +3 -0
  167. package/dist/config/writeRuntimeConfigDefaults.d.ts +2 -0
  168. package/dist/daemon/createUnixSocketFetch.d.ts +2 -0
  169. package/dist/daemon/daemonPid.d.ts +11 -0
  170. package/dist/daemon/ensureHappyAgentBinary.d.ts +15 -0
  171. package/dist/daemon/ensureLocalProtocolServer.d.ts +24 -0
  172. package/dist/daemon/getHappyDaemonPaths.d.ts +16 -0
  173. package/dist/daemon/happyAgentBinaryConfig.d.ts +15 -0
  174. package/dist/daemon/index.d.ts +5 -0
  175. package/dist/daemon/runDaemonCommand.d.ts +4 -0
  176. package/dist/debug/DebugLog.d.ts +11 -0
  177. package/dist/debug/closeNodeInspector.d.ts +1 -0
  178. package/dist/debug/createDebugJsonReplacer.d.ts +1 -0
  179. package/dist/debug/createRequestDebugDirectory.d.ts +1 -0
  180. package/dist/debug/getDebugRootDirectory.d.ts +1 -0
  181. package/dist/debug/getNodeInspectorUrl.d.ts +1 -0
  182. package/dist/debug/index.d.ts +8 -0
  183. package/dist/debug/openNodeInspector.d.ts +1 -0
  184. package/dist/debug/registerHappyTerminalDebugRoot.d.ts +5 -0
  185. package/dist/docs/DESIGN.md +2191 -0
  186. package/dist/docs/README.md +93 -0
  187. package/dist/docs/agents-and-collaboration.md +365 -0
  188. package/dist/docs/architecture.md +468 -0
  189. package/dist/docs/extending.md +561 -0
  190. package/dist/docs/happy.md +386 -0
  191. package/dist/docs/permissions-and-sandbox.md +342 -0
  192. package/dist/docs/workspaces.md +281 -0
  193. package/dist/errorToMessage.d.ts +1 -0
  194. package/dist/formatCliFailure.d.ts +10 -0
  195. package/dist/index.d.ts +3 -0
  196. package/dist/index.js +17151 -0
  197. package/dist/main.js +18946 -0
  198. package/dist/observability/daemonContext.d.ts +16 -0
  199. package/dist/observability/index.d.ts +1 -0
  200. package/dist/processes/BoundedOutputBuffer.d.ts +20 -0
  201. package/dist/processes/NativeProcessManager.d.ts +66 -0
  202. package/dist/processes/ProcessGroupReaper.d.ts +32 -0
  203. package/dist/processes/index.d.ts +7 -0
  204. package/dist/processes/isProcessRunning.d.ts +1 -0
  205. package/dist/processes/isTargetProcessAlive.d.ts +1 -0
  206. package/dist/processes/killProcessTree.d.ts +2 -0
  207. package/dist/processes/resolveSystemShell.d.ts +1 -0
  208. package/dist/processes/startProcessTransport.d.ts +33 -0
  209. package/dist/processes/types.d.ts +41 -0
  210. package/dist/processes/waitForProcessExit.d.ts +2 -0
  211. package/dist/protocol/AppletProtocol.d.ts +101 -0
  212. package/dist/protocol/Attachment.d.ts +96 -0
  213. package/dist/protocol/ClientProtocolTypes.d.ts +481 -0
  214. package/dist/protocol/DocumentProtocol.d.ts +109 -0
  215. package/dist/protocol/EventId.d.ts +1 -0
  216. package/dist/protocol/FolderProtocol.d.ts +236 -0
  217. package/dist/protocol/FolderSharingProtocol.d.ts +97 -0
  218. package/dist/protocol/GitHubPluginProtocol.d.ts +43 -0
  219. package/dist/protocol/GlobalSecurityProtocol.d.ts +7 -0
  220. package/dist/protocol/HappyCloudProtocol.d.ts +178 -0
  221. package/dist/protocol/InstallationProtocol.d.ts +80 -0
  222. package/dist/protocol/OnboardingProtocol.d.ts +47 -0
  223. package/dist/protocol/P2pCredentialProtocol.d.ts +273 -0
  224. package/dist/protocol/P2pIdentityProtocol.d.ts +8 -0
  225. package/dist/protocol/P2pPairingProtocol.d.ts +68 -0
  226. package/dist/protocol/P2pProtocol.d.ts +185 -0
  227. package/dist/protocol/PluginWireTypes.d.ts +81 -0
  228. package/dist/protocol/ProfileProtocol.d.ts +127 -0
  229. package/dist/protocol/ProjectFileProtocol.d.ts +63 -0
  230. package/dist/protocol/ProjectProtocol.d.ts +646 -0
  231. package/dist/protocol/ProtocolVersion.d.ts +8 -0
  232. package/dist/protocol/ServiceNotice.d.ts +175 -0
  233. package/dist/protocol/SessionProtocol.d.ts +1156 -0
  234. package/dist/protocol/SharingProtocol.d.ts +159 -0
  235. package/dist/protocol/SlotProtocol.d.ts +270 -0
  236. package/dist/protocol/TimelineProtocol.d.ts +88 -0
  237. package/dist/protocol/WorkletProtocol.d.ts +159 -0
  238. package/dist/protocol/createEventIdFactory.d.ts +7 -0
  239. package/dist/protocol/index.d.ts +34 -0
  240. package/dist/readPackageVersion.d.ts +1 -0
  241. package/dist/readPackageVersion.js +16 -0
  242. package/dist/reportCliFailure.d.ts +2 -0
  243. package/dist/runHappyTerminal.d.ts +6 -0
  244. package/dist/terminal/index.d.ts +2 -0
  245. package/dist/terminal/types.d.ts +39 -0
  246. package/dist/types.d.ts +6 -0
  247. package/dist/writeStderrSync.d.ts +5 -0
  248. package/package.json +97 -0
@@ -0,0 +1,236 @@
1
+ import { type Static } from "@sinclair/typebox";
2
+ import type { EventId } from "./EventId.js";
3
+ /** Longest human-readable folder name Happy Terminal stores. */
4
+ export declare const FOLDER_NAME_MAX_LENGTH = 200;
5
+ /** Longest description or rules text Happy Terminal stores for one folder. */
6
+ export declare const FOLDER_TEXT_MAX_LENGTH = 8000;
7
+ /**
8
+ * Longest folder icon Happy Terminal stores. Only an emoji is accepted for now, and a single emoji can be a
9
+ * long grapheme cluster once skin tones, gender signs, and zero-width joiners are counted.
10
+ */
11
+ export declare const FOLDER_ICON_MAX_LENGTH = 64;
12
+ /**
13
+ * One folder in the virtual tree.
14
+ *
15
+ * Folders are nested only virtually: `parentId` places a folder in the tree, while `path` is a flat
16
+ * storage directory named after the folder's opaque id. Moving a folder rewrites `parentId` and
17
+ * `orderKey` and never touches the filesystem.
18
+ */
19
+ export declare const folderSchema: import("@sinclair/typebox").TObject<{
20
+ archivedAt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
21
+ createdAt: import("@sinclair/typebox").TNumber;
22
+ /** What the folder is for, shown to people and given to agents working inside it. */
23
+ description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
24
+ /** A single emoji. Pictures and built-in icons are not stored yet. */
25
+ icon: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
26
+ id: import("@sinclair/typebox").TString;
27
+ name: import("@sinclair/typebox").TString;
28
+ /** Fractional index ordering this folder among every direct child of its parent. */
29
+ orderKey: import("@sinclair/typebox").TString;
30
+ /** Absent for a folder at the root of the tree. */
31
+ parentId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
32
+ /** Flat storage directory holding this folder's files. */
33
+ path: import("@sinclair/typebox").TString;
34
+ /** Standing instructions every agent working in this folder must follow. */
35
+ rules: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
36
+ /** True only for the root represented by one Murmur folder-sharing group. */
37
+ shared: import("@sinclair/typebox").TBoolean;
38
+ updatedAt: import("@sinclair/typebox").TNumber;
39
+ version: import("@sinclair/typebox").TNumber;
40
+ }>;
41
+ export type Folder = Static<typeof folderSchema>;
42
+ export declare const folderItemTargetSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
43
+ kind: import("@sinclair/typebox").TLiteral<"project">;
44
+ projectId: import("@sinclair/typebox").TString;
45
+ }>, import("@sinclair/typebox").TObject<{
46
+ kind: import("@sinclair/typebox").TLiteral<"workspace">;
47
+ workspaceId: import("@sinclair/typebox").TString;
48
+ }>, import("@sinclair/typebox").TObject<{
49
+ documentId: import("@sinclair/typebox").TString;
50
+ kind: import("@sinclair/typebox").TLiteral<"document">;
51
+ }>]>;
52
+ export type FolderItemTarget = Static<typeof folderItemTargetSchema>;
53
+ export declare const folderItemSchema: import("@sinclair/typebox").TObject<{
54
+ archivedAt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
55
+ createdAt: import("@sinclair/typebox").TNumber;
56
+ folderId: import("@sinclair/typebox").TString;
57
+ id: import("@sinclair/typebox").TString;
58
+ /** Shared fractional index ordering this item with the folder's child folders. */
59
+ orderKey: import("@sinclair/typebox").TString;
60
+ target: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
61
+ kind: import("@sinclair/typebox").TLiteral<"project">;
62
+ projectId: import("@sinclair/typebox").TString;
63
+ }>, import("@sinclair/typebox").TObject<{
64
+ kind: import("@sinclair/typebox").TLiteral<"workspace">;
65
+ workspaceId: import("@sinclair/typebox").TString;
66
+ }>, import("@sinclair/typebox").TObject<{
67
+ documentId: import("@sinclair/typebox").TString;
68
+ kind: import("@sinclair/typebox").TLiteral<"document">;
69
+ }>]>;
70
+ updatedAt: import("@sinclair/typebox").TNumber;
71
+ version: import("@sinclair/typebox").TNumber;
72
+ }>;
73
+ export type FolderItem = Static<typeof folderItemSchema>;
74
+ export declare const createFolderItemRequestSchema: import("@sinclair/typebox").TObject<{
75
+ afterId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>>;
76
+ id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
77
+ mutationId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
78
+ target: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
79
+ kind: import("@sinclair/typebox").TLiteral<"project">;
80
+ projectId: import("@sinclair/typebox").TString;
81
+ }>, import("@sinclair/typebox").TObject<{
82
+ kind: import("@sinclair/typebox").TLiteral<"workspace">;
83
+ workspaceId: import("@sinclair/typebox").TString;
84
+ }>, import("@sinclair/typebox").TObject<{
85
+ documentId: import("@sinclair/typebox").TString;
86
+ kind: import("@sinclair/typebox").TLiteral<"document">;
87
+ }>]>;
88
+ }>;
89
+ export type CreateFolderItemRequest = Static<typeof createFolderItemRequestSchema>;
90
+ export declare const moveFolderItemRequestSchema: import("@sinclair/typebox").TObject<{
91
+ afterId: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
92
+ folderId: import("@sinclair/typebox").TString;
93
+ mutationId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
94
+ }>;
95
+ export type MoveFolderItemRequest = Static<typeof moveFolderItemRequestSchema>;
96
+ export declare const createFolderRequestSchema: import("@sinclair/typebox").TObject<{
97
+ description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
98
+ icon: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
99
+ /** Client-chosen cuid2 identity. Repeating it returns the same folder. */
100
+ id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
101
+ name: import("@sinclair/typebox").TString;
102
+ mutationId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
103
+ parentId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
104
+ rules: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
105
+ }>;
106
+ export type CreateFolderRequest = Static<typeof createFolderRequestSchema>;
107
+ /**
108
+ * Changing a folder's own fields. An explicit `null` clears an optional field; an absent field is
109
+ * left as it is.
110
+ */
111
+ export declare const updateFolderRequestSchema: import("@sinclair/typebox").TObject<{
112
+ description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>>;
113
+ icon: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>>;
114
+ name: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
115
+ mutationId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
116
+ rules: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>>;
117
+ }>;
118
+ export type UpdateFolderRequest = Static<typeof updateFolderRequestSchema>;
119
+ /**
120
+ * One drag-and-drop. `parentId` is the folder it was dropped into, `null` for the root, and
121
+ * `afterId` is the folder or item it was dropped below, `null` when it landed first. Happy Terminal derives
122
+ * the shared fractional order key from that pair, so a client never invents one.
123
+ */
124
+ export declare const moveFolderRequestSchema: import("@sinclair/typebox").TObject<{
125
+ afterId: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
126
+ mutationId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
127
+ parentId: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
128
+ }>;
129
+ export type MoveFolderRequest = Static<typeof moveFolderRequestSchema>;
130
+ export declare const folderErrorCodeSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"invalid_request">, import("@sinclair/typebox").TLiteral<"folder_not_found">, import("@sinclair/typebox").TLiteral<"parent_not_found">, import("@sinclair/typebox").TLiteral<"sibling_not_found">, import("@sinclair/typebox").TLiteral<"item_not_found">, import("@sinclair/typebox").TLiteral<"target_not_found">, import("@sinclair/typebox").TLiteral<"cycle">, import("@sinclair/typebox").TLiteral<"version_conflict">, import("@sinclair/typebox").TLiteral<"storage_unavailable">, import("@sinclair/typebox").TLiteral<"shared_folder_boundary">, import("@sinclair/typebox").TLiteral<"shared_folder_contents_forbidden">]>;
131
+ export type FolderErrorCode = Static<typeof folderErrorCodeSchema>;
132
+ export declare const folderErrorResponseSchema: import("@sinclair/typebox").TObject<{
133
+ error: import("@sinclair/typebox").TObject<{
134
+ code: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"invalid_request">, import("@sinclair/typebox").TLiteral<"folder_not_found">, import("@sinclair/typebox").TLiteral<"parent_not_found">, import("@sinclair/typebox").TLiteral<"sibling_not_found">, import("@sinclair/typebox").TLiteral<"item_not_found">, import("@sinclair/typebox").TLiteral<"target_not_found">, import("@sinclair/typebox").TLiteral<"cycle">, import("@sinclair/typebox").TLiteral<"version_conflict">, import("@sinclair/typebox").TLiteral<"storage_unavailable">, import("@sinclair/typebox").TLiteral<"shared_folder_boundary">, import("@sinclair/typebox").TLiteral<"shared_folder_contents_forbidden">]>;
135
+ message: import("@sinclair/typebox").TString;
136
+ }>;
137
+ }>;
138
+ export type FolderErrorResponse = Static<typeof folderErrorResponseSchema>;
139
+ export declare const listFoldersResponseSchema: import("@sinclair/typebox").TObject<{
140
+ folders: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
141
+ archivedAt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
142
+ createdAt: import("@sinclair/typebox").TNumber;
143
+ /** What the folder is for, shown to people and given to agents working inside it. */
144
+ description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
145
+ /** A single emoji. Pictures and built-in icons are not stored yet. */
146
+ icon: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
147
+ id: import("@sinclair/typebox").TString;
148
+ name: import("@sinclair/typebox").TString;
149
+ /** Fractional index ordering this folder among every direct child of its parent. */
150
+ orderKey: import("@sinclair/typebox").TString;
151
+ /** Absent for a folder at the root of the tree. */
152
+ parentId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
153
+ /** Flat storage directory holding this folder's files. */
154
+ path: import("@sinclair/typebox").TString;
155
+ /** Standing instructions every agent working in this folder must follow. */
156
+ rules: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
157
+ /** True only for the root represented by one Murmur folder-sharing group. */
158
+ shared: import("@sinclair/typebox").TBoolean;
159
+ updatedAt: import("@sinclair/typebox").TNumber;
160
+ version: import("@sinclair/typebox").TNumber;
161
+ }>>;
162
+ /** Ordered independently inside each item's own folder. */
163
+ items: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
164
+ archivedAt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
165
+ createdAt: import("@sinclair/typebox").TNumber;
166
+ folderId: import("@sinclair/typebox").TString;
167
+ id: import("@sinclair/typebox").TString;
168
+ /** Shared fractional index ordering this item with the folder's child folders. */
169
+ orderKey: import("@sinclair/typebox").TString;
170
+ target: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
171
+ kind: import("@sinclair/typebox").TLiteral<"project">;
172
+ projectId: import("@sinclair/typebox").TString;
173
+ }>, import("@sinclair/typebox").TObject<{
174
+ kind: import("@sinclair/typebox").TLiteral<"workspace">;
175
+ workspaceId: import("@sinclair/typebox").TString;
176
+ }>, import("@sinclair/typebox").TObject<{
177
+ documentId: import("@sinclair/typebox").TString;
178
+ kind: import("@sinclair/typebox").TLiteral<"document">;
179
+ }>]>;
180
+ updatedAt: import("@sinclair/typebox").TNumber;
181
+ version: import("@sinclair/typebox").TNumber;
182
+ }>>;
183
+ /** Durable tree revision represented by this response. */
184
+ revision: import("@sinclair/typebox").TInteger;
185
+ }>;
186
+ export type ListFoldersResponse = Static<typeof listFoldersResponseSchema>;
187
+ export interface FolderResponse {
188
+ folder: Folder;
189
+ /** Durable tree revision committed with this folder response. */
190
+ revision: number;
191
+ }
192
+ export declare const folderItemResponseSchema: import("@sinclair/typebox").TObject<{
193
+ item: import("@sinclair/typebox").TObject<{
194
+ archivedAt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
195
+ createdAt: import("@sinclair/typebox").TNumber;
196
+ folderId: import("@sinclair/typebox").TString;
197
+ id: import("@sinclair/typebox").TString;
198
+ /** Shared fractional index ordering this item with the folder's child folders. */
199
+ orderKey: import("@sinclair/typebox").TString;
200
+ target: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
201
+ kind: import("@sinclair/typebox").TLiteral<"project">;
202
+ projectId: import("@sinclair/typebox").TString;
203
+ }>, import("@sinclair/typebox").TObject<{
204
+ kind: import("@sinclair/typebox").TLiteral<"workspace">;
205
+ workspaceId: import("@sinclair/typebox").TString;
206
+ }>, import("@sinclair/typebox").TObject<{
207
+ documentId: import("@sinclair/typebox").TString;
208
+ kind: import("@sinclair/typebox").TLiteral<"document">;
209
+ }>]>;
210
+ updatedAt: import("@sinclair/typebox").TNumber;
211
+ version: import("@sinclair/typebox").TNumber;
212
+ }>;
213
+ revision: import("@sinclair/typebox").TInteger;
214
+ }>;
215
+ export type FolderItemResponse = Static<typeof folderItemResponseSchema>;
216
+ export interface BaseFolderEvent<TType extends string, TData> {
217
+ createdAt: number;
218
+ data: TData;
219
+ id: EventId;
220
+ type: TType;
221
+ }
222
+ /**
223
+ * A light invalidation for the folder catalog.
224
+ *
225
+ * Folder entities travel by request-response. The durable revision lets a client keep loading until
226
+ * its snapshot includes every invalidation it has already observed.
227
+ */
228
+ export type FolderEvent = BaseFolderEvent<"folders_changed", {
229
+ mutationId?: string;
230
+ revision: number;
231
+ }>;
232
+ /**
233
+ * How long a chat may stay in Unsorted before Happy Terminal puts it away. A chat that never files itself into
234
+ * a folder is archived once this has passed since it was created.
235
+ */
236
+ export declare const UNSORTED_SESSION_ARCHIVE_AFTER_MS: number;
@@ -0,0 +1,97 @@
1
+ import { type Static } from "@sinclair/typebox";
2
+ export declare const MAX_SHARED_FOLDER_NODES = 10000;
3
+ /** One virtual folder replicated through a Murmur folder group. */
4
+ export declare const sharedFolderNodeSchema: import("@sinclair/typebox").TObject<{
5
+ description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
6
+ icon: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
7
+ id: import("@sinclair/typebox").TString;
8
+ name: import("@sinclair/typebox").TString;
9
+ /** Zero-based position among the node's direct sibling folders. */
10
+ order: import("@sinclair/typebox").TInteger;
11
+ parentId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
12
+ rules: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
13
+ }>;
14
+ export type SharedFolderNode = Static<typeof sharedFolderNodeSchema>;
15
+ /** Current complete virtual tree for one shared root. Local paths never cross the wire. */
16
+ export declare const sharedFolderStateSchema: import("@sinclair/typebox").TObject<{
17
+ folders: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
18
+ description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
19
+ icon: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
20
+ id: import("@sinclair/typebox").TString;
21
+ name: import("@sinclair/typebox").TString;
22
+ /** Zero-based position among the node's direct sibling folders. */
23
+ order: import("@sinclair/typebox").TInteger;
24
+ parentId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
25
+ rules: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
26
+ }>>;
27
+ rootId: import("@sinclair/typebox").TString;
28
+ }>;
29
+ export type SharedFolderState = Static<typeof sharedFolderStateSchema>;
30
+ /** Immutable Murmur group descriptor: the invitation package carries current initial state. */
31
+ export declare const folderShareDescriptorSchema: import("@sinclair/typebox").TObject<{
32
+ kind: import("@sinclair/typebox").TLiteral<"folder_share">;
33
+ /** Stable creation intent used to recover a creator-side crash after Murmur persists. */
34
+ shareId: import("@sinclair/typebox").TString;
35
+ state: import("@sinclair/typebox").TObject<{
36
+ folders: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
37
+ description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
38
+ icon: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
39
+ id: import("@sinclair/typebox").TString;
40
+ name: import("@sinclair/typebox").TString;
41
+ /** Zero-based position among the node's direct sibling folders. */
42
+ order: import("@sinclair/typebox").TInteger;
43
+ parentId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
44
+ rules: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
45
+ }>>;
46
+ rootId: import("@sinclair/typebox").TString;
47
+ }>;
48
+ version: import("@sinclair/typebox").TLiteral<1>;
49
+ }>;
50
+ export type FolderShareDescriptor = Static<typeof folderShareDescriptorSchema>;
51
+ export declare const folderShareOperationSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
52
+ node: import("@sinclair/typebox").TObject<{
53
+ description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
54
+ icon: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
55
+ id: import("@sinclair/typebox").TString;
56
+ name: import("@sinclair/typebox").TString;
57
+ /** Zero-based position among the node's direct sibling folders. */
58
+ order: import("@sinclair/typebox").TInteger;
59
+ parentId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
60
+ rules: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
61
+ }>;
62
+ type: import("@sinclair/typebox").TLiteral<"upsert">;
63
+ }>, import("@sinclair/typebox").TObject<{
64
+ folderId: import("@sinclair/typebox").TString;
65
+ type: import("@sinclair/typebox").TLiteral<"remove">;
66
+ }>]>;
67
+ export type FolderShareOperation = Static<typeof folderShareOperationSchema>;
68
+ /**
69
+ * One idempotent semantic operation batch.
70
+ *
71
+ * Murmur orders each recipient inbox but not the whole group. Each folder is an independent
72
+ * last-writer-wins register keyed by this Lamport clock and authenticated sender identity, so
73
+ * concurrent changes to different folders merge instead of one complete tree replacing another.
74
+ */
75
+ export declare const folderSharePacketSchema: import("@sinclair/typebox").TObject<{
76
+ clock: import("@sinclair/typebox").TInteger;
77
+ operationId: import("@sinclair/typebox").TString;
78
+ operations: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
79
+ node: import("@sinclair/typebox").TObject<{
80
+ description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
81
+ icon: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
82
+ id: import("@sinclair/typebox").TString;
83
+ name: import("@sinclair/typebox").TString;
84
+ /** Zero-based position among the node's direct sibling folders. */
85
+ order: import("@sinclair/typebox").TInteger;
86
+ parentId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
87
+ rules: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
88
+ }>;
89
+ type: import("@sinclair/typebox").TLiteral<"upsert">;
90
+ }>, import("@sinclair/typebox").TObject<{
91
+ folderId: import("@sinclair/typebox").TString;
92
+ type: import("@sinclair/typebox").TLiteral<"remove">;
93
+ }>]>>;
94
+ type: import("@sinclair/typebox").TLiteral<"operations">;
95
+ version: import("@sinclair/typebox").TLiteral<1>;
96
+ }>;
97
+ export type FolderSharePacket = Static<typeof folderSharePacketSchema>;
@@ -0,0 +1,43 @@
1
+ export declare const githubRepositorySchema: import("@sinclair/typebox").TString;
2
+ export declare const githubGitRefSchema: import("@sinclair/typebox").TString;
3
+ export declare const githubPluginPackageSourceSchema: import("@sinclair/typebox").TObject<{
4
+ catalogId: import("@sinclair/typebox").TString;
5
+ plugin: import("@sinclair/typebox").TObject<{
6
+ description: import("@sinclair/typebox").TString;
7
+ displayName: import("@sinclair/typebox").TString;
8
+ name: import("@sinclair/typebox").TString;
9
+ path: import("@sinclair/typebox").TString;
10
+ version: import("@sinclair/typebox").TString;
11
+ }>;
12
+ ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
13
+ repository: import("@sinclair/typebox").TString;
14
+ revision: import("@sinclair/typebox").TString;
15
+ type: import("@sinclair/typebox").TLiteral<"github">;
16
+ }>;
17
+ export declare const githubPluginCatalogSchema: import("@sinclair/typebox").TObject<{
18
+ catalogId: import("@sinclair/typebox").TString;
19
+ plugins: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
20
+ availability: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"not-installed">, import("@sinclair/typebox").TLiteral<"update-available">, import("@sinclair/typebox").TLiteral<"downgrade-available">, import("@sinclair/typebox").TLiteral<"reinstall-available">]>;
21
+ description: import("@sinclair/typebox").TString;
22
+ displayName: import("@sinclair/typebox").TString;
23
+ name: import("@sinclair/typebox").TString;
24
+ source: import("@sinclair/typebox").TObject<{
25
+ catalogId: import("@sinclair/typebox").TString;
26
+ plugin: import("@sinclair/typebox").TObject<{
27
+ description: import("@sinclair/typebox").TString;
28
+ displayName: import("@sinclair/typebox").TString;
29
+ name: import("@sinclair/typebox").TString;
30
+ path: import("@sinclair/typebox").TString;
31
+ version: import("@sinclair/typebox").TString;
32
+ }>;
33
+ ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
34
+ repository: import("@sinclair/typebox").TString;
35
+ revision: import("@sinclair/typebox").TString;
36
+ type: import("@sinclair/typebox").TLiteral<"github">;
37
+ }>;
38
+ version: import("@sinclair/typebox").TString;
39
+ }>>;
40
+ ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
41
+ repository: import("@sinclair/typebox").TString;
42
+ revision: import("@sinclair/typebox").TString;
43
+ }>;
@@ -0,0 +1,7 @@
1
+ import { type Static } from "@sinclair/typebox";
2
+ export declare const globalSecurityPolicySchema: import("@sinclair/typebox").TObject<{
3
+ policy: import("@sinclair/typebox").TString;
4
+ }>;
5
+ export type GetGlobalSecurityPolicyResponse = Static<typeof globalSecurityPolicySchema>;
6
+ export type UpdateGlobalSecurityPolicyRequest = Static<typeof globalSecurityPolicySchema>;
7
+ export type UpdateGlobalSecurityPolicyResponse = GetGlobalSecurityPolicyResponse;
@@ -0,0 +1,178 @@
1
+ import { type Static } from "@sinclair/typebox";
2
+ export declare const HAPPY_CLOUD_CIPHERTEXT_MAX_LENGTH: number;
3
+ export declare const happyCloudSessionIdSchema: import("@sinclair/typebox").TString;
4
+ export declare const HAPPY_CLOUD_CONTRACT_VERSION: 1;
5
+ export declare const happyCloudCapabilitySchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"group_chats">, import("@sinclair/typebox").TLiteral<"remote_control">, import("@sinclair/typebox").TLiteral<"session_blob_persistence">, import("@sinclair/typebox").TLiteral<"happy_profile">]>;
6
+ export type HappyCloudCapability = Static<typeof happyCloudCapabilitySchema>;
7
+ export declare const happyCloudConsentSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"denied">, import("@sinclair/typebox").TLiteral<"granted">]>;
8
+ export type HappyCloudConsent = Static<typeof happyCloudConsentSchema>;
9
+ export declare const happyCloudCapabilityStatusSchema: import("@sinclair/typebox").TObject<{
10
+ changedAt: import("@sinclair/typebox").TInteger;
11
+ consent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"denied">, import("@sinclair/typebox").TLiteral<"granted">]>;
12
+ }>;
13
+ export type HappyCloudCapabilityStatus = Static<typeof happyCloudCapabilityStatusSchema>;
14
+ export declare const happyCloudStatusSchema: import("@sinclair/typebox").TObject<{
15
+ authority: import("@sinclair/typebox").TLiteral<"local_record_only">;
16
+ capabilities: import("@sinclair/typebox").TObject<{
17
+ group_chats: import("@sinclair/typebox").TObject<{
18
+ changedAt: import("@sinclair/typebox").TInteger;
19
+ consent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"denied">, import("@sinclair/typebox").TLiteral<"granted">]>;
20
+ }>;
21
+ happy_profile: import("@sinclair/typebox").TObject<{
22
+ changedAt: import("@sinclair/typebox").TInteger;
23
+ consent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"denied">, import("@sinclair/typebox").TLiteral<"granted">]>;
24
+ }>;
25
+ remote_control: import("@sinclair/typebox").TObject<{
26
+ changedAt: import("@sinclair/typebox").TInteger;
27
+ consent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"denied">, import("@sinclair/typebox").TLiteral<"granted">]>;
28
+ }>;
29
+ session_blob_persistence: import("@sinclair/typebox").TObject<{
30
+ changedAt: import("@sinclair/typebox").TInteger;
31
+ consent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"denied">, import("@sinclair/typebox").TLiteral<"granted">]>;
32
+ }>;
33
+ }>;
34
+ contractVersion: import("@sinclair/typebox").TLiteral<1>;
35
+ enrollment: import("@sinclair/typebox").TObject<{
36
+ changedAt: import("@sinclair/typebox").TInteger;
37
+ state: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"not_enrolled">, import("@sinclair/typebox").TLiteral<"enrolled">]>;
38
+ }>;
39
+ profile: import("@sinclair/typebox").TObject<{
40
+ changedAt: import("@sinclair/typebox").TInteger;
41
+ state: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"not_created">, import("@sinclair/typebox").TLiteral<"created">]>;
42
+ }>;
43
+ updatedAt: import("@sinclair/typebox").TInteger;
44
+ version: import("@sinclair/typebox").TInteger;
45
+ }>;
46
+ export type HappyCloudStatus = Static<typeof happyCloudStatusSchema>;
47
+ export declare const happyCloudChangedEventSchema: import("@sinclair/typebox").TObject<{
48
+ createdAt: import("@sinclair/typebox").TInteger;
49
+ data: import("@sinclair/typebox").TObject<{
50
+ mutationId: import("@sinclair/typebox").TString;
51
+ version: import("@sinclair/typebox").TInteger;
52
+ }>;
53
+ id: import("@sinclair/typebox").TString;
54
+ type: import("@sinclair/typebox").TLiteral<"happy_cloud_changed">;
55
+ }>;
56
+ export type HappyCloudChangedEvent = Static<typeof happyCloudChangedEventSchema>;
57
+ export declare const happyCloudCommandSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
58
+ action: import("@sinclair/typebox").TLiteral<"set_enrollment">;
59
+ state: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"not_enrolled">, import("@sinclair/typebox").TLiteral<"enrolled">]>;
60
+ contractVersion: import("@sinclair/typebox").TLiteral<1>;
61
+ expectedVersion: import("@sinclair/typebox").TInteger;
62
+ mutationId: import("@sinclair/typebox").TString;
63
+ }>, import("@sinclair/typebox").TObject<{
64
+ action: import("@sinclair/typebox").TLiteral<"set_capability">;
65
+ capability: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"group_chats">, import("@sinclair/typebox").TLiteral<"remote_control">, import("@sinclair/typebox").TLiteral<"session_blob_persistence">, import("@sinclair/typebox").TLiteral<"happy_profile">]>;
66
+ consent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"denied">, import("@sinclair/typebox").TLiteral<"granted">]>;
67
+ contractVersion: import("@sinclair/typebox").TLiteral<1>;
68
+ expectedVersion: import("@sinclair/typebox").TInteger;
69
+ mutationId: import("@sinclair/typebox").TString;
70
+ }>, import("@sinclair/typebox").TObject<{
71
+ action: import("@sinclair/typebox").TLiteral<"put_profile">;
72
+ ciphertext: import("@sinclair/typebox").TString;
73
+ contractVersion: import("@sinclair/typebox").TLiteral<1>;
74
+ expectedVersion: import("@sinclair/typebox").TInteger;
75
+ mutationId: import("@sinclair/typebox").TString;
76
+ }>, import("@sinclair/typebox").TObject<{
77
+ action: import("@sinclair/typebox").TLiteral<"delete_profile">;
78
+ contractVersion: import("@sinclair/typebox").TLiteral<1>;
79
+ expectedVersion: import("@sinclair/typebox").TInteger;
80
+ mutationId: import("@sinclair/typebox").TString;
81
+ }>, import("@sinclair/typebox").TObject<{
82
+ action: import("@sinclair/typebox").TLiteral<"put_session_blob">;
83
+ ciphertext: import("@sinclair/typebox").TString;
84
+ sessionId: import("@sinclair/typebox").TString;
85
+ contractVersion: import("@sinclair/typebox").TLiteral<1>;
86
+ expectedVersion: import("@sinclair/typebox").TInteger;
87
+ mutationId: import("@sinclair/typebox").TString;
88
+ }>, import("@sinclair/typebox").TObject<{
89
+ action: import("@sinclair/typebox").TLiteral<"delete_session_blob">;
90
+ sessionId: import("@sinclair/typebox").TString;
91
+ contractVersion: import("@sinclair/typebox").TLiteral<1>;
92
+ expectedVersion: import("@sinclair/typebox").TInteger;
93
+ mutationId: import("@sinclair/typebox").TString;
94
+ }>]>;
95
+ export type HappyCloudCommand = Static<typeof happyCloudCommandSchema>;
96
+ export declare const happyCloudCommandResponseSchema: import("@sinclair/typebox").TObject<{
97
+ status: import("@sinclair/typebox").TObject<{
98
+ authority: import("@sinclair/typebox").TLiteral<"local_record_only">;
99
+ capabilities: import("@sinclair/typebox").TObject<{
100
+ group_chats: import("@sinclair/typebox").TObject<{
101
+ changedAt: import("@sinclair/typebox").TInteger;
102
+ consent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"denied">, import("@sinclair/typebox").TLiteral<"granted">]>;
103
+ }>;
104
+ happy_profile: import("@sinclair/typebox").TObject<{
105
+ changedAt: import("@sinclair/typebox").TInteger;
106
+ consent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"denied">, import("@sinclair/typebox").TLiteral<"granted">]>;
107
+ }>;
108
+ remote_control: import("@sinclair/typebox").TObject<{
109
+ changedAt: import("@sinclair/typebox").TInteger;
110
+ consent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"denied">, import("@sinclair/typebox").TLiteral<"granted">]>;
111
+ }>;
112
+ session_blob_persistence: import("@sinclair/typebox").TObject<{
113
+ changedAt: import("@sinclair/typebox").TInteger;
114
+ consent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"denied">, import("@sinclair/typebox").TLiteral<"granted">]>;
115
+ }>;
116
+ }>;
117
+ contractVersion: import("@sinclair/typebox").TLiteral<1>;
118
+ enrollment: import("@sinclair/typebox").TObject<{
119
+ changedAt: import("@sinclair/typebox").TInteger;
120
+ state: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"not_enrolled">, import("@sinclair/typebox").TLiteral<"enrolled">]>;
121
+ }>;
122
+ profile: import("@sinclair/typebox").TObject<{
123
+ changedAt: import("@sinclair/typebox").TInteger;
124
+ state: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"not_created">, import("@sinclair/typebox").TLiteral<"created">]>;
125
+ }>;
126
+ updatedAt: import("@sinclair/typebox").TInteger;
127
+ version: import("@sinclair/typebox").TInteger;
128
+ }>;
129
+ }>;
130
+ export type HappyCloudCommandResponse = Static<typeof happyCloudCommandResponseSchema>;
131
+ export declare const happyCloudCommandErrorResponseSchema: import("@sinclair/typebox").TObject<{
132
+ code: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"capability_not_granted">, import("@sinclair/typebox").TLiteral<"mutation_reused">, import("@sinclair/typebox").TLiteral<"not_enrolled">, import("@sinclair/typebox").TLiteral<"version_conflict">]>;
133
+ error: import("@sinclair/typebox").TString;
134
+ status: import("@sinclair/typebox").TObject<{
135
+ authority: import("@sinclair/typebox").TLiteral<"local_record_only">;
136
+ capabilities: import("@sinclair/typebox").TObject<{
137
+ group_chats: import("@sinclair/typebox").TObject<{
138
+ changedAt: import("@sinclair/typebox").TInteger;
139
+ consent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"denied">, import("@sinclair/typebox").TLiteral<"granted">]>;
140
+ }>;
141
+ happy_profile: import("@sinclair/typebox").TObject<{
142
+ changedAt: import("@sinclair/typebox").TInteger;
143
+ consent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"denied">, import("@sinclair/typebox").TLiteral<"granted">]>;
144
+ }>;
145
+ remote_control: import("@sinclair/typebox").TObject<{
146
+ changedAt: import("@sinclair/typebox").TInteger;
147
+ consent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"denied">, import("@sinclair/typebox").TLiteral<"granted">]>;
148
+ }>;
149
+ session_blob_persistence: import("@sinclair/typebox").TObject<{
150
+ changedAt: import("@sinclair/typebox").TInteger;
151
+ consent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"denied">, import("@sinclair/typebox").TLiteral<"granted">]>;
152
+ }>;
153
+ }>;
154
+ contractVersion: import("@sinclair/typebox").TLiteral<1>;
155
+ enrollment: import("@sinclair/typebox").TObject<{
156
+ changedAt: import("@sinclair/typebox").TInteger;
157
+ state: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"not_enrolled">, import("@sinclair/typebox").TLiteral<"enrolled">]>;
158
+ }>;
159
+ profile: import("@sinclair/typebox").TObject<{
160
+ changedAt: import("@sinclair/typebox").TInteger;
161
+ state: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"not_created">, import("@sinclair/typebox").TLiteral<"created">]>;
162
+ }>;
163
+ updatedAt: import("@sinclair/typebox").TInteger;
164
+ version: import("@sinclair/typebox").TInteger;
165
+ }>;
166
+ }>;
167
+ export type HappyCloudCommandErrorResponse = Static<typeof happyCloudCommandErrorResponseSchema>;
168
+ export declare const happyCloudProfileCiphertextResponseSchema: import("@sinclair/typebox").TObject<{
169
+ ciphertext: import("@sinclair/typebox").TString;
170
+ version: import("@sinclair/typebox").TInteger;
171
+ }>;
172
+ export type HappyCloudProfileCiphertextResponse = Static<typeof happyCloudProfileCiphertextResponseSchema>;
173
+ export declare const happyCloudSessionBlobResponseSchema: import("@sinclair/typebox").TObject<{
174
+ ciphertext: import("@sinclair/typebox").TString;
175
+ sessionId: import("@sinclair/typebox").TString;
176
+ version: import("@sinclair/typebox").TInteger;
177
+ }>;
178
+ export type HappyCloudSessionBlobResponse = Static<typeof happyCloudSessionBlobResponseSchema>;