@schlessera/brain-ui-server 0.32.0 → 0.33.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.
- package/README.md +59 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +2 -1
- package/dist/app.js.map +1 -1
- package/dist/bin/brain-ui-cron.d.ts +4 -0
- package/dist/bin/brain-ui-cron.d.ts.map +1 -0
- package/dist/bin/brain-ui-cron.js +140 -0
- package/dist/bin/brain-ui-cron.js.map +1 -0
- package/dist/brain/client.d.ts +9 -0
- package/dist/brain/client.d.ts.map +1 -1
- package/dist/brain/client.js +81 -4
- package/dist/brain/client.js.map +1 -1
- package/dist/config/env.d.ts +24 -5
- package/dist/config/env.d.ts.map +1 -1
- package/dist/config/env.js +44 -9
- package/dist/config/env.js.map +1 -1
- package/dist/cron/digest.d.ts +19 -0
- package/dist/cron/digest.d.ts.map +1 -0
- package/dist/cron/digest.js +26 -0
- package/dist/cron/digest.js.map +1 -0
- package/dist/cron/emit.d.ts +68 -0
- package/dist/cron/emit.d.ts.map +1 -0
- package/dist/cron/emit.js +171 -0
- package/dist/cron/emit.js.map +1 -0
- package/dist/cron/run-job.d.ts +48 -0
- package/dist/cron/run-job.d.ts.map +1 -0
- package/dist/cron/run-job.js +172 -0
- package/dist/cron/run-job.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/middleware/origin.d.ts.map +1 -1
- package/dist/middleware/origin.js +22 -1
- package/dist/middleware/origin.js.map +1 -1
- package/dist/routes/brain.js +2 -2
- package/dist/routes/brain.js.map +1 -1
- package/package.json +6 -3
- package/src/app.ts +2 -1
- package/src/bin/brain-ui-cron.ts +178 -0
- package/src/brain/client.ts +96 -4
- package/src/config/env.ts +87 -8
- package/src/cron/digest.ts +45 -0
- package/src/cron/emit.ts +262 -0
- package/src/cron/run-job.ts +254 -0
- package/src/index.ts +5 -1
- package/src/middleware/origin.ts +21 -1
- package/src/routes/brain.ts +2 -2
package/README.md
CHANGED
|
@@ -75,6 +75,63 @@ process. The returned handle carries `config`, `db`, `wsHost`,
|
|
|
75
75
|
`isTurnActive()`, `cancelActiveTurns()` and `close()` for the deployment
|
|
76
76
|
shell's lifecycle wiring.
|
|
77
77
|
|
|
78
|
+
## Cron bin
|
|
79
|
+
|
|
80
|
+
The package ships the Bun-only `brain-ui-cron` executable for the container
|
|
81
|
+
crontab. The deployment shell calls this bin instead of carrying loose cron
|
|
82
|
+
scripts:
|
|
83
|
+
|
|
84
|
+
```sh
|
|
85
|
+
brain-ui-cron run <job-name> -- <command...>
|
|
86
|
+
brain-ui-cron digest
|
|
87
|
+
brain-ui-cron crontab \
|
|
88
|
+
[--wrapper-command <command>] \
|
|
89
|
+
[--digest-command <command>] \
|
|
90
|
+
[--path-line <line>] \
|
|
91
|
+
[--user <user>]
|
|
92
|
+
brain-ui-cron environment
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
`run` spawns the command directly as argv (never through a shell), tees stdout
|
|
96
|
+
and stderr unchanged, records the run in `cron_runs` and the activity store,
|
|
97
|
+
and returns the command's exit code. Database tracking is fail-open: an
|
|
98
|
+
unavailable UI database produces a warning but does not suppress the job.
|
|
99
|
+
|
|
100
|
+
`digest` generates and persists the daily activity digest. Unlike run
|
|
101
|
+
tracking, digest generation fails loud with a non-zero exit because a stalled
|
|
102
|
+
covered-until marker would block normal activity-detail retention.
|
|
103
|
+
|
|
104
|
+
`crontab` writes a complete system crontab to stdout. It runs `brain module
|
|
105
|
+
list --json` from `BRAIN_PATH` (default `/data/brain`), re-validates every
|
|
106
|
+
module cron field before placing it in a system crontab line, and keeps the
|
|
107
|
+
legacy `scripts/jobs/scrape-all.ts` fallback when that file exists and no
|
|
108
|
+
enabled module exposes the `jobs` command. Its deployment parameters default
|
|
109
|
+
to the historical shell values:
|
|
110
|
+
|
|
111
|
+
| Flag | Default |
|
|
112
|
+
| --- | --- |
|
|
113
|
+
| `--wrapper-command` | `bun /opt/brain-ui/server/scripts/cron-run.ts` |
|
|
114
|
+
| `--digest-command` | `bun /opt/brain-ui/server/scripts/brain-digest.ts` |
|
|
115
|
+
| `--path-line` | `PATH=/root/.local/bin:/root/.bun/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin` |
|
|
116
|
+
| `--user` | `root` |
|
|
117
|
+
|
|
118
|
+
For the packaged-bin cutover, pass the bin by absolute path because each job
|
|
119
|
+
first changes directory to `/data/brain`, whose own `node_modules` must not
|
|
120
|
+
decide which executable runs:
|
|
121
|
+
|
|
122
|
+
```sh
|
|
123
|
+
brain-ui-cron crontab \
|
|
124
|
+
--wrapper-command "/opt/brain-ui/server/node_modules/.bin/brain-ui-cron run" \
|
|
125
|
+
--digest-command "/opt/brain-ui/server/node_modules/.bin/brain-ui-cron digest" \
|
|
126
|
+
--user root
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
`environment` writes `/etc/environment` content to stdout. Its fixed-order
|
|
130
|
+
allowlist comes from the SDK's `SUBPROCESS_ENV` `cron` audience. `NODE_ENV` is
|
|
131
|
+
the one explicit compatibility exclusion: scheduled jobs historically did not
|
|
132
|
+
receive it, so adding it would change Bun's `.env.<mode>` selection in the
|
|
133
|
+
brain repository.
|
|
134
|
+
|
|
78
135
|
## What it owns
|
|
79
136
|
|
|
80
137
|
- **`createApp(options)`** — route mounting order, CORS (split topology via
|
|
@@ -128,6 +185,7 @@ Every variable this package reads, and what happens when it is unset.
|
|
|
128
185
|
| `BRAIN_UI_PRICING_DISCOVERY` | Remote model-pricing refresh (LiteLLM + OpenRouter catalogs); "0"/"off"/"false" disables, and runs then roll up with unknown effective cost. Defaults ON, except under a test runner (NODE_ENV=test) where it defaults OFF. | on (off under NODE_ENV=test) |
|
|
129
186
|
| `BRAIN_UI_PRICING_TTL_HOURS` | How long a fetched model-pricing table stays fresh, in hours. | 24 |
|
|
130
187
|
| `BRAIN_UI_SKILLS_GITHUB_TOKEN` | GitHub token used when installing skills from a private repository (Settings → Skills) — typically read-only Contents on the skill repos. Falls back to GITHUB_TOKEN. | $GITHUB_TOKEN |
|
|
188
|
+
| `BRAIN_UI_SUBPROCESS_ENV_EXTRA` | Comma-separated environment variable names to admit to every child audience when an operator integration needs a variable outside the shipped allowlist. Names are trimmed; malformed entries are ignored; the control variable itself is never forwarded. | (empty) |
|
|
131
189
|
| `BRAIN_UI_TURN_TIMEOUT_MS` | Hard per-turn timeout in ms; the host aborts a turn that runs past it. Raise for agent-heavy research work (e.g. 1800000 for 30 minutes). | 600000 (10 minutes) |
|
|
132
190
|
| `BRAIN_UI_WS_BURST` | Inbound WebSocket frames absorbable in one burst before the sustained rate applies. Opening the app legitimately fires several at once. | 60 |
|
|
133
191
|
| `BRAIN_UI_WS_MAX_CONNECTIONS` | Maximum number of WebSocket connections accepted by one server process. | 32 |
|
|
@@ -135,7 +193,7 @@ Every variable this package reads, and what happens when it is unset.
|
|
|
135
193
|
| `CLAUDE_CODE_OAUTH_TOKEN` | Consulted for PRESENCE only, to classify billing: with it set and no ANTHROPIC_API_KEY, ambient-credential Claude profiles (the built-in default and discovered models) count as subscription-billed. The token itself is consumed by the Claude backend / Agent SDK, not this package. | — |
|
|
136
194
|
| `CLAUDE_CODE_PATH` | Path to the Claude Code native binary handed to the Agent SDK. | /usr/local/bin/claude |
|
|
137
195
|
| `COOKIE_SECRET` | Secret signing the session cookie. | **required** — AUTH_MODE=password |
|
|
138
|
-
| `DB_PATH` | SQLite file for the UI's own database (sessions, passkeys, settings). | ./brain-ui.db |
|
|
196
|
+
| `DB_PATH` | SQLite file for the UI's own database (sessions, passkeys, settings). The server factory defaults to ./brain-ui.db; brain-ui-cron defaults to the container path /data/db/brain-ui.db. | ./brain-ui.db (server); /data/db/brain-ui.db (brain-ui-cron) |
|
|
139
197
|
| `DEEPGRAM_API_KEY` | Deepgram API key for streaming ASR (short-lived tokens are minted from it). | **required** — VOICE_PROVIDER=deepgram (or any voice use without VOICE_PROVIDER=webspeech) |
|
|
140
198
|
| `GITHUB_TOKEN` | Generic GitHub token fallback. Used for skill installs when BRAIN_UI_SKILLS_GITHUB_TOKEN is unset; the deployment shell also falls back to it (from BRAIN_UI_SYNC_GITHUB_TOKEN) for brain-repo git pushes and gh-based jobs. | — |
|
|
141
199
|
| `HOME` | Fallback anchor for the BRAIN_PATH default and the pi config dir (~/.pi). | /root |
|
package/dist/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAI3C,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAQzE,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAQ1E,OAAO,EAML,KAAK,QAAQ,EAEd,MAAM,sBAAsB,CAAC;AAqB9B,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAmB,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGhE,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGnF,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B,MAAM,WAAW,gBAAgB;IAC/B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,mDAAmD;IACnD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,2DAA2D;AAC3D,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACrB,SAAS,EAAE,OAAO,SAAS,CAAC;IAC5B,sEAAsE;IACtE,MAAM,EAAE,YAAY,CAAC;IACrB;;;;OAIG;IACH,QAAQ,EAAE,QAAQ,CAAC;IACnB,kEAAkE;IAClE,EAAE,EAAE,QAAQ,CAAC;IACb,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,aAAa,EAAE,aAAa,CAAC;IAC7B,iDAAiD;IACjD,YAAY,IAAI,OAAO,CAAC;IACxB,6EAA6E;IAC7E,iBAAiB,IAAI,OAAO,CAAC;IAC7B,0DAA0D;IAC1D,KAAK,IAAI,IAAI,CAAC;CACf;AAeD,wBAAgB,SAAS,CAAC,OAAO,GAAE,gBAAqB,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAI3C,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAQzE,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAQ1E,OAAO,EAML,KAAK,QAAQ,EAEd,MAAM,sBAAsB,CAAC;AAqB9B,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAmB,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGhE,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGnF,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B,MAAM,WAAW,gBAAgB;IAC/B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,mDAAmD;IACnD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,2DAA2D;AAC3D,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACrB,SAAS,EAAE,OAAO,SAAS,CAAC;IAC5B,sEAAsE;IACtE,MAAM,EAAE,YAAY,CAAC;IACrB;;;;OAIG;IACH,QAAQ,EAAE,QAAQ,CAAC;IACnB,kEAAkE;IAClE,EAAE,EAAE,QAAQ,CAAC;IACb,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,aAAa,EAAE,aAAa,CAAC;IAC7B,iDAAiD;IACjD,YAAY,IAAI,OAAO,CAAC;IACxB,6EAA6E;IAC7E,iBAAiB,IAAI,OAAO,CAAC;IAC7B,0DAA0D;IAC1D,KAAK,IAAI,IAAI,CAAC;CACf;AAeD,wBAAgB,SAAS,CAAC,OAAO,GAAE,gBAAqB,GAAG,UAAU,CAiUpE"}
|
package/dist/app.js
CHANGED
|
@@ -26,7 +26,7 @@ import { createActivityRuntime } from "./activity/runtime.js";
|
|
|
26
26
|
import { createModelPricing } from "./pricing/model-pricing.js";
|
|
27
27
|
import { createPushRoutes } from "./routes/push.js";
|
|
28
28
|
import { assertBackendResolvable, createBackendRegistry, } from "./agent/backend.js";
|
|
29
|
-
import { createBrainClient } from "./brain/client.js";
|
|
29
|
+
import { createBrainClient, probeBrainCliVersion } from "./brain/client.js";
|
|
30
30
|
import { createCronScheduler } from "./cron/scheduler.js";
|
|
31
31
|
import { WsHost } from "./ws/host.js";
|
|
32
32
|
import { createWsUpgrade, websocket } from "./ws/connection.js";
|
|
@@ -73,6 +73,7 @@ export function createApp(options = {}) {
|
|
|
73
73
|
// Per-instance state: the app's own database, the brain CLI wrapper, the
|
|
74
74
|
// backend registry, and the WebSocket host. No module-level singletons —
|
|
75
75
|
// two apps with different configuration coexist in one process.
|
|
76
|
+
probeBrainCliVersion(config.brainPath, observability.logger("brain"));
|
|
76
77
|
const dbLog = observability.logger("db");
|
|
77
78
|
const db = createUiDb(config.dbPath, { log: dbLog });
|
|
78
79
|
const brain = createBrainClient({ brainPath: config.brainPath });
|
package/dist/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
/** Thin argv dispatcher for the ui-server's container cron jobs. */
|
|
3
|
+
export declare const USAGE = "usage: brain-ui-cron run [--subprocess-env-extra <names>] <job-name> -- <command...>\n brain-ui-cron digest\n brain-ui-cron crontab [--wrapper-command <command>] [--digest-command <command>] [--path-line <line>] [--user <user>]\n brain-ui-cron environment";
|
|
4
|
+
//# sourceMappingURL=brain-ui-cron.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brain-ui-cron.d.ts","sourceRoot":"","sources":["../../src/bin/brain-ui-cron.ts"],"names":[],"mappings":";AACA,oEAAoE;AA4BpE,eAAO,MAAM,KAAK,sRAGe,CAAC"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
/** Thin argv dispatcher for the ui-server's container cron jobs. */
|
|
3
|
+
import { statSync } from "fs";
|
|
4
|
+
import { join } from "path";
|
|
5
|
+
import { resolveCronConfig } from "../config/env.js";
|
|
6
|
+
import { runDigest } from "../cron/digest.js";
|
|
7
|
+
import { emitCrontab, emitEnvironment, } from "../cron/emit.js";
|
|
8
|
+
import { runJob } from "../cron/run-job.js";
|
|
9
|
+
/**
|
|
10
|
+
* The bash this replaced tested `[ -f … ]`, which is true only for a regular
|
|
11
|
+
* file (following symlinks). `existsSync` would also accept a directory, and a
|
|
12
|
+
* directory at that path would put a root cron line in the crontab that the
|
|
13
|
+
* shell has always skipped.
|
|
14
|
+
*/
|
|
15
|
+
function isRegularFile(path) {
|
|
16
|
+
try {
|
|
17
|
+
return statSync(path).isFile();
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export const USAGE = `usage: brain-ui-cron run [--subprocess-env-extra <names>] <job-name> -- <command...>
|
|
24
|
+
brain-ui-cron digest
|
|
25
|
+
brain-ui-cron crontab [--wrapper-command <command>] [--digest-command <command>] [--path-line <line>] [--user <user>]
|
|
26
|
+
brain-ui-cron environment`;
|
|
27
|
+
const DEFAULT_WRAPPER_COMMAND = "bun /opt/brain-ui/server/scripts/cron-run.ts";
|
|
28
|
+
const DEFAULT_DIGEST_COMMAND = "bun /opt/brain-ui/server/scripts/brain-digest.ts";
|
|
29
|
+
const DEFAULT_PATH_LINE = "PATH=/root/.local/bin:/root/.bun/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin";
|
|
30
|
+
const DEFAULT_USER = "root";
|
|
31
|
+
function usage() {
|
|
32
|
+
process.stderr.write(`${USAGE}\n`);
|
|
33
|
+
process.exit(2);
|
|
34
|
+
}
|
|
35
|
+
function crontabOptions(args) {
|
|
36
|
+
const values = new Map();
|
|
37
|
+
const accepted = new Set([
|
|
38
|
+
"--wrapper-command",
|
|
39
|
+
"--digest-command",
|
|
40
|
+
"--path-line",
|
|
41
|
+
"--user",
|
|
42
|
+
]);
|
|
43
|
+
for (let i = 0; i < args.length; i += 2) {
|
|
44
|
+
const flag = args[i];
|
|
45
|
+
const value = args[i + 1];
|
|
46
|
+
if (!accepted.has(flag) || value === undefined || value === "" || value.startsWith("--")) {
|
|
47
|
+
usage();
|
|
48
|
+
}
|
|
49
|
+
values.set(flag, value);
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
wrapperCommand: values.get("--wrapper-command") ?? DEFAULT_WRAPPER_COMMAND,
|
|
53
|
+
digestCommand: values.get("--digest-command") ?? DEFAULT_DIGEST_COMMAND,
|
|
54
|
+
pathLine: values.get("--path-line") ?? DEFAULT_PATH_LINE,
|
|
55
|
+
user: values.get("--user") ?? DEFAULT_USER,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
function runOptions(args) {
|
|
59
|
+
let remaining = args;
|
|
60
|
+
let subprocessEnvExtraNames = [];
|
|
61
|
+
if (remaining[0] === "--subprocess-env-extra") {
|
|
62
|
+
const value = remaining[1];
|
|
63
|
+
if (value === undefined || value === "")
|
|
64
|
+
usage();
|
|
65
|
+
subprocessEnvExtraNames = value.split(",");
|
|
66
|
+
remaining = remaining.slice(2);
|
|
67
|
+
}
|
|
68
|
+
const [jobName, separator, ...command] = remaining;
|
|
69
|
+
if (!jobName || separator !== "--" || command.length === 0)
|
|
70
|
+
usage();
|
|
71
|
+
return { jobName, command, subprocessEnvExtraNames };
|
|
72
|
+
}
|
|
73
|
+
async function readModuleList(brainPath, env) {
|
|
74
|
+
try {
|
|
75
|
+
const proc = Bun.spawn(["brain", "module", "list", "--json"], {
|
|
76
|
+
cwd: brainPath,
|
|
77
|
+
env,
|
|
78
|
+
stdout: "pipe",
|
|
79
|
+
stderr: "ignore",
|
|
80
|
+
});
|
|
81
|
+
const [exitCode, stdout] = await Promise.all([
|
|
82
|
+
proc.exited,
|
|
83
|
+
new Response(proc.stdout).text(),
|
|
84
|
+
]);
|
|
85
|
+
if (exitCode !== 0 || stdout.trim() === "")
|
|
86
|
+
return null;
|
|
87
|
+
const parsed = JSON.parse(stdout);
|
|
88
|
+
if (!parsed ||
|
|
89
|
+
typeof parsed !== "object" ||
|
|
90
|
+
!Array.isArray(parsed.enabled) ||
|
|
91
|
+
!Array.isArray(parsed.available)) {
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
return parsed;
|
|
95
|
+
}
|
|
96
|
+
catch {
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
const [subcommand, ...args] = process.argv.slice(2);
|
|
101
|
+
if (subcommand === "run") {
|
|
102
|
+
const { jobName, command, subprocessEnvExtraNames } = runOptions(args);
|
|
103
|
+
const config = resolveCronConfig(undefined, subprocessEnvExtraNames);
|
|
104
|
+
process.exit(await runJob({
|
|
105
|
+
jobName,
|
|
106
|
+
command,
|
|
107
|
+
dbPath: config.dbPath,
|
|
108
|
+
childEnv: config.childEnv,
|
|
109
|
+
}));
|
|
110
|
+
}
|
|
111
|
+
if (subcommand === "digest" && args.length === 0) {
|
|
112
|
+
const config = resolveCronConfig();
|
|
113
|
+
process.exit(runDigest({ dbPath: config.dbPath }));
|
|
114
|
+
}
|
|
115
|
+
if (subcommand === "crontab") {
|
|
116
|
+
const config = resolveCronConfig();
|
|
117
|
+
const options = crontabOptions(args);
|
|
118
|
+
const modules = await readModuleList(config.brainPath, config.moduleDiscoveryEnv);
|
|
119
|
+
process.stdout.write(emitCrontab({
|
|
120
|
+
...options,
|
|
121
|
+
modules,
|
|
122
|
+
subprocessEnvExtraNames: config.subprocessEnvExtraNames,
|
|
123
|
+
legacyScraperPresent: isRegularFile(join(config.brainPath, "scripts", "jobs", "scrape-all.ts")),
|
|
124
|
+
}));
|
|
125
|
+
process.exit(0);
|
|
126
|
+
}
|
|
127
|
+
if (subcommand === "environment" && args.length === 0) {
|
|
128
|
+
const config = resolveCronConfig();
|
|
129
|
+
try {
|
|
130
|
+
process.stdout.write(emitEnvironment(config.childEnv, config.subprocessEnvExtraNames));
|
|
131
|
+
process.exit(0);
|
|
132
|
+
}
|
|
133
|
+
catch (error) {
|
|
134
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
135
|
+
process.stderr.write(`[brain-ui-cron] ${message}\n`);
|
|
136
|
+
process.exit(1);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
usage();
|
|
140
|
+
//# sourceMappingURL=brain-ui-cron.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brain-ui-cron.js","sourceRoot":"","sources":["../../src/bin/brain-ui-cron.ts"],"names":[],"mappings":"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"}
|
package/dist/brain/client.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Logger } from "@opentelemetry/api-logs";
|
|
1
2
|
import type { BrainSearchResponse, BrainDocument, BrainStats, BrainSyncResult } from "./types.js";
|
|
2
3
|
/**
|
|
3
4
|
* Wrapper around the brain CLI, bound to one brain repo. Constructed by
|
|
@@ -36,6 +37,12 @@ export interface BrainClient {
|
|
|
36
37
|
/** Run `brain skills sync` — re-materialize every agent's skill links. */
|
|
37
38
|
skillsSync(): Promise<string>;
|
|
38
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* First core release whose parser understands `--`. The ui-server inserts the
|
|
42
|
+
* separator before user input, so an older brain repo pin would lose every
|
|
43
|
+
* positional silently.
|
|
44
|
+
*/
|
|
45
|
+
export declare const MIN_BRAIN_CLI_VERSION = "0.33.0";
|
|
39
46
|
/**
|
|
40
47
|
* argv prefix for invoking the brain CLI inside `brainPath`.
|
|
41
48
|
*
|
|
@@ -50,6 +57,8 @@ export interface BrainClient {
|
|
|
50
57
|
* it finds onto PATH for cron.
|
|
51
58
|
*/
|
|
52
59
|
export declare function brainCliCommand(brainPath: string): string[];
|
|
60
|
+
/** Probe the brain repo's own CLI pin, refusing only known-incompatible versions. */
|
|
61
|
+
export declare function probeBrainCliVersion(brainPath: string, log: Logger): void;
|
|
53
62
|
export declare function createBrainClient(opts: {
|
|
54
63
|
brainPath: string;
|
|
55
64
|
}): BrainClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/brain/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/brain/client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,KAAK,EAEV,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,8DAA8D;IAC9D,UAAU,IAAI,MAAM,EAAE,CAAC;IACvB,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GACpE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAChC,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7B,IAAI,CAAC,IAAI,CAAC,EAAE;QACV,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAC7B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;IACjC,GAAG,CACD,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GACxD,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,KAAK,CAAC,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B,0EAA0E;IAC1E,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/B;AAQD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,WAAW,CAAC;AAE9C;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAI3D;AAiCD,qFAAqF;AACrF,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAgDzE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,WAAW,CAyJ1E"}
|
package/dist/brain/client.js
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { existsSync } from "fs";
|
|
2
2
|
import { join } from "path";
|
|
3
3
|
import { subprocessEnv } from "../config/env.js";
|
|
4
|
+
/**
|
|
5
|
+
* First core release whose parser understands `--`. The ui-server inserts the
|
|
6
|
+
* separator before user input, so an older brain repo pin would lose every
|
|
7
|
+
* positional silently.
|
|
8
|
+
*/
|
|
9
|
+
export const MIN_BRAIN_CLI_VERSION = "0.33.0";
|
|
4
10
|
/**
|
|
5
11
|
* argv prefix for invoking the brain CLI inside `brainPath`.
|
|
6
12
|
*
|
|
@@ -20,6 +26,75 @@ export function brainCliCommand(brainPath) {
|
|
|
20
26
|
return [packaged];
|
|
21
27
|
return ["bun", "scripts/brain-cli.ts"];
|
|
22
28
|
}
|
|
29
|
+
function parseVersion(value) {
|
|
30
|
+
const match = value.match(
|
|
31
|
+
// Full SemVer 2.0.0 grammar: prerelease and build metadata are
|
|
32
|
+
// dot-separated NON-EMPTY identifiers. A loose `[0-9A-Za-z.-]+` would
|
|
33
|
+
// accept "0.32.9-.." and treat garbage as a real prerelease, which the
|
|
34
|
+
// comparison below would then refuse to boot on instead of warning.
|
|
35
|
+
/^v?(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[A-Za-z-][0-9A-Za-z-]*)(?:\.(?:0|[1-9]\d*|\d*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$/);
|
|
36
|
+
if (!match)
|
|
37
|
+
return null;
|
|
38
|
+
return {
|
|
39
|
+
major: Number(match[1]),
|
|
40
|
+
minor: Number(match[2]),
|
|
41
|
+
patch: Number(match[3]),
|
|
42
|
+
prerelease: match[4] !== undefined,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
function isBelowMinimum(found, minimum) {
|
|
46
|
+
for (const key of ["major", "minor", "patch"]) {
|
|
47
|
+
if (found[key] !== minimum[key])
|
|
48
|
+
return found[key] < minimum[key];
|
|
49
|
+
}
|
|
50
|
+
return found.prerelease && !minimum.prerelease;
|
|
51
|
+
}
|
|
52
|
+
/** Probe the brain repo's own CLI pin, refusing only known-incompatible versions. */
|
|
53
|
+
export function probeBrainCliVersion(brainPath, log) {
|
|
54
|
+
let result;
|
|
55
|
+
try {
|
|
56
|
+
result = Bun.spawnSync([...brainCliCommand(brainPath), "--version"], {
|
|
57
|
+
cwd: brainPath,
|
|
58
|
+
stdout: "pipe",
|
|
59
|
+
stderr: "pipe",
|
|
60
|
+
env: subprocessEnv("brainCli", { NO_COLOR: "1" }),
|
|
61
|
+
timeout: 5_000,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
log.emit({
|
|
66
|
+
severityText: "WARN",
|
|
67
|
+
body: "brain CLI version probe failed; continuing",
|
|
68
|
+
attributes: {
|
|
69
|
+
reason: error instanceof Error ? error.message : String(error),
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
if (result.exitCode !== 0) {
|
|
75
|
+
log.emit({
|
|
76
|
+
severityText: "WARN",
|
|
77
|
+
body: "brain CLI version probe failed; continuing",
|
|
78
|
+
attributes: { "exit.code": result.exitCode },
|
|
79
|
+
});
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
const foundText = new TextDecoder().decode(result.stdout).trim();
|
|
83
|
+
const found = parseVersion(foundText);
|
|
84
|
+
const minimum = parseVersion(MIN_BRAIN_CLI_VERSION);
|
|
85
|
+
if (!found) {
|
|
86
|
+
log.emit({
|
|
87
|
+
severityText: "WARN",
|
|
88
|
+
body: "brain CLI returned an unparseable version; continuing",
|
|
89
|
+
attributes: { version: foundText },
|
|
90
|
+
});
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
if (isBelowMinimum(found, minimum)) {
|
|
94
|
+
throw new Error(`brain CLI version ${foundText} is incompatible: version ${MIN_BRAIN_CLI_VERSION} ` +
|
|
95
|
+
`or newer is required; bump the brain repo's @schlessera/brain pin before deploying.`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
23
98
|
export function createBrainClient(opts) {
|
|
24
99
|
const { brainPath } = opts;
|
|
25
100
|
async function execBrain(args) {
|
|
@@ -28,7 +103,7 @@ export function createBrainClient(opts) {
|
|
|
28
103
|
stdout: "pipe",
|
|
29
104
|
stderr: "pipe",
|
|
30
105
|
// Force JSON output when not a TTY
|
|
31
|
-
env: subprocessEnv({ NO_COLOR: "1" }),
|
|
106
|
+
env: subprocessEnv("brainCli", { NO_COLOR: "1" }),
|
|
32
107
|
});
|
|
33
108
|
const [stdout, stderr] = await Promise.all([
|
|
34
109
|
new Response(proc.stdout).text(),
|
|
@@ -54,7 +129,7 @@ export function createBrainClient(opts) {
|
|
|
54
129
|
return brainCliCommand(brainPath);
|
|
55
130
|
},
|
|
56
131
|
async search(query, opts) {
|
|
57
|
-
const args = ["search"
|
|
132
|
+
const args = ["search"];
|
|
58
133
|
if (opts?.type)
|
|
59
134
|
args.push("--type", opts.type);
|
|
60
135
|
if (opts?.tag)
|
|
@@ -63,6 +138,7 @@ export function createBrainClient(opts) {
|
|
|
63
138
|
args.push("--limit", String(opts.limit));
|
|
64
139
|
if (opts?.mode)
|
|
65
140
|
args.push("--mode", opts.mode);
|
|
141
|
+
args.push("--", query);
|
|
66
142
|
const result = await execBrain(args);
|
|
67
143
|
const parsed = parseJsonOutput(result);
|
|
68
144
|
// brain returns {results, warnings} since 22e82e1; tolerate the old bare array
|
|
@@ -95,7 +171,7 @@ export function createBrainClient(opts) {
|
|
|
95
171
|
return parseJsonOutput(result);
|
|
96
172
|
},
|
|
97
173
|
async read(path) {
|
|
98
|
-
const result = await execBrain(["read", path]);
|
|
174
|
+
const result = await execBrain(["read", "--", path]);
|
|
99
175
|
if (result.exitCode !== 0) {
|
|
100
176
|
throw new Error(`brain read failed: ${result.stderr}`);
|
|
101
177
|
}
|
|
@@ -126,13 +202,14 @@ export function createBrainClient(opts) {
|
|
|
126
202
|
}
|
|
127
203
|
},
|
|
128
204
|
async add(content, opts) {
|
|
129
|
-
const args = ["add"
|
|
205
|
+
const args = ["add"];
|
|
130
206
|
if (opts?.type)
|
|
131
207
|
args.push("--type", opts.type);
|
|
132
208
|
if (opts?.title)
|
|
133
209
|
args.push("--title", opts.title);
|
|
134
210
|
if (opts?.tags)
|
|
135
211
|
args.push("--tags", opts.tags.join(","));
|
|
212
|
+
args.push("--", content);
|
|
136
213
|
const result = await execBrain(args);
|
|
137
214
|
if (result.exitCode !== 0) {
|
|
138
215
|
throw new Error(`brain add failed: ${result.stderr}`);
|
package/dist/brain/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/brain/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/brain/client.ts"],"names":[],"mappings":"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"}
|
package/dist/config/env.d.ts
CHANGED
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import type { BillingMode } from "@schlessera/brain-ui-sdk/protocol";
|
|
16
16
|
import { type Severity } from "../observability/types.js";
|
|
17
|
+
import { type SubprocessEnvAudience } from "@schlessera/brain-ui-sdk/server";
|
|
17
18
|
/**
|
|
18
19
|
* The shared descriptor contract (sync-enforced copy in ./env-core.ts),
|
|
19
20
|
* under the name this package has always exported. This package's entries
|
|
@@ -137,6 +138,19 @@ export interface ServerConfig {
|
|
|
137
138
|
};
|
|
138
139
|
}
|
|
139
140
|
type EnvRecord = Record<string, string | undefined>;
|
|
141
|
+
/** Configuration resolved specifically for the standalone cron bin. */
|
|
142
|
+
export interface CronConfig {
|
|
143
|
+
/** Brain repository inspected by the crontab emitter. */
|
|
144
|
+
brainPath: string;
|
|
145
|
+
/** The deployment database; unlike createApp(), the bin defaults to the container path. */
|
|
146
|
+
dbPath: string;
|
|
147
|
+
/** Allowlisted brain CLI environment used only to discover module cron entries. */
|
|
148
|
+
moduleDiscoveryEnv: EnvRecord;
|
|
149
|
+
/** Allowlisted environment for the scheduled child, before the span sink is added. */
|
|
150
|
+
childEnv: EnvRecord;
|
|
151
|
+
/** Valid operator-added names, also used when emitting /etc/environment. */
|
|
152
|
+
subprocessEnvExtraNames: string[];
|
|
153
|
+
}
|
|
140
154
|
/**
|
|
141
155
|
* Ambient billing classification from an environment (presence-only reads).
|
|
142
156
|
* The API key wins over the OAuth token — the Agent SDK's own precedence —
|
|
@@ -164,12 +178,17 @@ export declare function resolveStandalonePricingConfig(env?: EnvRecord): {
|
|
|
164
178
|
*/
|
|
165
179
|
export declare function resolveServerConfig(env?: EnvRecord): ServerConfig;
|
|
166
180
|
/**
|
|
167
|
-
*
|
|
168
|
-
*
|
|
169
|
-
*
|
|
170
|
-
|
|
181
|
+
* Resolve the standalone cron bin's paths and allowlisted scheduled-job
|
|
182
|
+
* environment. The escape hatch is parsed here, at this package's sole env
|
|
183
|
+
* chokepoint, and its control variable is held back from the child.
|
|
184
|
+
*/
|
|
185
|
+
export declare function resolveCronConfig(env?: EnvRecord, admittedNames?: readonly string[]): CronConfig;
|
|
186
|
+
/**
|
|
187
|
+
* The allowlisted parent environment for a spawned subprocess, plus explicit
|
|
188
|
+
* overrides. The agent default preserves this exported helper's historical
|
|
189
|
+
* no-argument use; every ui-server spawn names its actual audience.
|
|
171
190
|
*/
|
|
172
|
-
export declare function subprocessEnv(extra?: Record<string, string
|
|
191
|
+
export declare function subprocessEnv(audience?: SubprocessEnvAudience, extra?: Record<string, string>, extraNames?: readonly string[]): EnvRecord;
|
|
173
192
|
/**
|
|
174
193
|
* The pi config directory, resolved with EXACTLY the precedence pi-web-access
|
|
175
194
|
* uses for its `web-search.json` (PI_CODING_AGENT_DIR, then XDG_CONFIG_HOME/pi,
|
package/dist/config/env.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAErE,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"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"}
|