@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/dist/config/env.js
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
import { join } from "path";
|
|
16
16
|
import { SEVERITIES } from "../observability/types.js";
|
|
17
17
|
import { envFlag } from "./env-core.js";
|
|
18
|
-
import { filterSubprocessEnv, WEB_SEARCH_PROVIDERS, } from "@schlessera/brain-ui-sdk/server";
|
|
18
|
+
import { filterSubprocessEnv, parseSubprocessEnvExtra, WEB_SEARCH_PROVIDERS, } from "@schlessera/brain-ui-sdk/server";
|
|
19
19
|
/**
|
|
20
20
|
* Every environment variable this package reads. Order groups by concern.
|
|
21
21
|
* The env-parity gate (G4) asserts this list equals the package's env
|
|
@@ -35,6 +35,15 @@ export const ENV_VARS = [
|
|
|
35
35
|
default: "/root",
|
|
36
36
|
required: false,
|
|
37
37
|
},
|
|
38
|
+
{
|
|
39
|
+
name: "BRAIN_UI_SUBPROCESS_ENV_EXTRA",
|
|
40
|
+
description: "Comma-separated environment variable names to admit to every child " +
|
|
41
|
+
"audience when an operator integration needs a variable outside the " +
|
|
42
|
+
"shipped allowlist. Names are trimmed; malformed entries are ignored; " +
|
|
43
|
+
"the control variable itself is never forwarded.",
|
|
44
|
+
default: "(empty)",
|
|
45
|
+
required: false,
|
|
46
|
+
},
|
|
38
47
|
{
|
|
39
48
|
name: "PI_CODING_AGENT_DIR",
|
|
40
49
|
description: "pi config dir override — where the web-search settings write the " +
|
|
@@ -68,8 +77,10 @@ export const ENV_VARS = [
|
|
|
68
77
|
},
|
|
69
78
|
{
|
|
70
79
|
name: "DB_PATH",
|
|
71
|
-
description: "SQLite file for the UI's own database (sessions, passkeys, settings)."
|
|
72
|
-
|
|
80
|
+
description: "SQLite file for the UI's own database (sessions, passkeys, settings). " +
|
|
81
|
+
"The server factory defaults to ./brain-ui.db; brain-ui-cron defaults " +
|
|
82
|
+
"to the container path /data/db/brain-ui.db.",
|
|
83
|
+
default: "./brain-ui.db (server); /data/db/brain-ui.db (brain-ui-cron)",
|
|
73
84
|
required: false,
|
|
74
85
|
},
|
|
75
86
|
{
|
|
@@ -489,13 +500,37 @@ export function resolveServerConfig(env = process.env) {
|
|
|
489
500
|
};
|
|
490
501
|
}
|
|
491
502
|
/**
|
|
492
|
-
*
|
|
493
|
-
*
|
|
494
|
-
*
|
|
495
|
-
|
|
503
|
+
* Resolve the standalone cron bin's paths and allowlisted scheduled-job
|
|
504
|
+
* environment. The escape hatch is parsed here, at this package's sole env
|
|
505
|
+
* chokepoint, and its control variable is held back from the child.
|
|
506
|
+
*/
|
|
507
|
+
export function resolveCronConfig(env = process.env, admittedNames = []) {
|
|
508
|
+
const subprocessEnvExtraNames = parseSubprocessEnvExtra([env.BRAIN_UI_SUBPROCESS_ENV_EXTRA, ...admittedNames].join(","));
|
|
509
|
+
return {
|
|
510
|
+
brainPath: env.BRAIN_PATH || "/data/brain",
|
|
511
|
+
dbPath: env.DB_PATH || "/data/db/brain-ui.db",
|
|
512
|
+
moduleDiscoveryEnv: filterPackageSubprocessEnv(env, "brainCli", subprocessEnvExtraNames),
|
|
513
|
+
childEnv: filterPackageSubprocessEnv(env, "cron", subprocessEnvExtraNames),
|
|
514
|
+
subprocessEnvExtraNames,
|
|
515
|
+
};
|
|
516
|
+
}
|
|
517
|
+
/**
|
|
518
|
+
* Build a package-owned child environment from an environment value.
|
|
519
|
+
*/
|
|
520
|
+
function filterPackageSubprocessEnv(env, audience, extraNames = [], extra = {}) {
|
|
521
|
+
const operatorNames = parseSubprocessEnvExtra(env.BRAIN_UI_SUBPROCESS_ENV_EXTRA);
|
|
522
|
+
return {
|
|
523
|
+
...filterSubprocessEnv(env, audience, [...operatorNames, ...extraNames]),
|
|
524
|
+
...extra,
|
|
525
|
+
};
|
|
526
|
+
}
|
|
527
|
+
/**
|
|
528
|
+
* The allowlisted parent environment for a spawned subprocess, plus explicit
|
|
529
|
+
* overrides. The agent default preserves this exported helper's historical
|
|
530
|
+
* no-argument use; every ui-server spawn names its actual audience.
|
|
496
531
|
*/
|
|
497
|
-
export function subprocessEnv(extra = {}) {
|
|
498
|
-
return
|
|
532
|
+
export function subprocessEnv(audience = "agent", extra = {}, extraNames = []) {
|
|
533
|
+
return filterPackageSubprocessEnv(process.env, audience, extraNames, extra);
|
|
499
534
|
}
|
|
500
535
|
/**
|
|
501
536
|
* The pi config directory, resolved with EXACTLY the precedence pi-web-access
|
package/dist/config/env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAI5B,OAAO,EAAE,UAAU,EAAiB,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EACL,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,iCAAiC,CAAC;AA2BzC;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAgC;IACnD,wBAAwB;IACxB;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,gDAAgD;QAC7D,OAAO,EAAE,aAAa;QACtB,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,MAAM;QACZ,WAAW,EACT,2EAA2E;QAC7E,OAAO,EAAE,OAAO;QAChB,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EACT,mEAAmE;YACnE,iEAAiE;YACjE,yBAAyB;QAC3B,OAAO,EAAE,qCAAqC;QAC9C,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,uEAAuE;QACpF,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,8BAA8B;QACpC,WAAW,EACT,qEAAqE;YACrE,kEAAkE;YAClE,oCAAoC;QACtC,OAAO,EAAE,eAAe;QACxB,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EACT,8DAA8D;YAC9D,mEAAmE;YACnE,oEAAoE;YACpE,+BAA+B;QACjC,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,uEAAuE;QACpF,OAAO,EAAE,eAAe;QACxB,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,MAAM;QACZ,WAAW,EACT,gGAAgG;QAClG,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EACT,0EAA0E;YAC1E,sEAAsE;YACtE,2EAA2E;YAC3E,wEAAwE;YACxE,2EAA2E;YAC3E,0EAA0E;YAC1E,yBAAyB;QAC3B,OAAO,EAAE,yBAAyB;QAClC,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,6BAA6B;QACnC,WAAW,EAAE,yEAAyE;QACtF,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EACT,kEAAkE;YAClE,6BAA6B;QAC/B,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EACT,wEAAwE;YACxE,mEAAmE;QACrE,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EACT,uEAAuE;YACvE,sEAAsE;YACtE,uDAAuD;QACzD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,8DAA8D;QAC3E,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EACT,uGAAuG;QACzG,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EAAE,6CAA6C;QAC1D,OAAO,EAAE,GAAG;QACZ,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,0BAA0B;QAChC,WAAW,EACT,2IAA2I;QAC7I,OAAO,EAAE,qBAAqB;QAC9B,QAAQ,EAAE,KAAK;KAChB;IACD,OAAO;IACP;QACE,IAAI,EAAE,WAAW;QACjB,WAAW,EACT,6HAA6H;QAC/H,OAAO,EAAE,eAAe;QACxB,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EAAE,oDAAoD;QACjE,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,oBAAoB;KAC/B;IACD;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,oCAAoC;QACjD,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,oBAAoB;KAC/B;IACD;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EACT,iHAAiH;QACnH,OAAO,EAAE,GAAG;QACZ,QAAQ,EAAE,iBAAiB;KAC5B;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,uEAAuE;QACpF,OAAO,EAAE,GAAG;QACZ,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,wDAAwD;QACrE,OAAO,EAAE,kBAAkB;QAC3B,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,mCAAmC;QACzC,WAAW,EACT,oGAAoG;QACtG,OAAO,EAAE,GAAG;QACZ,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EACT,kGAAkG;QACpG,OAAO,EAAE,GAAG;QACZ,QAAQ,EAAE,KAAK;KAChB;IACD,sBAAsB;IACtB;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,qDAAqD;QAClE,OAAO,EAAE,UAAU;QACnB,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,6CAA6C;QAC1D,OAAO,EAAE,OAAO;QAChB,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EACT,6IAA6I;QAC/I,OAAO,EAAE,gBAAgB;QACzB,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,0DAA0D;QACvE,OAAO,EAAE,mCAAmC;QAC5C,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,gEAAgE;QAC7E,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,gCAAgC;QACtC,WAAW,EACT,oGAAoG;QACtG,OAAO,EAAE,GAAG;QACZ,QAAQ,EAAE,KAAK;KAChB;IACD,gBAAgB;IAChB;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,oDAAoD;QACjE,OAAO,EAAE,QAAQ;QACjB,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,gEAAgE;QAC7E,OAAO,EAAE,uBAAuB;QAChC,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,+BAA+B;QACrC,WAAW,EAAE,yDAAyD;QACtE,OAAO,EAAE,mBAAmB;QAC5B,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,0BAA0B;QAChC,WAAW,EACT,kIAAkI;QACpI,OAAO,EAAE,QAAQ;QACjB,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EACT,oFAAoF;YACpF,wEAAwE;YACxE,sEAAsE;YACtE,gEAAgE;QAClE,OAAO,EAAE,QAAQ;QACjB,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EACT,uEAAuE;YACvE,sEAAsE;YACtE,yEAAyE;YACzE,yEAAyE;QAC3E,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EACT,qEAAqE;YACrE,qEAAqE;YACrE,kEAAkE;QACpE,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,0BAA0B;QAChC,WAAW,EACT,8JAA8J;QAChK,OAAO,EAAE,8BAA8B;QACvC,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,0BAA0B;QAChC,WAAW,EAAE,0DAA0D;QACvE,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,4BAA4B;QAClC,WAAW,EACT,6NAA6N;QAC/N,OAAO,EAAE,8BAA8B;QACvC,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,4BAA4B;QAClC,WAAW,EAAE,+DAA+D;QAC5E,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EACT,8JAA8J;QAChK,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,KAAK;KAChB;IACD,QAAQ;IACR;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,6EAA6E;QAC1F,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,6EAA6E;KACxF;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,mJAAmJ;QACrJ,OAAO,EAAE,eAAe;QACxB,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,gEAAgE;QAC7E,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,2CAA2C;QACxD,OAAO,EAAE,uBAAuB;QAChC,QAAQ,EAAE,KAAK;KAChB;CACO,CAAC;AAsGX,SAAS,IAAI,CAAC,GAAuB;IACnC,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC;SACf,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC;AAED;;;;;;GAMG;AACH,4EAA4E;AAC5E,SAAS,cAAc,CAAC,GAAuB,EAAE,QAAgB;IAC/D,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,QAAQ,CAAC;IAC5D,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACrD,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,gBAAgB,CAAC,GAAuB;IAC/C,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC;IACzB,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QACxC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,GAAuB;IAC5C,MAAM,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACxC,OAAQ,UAAgC,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;QAC5D,CAAC,CAAE,KAAkB;QACrB,CAAC,CAAC,MAAM,CAAC;AACb,CAAC;AAED,MAAM,UAAU,GAA4B,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAEvF;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAiB,OAAO,CAAC,GAAG;IACpE,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,uBAAuB,EAAE,IAAI,EAAE;QAC1E,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,KAAK,CAAC;AACZ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,8BAA8B,CAAC,MAAiB,OAAO,CAAC,GAAG;IAKzE,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACxD,OAAO;QACL,SAAS,EAAE,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,EAAE,OAAO,CAAC;QAC/D,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC;QACzE,KAAK,EACH,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC;YACvC,CAAC,CAAC,QAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;YAC3B,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;KAC1B,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAiB,OAAO,CAAC,GAAG;IAC9D,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,GAC/D,8BAA8B,CAAC,GAAG,CAAC,CAAC;IAEtC,MAAM,WAAW,GAAG,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC;IAChE,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,IAAI,CAAC;IAE1E,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC;IAEtF,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAErE,OAAO;QACL,SAAS;QACT,MAAM,EAAE,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC;QACzD,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE;QACpB,YAAY,EAAE,GAAG,CAAC,aAAa,IAAI,KAAK;QACxC,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC;QACzC,qBAAqB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAC5E,yEAAyE;QACzE,wEAAwE;QACxE,aAAa,EACX,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;YACrD,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,GAAG,CAAC;YACtC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;YAClD,CAAC,CAAC,IAAI;QACV,IAAI,EAAE;YACJ,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW;YAC3C,YAAY,EAAE,GAAG,CAAC,sBAAsB,IAAI,IAAI;YAChD,YAAY,EAAE,GAAG,CAAC,aAAa,IAAI,IAAI;YACvC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC;YAC3C,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC9D,eAAe,EAAE,CAAC,GAAG,CAAC,iBAAiB,IAAI,kBAAkB,CAAC,CAAC,WAAW,EAAE;YAC5E,sBAAsB,EAAE,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE,KAAK,CAAC;YAC7E,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,KAAK,CAAC;SAC3D;QACD,QAAQ,EAAE;YACR,MAAM,EAAE,GAAG,CAAC,gBAAgB,IAAI,UAAU;YAC1C,QAAQ,EAAE,GAAG,CAAC,kBAAkB,IAAI,OAAO;YAC3C,MAAM,EAAE,GAAG,CAAC,gBAAgB,IAAI,gBAAgB;YAChD,IAAI,EAAE,GAAG,CAAC,cAAc,IAAI,IAAI;YAChC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC;YACnC,mBAAmB,EAAE,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,KAAK,CAAC;SACxE;QACD,KAAK,EAAE;YACL,OAAO,EAAE,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,IAAI;YACxD,mBAAmB,EAAE,gBAAgB,CAAC,GAAG,CAAC,qBAAqB,CAAC;YAChE,cAAc,EAAE,GAAG,CAAC,gBAAgB,IAAI,uBAAuB;YAC/D,YAAY,EAAE,GAAG,CAAC,6BAA6B,EAAE,IAAI,EAAE,IAAI,mBAAmB;YAC9E,YAAY,EAAE,GAAG,CAAC,wBAAwB,EAAE,IAAI,EAAE,IAAI,IAAI;YAC1D,cAAc,EAAE,GAAG,CAAC,oBAAoB,EAAE,IAAI,EAAE,IAAI,IAAI;YACxD,cAAc;YACd,UAAU,EAAE,QAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;YACrC,cAAc,EAAE,yBAAyB,CAAC,GAAG,CAAC;SAC/C;QACD,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAC/C,gBAAgB,EAAE,cAAc,CAAC,GAAG,CAAC,2BAA2B,EAAE,EAAE,CAAC;QACrE,MAAM,EAAE;YACN,aAAa,EAAE,cAAc,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,CAAC;YACvD,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAE,CAAC;SACjD;QACD,KAAK,EAAE;YACL,QAAQ,EAAE,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,IAAI;YAC1D,cAAc,EAAE,GAAG,CAAC,gBAAgB,IAAI,IAAI;YAC5C,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,mBAAmB,IAAI,GAAG,CAAC;YACpD,QAAQ,EAAE,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC;SAC9D;QACD,OAAO,EAAE;YACP,OAAO,EAAE,cAAc;YACvB,KAAK,EAAE,YAAY;SACpB;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgC,EAAE;IAC9D,OAAO,EAAE,GAAG,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;AAC3D,CAAC;AAED;;;;;GAKG;AACH;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAiB,OAAO,CAAC,GAAG;IAC7D,OAAO,GAAG,CAAC,4BAA4B,IAAI,GAAG,CAAC,YAAY,IAAI,SAAS,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAiB,OAAO,CAAC,GAAG;IAC7D,IAAI,GAAG,CAAC,mBAAmB;QAAE,OAAO,GAAG,CAAC,mBAAmB,CAAC;IAC5D,IAAI,GAAG,CAAC,eAAe;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IAChE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,EAAE,KAAK,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,KAAK,GAAG;QACZ,qBAAqB;QACrB,iBAAiB;QACjB,MAAM;QACN,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;KACpF,CAAC;IACF,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC"}
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/** The standalone daily activity-digest job. Failures are deliberately loud. */
|
|
2
|
+
import { generateActivityDigest } from "../activity/digest.js";
|
|
3
|
+
import { createUiDb } from "../db/client.js";
|
|
4
|
+
interface TextSink {
|
|
5
|
+
write(text: string): unknown;
|
|
6
|
+
}
|
|
7
|
+
export interface DigestOptions {
|
|
8
|
+
dbPath: string;
|
|
9
|
+
stdout?: TextSink;
|
|
10
|
+
stderr?: TextSink;
|
|
11
|
+
}
|
|
12
|
+
export interface DigestDependencies {
|
|
13
|
+
createDb?: typeof createUiDb;
|
|
14
|
+
generateDigest?: typeof generateActivityDigest;
|
|
15
|
+
}
|
|
16
|
+
/** Generate and persist one digest, returning a process-compatible status. */
|
|
17
|
+
export declare function runDigest(options: DigestOptions, dependencies?: DigestDependencies): number;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=digest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"digest.d.ts","sourceRoot":"","sources":["../../src/cron/digest.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,UAAU,QAAQ;IAChB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,MAAM,CAAC,EAAE,QAAQ,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,OAAO,UAAU,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,sBAAsB,CAAC;CAChD;AAED,8EAA8E;AAC9E,wBAAgB,SAAS,CACvB,OAAO,EAAE,aAAa,EACtB,YAAY,GAAE,kBAAuB,GACpC,MAAM,CAqBR"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/** The standalone daily activity-digest job. Failures are deliberately loud. */
|
|
2
|
+
import { generateActivityDigest } from "../activity/digest.js";
|
|
3
|
+
import { createUiDb } from "../db/client.js";
|
|
4
|
+
/** Generate and persist one digest, returning a process-compatible status. */
|
|
5
|
+
export function runDigest(options, dependencies = {}) {
|
|
6
|
+
const stdout = options.stdout ?? process.stdout;
|
|
7
|
+
const stderr = options.stderr ?? process.stderr;
|
|
8
|
+
const openDb = dependencies.createDb ?? createUiDb;
|
|
9
|
+
const generate = dependencies.generateDigest ?? generateActivityDigest;
|
|
10
|
+
let db;
|
|
11
|
+
try {
|
|
12
|
+
db = openDb(options.dbPath);
|
|
13
|
+
const digest = generate(db);
|
|
14
|
+
stdout.write(`[brain-digest] generated: ${digest.runs} runs, ${digest.failures} failures, $${digest.costUsd.toFixed(2)}\n`);
|
|
15
|
+
return 0;
|
|
16
|
+
}
|
|
17
|
+
catch (error) {
|
|
18
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
19
|
+
stderr.write(`[brain-digest] failed: ${message}\n`);
|
|
20
|
+
return 1;
|
|
21
|
+
}
|
|
22
|
+
finally {
|
|
23
|
+
db?.close();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=digest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"digest.js","sourceRoot":"","sources":["../../src/cron/digest.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAiB7C,8EAA8E;AAC9E,MAAM,UAAU,SAAS,CACvB,OAAsB,EACtB,eAAmC,EAAE;IAErC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAChD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAChD,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,IAAI,UAAU,CAAC;IACnD,MAAM,QAAQ,GAAG,YAAY,CAAC,cAAc,IAAI,sBAAsB,CAAC;IACvE,IAAI,EAA6C,CAAC;IAElD,IAAI,CAAC;QACH,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5B,MAAM,CAAC,KAAK,CACV,6BAA6B,MAAM,CAAC,IAAI,UAAU,MAAM,CAAC,QAAQ,eAAe,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAC9G,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,CAAC,KAAK,CAAC,0BAA0B,OAAO,IAAI,CAAC,CAAC;QACpD,OAAO,CAAC,CAAC;IACX,CAAC;YAAS,CAAC;QACT,EAAE,EAAE,KAAK,EAAE,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/** One cron manifest entry in `brain module list --json`. */
|
|
2
|
+
export interface BrainModuleListCronEntry {
|
|
3
|
+
name: string;
|
|
4
|
+
schedule: string;
|
|
5
|
+
command: string;
|
|
6
|
+
}
|
|
7
|
+
/** One enabled module in the core CLI's module-list payload. */
|
|
8
|
+
export interface BrainModuleListEnabledModule {
|
|
9
|
+
name: string;
|
|
10
|
+
key: string;
|
|
11
|
+
description: string | null;
|
|
12
|
+
types: string[];
|
|
13
|
+
commands: string[];
|
|
14
|
+
cron: BrainModuleListCronEntry[];
|
|
15
|
+
}
|
|
16
|
+
/** One disabled-but-available module in the core CLI's module-list payload. */
|
|
17
|
+
export interface BrainModuleListAvailableModule {
|
|
18
|
+
key: string;
|
|
19
|
+
description: string | null;
|
|
20
|
+
enabled: false;
|
|
21
|
+
}
|
|
22
|
+
/** The payload emitted by `brain module list --json`. */
|
|
23
|
+
export interface BrainModuleListPayload {
|
|
24
|
+
enabled: BrainModuleListEnabledModule[];
|
|
25
|
+
available: BrainModuleListAvailableModule[];
|
|
26
|
+
}
|
|
27
|
+
export interface EmitCrontabOptions {
|
|
28
|
+
/** Null means the core CLI was unavailable or did not return JSON. */
|
|
29
|
+
modules: BrainModuleListPayload | null;
|
|
30
|
+
/** Command prefix that records and runs one job. */
|
|
31
|
+
wrapperCommand: string;
|
|
32
|
+
/** Command executed inside the wrapper's `digest` job. */
|
|
33
|
+
digestCommand: string;
|
|
34
|
+
/** Complete `PATH=...` crontab line. */
|
|
35
|
+
pathLine: string;
|
|
36
|
+
/** System crontab user field. */
|
|
37
|
+
user: string;
|
|
38
|
+
/** Whether `scripts/jobs/scrape-all.ts` exists in the brain repository. */
|
|
39
|
+
legacyScraperPresent: boolean;
|
|
40
|
+
/** Valid names carried into each wrapper so the run process re-admits them. */
|
|
41
|
+
subprocessEnvExtraNames?: readonly string[];
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Emit `/etc/cron.d/brain-ui` with the same byte layout as the deployment
|
|
45
|
+
* shell's historical `generate_crontab` function.
|
|
46
|
+
*/
|
|
47
|
+
export declare function emitCrontab(options: EmitCrontabOptions): string;
|
|
48
|
+
/**
|
|
49
|
+
* NODE_ENV is in the descriptor because Bun uses it to choose `.env.<mode>` in
|
|
50
|
+
* every child spawned by the server. Scheduled jobs take a different path:
|
|
51
|
+
* they historically receive their environment through pam_env without
|
|
52
|
+
* NODE_ENV, and adding it would change which brain-repo env file their Bun
|
|
53
|
+
* commands load. The 0.33.1 allowlist keeps that historical behavior while
|
|
54
|
+
* widening the explicitly approved capability settings below.
|
|
55
|
+
*/
|
|
56
|
+
export declare const CRON_ENV_EXCLUSIONS: ReadonlySet<string>;
|
|
57
|
+
/**
|
|
58
|
+
* Names emitted into `/etc/environment`: the SDK's cron audience minus the
|
|
59
|
+
* explicit exclusions, in {@link CRON_ENV_ORDER}.
|
|
60
|
+
*
|
|
61
|
+
* A variable that joins or leaves the cron audience and is not accounted for
|
|
62
|
+
* here throws at module load rather than silently changing what scheduled jobs
|
|
63
|
+
* can see.
|
|
64
|
+
*/
|
|
65
|
+
export declare const CRON_ENV_NAMES: readonly string[];
|
|
66
|
+
/** Emit the pam_env input consumed by scheduled jobs. */
|
|
67
|
+
export declare function emitEnvironment(env: Record<string, string | undefined>, extraNames?: readonly string[]): string;
|
|
68
|
+
//# sourceMappingURL=emit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emit.d.ts","sourceRoot":"","sources":["../../src/cron/emit.ts"],"names":[],"mappings":"AAMA,6DAA6D;AAC7D,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,gEAAgE;AAChE,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,EAAE,wBAAwB,EAAE,CAAC;CAClC;AAED,+EAA+E;AAC/E,MAAM,WAAW,8BAA8B;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,KAAK,CAAC;CAChB;AAED,yDAAyD;AACzD,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,4BAA4B,EAAE,CAAC;IACxC,SAAS,EAAE,8BAA8B,EAAE,CAAC;CAC7C;AAED,MAAM,WAAW,kBAAkB;IACjC,sEAAsE;IACtE,OAAO,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACvC,oDAAoD;IACpD,cAAc,EAAE,MAAM,CAAC;IACvB,0DAA0D;IAC1D,aAAa,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,oBAAoB,EAAE,OAAO,CAAC;IAC9B,+EAA+E;IAC/E,uBAAuB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7C;AAkCD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CAuE/D;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAAyB,CAAC;AAsC9E;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,mBAmB1B,CAAC;AAEF,yDAAyD;AACzD,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EACvC,UAAU,GAAE,SAAS,MAAM,EAAO,GACjC,MAAM,CAoBR"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { parseSubprocessEnvExtra, SUBPROCESS_ENV, } from "@schlessera/brain-ui-sdk/server";
|
|
2
|
+
const MODULE_NAME = /^[a-z0-9][a-z0-9-]{0,63}$/;
|
|
3
|
+
const CRON_NAME = /^[a-z0-9][a-z0-9-]{0,63}$/;
|
|
4
|
+
const CRON_SCHEDULE = /^[-0-9*,/ ]{1,100}$/;
|
|
5
|
+
const CRON_COMMAND = /^[A-Za-z0-9 _.:=@,/-]{1,200}$/;
|
|
6
|
+
// These use ^...$ without the `m` flag deliberately. In JavaScript `$`
|
|
7
|
+
// matches only at the true end of the string, so these are the correct
|
|
8
|
+
// translation of the bash jq/Oniguruma guards, which needed \A...\z because
|
|
9
|
+
// Oniguruma's `$` can match before a trailing newline.
|
|
10
|
+
function validModuleName(value) {
|
|
11
|
+
return typeof value === "string" && MODULE_NAME.test(value);
|
|
12
|
+
}
|
|
13
|
+
function validCronEntry(value) {
|
|
14
|
+
if (!value || typeof value !== "object")
|
|
15
|
+
return false;
|
|
16
|
+
const entry = value;
|
|
17
|
+
return (typeof entry.name === "string" &&
|
|
18
|
+
CRON_NAME.test(entry.name) &&
|
|
19
|
+
typeof entry.schedule === "string" &&
|
|
20
|
+
CRON_SCHEDULE.test(entry.schedule) &&
|
|
21
|
+
typeof entry.command === "string" &&
|
|
22
|
+
CRON_COMMAND.test(entry.command));
|
|
23
|
+
}
|
|
24
|
+
function assertSingleLine(name, value) {
|
|
25
|
+
if (/[\0\r\n]/.test(value)) {
|
|
26
|
+
throw new Error(`${name} must be a single line`);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Emit `/etc/cron.d/brain-ui` with the same byte layout as the deployment
|
|
31
|
+
* shell's historical `generate_crontab` function.
|
|
32
|
+
*/
|
|
33
|
+
export function emitCrontab(options) {
|
|
34
|
+
const { modules, wrapperCommand, digestCommand, pathLine, user, legacyScraperPresent, subprocessEnvExtraNames = [], } = options;
|
|
35
|
+
assertSingleLine("wrapperCommand", wrapperCommand);
|
|
36
|
+
assertSingleLine("digestCommand", digestCommand);
|
|
37
|
+
assertSingleLine("pathLine", pathLine);
|
|
38
|
+
assertSingleLine("user", user);
|
|
39
|
+
const validatedExtraNames = parseSubprocessEnvExtra(subprocessEnvExtraNames.join(","));
|
|
40
|
+
const wrapper = validatedExtraNames.length === 0
|
|
41
|
+
? wrapperCommand
|
|
42
|
+
: `${wrapperCommand} --subprocess-env-extra ${validatedExtraNames.join(",")}`;
|
|
43
|
+
const lines = [
|
|
44
|
+
"# Generated by entrypoint.sh — regenerated on each container start.",
|
|
45
|
+
pathLine,
|
|
46
|
+
"",
|
|
47
|
+
"# Base jobs",
|
|
48
|
+
`0 2 * * * ${user} cd /data/brain && ${wrapper} sync -- sh -c 'brain sync && brain index' 2>&1 | logger -t brain-sync`,
|
|
49
|
+
`0 3 * * * ${user} cd /data/brain && ${wrapper} validate -- brain validate 2>&1 | logger -t brain-validate`,
|
|
50
|
+
`0 7 * * * ${user} cd /data/brain && ${wrapper} maintain -- brain maintain 2>&1 | logger -t brain-maintain`,
|
|
51
|
+
`30 7 * * * ${user} cd /data/brain && ${wrapper} digest -- ${digestCommand} 2>&1 | logger -t brain-digest`,
|
|
52
|
+
"",
|
|
53
|
+
"# Module jobs (from enabled modules' cron manifests, when exposed)",
|
|
54
|
+
];
|
|
55
|
+
const enabled = modules && Array.isArray(modules.enabled) ? modules.enabled : [];
|
|
56
|
+
if (modules === null) {
|
|
57
|
+
lines.push("# (brain module list unavailable — module cron skipped)");
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
for (const module of enabled) {
|
|
61
|
+
if (!module || typeof module !== "object" || !validModuleName(module.name))
|
|
62
|
+
continue;
|
|
63
|
+
const entries = Array.isArray(module.cron) ? module.cron : [];
|
|
64
|
+
for (const entry of entries) {
|
|
65
|
+
if (!validCronEntry(entry))
|
|
66
|
+
continue;
|
|
67
|
+
const jobName = `${module.name}-${entry.name}`;
|
|
68
|
+
lines.push(`${entry.schedule} ${user} cd /data/brain && ${wrapper} ${jobName} -- brain ${entry.command} 2>&1 | logger -t brain-${jobName}`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
const jobsModuleEnabled = enabled.some((module) => module &&
|
|
73
|
+
typeof module === "object" &&
|
|
74
|
+
Array.isArray(module.commands) &&
|
|
75
|
+
module.commands.includes("jobs"));
|
|
76
|
+
// Keep the historical standalone scraper fallback for brain repositories
|
|
77
|
+
// that have not moved their jobs workflow to an enabled module.
|
|
78
|
+
if (!jobsModuleEnabled && legacyScraperPresent) {
|
|
79
|
+
lines.push(`0 4 * * * ${user} cd /data/brain && ${wrapper} jobs -- bun scripts/jobs/scrape-all.ts --api-only 2>&1 | logger -t brain-jobs`);
|
|
80
|
+
}
|
|
81
|
+
lines.push("");
|
|
82
|
+
return `${lines.join("\n")}\n`;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* NODE_ENV is in the descriptor because Bun uses it to choose `.env.<mode>` in
|
|
86
|
+
* every child spawned by the server. Scheduled jobs take a different path:
|
|
87
|
+
* they historically receive their environment through pam_env without
|
|
88
|
+
* NODE_ENV, and adding it would change which brain-repo env file their Bun
|
|
89
|
+
* commands load. The 0.33.1 allowlist keeps that historical behavior while
|
|
90
|
+
* widening the explicitly approved capability settings below.
|
|
91
|
+
*/
|
|
92
|
+
export const CRON_ENV_EXCLUSIONS = new Set(["NODE_ENV"]);
|
|
93
|
+
/**
|
|
94
|
+
* The order the shell emitted `/etc/environment` in. pam_env does not care,
|
|
95
|
+
* but the historical golden is byte-exact and this is what it is compared
|
|
96
|
+
* against.
|
|
97
|
+
*
|
|
98
|
+
* Order lives HERE, not in the SDK descriptor: the SET is owned by
|
|
99
|
+
* `SUBPROCESS_ENV`'s cron audience (see {@link CRON_ENV_NAMES}, which fails
|
|
100
|
+
* loudly if the two ever disagree), and making an unrelated file's declaration
|
|
101
|
+
* order load-bearing for a cosmetic property would be a trap for whoever next
|
|
102
|
+
* tidies it.
|
|
103
|
+
*/
|
|
104
|
+
const CRON_ENV_ORDER = [
|
|
105
|
+
"PATH",
|
|
106
|
+
"BRAIN_PATH",
|
|
107
|
+
"BRAIN_ROOT",
|
|
108
|
+
"TZ",
|
|
109
|
+
"XDG_BIN_HOME",
|
|
110
|
+
"DB_PATH",
|
|
111
|
+
"BRAIN_RERANK_MODE",
|
|
112
|
+
"SCRAPE_CHROME_URL",
|
|
113
|
+
"CHROME_CDP_URL",
|
|
114
|
+
"SCRAPE_CHROME_PATH",
|
|
115
|
+
"SCRAPE_CHROME_NO_SANDBOX",
|
|
116
|
+
"SCRAPE_USER_AGENT",
|
|
117
|
+
"SCRAPE_RESPECT_ROBOTS",
|
|
118
|
+
"GEMINI_API_KEY",
|
|
119
|
+
"GEMINI_BASE_URL",
|
|
120
|
+
"OPENAI_API_KEY",
|
|
121
|
+
"OPENAI_BASE_URL",
|
|
122
|
+
"GITHUB_TOKEN",
|
|
123
|
+
"BRAIN_UI_SYNC_GITHUB_TOKEN",
|
|
124
|
+
"CLAUDE_CODE_OAUTH_TOKEN",
|
|
125
|
+
"BRAIN_UI_PRICING_DISCOVERY",
|
|
126
|
+
"BRAIN_UI_PRICING_TTL_HOURS",
|
|
127
|
+
];
|
|
128
|
+
/**
|
|
129
|
+
* Names emitted into `/etc/environment`: the SDK's cron audience minus the
|
|
130
|
+
* explicit exclusions, in {@link CRON_ENV_ORDER}.
|
|
131
|
+
*
|
|
132
|
+
* A variable that joins or leaves the cron audience and is not accounted for
|
|
133
|
+
* here throws at module load rather than silently changing what scheduled jobs
|
|
134
|
+
* can see.
|
|
135
|
+
*/
|
|
136
|
+
export const CRON_ENV_NAMES = Object.freeze((() => {
|
|
137
|
+
const audience = Object.entries(SUBPROCESS_ENV)
|
|
138
|
+
.filter(([, audiences]) => audiences.includes("cron"))
|
|
139
|
+
.map(([name]) => name)
|
|
140
|
+
.filter((name) => !CRON_ENV_EXCLUSIONS.has(name));
|
|
141
|
+
const ordered = new Set(CRON_ENV_ORDER);
|
|
142
|
+
const missing = audience.filter((name) => !ordered.has(name));
|
|
143
|
+
const extra = CRON_ENV_ORDER.filter((name) => !audience.includes(name));
|
|
144
|
+
if (missing.length > 0 || extra.length > 0) {
|
|
145
|
+
throw new Error("cron environment list drifted from SUBPROCESS_ENV's cron audience: " +
|
|
146
|
+
`unordered=[${missing.join(", ")}] unknown=[${extra.join(", ")}]`);
|
|
147
|
+
}
|
|
148
|
+
return CRON_ENV_ORDER.slice();
|
|
149
|
+
})());
|
|
150
|
+
/** Emit the pam_env input consumed by scheduled jobs. */
|
|
151
|
+
export function emitEnvironment(env, extraNames = []) {
|
|
152
|
+
const lines = [];
|
|
153
|
+
const names = [
|
|
154
|
+
...CRON_ENV_NAMES,
|
|
155
|
+
...parseSubprocessEnvExtra(extraNames.join(",")).filter((name) => !CRON_ENV_NAMES.includes(name)),
|
|
156
|
+
];
|
|
157
|
+
for (const name of names) {
|
|
158
|
+
const value = env[name];
|
|
159
|
+
// Match the shell's `[ -n ]`: both unset and empty values are omitted.
|
|
160
|
+
if (!value)
|
|
161
|
+
continue;
|
|
162
|
+
// /etc/environment has no shell-safe interpolation layer. Reject anything
|
|
163
|
+
// that could terminate/escape the quoted value or create another line.
|
|
164
|
+
if (/[\0"\\\r\n]/.test(value)) {
|
|
165
|
+
throw new Error(`cannot emit unsafe /etc/environment value for ${name}`);
|
|
166
|
+
}
|
|
167
|
+
lines.push(`${name}="${value}"`);
|
|
168
|
+
}
|
|
169
|
+
return lines.length === 0 ? "" : `${lines.join("\n")}\n`;
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=emit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emit.js","sourceRoot":"","sources":["../../src/cron/emit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/** Tail of stderr retained for the cron_runs error row. */
|
|
2
|
+
export declare const STDERR_TAIL_CHARS = 2000;
|
|
3
|
+
/** Tail of combined stdout/stderr retained as the job_output activity event. */
|
|
4
|
+
export declare const OUTPUT_TAIL_CHARS = 8000;
|
|
5
|
+
/** Heartbeat cadence, comfortably inside the activity store's stale threshold. */
|
|
6
|
+
export declare const HEARTBEAT_MS = 30000;
|
|
7
|
+
/** Child-visible path where span-sink JSONL may be appended. */
|
|
8
|
+
export declare const SPAN_SINK_ENV = "BRAIN_ACTIVITY_SPAN_SINK";
|
|
9
|
+
interface TextSink {
|
|
10
|
+
write(text: string): unknown;
|
|
11
|
+
}
|
|
12
|
+
interface SpawnedJob {
|
|
13
|
+
stdout: ReadableStream<Uint8Array>;
|
|
14
|
+
stderr: ReadableStream<Uint8Array>;
|
|
15
|
+
exited: Promise<number>;
|
|
16
|
+
signalCode: string | null;
|
|
17
|
+
}
|
|
18
|
+
interface RunRecorder {
|
|
19
|
+
finish(error: string | undefined, output: string, exitCode: number): void;
|
|
20
|
+
close(): void;
|
|
21
|
+
}
|
|
22
|
+
export interface RunJobOptions {
|
|
23
|
+
jobName: string;
|
|
24
|
+
command: string[];
|
|
25
|
+
dbPath: string;
|
|
26
|
+
childEnv: Record<string, string | undefined>;
|
|
27
|
+
stdout?: TextSink;
|
|
28
|
+
stderr?: TextSink;
|
|
29
|
+
}
|
|
30
|
+
export interface RunJobDependencies {
|
|
31
|
+
spawn?: (command: string[], options: {
|
|
32
|
+
stdin: "inherit";
|
|
33
|
+
stdout: "pipe";
|
|
34
|
+
stderr: "pipe";
|
|
35
|
+
env: Record<string, string | undefined>;
|
|
36
|
+
}) => SpawnedJob;
|
|
37
|
+
sinkPath?: string;
|
|
38
|
+
startRecord?: (name: string, sinkPath: string, command: string[], dbPath: string, stderr: TextSink) => Promise<RunRecorder | null>;
|
|
39
|
+
removeSink?: (path: string) => void;
|
|
40
|
+
}
|
|
41
|
+
/** Forward a stream verbatim while exposing decoded chunks for tail capture. */
|
|
42
|
+
export declare function teeStream(stream: ReadableStream<Uint8Array>, sink: TextSink, onText: (text: string) => void): Promise<void>;
|
|
43
|
+
/** Keep the last `cap` characters, never the head. */
|
|
44
|
+
export declare function appendTail(current: string, text: string, cap: number): string;
|
|
45
|
+
/** Run a job as argv (never through a shell) and return its exact exit code. */
|
|
46
|
+
export declare function runJob(options: RunJobOptions, dependencies?: RunJobDependencies): Promise<number>;
|
|
47
|
+
export {};
|
|
48
|
+
//# sourceMappingURL=run-job.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-job.d.ts","sourceRoot":"","sources":["../../src/cron/run-job.ts"],"names":[],"mappings":"AAYA,2DAA2D;AAC3D,eAAO,MAAM,iBAAiB,OAAQ,CAAC;AACvC,gFAAgF;AAChF,eAAO,MAAM,iBAAiB,OAAQ,CAAC;AACvC,kFAAkF;AAClF,eAAO,MAAM,YAAY,QAAS,CAAC;AACnC,gEAAgE;AAChE,eAAO,MAAM,aAAa,6BAA6B,CAAC;AAExD,UAAU,QAAQ;IAChB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAC9B;AAED,UAAU,UAAU;IAClB,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACnC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACnC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,UAAU,WAAW;IACnB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1E,KAAK,IAAI,IAAI,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7C,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,MAAM,CAAC,EAAE,QAAQ,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,CACN,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE;QACP,KAAK,EAAE,SAAS,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;KACzC,KACE,UAAU,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,CACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EAAE,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,QAAQ,KACb,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACjC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAUD,gFAAgF;AAChF,wBAAsB,SAAS,CAC7B,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,EAClC,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC7B,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,sDAAsD;AACtD,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7E;AA0FD,gFAAgF;AAChF,wBAAsB,MAAM,CAC1B,OAAO,EAAE,aAAa,EACtB,YAAY,GAAE,kBAAuB,GACpC,OAAO,CAAC,MAAM,CAAC,CAmEjB"}
|