@lobu/core 7.2.0 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -3,17 +3,17 @@ export * from "./agent-policy";
3
3
  export type { AgentAccessStore, AgentConfigStore, AgentConnectionStore, AgentMetadata, AgentSettings, AgentStore, ChannelBinding, ConnectionSettings, Grant, GrantKind, StoredConnection, } from "./agent-store";
4
4
  export { inferGrantKind } from "./agent-store";
5
5
  export type { AgentConfigResponse, AgentInfo, CatalogProvider, Connection, McpConfig, ModelOption, PermissionGrant, PrefillMcp, PrefillSkill, ProviderInfo, ProviderState, ProviderStatus, SettingsSnapshot, Skill, SkillMcpServerInfo, } from "./api-types";
6
+ export * from "./capabilities";
6
7
  export type { CommandContext, CommandDefinition } from "./command-registry";
7
8
  export { CommandRegistry } from "./command-registry";
8
- export { BaseInstructionProvider } from "./instruction-provider";
9
- export * from "./capabilities";
10
9
  export * from "./constants";
11
- export * from "./guardrails";
12
10
  export * from "./errors";
11
+ export * from "./guardrails";
12
+ export { BaseInstructionProvider } from "./instruction-provider";
13
13
  export type { ProviderRegistryEntry, ProvidersConfigFile, } from "./integration-types";
14
- export { type AgentEntry as TomlAgentEntry, type EgressEntry as TomlEgressEntry, type PlatformEntry as TomlPlatformEntry, type LobuTomlConfig, lobuConfigSchema, type McpServerEntry as TomlMcpServerEntry, type MemoryEntry as TomlMemoryEntry, type NetworkEntry as TomlNetworkEntry, type ProviderEntry as TomlProviderEntry, type SkillsEntry as TomlSkillsEntry, type ToolsEntry, type ToolsEntry as TomlToolsEntry, type WorkerEntry as TomlWorkerEntry, } from "./lobu-toml-schema";
14
+ export { renderFallbackSystemContext, renderSkillMemorySection, } from "./lobu-guidance";
15
+ export { type AgentEntry as TomlAgentEntry, type EgressEntry as TomlEgressEntry, type LobuTomlConfig, lobuConfigSchema, type McpServerEntry as TomlMcpServerEntry, type MemoryEntry as TomlMemoryEntry, type NetworkEntry as TomlNetworkEntry, type PlatformEntry as TomlPlatformEntry, type ProviderEntry as TomlProviderEntry, type SkillsEntry as TomlSkillsEntry, type ToolsEntry, type ToolsEntry as TomlToolsEntry, type WorkerEntry as TomlWorkerEntry, } from "./lobu-toml-schema";
15
16
  export * from "./logger";
16
- export type { ActionButton, ModuleSessionContext } from "./modules";
17
17
  export * from "./modules";
18
18
  export type { OtelConfig, Span, Tracer } from "./otel";
19
19
  export { createChildSpan, createRootSpan, createSpan, flushTracing, getCurrentSpan, getTraceparent, getTracer, initTracing, runInSpanContext, SpanKind, SpanStatusCode, shutdownTracing, withChildSpan, withSpan, } from "./otel";
@@ -22,7 +22,7 @@ export type { ConfigProviderMeta, ProviderConfigEntry, } from "./provider-config
22
22
  export * from "./secret-refs";
23
23
  export { getSentry, initSentry } from "./sentry";
24
24
  export { extractTraceId, generateTraceId } from "./trace";
25
- export type { AgentEgressConfig, AgentMcpConfig, AgentOptions, AuthProfile, CliBackendConfig, ConversationMessage, DeclaredCredential, DomainJudgeRule, HistoryMessage, InstalledProvider, InstructionContext, InstructionProvider, LogLevel, McpOAuthConfig, McpServerConfig, ModelSelectionMode, ModelSelectionState, NetworkConfig, NixConfig, ProviderModelPreferences, RegistryEntry, SessionContext, SkillConfig, SkillMcpServer, SkillsConfig, SuggestedPrompt, ThinkingLevel, ThreadResponsePayload, ToolsConfig, UserSuggestion, } from "./types";
25
+ export type { AgentEgressConfig, AgentMcpConfig, AgentOptions, AuthProfile, CliBackendConfig, ConversationMessage, DeclaredCredential, DomainJudgeRule, HistoryMessage, InstalledProvider, InstructionContext, InstructionProvider, LogLevel, McpOAuthConfig, McpServerConfig, ModelSelectionMode, ModelSelectionState, NetworkConfig, NixConfig, ProviderModelPreferences, RegistryEntry, SessionContext, SkillConfig, SkillMcpServer, SkillPreToolGuardrail, SkillsConfig, SuggestedPrompt, ThinkingLevel, ThreadResponsePayload, ToolsConfig, UserSuggestion, } from "./types";
26
26
  export { hasCredentialSource } from "./types";
27
27
  export type { BaseMessage } from "./types/message";
28
28
  export * from "./utils/encryption";
@@ -33,7 +33,9 @@ export type { McpStatus, McpToolDef } from "./utils/mcp-tool-instructions";
33
33
  export * from "./utils/network-domains";
34
34
  export * from "./utils/retry";
35
35
  export * from "./utils/sanitize";
36
+ export { entryToMessage, type ParsedMessage, parseSessionEntries, type SessionEntry, } from "./utils/session-file";
36
37
  export * from "./utils/urls";
37
38
  export * from "./worker/auth";
38
39
  export type { WorkerTransport, WorkerTransportConfig, } from "./worker/transport";
40
+ export type { JobType, MessagePayload, QueuedMessage } from "./worker/wire";
39
41
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -16,26 +16,34 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
17
17
  };
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.hasCredentialSource = exports.generateTraceId = exports.extractTraceId = exports.initSentry = exports.getSentry = exports.withSpan = exports.withChildSpan = exports.shutdownTracing = exports.SpanStatusCode = exports.SpanKind = exports.runInSpanContext = exports.initTracing = exports.getTracer = exports.getTraceparent = exports.getCurrentSpan = exports.flushTracing = exports.createSpan = exports.createRootSpan = exports.createChildSpan = exports.lobuConfigSchema = exports.BaseInstructionProvider = exports.CommandRegistry = exports.inferGrantKind = void 0;
19
+ exports.parseSessionEntries = exports.entryToMessage = exports.hasCredentialSource = exports.generateTraceId = exports.extractTraceId = exports.initSentry = exports.getSentry = exports.withSpan = exports.withChildSpan = exports.shutdownTracing = exports.SpanStatusCode = exports.SpanKind = exports.runInSpanContext = exports.initTracing = exports.getTracer = exports.getTraceparent = exports.getCurrentSpan = exports.flushTracing = exports.createSpan = exports.createRootSpan = exports.createChildSpan = exports.lobuConfigSchema = exports.renderSkillMemorySection = exports.renderFallbackSystemContext = exports.BaseInstructionProvider = exports.CommandRegistry = exports.inferGrantKind = void 0;
20
20
  __exportStar(require("./agent-policy"), exports);
21
21
  var agent_store_1 = require("./agent-store");
22
22
  Object.defineProperty(exports, "inferGrantKind", { enumerable: true, get: function () { return agent_store_1.inferGrantKind; } });
23
+ __exportStar(require("./capabilities"), exports);
23
24
  // Command registry
24
25
  var command_registry_1 = require("./command-registry");
25
26
  Object.defineProperty(exports, "CommandRegistry", { enumerable: true, get: function () { return command_registry_1.CommandRegistry; } });
26
- // Shared base for InstructionProvider implementations (server + worker)
27
- var instruction_provider_1 = require("./instruction-provider");
28
- Object.defineProperty(exports, "BaseInstructionProvider", { enumerable: true, get: function () { return instruction_provider_1.BaseInstructionProvider; } });
29
- __exportStar(require("./capabilities"), exports);
30
27
  __exportStar(require("./constants"), exports);
31
- // Guardrail primitive (type + registry + parallel runner + no-op builtin)
32
- __exportStar(require("./guardrails"), exports);
33
28
  // Errors & logging
34
29
  __exportStar(require("./errors"), exports);
30
+ // Guardrail primitive (type + registry + parallel runner + no-op builtin)
31
+ __exportStar(require("./guardrails"), exports);
32
+ // Shared base for InstructionProvider implementations (server + worker)
33
+ var instruction_provider_1 = require("./instruction-provider");
34
+ Object.defineProperty(exports, "BaseInstructionProvider", { enumerable: true, get: function () { return instruction_provider_1.BaseInstructionProvider; } });
35
+ // Lobu memory guidance (rendered into the OpenClaw plugin's fallback system
36
+ // context and into the bundled `lobu` skill's "Memory Defaults" section). Lives
37
+ // in core so the openclaw-plugin and the server-side skill-sync test can both
38
+ // import it via the package name instead of a cross-package relative path.
39
+ var lobu_guidance_1 = require("./lobu-guidance");
40
+ Object.defineProperty(exports, "renderFallbackSystemContext", { enumerable: true, get: function () { return lobu_guidance_1.renderFallbackSystemContext; } });
41
+ Object.defineProperty(exports, "renderSkillMemorySection", { enumerable: true, get: function () { return lobu_guidance_1.renderSkillMemorySection; } });
35
42
  // lobu.toml zod schema (canonical — used by CLI and gateway)
36
43
  var lobu_toml_schema_1 = require("./lobu-toml-schema");
37
44
  Object.defineProperty(exports, "lobuConfigSchema", { enumerable: true, get: function () { return lobu_toml_schema_1.lobuConfigSchema; } });
38
45
  __exportStar(require("./logger"), exports);
46
+ // Module system
39
47
  __exportStar(require("./modules"), exports);
40
48
  // OpenTelemetry tracing
41
49
  var otel_1 = require("./otel");
@@ -71,6 +79,10 @@ __exportStar(require("./utils/lock"), exports);
71
79
  __exportStar(require("./utils/network-domains"), exports);
72
80
  __exportStar(require("./utils/retry"), exports);
73
81
  __exportStar(require("./utils/sanitize"), exports);
82
+ // Shared OpenClaw session.jsonl parser (gateway + worker).
83
+ var session_file_1 = require("./utils/session-file");
84
+ Object.defineProperty(exports, "entryToMessage", { enumerable: true, get: function () { return session_file_1.entryToMessage; } });
85
+ Object.defineProperty(exports, "parseSessionEntries", { enumerable: true, get: function () { return session_file_1.parseSessionEntries; } });
74
86
  __exportStar(require("./utils/urls"), exports);
75
87
  __exportStar(require("./worker/auth"), exports);
76
88
  //# sourceMappingURL=index.js.map
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;AAe/B,6CAA+C;AAAtC,6GAAA,cAAc,OAAA;AAoBvB,mBAAmB;AACnB,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AACxB,wEAAwE;AACxE,+DAAiE;AAAxD,+HAAA,uBAAuB,OAAA;AAChC,iDAA+B;AAC/B,8CAA4B;AAC5B,0EAA0E;AAC1E,+CAA6B;AAC7B,mBAAmB;AACnB,2CAAyB;AAMzB,6DAA6D;AAC7D,uDAc4B;AAT1B,oHAAA,gBAAgB,OAAA;AAUlB,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,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;AAe/B,6CAA+C;AAAtC,6GAAA,cAAc,OAAA;AAmBvB,iDAA+B;AAE/B,mBAAmB;AACnB,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AACxB,8CAA4B;AAC5B,mBAAmB;AACnB,2CAAyB;AACzB,0EAA0E;AAC1E,+CAA6B;AAC7B,wEAAwE;AACxE,+DAAiE;AAAxD,+HAAA,uBAAuB,OAAA;AAMhC,4EAA4E;AAC5E,gFAAgF;AAChF,8EAA8E;AAC9E,2EAA2E;AAC3E,iDAGyB;AAFvB,4HAAA,2BAA2B,OAAA;AAC3B,yHAAA,wBAAwB,OAAA;AAE1B,6DAA6D;AAC7D,uDAc4B;AAV1B,oHAAA,gBAAgB,OAAA;AAWlB,2CAAyB;AACzB,gBAAgB;AAChB,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,gDAA8B;AAC9B,gBAAgB;AAChB,mCAAiD;AAAxC,mGAAA,SAAS,OAAA;AAAE,oGAAA,UAAU,OAAA;AAC9B,iCAA0D;AAAjD,uGAAA,cAAc,OAAA;AAAE,wGAAA,eAAe,OAAA;AAmCxC,iCAA8C;AAArC,4GAAA,mBAAmB,OAAA;AAI5B,YAAY;AACZ,qDAAmC;AACnC,8CAA4B;AAC5B,+CAA6B;AAC7B,+CAA6B;AAE7B,0DAAwC;AACxC,gDAA8B;AAC9B,mDAAiC;AACjC,2DAA2D;AAC3D,qDAK8B;AAJ5B,8GAAA,cAAc,OAAA;AAEd,mHAAA,mBAAmB,OAAA;AAGrB,+CAA6B;AAC7B,gDAA8B"}
@@ -0,0 +1,5 @@
1
+ export declare function renderFallbackSystemContext(options?: {
2
+ gatewayMode?: boolean;
3
+ }): string;
4
+ export declare function renderSkillMemorySection(): string;
5
+ //# sourceMappingURL=lobu-guidance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lobu-guidance.d.ts","sourceRoot":"","sources":["../src/lobu-guidance.ts"],"names":[],"mappings":"AA8BA,wBAAgB,2BAA2B,CAAC,OAAO,CAAC,EAAE;IACpD,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,GAAG,MAAM,CAkBT;AAED,wBAAgB,wBAAwB,IAAI,MAAM,CAYjD"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.renderFallbackSystemContext = renderFallbackSystemContext;
4
+ exports.renderSkillMemorySection = renderSkillMemorySection;
5
+ const MEMORY_INTRO = "Your long-term memory is powered by Lobu. Do NOT use local files (memory/, MEMORY.md) for memory.";
6
+ const MEMORY_RULE_TEMPLATES = [
7
+ "Lobu automatically recalls relevant memories when you receive a message.",
8
+ "To save something, call {{saveTool}} with the content and an appropriate semantic_type.",
9
+ "To search, call {{searchTool}}. Results include view_url links to the web interface.",
10
+ "NEVER construct Lobu URLs yourself. When the user asks for a link, call {{searchTool}} to get the correct view_url.",
11
+ 'When the user says "remember this", save it to Lobu immediately.',
12
+ ];
13
+ function renderTemplate(template, tools) {
14
+ // Use regex /g instead of String.prototype.replaceAll so this file compiles
15
+ // against core's ES2020 lib (replaceAll lands in ES2021).
16
+ return template
17
+ .replace(/\{\{saveTool\}\}/g, tools.saveTool)
18
+ .replace(/\{\{searchTool\}\}/g, tools.searchTool);
19
+ }
20
+ function renderLobuMemoryGuidance(tools) {
21
+ return MEMORY_RULE_TEMPLATES.map((template) => renderTemplate(template, tools));
22
+ }
23
+ function renderFallbackSystemContext(options) {
24
+ const isGateway = options?.gatewayMode === true;
25
+ const tools = isGateway
26
+ ? { saveTool: "save_memory", searchTool: "search_memory" }
27
+ : { saveTool: "lobu_save_memory", searchTool: "lobu_search_memory" };
28
+ const lines = renderLobuMemoryGuidance(tools);
29
+ const authGuidance = isGateway
30
+ ? "\n- If save_memory or search_memory returns an authentication error, call lobu_login to start authentication. After the user completes login, call lobu_login_check to finish."
31
+ : "";
32
+ return `<lobu-system>
33
+ ## Memory
34
+
35
+ ${MEMORY_INTRO}
36
+ ${lines.map((line) => `- ${line}`).join("\n")}${authGuidance}
37
+ </lobu-system>`;
38
+ }
39
+ function renderSkillMemorySection() {
40
+ const lines = renderLobuMemoryGuidance({
41
+ saveTool: "save_memory",
42
+ searchTool: "search_memory",
43
+ });
44
+ return [
45
+ "## Memory Defaults",
46
+ "",
47
+ MEMORY_INTRO,
48
+ ...lines.map((line) => `- ${line}`),
49
+ ].join("\n");
50
+ }
51
+ //# sourceMappingURL=lobu-guidance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lobu-guidance.js","sourceRoot":"","sources":["../src/lobu-guidance.ts"],"names":[],"mappings":";;AA8BA,kEAoBC;AAED,4DAYC;AA3DD,MAAM,YAAY,GAChB,mGAAmG,CAAC;AAEtG,MAAM,qBAAqB,GAAG;IAC5B,0EAA0E;IAC1E,yFAAyF;IACzF,sFAAsF;IACtF,qHAAqH;IACrH,kEAAkE;CACnE,CAAC;AAEF,SAAS,cAAc,CAAC,QAAgB,EAAE,KAA0B;IAClE,4EAA4E;IAC5E,0DAA0D;IAC1D,OAAO,QAAQ;SACZ,OAAO,CAAC,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC;SAC5C,OAAO,CAAC,qBAAqB,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,wBAAwB,CAAC,KAA0B;IAC1D,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC5C,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAChC,CAAC;AACJ,CAAC;AAED,SAAgB,2BAA2B,CAAC,OAE3C;IACC,MAAM,SAAS,GAAG,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAChD,MAAM,KAAK,GAAwB,SAAS;QAC1C,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE;QAC1D,CAAC,CAAC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,UAAU,EAAE,oBAAoB,EAAE,CAAC;IAEvE,MAAM,KAAK,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAE9C,MAAM,YAAY,GAAG,SAAS;QAC5B,CAAC,CAAC,gLAAgL;QAClL,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;;;EAGP,YAAY;EACZ,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,YAAY;eAC7C,CAAC;AAChB,CAAC;AAED,SAAgB,wBAAwB;IACtC,MAAM,KAAK,GAAG,wBAAwB,CAAC;QACrC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,eAAe;KAC5B,CAAC,CAAC;IAEH,OAAO;QACL,oBAAoB;QACpB,EAAE;QACF,YAAY;QACZ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;KACpC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
@@ -96,6 +96,34 @@ declare const egressSchema: z.ZodObject<{
96
96
  extra_policy: z.ZodOptional<z.ZodString>;
97
97
  judge_model: z.ZodOptional<z.ZodString>;
98
98
  }, z.core.$strip>;
99
+ /**
100
+ * Inline guardrail declared in `lobu.toml` as an array of `[[agents.<id>.guardrails_inline]]`
101
+ * tables. Sibling to the name-based `guardrails = ["secret-scan", ...]` list —
102
+ * use this when you want to attach an ad-hoc LLM-judge guardrail without
103
+ * registering a named guardrail at gateway boot.
104
+ *
105
+ * Example:
106
+ * [[agents.<id>.guardrails_inline]]
107
+ * stage = "output"
108
+ * judge = "Never mention competitors."
109
+ *
110
+ * [[agents.<id>.guardrails_inline]]
111
+ * stage = "pre-tool"
112
+ * tools = ["github.delete_repo"]
113
+ * judge = "Only allow when issue ref matches active sprint."
114
+ *
115
+ * `tools` is only meaningful for `pre-tool` and is silently ignored for
116
+ * other stages.
117
+ */
118
+ declare const guardrailInlineSchema: z.ZodObject<{
119
+ stage: z.ZodEnum<{
120
+ input: "input";
121
+ output: "output";
122
+ "pre-tool": "pre-tool";
123
+ }>;
124
+ judge: z.ZodString;
125
+ tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
126
+ }, z.core.$strip>;
99
127
  declare const toolsSchema: z.ZodObject<{
100
128
  pre_approved: z.ZodOptional<z.ZodArray<z.ZodString>>;
101
129
  allowed: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -183,6 +211,16 @@ declare const agentEntrySchema: z.ZodObject<{
183
211
  strict: z.ZodOptional<z.ZodBoolean>;
184
212
  }, z.core.$strip>>;
185
213
  guardrails: z.ZodOptional<z.ZodArray<z.ZodString>>;
214
+ guardrails_disabled: z.ZodOptional<z.ZodArray<z.ZodString>>;
215
+ guardrails_inline: z.ZodOptional<z.ZodArray<z.ZodObject<{
216
+ stage: z.ZodEnum<{
217
+ input: "input";
218
+ output: "output";
219
+ "pre-tool": "pre-tool";
220
+ }>;
221
+ judge: z.ZodString;
222
+ tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
223
+ }, z.core.$strip>>>;
186
224
  worker: z.ZodOptional<z.ZodObject<{
187
225
  nix_packages: z.ZodOptional<z.ZodArray<z.ZodString>>;
188
226
  }, z.core.$strip>>;
@@ -288,6 +326,16 @@ export declare const lobuConfigSchema: z.ZodObject<{
288
326
  strict: z.ZodOptional<z.ZodBoolean>;
289
327
  }, z.core.$strip>>;
290
328
  guardrails: z.ZodOptional<z.ZodArray<z.ZodString>>;
329
+ guardrails_disabled: z.ZodOptional<z.ZodArray<z.ZodString>>;
330
+ guardrails_inline: z.ZodOptional<z.ZodArray<z.ZodObject<{
331
+ stage: z.ZodEnum<{
332
+ input: "input";
333
+ output: "output";
334
+ "pre-tool": "pre-tool";
335
+ }>;
336
+ judge: z.ZodString;
337
+ tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
338
+ }, z.core.$strip>>>;
291
339
  worker: z.ZodOptional<z.ZodObject<{
292
340
  nix_packages: z.ZodOptional<z.ZodArray<z.ZodString>>;
293
341
  }, z.core.$strip>>;
@@ -326,5 +374,6 @@ export type EgressEntry = z.infer<typeof egressSchema>;
326
374
  export type ToolsEntry = z.infer<typeof toolsSchema>;
327
375
  export type WorkerEntry = z.infer<typeof workerSchema>;
328
376
  export type MemoryEntry = z.infer<typeof memorySchema>;
377
+ export type GuardrailInlineEntry = z.infer<typeof guardrailInlineSchema>;
329
378
  export {};
330
379
  //# sourceMappingURL=lobu-toml-schema.d.ts.map
@@ -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,cAAc;;;;;iBA0BlB,CAAC;AAaH,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;iBAsBnB,CAAC;AAIH,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;iBAEhB,CAAC;AAYH,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;GA4Bd,CAAC;AAIN,QAAA,MAAM,YAAY;;;iBAKhB,CAAC;AAmBH,QAAA,MAAM,WAAW;;;;;iBAef,CAAC;AAIH,QAAA,MAAM,YAAY;;iBAEhB,CAAC;AAuBH,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkBpB,CAAC;AAIH,QAAA,MAAM,YAAY;;;;;;;;;;;;;kBAcP,CAAC;AAIZ,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAG3B,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,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAC3D,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,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AACvD,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,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,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,cAAc;;;;;iBA0BlB,CAAC;AAaH,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;iBAsBnB,CAAC;AAIH,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;iBAEhB,CAAC;AAYH,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;GA4Bd,CAAC;AAIN,QAAA,MAAM,YAAY;;;iBAKhB,CAAC;AAIH;;;;;;;;;;;;;;;;;;GAkBG;AACH,QAAA,MAAM,qBAAqB;;;;;;;;iBAazB,CAAC;AAmBH,QAAA,MAAM,WAAW;;;;;iBAef,CAAC;AAIH,QAAA,MAAM,YAAY;;iBAEhB,CAAC;AAuBH,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgCpB,CAAC;AAIH,QAAA,MAAM,YAAY;;;;;;;;;;;;;kBAcP,CAAC;AAIZ,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAG3B,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,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAC3D,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,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AACvD,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,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AACvD,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
@@ -128,6 +128,40 @@ const egressSchema = zod_1.z.object({
128
128
  /** Judge model identifier (defaults to a fast Haiku model). */
129
129
  judge_model: zod_1.z.string().optional(),
130
130
  });
131
+ // ── Guardrails (inline) ─────────────────────────────────────────────────────
132
+ /**
133
+ * Inline guardrail declared in `lobu.toml` as an array of `[[agents.<id>.guardrails_inline]]`
134
+ * tables. Sibling to the name-based `guardrails = ["secret-scan", ...]` list —
135
+ * use this when you want to attach an ad-hoc LLM-judge guardrail without
136
+ * registering a named guardrail at gateway boot.
137
+ *
138
+ * Example:
139
+ * [[agents.<id>.guardrails_inline]]
140
+ * stage = "output"
141
+ * judge = "Never mention competitors."
142
+ *
143
+ * [[agents.<id>.guardrails_inline]]
144
+ * stage = "pre-tool"
145
+ * tools = ["github.delete_repo"]
146
+ * judge = "Only allow when issue ref matches active sprint."
147
+ *
148
+ * `tools` is only meaningful for `pre-tool` and is silently ignored for
149
+ * other stages.
150
+ */
151
+ const guardrailInlineSchema = zod_1.z.object({
152
+ stage: zod_1.z.enum(["input", "output", "pre-tool"]),
153
+ /**
154
+ * Inline LLM-judge policy text. Required for now — built-in references go
155
+ * in the sibling `guardrails = [...]` list. The judge runs through the
156
+ * shared TextJudge engine (Haiku + 5-min cache + circuit breaker).
157
+ */
158
+ judge: zod_1.z.string().min(1),
159
+ /**
160
+ * Optional pre-tool narrowing. Only meaningful when `stage = "pre-tool"`.
161
+ * When omitted the guardrail runs on every tool call.
162
+ */
163
+ tools: zod_1.z.array(zod_1.z.string()).optional(),
164
+ });
131
165
  // ── Tools ───────────────────────────────────────────────────────────────────
132
166
  /**
133
167
  * Accepted `pre_approved` entry formats:
@@ -195,6 +229,20 @@ const agentEntrySchema = zod_1.z.object({
195
229
  * registered in the gateway's GuardrailRegistry. See packages/core/src/guardrails.
196
230
  */
197
231
  guardrails: zod_1.z.array(zod_1.z.string()).optional(),
232
+ /**
233
+ * Operator's exclude list: built-in / skill-provided guardrails that
234
+ * should be turned off for this agent even if a skill declared them.
235
+ * Names are matched against {@link Guardrail.name}, including the
236
+ * synthesized `inline:<stage>:<hash8>` names for inline judges from skills.
237
+ */
238
+ guardrails_disabled: zod_1.z.array(zod_1.z.string()).optional(),
239
+ /**
240
+ * Inline guardrails declared directly on the agent (no registry lookup).
241
+ * Each entry materializes into an ad-hoc registered guardrail named
242
+ * `inline:<stage>:<hash8>` (hash of policy text) and is merged into the
243
+ * effective per-agent list at startup.
244
+ */
245
+ guardrails_inline: zod_1.z.array(guardrailInlineSchema).optional(),
198
246
  worker: workerSchema.optional(),
199
247
  preview: previewSchema.optional(),
200
248
  });
@@ -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/dist/modules.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export interface ModuleInterface<_TModuleData = unknown> {
1
+ export interface ModuleInterface {
2
2
  /** Module identifier */
3
3
  name: string;
4
4
  /** Check if module should be enabled based on environment */
@@ -8,38 +8,8 @@ export interface ModuleInterface<_TModuleData = unknown> {
8
8
  /** Register HTTP endpoints with Express app */
9
9
  registerEndpoints(app: any): void;
10
10
  }
11
- export interface WorkerContext {
12
- workspaceDir: string;
13
- userId: string;
14
- conversationId: string;
15
- }
16
- export interface WorkerModule<TModuleData = unknown> extends ModuleInterface<TModuleData> {
17
- /** Initialize workspace - called when worker starts session */
18
- initWorkspace(config: any): Promise<void>;
19
- /** Called at session start - can modify system prompt */
20
- onSessionStart(context: ModuleSessionContext): Promise<ModuleSessionContext>;
21
- /** Called at session end - can add action buttons */
22
- onSessionEnd(context: ModuleSessionContext): Promise<ActionButton[]>;
23
- /** Collect module-specific data before sending response. Return null if no data. */
24
- onBeforeResponse(context: WorkerContext): Promise<TModuleData | null>;
25
- }
26
- export interface ModuleSessionContext {
27
- userId: string;
28
- conversationId: string;
29
- systemPrompt: string;
30
- workspace?: any;
31
- }
32
- export interface ActionButton {
33
- text: string;
34
- action_id: string;
35
- style?: "primary" | "danger";
36
- value?: string;
37
- url?: string;
38
- }
39
11
  export interface IModuleRegistry {
40
12
  register(module: ModuleInterface): void;
41
- getWorkerModules(): WorkerModule[];
42
- registerAvailableModules(modulePackages?: string[]): Promise<void>;
43
13
  initAll(): Promise<void>;
44
14
  registerEndpoints(app: any): void;
45
15
  /** Return all registered modules as base ModuleInterface array. */
@@ -68,24 +38,8 @@ export interface IModuleRegistry {
68
38
  export declare class ModuleRegistry implements IModuleRegistry {
69
39
  private modules;
70
40
  register(module: ModuleInterface): void;
71
- /**
72
- * Automatically discover and register available modules.
73
- * Tries to import module packages and registers them if available.
74
- *
75
- * @param modulePackages - List of module package names to try loading.
76
- * Users can provide custom modules to register.
77
- *
78
- * @example
79
- * // Register custom modules
80
- * await moduleRegistry.registerAvailableModules([
81
- * '@mycompany/slack-module',
82
- * '@mycompany/jira-module'
83
- * ]);
84
- */
85
- registerAvailableModules(modulePackages?: string[]): Promise<void>;
86
41
  initAll(): Promise<void>;
87
42
  registerEndpoints(app: any): void;
88
- getWorkerModules(): WorkerModule[];
89
43
  getModules(): ModuleInterface[];
90
44
  }
91
45
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"modules.d.ts","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,eAAe,CAAC,YAAY,GAAG,OAAO;IACrD,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IAEb,6DAA6D;IAC7D,SAAS,IAAI,OAAO,CAAC;IAErB,iDAAiD;IACjD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB,+CAA+C;IAC/C,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAY,CAAC,WAAW,GAAG,OAAO,CACjD,SAAQ,eAAe,CAAC,WAAW,CAAC;IACpC,+DAA+D;IAC/D,aAAa,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1C,yDAAyD;IACzD,cAAc,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE7E,qDAAqD;IACrD,YAAY,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAErE,oFAAoF;IACpF,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;CACvE;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,GAAG,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAMD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,gBAAgB,IAAI,YAAY,EAAE,CAAC;IACnC,wBAAwB,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC;IAClC,mEAAmE;IACnE,UAAU,IAAI,eAAe,EAAE,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,cAAe,YAAW,eAAe;IACpD,OAAO,CAAC,OAAO,CAA2C;IAE1D,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAMvC;;;;;;;;;;;;;OAaG;IACG,wBAAwB,CAAC,cAAc,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BtE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ9B,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IAajC,gBAAgB,IAAI,YAAY,EAAE;IAMlC,UAAU,IAAI,eAAe,EAAE;CAGhC;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
1
+ {"version":3,"file":"modules.d.ts","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,eAAe;IAC9B,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IAEb,6DAA6D;IAC7D,SAAS,IAAI,OAAO,CAAC;IAErB,iDAAiD;IACjD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB,+CAA+C;IAC/C,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC;CACnC;AAMD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC;IAClC,mEAAmE;IACnE,UAAU,IAAI,eAAe,EAAE,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,cAAe,YAAW,eAAe;IACpD,OAAO,CAAC,OAAO,CAA2C;IAE1D,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAMjC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ9B,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IAajC,UAAU,IAAI,eAAe,EAAE;CAGhC;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
package/dist/modules.js CHANGED
@@ -1,37 +1,4 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  Object.defineProperty(exports, "__esModule", { value: true });
36
3
  exports.moduleRegistry = exports.ModuleRegistry = void 0;
37
4
  const logger_1 = require("./logger");
@@ -65,44 +32,6 @@ class ModuleRegistry {
65
32
  this.modules.set(module.name, module);
66
33
  }
67
34
  }
68
- /**
69
- * Automatically discover and register available modules.
70
- * Tries to import module packages and registers them if available.
71
- *
72
- * @param modulePackages - List of module package names to try loading.
73
- * Users can provide custom modules to register.
74
- *
75
- * @example
76
- * // Register custom modules
77
- * await moduleRegistry.registerAvailableModules([
78
- * '@mycompany/slack-module',
79
- * '@mycompany/jira-module'
80
- * ]);
81
- */
82
- async registerAvailableModules(modulePackages = []) {
83
- for (const packageName of modulePackages) {
84
- try {
85
- // Dynamic import to avoid build-time dependencies
86
- const moduleExports = await Promise.resolve(`${packageName}`).then(s => __importStar(require(s)));
87
- // Try common export patterns
88
- const ModuleClass = moduleExports.default ||
89
- Object.values(moduleExports).find((exp) => typeof exp === "function" && exp.name.endsWith("Module"));
90
- if (ModuleClass && typeof ModuleClass === "function") {
91
- const moduleInstance = new ModuleClass();
92
- if (!this.modules.has(moduleInstance.name)) {
93
- this.register(moduleInstance);
94
- logger.debug(`${packageName} registered`);
95
- }
96
- }
97
- else {
98
- logger.debug(`${packageName}: No module class found in exports`);
99
- }
100
- }
101
- catch {
102
- logger.debug(`${packageName} not available`);
103
- }
104
- }
105
- }
106
35
  async initAll() {
107
36
  for (const module of this.modules.values()) {
108
37
  logger.debug(`Initializing module: ${module.name}`);
@@ -120,9 +49,6 @@ class ModuleRegistry {
120
49
  }
121
50
  }
122
51
  }
123
- getWorkerModules() {
124
- return Array.from(this.modules.values()).filter((m) => "onBeforeResponse" in m);
125
- }
126
52
  getModules() {
127
53
  return Array.from(this.modules.values());
128
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"modules.js","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"modules.js","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":";;;AAAA,qCAAwC;AAExC,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,SAAS,CAAC,CAAC;AAgCvC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAa,cAAc;IAA3B;QACU,YAAO,GAAiC,IAAI,GAAG,EAAE,CAAC;IAgC5D,CAAC;IA9BC,QAAQ,CAAC,MAAuB;QAC9B,IAAI,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3C,MAAM,CAAC,KAAK,CAAC,wBAAwB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACpD,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,IAAI,cAAc,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,iBAAiB,CAAC,GAAQ;QACxB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3C,IAAI,CAAC;gBACH,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;YAChC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CACV,2CAA2C,MAAM,CAAC,IAAI,GAAG,EACzD,KAAK,CACN,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,UAAU;QACR,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3C,CAAC;CACF;AAjCD,wCAiCC;AAED;;;GAGG;AACU,QAAA,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC"}
package/dist/types.d.ts CHANGED
@@ -182,7 +182,45 @@ export interface SkillConfig {
182
182
  modelPreference?: string;
183
183
  /** Thinking level budget for this skill */
184
184
  thinkingLevel?: ThinkingLevel;
185
+ /**
186
+ * Guardrails declared by the skill.
187
+ *
188
+ * Skills may only declare `pre-tool` guardrails — the asymmetry is
189
+ * deliberate. `input` (user message → worker) and `output` (worker text →
190
+ * user) are agent-wide concerns: a skill can't decide for the operator
191
+ * which messages should reach which agent or which words an agent may
192
+ * speak. `pre-tool` is scoped to specific tool invocations, which is what
193
+ * a skill knows about — it can reasonably say "before this tool runs,
194
+ * apply this judge".
195
+ *
196
+ * Discriminated by `kind` so invalid combinations (neither / both) are
197
+ * compile-time TS errors instead of runtime warnings:
198
+ * - `{ kind: "builtin", name }` — reference a registered guardrail.
199
+ * The optional `tools` field is ignored for builtins (built-ins
200
+ * decide their own input filtering); use an inline judge if you
201
+ * want per-tool narrowing.
202
+ * - `{ kind: "judge", policy, tools? }` — ad-hoc LLM-judge policy;
203
+ * `tools` narrows the judge to specific tool names (matched against
204
+ * `toolName` in {@link PreToolGuardrailContext}); when absent, the
205
+ * guardrail runs on every pre-tool invocation.
206
+ */
207
+ guardrails?: {
208
+ "pre-tool"?: Array<SkillPreToolGuardrail>;
209
+ };
185
210
  }
211
+ /**
212
+ * Discriminated union of legal skill-declared pre-tool guardrail entries.
213
+ * Each entry must be either a built-in reference or an inline judge --
214
+ * setting both, or neither, is rejected by the type checker.
215
+ */
216
+ export type SkillPreToolGuardrail = {
217
+ kind: "builtin";
218
+ name: string;
219
+ } | {
220
+ kind: "judge";
221
+ policy: string;
222
+ tools?: string[];
223
+ };
186
224
  /**
187
225
  * Skills configuration for agent settings.
188
226
  * Contains list of configured skills that can be enabled/disabled.
@@ -424,7 +462,6 @@ export interface ThreadResponsePayload {
424
462
  errorCode?: string;
425
463
  timestamp: number;
426
464
  originalMessageId?: string;
427
- moduleData?: Record<string, unknown>;
428
465
  botResponseId?: string;
429
466
  ephemeral?: boolean;
430
467
  platformMetadata?: Record<string, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,24 @@
1
+ /**
2
+ * Decode a candidate ENCRYPTION_KEY string into 32 canonical bytes, or
3
+ * return null if it doesn't satisfy the canonical base64 / base64url /
4
+ * hex 32-byte format. Pure (no env, no cache, no throw) so callers like
5
+ * the install-operator bootstrap can fail-fast with a clear message
6
+ * before any side effect.
7
+ */
8
+ export declare function decodeEncryptionKey(key: string): Buffer | null;
9
+ /**
10
+ * Canonical error message for a malformed ENCRYPTION_KEY. Centralised so
11
+ * the install-operator bootstrap and any other upstream validator emit
12
+ * the exact same actionable text the runtime encrypt/decrypt path would.
13
+ */
14
+ export declare const ENCRYPTION_KEY_FORMAT_ERROR: string;
15
+ /**
16
+ * Validate `process.env.ENCRYPTION_KEY` (or an explicit override) without
17
+ * caching. Throws with an actionable message if the value is missing or
18
+ * not a canonical 32-byte encoding. Use at boot to fail fast instead of
19
+ * letting later encrypt/decrypt calls return 500s.
20
+ */
21
+ export declare function assertEncryptionKey(value?: string): void;
1
22
  /**
2
23
  * Encrypt a string using AES-256-GCM
3
24
  */
@@ -1 +1 @@
1
- {"version":3,"file":"encryption.d.ts","sourceRoot":"","sources":["../../src/utils/encryption.ts"],"names":[],"mappings":"AAsEA;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAU5C;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAc5C;AAED,yFAAyF;AACzF,wBAAgB,iCAAiC,IAAI,IAAI,CAExD"}
1
+ {"version":3,"file":"encryption.d.ts","sourceRoot":"","sources":["../../src/utils/encryption.ts"],"names":[],"mappings":"AAeA;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAyC9D;AAED;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,QAEwC,CAAC;AAEjF;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAUxD;AAkBD;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAU5C;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAc5C;AAED,yFAAyF;AACzF,wBAAgB,iCAAiC,IAAI,IAAI,CAExD"}
@@ -33,6 +33,9 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.ENCRYPTION_KEY_FORMAT_ERROR = void 0;
37
+ exports.decodeEncryptionKey = decodeEncryptionKey;
38
+ exports.assertEncryptionKey = assertEncryptionKey;
36
39
  exports.encrypt = encrypt;
37
40
  exports.decrypt = decrypt;
38
41
  exports.__resetEncryptionKeyCacheForTests = __resetEncryptionKeyCacheForTests;
@@ -48,13 +51,16 @@ const IV_LENGTH = 12; // 96-bit nonce for AES-GCM
48
51
  // once and reuse the buffer instead of re-parsing the env var on every
49
52
  // encrypt/decrypt call (these run on per-request / per-worker-RPC hot paths).
50
53
  let cachedKey;
51
- function getEncryptionKey() {
52
- if (cachedKey)
53
- return cachedKey;
54
- const key = process.env.ENCRYPTION_KEY || "";
55
- if (!key) {
56
- throw new Error("ENCRYPTION_KEY environment variable is required for secure operation");
57
- }
54
+ /**
55
+ * Decode a candidate ENCRYPTION_KEY string into 32 canonical bytes, or
56
+ * return null if it doesn't satisfy the canonical base64 / base64url /
57
+ * hex 32-byte format. Pure (no env, no cache, no throw) so callers like
58
+ * the install-operator bootstrap can fail-fast with a clear message
59
+ * before any side effect.
60
+ */
61
+ function decodeEncryptionKey(key) {
62
+ if (!key)
63
+ return null;
58
64
  // Try to decode as base64 first (most common format). `Buffer.from(x,
59
65
  // "base64")` silently drops non-base64 chars rather than throwing, so a
60
66
  // typo'd key can yield a short/garbled buffer. Require canonical base64 and
@@ -62,7 +68,6 @@ function getEncryptionKey() {
62
68
  if (/^[A-Za-z0-9+/]+={0,2}$/.test(key) && key.length % 4 === 0) {
63
69
  const base64Buffer = Buffer.from(key, "base64");
64
70
  if (base64Buffer.length === 32 && base64Buffer.toString("base64") === key) {
65
- cachedKey = base64Buffer;
66
71
  return base64Buffer;
67
72
  }
68
73
  }
@@ -74,7 +79,6 @@ function getEncryptionKey() {
74
79
  const urlsafeBuffer = Buffer.from(key, "base64url");
75
80
  if (urlsafeBuffer.length === 32 &&
76
81
  urlsafeBuffer.toString("base64url") === key) {
77
- cachedKey = urlsafeBuffer;
78
82
  return urlsafeBuffer;
79
83
  }
80
84
  }
@@ -84,12 +88,46 @@ function getEncryptionKey() {
84
88
  const hexBuffer = Buffer.from(key, "hex");
85
89
  if (hexBuffer.length === 32 &&
86
90
  hexBuffer.toString("hex") === key.toLowerCase()) {
87
- cachedKey = hexBuffer;
88
91
  return hexBuffer;
89
92
  }
90
93
  }
91
- throw new Error("ENCRYPTION_KEY must be a canonical base64 or hex encoded 32-byte key. " +
92
- "Generate a valid key with: openssl rand -base64 32 (or openssl rand -hex 32)");
94
+ return null;
95
+ }
96
+ /**
97
+ * Canonical error message for a malformed ENCRYPTION_KEY. Centralised so
98
+ * the install-operator bootstrap and any other upstream validator emit
99
+ * the exact same actionable text the runtime encrypt/decrypt path would.
100
+ */
101
+ exports.ENCRYPTION_KEY_FORMAT_ERROR = "ENCRYPTION_KEY must be a canonical base64 or hex encoded 32-byte key. " +
102
+ "Generate a valid key with: openssl rand -base64 32 (or openssl rand -hex 32)";
103
+ /**
104
+ * Validate `process.env.ENCRYPTION_KEY` (or an explicit override) without
105
+ * caching. Throws with an actionable message if the value is missing or
106
+ * not a canonical 32-byte encoding. Use at boot to fail fast instead of
107
+ * letting later encrypt/decrypt calls return 500s.
108
+ */
109
+ function assertEncryptionKey(value) {
110
+ const key = value ?? process.env.ENCRYPTION_KEY ?? "";
111
+ if (!key) {
112
+ throw new Error("ENCRYPTION_KEY environment variable is required for secure operation");
113
+ }
114
+ if (!decodeEncryptionKey(key)) {
115
+ throw new Error(exports.ENCRYPTION_KEY_FORMAT_ERROR);
116
+ }
117
+ }
118
+ function getEncryptionKey() {
119
+ if (cachedKey)
120
+ return cachedKey;
121
+ const key = process.env.ENCRYPTION_KEY || "";
122
+ if (!key) {
123
+ throw new Error("ENCRYPTION_KEY environment variable is required for secure operation");
124
+ }
125
+ const decoded = decodeEncryptionKey(key);
126
+ if (!decoded) {
127
+ throw new Error(exports.ENCRYPTION_KEY_FORMAT_ERROR);
128
+ }
129
+ cachedKey = decoded;
130
+ return decoded;
93
131
  }
94
132
  /**
95
133
  * Encrypt a string using AES-256-GCM
@@ -1 +1 @@
1
- {"version":3,"file":"encryption.js","sourceRoot":"","sources":["../../src/utils/encryption.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"encryption.js","sourceRoot":"","sources":["../../src/utils/encryption.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Shared parser for OpenClaw `session.jsonl` files.
3
+ *
4
+ * Two HTTP surfaces read these files: the worker's `/session/messages` /
5
+ * `/session/stats` endpoints (rooted at the worker's own `WORKSPACE_DIR`)
6
+ * and the gateway's `/session/messages` / `/session/stats` REST endpoints
7
+ * (rooted at the gateway's `workspaces/<agentId>` tree, queried when the
8
+ * worker is offline). The gateway proxies to the worker when it's online
9
+ * and falls back to its own copy otherwise — so the two parsers must
10
+ * agree, and historically they had drifted (different fields kept on
11
+ * `SessionEntry`, different `JSON.parse` error handling, the same logic
12
+ * copy-pasted twice).
13
+ *
14
+ * Anything path-policy related (where to *look* for the file) stays at
15
+ * the call site — the worker scans one level under `WORKSPACE_DIR`; the
16
+ * gateway scans up to three levels under the per-agent workspace dir
17
+ * with a `SAFE_AGENT_ID` regex guarding the join. Those are intentionally
18
+ * different and must not be collapsed without an operator decision.
19
+ */
20
+ /**
21
+ * Raw entry shape as written to `session.jsonl` by the worker.
22
+ *
23
+ * `tokensBefore` / `firstKeptEntryId` (worker memory-flush bookkeeping)
24
+ * are not read by either parser today — left off this canonical shape on
25
+ * purpose; reintroduce when a consumer actually needs them.
26
+ */
27
+ export interface SessionEntry {
28
+ type: string;
29
+ id: string;
30
+ parentId: string | null;
31
+ timestamp: string;
32
+ message?: {
33
+ role: string;
34
+ content: unknown;
35
+ usage?: {
36
+ inputTokens?: number;
37
+ outputTokens?: number;
38
+ };
39
+ };
40
+ summary?: string;
41
+ provider?: string;
42
+ modelId?: string;
43
+ customType?: string;
44
+ content?: unknown;
45
+ display?: boolean;
46
+ }
47
+ /** Display-friendly projection emitted to API consumers (`/session/messages`). */
48
+ export interface ParsedMessage {
49
+ id: string;
50
+ type: string;
51
+ role?: string;
52
+ content: unknown;
53
+ model?: string;
54
+ timestamp: string;
55
+ isVerbose?: boolean;
56
+ usage?: {
57
+ inputTokens?: number;
58
+ outputTokens?: number;
59
+ };
60
+ }
61
+ /**
62
+ * Parse a session.jsonl blob into entries + the synthetic session id
63
+ * found on the leading `{type: "session", id}` line.
64
+ *
65
+ * - Splits on `\n` and skips blank lines (same as both pre-existing copies).
66
+ * - Uses {@link safeJsonParse} so malformed lines are skipped quietly with
67
+ * a debug log (debug-only because production sessions occasionally
68
+ * contain partial writes after crash/kill).
69
+ * - The leading `session` entry is extracted, not pushed into `entries`.
70
+ */
71
+ export declare function parseSessionEntries(content: string): {
72
+ entries: SessionEntry[];
73
+ sessionId?: string;
74
+ };
75
+ /**
76
+ * Project a single {@link SessionEntry} into the {@link ParsedMessage}
77
+ * display shape, or `null` for entry kinds that don't surface as
78
+ * user-visible messages (everything other than `message`, `compaction`,
79
+ * `model_change`, `custom_message`).
80
+ *
81
+ * `isVerbose` marks entries the UI hides behind a "verbose" toggle —
82
+ * tool results, compaction/model-change markers, custom system events
83
+ * that aren't explicitly displayed.
84
+ */
85
+ export declare function entryToMessage(entry: SessionEntry): ParsedMessage | null;
86
+ //# sourceMappingURL=session-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-file.d.ts","sourceRoot":"","sources":["../../src/utils/session-file.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE;YAAE,WAAW,CAAC,EAAE,MAAM,CAAC;YAAC,YAAY,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KACzD,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,kFAAkF;AAClF,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACzD;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG;IACpD,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAcA;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,aAAa,GAAG,IAAI,CA0CxE"}
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ /**
3
+ * Shared parser for OpenClaw `session.jsonl` files.
4
+ *
5
+ * Two HTTP surfaces read these files: the worker's `/session/messages` /
6
+ * `/session/stats` endpoints (rooted at the worker's own `WORKSPACE_DIR`)
7
+ * and the gateway's `/session/messages` / `/session/stats` REST endpoints
8
+ * (rooted at the gateway's `workspaces/<agentId>` tree, queried when the
9
+ * worker is offline). The gateway proxies to the worker when it's online
10
+ * and falls back to its own copy otherwise — so the two parsers must
11
+ * agree, and historically they had drifted (different fields kept on
12
+ * `SessionEntry`, different `JSON.parse` error handling, the same logic
13
+ * copy-pasted twice).
14
+ *
15
+ * Anything path-policy related (where to *look* for the file) stays at
16
+ * the call site — the worker scans one level under `WORKSPACE_DIR`; the
17
+ * gateway scans up to three levels under the per-agent workspace dir
18
+ * with a `SAFE_AGENT_ID` regex guarding the join. Those are intentionally
19
+ * different and must not be collapsed without an operator decision.
20
+ */
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.parseSessionEntries = parseSessionEntries;
23
+ exports.entryToMessage = entryToMessage;
24
+ const json_1 = require("./json");
25
+ /**
26
+ * Parse a session.jsonl blob into entries + the synthetic session id
27
+ * found on the leading `{type: "session", id}` line.
28
+ *
29
+ * - Splits on `\n` and skips blank lines (same as both pre-existing copies).
30
+ * - Uses {@link safeJsonParse} so malformed lines are skipped quietly with
31
+ * a debug log (debug-only because production sessions occasionally
32
+ * contain partial writes after crash/kill).
33
+ * - The leading `session` entry is extracted, not pushed into `entries`.
34
+ */
35
+ function parseSessionEntries(content) {
36
+ const lines = content.split("\n").filter((l) => l.trim());
37
+ const entries = [];
38
+ let sessionId;
39
+ for (const line of lines) {
40
+ const parsed = (0, json_1.safeJsonParse)(line);
41
+ if (!parsed)
42
+ continue;
43
+ if (parsed.type === "session") {
44
+ sessionId = parsed.id;
45
+ continue;
46
+ }
47
+ entries.push(parsed);
48
+ }
49
+ return { entries, sessionId };
50
+ }
51
+ /**
52
+ * Project a single {@link SessionEntry} into the {@link ParsedMessage}
53
+ * display shape, or `null` for entry kinds that don't surface as
54
+ * user-visible messages (everything other than `message`, `compaction`,
55
+ * `model_change`, `custom_message`).
56
+ *
57
+ * `isVerbose` marks entries the UI hides behind a "verbose" toggle —
58
+ * tool results, compaction/model-change markers, custom system events
59
+ * that aren't explicitly displayed.
60
+ */
61
+ function entryToMessage(entry) {
62
+ if (entry.type === "message" && entry.message) {
63
+ return {
64
+ id: entry.id,
65
+ type: "message",
66
+ role: entry.message.role,
67
+ content: entry.message.content,
68
+ timestamp: entry.timestamp,
69
+ isVerbose: entry.message.role === "toolResult",
70
+ usage: entry.message.usage,
71
+ };
72
+ }
73
+ if (entry.type === "compaction") {
74
+ return {
75
+ id: entry.id,
76
+ type: "compaction",
77
+ content: entry.summary || "",
78
+ timestamp: entry.timestamp,
79
+ isVerbose: true,
80
+ };
81
+ }
82
+ if (entry.type === "model_change") {
83
+ return {
84
+ id: entry.id,
85
+ type: "model_change",
86
+ content: `${entry.provider}/${entry.modelId}`,
87
+ model: `${entry.provider}/${entry.modelId}`,
88
+ timestamp: entry.timestamp,
89
+ isVerbose: true,
90
+ };
91
+ }
92
+ if (entry.type === "custom_message") {
93
+ return {
94
+ id: entry.id,
95
+ type: "custom_message",
96
+ role: "user",
97
+ content: entry.content,
98
+ timestamp: entry.timestamp,
99
+ isVerbose: !entry.display,
100
+ };
101
+ }
102
+ return null;
103
+ }
104
+ //# sourceMappingURL=session-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-file.js","sourceRoot":"","sources":["../../src/utils/session-file.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;AAmDH,kDAiBC;AAYD,wCA0CC;AAxHD,iCAAuC;AAuCvC;;;;;;;;;GASG;AACH,SAAgB,mBAAmB,CAAC,OAAe;IAIjD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,IAAI,SAA6B,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,IAAA,oBAAa,EAAgC,IAAI,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC;YACtB,SAAS;QACX,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAChC,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,cAAc,CAAC,KAAmB;IAChD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAC9C,OAAO;YACL,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;YACxB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO;YAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY;YAC9C,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK;SAC3B,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAChC,OAAO;YACL,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;YAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,IAAI;SAChB,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QAClC,OAAO;YACL,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,EAAE;YAC7C,KAAK,EAAE,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,EAAE;YAC3C,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,IAAI;SAChB,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QACpC,OAAO;YACL,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,CAAC,KAAK,CAAC,OAAO;SAC1B,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -17,11 +17,6 @@ export interface WorkerTransport {
17
17
  * Used to correlate responses with the originating request
18
18
  */
19
19
  setJobId(jobId: string): void;
20
- /**
21
- * Set module-specific data to be included in responses
22
- * Allows modules to attach metadata to worker responses
23
- */
24
- setModuleData(moduleData: Record<string, unknown>): void;
25
20
  /**
26
21
  * Send a streaming delta to the gateway
27
22
  *
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/worker/transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9B;;;OAGG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAEzD;;;;;;OAMG;IACH,eAAe,CACb,KAAK,EAAE,MAAM,EACb,iBAAiB,CAAC,EAAE,OAAO,EAC3B,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;OAKG;IACH,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/C;;OAEG;IACH,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAElC;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7D;;;;;;OAMG;IACH,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvE;;;OAGG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7E;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IAEnB,sCAAsC;IACtC,WAAW,EAAE,MAAM,CAAC;IAEpB,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IAEf,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAElB,8CAA8C;IAC9C,cAAc,EAAE,MAAM,CAAC;IAEvB,oCAAoC;IACpC,iBAAiB,EAAE,MAAM,CAAC;IAE1B,sDAAsD;IACtD,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IAEf,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE3C,4DAA4D;IAC5D,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/worker/transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9B;;;;;;OAMG;IACH,eAAe,CACb,KAAK,EAAE,MAAM,EACb,iBAAiB,CAAC,EAAE,OAAO,EAC3B,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;OAKG;IACH,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/C;;OAEG;IACH,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAElC;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7D;;;;;;OAMG;IACH,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvE;;;OAGG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7E;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IAEnB,sCAAsC;IACtC,WAAW,EAAE,MAAM,CAAC;IAEpB,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IAEf,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAElB,8CAA8C;IAC9C,cAAc,EAAE,MAAM,CAAC;IAEvB,oCAAoC;IACpC,iBAAiB,EAAE,MAAM,CAAC;IAE1B,sDAAsD;IACtD,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IAEf,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE3C,4DAA4D;IAC5D,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Gateway ↔ worker wire contract.
3
+ *
4
+ * `MessagePayload` is what `MessageConsumer` (gateway) enqueues on the runs
5
+ * queue, what `EmbeddedDeploymentManager.dispatch*` writes to the worker SSE
6
+ * stream, and what the worker's `GatewayClient.handleThreadMessage` /
7
+ * `handleExecJob` consumes. Same shape on both sides — keep it here.
8
+ *
9
+ * Before this lived in core, the worker had its own `MessagePayload`
10
+ * declaration that was a structural subset of the gateway's (missing
11
+ * `organizationId`, `networkConfig`, `egressConfig`, `mcpConfig`, `nixConfig`,
12
+ * `preApprovedTools`). At runtime the worker's zod schema was patched with
13
+ * `.passthrough()` so the extra fields survived parsing, but the static type
14
+ * silently lied. Hoisting closes the gap.
15
+ */
16
+ import type { AgentEgressConfig, AgentMcpConfig, AgentOptions, NetworkConfig, NixConfig } from "../types";
17
+ /**
18
+ * Job type for queue messages.
19
+ * - `message`: standard agent message execution.
20
+ * - `exec`: direct command execution in the sandbox.
21
+ */
22
+ export type JobType = "message" | "exec";
23
+ /**
24
+ * Universal message payload for every gateway → worker hop.
25
+ * Used by: platform inbound → runs queue → MessageConsumer → worker.
26
+ */
27
+ export interface MessagePayload {
28
+ userId: string;
29
+ conversationId: string;
30
+ messageId: string;
31
+ channelId: string;
32
+ /**
33
+ * Team/workspace ID. Required in the gateway-produced payload (always
34
+ * stamped by `buildMessagePayload`), but optional in the wire type
35
+ * because Slack carries the workspace ID in `platformMetadata` and the
36
+ * worker reads it defensively (`payload.teamId ?? platformMetadata.teamId`).
37
+ * The worker SSE schema parses it with `z.string().optional()`.
38
+ */
39
+ teamId?: string;
40
+ /** Agent / session ID for tenant isolation. */
41
+ agentId: string;
42
+ /**
43
+ * Owning organization of the agent. Plumbed through so child queries
44
+ * (grants, user-agents, channel-bindings, secrets) can scope by org —
45
+ * agent IDs are per-org-unique, so `agent_id = ?` alone is ambiguous.
46
+ */
47
+ organizationId?: string;
48
+ /** Bot identifier. */
49
+ botId: string;
50
+ /** Platform name (`slack`, `telegram`, ...). */
51
+ platform: string;
52
+ messageText: string;
53
+ platformMetadata: Record<string, unknown>;
54
+ agentOptions: AgentOptions;
55
+ networkConfig?: NetworkConfig;
56
+ /**
57
+ * The runs.id of the row the runs-queue claimed when this message was
58
+ * dispatched. Threaded all the way to the worker so the per-run
59
+ * agent_transcript_snapshot POST can attribute the snapshot to the
60
+ * correct run unambiguously — codex P1#1 on PR #865.
61
+ */
62
+ runId?: number;
63
+ /**
64
+ * Per-run worker JWT bound to `runId` above. Minted by the runs-queue
65
+ * dispatcher (`MessageConsumer.handleMessage`) so the snapshot route can
66
+ * require `tokenData.runId === body.runId` and reject any attempt by a
67
+ * same-(org, agent, conv) deployment-lifetime token to write under a
68
+ * different run's slot — codex round 2 finding A on PR #865.
69
+ */
70
+ runJobToken?: string;
71
+ /** Per-agent egress judge configuration. */
72
+ egressConfig?: AgentEgressConfig;
73
+ /** Per-agent MCP configuration (additive to global MCPs). */
74
+ mcpConfig?: AgentMcpConfig;
75
+ /** Nix environment configuration for the agent workspace. */
76
+ nixConfig?: NixConfig;
77
+ /**
78
+ * MCP tool grant patterns the operator has pre-approved.
79
+ * Synced to the grant store at deployment time to bypass the approval card.
80
+ */
81
+ preApprovedTools?: string[];
82
+ /**
83
+ * Job ID from the gateway (set when the payload rode through the worker
84
+ * SSE stream). Optional — direct-enqueue paths leave it unset.
85
+ */
86
+ jobId?: string;
87
+ /** Job type (default: `message`). */
88
+ jobType?: JobType;
89
+ /** Unique ID for the exec job (for response routing). */
90
+ execId?: string;
91
+ /** Command to execute. */
92
+ execCommand?: string;
93
+ /** Working directory for the command. */
94
+ execCwd?: string;
95
+ /** Additional environment variables. */
96
+ execEnv?: Record<string, string>;
97
+ /** Timeout in milliseconds. */
98
+ execTimeout?: number;
99
+ }
100
+ /** Queued message envelope used by the worker's in-process batcher. */
101
+ export interface QueuedMessage {
102
+ payload: MessagePayload;
103
+ timestamp: number;
104
+ }
105
+ //# sourceMappingURL=wire.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../src/worker/wire.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,SAAS,EACV,MAAM,UAAU,CAAC;AAElB;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEzC;;;GAGG;AACH,MAAM,WAAW,cAAc;IAE7B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IAGjB,WAAW,EAAE,MAAM,CAAC;IAGpB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAG1C,YAAY,EAAE,YAAY,CAAC;IAG3B,aAAa,CAAC,EAAE,aAAa,CAAC;IAE9B;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,iBAAiB,CAAC;IAEjC,6DAA6D;IAC7D,SAAS,CAAC,EAAE,cAAc,CAAC;IAE3B,6DAA6D;IAC7D,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE5B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,qCAAqC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAGlB,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,uEAAuE;AACvE,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ /**
3
+ * Gateway ↔ worker wire contract.
4
+ *
5
+ * `MessagePayload` is what `MessageConsumer` (gateway) enqueues on the runs
6
+ * queue, what `EmbeddedDeploymentManager.dispatch*` writes to the worker SSE
7
+ * stream, and what the worker's `GatewayClient.handleThreadMessage` /
8
+ * `handleExecJob` consumes. Same shape on both sides — keep it here.
9
+ *
10
+ * Before this lived in core, the worker had its own `MessagePayload`
11
+ * declaration that was a structural subset of the gateway's (missing
12
+ * `organizationId`, `networkConfig`, `egressConfig`, `mcpConfig`, `nixConfig`,
13
+ * `preApprovedTools`). At runtime the worker's zod schema was patched with
14
+ * `.passthrough()` so the extra fields survived parsing, but the static type
15
+ * silently lied. Hoisting closes the gap.
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ //# sourceMappingURL=wire.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wire.js","sourceRoot":"","sources":["../../src/worker/wire.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobu/core",
3
- "version": "7.2.0",
3
+ "version": "9.0.0",
4
4
  "license": "Apache-2.0",
5
5
  "description": "Core types and utilities for Lobu agent platform",
6
6
  "repository": {