@pellux/goodvibes-tui 0.18.12 → 0.18.17

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 (196) hide show
  1. package/CHANGELOG.md +172 -0
  2. package/README.md +1 -1
  3. package/docs/foundation-artifacts/operator-contract.json +1 -1
  4. package/package.json +3 -2
  5. package/src/config/index.ts +1 -138
  6. package/src/core/conversation-rendering.ts +3 -3
  7. package/src/core/conversation.ts +176 -423
  8. package/src/core/history.ts +45 -0
  9. package/src/core/orchestrator.ts +3 -735
  10. package/src/core/system-message-router.ts +19 -58
  11. package/src/daemon/cli.ts +82 -6
  12. package/src/input/command-registry.ts +2 -0
  13. package/src/input/commands/control-room-runtime.ts +1 -1
  14. package/src/input/commands/health-runtime.ts +1 -1
  15. package/src/input/commands/local-setup-review.ts +1 -1
  16. package/src/input/commands/platform-access-runtime.ts +1 -1
  17. package/src/input/commands/qrcode-runtime.ts +20 -0
  18. package/src/input/commands/subscription-runtime.ts +1 -1
  19. package/src/input/commands.ts +2 -0
  20. package/src/input/handler-content-actions.ts +2 -2
  21. package/src/input/handler-feed.ts +7 -1
  22. package/src/input/handler-modal-routes.ts +19 -2
  23. package/src/input/handler-modal-token-routes.ts +4 -1
  24. package/src/input/handler-picker-routes.ts +4 -2
  25. package/src/input/handler-ui-state.ts +1 -1
  26. package/src/input/handler.ts +1 -1
  27. package/src/input/model-picker.ts +11 -0
  28. package/src/input/search.ts +1 -1
  29. package/src/input/selection.ts +2 -2
  30. package/src/input/settings-modal.ts +31 -3
  31. package/src/main.ts +1 -1
  32. package/src/panels/agent-inspector-panel.ts +3 -3
  33. package/src/panels/agent-logs-panel.ts +26 -27
  34. package/src/panels/approval-panel.ts +2 -2
  35. package/src/panels/automation-control-panel.ts +3 -3
  36. package/src/panels/base-panel.ts +14 -14
  37. package/src/panels/builtin/operations.ts +1 -1
  38. package/src/panels/builtin/session.ts +67 -1
  39. package/src/panels/builtin/shared.ts +4 -4
  40. package/src/panels/cockpit-panel.ts +2 -2
  41. package/src/panels/communication-panel.ts +3 -3
  42. package/src/panels/context-visualizer-panel.ts +2 -2
  43. package/src/panels/control-plane-panel.ts +3 -3
  44. package/src/panels/cost-tracker-panel.ts +3 -3
  45. package/src/panels/debug-panel.ts +2 -2
  46. package/src/panels/diff-panel.ts +2 -2
  47. package/src/panels/docs-panel.ts +1 -1
  48. package/src/panels/eval-panel.ts +2 -2
  49. package/src/panels/file-explorer-panel.ts +3 -3
  50. package/src/panels/file-preview-panel.ts +3 -3
  51. package/src/panels/forensics-panel.ts +2 -2
  52. package/src/panels/git-panel.ts +1 -1
  53. package/src/panels/hooks-panel.ts +3 -3
  54. package/src/panels/incident-review-panel.ts +1 -1
  55. package/src/panels/intelligence-panel.ts +2 -2
  56. package/src/panels/knowledge-panel.ts +1 -1
  57. package/src/panels/local-auth-panel.ts +2 -2
  58. package/src/panels/marketplace-panel.ts +1 -1
  59. package/src/panels/mcp-panel.ts +3 -3
  60. package/src/panels/memory-panel.ts +1 -1
  61. package/src/panels/ops-control-panel.ts +3 -3
  62. package/src/panels/ops-strategy-panel.ts +2 -2
  63. package/src/panels/orchestration-panel.ts +2 -2
  64. package/src/panels/panel-list-panel.ts +6 -6
  65. package/src/panels/plan-dashboard-panel.ts +1 -1
  66. package/src/panels/plugins-panel.ts +2 -2
  67. package/src/panels/policy-panel.ts +2 -2
  68. package/src/panels/polish.ts +3 -3
  69. package/src/panels/provider-account-snapshot.ts +1 -1
  70. package/src/panels/provider-accounts-panel.ts +25 -29
  71. package/src/panels/provider-health-panel.ts +2 -2
  72. package/src/panels/provider-stats-panel.ts +3 -3
  73. package/src/panels/qr-panel.ts +182 -0
  74. package/src/panels/remote-panel.ts +3 -3
  75. package/src/panels/routes-panel.ts +3 -3
  76. package/src/panels/sandbox-panel.ts +2 -2
  77. package/src/panels/schedule-panel.ts +1 -1
  78. package/src/panels/scrollable-list-panel.ts +407 -0
  79. package/src/panels/security-panel.ts +2 -2
  80. package/src/panels/services-panel.ts +3 -3
  81. package/src/panels/session-browser-panel.ts +2 -2
  82. package/src/panels/settings-sync-panel.ts +2 -2
  83. package/src/panels/skills-panel.ts +6 -6
  84. package/src/panels/subscription-panel.ts +3 -3
  85. package/src/panels/symbol-outline-panel.ts +3 -3
  86. package/src/panels/system-messages-panel.ts +4 -4
  87. package/src/panels/tasks-panel.ts +2 -2
  88. package/src/panels/thinking-panel.ts +3 -3
  89. package/src/panels/token-budget-panel.ts +1 -1
  90. package/src/panels/tool-inspector-panel.ts +3 -3
  91. package/src/panels/types.ts +5 -5
  92. package/src/panels/watchers-panel.ts +3 -3
  93. package/src/panels/welcome-panel.ts +1 -1
  94. package/src/panels/worktree-panel.ts +22 -21
  95. package/src/panels/wrfc-panel.ts +3 -3
  96. package/src/permissions/prompt.ts +3 -22
  97. package/src/plugins/loader.ts +15 -304
  98. package/src/renderer/agent-detail-modal.ts +1 -1
  99. package/src/renderer/autocomplete-overlay.ts +2 -2
  100. package/src/renderer/bookmark-modal.ts +1 -1
  101. package/src/renderer/bottom-bar.ts +2 -2
  102. package/src/renderer/buffer.ts +1 -1
  103. package/src/renderer/code-block.ts +2 -2
  104. package/src/renderer/compositor.ts +2 -2
  105. package/src/renderer/context-inspector.ts +1 -1
  106. package/src/renderer/conversation-layout.ts +2 -2
  107. package/src/renderer/conversation-overlays.ts +1 -1
  108. package/src/renderer/conversation-surface.ts +2 -2
  109. package/src/renderer/diff-view.ts +2 -2
  110. package/src/renderer/diff.ts +1 -1
  111. package/src/renderer/file-picker-overlay.ts +2 -2
  112. package/src/renderer/file-tree.ts +2 -2
  113. package/src/renderer/help-overlay.ts +1 -1
  114. package/src/renderer/history-search-overlay.ts +2 -2
  115. package/src/renderer/live-tail-modal.ts +1 -1
  116. package/src/renderer/markdown.ts +2 -2
  117. package/src/renderer/modal-factory.ts +3 -3
  118. package/src/renderer/model-picker-overlay.ts +2 -2
  119. package/src/renderer/overlay-box.ts +2 -2
  120. package/src/renderer/panel-composite.ts +1 -1
  121. package/src/renderer/panel-picker-overlay.ts +2 -2
  122. package/src/renderer/panel-tab-bar.ts +1 -1
  123. package/src/renderer/panel-workspace-bar.ts +1 -1
  124. package/src/renderer/process-indicator.ts +2 -2
  125. package/src/renderer/process-modal.ts +1 -1
  126. package/src/renderer/profile-picker-modal.ts +2 -2
  127. package/src/renderer/progress.ts +2 -2
  128. package/src/renderer/qr-renderer.ts +117 -0
  129. package/src/renderer/search-overlay.ts +2 -2
  130. package/src/renderer/selection-modal-overlay.ts +2 -2
  131. package/src/renderer/session-picker-modal.ts +2 -2
  132. package/src/renderer/settings-modal-helpers.ts +122 -0
  133. package/src/renderer/settings-modal.ts +149 -113
  134. package/src/renderer/shell-surface.ts +1 -1
  135. package/src/renderer/system-message.ts +1 -1
  136. package/src/renderer/tab-strip.ts +2 -2
  137. package/src/renderer/text-layout.ts +1 -1
  138. package/src/renderer/thinking.ts +1 -1
  139. package/src/renderer/tool-call.ts +2 -2
  140. package/src/renderer/ui-factory.ts +2 -2
  141. package/src/runtime/bootstrap-command-context.ts +5 -6
  142. package/src/runtime/bootstrap-command-parts.ts +32 -18
  143. package/src/runtime/bootstrap-core.ts +3 -2
  144. package/src/runtime/bootstrap-hook-bridge.ts +15 -174
  145. package/src/runtime/bootstrap-shell.ts +4 -4
  146. package/src/runtime/bootstrap.ts +7 -2
  147. package/src/runtime/context.ts +4 -20
  148. package/src/runtime/diagnostics/panels/index.ts +6 -6
  149. package/src/runtime/diagnostics/panels/ops.ts +1 -1
  150. package/src/runtime/diagnostics/panels/panel-resources.ts +118 -0
  151. package/src/runtime/perf/panel-contracts.ts +32 -0
  152. package/src/runtime/perf/panel-health-monitor.ts +18 -0
  153. package/src/runtime/services.ts +5 -5
  154. package/src/runtime/store/domains/domain-read-matrix.ts +0 -2
  155. package/src/runtime/store/selectors/index.ts +11 -6
  156. package/src/runtime/store/state.ts +12 -4
  157. package/src/runtime/ui-events.ts +1 -0
  158. package/src/runtime/ui-read-model-helpers.ts +1 -32
  159. package/src/runtime/ui-read-models-observability-maintenance.ts +1 -81
  160. package/src/runtime/ui-read-models-observability-options.ts +1 -5
  161. package/src/runtime/ui-read-models-observability-remote.ts +1 -73
  162. package/src/runtime/ui-read-models-observability-security.ts +1 -172
  163. package/src/runtime/ui-read-models-observability-system.ts +1 -217
  164. package/src/runtime/ui-read-models-observability.ts +1 -59
  165. package/src/runtime/ui-service-queries.ts +1 -114
  166. package/src/runtime/ui-services.ts +1 -1
  167. package/src/shell/ui-openers.ts +1 -1
  168. package/src/tools/index.ts +1 -186
  169. package/src/types/grid.ts +48 -0
  170. package/src/utils/clipboard.ts +21 -0
  171. package/src/utils/splash-lines.ts +1 -1
  172. package/src/utils/terminal-width.ts +185 -0
  173. package/src/version.ts +1 -1
  174. package/src/config/service-registry.ts +0 -1
  175. package/src/config/subscription-providers.ts +0 -127
  176. package/src/daemon/facade-composition.ts +0 -398
  177. package/src/daemon/facade.ts +0 -638
  178. package/src/daemon/surface-policy.ts +0 -60
  179. package/src/daemon/types.ts +0 -191
  180. package/src/runtime/diagnostics/actions.ts +0 -776
  181. package/src/runtime/diagnostics/index.ts +0 -99
  182. package/src/runtime/diagnostics/panels/agents.ts +0 -252
  183. package/src/runtime/diagnostics/panels/events.ts +0 -188
  184. package/src/runtime/diagnostics/panels/health.ts +0 -242
  185. package/src/runtime/diagnostics/panels/tasks.ts +0 -251
  186. package/src/runtime/diagnostics/panels/tool-calls.ts +0 -267
  187. package/src/runtime/diagnostics/provider.ts +0 -262
  188. package/src/runtime/store/domains/conversation.ts +0 -181
  189. package/src/runtime/store/domains/permissions.ts +0 -143
  190. package/src/runtime/store/helpers/reducers/conversation.ts +0 -228
  191. package/src/runtime/store/helpers/reducers/lifecycle.ts +0 -440
  192. package/src/runtime/store/helpers/reducers/shared.ts +0 -60
  193. package/src/runtime/store/helpers/reducers/sync.ts +0 -555
  194. package/src/runtime/store/helpers/reducers.ts +0 -30
  195. package/src/runtime/ui-read-models-core.ts +0 -95
  196. package/src/runtime/ui-read-models-operations.ts +0 -203
@@ -1,60 +0,0 @@
1
- import type { ConfigManager } from '@pellux/goodvibes-sdk/platform/config/manager';
2
-
3
- type SurfaceDeliveryTarget =
4
- | 'slack'
5
- | 'discord'
6
- | 'ntfy'
7
- | 'webhook'
8
- | 'telegram'
9
- | 'google-chat'
10
- | 'signal'
11
- | 'whatsapp'
12
- | 'imessage'
13
- | 'msteams'
14
- | 'bluebubbles'
15
- | 'mattermost'
16
- | 'matrix';
17
-
18
- export function isSurfaceDeliveryEnabled(
19
- configManager: ConfigManager,
20
- surface: SurfaceDeliveryTarget,
21
- ): boolean {
22
- if (surface === 'slack') {
23
- return Boolean(configManager.get('surfaces.slack.enabled') || process.env.SLACK_BOT_TOKEN || process.env.SLACK_APP_TOKEN || process.env.SLACK_WEBHOOK_URL);
24
- }
25
- if (surface === 'discord') {
26
- return Boolean(configManager.get('surfaces.discord.enabled') || process.env.DISCORD_BOT_TOKEN || process.env.DISCORD_WEBHOOK_URL);
27
- }
28
- if (surface === 'webhook') {
29
- return Boolean(configManager.get('surfaces.webhook.enabled') || configManager.get('surfaces.webhook.defaultTarget'));
30
- }
31
- if (surface === 'ntfy') {
32
- return Boolean(configManager.get('surfaces.ntfy.enabled') || configManager.get('surfaces.ntfy.topic') || process.env.NTFY_ACCESS_TOKEN);
33
- }
34
- const surfaces = configManager.getCategory('surfaces');
35
- if (surface === 'telegram') {
36
- return Boolean(surfaces.telegram.enabled || surfaces.telegram.botToken || surfaces.telegram.defaultChatId || process.env.TELEGRAM_BOT_TOKEN);
37
- }
38
- if (surface === 'google-chat') {
39
- return Boolean(surfaces.googleChat.enabled || surfaces.googleChat.webhookUrl || surfaces.googleChat.spaceId || process.env.GOOGLE_CHAT_WEBHOOK_URL);
40
- }
41
- if (surface === 'signal') {
42
- return Boolean(surfaces.signal.enabled || surfaces.signal.bridgeUrl || surfaces.signal.account || process.env.SIGNAL_BRIDGE_TOKEN);
43
- }
44
- if (surface === 'whatsapp') {
45
- return Boolean(surfaces.whatsapp.enabled || surfaces.whatsapp.accessToken || surfaces.whatsapp.phoneNumberId || process.env.WHATSAPP_ACCESS_TOKEN);
46
- }
47
- if (surface === 'imessage') {
48
- return Boolean(surfaces.imessage.enabled || surfaces.imessage.bridgeUrl || surfaces.imessage.account || process.env.IMESSAGE_BRIDGE_TOKEN);
49
- }
50
- if (surface === 'msteams') {
51
- return Boolean(surfaces.msteams.enabled || surfaces.msteams.appId || surfaces.msteams.defaultConversationId || process.env.MSTEAMS_APP_ID);
52
- }
53
- if (surface === 'bluebubbles') {
54
- return Boolean(surfaces.bluebubbles.enabled || surfaces.bluebubbles.serverUrl || surfaces.bluebubbles.defaultChatGuid || process.env.BLUEBUBBLES_SERVER_URL);
55
- }
56
- if (surface === 'mattermost') {
57
- return Boolean(surfaces.mattermost.enabled || surfaces.mattermost.baseUrl || surfaces.mattermost.defaultChannelId || process.env.MATTERMOST_BASE_URL);
58
- }
59
- return Boolean(surfaces.matrix.enabled || surfaces.matrix.homeserverUrl || surfaces.matrix.defaultRoomId || process.env.MATRIX_HOMESERVER);
60
- }
@@ -1,191 +0,0 @@
1
- import type { RuntimeEventDomain } from '@pellux/goodvibes-sdk/platform/runtime/events/index';
2
- import type { ChannelSurface } from '@pellux/goodvibes-sdk/platform/channels/index';
3
- import type { ConfigManager } from '@pellux/goodvibes-sdk/platform/config/manager';
4
- import type { ServiceRegistry } from '../config/service-registry.ts';
5
- import type { UserAuthManager } from '@pellux/goodvibes-sdk/platform/security/user-auth';
6
- import type { AgentManager } from '@pellux/goodvibes-sdk/platform/tools/agent/index';
7
- import type { AutomationDeliveryManager, AutomationManager } from '@pellux/goodvibes-sdk/platform/automation/index';
8
- import type { ApprovalBroker, ControlPlaneGateway, SharedSessionBroker } from '@pellux/goodvibes-sdk/platform/control-plane/index';
9
- import type { GatewayMethodCatalog, GatewayMethodDescriptor } from '@pellux/goodvibes-sdk/platform/control-plane/index';
10
- import type { ProviderRegistry } from '@pellux/goodvibes-sdk/platform/providers/registry';
11
- import type { RouteBindingManager, ChannelPolicyManager, ChannelPluginRegistry, ChannelReplyPipeline, ChannelProviderRuntimeManager, SurfaceRegistry, BuiltinChannelRuntime } from '@pellux/goodvibes-sdk/platform/channels/index';
12
- import type { RuntimeEventBus } from '@pellux/goodvibes-sdk/platform/runtime/events/index';
13
- import type { IntegrationHelperService } from '@pellux/goodvibes-sdk/platform/runtime/integration/helpers';
14
- import type { DomainDispatch, RuntimeStore } from '../runtime/store/index.ts';
15
- import type { RuntimeServices } from '../runtime/services.ts';
16
- import type { DistributedRuntimeManager } from '@pellux/goodvibes-sdk/platform/runtime/remote/index';
17
- import type { WatcherRegistry } from '@pellux/goodvibes-sdk/platform/watchers/index';
18
- import type { VoiceService } from '@pellux/goodvibes-sdk/platform/voice/index';
19
- import type { WebSearchService } from '@pellux/goodvibes-sdk/platform/web-search/index';
20
- import type { KnowledgeGraphqlService, KnowledgeService } from '@pellux/goodvibes-sdk/platform/knowledge/index';
21
- import type { MediaProviderRegistry } from '@pellux/goodvibes-sdk/platform/media/index';
22
- import type { MultimodalService } from '@pellux/goodvibes-sdk/platform/multimodal/index';
23
- import type { ArtifactStore } from '@pellux/goodvibes-sdk/platform/artifacts/index';
24
- import type { AutomationExecutionPolicy, AutomationExternalContentSource, AutomationWakeMode } from '@pellux/goodvibes-sdk/platform/automation/index';
25
- import type { AutomationJob } from '@pellux/goodvibes-sdk/platform/automation/jobs';
26
- import type { SurfaceAdapterContext, GenericWebhookAdapterContext } from '@pellux/goodvibes-sdk/platform/adapters/index';
27
- import type { SharedApprovalRecord } from '@pellux/goodvibes-sdk/platform/control-plane/index';
28
- import type { DistributedPeerAuth } from '@pellux/goodvibes-sdk/platform/runtime/remote/index';
29
- import type { HookCategory, HookEventPath, HookPhase } from '@pellux/goodvibes-sdk/platform/hooks/types';
30
- import type { RuntimeEventBus as EventBus } from '@pellux/goodvibes-sdk/platform/runtime/events/index';
31
- import type { EmitterContext } from '@pellux/goodvibes-sdk/platform/runtime/emitters/index';
32
- import type { MemoryEmbeddingProviderRegistry, MemoryRegistry } from '@pellux/goodvibes-sdk/platform/state/index';
33
-
34
- export interface DaemonConfig {
35
- port?: number;
36
- host?: string;
37
- workingDir?: string;
38
- homeDirectory?: string;
39
- configManager?: ConfigManager;
40
- githubWebhookSecret?: string;
41
- agentManager?: AgentManager;
42
- serveFactory?: typeof Bun.serve;
43
- userAuth?: UserAuthManager;
44
- runtimeBus?: RuntimeEventBus | null;
45
- runtimeServices?: RuntimeServices;
46
- }
47
-
48
- export interface DaemonDangerConfig {
49
- daemon: boolean;
50
- }
51
-
52
- export interface ControlPlaneWebSocketData {
53
- readonly channel: 'control-plane';
54
- readonly authToken: string;
55
- readonly principalId: string;
56
- readonly principalKind: 'user' | 'bot' | 'service' | 'token';
57
- readonly admin: boolean;
58
- readonly scopes: readonly string[];
59
- readonly domains: readonly RuntimeEventDomain[];
60
- readonly clientKind:
61
- | 'tui'
62
- | 'web'
63
- | 'slack'
64
- | 'discord'
65
- | 'ntfy'
66
- | 'webhook'
67
- | 'telegram'
68
- | 'google-chat'
69
- | 'signal'
70
- | 'whatsapp'
71
- | 'imessage'
72
- | 'msteams'
73
- | 'bluebubbles'
74
- | 'mattermost'
75
- | 'matrix'
76
- | 'daemon';
77
- readonly remoteAddress?: string;
78
- clientId?: string;
79
- }
80
-
81
- export interface PendingSurfaceReply {
82
- readonly agentId: string;
83
- readonly surfaceKind: ChannelSurface;
84
- readonly task: string;
85
- readonly createdAt: number;
86
- readonly sessionId?: string;
87
- readonly routeId?: string;
88
- readonly responseUrl?: string;
89
- readonly channelId?: string;
90
- readonly applicationId?: string;
91
- readonly interactionToken?: string;
92
- readonly topic?: string;
93
- readonly callbackUrl?: string;
94
- readonly callbackSecret?: string;
95
- readonly callbackSignature?: 'shared-secret' | 'hmac-sha256';
96
- readonly callbackCorrelationId?: string;
97
- readonly targetAddress?: string;
98
- readonly threadId?: string;
99
- [key: string]: unknown;
100
- lastProgressAt?: number;
101
- lastProgress?: string;
102
- }
103
-
104
- export interface DaemonRouteContext {
105
- readonly configManager: ConfigManager;
106
- readonly serviceRegistry: ServiceRegistry;
107
- readonly userAuth: UserAuthManager;
108
- readonly agentManager: AgentManager;
109
- readonly automationManager: AutomationManager;
110
- readonly automationDeliveryManager: AutomationDeliveryManager;
111
- readonly approvalBroker: ApprovalBroker;
112
- readonly controlPlaneGateway: ControlPlaneGateway;
113
- readonly gatewayMethods: GatewayMethodCatalog;
114
- readonly providerRegistry: ProviderRegistry;
115
- readonly sessionBroker: SharedSessionBroker;
116
- readonly routeBindings: RouteBindingManager;
117
- readonly channelPolicy: ChannelPolicyManager;
118
- readonly channelPlugins: ChannelPluginRegistry;
119
- readonly channelReplyPipeline: ChannelReplyPipeline;
120
- readonly providerRuntime: ChannelProviderRuntimeManager;
121
- readonly builtinChannels: BuiltinChannelRuntime;
122
- readonly surfaceRegistry: SurfaceRegistry;
123
- readonly runtimeBus: EventBus | null;
124
- readonly distributedRuntime: DistributedRuntimeManager;
125
- readonly watcherRegistry: WatcherRegistry;
126
- readonly voiceService: VoiceService;
127
- readonly webSearchService: WebSearchService;
128
- readonly knowledgeService: KnowledgeService;
129
- readonly knowledgeGraphqlService: KnowledgeGraphqlService;
130
- readonly mediaProviders: MediaProviderRegistry;
131
- readonly multimodalService: MultimodalService;
132
- readonly artifactStore: ArtifactStore;
133
- readonly memoryRegistry: MemoryRegistry;
134
- readonly memoryEmbeddingRegistry: MemoryEmbeddingProviderRegistry;
135
- readonly integrationHelpers: IntegrationHelperService | null;
136
- readonly runtimeStore: RuntimeStore | null;
137
- readonly runtimeDispatch: DomainDispatch | null;
138
- readonly githubWebhookSecret: string | null;
139
- readonly authToken: string | null;
140
- readonly host: string;
141
- readonly port: number;
142
- readonly tlsTrustProxy: boolean;
143
- readonly pendingSurfaceReplies: Map<string, PendingSurfaceReply>;
144
- readonly buildSurfaceAdapterContext: () => SurfaceAdapterContext;
145
- readonly buildGenericWebhookAdapterContext: () => GenericWebhookAdapterContext;
146
- readonly authorizeSurfaceIngress: (input: unknown) => Promise<unknown>;
147
- readonly extractAuthToken: (req: Request) => string;
148
- readonly checkAuth: (req: Request) => boolean;
149
- readonly requireAuthenticatedSession: (req: Request) => { username: string; roles: readonly string[] } | null;
150
- readonly requireAdmin: (req: Request) => Response | null;
151
- readonly requireRemotePeer: (req: Request, scope?: string) => Promise<DistributedPeerAuth | Response>;
152
- readonly describeAuthenticatedPrincipal: (token: string) => { principalId: string; principalKind: 'user' | 'bot' | 'service' | 'token'; admin: boolean; scopes: readonly string[] } | null;
153
- readonly getGrantedGatewayScopes: (includeWrite: boolean) => readonly string[];
154
- readonly validateGatewayInvocation: (descriptor: GatewayMethodDescriptor, context?: { readonly principalKind?: 'user' | 'bot' | 'service' | 'token' | 'remote-peer'; readonly scopes?: readonly string[]; readonly admin?: boolean; }) => { status: number; ok: false; body: Record<string, unknown> } | null;
155
- readonly parseJsonBody: (req: Request) => Promise<Record<string, unknown> | Response>;
156
- readonly parseOptionalJsonBody: (req: Request) => Promise<Record<string, unknown> | null | Response>;
157
- readonly parseJsonText: (rawBody: string) => Record<string, unknown> | Response;
158
- readonly recordApiResponse: (req: Request, path: string, response: Response, clientKind?: 'web' | 'slack' | 'discord' | 'ntfy' | 'webhook' | 'telegram' | 'google-chat' | 'signal' | 'whatsapp' | 'imessage' | 'msteams' | 'bluebubbles' | 'mattermost' | 'matrix' | 'daemon') => Response;
159
- readonly queueSurfaceReplyFromBinding: (binding: import('@pellux/goodvibes-sdk/platform/automation/routes').AutomationRouteBinding | undefined, input: { readonly agentId: string; readonly task: string; readonly sessionId?: string; }) => void;
160
- readonly queueWebhookReply: (input: { readonly agentId: string; readonly task: string; readonly sessionId?: string; readonly routeId?: string; readonly callbackUrl?: string; readonly callbackCorrelationId?: string; readonly callbackSignature?: PendingSurfaceReply['callbackSignature']; }) => void;
161
- readonly parseSurfaceControlCommand: (text: string) => { readonly action: 'status' | 'cancel' | 'retry'; readonly id: string } | null;
162
- readonly performSurfaceControlCommand: (command: { readonly action: 'status' | 'cancel' | 'retry'; readonly id: string }) => Promise<string>;
163
- readonly performInteractiveSurfaceAction: (actionId: string, surface: 'slack' | 'discord', req: Request) => Promise<string>;
164
- readonly trySpawnAgent: (input: { mode: 'spawn'; task: string; model?: string; tools?: readonly string[]; provider?: string; context?: string }, logLabel: string, sessionId?: string) => import('@pellux/goodvibes-sdk/platform/tools/agent/index').AgentRecord | Response;
165
- readonly syncSpawnedAgentTask: (record: import('@pellux/goodvibes-sdk/platform/tools/agent/index').AgentRecord, sessionId?: string) => void;
166
- readonly syncFinishedAgentTask: (record: import('@pellux/goodvibes-sdk/platform/tools/agent/index').AgentRecord) => void;
167
- readonly findSchedule: (id: string) => AutomationJob | undefined;
168
- readonly surfaceDeliveryEnabled: (surface: 'slack' | 'discord' | 'ntfy' | 'webhook' | 'telegram' | 'google-chat' | 'signal' | 'whatsapp' | 'imessage' | 'msteams' | 'bluebubbles' | 'mattermost' | 'matrix') => boolean;
169
- readonly pollPendingSurfaceReplies: () => Promise<void>;
170
- readonly deliverSurfaceProgress: (pending: PendingSurfaceReply, progress: string) => Promise<void>;
171
- readonly deliverSlackAgentReply: (pending: PendingSurfaceReply, message: string) => Promise<void>;
172
- readonly deliverDiscordAgentReply: (pending: PendingSurfaceReply, message: string) => Promise<void>;
173
- readonly deliverNtfyAgentReply: (pending: PendingSurfaceReply, message: string) => Promise<void>;
174
- readonly deliverWebhookAgentReply: (pending: PendingSurfaceReply, message: string) => Promise<void>;
175
- readonly deliverSlackApprovalUpdate: (approval: SharedApprovalRecord, binding: import('@pellux/goodvibes-sdk/platform/automation/routes').AutomationRouteBinding) => Promise<void>;
176
- readonly deliverDiscordApprovalUpdate: (approval: SharedApprovalRecord, binding: import('@pellux/goodvibes-sdk/platform/automation/routes').AutomationRouteBinding) => Promise<void>;
177
- readonly deliverNtfyApprovalUpdate: (approval: SharedApprovalRecord, binding: import('@pellux/goodvibes-sdk/platform/automation/routes').AutomationRouteBinding) => Promise<void>;
178
- readonly deliverWebhookApprovalUpdate: (approval: SharedApprovalRecord, binding: import('@pellux/goodvibes-sdk/platform/automation/routes').AutomationRouteBinding) => Promise<void>;
179
- readonly notifyApprovalUpdate: (approval: SharedApprovalRecord) => Promise<void>;
180
- readonly controlPlaneWebUrl: (input: { readonly approvalId?: string; readonly sessionId?: string }) => string | undefined;
181
- readonly signWebhookPayload: (body: string, secret: string) => string;
182
- readonly transportId: () => string;
183
- readonly transportScheme: () => 'http' | 'https';
184
- readonly transportEndpoint: () => string;
185
- readonly emitterContext: () => EmitterContext;
186
- readonly emitTransportInitializing: () => void;
187
- readonly emitTransportConnected: () => void;
188
- readonly emitTransportDisconnected: (reason: string, willRetry: boolean) => void;
189
- readonly emitTransportTerminalFailure: (error: string) => void;
190
- readonly fireTransportHook: (specific: string, payload: Record<string, unknown>) => Promise<void>;
191
- }