@carfiedli/runtime-guardrail 0.1.19

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 (86) hide show
  1. package/README.fe.md +256 -0
  2. package/README.hooks-security.md +1017 -0
  3. package/README.md +1316 -0
  4. package/dist/adapters/index.d.ts +1 -0
  5. package/dist/adapters/persistence/file-store.d.ts +18 -0
  6. package/dist/adapters/persistence/index.d.ts +4 -0
  7. package/dist/adapters/persistence/json-event-log.d.ts +31 -0
  8. package/dist/adapters/persistence/queue-store.d.ts +19 -0
  9. package/dist/adapters/persistence/snapshot-store.d.ts +14 -0
  10. package/dist/approval/approval-service.d.ts +27 -0
  11. package/dist/approval/approval-state-machine.d.ts +5 -0
  12. package/dist/approval/hitl/hitl-connector.d.ts +9 -0
  13. package/dist/approval/index.d.ts +4 -0
  14. package/dist/approval/run-hold-service.d.ts +16 -0
  15. package/dist/audit/audit-event-store.d.ts +12 -0
  16. package/dist/audit/audit-read-model-builder.d.ts +17 -0
  17. package/dist/audit/audit-service.d.ts +18 -0
  18. package/dist/audit/incident-query-service.d.ts +7 -0
  19. package/dist/audit/index.d.ts +5 -0
  20. package/dist/audit/metrics-projection.d.ts +10 -0
  21. package/dist/bootstrap/create-runtime-guardrail-plugin.d.ts +3 -0
  22. package/dist/bootstrap/dependency-container.d.ts +2 -0
  23. package/dist/bootstrap/index.d.ts +3 -0
  24. package/dist/bootstrap/runtime-facade.d.ts +31 -0
  25. package/dist/compat/index.d.ts +1 -0
  26. package/dist/compat/legacy-types.d.ts +29 -0
  27. package/dist/contracts/core.d.ts +277 -0
  28. package/dist/contracts/events.d.ts +35 -0
  29. package/dist/contracts/host.d.ts +239 -0
  30. package/dist/contracts/index.d.ts +6 -0
  31. package/dist/contracts/operator.d.ts +110 -0
  32. package/dist/execution/egress-mediator.d.ts +7 -0
  33. package/dist/execution/execution-broker.d.ts +13 -0
  34. package/dist/execution/execution-plan-builder.d.ts +12 -0
  35. package/dist/execution/index.d.ts +4 -0
  36. package/dist/execution/model-governance-service.d.ts +7 -0
  37. package/dist/index.d.ts +29 -0
  38. package/dist/index.js +23 -0
  39. package/dist/openclaw/hooks/egress-adapter.d.ts +9 -0
  40. package/dist/openclaw/hooks/hook-registry.d.ts +21 -0
  41. package/dist/openclaw/hooks/hook-result-mapper.d.ts +43 -0
  42. package/dist/openclaw/hooks/hook-types.d.ts +31 -0
  43. package/dist/openclaw/hooks/index.d.ts +8 -0
  44. package/dist/openclaw/hooks/ingress-adapter.d.ts +14 -0
  45. package/dist/openclaw/hooks/llm-request-adapter.d.ts +9 -0
  46. package/dist/openclaw/hooks/persist-adapter.d.ts +30 -0
  47. package/dist/openclaw/hooks/tool-call-adapter.d.ts +7 -0
  48. package/dist/openclaw/index.d.ts +4 -0
  49. package/dist/openclaw/plugin-runtime.d.ts +103 -0
  50. package/dist/openclaw/rpc-handlers.d.ts +20 -0
  51. package/dist/openclaw/skills-availability.d.ts +10 -0
  52. package/dist/openclaw/skills-upload.d.ts +17 -0
  53. package/dist/openclaw/testing/index.d.ts +1 -0
  54. package/dist/openclaw/testing/mock-openclaw-api.d.ts +74 -0
  55. package/dist/operator/cli/register-cli.d.ts +4 -0
  56. package/dist/operator/command-service.d.ts +15 -0
  57. package/dist/operator/index.d.ts +5 -0
  58. package/dist/operator/query-service.d.ts +21 -0
  59. package/dist/operator/reporting/report-service.d.ts +9 -0
  60. package/dist/operator/rpc/register-rpc.d.ts +5 -0
  61. package/dist/policy/detectors/detector-port.d.ts +23 -0
  62. package/dist/policy/finding-normalizer.d.ts +3 -0
  63. package/dist/policy/index.d.ts +4 -0
  64. package/dist/policy/policy-engine.d.ts +8 -0
  65. package/dist/policy/stage-resolver.d.ts +7 -0
  66. package/dist/runtime-core/device-id.d.ts +15 -0
  67. package/dist/runtime-core/evaluate-service.d.ts +91 -0
  68. package/dist/runtime-core/index.d.ts +10 -0
  69. package/dist/runtime-core/memory-audit-logger.d.ts +55 -0
  70. package/dist/runtime-core/memory-store.d.ts +141 -0
  71. package/dist/runtime-core/remote-guard-request-builder.d.ts +15 -0
  72. package/dist/runtime-core/remote-guard-transport.d.ts +79 -0
  73. package/dist/runtime-core/remote-guard-types.d.ts +183 -0
  74. package/dist/runtime-core/remote-policy-evaluator.d.ts +51 -0
  75. package/dist/runtime-core/skill-name-resolver.d.ts +31 -0
  76. package/dist/runtime-core/sync-remote-evaluate.d.ts +29 -0
  77. package/dist/runtime-core/sync-remote-worker.d.ts +14 -0
  78. package/dist/runtime-core/sync-remote-worker.js +2 -0
  79. package/dist/runtime-core/telemetry-service.d.ts +94 -0
  80. package/dist/runtime-core/telemetry-types.d.ts +181 -0
  81. package/dist/types.d.ts +224 -0
  82. package/dist/version.d.ts +1 -0
  83. package/openclaw.plugin.json +76 -0
  84. package/package.json +71 -0
  85. package/remote-guard-config.json +30 -0
  86. package/scripts/runtime-guardrailctl.mjs +864 -0
@@ -0,0 +1,239 @@
1
+ import type { ShieldCanonicalHookName } from "./core";
2
+ /** OpenClaw 真实可注册的 hook 名称(当前插件实际依赖的子集) */
3
+ export type OpenClawHookName = "message_received" | "before_prompt_build" | "llm_input" | "before_tool_call" | "message_sending" | "before_message_write" | "tool_result_persist";
4
+ /** 插件钩子事件:收到用户消息时触发 */
5
+ export type PluginHookMessageReceivedEvent = {
6
+ from: string;
7
+ content: string;
8
+ timestamp?: number;
9
+ metadata?: Record<string, unknown>;
10
+ };
11
+ /** 插件钩子事件:提示词构建前触发 */
12
+ export type PluginHookBeforePromptBuildEvent = {
13
+ prompt: string;
14
+ messages: unknown[];
15
+ };
16
+ /** 插件钩子事件:LLM 输入已组装完成时触发(OpenClaw 真实 hook 名为 llm_input) */
17
+ export type PluginHookLlmInputEvent = {
18
+ runId: string;
19
+ sessionId: string;
20
+ provider: string;
21
+ model: string;
22
+ systemPrompt?: string;
23
+ prompt: string;
24
+ historyMessages: unknown[];
25
+ imagesCount?: number;
26
+ skillNames?: string[];
27
+ };
28
+ /** @deprecated 仅保留内部 canonical 语义别名,宿主真实 hook 名为 llm_input */
29
+ export type PluginHookBeforeLlmRequestEvent = PluginHookLlmInputEvent;
30
+ /** 插件钩子事件:执行工具调用前触发 */
31
+ export type PluginHookBeforeToolCallEvent = {
32
+ toolName: string;
33
+ params: Record<string, unknown>;
34
+ runId?: string;
35
+ toolCallId?: string;
36
+ };
37
+ /** 插件钩子事件:发送消息前触发 */
38
+ export type PluginHookMessageSendingEvent = {
39
+ to: string;
40
+ content: string;
41
+ metadata?: Record<string, unknown>;
42
+ };
43
+ /** 插件钩子事件:写入消息前触发 */
44
+ export type PluginHookBeforeMessageWriteEvent = {
45
+ message: unknown;
46
+ sessionKey?: string;
47
+ agentId?: string;
48
+ };
49
+ /** 插件钩子事件:工具结果持久化前触发 */
50
+ export type PluginHookToolResultPersistEvent = {
51
+ toolName?: string;
52
+ toolCallId?: string;
53
+ message: unknown;
54
+ isSynthetic?: boolean;
55
+ };
56
+ /** Message 类 hook 上下文 */
57
+ export type PluginHookMessageContext = {
58
+ channelId?: string;
59
+ accountId?: string;
60
+ conversationId?: string;
61
+ };
62
+ /** Agent 类 hook 上下文 */
63
+ export type PluginHookAgentContext = {
64
+ agentId?: string;
65
+ runId?: string;
66
+ sessionId?: string;
67
+ workspaceDir?: string;
68
+ messageProvider?: string;
69
+ trigger?: string;
70
+ channelId?: string;
71
+ };
72
+ /** Tool 类 hook 上下文 */
73
+ export type PluginHookToolContext = {
74
+ agentId?: string;
75
+ sessionKey?: string;
76
+ sessionId?: string;
77
+ runId?: string;
78
+ toolName?: string;
79
+ toolCallId?: string;
80
+ };
81
+ /** 工具结果持久化 hook 上下文 */
82
+ export type PluginHookToolResultPersistContext = {
83
+ agentId?: string;
84
+ sessionKey?: string;
85
+ toolName?: string;
86
+ toolCallId?: string;
87
+ };
88
+ /** 钩子名称到对应事件类型的映射表 */
89
+ export type PluginHookEventMap = {
90
+ message_received: PluginHookMessageReceivedEvent;
91
+ before_prompt_build: PluginHookBeforePromptBuildEvent;
92
+ llm_input: PluginHookLlmInputEvent;
93
+ before_tool_call: PluginHookBeforeToolCallEvent;
94
+ message_sending: PluginHookMessageSendingEvent;
95
+ before_message_write: PluginHookBeforeMessageWriteEvent;
96
+ tool_result_persist: PluginHookToolResultPersistEvent;
97
+ };
98
+ /** 钩子名称到上下文类型的映射表 */
99
+ export type PluginHookContextMap = {
100
+ message_received: PluginHookMessageContext;
101
+ before_prompt_build: PluginHookAgentContext;
102
+ llm_input: PluginHookAgentContext;
103
+ before_tool_call: PluginHookToolContext;
104
+ message_sending: PluginHookMessageContext;
105
+ before_message_write: {
106
+ agentId?: string;
107
+ sessionKey?: string;
108
+ };
109
+ tool_result_persist: PluginHookToolResultPersistContext;
110
+ };
111
+ /** 钩子名称到返回值类型的映射表 */
112
+ export type PluginHookResultMap = {
113
+ message_received: void;
114
+ before_prompt_build: {
115
+ systemPrompt?: string;
116
+ prependContext?: string;
117
+ prependSystemContext?: string;
118
+ appendSystemContext?: string;
119
+ } | void;
120
+ llm_input: void;
121
+ before_tool_call: {
122
+ params?: Record<string, unknown>;
123
+ block?: boolean;
124
+ blockReason?: string;
125
+ } | void;
126
+ message_sending: {
127
+ content?: string;
128
+ cancel?: boolean;
129
+ } | void;
130
+ before_message_write: {
131
+ block?: boolean;
132
+ message?: unknown;
133
+ } | void;
134
+ tool_result_persist: {
135
+ message?: unknown;
136
+ } | void;
137
+ };
138
+ type SyncHookName = "before_message_write" | "tool_result_persist";
139
+ /** 插件钩子处理器:接收钩子事件和上下文,返回宿主能理解的结果 */
140
+ export type PluginHookHandler<H extends OpenClawHookName> = (event: PluginHookEventMap[H], ctx: PluginHookContextMap[H]) => H extends SyncHookName ? PluginHookResultMap[H] : PluginHookResultMap[H] | Promise<PluginHookResultMap[H]>;
141
+ /** 网关请求处理器选项(兼容旧/新 OpenClaw 形态) */
142
+ export type GatewayRequestHandlerOptions = {
143
+ eventName?: string;
144
+ data?: unknown;
145
+ params?: unknown;
146
+ respond?: (ok: boolean, payload: unknown) => void;
147
+ };
148
+ /** CLI 上下文:命令行命令执行时的上下文信息(旧签名) */
149
+ export type CliContext = {
150
+ projectPath: string;
151
+ api: unknown;
152
+ };
153
+ /** CLI 命令处理器:接收参数和上下文,执行命令逻辑(旧签名) */
154
+ export type CliCommandHandler = (args: Record<string, unknown>, context: CliContext) => unknown | Promise<unknown>;
155
+ /** OpenClaw 新版 CLI 注册器上下文 */
156
+ export type OpenClawCliRegistrarContext = {
157
+ program: unknown;
158
+ config: unknown;
159
+ workspaceDir?: string;
160
+ logger?: {
161
+ info?: (message: string) => void;
162
+ warn?: (message: string) => void;
163
+ error?: (message: string) => void;
164
+ debug?: (message: string) => void;
165
+ };
166
+ };
167
+ /** 宿主钩子注册表:提供注册钩子、网关方法和 CLI 命令的接口 */
168
+ export type HostHookRegistry = {
169
+ /** 注册指定钩子名称的处理器 */
170
+ on<H extends OpenClawHookName>(hookName: H, handler: PluginHookHandler<H>): void;
171
+ /** 注册网关方法(RPC 风格的远程调用) */
172
+ registerGatewayMethod(method: string, handler: (options: GatewayRequestHandlerOptions) => Promise<void> | void): void;
173
+ /** 注册 CLI(兼容旧签名与 OpenClaw 新签名) */
174
+ registerCli(nameOrRegistrar: string | ((ctx: OpenClawCliRegistrarContext) => void | Promise<void>), handlerOrOptions?: CliCommandHandler | {
175
+ commands?: string[];
176
+ }): void;
177
+ };
178
+ export type OpenClawPluginServiceContext = {
179
+ config?: {
180
+ skills?: {
181
+ load?: {
182
+ extraDirs?: string[];
183
+ };
184
+ };
185
+ };
186
+ workspaceDir?: string;
187
+ stateDir: string;
188
+ logger: {
189
+ info?: (message: string) => void;
190
+ warn?: (message: string) => void;
191
+ error?: (message: string) => void;
192
+ debug?: (message: string) => void;
193
+ };
194
+ };
195
+ export type OpenClawPluginService = {
196
+ id: string;
197
+ start: (ctx: OpenClawPluginServiceContext) => void | Promise<void>;
198
+ stop?: (ctx: OpenClawPluginServiceContext) => void | Promise<void>;
199
+ };
200
+ /** OpenClaw 宿主 API:兼容 log/logger 两种日志能力 */
201
+ export type OpenClawApi = HostHookRegistry & {
202
+ config?: {
203
+ skills?: {
204
+ load?: {
205
+ extraDirs?: string[];
206
+ };
207
+ };
208
+ };
209
+ runtime?: {
210
+ config?: {
211
+ loadConfig?: () => unknown | Promise<unknown>;
212
+ writeConfigFile?: (config: unknown) => void | Promise<void>;
213
+ };
214
+ system?: {
215
+ requestHeartbeatNow?: (opts?: {
216
+ reason?: string;
217
+ coalesceMs?: number;
218
+ sessionKey?: string;
219
+ }) => void;
220
+ };
221
+ };
222
+ resolvePath?: (input: string) => string;
223
+ registerService?: (service: OpenClawPluginService) => void;
224
+ log?: {
225
+ info?: (message: string) => void;
226
+ warn?: (message: string) => void;
227
+ error?: (message: string) => void;
228
+ debug?: (message: string) => void;
229
+ };
230
+ logger?: {
231
+ info?: (message: string) => void;
232
+ warn?: (message: string) => void;
233
+ error?: (message: string) => void;
234
+ debug?: (message: string) => void;
235
+ };
236
+ };
237
+ /** internal canonical hook 到 OpenClaw 宿主 hook 的语义映射说明 */
238
+ export type CanonicalToHostHookMap = Partial<Record<ShieldCanonicalHookName, OpenClawHookName | OpenClawHookName[]>>;
239
+ export {};
@@ -0,0 +1,6 @@
1
+ export * from "./core";
2
+ export * from "./host";
3
+ export * from "./operator";
4
+ export * from "./events";
5
+ export { SHIELD_RPC_METHODS, SHIELD_CLI_COMMANDS } from "./operator";
6
+ export { SHIELD_GATEWAY_EVENTS } from "./events";
@@ -0,0 +1,110 @@
1
+ /** 护盾 RPC 方法常量:定义所有可通过网关调用的远程方法名 */
2
+ export declare const SHIELD_RPC_METHODS: {
3
+ readonly status: "shield.status";
4
+ readonly releaseInfo: "shield.release.info";
5
+ readonly rulePacksList: "shield.rulepacks.list";
6
+ readonly policyValidate: "shield.policy.validate";
7
+ readonly policyTest: "shield.policy.test";
8
+ readonly metrics: "shield.metrics";
9
+ readonly rolloutSummary: "shield.rollout.summary";
10
+ readonly reportGenerate: "shield.report.generate";
11
+ readonly reportGet: "shield.report.get";
12
+ readonly incidentList: "shield.incident.list";
13
+ readonly incidentGet: "shield.incident.get";
14
+ readonly incidentResolve: "shield.incident.resolve";
15
+ readonly approvalList: "shield.approval.list";
16
+ readonly approvalResolve: "shield.approval.resolve";
17
+ readonly runHoldList: "shield.runhold.list";
18
+ readonly runHoldResume: "shield.runhold.resume";
19
+ readonly runHoldCancel: "shield.runhold.cancel";
20
+ readonly configRefresh: "shield.config.refresh";
21
+ };
22
+ /** 护盾 CLI 命令常量:定义所有可用的命令行命令名 */
23
+ export declare const SHIELD_CLI_COMMANDS: {
24
+ readonly status: "shield-status";
25
+ readonly validate: "shield-validate";
26
+ readonly report: "shield-report";
27
+ readonly incidents: "shield-incidents";
28
+ readonly approvals: "shield-approvals";
29
+ readonly runHolds: "shield-runholds";
30
+ readonly configRefresh: "shield-config-refresh";
31
+ };
32
+ /** RPC 请求格式 */
33
+ export type RpcRequest = {
34
+ method: string;
35
+ params?: Record<string, unknown>;
36
+ };
37
+ /** RPC 响应格式 */
38
+ export type RpcResponse<T = unknown> = {
39
+ success: boolean;
40
+ data?: T;
41
+ error?: {
42
+ code: string;
43
+ message: string;
44
+ details?: unknown;
45
+ };
46
+ };
47
+ /** 状态查询结果 */
48
+ export type StatusQueryResult = {
49
+ version: string;
50
+ config: Record<string, unknown>;
51
+ stats: {
52
+ incidents: number;
53
+ approvals: number;
54
+ runHolds: number;
55
+ };
56
+ };
57
+ /** 安全事件列表查询参数 */
58
+ export type IncidentListQuery = {
59
+ agentId?: string;
60
+ runId?: string;
61
+ status?: string[];
62
+ limit?: number;
63
+ offset?: number;
64
+ };
65
+ /** 安全事件列表查询结果 */
66
+ export type IncidentListResult = {
67
+ total: number;
68
+ items: Array<Record<string, unknown>>;
69
+ };
70
+ /** 审批列表查询参数 */
71
+ export type ApprovalListQuery = {
72
+ status?: string[];
73
+ category?: string[];
74
+ limit?: number;
75
+ offset?: number;
76
+ };
77
+ /** 审批列表查询结果 */
78
+ export type ApprovalListResult = {
79
+ total: number;
80
+ items: Array<Record<string, unknown>>;
81
+ };
82
+ /** 运行暂停列表查询参数 */
83
+ export type RunHoldListQuery = {
84
+ agentId?: string;
85
+ status?: string[];
86
+ limit?: number;
87
+ offset?: number;
88
+ };
89
+ /** 运行暂停列表查询结果 */
90
+ export type RunHoldListResult = {
91
+ total: number;
92
+ items: Array<Record<string, unknown>>;
93
+ };
94
+ /** 解决审批命令 */
95
+ export type ResolveApprovalCommand = {
96
+ approvalId: string;
97
+ decision: "approved" | "rejected";
98
+ resolvedBy?: string;
99
+ note?: string;
100
+ source?: string;
101
+ externalApprovalId?: string;
102
+ };
103
+ /** 恢复运行暂停命令 */
104
+ export type ResumeRunHoldCommand = {
105
+ holdId: string;
106
+ };
107
+ /** 取消运行暂停命令 */
108
+ export type CancelRunHoldCommand = {
109
+ holdId: string;
110
+ };
@@ -0,0 +1,7 @@
1
+ import type { ExecutionPlan, HookEnvelope } from "../contracts";
2
+ export interface EgressMediator {
3
+ apply(plan: ExecutionPlan, envelope: HookEnvelope): Promise<ExecutionPlan>;
4
+ }
5
+ export declare class DefaultEgressMediator implements EgressMediator {
6
+ apply(plan: ExecutionPlan, envelope: HookEnvelope): Promise<ExecutionPlan>;
7
+ }
@@ -0,0 +1,13 @@
1
+ import type { ExecutionPlan, GuardrailDecision, HookEnvelope } from "../contracts";
2
+ import type { ApprovalService, RunHoldService } from "../approval";
3
+ import type { ExecutionPlanBuilder } from "./execution-plan-builder";
4
+ export interface ExecutionBroker {
5
+ prepare(envelope: HookEnvelope, decision: GuardrailDecision): Promise<ExecutionPlan | undefined>;
6
+ }
7
+ export declare class DefaultExecutionBroker implements ExecutionBroker {
8
+ private readonly planBuilder;
9
+ private readonly approvalService;
10
+ private readonly runHoldService;
11
+ constructor(planBuilder: ExecutionPlanBuilder, approvalService: ApprovalService, runHoldService: RunHoldService);
12
+ prepare(envelope: HookEnvelope, decision: GuardrailDecision): Promise<ExecutionPlan | undefined>;
13
+ }
@@ -0,0 +1,12 @@
1
+ import type { ExecutionPlan, GuardrailDecision, HookEnvelope } from "../contracts";
2
+ import type { ModelGovernanceService } from "./model-governance-service";
3
+ import type { EgressMediator } from "./egress-mediator";
4
+ export interface ExecutionPlanBuilder {
5
+ build(envelope: HookEnvelope, decision: GuardrailDecision): Promise<ExecutionPlan | undefined>;
6
+ }
7
+ export declare class DefaultExecutionPlanBuilder implements ExecutionPlanBuilder {
8
+ private readonly modelGovernanceService;
9
+ private readonly egressMediator;
10
+ constructor(modelGovernanceService: ModelGovernanceService, egressMediator: EgressMediator);
11
+ build(envelope: HookEnvelope, decision: GuardrailDecision): Promise<ExecutionPlan | undefined>;
12
+ }
@@ -0,0 +1,4 @@
1
+ export * from "./model-governance-service";
2
+ export * from "./egress-mediator";
3
+ export * from "./execution-plan-builder";
4
+ export * from "./execution-broker";
@@ -0,0 +1,7 @@
1
+ import type { ExecutionPlan, GuardrailDecision, HookEnvelope } from "../contracts";
2
+ export interface ModelGovernanceService {
3
+ apply(plan: ExecutionPlan, envelope: HookEnvelope, decision: GuardrailDecision): Promise<ExecutionPlan>;
4
+ }
5
+ export declare class DefaultModelGovernanceService implements ModelGovernanceService {
6
+ apply(plan: ExecutionPlan, envelope: HookEnvelope, decision: GuardrailDecision): Promise<ExecutionPlan>;
7
+ }
@@ -0,0 +1,29 @@
1
+ import type { OpenClawApi } from "./contracts";
2
+ import { PluginRuntime, type PluginRuntimeOptions } from "./openclaw/plugin-runtime";
3
+ /**
4
+ * 创建运行时护栏插件的工厂函数(整个库的主入口)
5
+ * 接收宿主平台 API 和可选配置,实例化并初始化插件运行时后返回
6
+ * @param api - 宿主平台(OpenClaw)提供的 API 接口,用于注册钩子、日志等
7
+ * @param options - 可选的运行时配置,包括策略评估器、审计日志器、阶段/模式配置等
8
+ * @returns 初始化完成的 PluginRuntime 实例
9
+ */
10
+ export declare const createRuntimeGuardrailPlugin: (api: OpenClawApi, options?: PluginRuntimeOptions) => Promise<PluginRuntime>;
11
+ /**
12
+ * OpenClaw 插件入口(官方插件加载器优先识别 register/activate 导出)
13
+ */
14
+ export declare const register: (api: OpenClawApi) => void;
15
+ /** OpenClaw 插件入口别名 */
16
+ export declare const activate: (api: OpenClawApi) => void;
17
+ export default register;
18
+ export * from "./types";
19
+ export * from "./contracts";
20
+ export * from "./adapters";
21
+ export * from "./runtime-core";
22
+ export * from "./compat";
23
+ export * from "./policy";
24
+ export * from "./approval";
25
+ export * from "./execution";
26
+ export * from "./audit";
27
+ export * from "./operator";
28
+ export * from "./bootstrap";
29
+ export * from "./openclaw";