xibecode 1.0.3 → 1.0.7

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 (268) hide show
  1. package/dist/commands/chat.d.ts.map +1 -1
  2. package/dist/commands/chat.js +10 -7
  3. package/dist/commands/chat.js.map +1 -1
  4. package/dist/commands/diagnostics.js +1 -1
  5. package/dist/commands/diagnostics.js.map +1 -1
  6. package/dist/commands/mcp.js +1 -1
  7. package/dist/commands/mcp.js.map +1 -1
  8. package/dist/commands/resume.js +1 -1
  9. package/dist/commands/resume.js.map +1 -1
  10. package/dist/commands/run-pr.d.ts.map +1 -1
  11. package/dist/commands/run-pr.js +10 -9
  12. package/dist/commands/run-pr.js.map +1 -1
  13. package/dist/commands/run.d.ts.map +1 -1
  14. package/dist/commands/run.js +14 -13
  15. package/dist/commands/run.js.map +1 -1
  16. package/dist/commands/skills.d.ts.map +1 -1
  17. package/dist/commands/skills.js +3 -2
  18. package/dist/commands/skills.js.map +1 -1
  19. package/dist/components/AssistantMarkdown.js +1 -1
  20. package/dist/components/AssistantMarkdown.js.map +1 -1
  21. package/dist/ui/claude-style-chat.d.ts.map +1 -1
  22. package/dist/ui/claude-style-chat.js +12 -10
  23. package/dist/ui/claude-style-chat.js.map +1 -1
  24. package/dist/utils/built-in-skills-dir.d.ts +7 -0
  25. package/dist/utils/built-in-skills-dir.d.ts.map +1 -0
  26. package/dist/utils/built-in-skills-dir.js +11 -0
  27. package/dist/utils/built-in-skills-dir.js.map +1 -0
  28. package/dist/utils/config.d.ts +2 -119
  29. package/dist/utils/config.d.ts.map +1 -1
  30. package/dist/utils/config.js +3 -88
  31. package/dist/utils/config.js.map +1 -1
  32. package/package.json +11 -17
  33. package/dist/commands/punycode.d.ts +0 -5
  34. package/dist/commands/punycode.d.ts.map +0 -1
  35. package/dist/commands/punycode.js +0 -48
  36. package/dist/commands/punycode.js.map +0 -1
  37. package/dist/commands/tui.d.ts +0 -9
  38. package/dist/commands/tui.d.ts.map +0 -1
  39. package/dist/commands/tui.js +0 -83
  40. package/dist/commands/tui.js.map +0 -1
  41. package/dist/core/agent-tool-policies.d.ts +0 -5
  42. package/dist/core/agent-tool-policies.d.ts.map +0 -1
  43. package/dist/core/agent-tool-policies.js +0 -18
  44. package/dist/core/agent-tool-policies.js.map +0 -1
  45. package/dist/core/agent.d.ts +0 -181
  46. package/dist/core/agent.d.ts.map +0 -1
  47. package/dist/core/agent.js +0 -1777
  48. package/dist/core/agent.js.map +0 -1
  49. package/dist/core/background-agent.d.ts +0 -23
  50. package/dist/core/background-agent.d.ts.map +0 -1
  51. package/dist/core/background-agent.js +0 -175
  52. package/dist/core/background-agent.js.map +0 -1
  53. package/dist/core/code-graph.d.ts +0 -18
  54. package/dist/core/code-graph.d.ts.map +0 -1
  55. package/dist/core/code-graph.js +0 -105
  56. package/dist/core/code-graph.js.map +0 -1
  57. package/dist/core/conflict-solver.d.ts +0 -26
  58. package/dist/core/conflict-solver.d.ts.map +0 -1
  59. package/dist/core/conflict-solver.js +0 -108
  60. package/dist/core/conflict-solver.js.map +0 -1
  61. package/dist/core/context-compactor.d.ts +0 -10
  62. package/dist/core/context-compactor.d.ts.map +0 -1
  63. package/dist/core/context-compactor.js +0 -158
  64. package/dist/core/context-compactor.js.map +0 -1
  65. package/dist/core/context-pruner.d.ts +0 -19
  66. package/dist/core/context-pruner.d.ts.map +0 -1
  67. package/dist/core/context-pruner.js +0 -103
  68. package/dist/core/context-pruner.js.map +0 -1
  69. package/dist/core/context.d.ts +0 -82
  70. package/dist/core/context.d.ts.map +0 -1
  71. package/dist/core/context.js +0 -273
  72. package/dist/core/context.js.map +0 -1
  73. package/dist/core/conversation-recovery.d.ts +0 -9
  74. package/dist/core/conversation-recovery.d.ts.map +0 -1
  75. package/dist/core/conversation-recovery.js +0 -15
  76. package/dist/core/conversation-recovery.js.map +0 -1
  77. package/dist/core/debug-workflow.d.ts +0 -9
  78. package/dist/core/debug-workflow.d.ts.map +0 -1
  79. package/dist/core/debug-workflow.js +0 -19
  80. package/dist/core/debug-workflow.js.map +0 -1
  81. package/dist/core/docs-scraper.d.ts +0 -40
  82. package/dist/core/docs-scraper.d.ts.map +0 -1
  83. package/dist/core/docs-scraper.js +0 -386
  84. package/dist/core/docs-scraper.js.map +0 -1
  85. package/dist/core/editor.d.ts +0 -87
  86. package/dist/core/editor.d.ts.map +0 -1
  87. package/dist/core/editor.js +0 -377
  88. package/dist/core/editor.js.map +0 -1
  89. package/dist/core/export.d.ts +0 -11
  90. package/dist/core/export.d.ts.map +0 -1
  91. package/dist/core/export.js +0 -54
  92. package/dist/core/export.js.map +0 -1
  93. package/dist/core/history-manager.d.ts +0 -75
  94. package/dist/core/history-manager.d.ts.map +0 -1
  95. package/dist/core/history-manager.js +0 -146
  96. package/dist/core/history-manager.js.map +0 -1
  97. package/dist/core/marketplace-client.d.ts +0 -52
  98. package/dist/core/marketplace-client.d.ts.map +0 -1
  99. package/dist/core/marketplace-client.js +0 -71
  100. package/dist/core/marketplace-client.js.map +0 -1
  101. package/dist/core/mcp/mcp-config.d.ts +0 -10
  102. package/dist/core/mcp/mcp-config.d.ts.map +0 -1
  103. package/dist/core/mcp/mcp-config.js +0 -70
  104. package/dist/core/mcp/mcp-config.js.map +0 -1
  105. package/dist/core/mcp/mcp-policy.d.ts +0 -17
  106. package/dist/core/mcp/mcp-policy.d.ts.map +0 -1
  107. package/dist/core/mcp/mcp-policy.js +0 -56
  108. package/dist/core/mcp/mcp-policy.js.map +0 -1
  109. package/dist/core/mcp/oauth-flow.d.ts +0 -30
  110. package/dist/core/mcp/oauth-flow.d.ts.map +0 -1
  111. package/dist/core/mcp/oauth-flow.js +0 -230
  112. package/dist/core/mcp/oauth-flow.js.map +0 -1
  113. package/dist/core/mcp/oauth-store.d.ts +0 -13
  114. package/dist/core/mcp/oauth-store.d.ts.map +0 -1
  115. package/dist/core/mcp/oauth-store.js +0 -68
  116. package/dist/core/mcp/oauth-store.js.map +0 -1
  117. package/dist/core/mcp/resolve-mcp-servers.d.ts +0 -16
  118. package/dist/core/mcp/resolve-mcp-servers.d.ts.map +0 -1
  119. package/dist/core/mcp/resolve-mcp-servers.js +0 -83
  120. package/dist/core/mcp/resolve-mcp-servers.js.map +0 -1
  121. package/dist/core/mcp-client.d.ts +0 -99
  122. package/dist/core/mcp-client.d.ts.map +0 -1
  123. package/dist/core/mcp-client.js +0 -317
  124. package/dist/core/mcp-client.js.map +0 -1
  125. package/dist/core/memory-promotions.d.ts +0 -15
  126. package/dist/core/memory-promotions.d.ts.map +0 -1
  127. package/dist/core/memory-promotions.js +0 -38
  128. package/dist/core/memory-promotions.js.map +0 -1
  129. package/dist/core/memory.d.ts +0 -32
  130. package/dist/core/memory.d.ts.map +0 -1
  131. package/dist/core/memory.js +0 -121
  132. package/dist/core/memory.js.map +0 -1
  133. package/dist/core/modes.d.ts +0 -432
  134. package/dist/core/modes.d.ts.map +0 -1
  135. package/dist/core/modes.js +0 -1094
  136. package/dist/core/modes.js.map +0 -1
  137. package/dist/core/pattern-miner.d.ts +0 -43
  138. package/dist/core/pattern-miner.d.ts.map +0 -1
  139. package/dist/core/pattern-miner.js +0 -123
  140. package/dist/core/pattern-miner.js.map +0 -1
  141. package/dist/core/permission-store.d.ts +0 -15
  142. package/dist/core/permission-store.d.ts.map +0 -1
  143. package/dist/core/permission-store.js +0 -30
  144. package/dist/core/permission-store.js.map +0 -1
  145. package/dist/core/permissions.d.ts +0 -33
  146. package/dist/core/permissions.d.ts.map +0 -1
  147. package/dist/core/permissions.js +0 -141
  148. package/dist/core/permissions.js.map +0 -1
  149. package/dist/core/plan-artifacts.d.ts +0 -10
  150. package/dist/core/plan-artifacts.d.ts.map +0 -1
  151. package/dist/core/plan-artifacts.js +0 -60
  152. package/dist/core/plan-artifacts.js.map +0 -1
  153. package/dist/core/plan-session.d.ts +0 -25
  154. package/dist/core/plan-session.d.ts.map +0 -1
  155. package/dist/core/plan-session.js +0 -99
  156. package/dist/core/plan-session.js.map +0 -1
  157. package/dist/core/planMode.d.ts +0 -51
  158. package/dist/core/planMode.d.ts.map +0 -1
  159. package/dist/core/planMode.js +0 -245
  160. package/dist/core/planMode.js.map +0 -1
  161. package/dist/core/plugins.d.ts +0 -96
  162. package/dist/core/plugins.d.ts.map +0 -1
  163. package/dist/core/plugins.js +0 -204
  164. package/dist/core/plugins.js.map +0 -1
  165. package/dist/core/session-bridge.d.ts +0 -128
  166. package/dist/core/session-bridge.d.ts.map +0 -1
  167. package/dist/core/session-bridge.js +0 -328
  168. package/dist/core/session-bridge.js.map +0 -1
  169. package/dist/core/session-manager.d.ts +0 -80
  170. package/dist/core/session-manager.d.ts.map +0 -1
  171. package/dist/core/session-manager.js +0 -166
  172. package/dist/core/session-manager.js.map +0 -1
  173. package/dist/core/session-memory.d.ts +0 -45
  174. package/dist/core/session-memory.d.ts.map +0 -1
  175. package/dist/core/session-memory.js +0 -103
  176. package/dist/core/session-memory.js.map +0 -1
  177. package/dist/core/skill-selection.d.ts +0 -36
  178. package/dist/core/skill-selection.d.ts.map +0 -1
  179. package/dist/core/skill-selection.js +0 -172
  180. package/dist/core/skill-selection.js.map +0 -1
  181. package/dist/core/skills-sh-client.d.ts +0 -19
  182. package/dist/core/skills-sh-client.d.ts.map +0 -1
  183. package/dist/core/skills-sh-client.js +0 -75
  184. package/dist/core/skills-sh-client.js.map +0 -1
  185. package/dist/core/skills.d.ts +0 -97
  186. package/dist/core/skills.d.ts.map +0 -1
  187. package/dist/core/skills.js +0 -339
  188. package/dist/core/skills.js.map +0 -1
  189. package/dist/core/swarm.d.ts +0 -34
  190. package/dist/core/swarm.d.ts.map +0 -1
  191. package/dist/core/swarm.js +0 -111
  192. package/dist/core/swarm.js.map +0 -1
  193. package/dist/core/task-status.d.ts +0 -13
  194. package/dist/core/task-status.d.ts.map +0 -1
  195. package/dist/core/task-status.js +0 -17
  196. package/dist/core/task-status.js.map +0 -1
  197. package/dist/core/tool-orchestrator.d.ts +0 -30
  198. package/dist/core/tool-orchestrator.d.ts.map +0 -1
  199. package/dist/core/tool-orchestrator.js +0 -89
  200. package/dist/core/tool-orchestrator.js.map +0 -1
  201. package/dist/core/tools.d.ts +0 -462
  202. package/dist/core/tools.d.ts.map +0 -1
  203. package/dist/core/tools.js +0 -2916
  204. package/dist/core/tools.js.map +0 -1
  205. package/dist/core/transcript-cleanup.d.ts +0 -8
  206. package/dist/core/transcript-cleanup.d.ts.map +0 -1
  207. package/dist/core/transcript-cleanup.js +0 -52
  208. package/dist/core/transcript-cleanup.js.map +0 -1
  209. package/dist/core/visual-feedback.d.ts +0 -20
  210. package/dist/core/visual-feedback.d.ts.map +0 -1
  211. package/dist/core/visual-feedback.js +0 -117
  212. package/dist/core/visual-feedback.js.map +0 -1
  213. package/dist/tools/browser.d.ts +0 -120
  214. package/dist/tools/browser.d.ts.map +0 -1
  215. package/dist/tools/browser.js +0 -439
  216. package/dist/tools/browser.js.map +0 -1
  217. package/dist/tools/test-generator.d.ts +0 -157
  218. package/dist/tools/test-generator.d.ts.map +0 -1
  219. package/dist/tools/test-generator.js +0 -893
  220. package/dist/tools/test-generator.js.map +0 -1
  221. package/dist/tui/InkApp.d.ts +0 -21
  222. package/dist/tui/InkApp.d.ts.map +0 -1
  223. package/dist/tui/InkApp.js +0 -146
  224. package/dist/tui/InkApp.js.map +0 -1
  225. package/dist/tui/MarkdownMessage.d.ts +0 -16
  226. package/dist/tui/MarkdownMessage.d.ts.map +0 -1
  227. package/dist/tui/MarkdownMessage.js +0 -63
  228. package/dist/tui/MarkdownMessage.js.map +0 -1
  229. package/dist/tui/blessed-chat.d.ts +0 -9
  230. package/dist/tui/blessed-chat.d.ts.map +0 -1
  231. package/dist/tui/blessed-chat.js +0 -887
  232. package/dist/tui/blessed-chat.js.map +0 -1
  233. package/dist/tui/markdown-to-blessed.d.ts +0 -6
  234. package/dist/tui/markdown-to-blessed.d.ts.map +0 -1
  235. package/dist/tui/markdown-to-blessed.js +0 -26
  236. package/dist/tui/markdown-to-blessed.js.map +0 -1
  237. package/dist/ui/ink/App.d.ts +0 -25
  238. package/dist/ui/ink/App.d.ts.map +0 -1
  239. package/dist/ui/ink/App.js +0 -372
  240. package/dist/ui/ink/App.js.map +0 -1
  241. package/dist/utils/at-references.d.ts +0 -14
  242. package/dist/utils/at-references.d.ts.map +0 -1
  243. package/dist/utils/at-references.js +0 -47
  244. package/dist/utils/at-references.js.map +0 -1
  245. package/dist/utils/auto-memory.d.ts +0 -24
  246. package/dist/utils/auto-memory.d.ts.map +0 -1
  247. package/dist/utils/auto-memory.js +0 -153
  248. package/dist/utils/auto-memory.js.map +0 -1
  249. package/dist/utils/git.d.ts +0 -89
  250. package/dist/utils/git.d.ts.map +0 -1
  251. package/dist/utils/git.js +0 -444
  252. package/dist/utils/git.js.map +0 -1
  253. package/dist/utils/mcp-servers-file.d.ts +0 -46
  254. package/dist/utils/mcp-servers-file.d.ts.map +0 -1
  255. package/dist/utils/mcp-servers-file.js +0 -212
  256. package/dist/utils/mcp-servers-file.js.map +0 -1
  257. package/dist/utils/safety.d.ts +0 -60
  258. package/dist/utils/safety.d.ts.map +0 -1
  259. package/dist/utils/safety.js +0 -254
  260. package/dist/utils/safety.js.map +0 -1
  261. package/dist/utils/smithery.d.ts +0 -25
  262. package/dist/utils/smithery.d.ts.map +0 -1
  263. package/dist/utils/smithery.js +0 -50
  264. package/dist/utils/smithery.js.map +0 -1
  265. package/dist/utils/testRunner.d.ts +0 -44
  266. package/dist/utils/testRunner.d.ts.map +0 -1
  267. package/dist/utils/testRunner.js +0 -270
  268. package/dist/utils/testRunner.js.map +0 -1
@@ -1,204 +0,0 @@
1
- import { createRequire } from 'module';
2
- import * as fs from 'fs/promises';
3
- import * as path from 'path';
4
- const pkg = createRequire(import.meta.url)('../../package.json');
5
- /**
6
- * Plugin loader and manager
7
- */
8
- export class PluginManager {
9
- plugins = new Map();
10
- tools = new Map();
11
- /**
12
- * Load plugins from a list of paths
13
- */
14
- async loadPlugins(pluginPaths) {
15
- for (const pluginPath of pluginPaths) {
16
- try {
17
- await this.loadPlugin(pluginPath);
18
- }
19
- catch (error) {
20
- console.warn(`Failed to load plugin from ${pluginPath}: ${error.message}`);
21
- }
22
- }
23
- }
24
- /**
25
- * Load a single plugin from a path
26
- */
27
- async loadPlugin(pluginPath) {
28
- // Try to resolve the plugin path
29
- let resolvedPath;
30
- // Check if it's an absolute path
31
- if (path.isAbsolute(pluginPath)) {
32
- resolvedPath = pluginPath;
33
- }
34
- else {
35
- // Try relative to cwd
36
- resolvedPath = path.resolve(process.cwd(), pluginPath);
37
- }
38
- // Check if file exists
39
- try {
40
- await fs.access(resolvedPath);
41
- }
42
- catch {
43
- throw new Error(`Plugin file not found: ${resolvedPath}`);
44
- }
45
- // Load the plugin module
46
- const pluginModule = await import(resolvedPath);
47
- const plugin = pluginModule.default || pluginModule;
48
- if (!plugin.name) {
49
- throw new Error('Plugin must have a name');
50
- }
51
- if (this.plugins.has(plugin.name)) {
52
- throw new Error(`Plugin ${plugin.name} is already loaded`);
53
- }
54
- // Initialize the plugin
55
- if (plugin.initialize) {
56
- await plugin.initialize();
57
- }
58
- // Register tools
59
- if (plugin.registerTools) {
60
- const tools = plugin.registerTools();
61
- for (const tool of tools) {
62
- const toolName = tool.schema.name;
63
- if (this.tools.has(toolName)) {
64
- throw new Error(`Tool ${toolName} is already registered`);
65
- }
66
- this.tools.set(toolName, tool);
67
- }
68
- }
69
- this.plugins.set(plugin.name, plugin);
70
- }
71
- /**
72
- * Get all registered plugin tools
73
- */
74
- getPluginTools() {
75
- return Array.from(this.tools.values()).map(t => t.schema);
76
- }
77
- /**
78
- * Execute a plugin tool
79
- */
80
- async executePluginTool(toolName, input) {
81
- const tool = this.tools.get(toolName);
82
- if (!tool) {
83
- return {
84
- error: true,
85
- success: false,
86
- message: `Plugin tool not found: ${toolName}`,
87
- };
88
- }
89
- try {
90
- const result = await tool.handler(input);
91
- return result;
92
- }
93
- catch (error) {
94
- return {
95
- error: true,
96
- success: false,
97
- message: `Plugin tool error: ${error.message}`,
98
- };
99
- }
100
- }
101
- /**
102
- * Check if a tool is a plugin tool
103
- */
104
- isPluginTool(toolName) {
105
- return this.tools.has(toolName);
106
- }
107
- /**
108
- * Register plugin hooks with the agent
109
- */
110
- registerHooks(agent) {
111
- for (const plugin of this.plugins.values()) {
112
- if (plugin.registerHooks) {
113
- plugin.registerHooks(agent);
114
- }
115
- }
116
- }
117
- /**
118
- * Get loaded plugins
119
- */
120
- getPlugins() {
121
- return Array.from(this.plugins.values());
122
- }
123
- /**
124
- * Unload all plugins
125
- */
126
- async unloadAll() {
127
- for (const plugin of this.plugins.values()) {
128
- if (plugin.cleanup) {
129
- await plugin.cleanup();
130
- }
131
- }
132
- this.plugins.clear();
133
- this.tools.clear();
134
- }
135
- /**
136
- * Unload a specific plugin
137
- */
138
- async unloadPlugin(pluginName) {
139
- const plugin = this.plugins.get(pluginName);
140
- if (!plugin) {
141
- throw new Error(`Plugin not found: ${pluginName}`);
142
- }
143
- // Cleanup
144
- if (plugin.cleanup) {
145
- await plugin.cleanup();
146
- }
147
- // Remove tools
148
- if (plugin.registerTools) {
149
- const tools = plugin.registerTools();
150
- for (const tool of tools) {
151
- this.tools.delete(tool.schema.name);
152
- }
153
- }
154
- this.plugins.delete(pluginName);
155
- }
156
- }
157
- /**
158
- * Example plugin template
159
- */
160
- export const examplePlugin = {
161
- name: 'example-plugin',
162
- version: pkg.version,
163
- description: 'An example plugin that demonstrates the plugin API',
164
- initialize() {
165
- console.log('Example plugin initialized');
166
- },
167
- registerTools() {
168
- return [
169
- {
170
- schema: {
171
- name: 'example_tool',
172
- description: 'An example custom tool',
173
- input_schema: {
174
- type: 'object',
175
- properties: {
176
- message: {
177
- type: 'string',
178
- description: 'A message to process',
179
- },
180
- },
181
- required: ['message'],
182
- },
183
- },
184
- async handler(input) {
185
- return {
186
- success: true,
187
- message: `Processed: ${input.message}`,
188
- };
189
- },
190
- },
191
- ];
192
- },
193
- registerHooks(agent) {
194
- agent.on('event', (event) => {
195
- if (event.type === 'tool_call' && event.data.name === 'example_tool') {
196
- console.log('Example plugin hook triggered!');
197
- }
198
- });
199
- },
200
- cleanup() {
201
- console.log('Example plugin cleaned up');
202
- },
203
- };
204
- //# sourceMappingURL=plugins.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/core/plugins.ts"],"names":[],"mappings":"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"}
@@ -1,128 +0,0 @@
1
- /**
2
- * Session Bridge - Synchronizes TUI and WebUI in real-time
3
- *
4
- * This module provides a shared event bus that connects the terminal UI
5
- * and browser WebUI, ensuring both show the same conversation state.
6
- */
7
- import { EventEmitter } from 'events';
8
- export interface BridgeMessage {
9
- type: 'user_message' | 'assistant_message' | 'stream_start' | 'stream_text' | 'stream_end' | 'tool_call' | 'tool_result' | 'thinking' | 'error' | 'session_sync' | 'plan_questions' | 'plan_ready' | 'pentest_ready' | 'plan_state' | 'permission_state' | 'task_status';
10
- data: any;
11
- source: 'tui' | 'webui';
12
- timestamp: number;
13
- }
14
- export interface SessionState {
15
- messages: any[];
16
- sessionId: string;
17
- model: string;
18
- mode: string;
19
- permissionMode?: string;
20
- planStatus?: string;
21
- taskStatuses?: Array<{
22
- id: string;
23
- label: string;
24
- status: string;
25
- updatedAt: string;
26
- }>;
27
- isProcessing: boolean;
28
- }
29
- /**
30
- * SessionBridge - Singleton that synchronizes TUI and WebUI
31
- */
32
- declare class SessionBridgeClass extends EventEmitter {
33
- private static instance;
34
- private state;
35
- private webSocketClients;
36
- private constructor();
37
- static getInstance(): SessionBridgeClass;
38
- /**
39
- * Register a WebSocket client for real-time updates
40
- */
41
- registerWebSocket(ws: any): void;
42
- /**
43
- * Unregister a WebSocket client
44
- */
45
- unregisterWebSocket(ws: any): void;
46
- /**
47
- * Broadcast message to all WebSocket clients
48
- */
49
- broadcastToWebUI(message: BridgeMessage): void;
50
- /**
51
- * Send message to specific client
52
- */
53
- private sendToClient;
54
- /**
55
- * Called from TUI when user sends a message
56
- */
57
- onTUIUserMessage(content: string): void;
58
- /**
59
- * Called from WebUI when user sends a message
60
- */
61
- onWebUIUserMessage(content: string): void;
62
- /**
63
- * Called when assistant starts streaming
64
- */
65
- onStreamStart(persona?: string): void;
66
- /**
67
- * Called when assistant streams text
68
- */
69
- onStreamText(text: string): void;
70
- /**
71
- * Called when assistant finishes streaming
72
- */
73
- onStreamEnd(): void;
74
- /**
75
- * Called when a tool is invoked
76
- */
77
- onToolCall(name: string, input: any): void;
78
- /**
79
- * Called when a tool returns a result
80
- */
81
- onToolResult(name: string, result: any, success: boolean): void;
82
- /**
83
- * Called when assistant is thinking
84
- */
85
- onThinking(text: string): void;
86
- /**
87
- * Called on error
88
- */
89
- onError(error: string): void;
90
- /**
91
- * Called when full response is complete
92
- */
93
- onAssistantMessage(content: string, persona?: string): void;
94
- /**
95
- * Called when planner mode emits questions for the user
96
- */
97
- onPlanQuestions(questions: any[]): void;
98
- /**
99
- * Called when planner mode has finished writing implementations.md
100
- */
101
- onPlanReady(planContent: string, planPath: string): void;
102
- onPlanState(status: string, sessionId?: string): void;
103
- onPermissionState(permissionMode: string): void;
104
- onTaskStatus(id: string, label: string, status: string): void;
105
- /**
106
- * Called when pentest mode has finished writing pentest-report.md
107
- */
108
- onPentestReady(reportContent: string, reportPath: string): void;
109
- /**
110
- * Update session state
111
- */
112
- updateState(partial: Partial<SessionState>): void;
113
- /**
114
- * Get current state
115
- */
116
- getState(): SessionState;
117
- /**
118
- * Check if processing
119
- */
120
- isProcessing(): boolean;
121
- /**
122
- * Get connected client count
123
- */
124
- getClientCount(): number;
125
- }
126
- export declare const SessionBridge: SessionBridgeClass;
127
- export {};
128
- //# sourceMappingURL=session-bridge.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-bridge.d.ts","sourceRoot":"","sources":["../../src/core/session-bridge.ts"],"names":[],"mappings":"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"}
@@ -1,328 +0,0 @@
1
- /**
2
- * Session Bridge - Synchronizes TUI and WebUI in real-time
3
- *
4
- * This module provides a shared event bus that connects the terminal UI
5
- * and browser WebUI, ensuring both show the same conversation state.
6
- */
7
- import { EventEmitter } from 'events';
8
- /**
9
- * SessionBridge - Singleton that synchronizes TUI and WebUI
10
- */
11
- class SessionBridgeClass extends EventEmitter {
12
- static instance;
13
- state = {
14
- messages: [],
15
- sessionId: '',
16
- model: '',
17
- mode: 'agent',
18
- permissionMode: 'default',
19
- planStatus: undefined,
20
- taskStatuses: [],
21
- isProcessing: false,
22
- };
23
- webSocketClients = new Set();
24
- constructor() {
25
- super();
26
- this.setMaxListeners(50);
27
- }
28
- static getInstance() {
29
- if (!SessionBridgeClass.instance) {
30
- SessionBridgeClass.instance = new SessionBridgeClass();
31
- }
32
- return SessionBridgeClass.instance;
33
- }
34
- /**
35
- * Register a WebSocket client for real-time updates
36
- */
37
- registerWebSocket(ws) {
38
- this.webSocketClients.add(ws);
39
- // Send current state to new client
40
- this.sendToClient(ws, {
41
- type: 'session_sync',
42
- data: this.state,
43
- source: 'tui',
44
- timestamp: Date.now(),
45
- });
46
- }
47
- /**
48
- * Unregister a WebSocket client
49
- */
50
- unregisterWebSocket(ws) {
51
- this.webSocketClients.delete(ws);
52
- }
53
- /**
54
- * Broadcast message to all WebSocket clients
55
- */
56
- broadcastToWebUI(message) {
57
- if (this.webSocketClients.size === 0) {
58
- return; // No clients connected
59
- }
60
- const payload = JSON.stringify(message);
61
- for (const ws of this.webSocketClients) {
62
- try {
63
- if (ws.readyState === 1) { // WebSocket.OPEN
64
- ws.send(payload);
65
- }
66
- }
67
- catch (e) {
68
- // Remove dead connections
69
- this.webSocketClients.delete(ws);
70
- }
71
- }
72
- }
73
- /**
74
- * Send message to specific client
75
- */
76
- sendToClient(ws, message) {
77
- try {
78
- if (ws.readyState === 1) {
79
- ws.send(JSON.stringify(message));
80
- }
81
- }
82
- catch (e) {
83
- this.webSocketClients.delete(ws);
84
- }
85
- }
86
- /**
87
- * Called from TUI when user sends a message
88
- */
89
- onTUIUserMessage(content) {
90
- const message = {
91
- type: 'user_message',
92
- data: { content },
93
- source: 'tui',
94
- timestamp: Date.now(),
95
- };
96
- this.state.isProcessing = true;
97
- this.broadcastToWebUI(message);
98
- this.emit('user_message', content, 'tui');
99
- }
100
- /**
101
- * Called from WebUI when user sends a message
102
- */
103
- onWebUIUserMessage(content) {
104
- const message = {
105
- type: 'user_message',
106
- data: { content },
107
- source: 'webui',
108
- timestamp: Date.now(),
109
- };
110
- this.state.isProcessing = true;
111
- this.broadcastToWebUI(message);
112
- this.emit('user_message', content, 'webui');
113
- }
114
- /**
115
- * Called when assistant starts streaming
116
- */
117
- onStreamStart(persona) {
118
- const message = {
119
- type: 'stream_start',
120
- data: { persona },
121
- source: 'tui',
122
- timestamp: Date.now(),
123
- };
124
- this.broadcastToWebUI(message);
125
- }
126
- /**
127
- * Called when assistant streams text
128
- */
129
- onStreamText(text) {
130
- const message = {
131
- type: 'stream_text',
132
- data: { text },
133
- source: 'tui',
134
- timestamp: Date.now(),
135
- };
136
- this.broadcastToWebUI(message);
137
- }
138
- /**
139
- * Called when assistant finishes streaming
140
- */
141
- onStreamEnd() {
142
- const message = {
143
- type: 'stream_end',
144
- data: {},
145
- source: 'tui',
146
- timestamp: Date.now(),
147
- };
148
- this.state.isProcessing = false;
149
- this.broadcastToWebUI(message);
150
- }
151
- /**
152
- * Called when a tool is invoked
153
- */
154
- onToolCall(name, input) {
155
- const message = {
156
- type: 'tool_call',
157
- data: { name, input },
158
- source: 'tui',
159
- timestamp: Date.now(),
160
- };
161
- this.broadcastToWebUI(message);
162
- }
163
- /**
164
- * Called when a tool returns a result
165
- */
166
- onToolResult(name, result, success) {
167
- const message = {
168
- type: 'tool_result',
169
- data: { name, result, success },
170
- source: 'tui',
171
- timestamp: Date.now(),
172
- };
173
- this.broadcastToWebUI(message);
174
- }
175
- /**
176
- * Called when assistant is thinking
177
- */
178
- onThinking(text) {
179
- const message = {
180
- type: 'thinking',
181
- data: { text },
182
- source: 'tui',
183
- timestamp: Date.now(),
184
- };
185
- this.broadcastToWebUI(message);
186
- }
187
- /**
188
- * Called on error
189
- */
190
- onError(error) {
191
- const message = {
192
- type: 'error',
193
- data: { error },
194
- source: 'tui',
195
- timestamp: Date.now(),
196
- };
197
- this.state.isProcessing = false;
198
- this.broadcastToWebUI(message);
199
- }
200
- /**
201
- * Called when full response is complete
202
- */
203
- onAssistantMessage(content, persona) {
204
- const message = {
205
- type: 'assistant_message',
206
- data: { content, persona },
207
- source: 'tui',
208
- timestamp: Date.now(),
209
- };
210
- this.state.isProcessing = false;
211
- this.broadcastToWebUI(message);
212
- }
213
- /**
214
- * Called when planner mode emits questions for the user
215
- */
216
- onPlanQuestions(questions) {
217
- const message = {
218
- type: 'plan_questions',
219
- data: { questions },
220
- source: 'tui',
221
- timestamp: Date.now(),
222
- };
223
- this.broadcastToWebUI(message);
224
- this.emit('plan_questions', questions);
225
- }
226
- /**
227
- * Called when planner mode has finished writing implementations.md
228
- */
229
- onPlanReady(planContent, planPath) {
230
- const message = {
231
- type: 'plan_ready',
232
- data: { planContent, planPath },
233
- source: 'tui',
234
- timestamp: Date.now(),
235
- };
236
- this.broadcastToWebUI(message);
237
- this.emit('plan_ready', planContent, planPath);
238
- }
239
- onPlanState(status, sessionId) {
240
- this.state.planStatus = status;
241
- const message = {
242
- type: 'plan_state',
243
- data: { status, sessionId },
244
- source: 'tui',
245
- timestamp: Date.now(),
246
- };
247
- this.broadcastToWebUI(message);
248
- this.emit('plan_state', status, sessionId);
249
- }
250
- onPermissionState(permissionMode) {
251
- this.state.permissionMode = permissionMode;
252
- const message = {
253
- type: 'permission_state',
254
- data: { permissionMode },
255
- source: 'tui',
256
- timestamp: Date.now(),
257
- };
258
- this.broadcastToWebUI(message);
259
- this.emit('permission_state', permissionMode);
260
- }
261
- onTaskStatus(id, label, status) {
262
- const taskStatuses = this.state.taskStatuses ?? [];
263
- const updatedAt = new Date().toISOString();
264
- const existingIndex = taskStatuses.findIndex((task) => task.id === id);
265
- const next = { id, label, status, updatedAt };
266
- if (existingIndex >= 0) {
267
- taskStatuses[existingIndex] = next;
268
- }
269
- else {
270
- taskStatuses.unshift(next);
271
- }
272
- this.state.taskStatuses = taskStatuses.slice(0, 30);
273
- const message = {
274
- type: 'task_status',
275
- data: next,
276
- source: 'tui',
277
- timestamp: Date.now(),
278
- };
279
- this.broadcastToWebUI(message);
280
- this.emit('task_status', next);
281
- }
282
- /**
283
- * Called when pentest mode has finished writing pentest-report.md
284
- */
285
- onPentestReady(reportContent, reportPath) {
286
- const message = {
287
- type: 'pentest_ready',
288
- data: { reportContent, reportPath },
289
- source: 'tui',
290
- timestamp: Date.now(),
291
- };
292
- this.broadcastToWebUI(message);
293
- this.emit('pentest_ready', reportContent, reportPath);
294
- }
295
- /**
296
- * Update session state
297
- */
298
- updateState(partial) {
299
- this.state = { ...this.state, ...partial };
300
- this.broadcastToWebUI({
301
- type: 'session_sync',
302
- data: this.state,
303
- source: 'tui',
304
- timestamp: Date.now(),
305
- });
306
- }
307
- /**
308
- * Get current state
309
- */
310
- getState() {
311
- return { ...this.state };
312
- }
313
- /**
314
- * Check if processing
315
- */
316
- isProcessing() {
317
- return this.state.isProcessing;
318
- }
319
- /**
320
- * Get connected client count
321
- */
322
- getClientCount() {
323
- return this.webSocketClients.size;
324
- }
325
- }
326
- // Export singleton
327
- export const SessionBridge = SessionBridgeClass.getInstance();
328
- //# sourceMappingURL=session-bridge.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-bridge.js","sourceRoot":"","sources":["../../src/core/session-bridge.ts"],"names":[],"mappings":"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"}