xibecode 1.0.2 → 1.0.6

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 (288) hide show
  1. package/dist/commands/chat.d.ts +0 -1
  2. package/dist/commands/chat.d.ts.map +1 -1
  3. package/dist/commands/chat.js +10 -7
  4. package/dist/commands/chat.js.map +1 -1
  5. package/dist/commands/config.d.ts.map +1 -1
  6. package/dist/commands/config.js +5 -3
  7. package/dist/commands/config.js.map +1 -1
  8. package/dist/commands/diagnostics.js +1 -1
  9. package/dist/commands/diagnostics.js.map +1 -1
  10. package/dist/commands/mcp.js +1 -1
  11. package/dist/commands/mcp.js.map +1 -1
  12. package/dist/commands/resume.js +1 -1
  13. package/dist/commands/resume.js.map +1 -1
  14. package/dist/commands/run-pr.d.ts.map +1 -1
  15. package/dist/commands/run-pr.js +13 -10
  16. package/dist/commands/run-pr.js.map +1 -1
  17. package/dist/commands/run.d.ts.map +1 -1
  18. package/dist/commands/run.js +17 -14
  19. package/dist/commands/run.js.map +1 -1
  20. package/dist/commands/skills.d.ts.map +1 -1
  21. package/dist/commands/skills.js +3 -2
  22. package/dist/commands/skills.js.map +1 -1
  23. package/dist/components/AssistantMarkdown.js +1 -1
  24. package/dist/components/AssistantMarkdown.js.map +1 -1
  25. package/dist/index.js +2 -39
  26. package/dist/index.js.map +1 -1
  27. package/dist/ui/claude-style-chat.d.ts.map +1 -1
  28. package/dist/ui/claude-style-chat.js +15 -11
  29. package/dist/ui/claude-style-chat.js.map +1 -1
  30. package/dist/utils/built-in-skills-dir.d.ts +7 -0
  31. package/dist/utils/built-in-skills-dir.d.ts.map +1 -0
  32. package/dist/utils/built-in-skills-dir.js +11 -0
  33. package/dist/utils/built-in-skills-dir.js.map +1 -0
  34. package/dist/utils/config.d.ts +2 -119
  35. package/dist/utils/config.d.ts.map +1 -1
  36. package/dist/utils/config.js +3 -88
  37. package/dist/utils/config.js.map +1 -1
  38. package/package.json +11 -26
  39. package/dist/commands/punycode.d.ts +0 -5
  40. package/dist/commands/punycode.d.ts.map +0 -1
  41. package/dist/commands/punycode.js +0 -48
  42. package/dist/commands/punycode.js.map +0 -1
  43. package/dist/commands/tui.d.ts +0 -9
  44. package/dist/commands/tui.d.ts.map +0 -1
  45. package/dist/commands/tui.js +0 -83
  46. package/dist/commands/tui.js.map +0 -1
  47. package/dist/core/agent-tool-policies.d.ts +0 -5
  48. package/dist/core/agent-tool-policies.d.ts.map +0 -1
  49. package/dist/core/agent-tool-policies.js +0 -18
  50. package/dist/core/agent-tool-policies.js.map +0 -1
  51. package/dist/core/agent.d.ts +0 -181
  52. package/dist/core/agent.d.ts.map +0 -1
  53. package/dist/core/agent.js +0 -1777
  54. package/dist/core/agent.js.map +0 -1
  55. package/dist/core/background-agent.d.ts +0 -23
  56. package/dist/core/background-agent.d.ts.map +0 -1
  57. package/dist/core/background-agent.js +0 -175
  58. package/dist/core/background-agent.js.map +0 -1
  59. package/dist/core/code-graph.d.ts +0 -18
  60. package/dist/core/code-graph.d.ts.map +0 -1
  61. package/dist/core/code-graph.js +0 -105
  62. package/dist/core/code-graph.js.map +0 -1
  63. package/dist/core/conflict-solver.d.ts +0 -26
  64. package/dist/core/conflict-solver.d.ts.map +0 -1
  65. package/dist/core/conflict-solver.js +0 -108
  66. package/dist/core/conflict-solver.js.map +0 -1
  67. package/dist/core/context-compactor.d.ts +0 -10
  68. package/dist/core/context-compactor.d.ts.map +0 -1
  69. package/dist/core/context-compactor.js +0 -158
  70. package/dist/core/context-compactor.js.map +0 -1
  71. package/dist/core/context-pruner.d.ts +0 -19
  72. package/dist/core/context-pruner.d.ts.map +0 -1
  73. package/dist/core/context-pruner.js +0 -103
  74. package/dist/core/context-pruner.js.map +0 -1
  75. package/dist/core/context.d.ts +0 -82
  76. package/dist/core/context.d.ts.map +0 -1
  77. package/dist/core/context.js +0 -273
  78. package/dist/core/context.js.map +0 -1
  79. package/dist/core/conversation-recovery.d.ts +0 -9
  80. package/dist/core/conversation-recovery.d.ts.map +0 -1
  81. package/dist/core/conversation-recovery.js +0 -15
  82. package/dist/core/conversation-recovery.js.map +0 -1
  83. package/dist/core/debug-workflow.d.ts +0 -9
  84. package/dist/core/debug-workflow.d.ts.map +0 -1
  85. package/dist/core/debug-workflow.js +0 -19
  86. package/dist/core/debug-workflow.js.map +0 -1
  87. package/dist/core/docs-scraper.d.ts +0 -40
  88. package/dist/core/docs-scraper.d.ts.map +0 -1
  89. package/dist/core/docs-scraper.js +0 -386
  90. package/dist/core/docs-scraper.js.map +0 -1
  91. package/dist/core/editor.d.ts +0 -87
  92. package/dist/core/editor.d.ts.map +0 -1
  93. package/dist/core/editor.js +0 -377
  94. package/dist/core/editor.js.map +0 -1
  95. package/dist/core/export.d.ts +0 -11
  96. package/dist/core/export.d.ts.map +0 -1
  97. package/dist/core/export.js +0 -54
  98. package/dist/core/export.js.map +0 -1
  99. package/dist/core/history-manager.d.ts +0 -75
  100. package/dist/core/history-manager.d.ts.map +0 -1
  101. package/dist/core/history-manager.js +0 -146
  102. package/dist/core/history-manager.js.map +0 -1
  103. package/dist/core/marketplace-client.d.ts +0 -52
  104. package/dist/core/marketplace-client.d.ts.map +0 -1
  105. package/dist/core/marketplace-client.js +0 -71
  106. package/dist/core/marketplace-client.js.map +0 -1
  107. package/dist/core/mcp/mcp-config.d.ts +0 -10
  108. package/dist/core/mcp/mcp-config.d.ts.map +0 -1
  109. package/dist/core/mcp/mcp-config.js +0 -70
  110. package/dist/core/mcp/mcp-config.js.map +0 -1
  111. package/dist/core/mcp/mcp-policy.d.ts +0 -17
  112. package/dist/core/mcp/mcp-policy.d.ts.map +0 -1
  113. package/dist/core/mcp/mcp-policy.js +0 -56
  114. package/dist/core/mcp/mcp-policy.js.map +0 -1
  115. package/dist/core/mcp/oauth-flow.d.ts +0 -30
  116. package/dist/core/mcp/oauth-flow.d.ts.map +0 -1
  117. package/dist/core/mcp/oauth-flow.js +0 -230
  118. package/dist/core/mcp/oauth-flow.js.map +0 -1
  119. package/dist/core/mcp/oauth-store.d.ts +0 -13
  120. package/dist/core/mcp/oauth-store.d.ts.map +0 -1
  121. package/dist/core/mcp/oauth-store.js +0 -68
  122. package/dist/core/mcp/oauth-store.js.map +0 -1
  123. package/dist/core/mcp/resolve-mcp-servers.d.ts +0 -16
  124. package/dist/core/mcp/resolve-mcp-servers.d.ts.map +0 -1
  125. package/dist/core/mcp/resolve-mcp-servers.js +0 -83
  126. package/dist/core/mcp/resolve-mcp-servers.js.map +0 -1
  127. package/dist/core/mcp-client.d.ts +0 -99
  128. package/dist/core/mcp-client.d.ts.map +0 -1
  129. package/dist/core/mcp-client.js +0 -315
  130. package/dist/core/mcp-client.js.map +0 -1
  131. package/dist/core/memory-promotions.d.ts +0 -15
  132. package/dist/core/memory-promotions.d.ts.map +0 -1
  133. package/dist/core/memory-promotions.js +0 -38
  134. package/dist/core/memory-promotions.js.map +0 -1
  135. package/dist/core/memory.d.ts +0 -32
  136. package/dist/core/memory.d.ts.map +0 -1
  137. package/dist/core/memory.js +0 -121
  138. package/dist/core/memory.js.map +0 -1
  139. package/dist/core/modes.d.ts +0 -432
  140. package/dist/core/modes.d.ts.map +0 -1
  141. package/dist/core/modes.js +0 -1088
  142. package/dist/core/modes.js.map +0 -1
  143. package/dist/core/pattern-miner.d.ts +0 -43
  144. package/dist/core/pattern-miner.d.ts.map +0 -1
  145. package/dist/core/pattern-miner.js +0 -123
  146. package/dist/core/pattern-miner.js.map +0 -1
  147. package/dist/core/permission-store.d.ts +0 -15
  148. package/dist/core/permission-store.d.ts.map +0 -1
  149. package/dist/core/permission-store.js +0 -30
  150. package/dist/core/permission-store.js.map +0 -1
  151. package/dist/core/permissions.d.ts +0 -33
  152. package/dist/core/permissions.d.ts.map +0 -1
  153. package/dist/core/permissions.js +0 -141
  154. package/dist/core/permissions.js.map +0 -1
  155. package/dist/core/plan-artifacts.d.ts +0 -10
  156. package/dist/core/plan-artifacts.d.ts.map +0 -1
  157. package/dist/core/plan-artifacts.js +0 -60
  158. package/dist/core/plan-artifacts.js.map +0 -1
  159. package/dist/core/plan-session.d.ts +0 -25
  160. package/dist/core/plan-session.d.ts.map +0 -1
  161. package/dist/core/plan-session.js +0 -99
  162. package/dist/core/plan-session.js.map +0 -1
  163. package/dist/core/planMode.d.ts +0 -51
  164. package/dist/core/planMode.d.ts.map +0 -1
  165. package/dist/core/planMode.js +0 -245
  166. package/dist/core/planMode.js.map +0 -1
  167. package/dist/core/plugins.d.ts +0 -96
  168. package/dist/core/plugins.d.ts.map +0 -1
  169. package/dist/core/plugins.js +0 -202
  170. package/dist/core/plugins.js.map +0 -1
  171. package/dist/core/session-bridge.d.ts +0 -128
  172. package/dist/core/session-bridge.d.ts.map +0 -1
  173. package/dist/core/session-bridge.js +0 -328
  174. package/dist/core/session-bridge.js.map +0 -1
  175. package/dist/core/session-manager.d.ts +0 -80
  176. package/dist/core/session-manager.d.ts.map +0 -1
  177. package/dist/core/session-manager.js +0 -166
  178. package/dist/core/session-manager.js.map +0 -1
  179. package/dist/core/session-memory.d.ts +0 -45
  180. package/dist/core/session-memory.d.ts.map +0 -1
  181. package/dist/core/session-memory.js +0 -103
  182. package/dist/core/session-memory.js.map +0 -1
  183. package/dist/core/skill-selection.d.ts +0 -36
  184. package/dist/core/skill-selection.d.ts.map +0 -1
  185. package/dist/core/skill-selection.js +0 -172
  186. package/dist/core/skill-selection.js.map +0 -1
  187. package/dist/core/skills-sh-client.d.ts +0 -19
  188. package/dist/core/skills-sh-client.d.ts.map +0 -1
  189. package/dist/core/skills-sh-client.js +0 -75
  190. package/dist/core/skills-sh-client.js.map +0 -1
  191. package/dist/core/skills.d.ts +0 -97
  192. package/dist/core/skills.d.ts.map +0 -1
  193. package/dist/core/skills.js +0 -339
  194. package/dist/core/skills.js.map +0 -1
  195. package/dist/core/swarm.d.ts +0 -34
  196. package/dist/core/swarm.d.ts.map +0 -1
  197. package/dist/core/swarm.js +0 -111
  198. package/dist/core/swarm.js.map +0 -1
  199. package/dist/core/task-status.d.ts +0 -13
  200. package/dist/core/task-status.d.ts.map +0 -1
  201. package/dist/core/task-status.js +0 -17
  202. package/dist/core/task-status.js.map +0 -1
  203. package/dist/core/tool-orchestrator.d.ts +0 -30
  204. package/dist/core/tool-orchestrator.d.ts.map +0 -1
  205. package/dist/core/tool-orchestrator.js +0 -89
  206. package/dist/core/tool-orchestrator.js.map +0 -1
  207. package/dist/core/tools.d.ts +0 -462
  208. package/dist/core/tools.d.ts.map +0 -1
  209. package/dist/core/tools.js +0 -2916
  210. package/dist/core/tools.js.map +0 -1
  211. package/dist/core/transcript-cleanup.d.ts +0 -8
  212. package/dist/core/transcript-cleanup.d.ts.map +0 -1
  213. package/dist/core/transcript-cleanup.js +0 -52
  214. package/dist/core/transcript-cleanup.js.map +0 -1
  215. package/dist/core/visual-feedback.d.ts +0 -20
  216. package/dist/core/visual-feedback.d.ts.map +0 -1
  217. package/dist/core/visual-feedback.js +0 -117
  218. package/dist/core/visual-feedback.js.map +0 -1
  219. package/dist/tools/browser.d.ts +0 -120
  220. package/dist/tools/browser.d.ts.map +0 -1
  221. package/dist/tools/browser.js +0 -439
  222. package/dist/tools/browser.js.map +0 -1
  223. package/dist/tools/test-generator.d.ts +0 -157
  224. package/dist/tools/test-generator.d.ts.map +0 -1
  225. package/dist/tools/test-generator.js +0 -893
  226. package/dist/tools/test-generator.js.map +0 -1
  227. package/dist/tui/InkApp.d.ts +0 -21
  228. package/dist/tui/InkApp.d.ts.map +0 -1
  229. package/dist/tui/InkApp.js +0 -146
  230. package/dist/tui/InkApp.js.map +0 -1
  231. package/dist/tui/MarkdownMessage.d.ts +0 -16
  232. package/dist/tui/MarkdownMessage.d.ts.map +0 -1
  233. package/dist/tui/MarkdownMessage.js +0 -63
  234. package/dist/tui/MarkdownMessage.js.map +0 -1
  235. package/dist/tui/blessed-chat.d.ts +0 -9
  236. package/dist/tui/blessed-chat.d.ts.map +0 -1
  237. package/dist/tui/blessed-chat.js +0 -887
  238. package/dist/tui/blessed-chat.js.map +0 -1
  239. package/dist/tui/markdown-to-blessed.d.ts +0 -6
  240. package/dist/tui/markdown-to-blessed.d.ts.map +0 -1
  241. package/dist/tui/markdown-to-blessed.js +0 -26
  242. package/dist/tui/markdown-to-blessed.js.map +0 -1
  243. package/dist/ui/ink/App.d.ts +0 -25
  244. package/dist/ui/ink/App.d.ts.map +0 -1
  245. package/dist/ui/ink/App.js +0 -372
  246. package/dist/ui/ink/App.js.map +0 -1
  247. package/dist/utils/at-references.d.ts +0 -14
  248. package/dist/utils/at-references.d.ts.map +0 -1
  249. package/dist/utils/at-references.js +0 -47
  250. package/dist/utils/at-references.js.map +0 -1
  251. package/dist/utils/auto-memory.d.ts +0 -24
  252. package/dist/utils/auto-memory.d.ts.map +0 -1
  253. package/dist/utils/auto-memory.js +0 -153
  254. package/dist/utils/auto-memory.js.map +0 -1
  255. package/dist/utils/git.d.ts +0 -89
  256. package/dist/utils/git.d.ts.map +0 -1
  257. package/dist/utils/git.js +0 -444
  258. package/dist/utils/git.js.map +0 -1
  259. package/dist/utils/mcp-servers-file.d.ts +0 -46
  260. package/dist/utils/mcp-servers-file.d.ts.map +0 -1
  261. package/dist/utils/mcp-servers-file.js +0 -212
  262. package/dist/utils/mcp-servers-file.js.map +0 -1
  263. package/dist/utils/safety.d.ts +0 -60
  264. package/dist/utils/safety.d.ts.map +0 -1
  265. package/dist/utils/safety.js +0 -254
  266. package/dist/utils/safety.js.map +0 -1
  267. package/dist/utils/smithery.d.ts +0 -25
  268. package/dist/utils/smithery.d.ts.map +0 -1
  269. package/dist/utils/smithery.js +0 -50
  270. package/dist/utils/smithery.js.map +0 -1
  271. package/dist/utils/testRunner.d.ts +0 -44
  272. package/dist/utils/testRunner.d.ts.map +0 -1
  273. package/dist/utils/testRunner.js +0 -270
  274. package/dist/utils/testRunner.js.map +0 -1
  275. package/dist/webui/server.d.ts +0 -99
  276. package/dist/webui/server.d.ts.map +0 -1
  277. package/dist/webui/server.js +0 -2619
  278. package/dist/webui/server.js.map +0 -1
  279. package/webui-dist/assets/index-CSla6Lzy.css +0 -32
  280. package/webui-dist/assets/index-G_Z4gzPy.js +0 -457
  281. package/webui-dist/assets/index-G_Z4gzPy.js.map +0 -1
  282. package/webui-dist/assets/xterm-Da5jL1MD.js +0 -10
  283. package/webui-dist/assets/xterm-Da5jL1MD.js.map +0 -1
  284. package/webui-dist/assets/xterm-addon-fit-CMeqLIvm.js +0 -2
  285. package/webui-dist/assets/xterm-addon-fit-CMeqLIvm.js.map +0 -1
  286. package/webui-dist/assets/xterm-addon-web-links-D6m8jNVE.js +0 -2
  287. package/webui-dist/assets/xterm-addon-web-links-D6m8jNVE.js.map +0 -1
  288. package/webui-dist/index.html +0 -15
@@ -1,202 +0,0 @@
1
- import * as fs from 'fs/promises';
2
- import * as path from 'path';
3
- /**
4
- * Plugin loader and manager
5
- */
6
- export class PluginManager {
7
- plugins = new Map();
8
- tools = new Map();
9
- /**
10
- * Load plugins from a list of paths
11
- */
12
- async loadPlugins(pluginPaths) {
13
- for (const pluginPath of pluginPaths) {
14
- try {
15
- await this.loadPlugin(pluginPath);
16
- }
17
- catch (error) {
18
- console.warn(`Failed to load plugin from ${pluginPath}: ${error.message}`);
19
- }
20
- }
21
- }
22
- /**
23
- * Load a single plugin from a path
24
- */
25
- async loadPlugin(pluginPath) {
26
- // Try to resolve the plugin path
27
- let resolvedPath;
28
- // Check if it's an absolute path
29
- if (path.isAbsolute(pluginPath)) {
30
- resolvedPath = pluginPath;
31
- }
32
- else {
33
- // Try relative to cwd
34
- resolvedPath = path.resolve(process.cwd(), pluginPath);
35
- }
36
- // Check if file exists
37
- try {
38
- await fs.access(resolvedPath);
39
- }
40
- catch {
41
- throw new Error(`Plugin file not found: ${resolvedPath}`);
42
- }
43
- // Load the plugin module
44
- const pluginModule = await import(resolvedPath);
45
- const plugin = pluginModule.default || pluginModule;
46
- if (!plugin.name) {
47
- throw new Error('Plugin must have a name');
48
- }
49
- if (this.plugins.has(plugin.name)) {
50
- throw new Error(`Plugin ${plugin.name} is already loaded`);
51
- }
52
- // Initialize the plugin
53
- if (plugin.initialize) {
54
- await plugin.initialize();
55
- }
56
- // Register tools
57
- if (plugin.registerTools) {
58
- const tools = plugin.registerTools();
59
- for (const tool of tools) {
60
- const toolName = tool.schema.name;
61
- if (this.tools.has(toolName)) {
62
- throw new Error(`Tool ${toolName} is already registered`);
63
- }
64
- this.tools.set(toolName, tool);
65
- }
66
- }
67
- this.plugins.set(plugin.name, plugin);
68
- }
69
- /**
70
- * Get all registered plugin tools
71
- */
72
- getPluginTools() {
73
- return Array.from(this.tools.values()).map(t => t.schema);
74
- }
75
- /**
76
- * Execute a plugin tool
77
- */
78
- async executePluginTool(toolName, input) {
79
- const tool = this.tools.get(toolName);
80
- if (!tool) {
81
- return {
82
- error: true,
83
- success: false,
84
- message: `Plugin tool not found: ${toolName}`,
85
- };
86
- }
87
- try {
88
- const result = await tool.handler(input);
89
- return result;
90
- }
91
- catch (error) {
92
- return {
93
- error: true,
94
- success: false,
95
- message: `Plugin tool error: ${error.message}`,
96
- };
97
- }
98
- }
99
- /**
100
- * Check if a tool is a plugin tool
101
- */
102
- isPluginTool(toolName) {
103
- return this.tools.has(toolName);
104
- }
105
- /**
106
- * Register plugin hooks with the agent
107
- */
108
- registerHooks(agent) {
109
- for (const plugin of this.plugins.values()) {
110
- if (plugin.registerHooks) {
111
- plugin.registerHooks(agent);
112
- }
113
- }
114
- }
115
- /**
116
- * Get loaded plugins
117
- */
118
- getPlugins() {
119
- return Array.from(this.plugins.values());
120
- }
121
- /**
122
- * Unload all plugins
123
- */
124
- async unloadAll() {
125
- for (const plugin of this.plugins.values()) {
126
- if (plugin.cleanup) {
127
- await plugin.cleanup();
128
- }
129
- }
130
- this.plugins.clear();
131
- this.tools.clear();
132
- }
133
- /**
134
- * Unload a specific plugin
135
- */
136
- async unloadPlugin(pluginName) {
137
- const plugin = this.plugins.get(pluginName);
138
- if (!plugin) {
139
- throw new Error(`Plugin not found: ${pluginName}`);
140
- }
141
- // Cleanup
142
- if (plugin.cleanup) {
143
- await plugin.cleanup();
144
- }
145
- // Remove tools
146
- if (plugin.registerTools) {
147
- const tools = plugin.registerTools();
148
- for (const tool of tools) {
149
- this.tools.delete(tool.schema.name);
150
- }
151
- }
152
- this.plugins.delete(pluginName);
153
- }
154
- }
155
- /**
156
- * Example plugin template
157
- */
158
- export const examplePlugin = {
159
- name: 'example-plugin',
160
- version: '1.0.2',
161
- description: 'An example plugin that demonstrates the plugin API',
162
- initialize() {
163
- console.log('Example plugin initialized');
164
- },
165
- registerTools() {
166
- return [
167
- {
168
- schema: {
169
- name: 'example_tool',
170
- description: 'An example custom tool',
171
- input_schema: {
172
- type: 'object',
173
- properties: {
174
- message: {
175
- type: 'string',
176
- description: 'A message to process',
177
- },
178
- },
179
- required: ['message'],
180
- },
181
- },
182
- async handler(input) {
183
- return {
184
- success: true,
185
- message: `Processed: ${input.message}`,
186
- };
187
- },
188
- },
189
- ];
190
- },
191
- registerHooks(agent) {
192
- agent.on('event', (event) => {
193
- if (event.type === 'tool_call' && event.data.name === 'example_tool') {
194
- console.log('Example plugin hook triggered!');
195
- }
196
- });
197
- },
198
- cleanup() {
199
- console.log('Example plugin cleaned up');
200
- },
201
- };
202
- //# 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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"}