@jungjaehoon/mama-os 0.29.2 → 0.30.1

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 (69) hide show
  1. package/dist/agent/agent-loop.d.ts +1 -12
  2. package/dist/agent/agent-loop.d.ts.map +1 -1
  3. package/dist/agent/agent-loop.js +6 -21
  4. package/dist/agent/agent-loop.js.map +1 -1
  5. package/dist/agent/code-act/constants.d.ts.map +1 -1
  6. package/dist/agent/code-act/constants.js +2 -4
  7. package/dist/agent/code-act/constants.js.map +1 -1
  8. package/dist/agent/code-act/host-bridge.d.ts.map +1 -1
  9. package/dist/agent/code-act/host-bridge.js +1 -257
  10. package/dist/agent/code-act/host-bridge.js.map +1 -1
  11. package/dist/agent/code-act/types.d.ts +1 -1
  12. package/dist/agent/code-act/types.d.ts.map +1 -1
  13. package/dist/agent/gateway-tool-executor.d.ts +1 -124
  14. package/dist/agent/gateway-tool-executor.d.ts.map +1 -1
  15. package/dist/agent/gateway-tool-executor.js +17 -1161
  16. package/dist/agent/gateway-tool-executor.js.map +1 -1
  17. package/dist/agent/gateway-tools.md +0 -34
  18. package/dist/agent/os-agent-capabilities.md +0 -14
  19. package/dist/agent/tool-registry.d.ts +1 -1
  20. package/dist/agent/tool-registry.d.ts.map +1 -1
  21. package/dist/agent/tool-registry.js +0 -176
  22. package/dist/agent/tool-registry.js.map +1 -1
  23. package/dist/agent/types.d.ts +2 -110
  24. package/dist/agent/types.d.ts.map +1 -1
  25. package/dist/agent/types.js.map +1 -1
  26. package/dist/cli/commands/start.d.ts +18 -13
  27. package/dist/cli/commands/start.d.ts.map +1 -1
  28. package/dist/cli/commands/start.js +193 -45
  29. package/dist/cli/commands/start.js.map +1 -1
  30. package/dist/cli/config/types.d.ts +21 -0
  31. package/dist/cli/config/types.d.ts.map +1 -1
  32. package/dist/cli/config/types.js +7 -0
  33. package/dist/cli/config/types.js.map +1 -1
  34. package/dist/cli/runtime/api-routes-init.d.ts.map +1 -1
  35. package/dist/cli/runtime/api-routes-init.js +0 -3
  36. package/dist/cli/runtime/api-routes-init.js.map +1 -1
  37. package/dist/operator/board-reground.d.ts +19 -0
  38. package/dist/operator/board-reground.d.ts.map +1 -0
  39. package/dist/operator/board-reground.js +31 -0
  40. package/dist/operator/board-reground.js.map +1 -0
  41. package/dist/operator/conductor-inbox.d.ts +73 -0
  42. package/dist/operator/conductor-inbox.d.ts.map +1 -0
  43. package/dist/operator/conductor-inbox.js +184 -0
  44. package/dist/operator/conductor-inbox.js.map +1 -0
  45. package/dist/operator/conductor-session.d.ts +55 -0
  46. package/dist/operator/conductor-session.d.ts.map +1 -0
  47. package/dist/operator/conductor-session.js +110 -0
  48. package/dist/operator/conductor-session.js.map +1 -0
  49. package/dist/operator/conductor.d.ts +68 -0
  50. package/dist/operator/conductor.d.ts.map +1 -0
  51. package/dist/operator/conductor.js +84 -0
  52. package/dist/operator/conductor.js.map +1 -0
  53. package/dist/operator/operator-trigger-loop.d.ts +13 -0
  54. package/dist/operator/operator-trigger-loop.d.ts.map +1 -1
  55. package/dist/operator/operator-trigger-loop.js +39 -8
  56. package/dist/operator/operator-trigger-loop.js.map +1 -1
  57. package/dist/operator/report-run.d.ts +8 -2
  58. package/dist/operator/report-run.d.ts.map +1 -1
  59. package/dist/operator/report-run.js +9 -9
  60. package/dist/operator/report-run.js.map +1 -1
  61. package/package.json +1 -2
  62. package/dist/multi-agent/conductor-persona.d.ts +0 -13
  63. package/dist/multi-agent/conductor-persona.d.ts.map +0 -1
  64. package/dist/multi-agent/conductor-persona.js +0 -157
  65. package/dist/multi-agent/conductor-persona.js.map +0 -1
  66. package/dist/tools/browser-tool.d.ts +0 -164
  67. package/dist/tools/browser-tool.d.ts.map +0 -1
  68. package/dist/tools/browser-tool.js +0 -315
  69. package/dist/tools/browser-tool.js.map +0 -1
@@ -1,164 +0,0 @@
1
- /**
2
- * Browser Tool
3
- *
4
- * Playwright-based browser automation for MAMA
5
- * Migrated from Puppeteer for better stability and multi-browser support
6
- */
7
- export interface BrowserToolConfig {
8
- /** Headless mode (default: true) */
9
- headless?: boolean;
10
- /** Default viewport width */
11
- viewportWidth?: number;
12
- /** Default viewport height */
13
- viewportHeight?: number;
14
- /** Screenshot output directory */
15
- screenshotDir?: string;
16
- /** Browser type: chromium, firefox, webkit (default: chromium) */
17
- browserType?: 'chromium' | 'firefox' | 'webkit';
18
- }
19
- export declare class BrowserTool {
20
- private config;
21
- private browser;
22
- private context;
23
- private page;
24
- constructor(config?: BrowserToolConfig);
25
- /**
26
- * Launch browser if not already running
27
- */
28
- launch(): Promise<void>;
29
- /**
30
- * Close browser
31
- */
32
- close(): Promise<void>;
33
- /**
34
- * Ensure browser is running
35
- */
36
- private ensureBrowser;
37
- private screenshotPaths;
38
- private removeOwnedArtifact;
39
- /**
40
- * Navigate to URL
41
- */
42
- navigate(url: string): Promise<{
43
- success: boolean;
44
- title: string;
45
- url: string;
46
- }>;
47
- /**
48
- * Take screenshot
49
- */
50
- screenshot(filename?: string, signal?: AbortSignal): Promise<{
51
- success: boolean;
52
- path: string;
53
- }>;
54
- /**
55
- * Take full page screenshot
56
- */
57
- screenshotFullPage(filename?: string, signal?: AbortSignal): Promise<{
58
- success: boolean;
59
- path: string;
60
- }>;
61
- /**
62
- * Click element by selector
63
- * Playwright auto-waits for element to be actionable
64
- */
65
- click(selector: string): Promise<{
66
- success: boolean;
67
- }>;
68
- /**
69
- * Type text into element
70
- * Playwright auto-waits for element to be ready
71
- */
72
- type(selector: string, text: string): Promise<{
73
- success: boolean;
74
- }>;
75
- /**
76
- * Wait for selector
77
- */
78
- waitFor(selector: string, timeout?: number): Promise<{
79
- success: boolean;
80
- }>;
81
- /**
82
- * Get page content (HTML)
83
- */
84
- getContent(): Promise<{
85
- success: boolean;
86
- html: string;
87
- }>;
88
- /**
89
- * Get page text content
90
- */
91
- getText(): Promise<{
92
- success: boolean;
93
- text: string;
94
- }>;
95
- /**
96
- * Evaluate JavaScript in page
97
- */
98
- evaluate(script: string): Promise<{
99
- success: boolean;
100
- result: unknown;
101
- }>;
102
- /**
103
- * Get element text by selector
104
- */
105
- getElementText(selector: string): Promise<{
106
- success: boolean;
107
- text: string | null;
108
- }>;
109
- /**
110
- * Get all elements matching selector
111
- */
112
- queryAll(selector: string): Promise<{
113
- success: boolean;
114
- count: number;
115
- texts: string[];
116
- }>;
117
- /**
118
- * Scroll page
119
- */
120
- scroll(direction: 'up' | 'down' | 'top' | 'bottom', amount?: number): Promise<{
121
- success: boolean;
122
- }>;
123
- /**
124
- * Press keyboard key
125
- */
126
- press(key: string): Promise<{
127
- success: boolean;
128
- }>;
129
- /**
130
- * Go back
131
- */
132
- goBack(): Promise<{
133
- success: boolean;
134
- }>;
135
- /**
136
- * Go forward
137
- */
138
- goForward(): Promise<{
139
- success: boolean;
140
- }>;
141
- /**
142
- * Reload page
143
- */
144
- reload(): Promise<{
145
- success: boolean;
146
- }>;
147
- /**
148
- * Get current URL
149
- */
150
- getUrl(): string | null;
151
- /**
152
- * Check if browser is running
153
- */
154
- isRunning(): boolean;
155
- /**
156
- * Take a PDF of the page (Chromium only)
157
- */
158
- pdf(filename?: string): Promise<{
159
- success: boolean;
160
- path: string;
161
- }>;
162
- }
163
- export declare function getBrowserTool(config?: BrowserToolConfig): BrowserTool;
164
- //# sourceMappingURL=browser-tool.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browser-tool.d.ts","sourceRoot":"","sources":["../../src/tools/browser-tool.ts"],"names":[],"mappings":"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"}
@@ -1,315 +0,0 @@
1
- "use strict";
2
- /**
3
- * Browser Tool
4
- *
5
- * Playwright-based browser automation for MAMA
6
- * Migrated from Puppeteer for better stability and multi-browser support
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.BrowserTool = void 0;
10
- exports.getBrowserTool = getBrowserTool;
11
- const node_fs_1 = require("node:fs");
12
- const node_path_1 = require("node:path");
13
- const node_crypto_1 = require("node:crypto");
14
- const DEFAULT_CONFIG = {
15
- headless: true,
16
- viewportWidth: 1280,
17
- viewportHeight: 800,
18
- screenshotDir: '/tmp/mama-screenshots',
19
- browserType: 'chromium',
20
- };
21
- class BrowserTool {
22
- config;
23
- browser = null;
24
- context = null;
25
- page = null;
26
- constructor(config = {}) {
27
- this.config = { ...DEFAULT_CONFIG, ...config };
28
- }
29
- /**
30
- * Launch browser if not already running
31
- */
32
- async launch() {
33
- if (this.browser) {
34
- console.log('[Browser] Already running');
35
- return;
36
- }
37
- console.log(`[Browser] Launching ${this.config.browserType}...`);
38
- // Dynamic import to avoid bundling issues
39
- const playwright = await import('playwright');
40
- // Select browser type
41
- const browserType = playwright[this.config.browserType];
42
- this.browser = await browserType.launch({
43
- headless: this.config.headless,
44
- });
45
- this.context = await this.browser.newContext({
46
- viewport: {
47
- width: this.config.viewportWidth,
48
- height: this.config.viewportHeight,
49
- },
50
- });
51
- this.page = await this.context.newPage();
52
- console.log('[Browser] Ready');
53
- }
54
- /**
55
- * Close browser
56
- */
57
- async close() {
58
- if (this.browser) {
59
- await this.browser.close();
60
- this.browser = null;
61
- this.context = null;
62
- this.page = null;
63
- console.log('[Browser] Closed');
64
- }
65
- }
66
- /**
67
- * Ensure browser is running
68
- */
69
- async ensureBrowser() {
70
- if (!this.browser || !this.page) {
71
- await this.launch();
72
- }
73
- return this.page;
74
- }
75
- screenshotPaths(filename, prefix) {
76
- const configuredRoot = (0, node_path_1.resolve)(this.config.screenshotDir);
77
- (0, node_fs_1.mkdirSync)(configuredRoot, { recursive: true });
78
- const root = (0, node_fs_1.realpathSync)(configuredRoot);
79
- const name = filename?.trim() || `${prefix}-${Date.now()}-${(0, node_crypto_1.randomUUID)()}.png`;
80
- if (name !== (0, node_path_1.basename)(name)) {
81
- throw new Error('Screenshot filename must not contain directory components');
82
- }
83
- const outputPath = (0, node_path_1.resolve)(root, name);
84
- const relativePath = (0, node_path_1.relative)(root, outputPath);
85
- if (!relativePath || relativePath.startsWith('..') || (0, node_path_1.isAbsolute)(relativePath)) {
86
- throw new Error('Screenshot filename must resolve inside the configured screenshot directory');
87
- }
88
- return {
89
- outputPath,
90
- temporaryPath: (0, node_path_1.resolve)(root, `.mama-screenshot-${(0, node_crypto_1.randomUUID)()}.tmp.png`),
91
- };
92
- }
93
- removeOwnedArtifact(path) {
94
- if ((0, node_fs_1.existsSync)(path)) {
95
- (0, node_fs_1.unlinkSync)(path);
96
- }
97
- }
98
- /**
99
- * Navigate to URL
100
- */
101
- async navigate(url) {
102
- const page = await this.ensureBrowser();
103
- console.log(`[Browser] Navigating to: ${url}`);
104
- // Use 'load' instead of 'networkidle' for faster page capture
105
- // networkidle waits for ALL network requests to finish (ads, analytics, etc.)
106
- // which can take 30+ seconds on heavy sites like Naver
107
- await page.goto(url, { waitUntil: 'load', timeout: 15000 });
108
- const title = await page.title();
109
- const currentUrl = page.url();
110
- return { success: true, title, url: currentUrl };
111
- }
112
- /**
113
- * Take screenshot
114
- */
115
- async screenshot(filename, signal) {
116
- signal?.throwIfAborted();
117
- const page = await this.ensureBrowser();
118
- signal?.throwIfAborted();
119
- const { outputPath, temporaryPath } = this.screenshotPaths(filename, 'screenshot');
120
- try {
121
- await page.screenshot({ path: temporaryPath, fullPage: false });
122
- signal?.throwIfAborted();
123
- (0, node_fs_1.copyFileSync)(temporaryPath, outputPath, node_fs_1.constants.COPYFILE_EXCL);
124
- this.removeOwnedArtifact(temporaryPath);
125
- }
126
- catch (error) {
127
- this.removeOwnedArtifact(temporaryPath);
128
- throw error;
129
- }
130
- console.log(`[Browser] Screenshot saved: ${outputPath}`);
131
- return { success: true, path: outputPath };
132
- }
133
- /**
134
- * Take full page screenshot
135
- */
136
- async screenshotFullPage(filename, signal) {
137
- signal?.throwIfAborted();
138
- const page = await this.ensureBrowser();
139
- signal?.throwIfAborted();
140
- const { outputPath, temporaryPath } = this.screenshotPaths(filename, 'fullpage');
141
- try {
142
- await page.screenshot({ path: temporaryPath, fullPage: true });
143
- signal?.throwIfAborted();
144
- (0, node_fs_1.copyFileSync)(temporaryPath, outputPath, node_fs_1.constants.COPYFILE_EXCL);
145
- this.removeOwnedArtifact(temporaryPath);
146
- }
147
- catch (error) {
148
- this.removeOwnedArtifact(temporaryPath);
149
- throw error;
150
- }
151
- console.log(`[Browser] Full page screenshot saved: ${outputPath}`);
152
- return { success: true, path: outputPath };
153
- }
154
- /**
155
- * Click element by selector
156
- * Playwright auto-waits for element to be actionable
157
- */
158
- async click(selector) {
159
- const page = await this.ensureBrowser();
160
- console.log(`[Browser] Clicking: ${selector}`);
161
- await page.click(selector);
162
- return { success: true };
163
- }
164
- /**
165
- * Type text into element
166
- * Playwright auto-waits for element to be ready
167
- */
168
- async type(selector, text) {
169
- const page = await this.ensureBrowser();
170
- console.log(`[Browser] Typing into: ${selector}`);
171
- await page.fill(selector, text);
172
- return { success: true };
173
- }
174
- /**
175
- * Wait for selector
176
- */
177
- async waitFor(selector, timeout = 10000) {
178
- const page = await this.ensureBrowser();
179
- console.log(`[Browser] Waiting for: ${selector}`);
180
- await page.waitForSelector(selector, { timeout });
181
- return { success: true };
182
- }
183
- /**
184
- * Get page content (HTML)
185
- */
186
- async getContent() {
187
- const page = await this.ensureBrowser();
188
- const html = await page.content();
189
- return { success: true, html };
190
- }
191
- /**
192
- * Get page text content
193
- */
194
- async getText() {
195
- const page = await this.ensureBrowser();
196
- const text = await page.innerText('body');
197
- return { success: true, text };
198
- }
199
- /**
200
- * Evaluate JavaScript in page
201
- */
202
- async evaluate(script) {
203
- const page = await this.ensureBrowser();
204
- console.log(`[Browser] Evaluating script...`);
205
- const result = await page.evaluate(script);
206
- return { success: true, result };
207
- }
208
- /**
209
- * Get element text by selector
210
- */
211
- async getElementText(selector) {
212
- const page = await this.ensureBrowser();
213
- const text = await page.textContent(selector);
214
- return { success: true, text };
215
- }
216
- /**
217
- * Get all elements matching selector
218
- */
219
- async queryAll(selector) {
220
- const page = await this.ensureBrowser();
221
- const elements = await page.locator(selector).all();
222
- const texts = await Promise.all(elements.map((el) => el.textContent() || ''));
223
- return { success: true, count: elements.length, texts: texts.filter(Boolean) };
224
- }
225
- /**
226
- * Scroll page
227
- */
228
- async scroll(direction, amount = 500) {
229
- const page = await this.ensureBrowser();
230
- switch (direction) {
231
- case 'up':
232
- await page.evaluate(`window.scrollBy(0, -${amount})`);
233
- break;
234
- case 'down':
235
- await page.evaluate(`window.scrollBy(0, ${amount})`);
236
- break;
237
- case 'top':
238
- await page.evaluate('window.scrollTo(0, 0)');
239
- break;
240
- case 'bottom':
241
- await page.evaluate('window.scrollTo(0, document.body.scrollHeight)');
242
- break;
243
- }
244
- return { success: true };
245
- }
246
- /**
247
- * Press keyboard key
248
- */
249
- async press(key) {
250
- const page = await this.ensureBrowser();
251
- await page.keyboard.press(key);
252
- return { success: true };
253
- }
254
- /**
255
- * Go back
256
- */
257
- async goBack() {
258
- const page = await this.ensureBrowser();
259
- await page.goBack();
260
- return { success: true };
261
- }
262
- /**
263
- * Go forward
264
- */
265
- async goForward() {
266
- const page = await this.ensureBrowser();
267
- await page.goForward();
268
- return { success: true };
269
- }
270
- /**
271
- * Reload page
272
- */
273
- async reload() {
274
- const page = await this.ensureBrowser();
275
- await page.reload();
276
- return { success: true };
277
- }
278
- /**
279
- * Get current URL
280
- */
281
- getUrl() {
282
- return this.page?.url() || null;
283
- }
284
- /**
285
- * Check if browser is running
286
- */
287
- isRunning() {
288
- return this.browser !== null;
289
- }
290
- /**
291
- * Take a PDF of the page (Chromium only)
292
- */
293
- async pdf(filename) {
294
- const page = await this.ensureBrowser();
295
- const { mkdirSync, existsSync } = await import('fs');
296
- if (!existsSync(this.config.screenshotDir)) {
297
- mkdirSync(this.config.screenshotDir, { recursive: true });
298
- }
299
- const name = filename || `page-${Date.now()}.pdf`;
300
- const path = `${this.config.screenshotDir}/${name}`;
301
- await page.pdf({ path, format: 'A4' });
302
- console.log(`[Browser] PDF saved: ${path}`);
303
- return { success: true, path };
304
- }
305
- }
306
- exports.BrowserTool = BrowserTool;
307
- // Singleton instance
308
- let instance = null;
309
- function getBrowserTool(config) {
310
- if (!instance) {
311
- instance = new BrowserTool(config);
312
- }
313
- return instance;
314
- }
315
- //# sourceMappingURL=browser-tool.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browser-tool.js","sourceRoot":"","sources":["../../src/tools/browser-tool.ts"],"names":[],"mappings":"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"}