bernard-agent 0.3.1 → 0.5.0
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/README.md +109 -38
- package/THIRD-PARTY-NOTICES +212 -0
- package/dist/agent.d.ts +32 -3
- package/dist/agent.js +63 -12
- package/dist/agent.js.map +1 -1
- package/dist/config.d.ts +67 -0
- package/dist/config.js +99 -31
- package/dist/config.js.map +1 -1
- package/dist/context.d.ts +7 -0
- package/dist/context.js +32 -20
- package/dist/context.js.map +1 -1
- package/dist/cron/cli.d.ts +7 -0
- package/dist/cron/cli.js +61 -5
- package/dist/cron/cli.js.map +1 -1
- package/dist/cron/client.d.ts +9 -0
- package/dist/cron/client.js +9 -0
- package/dist/cron/client.js.map +1 -1
- package/dist/cron/daemon.js +12 -1
- package/dist/cron/daemon.js.map +1 -1
- package/dist/cron/log-store.d.ts +18 -0
- package/dist/cron/log-store.js +41 -18
- package/dist/cron/log-store.js.map +1 -1
- package/dist/cron/notify.d.ts +7 -0
- package/dist/cron/notify.js +16 -0
- package/dist/cron/notify.js.map +1 -1
- package/dist/cron/runner.d.ts +11 -0
- package/dist/cron/runner.js +77 -20
- package/dist/cron/runner.js.map +1 -1
- package/dist/cron/scheduler.d.ts +16 -0
- package/dist/cron/scheduler.js +24 -7
- package/dist/cron/scheduler.js.map +1 -1
- package/dist/cron/store.d.ts +32 -0
- package/dist/cron/store.js +64 -27
- package/dist/cron/store.js.map +1 -1
- package/dist/cron/types.d.ts +19 -0
- package/dist/domains.d.ts +15 -0
- package/dist/domains.js +20 -1
- package/dist/domains.js.map +1 -1
- package/dist/embeddings.d.ts +7 -1
- package/dist/embeddings.js +43 -1
- package/dist/embeddings.js.map +1 -1
- package/dist/facts-cli.d.ts +14 -0
- package/dist/facts-cli.js +55 -1
- package/dist/facts-cli.js.map +1 -1
- package/dist/history.d.ts +8 -0
- package/dist/history.js +14 -9
- package/dist/history.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.js +36 -2
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +6 -0
- package/dist/logger.js +6 -0
- package/dist/logger.js.map +1 -1
- package/dist/mcp.d.ts +87 -0
- package/dist/mcp.js +116 -39
- package/dist/mcp.js.map +1 -1
- package/dist/memory-context.d.ts +4 -0
- package/dist/memory-context.js +4 -1
- package/dist/memory-context.js.map +1 -1
- package/dist/memory.d.ts +17 -0
- package/dist/memory.js +24 -10
- package/dist/memory.js.map +1 -1
- package/dist/migrate.d.ts +13 -0
- package/dist/migrate.js +209 -0
- package/dist/migrate.js.map +1 -0
- package/dist/output.d.ts +46 -1
- package/dist/output.js +72 -11
- package/dist/output.js.map +1 -1
- package/dist/paths.d.ts +23 -0
- package/dist/paths.js +82 -0
- package/dist/paths.js.map +1 -0
- package/dist/providers/index.d.ts +7 -0
- package/dist/providers/index.js +7 -0
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/types.d.ts +4 -0
- package/dist/rag-query.d.ts +20 -0
- package/dist/rag-query.js +70 -6
- package/dist/rag-query.js.map +1 -1
- package/dist/rag-worker.js.map +1 -1
- package/dist/rag.d.ts +41 -1
- package/dist/rag.js +125 -21
- package/dist/rag.js.map +1 -1
- package/dist/repl.d.ts +6 -0
- package/dist/repl.js +211 -44
- package/dist/repl.js.map +1 -1
- package/dist/routines.d.ts +49 -0
- package/dist/routines.js +172 -0
- package/dist/routines.js.map +1 -0
- package/dist/setup.d.ts +5 -0
- package/dist/setup.js +8 -2
- package/dist/setup.js.map +1 -1
- package/dist/theme.d.ts +41 -0
- package/dist/theme.js +55 -5
- package/dist/theme.js.map +1 -1
- package/dist/tools/cron-logs.d.ts +6 -0
- package/dist/tools/cron-logs.js +17 -4
- package/dist/tools/cron-logs.js.map +1 -1
- package/dist/tools/cron.d.ts +18 -0
- package/dist/tools/cron.js +67 -11
- package/dist/tools/cron.js.map +1 -1
- package/dist/tools/datetime.d.ts +1 -0
- package/dist/tools/datetime.js +1 -0
- package/dist/tools/datetime.js.map +1 -1
- package/dist/tools/index.d.ts +10 -325
- package/dist/tools/index.js +11 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/mcp-url.d.ts +6 -0
- package/dist/tools/mcp-url.js +6 -0
- package/dist/tools/mcp-url.js.map +1 -1
- package/dist/tools/mcp.d.ts +6 -0
- package/dist/tools/mcp.js +25 -12
- package/dist/tools/mcp.js.map +1 -1
- package/dist/tools/memory.d.ts +14 -0
- package/dist/tools/memory.js +18 -3
- package/dist/tools/memory.js.map +1 -1
- package/dist/tools/routine.d.ts +35 -0
- package/dist/tools/routine.js +93 -0
- package/dist/tools/routine.js.map +1 -0
- package/dist/tools/shell.d.ts +15 -1
- package/dist/tools/shell.js +16 -2
- package/dist/tools/shell.js.map +1 -1
- package/dist/tools/subagent.d.ts +18 -1
- package/dist/tools/subagent.js +27 -7
- package/dist/tools/subagent.js.map +1 -1
- package/dist/tools/time.d.ts +19 -0
- package/dist/tools/time.js +27 -4
- package/dist/tools/time.js.map +1 -1
- package/dist/tools/types.d.ts +6 -0
- package/dist/tools/wait.d.ts +3 -0
- package/dist/tools/wait.js +3 -0
- package/dist/tools/wait.js.map +1 -1
- package/dist/tools/web.d.ts +6 -0
- package/dist/tools/web.js +29 -6
- package/dist/tools/web.js.map +1 -1
- package/dist/update.d.ts +5 -0
- package/dist/update.js +8 -7
- package/dist/update.js.map +1 -1
- package/package.json +11 -2
package/dist/tools/types.d.ts
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
|
+
/** Options shared by all tool implementations. */
|
|
1
2
|
export interface ToolOptions {
|
|
3
|
+
/** Maximum time in milliseconds a shell command may run before being killed. */
|
|
2
4
|
shellTimeout: number;
|
|
5
|
+
/** Callback that prompts the user for confirmation before executing a dangerous command. */
|
|
3
6
|
confirmDangerous: (command: string) => Promise<boolean>;
|
|
4
7
|
}
|
|
8
|
+
/** Outcome of a shell tool invocation. */
|
|
5
9
|
export interface ShellResult {
|
|
10
|
+
/** Combined stdout/stderr output of the command. */
|
|
6
11
|
output: string;
|
|
12
|
+
/** `true` when the command exited with a non-zero status or timed out. */
|
|
7
13
|
is_error: boolean;
|
|
8
14
|
}
|
package/dist/tools/wait.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
/** Upper bound for the wait tool's delay (5 minutes). */
|
|
2
3
|
export declare const MAX_WAIT_SECONDS = 300;
|
|
4
|
+
/** Lower bound for the wait tool's delay. */
|
|
3
5
|
export declare const MIN_WAIT_SECONDS = 0.1;
|
|
6
|
+
/** Creates a tool that pauses execution for a specified number of seconds. */
|
|
4
7
|
export declare function createWaitTool(): import("ai").Tool<z.ZodObject<{
|
|
5
8
|
seconds: z.ZodNumber;
|
|
6
9
|
}, "strip", z.ZodTypeAny, {
|
package/dist/tools/wait.js
CHANGED
|
@@ -4,8 +4,11 @@ exports.MIN_WAIT_SECONDS = exports.MAX_WAIT_SECONDS = void 0;
|
|
|
4
4
|
exports.createWaitTool = createWaitTool;
|
|
5
5
|
const ai_1 = require("ai");
|
|
6
6
|
const zod_1 = require("zod");
|
|
7
|
+
/** Upper bound for the wait tool's delay (5 minutes). */
|
|
7
8
|
exports.MAX_WAIT_SECONDS = 300;
|
|
9
|
+
/** Lower bound for the wait tool's delay. */
|
|
8
10
|
exports.MIN_WAIT_SECONDS = 0.1;
|
|
11
|
+
/** Creates a tool that pauses execution for a specified number of seconds. */
|
|
9
12
|
function createWaitTool() {
|
|
10
13
|
return (0, ai_1.tool)({
|
|
11
14
|
description: 'Pause execution for a specified number of seconds. ' +
|
package/dist/tools/wait.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wait.js","sourceRoot":"","sources":["../../src/tools/wait.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"wait.js","sourceRoot":"","sources":["../../src/tools/wait.ts"],"names":[],"mappings":";;;AASA,wCAmBC;AA5BD,2BAA0B;AAC1B,6BAAwB;AAExB,yDAAyD;AAC5C,QAAA,gBAAgB,GAAG,GAAG,CAAC;AACpC,6CAA6C;AAChC,QAAA,gBAAgB,GAAG,GAAG,CAAC;AAEpC,8EAA8E;AAC9E,SAAgB,cAAc;IAC5B,OAAO,IAAA,SAAI,EAAC;QACV,WAAW,EACT,qDAAqD;YACrD,2DAA2D;YAC3D,qDAAqD;YACrD,QAAQ,wBAAgB,WAAW,wBAAgB,IAAI;QACzD,UAAU,EAAE,OAAC,CAAC,MAAM,CAAC;YACnB,OAAO,EAAE,OAAC;iBACP,MAAM,EAAE;iBACR,GAAG,CAAC,wBAAgB,CAAC;iBACrB,GAAG,CAAC,wBAAgB,CAAC;iBACrB,QAAQ,CAAC,qCAAqC,CAAC;SACnD,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAmB,EAAE;YAC9C,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;YACpE,OAAO,UAAU,OAAO,UAAU,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAChE,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
package/dist/tools/web.d.ts
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Creates the web-read tool that fetches a URL and converts its HTML to markdown.
|
|
4
|
+
*
|
|
5
|
+
* Non-content elements (nav, footer, scripts, etc.) are stripped before conversion.
|
|
6
|
+
* Output is truncated to {@link MAX_OUTPUT_CHARS} characters.
|
|
7
|
+
*/
|
|
2
8
|
export declare function createWebReadTool(): import("ai").Tool<z.ZodObject<{
|
|
3
9
|
url: z.ZodString;
|
|
4
10
|
selector: z.ZodOptional<z.ZodString>;
|
package/dist/tools/web.js
CHANGED
|
@@ -41,21 +41,42 @@ const ai_1 = require("ai");
|
|
|
41
41
|
const zod_1 = require("zod");
|
|
42
42
|
const cheerio = __importStar(require("cheerio"));
|
|
43
43
|
const turndown_1 = __importDefault(require("turndown"));
|
|
44
|
+
/** CSS selectors for elements stripped before HTML-to-markdown conversion. */
|
|
44
45
|
const STRIP_SELECTORS = [
|
|
45
|
-
'script',
|
|
46
|
-
'
|
|
46
|
+
'script',
|
|
47
|
+
'style',
|
|
48
|
+
'nav',
|
|
49
|
+
'footer',
|
|
50
|
+
'header',
|
|
51
|
+
'iframe',
|
|
52
|
+
'noscript',
|
|
53
|
+
'svg',
|
|
54
|
+
'[role="navigation"]',
|
|
55
|
+
'[role="banner"]',
|
|
47
56
|
'[aria-hidden="true"]',
|
|
48
57
|
];
|
|
49
|
-
|
|
58
|
+
/** Maximum raw HTML size accepted before truncation (1 MB). */
|
|
59
|
+
const MAX_HTML_BYTES = 1_000_000;
|
|
60
|
+
/** Maximum character length of the returned markdown output. */
|
|
50
61
|
const MAX_OUTPUT_CHARS = 20_000;
|
|
62
|
+
/** HTTP fetch timeout in milliseconds. */
|
|
51
63
|
const FETCH_TIMEOUT_MS = 15_000;
|
|
52
64
|
const USER_AGENT = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36';
|
|
65
|
+
/**
|
|
66
|
+
* Creates the web-read tool that fetches a URL and converts its HTML to markdown.
|
|
67
|
+
*
|
|
68
|
+
* Non-content elements (nav, footer, scripts, etc.) are stripped before conversion.
|
|
69
|
+
* Output is truncated to {@link MAX_OUTPUT_CHARS} characters.
|
|
70
|
+
*/
|
|
53
71
|
function createWebReadTool() {
|
|
54
72
|
return (0, ai_1.tool)({
|
|
55
73
|
description: 'Fetch a web page by URL and return its content as markdown. Useful for reading documentation, articles, Stack Overflow answers, GitHub pages, or any URL.',
|
|
56
74
|
parameters: zod_1.z.object({
|
|
57
75
|
url: zod_1.z.string().describe('The URL to fetch (must start with http:// or https://)'),
|
|
58
|
-
selector: zod_1.z
|
|
76
|
+
selector: zod_1.z
|
|
77
|
+
.string()
|
|
78
|
+
.optional()
|
|
79
|
+
.describe('Optional CSS selector to extract specific content (e.g., "article", "main", ".post-body")'),
|
|
59
80
|
}),
|
|
60
81
|
execute: async ({ url, selector }) => {
|
|
61
82
|
// Validate URL
|
|
@@ -68,7 +89,7 @@ function createWebReadTool() {
|
|
|
68
89
|
signal: AbortSignal.timeout(FETCH_TIMEOUT_MS),
|
|
69
90
|
headers: {
|
|
70
91
|
'User-Agent': USER_AGENT,
|
|
71
|
-
|
|
92
|
+
Accept: 'text/html',
|
|
72
93
|
},
|
|
73
94
|
});
|
|
74
95
|
}
|
|
@@ -80,7 +101,9 @@ function createWebReadTool() {
|
|
|
80
101
|
return `Error: HTTP ${response.status} ${response.statusText}`;
|
|
81
102
|
}
|
|
82
103
|
const contentType = response.headers.get('content-type') || '';
|
|
83
|
-
if (!contentType.includes('text/html') &&
|
|
104
|
+
if (!contentType.includes('text/html') &&
|
|
105
|
+
!contentType.includes('text/plain') &&
|
|
106
|
+
!contentType.includes('application/xhtml')) {
|
|
84
107
|
return `Error: Non-HTML content type (${contentType}). This tool only reads web pages.`;
|
|
85
108
|
}
|
|
86
109
|
let html;
|
package/dist/tools/web.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/tools/web.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/tools/web.ts"],"names":[],"mappings":"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"}
|
package/dist/update.d.ts
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
|
+
/** Result of comparing local and registry versions. */
|
|
1
2
|
interface UpdateCheckResult {
|
|
3
|
+
/** `true` when the registry version is newer than the installed version. */
|
|
2
4
|
updateAvailable: boolean;
|
|
5
|
+
/** Currently installed semver string. */
|
|
3
6
|
currentVersion: string;
|
|
7
|
+
/** Latest semver string from the npm registry. */
|
|
4
8
|
latestVersion: string;
|
|
9
|
+
/** `true` if the result was served from the local 24-hour cache. */
|
|
5
10
|
cached: boolean;
|
|
6
11
|
}
|
|
7
12
|
/**
|
package/dist/update.js
CHANGED
|
@@ -42,12 +42,11 @@ exports.startupUpdateCheck = startupUpdateCheck;
|
|
|
42
42
|
exports.interactiveUpdate = interactiveUpdate;
|
|
43
43
|
const https = __importStar(require("node:https"));
|
|
44
44
|
const path = __importStar(require("node:path"));
|
|
45
|
-
const os = __importStar(require("node:os"));
|
|
46
45
|
const fs = __importStar(require("node:fs"));
|
|
47
46
|
const node_child_process_1 = require("node:child_process");
|
|
48
47
|
const output_js_1 = require("./output.js");
|
|
48
|
+
const paths_js_1 = require("./paths.js");
|
|
49
49
|
const SEMVER_RE = /^\d+\.\d+\.\d+$/;
|
|
50
|
-
const CACHE_PATH = path.join(os.homedir(), '.bernard', 'update-check.json');
|
|
51
50
|
const CACHE_TTL_MS = 24 * 60 * 60 * 1000; // 24 hours
|
|
52
51
|
const PACKAGE_NAME = 'bernard-agent';
|
|
53
52
|
/**
|
|
@@ -119,11 +118,13 @@ function fetchLatestVersion() {
|
|
|
119
118
|
}
|
|
120
119
|
function readCache() {
|
|
121
120
|
try {
|
|
122
|
-
const raw = fs.readFileSync(
|
|
121
|
+
const raw = fs.readFileSync(paths_js_1.UPDATE_CACHE_PATH, 'utf-8');
|
|
123
122
|
const parsed = JSON.parse(raw);
|
|
124
123
|
if (typeof parsed.lastCheck === 'string' &&
|
|
125
|
-
typeof parsed.latestVersion === 'string' &&
|
|
126
|
-
|
|
124
|
+
typeof parsed.latestVersion === 'string' &&
|
|
125
|
+
SEMVER_RE.test(parsed.latestVersion) &&
|
|
126
|
+
typeof parsed.currentVersion === 'string' &&
|
|
127
|
+
SEMVER_RE.test(parsed.currentVersion)) {
|
|
127
128
|
return parsed;
|
|
128
129
|
}
|
|
129
130
|
return null;
|
|
@@ -133,11 +134,11 @@ function readCache() {
|
|
|
133
134
|
}
|
|
134
135
|
}
|
|
135
136
|
function writeCache(data) {
|
|
136
|
-
const dir = path.dirname(
|
|
137
|
+
const dir = path.dirname(paths_js_1.UPDATE_CACHE_PATH);
|
|
137
138
|
if (!fs.existsSync(dir)) {
|
|
138
139
|
fs.mkdirSync(dir, { recursive: true });
|
|
139
140
|
}
|
|
140
|
-
fs.writeFileSync(
|
|
141
|
+
fs.writeFileSync(paths_js_1.UPDATE_CACHE_PATH, JSON.stringify(data, null, 2) + '\n');
|
|
141
142
|
}
|
|
142
143
|
function isCacheFresh(cache) {
|
|
143
144
|
const age = Date.now() - new Date(cache.lastCheck).getTime();
|
package/dist/update.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCA,sCAQC;AAKD,0CAQC;AAKD,gDAuCC;AAqCD,wCA6BC;AAKD,kCAKC;AAKD,gDAuBC;AAKD,8CAsBC;AAxOD,kDAAoC;AACpC,gDAAkC;AAClC,4CAA8B;AAC9B,2DAA8C;AAC9C,2CAAoD;AACpD,yCAA6D;AAE7D,MAAM,SAAS,GAAG,iBAAiB,CAAC;AACpC,MAAM,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW;AACrD,MAAM,YAAY,GAAG,eAAe,CAAC;AAwBrC;;GAEG;AACH,SAAgB,aAAa,CAAC,CAAS,EAAE,CAAS;IAChD,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACzC,IAAI,IAAI,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;IAC9B,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe;IAC7B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1D,OAAO,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB;IAChC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CACnB,8BAA8B,YAAY,SAAS,EACnD,EAAE,OAAO,EAAE,IAAI,EAAE,EACjB,CAAC,GAAG,EAAE,EAAE;YACN,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;gBAC3B,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;gBAChE,OAAO;YACT,CAAC;YACD,MAAM,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM;YAC7C,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;gBAC/B,IAAI,IAAI,KAAK,CAAC;gBACd,IAAI,IAAI,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;oBACpC,GAAG,CAAC,OAAO,EAAE,CAAC;oBACd,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACjB,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAChC,IAAI,MAAM,CAAC,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;wBACrD,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBAC1B,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC,CAAC;oBACnE,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,GAAG,CAAC,CAAC;gBACd,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CACF,CAAC;QACF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxB,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACrB,GAAG,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,SAAS;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,4BAAU,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IACE,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;YACpC,OAAO,MAAM,CAAC,aAAa,KAAK,QAAQ;YACxC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;YACpC,OAAO,MAAM,CAAC,cAAc,KAAK,QAAQ;YACzC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EACrC,CAAC;YACD,OAAO,MAAmB,CAAC;QAC7B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,IAAe;IACjC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,4BAAU,CAAC,CAAC;IACrC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,EAAE,CAAC,aAAa,CAAC,4BAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,YAAY,CAAC,KAAgB;IACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;IAC7D,OAAO,GAAG,GAAG,YAAY,CAAC;AAC5B,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,cAAc,CAAC,UAAU,GAAG,KAAK;IACrD,MAAM,cAAc,GAAG,eAAe,EAAE,CAAC;IAEzC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;QAC1B,IAAI,KAAK,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO;gBACL,eAAe,EAAE,aAAa,CAAC,KAAK,CAAC,aAAa,EAAE,cAAc,CAAC,GAAG,CAAC;gBACvE,cAAc;gBACd,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,MAAM,EAAE,IAAI;aACb,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,kBAAkB,EAAE,CAAC;IAEjD,UAAU,CAAC;QACT,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,aAAa;QACb,cAAc;KACf,CAAC,CAAC;IAEH,OAAO;QACL,eAAe,EAAE,aAAa,CAAC,aAAa,EAAE,cAAc,CAAC,GAAG,CAAC;QACjE,cAAc;QACd,aAAa;QACb,MAAM,EAAE,KAAK;KACd,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,OAAe;IACzC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,IAAA,6BAAQ,EAAC,kBAAkB,YAAY,IAAI,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,UAAmB;IACpD,cAAc,EAAE;SACb,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QACf,IAAI,CAAC,MAAM,CAAC,eAAe;YAAE,OAAO;QAEpC,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,IAAA,qBAAS,EAAC,2BAA2B,MAAM,CAAC,aAAa,KAAK,CAAC,CAAC;gBAChE,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;gBAClC,IAAA,qBAAS,EACP,yBAAyB,MAAM,CAAC,aAAa,qCAAqC,CACnF,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,IAAA,qBAAS,EAAC,kBAAkB,MAAM,CAAC,aAAa,gCAAgC,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAA,qBAAS,EAAC,0BAA0B,MAAM,CAAC,cAAc,OAAO,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;YACxF,IAAA,qBAAS,EAAC,yBAAyB,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,CAAC;SACD,KAAK,CAAC,GAAG,EAAE;QACV,+BAA+B;IACjC,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,iBAAiB;IACrC,IAAA,qBAAS,EAAC,6BAA6B,CAAC,CAAC;IAEzC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;QAE1C,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YAC5B,IAAA,qBAAS,EAAC,oCAAoC,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC;YACzE,IAAA,qBAAS,EAAC,oEAAoE,CAAC,CAAC;YAChF,OAAO;QACT,CAAC;QAED,IAAA,qBAAS,EAAC,wBAAwB,MAAM,CAAC,cAAc,OAAO,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;QACtF,IAAA,qBAAS,EAAC,mBAAmB,CAAC,CAAC;QAE/B,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAElC,IAAA,qBAAS,EAAC,mBAAmB,MAAM,CAAC,aAAa,6CAA6C,CAAC,CAAC;IAClG,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,IAAA,sBAAU,EAAC,oBAAoB,OAAO,IAAI,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bernard-agent",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Local CLI AI agent with multi-provider support",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -12,6 +12,10 @@
|
|
|
12
12
|
"start": "node dist/index.js",
|
|
13
13
|
"test": "vitest run",
|
|
14
14
|
"test:watch": "vitest",
|
|
15
|
+
"lint": "eslint src/",
|
|
16
|
+
"lint:fix": "eslint src/ --fix",
|
|
17
|
+
"format": "prettier --write \"src/**/*.{ts,md}\" \"docs/**/*.{html,css,md}\" \"*.md\"",
|
|
18
|
+
"format:check": "prettier --check \"src/**/*.{ts,md}\" \"docs/**/*.{html,css,md}\" \"*.md\"",
|
|
15
19
|
"prepublishOnly": "npm run build"
|
|
16
20
|
},
|
|
17
21
|
"repository": {
|
|
@@ -37,12 +41,13 @@
|
|
|
37
41
|
"ai-sdk"
|
|
38
42
|
],
|
|
39
43
|
"engines": {
|
|
40
|
-
"node": ">=20.
|
|
44
|
+
"node": ">=20.9.0"
|
|
41
45
|
},
|
|
42
46
|
"files": [
|
|
43
47
|
"dist",
|
|
44
48
|
"README.md",
|
|
45
49
|
"LICENSE",
|
|
50
|
+
"THIRD-PARTY-NOTICES",
|
|
46
51
|
".env.example"
|
|
47
52
|
],
|
|
48
53
|
"dependencies": {
|
|
@@ -66,8 +71,12 @@
|
|
|
66
71
|
"@types/node-cron": "^3.0.11",
|
|
67
72
|
"@types/node-notifier": "^8.0.5",
|
|
68
73
|
"@types/turndown": "^5.0.6",
|
|
74
|
+
"eslint": "^9.39.2",
|
|
75
|
+
"eslint-config-prettier": "^10.1.8",
|
|
76
|
+
"prettier": "^3.8.1",
|
|
69
77
|
"tsx": "^4.19.0",
|
|
70
78
|
"typescript": "^5.7.0",
|
|
79
|
+
"typescript-eslint": "^8.56.0",
|
|
71
80
|
"vitest": "^1.6.1"
|
|
72
81
|
}
|
|
73
82
|
}
|