@minded-ai/mindedjs 2.0.26 → 2.0.27-beta.10
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.
- package/dist/browserTask/cdp.d.ts +23 -0
- package/dist/browserTask/cdp.d.ts.map +1 -0
- package/dist/browserTask/cdp.js +162 -0
- package/dist/browserTask/cdp.js.map +1 -0
- package/dist/browserTask/cookieStore.py +108 -0
- package/dist/cli/index.js +7 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/runTool.d.ts +2 -0
- package/dist/cli/runTool.d.ts.map +1 -0
- package/dist/cli/runTool.js +135 -0
- package/dist/cli/runTool.js.map +1 -0
- package/dist/guidelines/guidelinesManager.d.ts +37 -0
- package/dist/guidelines/guidelinesManager.d.ts.map +1 -0
- package/dist/guidelines/guidelinesManager.js +172 -0
- package/dist/guidelines/guidelinesManager.js.map +1 -0
- package/dist/internalTools/retell.d.ts +12 -0
- package/dist/internalTools/retell.d.ts.map +1 -0
- package/dist/internalTools/retell.js +54 -0
- package/dist/internalTools/retell.js.map +1 -0
- package/dist/internalTools/sendPlaceholderMessage.d.ts +14 -0
- package/dist/internalTools/sendPlaceholderMessage.d.ts.map +1 -0
- package/dist/internalTools/sendPlaceholderMessage.js +61 -0
- package/dist/internalTools/sendPlaceholderMessage.js.map +1 -0
- package/dist/platform/mindedChatOpenAI.d.ts +5 -0
- package/dist/platform/mindedChatOpenAI.d.ts.map +1 -0
- package/dist/platform/mindedChatOpenAI.js +23 -0
- package/dist/platform/mindedChatOpenAI.js.map +1 -0
- package/dist/toolsLibrary/withBrowserSession.d.ts +7 -0
- package/dist/toolsLibrary/withBrowserSession.d.ts.map +1 -0
- package/dist/toolsLibrary/withBrowserSession.js +47 -0
- package/dist/toolsLibrary/withBrowserSession.js.map +1 -0
- package/dist/utils/extractStateMemoryResponse.d.ts +5 -0
- package/dist/utils/extractStateMemoryResponse.d.ts.map +1 -0
- package/dist/utils/extractStateMemoryResponse.js +91 -0
- package/dist/utils/extractStateMemoryResponse.js.map +1 -0
- package/dist/utils/extractToolMemoryResponse.d.ts +4 -0
- package/dist/utils/extractToolMemoryResponse.d.ts.map +1 -0
- package/dist/utils/extractToolMemoryResponse.js +16 -0
- package/dist/utils/extractToolMemoryResponse.js.map +1 -0
- package/package.json +1 -1
- package/src/cli/index.ts +6 -1
- package/src/cli/runTool.ts +116 -0
- package/src/toolsLibrary/withBrowserSession.ts +40 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export type StartChromiumOptions = {
|
|
2
|
+
/** Headless by default. Set to false to see a window. */
|
|
3
|
+
headless?: boolean;
|
|
4
|
+
/** Extra CLI flags to pass to Chromium. */
|
|
5
|
+
extraArgs?: string[];
|
|
6
|
+
/** Provide your own user-data-dir. If omitted, a temp dir is created and later removable via `kill()`. */
|
|
7
|
+
userDataDir?: string;
|
|
8
|
+
/** Extra env vars. */
|
|
9
|
+
env?: NodeJS.ProcessEnv;
|
|
10
|
+
/** How long to wait for the DevTools port to come up (ms). Default: 10000 */
|
|
11
|
+
timeoutMs?: number;
|
|
12
|
+
};
|
|
13
|
+
export type StartedChromium = {
|
|
14
|
+
/** DevTools CDP WebSocket URL, e.g. ws://127.0.0.1:12345/devtools/browser/<id> */
|
|
15
|
+
cdpUrl: string;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Launch Chromium with --remote-debugging-port=0 and return the CDP ws URL.
|
|
19
|
+
* Works with Chrome/Chromium/Chrome for Testing.
|
|
20
|
+
*/
|
|
21
|
+
export declare function startChromiumAndGetCDP(opts: StartChromiumOptions): Promise<StartedChromium>;
|
|
22
|
+
export declare function kill(): Promise<void>;
|
|
23
|
+
//# sourceMappingURL=cdp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cdp.d.ts","sourceRoot":"","sources":["../../src/browserTask/cdp.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,oBAAoB,GAAG;IACjC,yDAAyD;IACzD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,0GAA0G;IAC1G,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,kFAAkF;IAClF,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,eAAe,CAAC,CAmF1B;AA4DD,wBAAsB,IAAI,kBAMzB"}
|
|
@@ -0,0 +1,162 @@
|
|
|
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.startChromiumAndGetCDP = startChromiumAndGetCDP;
|
|
27
|
+
exports.kill = kill;
|
|
28
|
+
// startChromiumAndGetCDP.ts
|
|
29
|
+
const child_process_1 = require("child_process");
|
|
30
|
+
const fs = __importStar(require("fs/promises"));
|
|
31
|
+
const fscb = __importStar(require("fs"));
|
|
32
|
+
const path = __importStar(require("path"));
|
|
33
|
+
const os = __importStar(require("os"));
|
|
34
|
+
const http = __importStar(require("http"));
|
|
35
|
+
const playwright_1 = require("playwright");
|
|
36
|
+
let proc;
|
|
37
|
+
/**
|
|
38
|
+
* Launch Chromium with --remote-debugging-port=0 and return the CDP ws URL.
|
|
39
|
+
* Works with Chrome/Chromium/Chrome for Testing.
|
|
40
|
+
*/
|
|
41
|
+
async function startChromiumAndGetCDP(opts) {
|
|
42
|
+
var _a;
|
|
43
|
+
const { headless = true, extraArgs = [], env, timeoutMs = 10000, } = opts;
|
|
44
|
+
const executablePath = playwright_1.chromium.executablePath();
|
|
45
|
+
const userDataDir = (_a = opts.userDataDir) !== null && _a !== void 0 ? _a : (await fs.mkdtemp(path.join(os.tmpdir(), "chromium-profile-")));
|
|
46
|
+
const args = [
|
|
47
|
+
"--remote-debugging-port=0", // let Chrome choose a free port
|
|
48
|
+
`--user-data-dir=${userDataDir}`,
|
|
49
|
+
"--no-first-run",
|
|
50
|
+
"--no-default-browser-check",
|
|
51
|
+
...(headless ? ["--headless=new", "--disable-gpu"] : []),
|
|
52
|
+
// Add your own flags if needed (e.g., '--no-sandbox' in some containers)
|
|
53
|
+
...extraArgs,
|
|
54
|
+
"about:blank",
|
|
55
|
+
];
|
|
56
|
+
proc = (0, child_process_1.spawn)(executablePath, args, {
|
|
57
|
+
stdio: ["ignore", "ignore", "pipe"], // stderr is useful for debugging
|
|
58
|
+
env: { ...process.env, ...env },
|
|
59
|
+
});
|
|
60
|
+
// If Chromium dies early, surface the error.
|
|
61
|
+
const earlyExit = new Promise((_, reject) => {
|
|
62
|
+
proc.once("exit", (code, signal) => {
|
|
63
|
+
reject(new Error(`Chromium exited prematurely (code=${code}, signal=${signal}).`));
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
const devtoolsPortFile = path.join(userDataDir, "DevToolsActivePort");
|
|
67
|
+
// Wait for DevToolsActivePort file to appear, then read it for port + browserId.
|
|
68
|
+
const whenReady = (async () => {
|
|
69
|
+
const startedAt = Date.now();
|
|
70
|
+
while (Date.now() - startedAt < timeoutMs) {
|
|
71
|
+
try {
|
|
72
|
+
// Access succeeds once the file is written.
|
|
73
|
+
await fs.access(devtoolsPortFile, fscb.constants.F_OK);
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
catch (_a) {
|
|
77
|
+
await delay(50);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// If still not there, bail.
|
|
81
|
+
await fs.access(devtoolsPortFile, fscb.constants.F_OK).catch(() => {
|
|
82
|
+
throw new Error(`Timed out after ${timeoutMs}ms waiting for DevToolsActivePort at ${devtoolsPortFile}`);
|
|
83
|
+
});
|
|
84
|
+
const raw = await fs.readFile(devtoolsPortFile, "utf8");
|
|
85
|
+
const [portLine, browserIdLine] = raw.trim().split(/\r?\n/);
|
|
86
|
+
const port = Number(portLine);
|
|
87
|
+
if (!Number.isFinite(port)) {
|
|
88
|
+
throw new Error(`Invalid DevTools port read from file: "${portLine}"`);
|
|
89
|
+
}
|
|
90
|
+
// Optional: ping /json/version to ensure the endpoint is responsive.
|
|
91
|
+
await waitForHttpOk(`http://127.0.0.1:${port}/json/version`, timeoutMs);
|
|
92
|
+
const browserId = (browserIdLine || "").trim();
|
|
93
|
+
const cdpUrl = browserId.length > 0
|
|
94
|
+
? `ws://127.0.0.1:${port}/devtools/browser/${browserId}`
|
|
95
|
+
: // Fallback: some builds don't include the second line; /json/version has the ws url too.
|
|
96
|
+
await fetchWsFromVersionEndpoint(port, timeoutMs);
|
|
97
|
+
return { port, cdpUrl };
|
|
98
|
+
})();
|
|
99
|
+
const { cdpUrl } = await Promise.race([whenReady, earlyExit]);
|
|
100
|
+
return { cdpUrl };
|
|
101
|
+
}
|
|
102
|
+
// ---- helpers ----
|
|
103
|
+
function delay(ms) {
|
|
104
|
+
return new Promise((r) => setTimeout(r, ms));
|
|
105
|
+
}
|
|
106
|
+
async function waitForHttpOk(url, timeoutMs) {
|
|
107
|
+
const startedAt = Date.now();
|
|
108
|
+
while (Date.now() - startedAt < timeoutMs) {
|
|
109
|
+
const ok = await httpGetOk(url).catch(() => false);
|
|
110
|
+
if (ok)
|
|
111
|
+
return;
|
|
112
|
+
await delay(50);
|
|
113
|
+
}
|
|
114
|
+
throw new Error(`Timed out after ${timeoutMs}ms waiting for ${url}`);
|
|
115
|
+
}
|
|
116
|
+
function httpGetOk(urlStr) {
|
|
117
|
+
return new Promise((resolve, reject) => {
|
|
118
|
+
const req = http.get(urlStr, (res) => {
|
|
119
|
+
// Drain data to allow socket reuse.
|
|
120
|
+
res.resume();
|
|
121
|
+
resolve(res.statusCode === 200);
|
|
122
|
+
});
|
|
123
|
+
req.on("error", reject);
|
|
124
|
+
req.setTimeout(3000, () => {
|
|
125
|
+
req.destroy(new Error("HTTP timeout"));
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
async function fetchWsFromVersionEndpoint(port, timeoutMs) {
|
|
130
|
+
const urlStr = `http://127.0.0.1:${port}/json/version`;
|
|
131
|
+
const body = await httpGetBody(urlStr, timeoutMs);
|
|
132
|
+
const parsed = JSON.parse(body);
|
|
133
|
+
if (!parsed.webSocketDebuggerUrl) {
|
|
134
|
+
throw new Error(`No webSocketDebuggerUrl in ${urlStr} response`);
|
|
135
|
+
}
|
|
136
|
+
return parsed.webSocketDebuggerUrl;
|
|
137
|
+
}
|
|
138
|
+
function httpGetBody(urlStr, timeoutMs) {
|
|
139
|
+
return new Promise((resolve, reject) => {
|
|
140
|
+
const req = http.get(urlStr, (res) => {
|
|
141
|
+
let data = "";
|
|
142
|
+
res.setEncoding("utf8");
|
|
143
|
+
res.on("data", (chunk) => (data += chunk));
|
|
144
|
+
res.on("end", () => {
|
|
145
|
+
if (res.statusCode === 200)
|
|
146
|
+
resolve(data);
|
|
147
|
+
else
|
|
148
|
+
reject(new Error(`HTTP ${res.statusCode}: ${data}`));
|
|
149
|
+
});
|
|
150
|
+
});
|
|
151
|
+
req.on("error", reject);
|
|
152
|
+
req.setTimeout(timeoutMs, () => req.destroy(new Error("HTTP timeout")));
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
async function kill() {
|
|
156
|
+
if (proc) {
|
|
157
|
+
proc.kill("SIGTERM");
|
|
158
|
+
await delay(300);
|
|
159
|
+
proc.kill("SIGKILL");
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=cdp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cdp.js","sourceRoot":"","sources":["../../src/browserTask/cdp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Cookie Store for Browser Sessions
|
|
3
|
+
|
|
4
|
+
This module provides persistent cookie storage for browser sessions,
|
|
5
|
+
allowing cookies to be saved and restored across different browser task executions.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
import json
|
|
9
|
+
import os
|
|
10
|
+
import time
|
|
11
|
+
from pathlib import Path
|
|
12
|
+
from typing import List, Dict, Any, Optional
|
|
13
|
+
import logging
|
|
14
|
+
|
|
15
|
+
logger = logging.getLogger(__name__)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class CookieStore:
|
|
19
|
+
"""Persistent storage for browser cookies"""
|
|
20
|
+
|
|
21
|
+
def __init__(self, base_dir: str):
|
|
22
|
+
"""
|
|
23
|
+
Initialize cookie store
|
|
24
|
+
|
|
25
|
+
Args:
|
|
26
|
+
base_dir: Base directory for storing cookie files
|
|
27
|
+
"""
|
|
28
|
+
self.base_dir = Path(base_dir)
|
|
29
|
+
|
|
30
|
+
def _file_for(self) -> Path:
|
|
31
|
+
"""Get the path to the cookie storage file"""
|
|
32
|
+
return self.base_dir / "last-session.json"
|
|
33
|
+
|
|
34
|
+
async def save(self, cookies: List[Dict[str, Any]]) -> None:
|
|
35
|
+
"""
|
|
36
|
+
Save cookies to persistent storage
|
|
37
|
+
|
|
38
|
+
Args:
|
|
39
|
+
cookies: List of cookie dictionaries to save
|
|
40
|
+
"""
|
|
41
|
+
tmp_path = None
|
|
42
|
+
try:
|
|
43
|
+
# Create directory if it doesn't exist
|
|
44
|
+
self.base_dir.mkdir(parents=True, exist_ok=True)
|
|
45
|
+
|
|
46
|
+
file_path = self._file_for()
|
|
47
|
+
tmp_path = file_path.with_suffix(f".tmp.{os.getpid()}")
|
|
48
|
+
|
|
49
|
+
# Filter out expired cookies
|
|
50
|
+
now = int(time.time())
|
|
51
|
+
to_persist = [
|
|
52
|
+
c for c in cookies
|
|
53
|
+
if not c.get('expires') or c.get('expires', 0) > now
|
|
54
|
+
]
|
|
55
|
+
|
|
56
|
+
# Write to temporary file first, then atomic rename
|
|
57
|
+
with open(tmp_path, 'w') as f:
|
|
58
|
+
json.dump({
|
|
59
|
+
'version': 1,
|
|
60
|
+
'cookies': to_persist
|
|
61
|
+
}, f, indent=2)
|
|
62
|
+
|
|
63
|
+
# Set secure file permissions (owner read/write only)
|
|
64
|
+
os.chmod(tmp_path, 0o600)
|
|
65
|
+
|
|
66
|
+
# Atomic rename (on POSIX systems)
|
|
67
|
+
tmp_path.replace(file_path)
|
|
68
|
+
|
|
69
|
+
logger.info(f"🍪 Saved {len(to_persist)} cookies to storage")
|
|
70
|
+
|
|
71
|
+
except Exception as e:
|
|
72
|
+
logger.warning(f"Failed to save cookies: {e}")
|
|
73
|
+
# Clean up temp file if it exists
|
|
74
|
+
if tmp_path and tmp_path.exists():
|
|
75
|
+
try:
|
|
76
|
+
tmp_path.unlink()
|
|
77
|
+
except Exception:
|
|
78
|
+
pass
|
|
79
|
+
|
|
80
|
+
async def load(self) -> Optional[List[Dict[str, Any]]]:
|
|
81
|
+
"""
|
|
82
|
+
Load cookies from persistent storage
|
|
83
|
+
|
|
84
|
+
Returns:
|
|
85
|
+
List of cookie dictionaries, or None if no cookies found
|
|
86
|
+
"""
|
|
87
|
+
try:
|
|
88
|
+
file_path = self._file_for()
|
|
89
|
+
|
|
90
|
+
if not file_path.exists():
|
|
91
|
+
logger.info("No stored cookies found")
|
|
92
|
+
return None
|
|
93
|
+
|
|
94
|
+
with open(file_path, 'r') as f:
|
|
95
|
+
data = json.load(f)
|
|
96
|
+
|
|
97
|
+
if not data or not isinstance(data.get('cookies'), list):
|
|
98
|
+
logger.warning("Invalid cookie file format")
|
|
99
|
+
return None
|
|
100
|
+
|
|
101
|
+
cookies = data['cookies']
|
|
102
|
+
logger.info(f"🍪 Loaded {len(cookies)} cookies from storage")
|
|
103
|
+
return cookies
|
|
104
|
+
|
|
105
|
+
except Exception as e:
|
|
106
|
+
logger.warning(f"Failed to load cookies: {e}")
|
|
107
|
+
return None
|
|
108
|
+
|
package/dist/cli/index.js
CHANGED
|
@@ -39,6 +39,7 @@ const path = __importStar(require("path"));
|
|
|
39
39
|
const logger_1 = require("../utils/logger");
|
|
40
40
|
const child_process_1 = require("child_process");
|
|
41
41
|
const localOperatorSetup_1 = require("./localOperatorSetup");
|
|
42
|
+
const runTool_1 = require("./runTool");
|
|
42
43
|
const ENV_FILE = '.env';
|
|
43
44
|
function getEnvFilePath() {
|
|
44
45
|
return path.join(process.cwd(), ENV_FILE);
|
|
@@ -195,9 +196,14 @@ async function main() {
|
|
|
195
196
|
process.exit(1);
|
|
196
197
|
}
|
|
197
198
|
}
|
|
199
|
+
else if (command === 'runTool') {
|
|
200
|
+
// Run a specific tool with the given parameters
|
|
201
|
+
const toolArgs = args.slice(1);
|
|
202
|
+
await (0, runTool_1.runTool)(toolArgs);
|
|
203
|
+
}
|
|
198
204
|
else {
|
|
199
205
|
logger_1.logger.error({
|
|
200
|
-
msg: 'Unknown command. Available commands: token, setup-local-operator, check-local-operator, generate-lambda-ts-handler',
|
|
206
|
+
msg: 'Unknown command. Available commands: token, setup-local-operator, check-local-operator, generate-lambda-ts-handler, runTool',
|
|
201
207
|
});
|
|
202
208
|
process.exit(1);
|
|
203
209
|
}
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,uCAAyB;AACzB,2CAA6B;AAC7B,4CAAyC;AACzC,iDAAyC;AACzC,6DAAgF;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,uCAAyB;AACzB,2CAA6B;AAC7B,4CAAyC;AACzC,iDAAyC;AACzC,6DAAgF;AAChF,uCAAoC;AAEpC,MAAM,QAAQ,GAAG,MAAM,CAAC;AAExB,SAAS,cAAc;IACrB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC5C,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,KAAa;IACnC,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,2BAA2B,KAAK,EAAE,CAAC;IAErD,4BAA4B;IAC5B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,kCAAkC;QAClC,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,WAAW,OAAO,kBAAkB,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACN,0BAA0B;QAC1B,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAEpD,kDAAkD;QAClD,IAAI,UAAU,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC;YACpD,yBAAyB;YACzB,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,4BAA4B,EAAE,SAAS,CAAC,CAAC;YACnF,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;YAC1C,OAAO,CAAC,IAAI,CAAC,sCAAsC,OAAO,EAAE,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,gCAAgC;YAChC,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC;YACpH,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YACtC,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,oCAAoC,OAAO,EAAE,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB;IAC5B,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,CAAC;IAEjE,8BAA8B;IAC9B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACrC,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,gDAAgD,EAAE,CAAC,CAAC;QACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,6BAA6B;IAC7B,IAAI,YAAY,CAAC;IACjB,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QAChE,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,eAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,sCAAsC,EAAE,GAAG,EAAE,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,qBAAqB;IACrB,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;IACrC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,oCAAoC,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,sEAAsE;IACtE,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAEvD,oCAAoC;IACpC,+EAA+E;IAC/E,MAAM,aAAa,GAAG;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,0BAA0B,CAAC,EAAE,kBAAkB;QACpE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,0BAA0B,CAAC,EAAE,kBAAkB;KAC/F,CAAC;IAEF,IAAI,eAAe,GAAkB,IAAI,CAAC;IAE1C,2CAA2C;IAC3C,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAChC,eAAe,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;gBACxD,eAAM,CAAC,KAAK,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAC;gBAClD,MAAM;YACR,CAAC;QACH,CAAC;QAAC,WAAM,CAAC;YACP,wBAAwB;QAC1B,CAAC;IACH,CAAC;IAED,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,6CAA6C,EAAE,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,sDAAsD;QACtD,eAAe,GAAG,eAAe,CAAC,OAAO,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;QAExE,mDAAmD;QACnD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;QACxD,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QAC9C,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,+BAA+B,UAAU,EAAE,EAAE,CAAC,CAAC;QAElE,6CAA6C;QAC7C,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,iCAAiC,EAAE,CAAC,CAAC;QAExD,IAAI,CAAC;YACH,uCAAuC;YACvC,IAAI,MAAM,GAAG,MAAM,CAAC,CAAC,gBAAgB;YACrC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,CAAC,CAAC;YAE/D,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC;oBACH,MAAM,eAAe,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;oBAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;oBAE7C,IAAI,QAAQ,CAAC,eAAe,IAAI,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;wBAChE,MAAM,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC;wBACzC,eAAM,CAAC,KAAK,CAAC,oCAAoC,MAAM,EAAE,CAAC,CAAC;oBAC7D,CAAC;gBACH,CAAC;gBAAC,WAAM,CAAC;oBACP,eAAM,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;gBAC3E,CAAC;YACH,CAAC;YAED,yDAAyD;YACzD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;YACjD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7C,CAAC;YAED,sDAAsD;YACtD,IAAA,wBAAQ,EAAC,+DAA+D,UAAU,aAAa,MAAM,EAAE,EAAE;gBACvG,KAAK,EAAE,MAAM;gBACb,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;aACnB,CAAC,CAAC;YAEH,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,2CAA2C,MAAM,WAAW,EAAE,CAAC,CAAC;QACrF,CAAC;QAAC,OAAO,YAAY,EAAE,CAAC;YACtB,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,kCAAkC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,eAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,mCAAmC,EAAE,GAAG,EAAE,CAAC,CAAC;QACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAExB,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,wBAAwB,EAAE,CAAC,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;SAAM,IAAI,OAAO,KAAK,sBAAsB,EAAE,CAAC;QAC9C,6CAA6C;QAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjE,MAAM,IAAA,uCAAkB,EAAC,UAAU,CAAC,CAAC;IACvC,CAAC;SAAM,IAAI,OAAO,KAAK,4BAA4B,EAAE,CAAC;QACpD,qBAAqB,EAAE,CAAC;IAC1B,CAAC;SAAM,IAAI,OAAO,KAAK,sBAAsB,EAAE,CAAC;QAC9C,+CAA+C;QAC/C,IAAI,IAAA,yCAAoB,GAAE,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;YACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,gDAAgD;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,IAAA,iBAAO,EAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,eAAM,CAAC,KAAK,CAAC;YACX,GAAG,EAAE,6HAA6H;SACnI,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,eAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAC;IACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runTool.d.ts","sourceRoot":"","sources":["../../src/cli/runTool.ts"],"names":[],"mappings":"AAwCA,wBAAsB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA0E/D"}
|
|
@@ -0,0 +1,135 @@
|
|
|
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 () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.runTool = runTool;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const logger_1 = require("../utils/logger");
|
|
40
|
+
/**
|
|
41
|
+
* Parse command line arguments for runTool in the format: runTool toolName x=y a=c
|
|
42
|
+
* Returns { toolName: string, params: Record<string, any> }
|
|
43
|
+
*/
|
|
44
|
+
function parseToolArgs(args) {
|
|
45
|
+
if (args.length === 0) {
|
|
46
|
+
throw new Error('Usage: npx minded runTool <toolName> [key=value ...]');
|
|
47
|
+
}
|
|
48
|
+
const toolName = args[0];
|
|
49
|
+
const params = {};
|
|
50
|
+
// Parse key=value pairs
|
|
51
|
+
for (let i = 1; i < args.length; i++) {
|
|
52
|
+
const arg = args[i];
|
|
53
|
+
const equalIndex = arg.indexOf('=');
|
|
54
|
+
if (equalIndex === -1) {
|
|
55
|
+
throw new Error(`Invalid argument format: ${arg}. Expected key=value`);
|
|
56
|
+
}
|
|
57
|
+
const key = arg.substring(0, equalIndex);
|
|
58
|
+
const rawValue = arg.substring(equalIndex + 1);
|
|
59
|
+
// Try to parse as JSON (for objects, arrays, booleans, numbers)
|
|
60
|
+
try {
|
|
61
|
+
params[key] = JSON.parse(rawValue);
|
|
62
|
+
}
|
|
63
|
+
catch (_a) {
|
|
64
|
+
// If not valid JSON, treat as string
|
|
65
|
+
params[key] = rawValue;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return { toolName, params };
|
|
69
|
+
}
|
|
70
|
+
async function runTool(toolArgs) {
|
|
71
|
+
const { randomUUID } = await Promise.resolve().then(() => __importStar(require('crypto')));
|
|
72
|
+
const mindedConfigPath = path.join(process.cwd(), 'minded.json');
|
|
73
|
+
// Check if minded.json exists
|
|
74
|
+
if (!fs.existsSync(mindedConfigPath)) {
|
|
75
|
+
logger_1.logger.error({ msg: 'minded.json not found in the current directory' });
|
|
76
|
+
process.exit(1);
|
|
77
|
+
}
|
|
78
|
+
// Read and parse minded.json
|
|
79
|
+
let mindedConfig;
|
|
80
|
+
try {
|
|
81
|
+
const configContent = fs.readFileSync(mindedConfigPath, 'utf8');
|
|
82
|
+
mindedConfig = JSON.parse(configContent);
|
|
83
|
+
}
|
|
84
|
+
catch (err) {
|
|
85
|
+
logger_1.logger.error({ message: 'Failed to read or parse minded.json:', err });
|
|
86
|
+
process.exit(1);
|
|
87
|
+
}
|
|
88
|
+
// Get the agent path
|
|
89
|
+
const agentPath = mindedConfig.agent;
|
|
90
|
+
if (!agentPath) {
|
|
91
|
+
logger_1.logger.error({ msg: 'No agent path found in minded.json' });
|
|
92
|
+
process.exit(1);
|
|
93
|
+
}
|
|
94
|
+
// Parse tool arguments
|
|
95
|
+
const { toolName, params } = parseToolArgs(toolArgs);
|
|
96
|
+
logger_1.logger.info({
|
|
97
|
+
message: '[runTool] Executing tool',
|
|
98
|
+
toolName,
|
|
99
|
+
params,
|
|
100
|
+
});
|
|
101
|
+
try {
|
|
102
|
+
// Dynamically import the agent
|
|
103
|
+
const agentModule = await Promise.resolve(`${path.resolve(process.cwd(), agentPath)}`).then(s => __importStar(require(s)));
|
|
104
|
+
const agent = agentModule.default || agentModule;
|
|
105
|
+
const sessionId = randomUUID();
|
|
106
|
+
const requestId = randomUUID();
|
|
107
|
+
const result = await agent.executeTool({
|
|
108
|
+
toolName,
|
|
109
|
+
toolParams: params,
|
|
110
|
+
sessionId,
|
|
111
|
+
requestId,
|
|
112
|
+
});
|
|
113
|
+
if (result.error) {
|
|
114
|
+
logger_1.logger.error({
|
|
115
|
+
message: '[runTool] Tool execution failed',
|
|
116
|
+
error: result.error,
|
|
117
|
+
});
|
|
118
|
+
process.exit(1);
|
|
119
|
+
}
|
|
120
|
+
logger_1.logger.info({
|
|
121
|
+
message: '[runTool] Tool execution completed',
|
|
122
|
+
result: result.result,
|
|
123
|
+
state: result.state,
|
|
124
|
+
});
|
|
125
|
+
process.exit(0);
|
|
126
|
+
}
|
|
127
|
+
catch (err) {
|
|
128
|
+
logger_1.logger.error({
|
|
129
|
+
message: '[runTool] Error executing tool',
|
|
130
|
+
err,
|
|
131
|
+
});
|
|
132
|
+
process.exit(1);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=runTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runTool.js","sourceRoot":"","sources":["../../src/cli/runTool.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCA,0BA0EC;AAlHD,uCAAyB;AACzB,2CAA6B;AAC7B,4CAAyC;AAEzC;;;GAGG;AACH,SAAS,aAAa,CAAC,IAAc;IACnC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,MAAM,GAAwB,EAAE,CAAC;IAEvC,wBAAwB;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEpC,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,sBAAsB,CAAC,CAAC;QACzE,CAAC;QAED,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAE/C,gEAAgE;QAChE,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;QAAC,WAAM,CAAC;YACP,qCAAqC;YACrC,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC;AAEM,KAAK,UAAU,OAAO,CAAC,QAAkB;IAC9C,MAAM,EAAE,UAAU,EAAE,GAAG,wDAAa,QAAQ,GAAC,CAAC;IAE9C,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,CAAC;IAEjE,8BAA8B;IAC9B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACrC,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,gDAAgD,EAAE,CAAC,CAAC;QACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,6BAA6B;IAC7B,IAAI,YAAY,CAAC;IACjB,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QAChE,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,eAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,sCAAsC,EAAE,GAAG,EAAE,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,qBAAqB;IACrB,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;IACrC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,oCAAoC,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,uBAAuB;IACvB,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAErD,eAAM,CAAC,IAAI,CAAC;QACV,OAAO,EAAE,0BAA0B;QACnC,QAAQ;QACR,MAAM;KACP,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,+BAA+B;QAC/B,MAAM,WAAW,GAAG,yBAAa,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,uCAAC,CAAC;QACzE,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,IAAI,WAAW,CAAC;QAEjD,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;QAE/B,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC;YACrC,QAAQ;YACR,UAAU,EAAE,MAAM;YAClB,SAAS;YACT,SAAS;SACV,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,eAAM,CAAC,KAAK,CAAC;gBACX,OAAO,EAAE,iCAAiC;gBAC1C,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,eAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,oCAAoC;YAC7C,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,eAAM,CAAC,KAAK,CAAC;YACX,OAAO,EAAE,gCAAgC;YACzC,GAAG;SACJ,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { MindedConnection } from '../platform/mindedConnection';
|
|
2
|
+
export interface Guideline {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
content: string;
|
|
6
|
+
index?: number;
|
|
7
|
+
}
|
|
8
|
+
export declare class GuidelinesManager {
|
|
9
|
+
private guidelines;
|
|
10
|
+
private mindedConnection;
|
|
11
|
+
constructor(mindedConnection: MindedConnection | null);
|
|
12
|
+
/**
|
|
13
|
+
* Load guidelines from directories or platform
|
|
14
|
+
*/
|
|
15
|
+
loadGuidelines(guidelinesDirectories?: string[]): Promise<Guideline[]>;
|
|
16
|
+
/**
|
|
17
|
+
* Load guidelines from local directories
|
|
18
|
+
*/
|
|
19
|
+
private loadGuidelinesFromDirectories;
|
|
20
|
+
/**
|
|
21
|
+
* Recursively get all YAML files in a directory
|
|
22
|
+
*/
|
|
23
|
+
private getAllYamlFiles;
|
|
24
|
+
/**
|
|
25
|
+
* Compile guidelines into a single string with EJS and placeholders
|
|
26
|
+
*/
|
|
27
|
+
compileGuidelines(params?: Record<string, any>): string;
|
|
28
|
+
/**
|
|
29
|
+
* Replace placeholders in {key} format
|
|
30
|
+
*/
|
|
31
|
+
private replacePlaceholders;
|
|
32
|
+
/**
|
|
33
|
+
* Get raw guidelines without compilation
|
|
34
|
+
*/
|
|
35
|
+
getGuidelines(): Guideline[];
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=guidelinesManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guidelinesManager.d.ts","sourceRoot":"","sources":["../../src/guidelines/guidelinesManager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAKhE,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,gBAAgB,CAA0B;gBAEtC,gBAAgB,EAAE,gBAAgB,GAAG,IAAI;IAIrD;;OAEG;IACU,cAAc,CAAC,qBAAqB,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IA+BnF;;OAEG;IACH,OAAO,CAAC,6BAA6B;IA+BrC;;OAEG;IACH,OAAO,CAAC,eAAe;IAgBvB;;OAEG;IACI,iBAAiB,CAAC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,MAAM;IA0BlE;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAiB3B;;OAEG;IACI,aAAa,IAAI,SAAS,EAAE;CAGpC"}
|