@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,481 @@
1
+ import { type Static } from "@sinclair/typebox";
2
+ import type { ToolPermissionReview } from "@slopus/happy-agent-client";
3
+ import type { SessionProviderError } from "@slopus/happy-providers";
4
+ import type { Attachment } from "./Attachment.js";
5
+ import type { ServiceNotice } from "./ServiceNotice.js";
6
+ export type PermissionMode = "auto" | "workspace_write" | "read_only" | "full_access";
7
+ export type ServiceTier = "fast";
8
+ export type StopReason = "stop" | "length" | "toolUse" | "error" | "aborted";
9
+ export type ProviderError = SessionProviderError;
10
+ export interface Model<TThinkingLevel extends string = string> {
11
+ autoCompactWindow?: number;
12
+ contextWindow?: number;
13
+ defaultThinkingLevel: TThinkingLevel;
14
+ id: string;
15
+ name: string;
16
+ thinkingLevels: readonly TThinkingLevel[];
17
+ }
18
+ export interface Usage {
19
+ cacheRead: number;
20
+ cacheWrite: number;
21
+ cost: {
22
+ cacheRead: number;
23
+ cacheWrite: number;
24
+ input: number;
25
+ output: number;
26
+ total: number;
27
+ };
28
+ input: number;
29
+ output: number;
30
+ reasoning?: number;
31
+ totalTokens: number;
32
+ }
33
+ export interface TextBlock {
34
+ text: string;
35
+ type: "text";
36
+ }
37
+ export interface ImageBlock {
38
+ data: string;
39
+ detail?: "high" | "original";
40
+ mediaType: string;
41
+ type: "image";
42
+ }
43
+ export type ContentBlock = TextBlock | ImageBlock;
44
+ export interface ThinkingBlock {
45
+ encrypted?: string;
46
+ redacted?: boolean;
47
+ thinking: string;
48
+ type: "thinking";
49
+ }
50
+ export type ExplorationOperation = {
51
+ kind: "list";
52
+ target: string;
53
+ } | {
54
+ kind: "read";
55
+ name: string;
56
+ } | {
57
+ command: string;
58
+ kind: "search";
59
+ path?: string;
60
+ query?: string;
61
+ };
62
+ export interface ExplorationToolCallPresentation {
63
+ operations: readonly ExplorationOperation[];
64
+ type: "exploration";
65
+ }
66
+ export interface ExecCommandToolCallPresentation {
67
+ command: string;
68
+ type: "exec_command";
69
+ }
70
+ export interface SearchSource {
71
+ title?: string;
72
+ url: string;
73
+ }
74
+ export interface SearchToolCallPresentation {
75
+ query: string;
76
+ target: "web" | "x";
77
+ type: "search";
78
+ }
79
+ export type ToolCallPresentation = ExecCommandToolCallPresentation | ExplorationToolCallPresentation | SearchToolCallPresentation;
80
+ export type FileDiffKind = "add" | "delete" | "update";
81
+ export type FileDiffLineKind = "add" | "context" | "delete";
82
+ export interface FileDiffLine {
83
+ kind: FileDiffLineKind;
84
+ text: string;
85
+ }
86
+ export interface FileDiffHunk {
87
+ lines: readonly FileDiffLine[];
88
+ newStart: number;
89
+ oldStart: number;
90
+ }
91
+ export interface FileDiff {
92
+ added?: number;
93
+ deleted?: number;
94
+ hunks: readonly FileDiffHunk[];
95
+ kind: FileDiffKind;
96
+ language?: string;
97
+ omittedLines?: number;
98
+ path: string;
99
+ }
100
+ export interface BackgroundTerminalInteractionPresentation {
101
+ command: string;
102
+ input: string;
103
+ sessionId: number;
104
+ type: "background_terminal_interaction";
105
+ }
106
+ export interface ExecCommandPresentation {
107
+ command: string;
108
+ output: string;
109
+ sessionId?: number;
110
+ type: "exec_command";
111
+ }
112
+ export interface FileDiffToolResultPresentation {
113
+ files: readonly FileDiff[];
114
+ omittedFiles?: number;
115
+ type: "file_diff";
116
+ }
117
+ export interface SearchToolResultPresentation {
118
+ query: string;
119
+ sources: readonly SearchSource[];
120
+ target: "web" | "x";
121
+ type: "search";
122
+ }
123
+ export type ToolResultPresentation = BackgroundTerminalInteractionPresentation | ExecCommandPresentation | ExplorationToolCallPresentation | FileDiffToolResultPresentation | SearchToolResultPresentation;
124
+ /** The complete automatic-review annotation for one tool call. */
125
+ export interface ToolPermission {
126
+ elevated: boolean;
127
+ review: ToolPermissionReview;
128
+ }
129
+ export interface ToolCallBlock {
130
+ arguments: unknown;
131
+ id: string;
132
+ incomplete?: boolean;
133
+ kind?: "custom" | "function";
134
+ name: string;
135
+ namespace?: string;
136
+ presentation?: ToolCallPresentation;
137
+ providerToolCallId?: string;
138
+ /** Present exactly when this invocation crossed the automatic-review boundary. */
139
+ toolPermission?: ToolPermission;
140
+ type: "tool_call";
141
+ vendor?: unknown;
142
+ }
143
+ export type { ToolPermissionReview };
144
+ export interface ToolResultFailure {
145
+ kind: "execution_failed" | "interrupted" | "invalid_arguments" | "tool_unavailable";
146
+ message?: string;
147
+ }
148
+ export interface ToolResultBlock {
149
+ display: string;
150
+ failure?: ToolResultFailure;
151
+ isError?: boolean;
152
+ presentation?: ToolResultPresentation;
153
+ providerToolCallId?: string;
154
+ rendered: readonly ContentBlock[];
155
+ toolCallId: string;
156
+ toolName: string;
157
+ trustedUserEvidence?: readonly ContentBlock[];
158
+ type: "tool_result";
159
+ vendor?: unknown;
160
+ }
161
+ export type AgentBlock = ContentBlock | ThinkingBlock | ToolCallBlock | ToolResultBlock;
162
+ export interface SystemMessage {
163
+ blocks: readonly ContentBlock[];
164
+ context?: "excluded";
165
+ id: string;
166
+ role: "system";
167
+ structured?: ServiceNotice;
168
+ }
169
+ export interface UserMessage {
170
+ agentMessageTriggerTurn?: boolean;
171
+ agentSource?: {
172
+ agentId: string;
173
+ sessionId: string;
174
+ title?: string;
175
+ };
176
+ blocks: readonly ContentBlock[];
177
+ contextOnly?: true;
178
+ encryptedAgentMessage?: {
179
+ author: string;
180
+ encryptedContent: string;
181
+ header: string;
182
+ recipient: string;
183
+ };
184
+ id: string;
185
+ identity?: string | null;
186
+ internal?: true;
187
+ provenance?: "agent";
188
+ role: "user";
189
+ shellCommandId?: string;
190
+ }
191
+ export interface AgentMessage {
192
+ attachments?: readonly Attachment[];
193
+ blocks: readonly AgentBlock[];
194
+ contextTokens?: number;
195
+ id: string;
196
+ internal?: true;
197
+ providerId?: string;
198
+ requestedModelId?: string;
199
+ responseModel?: string;
200
+ role: "agent";
201
+ sessionMessage?: unknown;
202
+ usage?: Usage;
203
+ }
204
+ export interface CompactionMessage {
205
+ blocks: readonly ContentBlock[];
206
+ id: string;
207
+ providerId: string;
208
+ replacedMessageIds: readonly string[];
209
+ requestedModelId?: string;
210
+ responseModel?: string;
211
+ role: "compaction";
212
+ statistics: {
213
+ after: {
214
+ exact: boolean;
215
+ tokens: number;
216
+ };
217
+ before: {
218
+ exact: true;
219
+ tokens: number;
220
+ };
221
+ };
222
+ usage?: Usage;
223
+ }
224
+ export interface ErrorMessage {
225
+ attempt?: number;
226
+ blocks: readonly ContentBlock[];
227
+ context?: "excluded";
228
+ id: string;
229
+ outcome: "retried" | "continued" | "failed";
230
+ providerError?: ProviderError;
231
+ providerId?: string;
232
+ requestedModelId?: string;
233
+ role: "error";
234
+ }
235
+ export type Message = SystemMessage | UserMessage | AgentMessage | CompactionMessage | ErrorMessage;
236
+ export interface AgentSnapshot {
237
+ appendSystemPrompt?: string;
238
+ contextMessages?: readonly Message[];
239
+ effort?: string;
240
+ id: string;
241
+ instructions?: string;
242
+ lastRunId?: string;
243
+ messages: readonly Message[];
244
+ modelId: string;
245
+ providerId: string;
246
+ queue: readonly {
247
+ id: string;
248
+ message: Message;
249
+ }[];
250
+ serviceTier?: ServiceTier;
251
+ status: "idle" | "running" | "aborted";
252
+ systemPrompt?: string;
253
+ tools: readonly string[];
254
+ }
255
+ export interface AgentCompactionResult {
256
+ compacted: boolean;
257
+ compactedMessageCount: number;
258
+ estimatedTokensAfter: number;
259
+ estimatedTokensBefore: number;
260
+ retainedMessageCount: number;
261
+ }
262
+ /**
263
+ * Provider and module events are an open wire union. Happy Terminal displays the fields it understands and
264
+ * preserves unknown additions from newer Happy Agent versions.
265
+ */
266
+ export interface AgentLoopEvent {
267
+ type: string;
268
+ [key: string]: any;
269
+ }
270
+ export type AutoPermissionRisk = "low" | "medium" | "high" | "critical";
271
+ export type AutoPermissionUserAuthorization = "unknown" | "low" | "medium" | "high";
272
+ export type GoalStatus = "active" | "blocked" | "complete" | "paused";
273
+ export interface SessionGoal {
274
+ createdAt: number;
275
+ objective: string;
276
+ status: GoalStatus;
277
+ updatedAt: number;
278
+ }
279
+ export interface CreateGoalRequest {
280
+ objective: string;
281
+ }
282
+ export interface ChangeGoalStatusRequest {
283
+ status: GoalStatus;
284
+ }
285
+ export interface UserInputOption {
286
+ description: string;
287
+ label: string;
288
+ }
289
+ export interface UserInputQuestion {
290
+ header: string;
291
+ id: string;
292
+ multiSelect: boolean;
293
+ options: readonly UserInputOption[];
294
+ question: string;
295
+ required?: boolean;
296
+ }
297
+ export interface UserInputRequest {
298
+ autoResolutionMs?: number;
299
+ questions: readonly UserInputQuestion[];
300
+ requestId: string;
301
+ }
302
+ export interface UserInputResponse {
303
+ answers: Readonly<Record<string, readonly string[]>>;
304
+ }
305
+ export interface McpServerSummary {
306
+ errorMessage?: string;
307
+ name: string;
308
+ promptSupport?: boolean;
309
+ resourceSupport?: boolean;
310
+ status: "blocked" | "connected" | "disabled" | "failed";
311
+ toolCount: number;
312
+ }
313
+ export type TaskStatus = "pending" | "in_progress" | "completed";
314
+ export interface SessionTask {
315
+ activeForm?: string;
316
+ blockedBy: readonly string[];
317
+ blocks: readonly string[];
318
+ description: string;
319
+ id: string;
320
+ metadata?: Readonly<Record<string, unknown>>;
321
+ owner?: string;
322
+ status: TaskStatus;
323
+ subject: string;
324
+ }
325
+ export type WorkflowRunStatus = "completed" | "error" | "running" | "stopped";
326
+ export interface WorkflowRun {
327
+ agentCount: number;
328
+ code: string;
329
+ description: string;
330
+ error?: string;
331
+ finishedAt?: number;
332
+ logs: readonly string[];
333
+ name: string;
334
+ output?: unknown;
335
+ phase?: string;
336
+ runId: string;
337
+ startedAt: number;
338
+ status: WorkflowRunStatus;
339
+ taskId: string;
340
+ }
341
+ export interface WorkflowRunUpdate {
342
+ agentCount?: number;
343
+ code?: string;
344
+ description?: string;
345
+ error?: string;
346
+ finishedAt?: number;
347
+ log?: string;
348
+ name?: string;
349
+ output?: unknown;
350
+ phase?: string;
351
+ runId: string;
352
+ startedAt?: number;
353
+ status?: WorkflowRunStatus;
354
+ taskId?: string;
355
+ }
356
+ export interface DurableSkillDefinition {
357
+ description: string;
358
+ location: "durable";
359
+ name: string;
360
+ }
361
+ export interface ScheduledMessage {
362
+ createdAt: number;
363
+ deliveredAt?: number;
364
+ dueAt: number;
365
+ failure?: string;
366
+ id: string;
367
+ message: string;
368
+ senderSessionId: string;
369
+ status: "pending" | "delivered" | "undelivered" | "cancelled";
370
+ targetAgentId: string;
371
+ updatedAt: number;
372
+ }
373
+ export interface DockerMountConfig {
374
+ readOnly?: boolean;
375
+ source: string;
376
+ target: string;
377
+ }
378
+ export interface DockerExecutionConfig {
379
+ container?: string;
380
+ environment?: Readonly<Record<string, string>>;
381
+ image?: string;
382
+ mounts?: readonly DockerMountConfig[];
383
+ name?: string;
384
+ socketPath?: string;
385
+ workingDirectory: string;
386
+ }
387
+ export type SessionExecutionEnvironment = {
388
+ type: "local";
389
+ } | {
390
+ kind: "container" | "image";
391
+ reference: string;
392
+ type: "docker";
393
+ workingDirectory: string;
394
+ };
395
+ export interface BashSessionActivity {
396
+ command: string;
397
+ cwd: string;
398
+ sessionId: number;
399
+ status: "running";
400
+ }
401
+ export type BashSessionStatus = "completed" | "killed" | "running";
402
+ export interface BashSessionSnapshot {
403
+ command: string;
404
+ cwd: string;
405
+ exitCode: number | null;
406
+ sessionId: number;
407
+ status: BashSessionStatus;
408
+ stderr: string;
409
+ stderrBytes?: number;
410
+ stderrDelta: string;
411
+ stderrDeltaBytes?: number;
412
+ stderrDeltaOmittedBytes?: number;
413
+ stderrOmittedBytes?: number;
414
+ stdout: string;
415
+ stdoutBytes?: number;
416
+ stdoutDelta: string;
417
+ stdoutDeltaBytes?: number;
418
+ stdoutDeltaOmittedBytes?: number;
419
+ stdoutOmittedBytes?: number;
420
+ timedOut: boolean;
421
+ }
422
+ export declare const secretIdSchema: import("@sinclair/typebox").TString;
423
+ export declare const environmentVariableNameSchema: import("@sinclair/typebox").TString;
424
+ export declare const environmentSecretRegistrationSchema: import("@sinclair/typebox").TObject<{
425
+ description: import("@sinclair/typebox").TString;
426
+ environment: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TString>;
427
+ id: import("@sinclair/typebox").TString;
428
+ }>;
429
+ export declare const environmentSecretUpdateSchema: import("@sinclair/typebox").TObject<{
430
+ description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
431
+ environment: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>>>;
432
+ }>;
433
+ export type EnvironmentSecretRegistration = Static<typeof environmentSecretRegistrationSchema>;
434
+ export type EnvironmentSecretUpdate = Static<typeof environmentSecretUpdateSchema>;
435
+ export type SecretAttachmentScope = "project" | "session";
436
+ export interface SecretReference {
437
+ availableToModel?: boolean;
438
+ description: string;
439
+ environmentVariables: readonly string[];
440
+ id: string;
441
+ kind?: "github";
442
+ }
443
+ export interface ExternalToolDefinition {
444
+ description: string;
445
+ label?: string;
446
+ name: string;
447
+ parameters: Readonly<Record<string, unknown>>;
448
+ }
449
+ export interface ExternalToolCall {
450
+ arguments: unknown;
451
+ batchId: string;
452
+ consumed: boolean;
453
+ createdAt: number;
454
+ definition: ExternalToolDefinition;
455
+ id: string;
456
+ providerToolCallId?: string;
457
+ resolution?: ExternalToolCallResolution;
458
+ resolvedAt?: number;
459
+ runId: string;
460
+ sessionId: string;
461
+ skill?: DurableSkillDefinition;
462
+ status: "pending" | "completed" | "failed" | "cancelled";
463
+ toolCallId: string;
464
+ toolCallIndex: number;
465
+ }
466
+ export type ExternalToolCallResolution = {
467
+ content?: readonly ContentBlock[];
468
+ output?: unknown;
469
+ status: "completed";
470
+ } | {
471
+ error: {
472
+ code?: string;
473
+ data?: unknown;
474
+ message: string;
475
+ };
476
+ status: "failed";
477
+ };
478
+ export interface ResolveExternalToolCallResponse {
479
+ accepted: boolean;
480
+ call: ExternalToolCall;
481
+ }
@@ -0,0 +1,109 @@
1
+ import { type Static } from "@sinclair/typebox";
2
+ import type { EventId } from "./EventId.js";
3
+ export declare const DOCUMENT_STATE_MAX_BYTES: number;
4
+ export declare const DOCUMENT_UPDATE_MAX_BYTES: number;
5
+ export declare const DOCUMENT_UPDATE_PAGE_MAX_LIMIT = 1000;
6
+ export declare const DOCUMENT_UPDATE_RETENTION_MAX_COUNT = 10000;
7
+ export declare const DOCUMENT_UPDATE_RETENTION_MAX_BYTES: number;
8
+ export declare const documentUnreadCursorSchema: import("@sinclair/typebox").TString;
9
+ export declare const documentCreatedBySchema: import("@sinclair/typebox").TObject<{
10
+ instanceId: import("@sinclair/typebox").TString;
11
+ profileId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
12
+ }>;
13
+ export type DocumentCreatedBy = Static<typeof documentCreatedBySchema>;
14
+ export declare const documentSchema: import("@sinclair/typebox").TObject<{
15
+ createdAt: import("@sinclair/typebox").TInteger;
16
+ createdBy: import("@sinclair/typebox").TObject<{
17
+ instanceId: import("@sinclair/typebox").TString;
18
+ profileId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
19
+ }>;
20
+ firstRetainedVersion: import("@sinclair/typebox").TInteger;
21
+ id: import("@sinclair/typebox").TString;
22
+ mimeType: import("@sinclair/typebox").TString;
23
+ state: import("@sinclair/typebox").TUnknown;
24
+ unreadCursor: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
25
+ updatedAt: import("@sinclair/typebox").TInteger;
26
+ version: import("@sinclair/typebox").TInteger;
27
+ }>;
28
+ export type Document = Static<typeof documentSchema>;
29
+ export declare const documentUpdateSchema: import("@sinclair/typebox").TObject<{
30
+ createdAt: import("@sinclair/typebox").TInteger;
31
+ documentId: import("@sinclair/typebox").TString;
32
+ id: import("@sinclair/typebox").TString;
33
+ update: import("@sinclair/typebox").TUnknown;
34
+ version: import("@sinclair/typebox").TInteger;
35
+ }>;
36
+ export type DocumentUpdate = Static<typeof documentUpdateSchema>;
37
+ export declare const createDocumentRequestSchema: import("@sinclair/typebox").TObject<{
38
+ id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
39
+ identity: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>>;
40
+ mimeType: import("@sinclair/typebox").TString;
41
+ mutationId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
42
+ state: import("@sinclair/typebox").TUnknown;
43
+ unreadCursor: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
44
+ }>;
45
+ export type CreateDocumentRequest = Static<typeof createDocumentRequestSchema>;
46
+ export declare const writeDocumentRequestSchema: import("@sinclair/typebox").TObject<{
47
+ mimeType: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
48
+ mutationId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
49
+ state: import("@sinclair/typebox").TUnknown;
50
+ unreadCursor: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>>;
51
+ update: import("@sinclair/typebox").TUnknown;
52
+ }>;
53
+ export type WriteDocumentRequest = Static<typeof writeDocumentRequestSchema>;
54
+ export declare const listDocumentUpdatesRequestSchema: import("@sinclair/typebox").TObject<{
55
+ afterVersion: import("@sinclair/typebox").TInteger;
56
+ limit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
57
+ }>;
58
+ export type ListDocumentUpdatesRequest = Static<typeof listDocumentUpdatesRequestSchema>;
59
+ export declare const documentResponseSchema: import("@sinclair/typebox").TObject<{
60
+ document: import("@sinclair/typebox").TObject<{
61
+ createdAt: import("@sinclair/typebox").TInteger;
62
+ createdBy: import("@sinclair/typebox").TObject<{
63
+ instanceId: import("@sinclair/typebox").TString;
64
+ profileId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
65
+ }>;
66
+ firstRetainedVersion: import("@sinclair/typebox").TInteger;
67
+ id: import("@sinclair/typebox").TString;
68
+ mimeType: import("@sinclair/typebox").TString;
69
+ state: import("@sinclair/typebox").TUnknown;
70
+ unreadCursor: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
71
+ updatedAt: import("@sinclair/typebox").TInteger;
72
+ version: import("@sinclair/typebox").TInteger;
73
+ }>;
74
+ }>;
75
+ export type DocumentResponse = Static<typeof documentResponseSchema>;
76
+ export declare const documentUpdatePageSchema: import("@sinclair/typebox").TObject<{
77
+ currentVersion: import("@sinclair/typebox").TInteger;
78
+ firstRetainedVersion: import("@sinclair/typebox").TInteger;
79
+ gap: import("@sinclair/typebox").TBoolean;
80
+ hasMore: import("@sinclair/typebox").TBoolean;
81
+ nextAfterVersion: import("@sinclair/typebox").TInteger;
82
+ updates: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
83
+ createdAt: import("@sinclair/typebox").TInteger;
84
+ documentId: import("@sinclair/typebox").TString;
85
+ id: import("@sinclair/typebox").TString;
86
+ update: import("@sinclair/typebox").TUnknown;
87
+ version: import("@sinclair/typebox").TInteger;
88
+ }>>;
89
+ }>;
90
+ export type DocumentUpdatePage = Static<typeof documentUpdatePageSchema>;
91
+ export declare const documentErrorCodeSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"invalid_request">, import("@sinclair/typebox").TLiteral<"document_not_found">, import("@sinclair/typebox").TLiteral<"version_conflict">]>;
92
+ export type DocumentErrorCode = Static<typeof documentErrorCodeSchema>;
93
+ export declare const documentErrorResponseSchema: import("@sinclair/typebox").TObject<{
94
+ error: import("@sinclair/typebox").TObject<{
95
+ code: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"invalid_request">, import("@sinclair/typebox").TLiteral<"document_not_found">, import("@sinclair/typebox").TLiteral<"version_conflict">]>;
96
+ message: import("@sinclair/typebox").TString;
97
+ }>;
98
+ }>;
99
+ export type DocumentErrorResponse = Static<typeof documentErrorResponseSchema>;
100
+ export interface DocumentEvent {
101
+ createdAt: number;
102
+ data: {
103
+ documentId: string;
104
+ mutationId?: string;
105
+ version: number;
106
+ };
107
+ id: EventId;
108
+ type: "document_changed";
109
+ }
@@ -0,0 +1 @@
1
+ export type EventId = string;