@lobu/core 4.0.0 → 4.1.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.
Files changed (36) hide show
  1. package/dist/__tests__/guardrails.test.d.ts +2 -0
  2. package/dist/__tests__/guardrails.test.d.ts.map +1 -0
  3. package/dist/__tests__/guardrails.test.js +187 -0
  4. package/dist/__tests__/guardrails.test.js.map +1 -0
  5. package/dist/agent-store.d.ts +6 -0
  6. package/dist/agent-store.d.ts.map +1 -1
  7. package/dist/agent-store.js.map +1 -1
  8. package/dist/guardrails/builtins/noop.d.ts +7 -0
  9. package/dist/guardrails/builtins/noop.d.ts.map +1 -0
  10. package/dist/guardrails/builtins/noop.js +17 -0
  11. package/dist/guardrails/builtins/noop.js.map +1 -0
  12. package/dist/guardrails/index.d.ts +5 -0
  13. package/dist/guardrails/index.d.ts.map +1 -0
  14. package/dist/guardrails/index.js +10 -0
  15. package/dist/guardrails/index.js.map +1 -0
  16. package/dist/guardrails/registry.d.ts +19 -0
  17. package/dist/guardrails/registry.d.ts.map +1 -0
  18. package/dist/guardrails/registry.js +57 -0
  19. package/dist/guardrails/registry.js.map +1 -0
  20. package/dist/guardrails/runner.d.ts +17 -0
  21. package/dist/guardrails/runner.d.ts.map +1 -0
  22. package/dist/guardrails/runner.js +72 -0
  23. package/dist/guardrails/runner.js.map +1 -0
  24. package/dist/guardrails/types.d.ts +83 -0
  25. package/dist/guardrails/types.d.ts.map +1 -0
  26. package/dist/guardrails/types.js +19 -0
  27. package/dist/guardrails/types.js.map +1 -0
  28. package/dist/index.d.ts +1 -0
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +2 -0
  31. package/dist/index.js.map +1 -1
  32. package/dist/lobu-toml-schema.d.ts +2 -0
  33. package/dist/lobu-toml-schema.d.ts.map +1 -1
  34. package/dist/lobu-toml-schema.js +5 -0
  35. package/dist/lobu-toml-schema.js.map +1 -1
  36. package/package.json +1 -1
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=guardrails.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guardrails.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/guardrails.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const bun_test_1 = require("bun:test");
4
+ const guardrails_1 = require("../guardrails");
5
+ const ctx = {
6
+ agentId: "agent-1",
7
+ userId: "user-1",
8
+ message: "hello",
9
+ platform: "telegram",
10
+ };
11
+ function deferred() {
12
+ let resolve;
13
+ let reject;
14
+ const promise = new Promise((res, rej) => {
15
+ resolve = res;
16
+ reject = rej;
17
+ });
18
+ return { promise, resolve, reject };
19
+ }
20
+ (0, bun_test_1.describe)("GuardrailRegistry", () => {
21
+ (0, bun_test_1.test)("register + resolve by enable list", () => {
22
+ const registry = new guardrails_1.GuardrailRegistry();
23
+ const a = (0, guardrails_1.createNoopGuardrail)("input", "a");
24
+ const b = (0, guardrails_1.createNoopGuardrail)("input", "b");
25
+ registry.register(a);
26
+ registry.register(b);
27
+ const resolved = registry.resolve("input", ["a"]);
28
+ (0, bun_test_1.expect)(resolved).toHaveLength(1);
29
+ (0, bun_test_1.expect)(resolved[0]?.name).toBe("a");
30
+ });
31
+ (0, bun_test_1.test)("list returns all guardrails for a stage", () => {
32
+ const registry = new guardrails_1.GuardrailRegistry();
33
+ registry.register((0, guardrails_1.createNoopGuardrail)("input", "a"));
34
+ registry.register((0, guardrails_1.createNoopGuardrail)("output", "b"));
35
+ (0, bun_test_1.expect)(registry.list("input").map((g) => g.name)).toEqual(["a"]);
36
+ (0, bun_test_1.expect)(registry.list("output").map((g) => g.name)).toEqual(["b"]);
37
+ (0, bun_test_1.expect)(registry.list("pre-tool")).toEqual([]);
38
+ });
39
+ (0, bun_test_1.test)("duplicate registration at same stage throws", () => {
40
+ const registry = new guardrails_1.GuardrailRegistry();
41
+ registry.register((0, guardrails_1.createNoopGuardrail)("input", "dup"));
42
+ (0, bun_test_1.expect)(() => registry.register((0, guardrails_1.createNoopGuardrail)("input", "dup"))).toThrow(/already registered/);
43
+ });
44
+ (0, bun_test_1.test)("same name at different stages is allowed", () => {
45
+ const registry = new guardrails_1.GuardrailRegistry();
46
+ registry.register((0, guardrails_1.createNoopGuardrail)("input", "shared"));
47
+ registry.register((0, guardrails_1.createNoopGuardrail)("output", "shared"));
48
+ (0, bun_test_1.expect)(registry.get("input", "shared")).toBeDefined();
49
+ (0, bun_test_1.expect)(registry.get("output", "shared")).toBeDefined();
50
+ });
51
+ (0, bun_test_1.test)("resolve silently skips unknown names", () => {
52
+ const registry = new guardrails_1.GuardrailRegistry();
53
+ registry.register((0, guardrails_1.createNoopGuardrail)("input", "known"));
54
+ const resolved = registry.resolve("input", ["known", "missing"]);
55
+ (0, bun_test_1.expect)(resolved.map((g) => g.name)).toEqual(["known"]);
56
+ });
57
+ });
58
+ (0, bun_test_1.describe)("runGuardrails", () => {
59
+ (0, bun_test_1.test)("empty enabled list returns no-trip outcome without touching registry", async () => {
60
+ const registry = new guardrails_1.GuardrailRegistry();
61
+ const outcome = await (0, guardrails_1.runGuardrails)(registry, "input", [], ctx);
62
+ (0, bun_test_1.expect)(outcome.tripped).toBeNull();
63
+ (0, bun_test_1.expect)(outcome.ran).toEqual([]);
64
+ });
65
+ (0, bun_test_1.test)("all pass → tripped is null, ran lists every guardrail", async () => {
66
+ const registry = new guardrails_1.GuardrailRegistry();
67
+ registry.register((0, guardrails_1.createNoopGuardrail)("input", "a"));
68
+ registry.register((0, guardrails_1.createNoopGuardrail)("input", "b"));
69
+ const outcome = await (0, guardrails_1.runGuardrails)(registry, "input", ["a", "b"], ctx);
70
+ (0, bun_test_1.expect)(outcome.tripped).toBeNull();
71
+ (0, bun_test_1.expect)(outcome.ran.sort()).toEqual(["a", "b"]);
72
+ });
73
+ (0, bun_test_1.test)("first trip short-circuits; other guardrails are cancelled", async () => {
74
+ const slow = deferred();
75
+ const registry = new guardrails_1.GuardrailRegistry();
76
+ const tripper = {
77
+ name: "tripper",
78
+ stage: "input",
79
+ async run() {
80
+ return { tripped: true, reason: "caught" };
81
+ },
82
+ };
83
+ const slowGuard = {
84
+ name: "slow",
85
+ stage: "input",
86
+ async run() {
87
+ await slow.promise;
88
+ return { tripped: false };
89
+ },
90
+ };
91
+ registry.register(tripper);
92
+ registry.register(slowGuard);
93
+ const outcome = await (0, guardrails_1.runGuardrails)(registry, "input", ["tripper", "slow"], ctx);
94
+ (0, bun_test_1.expect)(outcome.tripped).toEqual({
95
+ guardrail: "tripper",
96
+ reason: "caught",
97
+ metadata: undefined,
98
+ });
99
+ // `ran` should only contain tripper — slow is still blocked on `slow.promise`
100
+ (0, bun_test_1.expect)(outcome.ran).toEqual(["tripper"]);
101
+ // clean up the hanging promise so the test process doesn't keep a handle
102
+ slow.resolve(undefined);
103
+ });
104
+ (0, bun_test_1.test)("only the first trip is surfaced even when multiple trip", async () => {
105
+ const registry = new guardrails_1.GuardrailRegistry();
106
+ const firstGate = deferred();
107
+ const secondGate = deferred();
108
+ const first = {
109
+ name: "first",
110
+ stage: "input",
111
+ async run() {
112
+ await firstGate.promise;
113
+ return { tripped: true, reason: "first" };
114
+ },
115
+ };
116
+ const second = {
117
+ name: "second",
118
+ stage: "input",
119
+ async run() {
120
+ await secondGate.promise;
121
+ return { tripped: true, reason: "second" };
122
+ },
123
+ };
124
+ registry.register(first);
125
+ registry.register(second);
126
+ const outcomeP = (0, guardrails_1.runGuardrails)(registry, "input", ["first", "second"], ctx);
127
+ firstGate.resolve();
128
+ const outcome = await outcomeP;
129
+ (0, bun_test_1.expect)(outcome.tripped?.guardrail).toBe("first");
130
+ secondGate.resolve();
131
+ });
132
+ (0, bun_test_1.test)("thrown guardrail is treated as a pass and logged", async () => {
133
+ const registry = new guardrails_1.GuardrailRegistry();
134
+ const thrower = {
135
+ name: "thrower",
136
+ stage: "input",
137
+ async run() {
138
+ throw new Error("boom");
139
+ },
140
+ };
141
+ registry.register(thrower);
142
+ registry.register((0, guardrails_1.createNoopGuardrail)("input", "ok"));
143
+ const outcome = await (0, guardrails_1.runGuardrails)(registry, "input", ["thrower", "ok"], ctx);
144
+ (0, bun_test_1.expect)(outcome.tripped).toBeNull();
145
+ // thrower never contributed to `ran`; only ok did
146
+ (0, bun_test_1.expect)(outcome.ran).toEqual(["ok"]);
147
+ });
148
+ (0, bun_test_1.test)("metadata is surfaced from the tripping guardrail", async () => {
149
+ const registry = new guardrails_1.GuardrailRegistry();
150
+ const detector = {
151
+ name: "detector",
152
+ stage: "input",
153
+ async run() {
154
+ return {
155
+ tripped: true,
156
+ reason: "matched",
157
+ metadata: { pattern: "secret-xyz" },
158
+ };
159
+ },
160
+ };
161
+ registry.register(detector);
162
+ const outcome = await (0, guardrails_1.runGuardrails)(registry, "input", ["detector"], ctx);
163
+ (0, bun_test_1.expect)(outcome.tripped?.metadata).toEqual({ pattern: "secret-xyz" });
164
+ });
165
+ (0, bun_test_1.test)("unknown names in enabled list are skipped, known ones still run", async () => {
166
+ const registry = new guardrails_1.GuardrailRegistry();
167
+ registry.register((0, guardrails_1.createNoopGuardrail)("input", "exists"));
168
+ const outcome = await (0, guardrails_1.runGuardrails)(registry, "input", ["exists", "missing"], ctx);
169
+ (0, bun_test_1.expect)(outcome.tripped).toBeNull();
170
+ (0, bun_test_1.expect)(outcome.ran).toEqual(["exists"]);
171
+ });
172
+ });
173
+ (0, bun_test_1.describe)("createNoopGuardrail", () => {
174
+ (0, bun_test_1.test)("returns pass regardless of stage and name", async () => {
175
+ const g = (0, guardrails_1.createNoopGuardrail)("pre-tool", "my-noop");
176
+ (0, bun_test_1.expect)(g.name).toBe("my-noop");
177
+ (0, bun_test_1.expect)(g.stage).toBe("pre-tool");
178
+ const result = await g.run({
179
+ agentId: "a",
180
+ userId: "u",
181
+ toolName: "t",
182
+ arguments: {},
183
+ });
184
+ (0, bun_test_1.expect)(result).toEqual({ tripped: false });
185
+ });
186
+ });
187
+ //# sourceMappingURL=guardrails.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guardrails.test.js","sourceRoot":"","sources":["../../src/__tests__/guardrails.test.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,12 @@ export interface AgentSettings {
37
37
  skillsConfig?: SkillsConfig;
38
38
  /** Tool permission configuration — allowed/denied tools (worker-side visibility). */
39
39
  toolsConfig?: ToolsConfig;
40
+ /**
41
+ * Guardrails enabled for this agent, by registered name. The gateway
42
+ * resolves these against its GuardrailRegistry at each stage (input,
43
+ * output, pre-tool) and halts the run on the first trip.
44
+ */
45
+ guardrails?: string[];
40
46
  /** OpenClaw plugin configuration */
41
47
  pluginsConfig?: PluginsConfig;
42
48
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"agent-store.d.ts","sourceRoot":"","sources":["../src/agent-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-store.d.ts","sourceRoot":"","sources":["../src/agent-store.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent-store.js","sourceRoot":"","sources":["../src/agent-store.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAoKH,kDAcC;AAlBD;;;GAGG;AACI,KAAK,UAAU,mBAAmB,CACvC,KAA2D;IAE3D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;IAExC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,kBAAkB;YAAE,SAAS;QACvC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACxD,IAAI,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC;YACzC,OAAO,KAAK,CAAC,OAAO,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"agent-store.js","sourceRoot":"","sources":["../src/agent-store.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AA0KH,kDAcC;AAlBD;;;GAGG;AACI,KAAK,UAAU,mBAAmB,CACvC,KAA2D;IAE3D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;IAExC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,kBAAkB;YAAE,SAAS;QACvC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACxD,IAAI,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC;YACzC,OAAO,KAAK,CAAC,OAAO,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { Guardrail, GuardrailStage } from "../types";
2
+ /**
3
+ * No-op guardrail — always passes. Used as a default in tests and as a
4
+ * template for new guardrail implementations.
5
+ */
6
+ export declare function createNoopGuardrail<S extends GuardrailStage>(stage: S, name?: string): Guardrail<S>;
7
+ //# sourceMappingURL=noop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noop.d.ts","sourceRoot":"","sources":["../../../src/guardrails/builtins/noop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1D;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,cAAc,EAC1D,KAAK,EAAE,CAAC,EACR,IAAI,SAAkB,GACrB,SAAS,CAAC,CAAC,CAAC,CAQd"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createNoopGuardrail = createNoopGuardrail;
4
+ /**
5
+ * No-op guardrail — always passes. Used as a default in tests and as a
6
+ * template for new guardrail implementations.
7
+ */
8
+ function createNoopGuardrail(stage, name = `noop-${stage}`) {
9
+ return {
10
+ name,
11
+ stage,
12
+ async run() {
13
+ return { tripped: false };
14
+ },
15
+ };
16
+ }
17
+ //# sourceMappingURL=noop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noop.js","sourceRoot":"","sources":["../../../src/guardrails/builtins/noop.ts"],"names":[],"mappings":";;AAMA,kDAWC;AAfD;;;GAGG;AACH,SAAgB,mBAAmB,CACjC,KAAQ,EACR,IAAI,GAAG,QAAQ,KAAK,EAAE;IAEtB,OAAO;QACL,IAAI;QACJ,KAAK;QACL,KAAK,CAAC,GAAG;YACP,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC5B,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { createNoopGuardrail } from "./builtins/noop";
2
+ export { GuardrailRegistry } from "./registry";
3
+ export { runGuardrails } from "./runner";
4
+ export type { Guardrail, GuardrailContext, GuardrailResult, GuardrailRunOutcome, GuardrailStage, InputGuardrailContext, OutputGuardrailContext, PreToolGuardrailContext, } from "./types";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/guardrails/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,YAAY,EACV,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runGuardrails = exports.GuardrailRegistry = exports.createNoopGuardrail = void 0;
4
+ var noop_1 = require("./builtins/noop");
5
+ Object.defineProperty(exports, "createNoopGuardrail", { enumerable: true, get: function () { return noop_1.createNoopGuardrail; } });
6
+ var registry_1 = require("./registry");
7
+ Object.defineProperty(exports, "GuardrailRegistry", { enumerable: true, get: function () { return registry_1.GuardrailRegistry; } });
8
+ var runner_1 = require("./runner");
9
+ Object.defineProperty(exports, "runGuardrails", { enumerable: true, get: function () { return runner_1.runGuardrails; } });
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/guardrails/index.ts"],"names":[],"mappings":";;;AAAA,wCAAsD;AAA7C,2GAAA,mBAAmB,OAAA;AAC5B,uCAA+C;AAAtC,6GAAA,iBAAiB,OAAA;AAC1B,mCAAyC;AAAhC,uGAAA,aAAa,OAAA"}
@@ -0,0 +1,19 @@
1
+ import type { Guardrail, GuardrailStage } from "./types";
2
+ /**
3
+ * Registry of guardrails keyed by `stage + name`. Callers register guardrails
4
+ * at startup (builtins + plugin-provided); the runner filters by stage and
5
+ * by a per-agent enable list.
6
+ */
7
+ export declare class GuardrailRegistry {
8
+ private byStage;
9
+ register<S extends GuardrailStage>(guardrail: Guardrail<S>): void;
10
+ get(stage: GuardrailStage, name: string): Guardrail | undefined;
11
+ list(stage: GuardrailStage): Guardrail[];
12
+ /**
13
+ * Resolve the guardrails to run for a given stage and an agent's enable
14
+ * list. Unknown names are logged and skipped — a missing guardrail should
15
+ * never silently block a message, but operators need to see the drift.
16
+ */
17
+ resolve(stage: GuardrailStage, enabled: readonly string[]): Guardrail[];
18
+ }
19
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/guardrails/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAIzD;;;;GAIG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAqD;IAEpE,QAAQ,CAAC,CAAC,SAAS,cAAc,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI;IAkBjE,GAAG,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAI/D,IAAI,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,EAAE;IAKxC;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,EAAE;CAiBxE"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GuardrailRegistry = void 0;
4
+ const logger_1 = require("../logger");
5
+ const logger = (0, logger_1.createLogger)("guardrail-registry");
6
+ /**
7
+ * Registry of guardrails keyed by `stage + name`. Callers register guardrails
8
+ * at startup (builtins + plugin-provided); the runner filters by stage and
9
+ * by a per-agent enable list.
10
+ */
11
+ class GuardrailRegistry {
12
+ constructor() {
13
+ this.byStage = new Map();
14
+ }
15
+ register(guardrail) {
16
+ let stageMap = this.byStage.get(guardrail.stage);
17
+ if (!stageMap) {
18
+ stageMap = new Map();
19
+ this.byStage.set(guardrail.stage, stageMap);
20
+ }
21
+ if (stageMap.has(guardrail.name)) {
22
+ throw new Error(`Guardrail "${guardrail.name}" already registered for stage "${guardrail.stage}"`);
23
+ }
24
+ stageMap.set(guardrail.name, guardrail);
25
+ logger.debug({ name: guardrail.name, stage: guardrail.stage }, "Guardrail registered");
26
+ }
27
+ get(stage, name) {
28
+ return this.byStage.get(stage)?.get(name);
29
+ }
30
+ list(stage) {
31
+ const stageMap = this.byStage.get(stage);
32
+ return stageMap ? Array.from(stageMap.values()) : [];
33
+ }
34
+ /**
35
+ * Resolve the guardrails to run for a given stage and an agent's enable
36
+ * list. Unknown names are logged and skipped — a missing guardrail should
37
+ * never silently block a message, but operators need to see the drift.
38
+ */
39
+ resolve(stage, enabled) {
40
+ const stageMap = this.byStage.get(stage);
41
+ if (!stageMap)
42
+ return [];
43
+ const out = [];
44
+ for (const name of enabled) {
45
+ const g = stageMap.get(name);
46
+ if (g) {
47
+ out.push(g);
48
+ }
49
+ else {
50
+ logger.warn({ name, stage }, "Enabled guardrail not found in registry; skipping");
51
+ }
52
+ }
53
+ return out;
54
+ }
55
+ }
56
+ exports.GuardrailRegistry = GuardrailRegistry;
57
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/guardrails/registry.ts"],"names":[],"mappings":";;;AAAA,sCAAyC;AAGzC,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,oBAAoB,CAAC,CAAC;AAElD;;;;GAIG;AACH,MAAa,iBAAiB;IAA9B;QACU,YAAO,GAAG,IAAI,GAAG,EAA0C,CAAC;IAmDtE,CAAC;IAjDC,QAAQ,CAA2B,SAAuB;QACxD,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CACb,cAAc,SAAS,CAAC,IAAI,mCAAmC,SAAS,CAAC,KAAK,GAAG,CAClF,CAAC;QACJ,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,SAAsB,CAAC,CAAC;QACrD,MAAM,CAAC,KAAK,CACV,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,EAChD,sBAAsB,CACvB,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,KAAqB,EAAE,IAAY;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC,KAAqB;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzC,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,KAAqB,EAAE,OAA0B;QACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QACzB,MAAM,GAAG,GAAgB,EAAE,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,EAAE,CAAC;gBACN,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CACT,EAAE,IAAI,EAAE,KAAK,EAAE,EACf,mDAAmD,CACpD,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AApDD,8CAoDC"}
@@ -0,0 +1,17 @@
1
+ import type { GuardrailRegistry } from "./registry";
2
+ import type { GuardrailContext, GuardrailRunOutcome, GuardrailStage } from "./types";
3
+ /**
4
+ * Run all enabled guardrails for `stage` in parallel. Resolves with the first
5
+ * trip (others keep running but their results are discarded), or `{tripped: null}`
6
+ * if every guardrail passes. A thrown guardrail is logged and treated as a
7
+ * pass — guardrails must fail closed on their own if they want halt-on-error
8
+ * semantics.
9
+ *
10
+ * The returned outcome includes `ran`, a snapshot of which guardrails had
11
+ * produced a result at the moment the race ended (on first trip, or when all
12
+ * settled). Guardrails still running after short-circuit are intentionally
13
+ * not reflected — they complete in the background and their output is
14
+ * discarded.
15
+ */
16
+ export declare function runGuardrails<S extends GuardrailStage>(registry: GuardrailRegistry, stage: S, enabled: readonly string[], ctx: GuardrailContext[S]): Promise<GuardrailRunOutcome>;
17
+ //# sourceMappingURL=runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/guardrails/runner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,KAAK,EAEV,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACf,MAAM,SAAS,CAAC;AAIjB;;;;;;;;;;;;GAYG;AACH,wBAAsB,aAAa,CAAC,CAAC,SAAS,cAAc,EAC1D,QAAQ,EAAE,iBAAiB,EAC3B,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAC,GACvB,OAAO,CAAC,mBAAmB,CAAC,CA6D9B"}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runGuardrails = runGuardrails;
4
+ const logger_1 = require("../logger");
5
+ const logger = (0, logger_1.createLogger)("guardrail-runner");
6
+ /**
7
+ * Run all enabled guardrails for `stage` in parallel. Resolves with the first
8
+ * trip (others keep running but their results are discarded), or `{tripped: null}`
9
+ * if every guardrail passes. A thrown guardrail is logged and treated as a
10
+ * pass — guardrails must fail closed on their own if they want halt-on-error
11
+ * semantics.
12
+ *
13
+ * The returned outcome includes `ran`, a snapshot of which guardrails had
14
+ * produced a result at the moment the race ended (on first trip, or when all
15
+ * settled). Guardrails still running after short-circuit are intentionally
16
+ * not reflected — they complete in the background and their output is
17
+ * discarded.
18
+ */
19
+ async function runGuardrails(registry, stage, enabled, ctx) {
20
+ if (enabled.length === 0) {
21
+ return { tripped: null, ran: [] };
22
+ }
23
+ const guardrails = registry.resolve(stage, enabled);
24
+ if (guardrails.length === 0) {
25
+ return { tripped: null, ran: [] };
26
+ }
27
+ const ran = [];
28
+ let tripped = null;
29
+ return await new Promise((resolve) => {
30
+ let settled = false;
31
+ let remaining = guardrails.length;
32
+ const finish = () => {
33
+ if (settled)
34
+ return;
35
+ settled = true;
36
+ // Snapshot `ran` — background guardrails keep pushing to the live array
37
+ // after short-circuit, and consumers shouldn't see those late appends.
38
+ resolve({ tripped, ran: [...ran] });
39
+ };
40
+ for (const g of guardrails) {
41
+ Promise.resolve()
42
+ .then(() => g.run(ctx))
43
+ .then((result) => {
44
+ ran.push(g.name);
45
+ if (!tripped && result.tripped) {
46
+ tripped = {
47
+ guardrail: g.name,
48
+ reason: result.reason,
49
+ metadata: result.metadata,
50
+ };
51
+ logger.info({ guardrail: g.name, stage, reason: result.reason }, "Guardrail tripped");
52
+ // Short-circuit: resolve immediately on first trip. Other
53
+ // guardrails continue running but their outcome is discarded.
54
+ finish();
55
+ }
56
+ })
57
+ .catch((err) => {
58
+ logger.error({
59
+ guardrail: g.name,
60
+ stage,
61
+ error: err instanceof Error ? err.message : String(err),
62
+ }, "Guardrail threw; treating as pass");
63
+ })
64
+ .finally(() => {
65
+ remaining -= 1;
66
+ if (remaining === 0)
67
+ finish();
68
+ });
69
+ }
70
+ });
71
+ }
72
+ //# sourceMappingURL=runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/guardrails/runner.ts"],"names":[],"mappings":";;AAwBA,sCAkEC;AA1FD,sCAAyC;AASzC,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,kBAAkB,CAAC,CAAC;AAEhD;;;;;;;;;;;;GAYG;AACI,KAAK,UAAU,aAAa,CACjC,QAA2B,EAC3B,KAAQ,EACR,OAA0B,EAC1B,GAAwB;IAExB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IACpC,CAAC;IAED,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAmB,CAAC;IACtE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IACpC,CAAC;IAED,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,OAAO,GAAmC,IAAI,CAAC;IAEnD,OAAO,MAAM,IAAI,OAAO,CAAsB,CAAC,OAAO,EAAE,EAAE;QACxD,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC;QAElC,MAAM,MAAM,GAAG,GAAG,EAAE;YAClB,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,wEAAwE;YACxE,uEAAuE;YACvE,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;QACtC,CAAC,CAAC;QAEF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,OAAO,CAAC,OAAO,EAAE;iBACd,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBACtB,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBACf,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACjB,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBAC/B,OAAO,GAAG;wBACR,SAAS,EAAE,CAAC,CAAC,IAAI;wBACjB,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;qBAC1B,CAAC;oBACF,MAAM,CAAC,IAAI,CACT,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EACnD,mBAAmB,CACpB,CAAC;oBACF,0DAA0D;oBAC1D,8DAA8D;oBAC9D,MAAM,EAAE,CAAC;gBACX,CAAC;YACH,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACb,MAAM,CAAC,KAAK,CACV;oBACE,SAAS,EAAE,CAAC,CAAC,IAAI;oBACjB,KAAK;oBACL,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBACxD,EACD,mCAAmC,CACpC,CAAC;YACJ,CAAC,CAAC;iBACD,OAAO,CAAC,GAAG,EAAE;gBACZ,SAAS,IAAI,CAAC,CAAC;gBACf,IAAI,SAAS,KAAK,CAAC;oBAAE,MAAM,EAAE,CAAC;YAChC,CAAC,CAAC,CAAC;QACP,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Guardrail primitive — composable input/output/pre-tool checks that can halt
3
+ * a run before it produces user-visible output or side effects. Modeled on
4
+ * OpenAI Agents SDK's input_guardrails / output_guardrails pattern.
5
+ *
6
+ * A guardrail returns `{ tripped: true, reason, metadata }` to halt; the
7
+ * runner cancels the remaining guardrails at the same stage on first trip.
8
+ *
9
+ * Guardrails are stage-scoped:
10
+ * - `input` — user message before dispatch to worker
11
+ * - `output` — worker-produced text/attachments before user rendering
12
+ * - `pre-tool` — tool call authorization (agent → gateway MCP proxy)
13
+ *
14
+ * Register guardrails in a {@link GuardrailRegistry} and enable them per-agent
15
+ * via `[agents.<id>] guardrails = ["name-a", "name-b"]` in `lobu.toml`.
16
+ */
17
+ export type GuardrailStage = "input" | "output" | "pre-tool";
18
+ /**
19
+ * Context shape passed to each stage. Each stage has a distinct payload so
20
+ * guardrails can be typed against what they'll actually inspect. Additional
21
+ * fields can be added over time — guardrails should read only what they need.
22
+ */
23
+ export interface InputGuardrailContext {
24
+ agentId: string;
25
+ userId: string;
26
+ message: string;
27
+ platform: string;
28
+ conversationId?: string;
29
+ }
30
+ export interface OutputGuardrailContext {
31
+ agentId: string;
32
+ userId: string;
33
+ /** Full response text or streamed delta being inspected. */
34
+ text: string;
35
+ platform: string;
36
+ conversationId?: string;
37
+ }
38
+ export interface PreToolGuardrailContext {
39
+ agentId: string;
40
+ userId: string;
41
+ toolName: string;
42
+ /** Raw JSON-RPC params the worker is about to invoke the tool with. */
43
+ arguments: unknown;
44
+ conversationId?: string;
45
+ }
46
+ export type GuardrailContext = {
47
+ input: InputGuardrailContext;
48
+ output: OutputGuardrailContext;
49
+ "pre-tool": PreToolGuardrailContext;
50
+ };
51
+ /**
52
+ * Result of a single guardrail invocation. `tripped: true` halts the run at
53
+ * this stage; `reason` surfaces in logs/user messages, `metadata` is
54
+ * opaque structured data for downstream handlers (e.g. which pattern matched).
55
+ */
56
+ export interface GuardrailResult {
57
+ tripped: boolean;
58
+ reason?: string;
59
+ metadata?: unknown;
60
+ }
61
+ /**
62
+ * A single guardrail. The `name` must be unique within a stage — the registry
63
+ * uses it as the lookup key when agents enable guardrails by name in config.
64
+ */
65
+ export interface Guardrail<S extends GuardrailStage = GuardrailStage> {
66
+ name: string;
67
+ stage: S;
68
+ run(ctx: GuardrailContext[S]): Promise<GuardrailResult>;
69
+ }
70
+ /**
71
+ * Outcome of running all enabled guardrails at a stage. `tripped` is the
72
+ * first guardrail that halted (others were cancelled); `ran` lists every
73
+ * guardrail that actually produced a result (useful for audit logs).
74
+ */
75
+ export interface GuardrailRunOutcome {
76
+ tripped: {
77
+ guardrail: string;
78
+ reason?: string;
79
+ metadata?: unknown;
80
+ } | null;
81
+ ran: string[];
82
+ }
83
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/guardrails/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE7D;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,qBAAqB,CAAC;IAC7B,MAAM,EAAE,sBAAsB,CAAC;IAC/B,UAAU,EAAE,uBAAuB,CAAC;CACrC,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,CAAC,CAAC;IACT,GAAG,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CACzD;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,GAAG,IAAI,CAAC;IACT,GAAG,EAAE,MAAM,EAAE,CAAC;CACf"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ /**
3
+ * Guardrail primitive — composable input/output/pre-tool checks that can halt
4
+ * a run before it produces user-visible output or side effects. Modeled on
5
+ * OpenAI Agents SDK's input_guardrails / output_guardrails pattern.
6
+ *
7
+ * A guardrail returns `{ tripped: true, reason, metadata }` to halt; the
8
+ * runner cancels the remaining guardrails at the same stage on first trip.
9
+ *
10
+ * Guardrails are stage-scoped:
11
+ * - `input` — user message before dispatch to worker
12
+ * - `output` — worker-produced text/attachments before user rendering
13
+ * - `pre-tool` — tool call authorization (agent → gateway MCP proxy)
14
+ *
15
+ * Register guardrails in a {@link GuardrailRegistry} and enable them per-agent
16
+ * via `[agents.<id>] guardrails = ["name-a", "name-b"]` in `lobu.toml`.
17
+ */
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/guardrails/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG"}
package/dist/index.d.ts CHANGED
@@ -6,6 +6,7 @@ export type { AgentConfigResponse, AgentInfo, CatalogProvider, Connection, McpCo
6
6
  export type { CommandContext, CommandDefinition } from "./command-registry";
7
7
  export { CommandRegistry } from "./command-registry";
8
8
  export * from "./constants";
9
+ export * from "./guardrails";
9
10
  export * from "./errors";
10
11
  export type { ProviderRegistryEntry, ProvidersConfigFile, } from "./integration-types";
11
12
  export { type AgentEntry as TomlAgentEntry, type ConnectionEntry as TomlConnectionEntry, type LobuTomlConfig, lobuConfigSchema, type McpServerEntry as TomlMcpServerEntry, type MemoryEntry as TomlMemoryEntry, type NetworkEntry as TomlNetworkEntry, type OwlettoEntry as TomlOwlettoEntry, type OwlettoMemoryEntry as TomlOwlettoMemoryEntry, type OwlettoProfileEntry as TomlOwlettoProfileEntry, type ProviderEntry as TomlProviderEntry, type ScheduleEntry as TomlScheduleEntry, type SkillsEntry as TomlSkillsEntry, type ToolsEntry, type ToolsEntry as TomlToolsEntry, type WorkerEntry as TomlWorkerEntry, } from "./lobu-toml-schema";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAIA,cAAc,gBAAgB,CAAC;AAE/B,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,KAAK,EACL,gBAAgB,GACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,YAAY,EACV,mBAAmB,EACnB,SAAS,EACT,eAAe,EACf,UAAU,EACV,SAAS,EACT,WAAW,EACX,eAAe,EACf,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,cAAc,EACd,QAAQ,EACR,gBAAgB,EAChB,KAAK,EACL,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5E,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,cAAc,aAAa,CAAC;AAE5B,cAAc,UAAU,CAAC;AAEzB,YAAY,EACV,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,KAAK,UAAU,IAAI,cAAc,EACjC,KAAK,eAAe,IAAI,mBAAmB,EAC3C,KAAK,cAAc,EACnB,gBAAgB,EAChB,KAAK,cAAc,IAAI,kBAAkB,EACzC,KAAK,WAAW,IAAI,eAAe,EACnC,KAAK,YAAY,IAAI,gBAAgB,EACrC,KAAK,YAAY,IAAI,gBAAgB,EACrC,KAAK,kBAAkB,IAAI,sBAAsB,EACjD,KAAK,mBAAmB,IAAI,uBAAuB,EACnD,KAAK,aAAa,IAAI,iBAAiB,EACvC,KAAK,aAAa,IAAI,iBAAiB,EACvC,KAAK,WAAW,IAAI,eAAe,EACnC,KAAK,UAAU,EACf,KAAK,UAAU,IAAI,cAAc,EACjC,KAAK,WAAW,IAAI,eAAe,GACpC,MAAM,oBAAoB,CAAC;AAC5B,cAAc,UAAU,CAAC;AAEzB,YAAY,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACpE,cAAc,WAAW,CAAC;AAC1B,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEvD,OAAO,EACL,eAAe,EACf,cAAc,EACd,UAAU,EACV,YAAY,EACZ,cAAc,EACd,cAAc,EACd,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,QAAQ,EACR,cAAc,EACd,eAAe,EACf,aAAa,EACb,QAAQ,GACT,MAAM,QAAQ,CAAC;AAEhB,YAAY,EACV,YAAY,EACZ,cAAc,EACd,UAAU,EACV,aAAa,EACb,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AAEjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAE9B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1D,YAAY,EACV,cAAc,EACd,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,QAAQ,EACR,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,SAAS,EACT,wBAAwB,EACxB,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,WAAW,EACX,cAAc,EACd,YAAY,EACZ,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,WAAW,EACX,cAAc,GACf,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9C,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGnD,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3E,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,YAAY,EACV,eAAe,EACf,qBAAqB,GACtB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -24,6 +24,8 @@ Object.defineProperty(exports, "findTemplateAgentId", { enumerable: true, get: f
24
24
  var command_registry_1 = require("./command-registry");
25
25
  Object.defineProperty(exports, "CommandRegistry", { enumerable: true, get: function () { return command_registry_1.CommandRegistry; } });
26
26
  __exportStar(require("./constants"), exports);
27
+ // Guardrail primitive (type + registry + parallel runner + no-op builtin)
28
+ __exportStar(require("./guardrails"), exports);
27
29
  // Errors & logging
28
30
  __exportStar(require("./errors"), exports);
29
31
  // lobu.toml zod schema (canonical — used by CLI and gateway)
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAEA,4EAA4E;;;;;;;;;;;;;;;;;AAE5E,iDAA+B;AAc/B,6CAAoD;AAA3C,kHAAA,mBAAmB,OAAA;AAqB5B,mBAAmB;AACnB,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AACxB,8CAA4B;AAC5B,mBAAmB;AACnB,2CAAyB;AAMzB,6DAA6D;AAC7D,uDAiB4B;AAb1B,oHAAA,gBAAgB,OAAA;AAclB,2CAAyB;AAGzB,4CAA0B;AAE1B,wBAAwB;AACxB,+BAegB;AAdd,uGAAA,eAAe,OAAA;AACf,sGAAA,cAAc,OAAA;AACd,kGAAA,UAAU,OAAA;AACV,oGAAA,YAAY,OAAA;AACZ,sGAAA,cAAc,OAAA;AACd,sGAAA,cAAc,OAAA;AACd,iGAAA,SAAS,OAAA;AACT,mGAAA,WAAW,OAAA;AACX,wGAAA,gBAAgB,OAAA;AAChB,gGAAA,QAAQ,OAAA;AACR,sGAAA,cAAc,OAAA;AACd,uGAAA,eAAe,OAAA;AACf,qGAAA,aAAa,OAAA;AACb,gGAAA,QAAQ,OAAA;AAeV,yBAAyB;AACzB,qDAAmC;AACnC,uDAAqC;AACrC,gDAA8B;AAC9B,gBAAgB;AAChB,mCAAiD;AAAxC,mGAAA,SAAS,OAAA;AAAE,oGAAA,UAAU,OAAA;AAC9B,iCAA0D;AAAjD,uGAAA,cAAc,OAAA;AAAE,wGAAA,eAAe,OAAA;AAkCxC,iCAA8C;AAArC,4GAAA,mBAAmB,OAAA;AAI5B,YAAY;AACZ,qDAAmC;AACnC,8CAA4B;AAC5B,+CAA6B;AAC7B,+CAA6B;AAE7B,0DAAwC;AACxC,gDAA8B;AAC9B,mDAAiC;AACjC,+CAA6B;AAC7B,gDAA8B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAEA,4EAA4E;;;;;;;;;;;;;;;;;AAE5E,iDAA+B;AAc/B,6CAAoD;AAA3C,kHAAA,mBAAmB,OAAA;AAqB5B,mBAAmB;AACnB,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AACxB,8CAA4B;AAC5B,0EAA0E;AAC1E,+CAA6B;AAC7B,mBAAmB;AACnB,2CAAyB;AAMzB,6DAA6D;AAC7D,uDAiB4B;AAb1B,oHAAA,gBAAgB,OAAA;AAclB,2CAAyB;AAGzB,4CAA0B;AAE1B,wBAAwB;AACxB,+BAegB;AAdd,uGAAA,eAAe,OAAA;AACf,sGAAA,cAAc,OAAA;AACd,kGAAA,UAAU,OAAA;AACV,oGAAA,YAAY,OAAA;AACZ,sGAAA,cAAc,OAAA;AACd,sGAAA,cAAc,OAAA;AACd,iGAAA,SAAS,OAAA;AACT,mGAAA,WAAW,OAAA;AACX,wGAAA,gBAAgB,OAAA;AAChB,gGAAA,QAAQ,OAAA;AACR,sGAAA,cAAc,OAAA;AACd,uGAAA,eAAe,OAAA;AACf,qGAAA,aAAa,OAAA;AACb,gGAAA,QAAQ,OAAA;AAeV,yBAAyB;AACzB,qDAAmC;AACnC,uDAAqC;AACrC,gDAA8B;AAC9B,gBAAgB;AAChB,mCAAiD;AAAxC,mGAAA,SAAS,OAAA;AAAE,oGAAA,UAAU,OAAA;AAC9B,iCAA0D;AAAjD,uGAAA,cAAc,OAAA;AAAE,wGAAA,eAAe,OAAA;AAkCxC,iCAA8C;AAArC,4GAAA,mBAAmB,OAAA;AAI5B,YAAY;AACZ,qDAAmC;AACnC,8CAA4B;AAC5B,+CAA6B;AAC7B,+CAA6B;AAE7B,0DAAwC;AACxC,gDAA8B;AAC9B,mDAAiC;AACjC,+CAA6B;AAC7B,gDAA8B"}
@@ -160,6 +160,7 @@ declare const agentEntrySchema: z.ZodObject<{
160
160
  denied: z.ZodOptional<z.ZodArray<z.ZodString>>;
161
161
  strict: z.ZodOptional<z.ZodBoolean>;
162
162
  }, z.core.$strip>>;
163
+ guardrails: z.ZodOptional<z.ZodArray<z.ZodString>>;
163
164
  worker: z.ZodOptional<z.ZodObject<{
164
165
  nix_packages: z.ZodOptional<z.ZodArray<z.ZodString>>;
165
166
  }, z.core.$strip>>;
@@ -281,6 +282,7 @@ export declare const lobuConfigSchema: z.ZodObject<{
281
282
  denied: z.ZodOptional<z.ZodArray<z.ZodString>>;
282
283
  strict: z.ZodOptional<z.ZodBoolean>;
283
284
  }, z.core.$strip>>;
285
+ guardrails: z.ZodOptional<z.ZodArray<z.ZodString>>;
284
286
  worker: z.ZodOptional<z.ZodObject<{
285
287
  nix_packages: z.ZodOptional<z.ZodArray<z.ZodString>>;
286
288
  }, z.core.$strip>>;
@@ -1 +1 @@
1
- {"version":3,"file":"lobu-toml-schema.d.ts","sourceRoot":"","sources":["../src/lobu-toml-schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,QAAA,MAAM,cAAc;;;;;iBAWhB,CAAC;AAIL,QAAA,MAAM,gBAAgB;;;;iBAepB,CAAC;AAaH,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;iBAsBnB,CAAC;AAIH,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;iBAEhB,CAAC;AAIH,QAAA,MAAM,aAAa;;;;;;;;;GAQd,CAAC;AAmBN,QAAA,MAAM,WAAW;;;;;iBAef,CAAC;AAIH,QAAA,MAAM,YAAY;;iBAEhB,CAAC;AAIH;;;GAGG;AACH,QAAA,MAAM,cAAc;;;;;;;;;;;;;iBA4BlB,CAAC;AAIH,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiBpB,CAAC;AAIH,QAAA,MAAM,mBAAmB;;;;;;;;;;;iBAQvB,CAAC;AAEH,QAAA,MAAM,YAAY;;;;;;;;;;;;;iBAEhB,CAAC;AAIH,QAAA,MAAM,oBAAoB;;;;;;;iBASV,CAAC;AAEjB,QAAA,MAAM,aAAa;;;;;;;;;iBAEjB,CAAC;AAIH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAI3B,CAAC;AAIH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC9D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAC3D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC/D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAC7D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AACvD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACzD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AACrD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AACvD,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAC3D,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACrE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AACvD,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACvE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC"}
1
+ {"version":3,"file":"lobu-toml-schema.d.ts","sourceRoot":"","sources":["../src/lobu-toml-schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,QAAA,MAAM,cAAc;;;;;iBAWhB,CAAC;AAIL,QAAA,MAAM,gBAAgB;;;;iBAepB,CAAC;AAaH,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;iBAsBnB,CAAC;AAIH,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;iBAEhB,CAAC;AAIH,QAAA,MAAM,aAAa;;;;;;;;;GAQd,CAAC;AAmBN,QAAA,MAAM,WAAW;;;;;iBAef,CAAC;AAIH,QAAA,MAAM,YAAY;;iBAEhB,CAAC;AAIH;;;GAGG;AACH,QAAA,MAAM,cAAc;;;;;;;;;;;;;iBA4BlB,CAAC;AAIH,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsBpB,CAAC;AAIH,QAAA,MAAM,mBAAmB;;;;;;;;;;;iBAQvB,CAAC;AAEH,QAAA,MAAM,YAAY;;;;;;;;;;;;;iBAEhB,CAAC;AAIH,QAAA,MAAM,oBAAoB;;;;;;;iBASV,CAAC;AAEjB,QAAA,MAAM,aAAa;;;;;;;;;iBAEjB,CAAC;AAIH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAI3B,CAAC;AAIH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC9D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAC3D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC/D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAC7D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AACvD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACzD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AACrD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AACvD,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAC3D,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACrE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AACvD,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACvE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC"}
@@ -164,6 +164,11 @@ const agentEntrySchema = zod_1.z.object({
164
164
  skills: skillsSchema.default({}),
165
165
  network: networkSchema.optional(),
166
166
  tools: toolsSchema.optional(),
167
+ /**
168
+ * Guardrails enabled for this agent. Each name must match a guardrail
169
+ * registered in the gateway's GuardrailRegistry. See packages/core/src/guardrails.
170
+ */
171
+ guardrails: zod_1.z.array(zod_1.z.string()).optional(),
167
172
  worker: workerSchema.optional(),
168
173
  /**
169
174
  * Default delivery target for scheduled fires that omit `deliver_to`.
@@ -1 +1 @@
1
- {"version":3,"file":"lobu-toml-schema.js","sourceRoot":"","sources":["../src/lobu-toml-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lobu-toml-schema.js","sourceRoot":"","sources":["../src/lobu-toml-schema.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobu/core",
3
- "version": "4.0.0",
3
+ "version": "4.1.0",
4
4
  "license": "Apache-2.0",
5
5
  "description": "Core types and utilities for Lobu agent platform",
6
6
  "repository": {