@tyvm/knowhow 0.0.82 → 0.0.84

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 (210) hide show
  1. package/package.json +4 -2
  2. package/src/agents/base/base.ts +72 -62
  3. package/src/agents/index.ts +30 -14
  4. package/src/agents/tools/startAgentTask.ts +3 -1
  5. package/src/chat/CliChatService.ts +20 -4
  6. package/src/chat/modules/AgentModule.ts +399 -357
  7. package/src/chat/modules/CustomCommandsModule.ts +0 -1
  8. package/src/chat/modules/InternalChatModule.ts +18 -2
  9. package/src/chat/modules/RendererModule.ts +109 -0
  10. package/src/chat/modules/SessionsModule.ts +854 -0
  11. package/src/chat/modules/SetupModule.ts +6 -8
  12. package/src/chat/modules/index.ts +1 -0
  13. package/src/chat/renderer/CompactRenderer.ts +209 -0
  14. package/src/chat/renderer/ConsoleRenderer.ts +141 -0
  15. package/src/chat/renderer/FancyRenderer.ts +421 -0
  16. package/src/chat/renderer/index.ts +5 -0
  17. package/src/chat/renderer/loadRenderer.ts +314 -0
  18. package/src/chat/renderer/messagesToRenderEvents.ts +96 -0
  19. package/src/chat/renderer/types.ts +88 -0
  20. package/src/chat/types.ts +5 -0
  21. package/src/chat.ts +69 -5
  22. package/src/cli.ts +24 -5
  23. package/src/config.ts +15 -0
  24. package/src/plugins/AgentsMdPlugin.ts +1 -1
  25. package/src/plugins/GitPlugin.ts +20 -20
  26. package/src/plugins/PluginBase.ts +11 -0
  27. package/src/plugins/SkillsPlugin.ts +150 -0
  28. package/src/plugins/asana.ts +4 -4
  29. package/src/plugins/embedding.ts +3 -5
  30. package/src/plugins/exec.ts +3 -3
  31. package/src/plugins/figma.ts +3 -7
  32. package/src/plugins/github.ts +18 -29
  33. package/src/plugins/jira.ts +2 -2
  34. package/src/plugins/language.ts +4 -4
  35. package/src/plugins/linear.ts +4 -4
  36. package/src/plugins/notion.ts +6 -8
  37. package/src/plugins/plugins.ts +30 -4
  38. package/src/plugins/url.ts +2 -2
  39. package/src/plugins/vim.ts +4 -3
  40. package/src/services/AgentService.ts +17 -0
  41. package/src/services/AgentSyncFs.ts +3 -0
  42. package/src/services/EventService.ts +168 -27
  43. package/src/services/KnowhowClient.ts +1 -0
  44. package/src/services/SessionManager.ts +51 -1
  45. package/src/services/SyncedAgentWatcher.ts +397 -0
  46. package/src/services/SyncerService.ts +147 -0
  47. package/src/services/index.ts +2 -0
  48. package/src/services/modules/index.ts +14 -3
  49. package/src/types.ts +25 -0
  50. package/src/worker.ts +80 -2
  51. package/src/workers/auth/PasskeySetup.ts +185 -0
  52. package/src/workers/auth/WorkerPasskeyAuth.ts +190 -0
  53. package/src/workers/auth/types.ts +58 -0
  54. package/src/workers/tools/getChallenge.ts +33 -0
  55. package/src/workers/tools/index.ts +8 -0
  56. package/src/workers/tools/lock.ts +31 -0
  57. package/src/workers/tools/unlock.ts +116 -0
  58. package/tests/unit/modules/moduleLoading.test.ts +226 -0
  59. package/tests/unit/plugins/pluginLoading.test.ts +151 -0
  60. package/ts_build/package.json +4 -2
  61. package/ts_build/src/agents/base/base.d.ts +4 -3
  62. package/ts_build/src/agents/base/base.js +54 -30
  63. package/ts_build/src/agents/base/base.js.map +1 -1
  64. package/ts_build/src/agents/index.d.ts +3 -0
  65. package/ts_build/src/agents/index.js +21 -11
  66. package/ts_build/src/agents/index.js.map +1 -1
  67. package/ts_build/src/agents/tools/startAgentTask.js +2 -1
  68. package/ts_build/src/agents/tools/startAgentTask.js.map +1 -1
  69. package/ts_build/src/chat/CliChatService.js +16 -5
  70. package/ts_build/src/chat/CliChatService.js.map +1 -1
  71. package/ts_build/src/chat/modules/AgentModule.d.ts +34 -17
  72. package/ts_build/src/chat/modules/AgentModule.js +248 -258
  73. package/ts_build/src/chat/modules/AgentModule.js.map +1 -1
  74. package/ts_build/src/chat/modules/CustomCommandsModule.js.map +1 -1
  75. package/ts_build/src/chat/modules/InternalChatModule.d.ts +3 -0
  76. package/ts_build/src/chat/modules/InternalChatModule.js +16 -1
  77. package/ts_build/src/chat/modules/InternalChatModule.js.map +1 -1
  78. package/ts_build/src/chat/modules/RendererModule.d.ts +16 -0
  79. package/ts_build/src/chat/modules/RendererModule.js +76 -0
  80. package/ts_build/src/chat/modules/RendererModule.js.map +1 -0
  81. package/ts_build/src/chat/modules/SessionsModule.d.ts +33 -0
  82. package/ts_build/src/chat/modules/SessionsModule.js +582 -0
  83. package/ts_build/src/chat/modules/SessionsModule.js.map +1 -0
  84. package/ts_build/src/chat/modules/SetupModule.d.ts +3 -3
  85. package/ts_build/src/chat/modules/SetupModule.js +4 -6
  86. package/ts_build/src/chat/modules/SetupModule.js.map +1 -1
  87. package/ts_build/src/chat/modules/index.d.ts +1 -0
  88. package/ts_build/src/chat/modules/index.js +3 -1
  89. package/ts_build/src/chat/modules/index.js.map +1 -1
  90. package/ts_build/src/chat/renderer/CompactRenderer.d.ts +23 -0
  91. package/ts_build/src/chat/renderer/CompactRenderer.js +167 -0
  92. package/ts_build/src/chat/renderer/CompactRenderer.js.map +1 -0
  93. package/ts_build/src/chat/renderer/ConsoleRenderer.d.ts +22 -0
  94. package/ts_build/src/chat/renderer/ConsoleRenderer.js +110 -0
  95. package/ts_build/src/chat/renderer/ConsoleRenderer.js.map +1 -0
  96. package/ts_build/src/chat/renderer/FancyRenderer.d.ts +23 -0
  97. package/ts_build/src/chat/renderer/FancyRenderer.js +328 -0
  98. package/ts_build/src/chat/renderer/FancyRenderer.js.map +1 -0
  99. package/ts_build/src/chat/renderer/index.d.ts +5 -0
  100. package/ts_build/src/chat/renderer/index.js +29 -0
  101. package/ts_build/src/chat/renderer/index.js.map +1 -0
  102. package/ts_build/src/chat/renderer/loadRenderer.d.ts +4 -0
  103. package/ts_build/src/chat/renderer/loadRenderer.js +246 -0
  104. package/ts_build/src/chat/renderer/loadRenderer.js.map +1 -0
  105. package/ts_build/src/chat/renderer/messagesToRenderEvents.d.ts +15 -0
  106. package/ts_build/src/chat/renderer/messagesToRenderEvents.js +72 -0
  107. package/ts_build/src/chat/renderer/messagesToRenderEvents.js.map +1 -0
  108. package/ts_build/src/chat/renderer/types.d.ts +75 -0
  109. package/ts_build/src/chat/renderer/types.js +3 -0
  110. package/ts_build/src/chat/renderer/types.js.map +1 -0
  111. package/ts_build/src/chat/types.d.ts +5 -0
  112. package/ts_build/src/chat.js +46 -4
  113. package/ts_build/src/chat.js.map +1 -1
  114. package/ts_build/src/cli.js +18 -5
  115. package/ts_build/src/cli.js.map +1 -1
  116. package/ts_build/src/config.d.ts +1 -0
  117. package/ts_build/src/config.js +17 -1
  118. package/ts_build/src/config.js.map +1 -1
  119. package/ts_build/src/plugins/AgentsMdPlugin.js +1 -1
  120. package/ts_build/src/plugins/AgentsMdPlugin.js.map +1 -1
  121. package/ts_build/src/plugins/GitPlugin.js +20 -20
  122. package/ts_build/src/plugins/GitPlugin.js.map +1 -1
  123. package/ts_build/src/plugins/PluginBase.d.ts +1 -0
  124. package/ts_build/src/plugins/PluginBase.js +13 -0
  125. package/ts_build/src/plugins/PluginBase.js.map +1 -1
  126. package/ts_build/src/plugins/SkillsPlugin.d.ts +13 -0
  127. package/ts_build/src/plugins/SkillsPlugin.js +149 -0
  128. package/ts_build/src/plugins/SkillsPlugin.js.map +1 -0
  129. package/ts_build/src/plugins/asana.js +4 -4
  130. package/ts_build/src/plugins/asana.js.map +1 -1
  131. package/ts_build/src/plugins/embedding.js +3 -3
  132. package/ts_build/src/plugins/embedding.js.map +1 -1
  133. package/ts_build/src/plugins/exec.js +3 -3
  134. package/ts_build/src/plugins/exec.js.map +1 -1
  135. package/ts_build/src/plugins/figma.js +3 -3
  136. package/ts_build/src/plugins/figma.js.map +1 -1
  137. package/ts_build/src/plugins/github.js +18 -18
  138. package/ts_build/src/plugins/github.js.map +1 -1
  139. package/ts_build/src/plugins/jira.js +2 -2
  140. package/ts_build/src/plugins/jira.js.map +1 -1
  141. package/ts_build/src/plugins/language.js +4 -4
  142. package/ts_build/src/plugins/language.js.map +1 -1
  143. package/ts_build/src/plugins/linear.js +4 -4
  144. package/ts_build/src/plugins/linear.js.map +1 -1
  145. package/ts_build/src/plugins/notion.js +6 -6
  146. package/ts_build/src/plugins/notion.js.map +1 -1
  147. package/ts_build/src/plugins/plugins.d.ts +3 -0
  148. package/ts_build/src/plugins/plugins.js +19 -4
  149. package/ts_build/src/plugins/plugins.js.map +1 -1
  150. package/ts_build/src/plugins/url.js +2 -2
  151. package/ts_build/src/plugins/url.js.map +1 -1
  152. package/ts_build/src/plugins/vim.js +2 -2
  153. package/ts_build/src/plugins/vim.js.map +1 -1
  154. package/ts_build/src/services/AgentService.d.ts +3 -0
  155. package/ts_build/src/services/AgentService.js +7 -0
  156. package/ts_build/src/services/AgentService.js.map +1 -1
  157. package/ts_build/src/services/AgentSyncFs.d.ts +1 -0
  158. package/ts_build/src/services/AgentSyncFs.js +2 -0
  159. package/ts_build/src/services/AgentSyncFs.js.map +1 -1
  160. package/ts_build/src/services/EventService.d.ts +25 -2
  161. package/ts_build/src/services/EventService.js +92 -14
  162. package/ts_build/src/services/EventService.js.map +1 -1
  163. package/ts_build/src/services/KnowhowClient.d.ts +1 -0
  164. package/ts_build/src/services/KnowhowClient.js.map +1 -1
  165. package/ts_build/src/services/SessionManager.d.ts +6 -0
  166. package/ts_build/src/services/SessionManager.js +39 -1
  167. package/ts_build/src/services/SessionManager.js.map +1 -1
  168. package/ts_build/src/services/SyncedAgentWatcher.d.ts +101 -0
  169. package/ts_build/src/services/SyncedAgentWatcher.js +312 -0
  170. package/ts_build/src/services/SyncedAgentWatcher.js.map +1 -0
  171. package/ts_build/src/services/SyncerService.d.ts +30 -0
  172. package/ts_build/src/services/SyncerService.js +72 -0
  173. package/ts_build/src/services/SyncerService.js.map +1 -0
  174. package/ts_build/src/services/index.d.ts +2 -0
  175. package/ts_build/src/services/index.js +2 -0
  176. package/ts_build/src/services/index.js.map +1 -1
  177. package/ts_build/src/services/modules/index.js +10 -2
  178. package/ts_build/src/services/modules/index.js.map +1 -1
  179. package/ts_build/src/types.d.ts +19 -0
  180. package/ts_build/src/types.js.map +1 -1
  181. package/ts_build/src/worker.d.ts +2 -0
  182. package/ts_build/src/worker.js +59 -4
  183. package/ts_build/src/worker.js.map +1 -1
  184. package/ts_build/src/workers/auth/PasskeySetup.d.ts +10 -0
  185. package/ts_build/src/workers/auth/PasskeySetup.js +131 -0
  186. package/ts_build/src/workers/auth/PasskeySetup.js.map +1 -0
  187. package/ts_build/src/workers/auth/WorkerPasskeyAuth.d.ts +35 -0
  188. package/ts_build/src/workers/auth/WorkerPasskeyAuth.js +129 -0
  189. package/ts_build/src/workers/auth/WorkerPasskeyAuth.js.map +1 -0
  190. package/ts_build/src/workers/auth/types.d.ts +36 -0
  191. package/ts_build/src/workers/auth/types.js +3 -0
  192. package/ts_build/src/workers/auth/types.js.map +1 -0
  193. package/ts_build/src/workers/tools/getChallenge.d.ts +9 -0
  194. package/ts_build/src/workers/tools/getChallenge.js +27 -0
  195. package/ts_build/src/workers/tools/getChallenge.js.map +1 -0
  196. package/ts_build/src/workers/tools/index.d.ts +6 -0
  197. package/ts_build/src/workers/tools/index.js +10 -0
  198. package/ts_build/src/workers/tools/index.js.map +1 -1
  199. package/ts_build/src/workers/tools/lock.d.ts +9 -0
  200. package/ts_build/src/workers/tools/lock.js +27 -0
  201. package/ts_build/src/workers/tools/lock.js.map +1 -0
  202. package/ts_build/src/workers/tools/unlock.d.ts +18 -0
  203. package/ts_build/src/workers/tools/unlock.js +78 -0
  204. package/ts_build/src/workers/tools/unlock.js.map +1 -0
  205. package/ts_build/tests/unit/modules/moduleLoading.test.d.ts +1 -0
  206. package/ts_build/tests/unit/modules/moduleLoading.test.js +187 -0
  207. package/ts_build/tests/unit/modules/moduleLoading.test.js.map +1 -0
  208. package/ts_build/tests/unit/plugins/pluginLoading.test.d.ts +1 -0
  209. package/ts_build/tests/unit/plugins/pluginLoading.test.js +123 -0
  210. package/ts_build/tests/unit/plugins/pluginLoading.test.js.map +1 -0
@@ -0,0 +1,312 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.WebSyncedAgentWatcher = exports.FsSyncedAgentWatcher = exports.WatcherBackedAgent = void 0;
27
+ const EventService_1 = require("./EventService");
28
+ const fs = __importStar(require("fs"));
29
+ const fsPromises = __importStar(require("fs/promises"));
30
+ const path = __importStar(require("path"));
31
+ const messagesToRenderEvents_1 = require("../chat/renderer/messagesToRenderEvents");
32
+ const KnowhowClient_1 = require("./KnowhowClient");
33
+ class WatcherBackedAgent {
34
+ watcher;
35
+ name;
36
+ agentEvents;
37
+ eventTypes;
38
+ constructor(watcher) {
39
+ this.watcher = watcher;
40
+ this.name = watcher.agentName;
41
+ this.agentEvents = watcher.agentEvents;
42
+ this.eventTypes = watcher.eventTypes;
43
+ }
44
+ getTotalCostUsd() {
45
+ return 0;
46
+ }
47
+ async pause() {
48
+ await this.watcher.pause();
49
+ }
50
+ async unpause() {
51
+ await this.watcher.unpause();
52
+ }
53
+ async kill() {
54
+ await this.watcher.kill();
55
+ this.agentEvents.emit(this.eventTypes.done, "Agent killed");
56
+ }
57
+ addPendingUserMessage(message) {
58
+ const text = typeof message.content === "string" ? message.content : "";
59
+ this.watcher
60
+ .sendMessage(text)
61
+ .then(() => {
62
+ console.log(`📨 Message sent to ${this.name}`);
63
+ })
64
+ .catch((err) => {
65
+ console.error(`❌ Failed to send message to ${this.name}:`, err);
66
+ });
67
+ }
68
+ }
69
+ exports.WatcherBackedAgent = WatcherBackedAgent;
70
+ class FsSyncedAgentWatcher {
71
+ taskId = "";
72
+ taskPath = "";
73
+ watcher = null;
74
+ lastThreadLength = 0;
75
+ agentName = "unknown";
76
+ debounceTimer = null;
77
+ agentEvents = new EventService_1.EventService();
78
+ eventTypes = {
79
+ done: "done",
80
+ toolCall: "tool:pre_call",
81
+ toolUsed: "tool:post_call",
82
+ agentSay: "agent:say",
83
+ threadUpdate: "thread_update",
84
+ };
85
+ async startWatching(taskId) {
86
+ this.taskId = taskId;
87
+ this.taskPath = path.join(".knowhow/processes/agents", taskId);
88
+ const metadata = await this.readMetadata();
89
+ if (metadata) {
90
+ const threads = metadata.threads || [];
91
+ const lastThread = threads[threads.length - 1] || [];
92
+ this.agentName = metadata.agentName || taskId;
93
+ this.lastThreadLength = lastThread.length;
94
+ }
95
+ try {
96
+ this.watcher = fs.watch(this.taskPath, (event, filename) => {
97
+ if (filename === "metadata.json" || filename === null) {
98
+ if (this.debounceTimer)
99
+ clearTimeout(this.debounceTimer);
100
+ this.debounceTimer = setTimeout(() => {
101
+ this.onMetadataChanged().catch(() => { });
102
+ }, 200);
103
+ }
104
+ });
105
+ }
106
+ catch (err) {
107
+ console.warn(`⚠️ Could not watch ${this.taskPath}: ${err.message}`);
108
+ }
109
+ console.log(`👁️ Watching fs-synced agent: ${taskId} (${this.agentName})`);
110
+ console.log(` Type /logs 20 to see recent messages, or type to send a message`);
111
+ }
112
+ async onMetadataChanged() {
113
+ const metadata = await this.readMetadata();
114
+ if (!metadata?.threads)
115
+ return;
116
+ const threads = metadata.threads;
117
+ const lastThread = threads[threads.length - 1] || [];
118
+ const newMessages = lastThread.slice(this.lastThreadLength);
119
+ if (newMessages.length > 0) {
120
+ const renderEvents = (0, messagesToRenderEvents_1.messagesToRenderEvents)(newMessages, this.taskId, this.agentName);
121
+ for (const event of renderEvents) {
122
+ if (event.type === "toolCall") {
123
+ this.agentEvents.emit(this.eventTypes.toolCall, {
124
+ toolCall: event.toolCall,
125
+ });
126
+ }
127
+ else if (event.type === "toolResult") {
128
+ this.agentEvents.emit(this.eventTypes.toolUsed, {
129
+ toolCall: event.toolCall,
130
+ functionResp: event.result,
131
+ });
132
+ }
133
+ else if (event.type === "agentMessage") {
134
+ this.agentEvents.emit(this.eventTypes.agentSay, {
135
+ message: event.message,
136
+ });
137
+ }
138
+ }
139
+ this.agentEvents.emit(this.eventTypes.threadUpdate, lastThread);
140
+ this.lastThreadLength = lastThread.length;
141
+ }
142
+ const status = metadata.status;
143
+ const result = metadata.result;
144
+ if ((status === "completed" || status === "killed") && result != null) {
145
+ this.stopWatching();
146
+ this.agentEvents.emit(this.eventTypes.done, result);
147
+ }
148
+ }
149
+ async sendMessage(message) {
150
+ const inputPath = path.join(this.taskPath, "input.txt");
151
+ await fsPromises.writeFile(inputPath, message, "utf8");
152
+ }
153
+ async getThreads() {
154
+ const metadata = await this.readMetadata();
155
+ return metadata?.threads || [];
156
+ }
157
+ stopWatching() {
158
+ if (this.debounceTimer) {
159
+ clearTimeout(this.debounceTimer);
160
+ this.debounceTimer = null;
161
+ }
162
+ this.watcher?.close();
163
+ this.watcher = null;
164
+ console.log(`🔌 Stopped watching agent: ${this.taskId}`);
165
+ }
166
+ async pause() {
167
+ const statusPath = path.join(this.taskPath, "status.txt");
168
+ await fsPromises.writeFile(statusPath, "paused", "utf8");
169
+ console.log(`⏸️ Paused remote agent: ${this.taskId}`);
170
+ }
171
+ async unpause() {
172
+ const statusPath = path.join(this.taskPath, "status.txt");
173
+ await fsPromises.writeFile(statusPath, "running", "utf8");
174
+ console.log(`▶️ Unpaused remote agent: ${this.taskId}`);
175
+ }
176
+ async kill() {
177
+ const statusPath = path.join(this.taskPath, "status.txt");
178
+ await fsPromises.writeFile(statusPath, "killed", "utf8");
179
+ console.log(`🛑 Killed remote agent: ${this.taskId}`);
180
+ }
181
+ async readMetadata() {
182
+ try {
183
+ const metaPath = path.join(this.taskPath, "metadata.json");
184
+ const content = await fsPromises.readFile(metaPath, "utf8");
185
+ return JSON.parse(content);
186
+ }
187
+ catch {
188
+ return null;
189
+ }
190
+ }
191
+ }
192
+ exports.FsSyncedAgentWatcher = FsSyncedAgentWatcher;
193
+ class WebSyncedAgentWatcher {
194
+ taskId = "";
195
+ client;
196
+ pollInterval = null;
197
+ lastThreadLength = 0;
198
+ agentName = "remote-agent";
199
+ stopped = false;
200
+ agentEvents = new EventService_1.EventService();
201
+ eventTypes = {
202
+ done: "done",
203
+ toolCall: "tool:pre_call",
204
+ toolUsed: "tool:post_call",
205
+ agentSay: "agent:say",
206
+ threadUpdate: "thread_update",
207
+ };
208
+ constructor(client) {
209
+ this.client = client || new KnowhowClient_1.KnowhowSimpleClient();
210
+ }
211
+ async startWatching(taskId) {
212
+ this.taskId = taskId;
213
+ this.stopped = false;
214
+ try {
215
+ const details = await this.client.getTaskDetails(taskId);
216
+ const threads = details?.data?.threads || [];
217
+ const lastThread = threads[threads.length - 1] || [];
218
+ this.agentName = "remote-agent";
219
+ this.lastThreadLength = lastThread.length;
220
+ }
221
+ catch (err) {
222
+ console.warn(`⚠️ Could not load initial state for task ${taskId}: ${err.message}`);
223
+ }
224
+ this.pollInterval = setInterval(async () => {
225
+ if (!this.stopped) {
226
+ await this.onPoll().catch(() => { });
227
+ }
228
+ }, 3000);
229
+ console.log(`🌐 Watching web-synced agent: ${taskId} (${this.agentName})`);
230
+ console.log(` Type /logs 20 to see recent messages, or type to send a message`);
231
+ }
232
+ async onPoll() {
233
+ if (this.stopped)
234
+ return;
235
+ try {
236
+ const details = await this.client.getTaskDetails(this.taskId);
237
+ const threads = details?.data?.threads || [];
238
+ const lastThread = threads[threads.length - 1] || [];
239
+ const newMessages = lastThread.slice(this.lastThreadLength);
240
+ if (newMessages.length > 0) {
241
+ const renderEvents = (0, messagesToRenderEvents_1.messagesToRenderEvents)(newMessages, this.taskId, this.agentName);
242
+ for (const event of renderEvents) {
243
+ if (event.type === "toolCall") {
244
+ this.agentEvents.emit(this.eventTypes.toolCall, {
245
+ toolCall: event.toolCall,
246
+ });
247
+ }
248
+ else if (event.type === "toolResult") {
249
+ this.agentEvents.emit(this.eventTypes.toolUsed, {
250
+ toolCall: event.toolCall,
251
+ functionResp: event.result,
252
+ });
253
+ }
254
+ else if (event.type === "agentMessage") {
255
+ this.agentEvents.emit(this.eventTypes.agentSay, {
256
+ message: event.message,
257
+ });
258
+ }
259
+ }
260
+ this.agentEvents.emit(this.eventTypes.threadUpdate, lastThread);
261
+ this.lastThreadLength = lastThread.length;
262
+ }
263
+ const status = details?.data?.status;
264
+ const result = details?.data?.result;
265
+ if (status === "completed" || status === "killed") {
266
+ this.stopWatching();
267
+ if (result != null) {
268
+ this.agentEvents.emit(this.eventTypes.done, result);
269
+ }
270
+ else {
271
+ console.log(`\n✅ Remote agent ${this.taskId} status: ${status} (no result)`);
272
+ }
273
+ }
274
+ }
275
+ catch {
276
+ }
277
+ }
278
+ async sendMessage(message) {
279
+ await this.client.sendMessageToAgent(this.taskId, message);
280
+ }
281
+ async getThreads() {
282
+ try {
283
+ const details = await this.client.getTaskDetails(this.taskId);
284
+ return details?.data?.threads || [];
285
+ }
286
+ catch {
287
+ return [];
288
+ }
289
+ }
290
+ stopWatching() {
291
+ this.stopped = true;
292
+ if (this.pollInterval) {
293
+ clearInterval(this.pollInterval);
294
+ this.pollInterval = null;
295
+ }
296
+ console.log(`🔌 Stopped watching web agent: ${this.taskId}`);
297
+ }
298
+ async pause() {
299
+ await this.client.pauseAgent(this.taskId);
300
+ console.log(`⏸️ Paused remote web agent: ${this.taskId}`);
301
+ }
302
+ async unpause() {
303
+ await this.client.resumeAgent(this.taskId);
304
+ console.log(`▶️ Unpaused remote web agent: ${this.taskId}`);
305
+ }
306
+ async kill() {
307
+ await this.client.killAgent(this.taskId);
308
+ console.log(`🛑 Killed remote web agent: ${this.taskId}`);
309
+ }
310
+ }
311
+ exports.WebSyncedAgentWatcher = WebSyncedAgentWatcher;
312
+ //# sourceMappingURL=SyncedAgentWatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SyncedAgentWatcher.js","sourceRoot":"","sources":["../../../src/services/SyncedAgentWatcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { BaseAgent } from "../agents/base/base";
2
+ export interface SyncerOptions {
3
+ taskId: string;
4
+ prompt: string;
5
+ messageId?: string;
6
+ syncFs?: boolean;
7
+ existingKnowhowTaskId?: string;
8
+ agentName?: string;
9
+ }
10
+ export interface AgentSyncer {
11
+ createTask(options: SyncerOptions): Promise<string>;
12
+ setupAgentSync(agent: BaseAgent, taskId: string): Promise<void>;
13
+ waitForFinalization(): Promise<void>;
14
+ reset(): void;
15
+ isActive(): boolean;
16
+ }
17
+ export declare class SyncerService implements AgentSyncer {
18
+ private fsSync;
19
+ private webSync;
20
+ private active;
21
+ private useWebSync;
22
+ private createdTaskId;
23
+ constructor();
24
+ createTask(options: SyncerOptions): Promise<string>;
25
+ setupAgentSync(agent: BaseAgent, taskId: string): Promise<void>;
26
+ waitForFinalization(): Promise<void>;
27
+ reset(): void;
28
+ isActive(): boolean;
29
+ getCreatedWebTaskId(): string | undefined;
30
+ }
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SyncerService = void 0;
4
+ const AgentSyncFs_1 = require("./AgentSyncFs");
5
+ const AgentSyncKnowhowWeb_1 = require("./AgentSyncKnowhowWeb");
6
+ class SyncerService {
7
+ fsSync;
8
+ webSync;
9
+ active = false;
10
+ useWebSync = false;
11
+ createdTaskId;
12
+ constructor() {
13
+ this.fsSync = new AgentSyncFs_1.AgentSyncFs();
14
+ this.webSync = new AgentSyncKnowhowWeb_1.AgentSyncKnowhowWeb();
15
+ }
16
+ async createTask(options) {
17
+ this.active = true;
18
+ this.useWebSync = false;
19
+ const shouldUseWebSync = !!options.messageId &&
20
+ !options.syncFs &&
21
+ !options.existingKnowhowTaskId;
22
+ console.log(`📁 Using filesystem-based synchronization for task: ${options.taskId}`);
23
+ const fsTaskId = await this.fsSync.createTask({
24
+ taskId: options.taskId,
25
+ prompt: options.prompt,
26
+ agentName: options.agentName,
27
+ });
28
+ if (shouldUseWebSync) {
29
+ const knowhowTaskId = await this.webSync.createChatTask({
30
+ messageId: options.messageId,
31
+ prompt: options.prompt,
32
+ });
33
+ if (knowhowTaskId) {
34
+ this.useWebSync = true;
35
+ this.createdTaskId = knowhowTaskId;
36
+ console.log(`🌐 Web sync task created: ${knowhowTaskId}`);
37
+ }
38
+ }
39
+ return fsTaskId;
40
+ }
41
+ async setupAgentSync(agent, taskId) {
42
+ await this.fsSync.setupAgentSync(agent, taskId);
43
+ if (this.useWebSync && this.createdTaskId) {
44
+ await this.webSync.setupAgentSync(agent, this.createdTaskId);
45
+ }
46
+ }
47
+ async waitForFinalization() {
48
+ if (this.useWebSync) {
49
+ console.log("🎯 [SyncerService] Waiting for web sync finalization...");
50
+ await this.webSync.waitForFinalization();
51
+ console.log("🎯 [SyncerService] Web sync finalization complete");
52
+ }
53
+ console.log("🎯 [SyncerService] Waiting for fs sync finalization...");
54
+ await this.fsSync.waitForFinalization();
55
+ console.log("🎯 [SyncerService] Fs sync finalization complete");
56
+ }
57
+ reset() {
58
+ this.webSync.reset();
59
+ this.fsSync.reset();
60
+ this.active = false;
61
+ this.useWebSync = false;
62
+ this.createdTaskId = undefined;
63
+ }
64
+ isActive() {
65
+ return this.active;
66
+ }
67
+ getCreatedWebTaskId() {
68
+ return this.useWebSync ? this.createdTaskId : undefined;
69
+ }
70
+ }
71
+ exports.SyncerService = SyncerService;
72
+ //# sourceMappingURL=SyncerService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SyncerService.js","sourceRoot":"","sources":["../../../src/services/SyncerService.ts"],"names":[],"mappings":";;;AAKA,+CAA4C;AAC5C,+DAA4D;AAmC5D,MAAa,aAAa;IAChB,MAAM,CAAc;IACpB,OAAO,CAAsB;IAC7B,MAAM,GAAY,KAAK,CAAC;IACxB,UAAU,GAAY,KAAK,CAAC;IAC5B,aAAa,CAAqB;IAE1C;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,yBAAW,EAAE,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,IAAI,yCAAmB,EAAE,CAAC;IAC3C,CAAC;IAMD,KAAK,CAAC,UAAU,CAAC,OAAsB;QACrC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAGxB,MAAM,gBAAgB,GACpB,CAAC,CAAC,OAAO,CAAC,SAAS;YACnB,CAAC,OAAO,CAAC,MAAM;YACf,CAAC,OAAO,CAAC,qBAAqB,CAAC;QAGjC,OAAO,CAAC,GAAG,CACT,uDAAuD,OAAO,CAAC,MAAM,EAAE,CACxE,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;YAC5C,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC,CAAC;QAGH,IAAI,gBAAgB,EAAE;YACpB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;gBACtD,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;YAEH,IAAI,aAAa,EAAE;gBACjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,6BAA6B,aAAa,EAAE,CAAC,CAAC;aAC3D;SACF;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAOD,KAAK,CAAC,cAAc,CAAC,KAAgB,EAAE,MAAc;QACnD,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEhD,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,aAAa,EAAE;YACzC,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;SAC9D;IACH,CAAC;IAKD,KAAK,CAAC,mBAAmB;QACvB,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;YACvE,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;SAClE;QAED,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;QACtE,MAAM,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;IAClE,CAAC;IAKD,KAAK;QACH,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;IACjC,CAAC;IAKD,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAKD,mBAAmB;QACjB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1D,CAAC;CACF;AAzGD,sCAyGC"}
@@ -24,6 +24,8 @@ export * from "./AgentSyncKnowhowWeb";
24
24
  export * from "./AgentSyncFs";
25
25
  export * from "./SessionManager";
26
26
  export * from "./TaskRegistry";
27
+ export * from "./SyncedAgentWatcher";
28
+ export * from "./SyncerService";
27
29
  export { Clients } from "../clients";
28
30
  declare let Singletons: {
29
31
  Tools: ToolsService;
@@ -53,6 +53,8 @@ __exportStar(require("./AgentSyncKnowhowWeb"), exports);
53
53
  __exportStar(require("./AgentSyncFs"), exports);
54
54
  __exportStar(require("./SessionManager"), exports);
55
55
  __exportStar(require("./TaskRegistry"), exports);
56
+ __exportStar(require("./SyncedAgentWatcher"), exports);
57
+ __exportStar(require("./SyncerService"), exports);
56
58
  var clients_2 = require("../clients");
57
59
  Object.defineProperty(exports, "Clients", { enumerable: true, get: function () { return clients_2.Clients; } });
58
60
  let Singletons = {};
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iEAAqE;AACrE,wCAA+C;AAC/C,iDAA8C;AAC9C,iDAA8C;AAC9C,mCAAuC;AACvC,qCAAyC;AACzC,mDAAsD;AACtD,+BAAmC;AACnC,6BAAiC;AACjC,mCAAuC;AACvC,gDAAmD;AACnD,mDAAgD;AAMhD,iDAA+B;AAC/B,iDAA+B;AAC/B,0CAAwB;AACxB,2CAAyB;AACzB,uCAAqB;AACrB,0CAAwB;AACxB,qDAAmC;AACnC,6CAA6B;AAC7B,qDAAmC;AACnC,kDAAgC;AAChC,wDAAsC;AACtC,gDAA8B;AAC9B,mDAAiC;AACjC,iDAA+B;AAC/B,sCAAqC;AAA5B,kGAAA,OAAO,OAAA;AAEhB,IAAI,UAAU,GAAG,EAahB,CAAC;AAEK,MAAM,QAAQ,GAAG,GAAsB,EAAE;IAC9C,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QACxC,MAAM,KAAK,GAAG,IAAI,oBAAY,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,2BAAY,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,2BAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,IAAI,8BAAiB,CAAC,iBAAO,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,IAAI,uBAAa,CAAC;YAChC,MAAM;YACN,MAAM;YACN,KAAK;YACL,OAAO,EAAP,iBAAO;SACR,CAAC,CAAC;QAEH,UAAU,GAAG;YACX,MAAM;YACN,KAAK,EAAE,IAAI,cAAS,EAAE;YACtB,OAAO,EAAP,iBAAO;YACP,MAAM,EAAE,IAAI,6BAAa,EAAE;YAC3B,UAAU;YACV,MAAM;YACN,KAAK,EAAE,IAAI,oBAAY,EAAE;YACzB,MAAM,EAAE,IAAI,sBAAa,EAAE;YAC3B,GAAG,EAAE,IAAI,gBAAU,EAAE;YACrB,OAAO;YACP,KAAK;YACL,gBAAgB,EAAE,IAAI,mCAAmB,EAAE;SAC5C,CAAC;QAEF,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC;YAC1B,MAAM;YACN,MAAM;YACN,OAAO;YACP,OAAO,EAAP,iBAAO;SACR,CAAC,CAAC;KACJ;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AArCW,QAAA,QAAQ,YAqCnB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iEAAqE;AACrE,wCAA+C;AAC/C,iDAA8C;AAC9C,iDAA8C;AAC9C,mCAAuC;AACvC,qCAAyC;AACzC,mDAAsD;AACtD,+BAAmC;AACnC,6BAAiC;AACjC,mCAAuC;AACvC,gDAAmD;AACnD,mDAAgD;AAMhD,iDAA+B;AAC/B,iDAA+B;AAC/B,0CAAwB;AACxB,2CAAyB;AACzB,uCAAqB;AACrB,0CAAwB;AACxB,qDAAmC;AACnC,6CAA6B;AAC7B,qDAAmC;AACnC,kDAAgC;AAChC,wDAAsC;AACtC,gDAA8B;AAC9B,mDAAiC;AACjC,iDAA+B;AAC/B,uDAAqC;AACrC,kDAAgC;AAChC,sCAAqC;AAA5B,kGAAA,OAAO,OAAA;AAEhB,IAAI,UAAU,GAAG,EAahB,CAAC;AAEK,MAAM,QAAQ,GAAG,GAAsB,EAAE;IAC9C,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QACxC,MAAM,KAAK,GAAG,IAAI,oBAAY,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,2BAAY,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,2BAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,IAAI,8BAAiB,CAAC,iBAAO,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,IAAI,uBAAa,CAAC;YAChC,MAAM;YACN,MAAM;YACN,KAAK;YACL,OAAO,EAAP,iBAAO;SACR,CAAC,CAAC;QAEH,UAAU,GAAG;YACX,MAAM;YACN,KAAK,EAAE,IAAI,cAAS,EAAE;YACtB,OAAO,EAAP,iBAAO;YACP,MAAM,EAAE,IAAI,6BAAa,EAAE;YAC3B,UAAU;YACV,MAAM;YACN,KAAK,EAAE,IAAI,oBAAY,EAAE;YACzB,MAAM,EAAE,IAAI,sBAAa,EAAE;YAC3B,GAAG,EAAE,IAAI,gBAAU,EAAE;YACrB,OAAO;YACP,KAAK;YACL,gBAAgB,EAAE,IAAI,mCAAmB,EAAE;SAC5C,CAAC;QAEF,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC;YAC1B,MAAM;YACN,MAAM;YACN,OAAO;YACP,OAAO,EAAP,iBAAO;SACR,CAAC,CAAC;KACJ;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AArCW,QAAA,QAAQ,YAqCnB"}
@@ -19,8 +19,12 @@ class ModulesService {
19
19
  const agentService = context.Agents;
20
20
  const pluginService = context.Plugins;
21
21
  const clients = context.Clients;
22
- const modules = config.modules || [];
23
- for (const modulePath of modules) {
22
+ const globalConfig = await (0, config_1.getGlobalConfig)();
23
+ const allModulePaths = [
24
+ ...(globalConfig.modules || []),
25
+ ...(config.modules || []),
26
+ ];
27
+ for (const modulePath of allModulePaths) {
24
28
  const importedModule = require(modulePath);
25
29
  await importedModule.init({ config, cwd: process.cwd() });
26
30
  for (const agent of importedModule.agents) {
@@ -38,6 +42,10 @@ class ModulesService {
38
42
  clients.registerModels(client.provider, client.models);
39
43
  }
40
44
  }
45
+ if (pluginService) {
46
+ await pluginService.loadPluginsFromConfig(config);
47
+ await pluginService.loadPluginsFromConfig(globalConfig);
48
+ }
41
49
  }
42
50
  }
43
51
  exports.ModulesService = ModulesService;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/modules/index.ts"],"names":[],"mappings":";;;AAAA,yCAAyC;AAGzC,2BAA+B;AAG/B,MAAa,cAAc;IACzB,KAAK,CAAC,qBAAqB,CAAC,OAAuB;QACjD,MAAM,MAAM,GAAG,MAAM,IAAA,kBAAS,GAAE,CAAC;QAGjC,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,YAAQ,GAAE,CAAC;YACvD,OAAO,GAAG;gBACR,MAAM;gBACN,OAAO;gBACP,OAAO;gBACP,KAAK;aACN,CAAC;SACH;QAGD,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;QACnC,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;QACpC,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;QACtC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAEhC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QAErC,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE;YAChC,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,CAAkB,CAAC;YAC5D,MAAM,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAE1D,KAAK,MAAM,KAAK,IAAI,cAAc,CAAC,MAAM,EAAE;gBACzC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;aACnC;YAED,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,KAAK,EAAE;gBACvC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACtC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;aACvE;YAED,KAAK,MAAM,MAAM,IAAI,cAAc,CAAC,OAAO,EAAE;gBAC3C,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;aAC1D;YAED,KAAK,MAAM,MAAM,IAAI,cAAc,CAAC,OAAO,EAAE;gBAC3C,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBACvD,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;aACxD;SACF;IACH,CAAC;CACF;AA9CD,wCA8CC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/modules/index.ts"],"names":[],"mappings":";;;AAAA,yCAA0D;AAG1D,2BAA+B;AAG/B,MAAa,cAAc;IACzB,KAAK,CAAC,qBAAqB,CAAC,OAAuB;QACjD,MAAM,MAAM,GAAG,MAAM,IAAA,kBAAS,GAAE,CAAC;QAGjC,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,YAAQ,GAAE,CAAC;YACvD,OAAO,GAAG;gBACR,MAAM;gBACN,OAAO;gBACP,OAAO;gBACP,KAAK;aACN,CAAC;SACH;QAGD,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;QACnC,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;QACpC,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;QACtC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAGhC,MAAM,YAAY,GAAG,MAAM,IAAA,wBAAe,GAAE,CAAC;QAC7C,MAAM,cAAc,GAAG;YACrB,GAAG,CAAC,YAAY,CAAC,OAAO,IAAI,EAAE,CAAC;YAC/B,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;SAC1B,CAAC;QAEF,KAAK,MAAM,UAAU,IAAI,cAAc,EAAE;YACvC,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,CAAkB,CAAC;YAC5D,MAAM,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAE1D,KAAK,MAAM,KAAK,IAAI,cAAc,CAAC,MAAM,EAAE;gBACzC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;aACnC;YAED,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,KAAK,EAAE;gBACvC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACtC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;aACvE;YAED,KAAK,MAAM,MAAM,IAAI,cAAc,CAAC,OAAO,EAAE;gBAC3C,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;aAC1D;YAED,KAAK,MAAM,MAAM,IAAI,cAAc,CAAC,OAAO,EAAE;gBAC3C,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBACvD,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;aACxD;SACF;QAGD,IAAI,aAAa,EAAE;YACjB,MAAM,aAAa,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAClD,MAAM,aAAa,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC;SACzD;IACH,CAAC;CACF;AAzDD,wCAyDC"}
@@ -39,11 +39,18 @@ export type Config = {
39
39
  sources: GenerationSource[];
40
40
  embedSources: EmbedSource[];
41
41
  embeddingModel: string;
42
+ skills?: string[];
42
43
  plugins: {
43
44
  enabled: string[];
44
45
  disabled: string[];
45
46
  };
47
+ chat?: {
48
+ rootModule?: string;
49
+ renderer?: string;
50
+ modules?: string[];
51
+ };
46
52
  modules: string[];
53
+ pluginPackages?: Record<string, string>;
47
54
  agents: Assistant[];
48
55
  mcps: McpConfig[];
49
56
  modelProviders: ModelProvider[];
@@ -64,6 +71,18 @@ export type Config = {
64
71
  sandbox?: boolean;
65
72
  volumes?: string[];
66
73
  envFile?: string;
74
+ auth?: {
75
+ required?: boolean;
76
+ passkey?: {
77
+ publicKey?: string;
78
+ credentialId?: string;
79
+ algorithm?: string;
80
+ };
81
+ sessionDurationHours?: number;
82
+ };
83
+ commandAuth?: {
84
+ [toolName: string]: "always" | "session" | "never";
85
+ };
67
86
  tunnel?: {
68
87
  enabled?: boolean;
69
88
  allowedPorts?: number[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAgKa,QAAA,MAAM,GAAG;IACpB,SAAS,EAAE;QACT,OAAO,EAAE,iBAAiB;QAC1B,SAAS,EAAE,mBAAmB;QAC9B,OAAO,EAAE,0BAA0B;QACnC,KAAK,EAAE,wBAAwB;QAC/B,OAAO,EAAE,0BAA0B;QACnC,SAAS,EAAE,4BAA4B;QACvC,QAAQ,EAAE,2BAA2B;QACrC,OAAO,EAAE,0BAA0B;QACnC,SAAS,EAAE,4BAA4B;QACvC,SAAS,EAAE,4BAA4B;QACvC,QAAQ,EAAE,2BAA2B;QACrC,KAAK,EAAE,wBAAwB;QAC/B,MAAM,EAAE,yBAAyB;KAClC;IACD,GAAG,EAAE;QACH,sBAAsB,EAAE,yBAAyB;QACjD,yBAAyB,EAAE,6BAA6B;QACxD,YAAY,EAAE,kBAAkB;QAChC,KAAK,EAAE,aAAa;QACpB,SAAS,EAAE,aAAa;QACxB,aAAa,EAAE,kBAAkB;QACjC,aAAa,EAAE,kBAAkB;QACjC,iBAAiB,EAAE,uBAAuB;QAC1C,SAAS,EAAE,aAAa;QACxB,eAAe,EAAE,oBAAoB;QACrC,gBAAgB,EAAE,oBAAoB;QACtC,gBAAgB,EAAE,oBAAoB;KACvC;IACD,MAAM,EAAE;QACN,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,OAAO;QACd,UAAU,EAAE,YAAY;QACxB,UAAU,EAAE,YAAY;QACxB,MAAM,EAAE,oBAAoB;QAC5B,WAAW,EAAE,yBAAyB;QACtC,WAAW,EAAE,yBAAyB;QACtC,MAAM,EAAE,4BAA4B;QACpC,MAAM,EAAE,mBAAmB;QAC3B,YAAY,EAAE,iCAAiC;QAC/C,eAAe,EAAE,oCAAoC;QACrD,WAAW,EAAE,wBAAwB;QACrC,iBAAiB,EAAE,sCAAsC;QACzD,oBAAoB,EAAE,yCAAyC;QAC/D,EAAE,EAAE,eAAe;QACnB,MAAM,EAAE,mBAAmB;QAC3B,EAAE,EAAE,eAAe;QACnB,MAAM,EAAE,mBAAmB;QAC3B,OAAO,EAAE,oBAAoB;QAC7B,OAAO,EAAE,oBAAoB;QAC7B,OAAO,EAAE,oBAAoB;QAC7B,kBAAkB,EAAE,uCAAuC;QAC3D,aAAa,EAAE,kCAAkC;QAEjD,KAAK,EAAE,OAAO;QACd,SAAS,EAAE,WAAW;QACtB,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,YAAY;KAGzB;IACD,MAAM,EAAE;QACN,gBAAgB,EAAE,sBAAsB;QACxC,uBAAuB,EAAE,gCAAgC;QACzD,qBAAqB,EAAE,8BAA8B;QACrD,eAAe,EAAE,kBAAkB;QACnC,wCAAwC,EACtC,uCAAuC;QACzC,oBAAoB,EAAE,uBAAuB;QAC7C,eAAe,EAAE,kBAAkB;QACnC,kBAAkB,EAAE,qBAAqB;QACzC,aAAa,EAAE,gBAAgB;QAC/B,QAAQ,EAAE,yBAAyB;QACnC,KAAK,EAAE,sBAAsB;QAC7B,OAAO,EAAE,0BAA0B;QACnC,oBAAoB,EAAE,2BAA2B;QACjD,mBAAmB,EAAE,8BAA8B;QACnD,mBAAmB,EAAE,8BAA8B;KACpD;CACF,CAAC;AAEW,QAAA,eAAe,GAAG;IAC7B,MAAM,EAAE;QACN,aAAa,EAAE,wBAAwB;QACvC,eAAe,EAAE,wBAAwB;QACzC,eAAe,EAAE,wBAAwB;KAC1C;IACD,MAAM,EAAE;QACN,gBAAgB,EAAE,sBAAsB;KACzC;CACF,CAAC;AAEF,SAAgB,iBAAiB,CAC/B,OAAsC;IAEtC,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,OAAO,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;AAC/B,CAAC;AALD,8CAKC;AAED,SAAgB,kBAAkB,CAChC,OAAsC;IAEtC,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,OAAO,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;AAChC,CAAC;AALD,gDAKC;AAEY,QAAA,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAC/D,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACf,OAAO,GAAG,CAAC;AACb,CAAC,EAAE,EAAE,CAA0D,CAAC;AAEnD,QAAA,qBAAqB,GAAG;IACnC,cAAM,CAAC,MAAM,CAAC,EAAE;IAChB,cAAM,CAAC,MAAM,CAAC,OAAO;IACrB,cAAM,CAAC,MAAM,CAAC,OAAO;IACrB,cAAM,CAAC,MAAM,CAAC,EAAE;IAChB,cAAM,CAAC,MAAM,CAAC,MAAM;IACpB,cAAM,CAAC,MAAM,CAAC,OAAO;IACrB,cAAM,CAAC,MAAM,CAAC,KAAK;IACnB,cAAM,CAAC,MAAM,CAAC,UAAU;IACxB,cAAM,CAAC,MAAM,CAAC,UAAU;IACxB,cAAM,CAAC,MAAM,CAAC,OAAO;IACrB,cAAM,CAAC,MAAM,CAAC,OAAO;CACtB,CAAC;AAEW,QAAA,qBAAqB,GAAG;IACnC,uBAAe,CAAC,MAAM,CAAC,aAAa;IACpC,uBAAe,CAAC,MAAM,CAAC,eAAe;IACtC,uBAAe,CAAC,MAAM,CAAC,eAAe;CACvC,CAAC;AAGW,QAAA,qBAAqB,GAAG;IACnC,cAAM,CAAC,MAAM,CAAC,uBAAuB;IACrC,cAAM,CAAC,MAAM,CAAC,qBAAqB;IACnC,cAAM,CAAC,MAAM,CAAC,eAAe;IAC7B,cAAM,CAAC,MAAM,CAAC,oBAAoB;IAClC,cAAM,CAAC,MAAM,CAAC,eAAe;IAC7B,cAAM,CAAC,MAAM,CAAC,kBAAkB;IAChC,cAAM,CAAC,MAAM,CAAC,aAAa;CAC5B,CAAC;AAEW,QAAA,iBAAiB,GAAG;IAC/B,cAAM,CAAC,MAAM,CAAC,wCAAwC;IACtD,cAAM,CAAC,MAAM,CAAC,QAAQ;CACvB,CAAC;AAEW,QAAA,iBAAiB,GAAG;IAC/B,cAAM,CAAC,MAAM,CAAC,QAAQ;IACtB,cAAM,CAAC,MAAM,CAAC,QAAQ;CACvB,CAAC;AAEW,QAAA,iBAAiB,GAAG;IAC/B,cAAM,CAAC,MAAM,CAAC,IAAI;IAClB,cAAM,CAAC,MAAM,CAAC,MAAM;IACpB,cAAM,CAAC,MAAM,CAAC,UAAU;CACzB,CAAC;AAEW,QAAA,eAAe,GAAG,CAAC,cAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAExC,QAAA,yBAAyB,GAAG,CAAC,cAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAEtD,QAAA,cAAc,GAAG,CAAC,cAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAE/C,QAAA,cAAc,GAAG,CAAC,cAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAE/C,QAAA,eAAe,GAAG;IAC7B,cAAM,CAAC,MAAM,CAAC,mBAAmB;IACjC,cAAM,CAAC,MAAM,CAAC,mBAAmB;CAClC,CAAC;AAEW,QAAA,iBAAiB,GAAG,CAAC,cAAM,CAAC,MAAM,CAAC,KAAK,EAAE,cAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAEjE,QAAA,qBAAqB,GAAG,CAAC,uBAAe,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -4,4 +4,6 @@ export declare function worker(options?: {
4
4
  unshare?: boolean;
5
5
  sandbox?: boolean;
6
6
  noSandbox?: boolean;
7
+ passkey?: boolean;
8
+ passkeyReset?: boolean;
7
9
  }): Promise<void>;