@yan162/changewayguard 6.8.25

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 (285) hide show
  1. package/LICENSE +21 -0
  2. package/OpenClaw-linux_Mac-Guide-zh.md +89 -0
  3. package/dashboard-dist/api/122.index.js +95 -0
  4. package/dashboard-dist/api/122.index.js.map +1 -0
  5. package/dashboard-dist/api/143.index.js +2734 -0
  6. package/dashboard-dist/api/143.index.js.map +1 -0
  7. package/dashboard-dist/api/154.index.js +4151 -0
  8. package/dashboard-dist/api/154.index.js.map +1 -0
  9. package/dashboard-dist/api/173.index.js +24112 -0
  10. package/dashboard-dist/api/173.index.js.map +1 -0
  11. package/dashboard-dist/api/217.index.js +44 -0
  12. package/dashboard-dist/api/217.index.js.map +1 -0
  13. package/dashboard-dist/api/222.index.js +90 -0
  14. package/dashboard-dist/api/222.index.js.map +1 -0
  15. package/dashboard-dist/api/280.index.js +213 -0
  16. package/dashboard-dist/api/280.index.js.map +1 -0
  17. package/dashboard-dist/api/369.index.js +115 -0
  18. package/dashboard-dist/api/369.index.js.map +1 -0
  19. package/dashboard-dist/api/374.index.js +1896 -0
  20. package/dashboard-dist/api/374.index.js.map +1 -0
  21. package/dashboard-dist/api/424.index.js +135 -0
  22. package/dashboard-dist/api/424.index.js.map +1 -0
  23. package/dashboard-dist/api/445.index.js +3562 -0
  24. package/dashboard-dist/api/445.index.js.map +1 -0
  25. package/dashboard-dist/api/555.index.js +496 -0
  26. package/dashboard-dist/api/555.index.js.map +1 -0
  27. package/dashboard-dist/api/573.index.js +806 -0
  28. package/dashboard-dist/api/573.index.js.map +1 -0
  29. package/dashboard-dist/api/580.index.js +1420 -0
  30. package/dashboard-dist/api/580.index.js.map +1 -0
  31. package/dashboard-dist/api/581.index.js +67 -0
  32. package/dashboard-dist/api/581.index.js.map +1 -0
  33. package/dashboard-dist/api/598.index.js +328 -0
  34. package/dashboard-dist/api/598.index.js.map +1 -0
  35. package/dashboard-dist/api/720.index.js +105 -0
  36. package/dashboard-dist/api/720.index.js.map +1 -0
  37. package/dashboard-dist/api/744.index.js +333 -0
  38. package/dashboard-dist/api/744.index.js.map +1 -0
  39. package/dashboard-dist/api/818.index.js +374 -0
  40. package/dashboard-dist/api/818.index.js.map +1 -0
  41. package/dashboard-dist/api/831.index.js +99 -0
  42. package/dashboard-dist/api/831.index.js.map +1 -0
  43. package/dashboard-dist/api/84.index.js +64 -0
  44. package/dashboard-dist/api/84.index.js.map +1 -0
  45. package/dashboard-dist/api/900.index.js +81 -0
  46. package/dashboard-dist/api/900.index.js.map +1 -0
  47. package/dashboard-dist/api/917.index.js +88 -0
  48. package/dashboard-dist/api/917.index.js.map +1 -0
  49. package/dashboard-dist/api/927.index.js +4250 -0
  50. package/dashboard-dist/api/927.index.js.map +1 -0
  51. package/dashboard-dist/api/948.index.js +64 -0
  52. package/dashboard-dist/api/948.index.js.map +1 -0
  53. package/dashboard-dist/api/982.index.js +67 -0
  54. package/dashboard-dist/api/982.index.js.map +1 -0
  55. package/dashboard-dist/api/99.index.js +1176 -0
  56. package/dashboard-dist/api/99.index.js.map +1 -0
  57. package/dashboard-dist/api/drizzle/sqlite/0000_short_captain_stacy.sql +70 -0
  58. package/dashboard-dist/api/drizzle/sqlite/0001_closed_magus.sql +10 -0
  59. package/dashboard-dist/api/drizzle/sqlite/0002_agent_capability_observation.sql +38 -0
  60. package/dashboard-dist/api/drizzle/sqlite/0003_auth_magic_link.sql +28 -0
  61. package/dashboard-dist/api/drizzle/sqlite/0004_static_scan_fields.sql +8 -0
  62. package/dashboard-dist/api/drizzle/sqlite/0005_gateway_activity.sql +24 -0
  63. package/dashboard-dist/api/drizzle/sqlite/0006_sour_marauders.sql +41 -0
  64. package/dashboard-dist/api/drizzle/sqlite/meta/0000_snapshot.json +460 -0
  65. package/dashboard-dist/api/drizzle/sqlite/meta/0001_snapshot.json +536 -0
  66. package/dashboard-dist/api/drizzle/sqlite/meta/0006_snapshot.json +1249 -0
  67. package/dashboard-dist/api/drizzle/sqlite/meta/_journal.json +55 -0
  68. package/dashboard-dist/api/index.js +28482 -0
  69. package/dashboard-dist/api/index.js.map +1 -0
  70. package/dashboard-dist/api/package.json +16 -0
  71. package/dashboard-dist/api/sourcemap-register.cjs +1 -0
  72. package/dashboard-dist/web/assets/index-BKUfzbIg.js +148 -0
  73. package/dashboard-dist/web/assets/index-rHRH99IQ.css +1 -0
  74. package/dashboard-dist/web/changeway-logo.png +0 -0
  75. package/dashboard-dist/web/favicon.svg +29 -0
  76. package/dashboard-dist/web/index.html +15 -0
  77. package/dashboard-dist/web/logo.svg +16 -0
  78. package/dist/agent/activation.d.ts +21 -0
  79. package/dist/agent/activation.d.ts.map +1 -0
  80. package/dist/agent/activation.js +94 -0
  81. package/dist/agent/activation.js.map +1 -0
  82. package/dist/agent/auth.d.ts +73 -0
  83. package/dist/agent/auth.d.ts.map +1 -0
  84. package/dist/agent/auth.js +363 -0
  85. package/dist/agent/auth.js.map +1 -0
  86. package/dist/agent/behavior-detector.d.ts +150 -0
  87. package/dist/agent/behavior-detector.d.ts.map +1 -0
  88. package/dist/agent/behavior-detector.js +559 -0
  89. package/dist/agent/behavior-detector.js.map +1 -0
  90. package/dist/agent/business-reporter.d.ts +114 -0
  91. package/dist/agent/business-reporter.d.ts.map +1 -0
  92. package/dist/agent/business-reporter.js +359 -0
  93. package/dist/agent/business-reporter.js.map +1 -0
  94. package/dist/agent/config-sync.d.ts +70 -0
  95. package/dist/agent/config-sync.d.ts.map +1 -0
  96. package/dist/agent/config-sync.js +133 -0
  97. package/dist/agent/config-sync.js.map +1 -0
  98. package/dist/agent/config.d.ts +98 -0
  99. package/dist/agent/config.d.ts.map +1 -0
  100. package/dist/agent/config.js +348 -0
  101. package/dist/agent/config.js.map +1 -0
  102. package/dist/agent/content-injection-scanner.d.ts +35 -0
  103. package/dist/agent/content-injection-scanner.d.ts.map +1 -0
  104. package/dist/agent/content-injection-scanner.js +270 -0
  105. package/dist/agent/content-injection-scanner.js.map +1 -0
  106. package/dist/agent/engine-log-writer.d.ts +6 -0
  107. package/dist/agent/engine-log-writer.d.ts.map +1 -0
  108. package/dist/agent/engine-log-writer.js +18 -0
  109. package/dist/agent/engine-log-writer.js.map +1 -0
  110. package/dist/agent/env.d.ts +19 -0
  111. package/dist/agent/env.d.ts.map +1 -0
  112. package/dist/agent/env.js +44 -0
  113. package/dist/agent/env.js.map +1 -0
  114. package/dist/agent/event-reporter.d.ts +87 -0
  115. package/dist/agent/event-reporter.d.ts.map +1 -0
  116. package/dist/agent/event-reporter.js +306 -0
  117. package/dist/agent/event-reporter.js.map +1 -0
  118. package/dist/agent/file-watcher.d.ts +50 -0
  119. package/dist/agent/file-watcher.d.ts.map +1 -0
  120. package/dist/agent/file-watcher.js +135 -0
  121. package/dist/agent/file-watcher.js.map +1 -0
  122. package/dist/agent/fs-utils.d.ts +22 -0
  123. package/dist/agent/fs-utils.d.ts.map +1 -0
  124. package/dist/agent/fs-utils.js +41 -0
  125. package/dist/agent/fs-utils.js.map +1 -0
  126. package/dist/agent/gateway-manager.d.ts +59 -0
  127. package/dist/agent/gateway-manager.d.ts.map +1 -0
  128. package/dist/agent/gateway-manager.js +583 -0
  129. package/dist/agent/gateway-manager.js.map +1 -0
  130. package/dist/agent/hook-types.d.ts +276 -0
  131. package/dist/agent/hook-types.d.ts.map +1 -0
  132. package/dist/agent/hook-types.js +51 -0
  133. package/dist/agent/hook-types.js.map +1 -0
  134. package/dist/agent/http-client.d.ts +19 -0
  135. package/dist/agent/http-client.d.ts.map +1 -0
  136. package/dist/agent/http-client.js +37 -0
  137. package/dist/agent/http-client.js.map +1 -0
  138. package/dist/agent/index.d.ts +8 -0
  139. package/dist/agent/index.d.ts.map +1 -0
  140. package/dist/agent/index.js +8 -0
  141. package/dist/agent/index.js.map +1 -0
  142. package/dist/agent/openclaw-hybrid-audit-changeway.js +1447 -0
  143. package/dist/agent/prompt-gate.d.ts +16 -0
  144. package/dist/agent/prompt-gate.d.ts.map +1 -0
  145. package/dist/agent/prompt-gate.js +58 -0
  146. package/dist/agent/prompt-gate.js.map +1 -0
  147. package/dist/agent/prompt-input.d.ts +9 -0
  148. package/dist/agent/prompt-input.d.ts.map +1 -0
  149. package/dist/agent/prompt-input.js +173 -0
  150. package/dist/agent/prompt-input.js.map +1 -0
  151. package/dist/agent/prompt-output.d.ts +4 -0
  152. package/dist/agent/prompt-output.d.ts.map +1 -0
  153. package/dist/agent/prompt-output.js +19 -0
  154. package/dist/agent/prompt-output.js.map +1 -0
  155. package/dist/agent/runner.d.ts +23 -0
  156. package/dist/agent/runner.d.ts.map +1 -0
  157. package/dist/agent/runner.js +165 -0
  158. package/dist/agent/runner.js.map +1 -0
  159. package/dist/agent/runtime-mode.d.ts +10 -0
  160. package/dist/agent/runtime-mode.d.ts.map +1 -0
  161. package/dist/agent/runtime-mode.js +19 -0
  162. package/dist/agent/runtime-mode.js.map +1 -0
  163. package/dist/agent/sanitizer.d.ts +10 -0
  164. package/dist/agent/sanitizer.d.ts.map +1 -0
  165. package/dist/agent/sanitizer.js +175 -0
  166. package/dist/agent/sanitizer.js.map +1 -0
  167. package/dist/agent/scan-activity.d.ts +19 -0
  168. package/dist/agent/scan-activity.d.ts.map +1 -0
  169. package/dist/agent/scan-activity.js +34 -0
  170. package/dist/agent/scan-activity.js.map +1 -0
  171. package/dist/agent/types.d.ts +177 -0
  172. package/dist/agent/types.d.ts.map +1 -0
  173. package/dist/agent/types.js +5 -0
  174. package/dist/agent/types.js.map +1 -0
  175. package/dist/agent/workspace-scanner.d.ts +35 -0
  176. package/dist/agent/workspace-scanner.d.ts.map +1 -0
  177. package/dist/agent/workspace-scanner.js +137 -0
  178. package/dist/agent/workspace-scanner.js.map +1 -0
  179. package/dist/dashboard-launcher.d.ts +52 -0
  180. package/dist/dashboard-launcher.d.ts.map +1 -0
  181. package/dist/dashboard-launcher.js +363 -0
  182. package/dist/dashboard-launcher.js.map +1 -0
  183. package/dist/gateway/activity.d.ts +52 -0
  184. package/dist/gateway/activity.d.ts.map +1 -0
  185. package/dist/gateway/activity.js +111 -0
  186. package/dist/gateway/activity.js.map +1 -0
  187. package/dist/gateway/config.d.ts +50 -0
  188. package/dist/gateway/config.d.ts.map +1 -0
  189. package/dist/gateway/config.js +200 -0
  190. package/dist/gateway/config.js.map +1 -0
  191. package/dist/gateway/handlers/anthropic.d.ts +12 -0
  192. package/dist/gateway/handlers/anthropic.d.ts.map +1 -0
  193. package/dist/gateway/handlers/anthropic.js +254 -0
  194. package/dist/gateway/handlers/anthropic.js.map +1 -0
  195. package/dist/gateway/handlers/gemini.d.ts +12 -0
  196. package/dist/gateway/handlers/gemini.d.ts.map +1 -0
  197. package/dist/gateway/handlers/gemini.js +101 -0
  198. package/dist/gateway/handlers/gemini.js.map +1 -0
  199. package/dist/gateway/handlers/models.d.ts +4 -0
  200. package/dist/gateway/handlers/models.d.ts.map +1 -0
  201. package/dist/gateway/handlers/models.js +36 -0
  202. package/dist/gateway/handlers/models.js.map +1 -0
  203. package/dist/gateway/handlers/openai.d.ts +16 -0
  204. package/dist/gateway/handlers/openai.d.ts.map +1 -0
  205. package/dist/gateway/handlers/openai.js +254 -0
  206. package/dist/gateway/handlers/openai.js.map +1 -0
  207. package/dist/gateway/index.d.ts +27 -0
  208. package/dist/gateway/index.d.ts.map +1 -0
  209. package/dist/gateway/index.js +290 -0
  210. package/dist/gateway/index.js.map +1 -0
  211. package/dist/gateway/mapping-store.d.ts +38 -0
  212. package/dist/gateway/mapping-store.d.ts.map +1 -0
  213. package/dist/gateway/mapping-store.js +74 -0
  214. package/dist/gateway/mapping-store.js.map +1 -0
  215. package/dist/gateway/restorer.d.ts +63 -0
  216. package/dist/gateway/restorer.d.ts.map +1 -0
  217. package/dist/gateway/restorer.js +284 -0
  218. package/dist/gateway/restorer.js.map +1 -0
  219. package/dist/gateway/sanitizer.d.ts +17 -0
  220. package/dist/gateway/sanitizer.d.ts.map +1 -0
  221. package/dist/gateway/sanitizer.js +228 -0
  222. package/dist/gateway/sanitizer.js.map +1 -0
  223. package/dist/gateway/types.d.ts +53 -0
  224. package/dist/gateway/types.d.ts.map +1 -0
  225. package/dist/gateway/types.js +5 -0
  226. package/dist/gateway/types.js.map +1 -0
  227. package/dist/index.d.ts +19 -0
  228. package/dist/index.d.ts.map +1 -0
  229. package/dist/index.js +2990 -0
  230. package/dist/index.js.map +1 -0
  231. package/dist/memory/index.d.ts +5 -0
  232. package/dist/memory/index.d.ts.map +1 -0
  233. package/dist/memory/index.js +5 -0
  234. package/dist/memory/index.js.map +1 -0
  235. package/dist/memory/store.d.ts +82 -0
  236. package/dist/memory/store.d.ts.map +1 -0
  237. package/dist/memory/store.js +194 -0
  238. package/dist/memory/store.js.map +1 -0
  239. package/dist/platform-client/index.d.ts +63 -0
  240. package/dist/platform-client/index.d.ts.map +1 -0
  241. package/dist/platform-client/index.js +294 -0
  242. package/dist/platform-client/index.js.map +1 -0
  243. package/dist/platform-client/types.d.ts +109 -0
  244. package/dist/platform-client/types.d.ts.map +1 -0
  245. package/dist/platform-client/types.js +3 -0
  246. package/dist/platform-client/types.js.map +1 -0
  247. package/dist/workspace-agents-guide.d.ts +22 -0
  248. package/dist/workspace-agents-guide.d.ts.map +1 -0
  249. package/dist/workspace-agents-guide.js +92 -0
  250. package/dist/workspace-agents-guide.js.map +1 -0
  251. package/dist/workspace-agents-sync.d.ts +24 -0
  252. package/dist/workspace-agents-sync.d.ts.map +1 -0
  253. package/dist/workspace-agents-sync.js +41 -0
  254. package/dist/workspace-agents-sync.js.map +1 -0
  255. package/dist/workspace-agents-watcher.d.ts +23 -0
  256. package/dist/workspace-agents-watcher.d.ts.map +1 -0
  257. package/dist/workspace-agents-watcher.js +152 -0
  258. package/dist/workspace-agents-watcher.js.map +1 -0
  259. package/dist/workspace-discovery.d.ts +11 -0
  260. package/dist/workspace-discovery.d.ts.map +1 -0
  261. package/dist/workspace-discovery.js +116 -0
  262. package/dist/workspace-discovery.js.map +1 -0
  263. package/gateway/package-lock.json +597 -0
  264. package/gateway/package.json +57 -0
  265. package/gateway/pnpm-lock.yaml +342 -0
  266. package/gateway/src/activity.ts +142 -0
  267. package/gateway/src/config.ts +246 -0
  268. package/gateway/src/handlers/anthropic.ts +328 -0
  269. package/gateway/src/handlers/gemini.ts +122 -0
  270. package/gateway/src/handlers/models.ts +45 -0
  271. package/gateway/src/handlers/openai.ts +333 -0
  272. package/gateway/src/index.ts +344 -0
  273. package/gateway/src/mapping-store.ts +88 -0
  274. package/gateway/src/restorer.ts +322 -0
  275. package/gateway/src/sanitizer.ts +298 -0
  276. package/gateway/src/types.ts +73 -0
  277. package/gateway/tsconfig.json +20 -0
  278. package/openclaw.plugin.json +86 -0
  279. package/package.json +74 -0
  280. package/samples/Untitled +1 -0
  281. package/samples/clean-email.txt +20 -0
  282. package/samples/test-document.md +53 -0
  283. package/samples/test-email-popup.txt +44 -0
  284. package/samples/test-email.txt +32 -0
  285. package/samples/test-webpage.html +51 -0
@@ -0,0 +1,276 @@
1
+ /**
2
+ * Type definitions for all 24 OpenClaw plugin hooks.
3
+ *
4
+ * These types define the event data structure for each hook,
5
+ * enabling complete context reporting to Core for intent-action mismatch detection.
6
+ */
7
+ export type HookType = "before_agent_start" | "agent_end" | "session_start" | "session_end" | "message_received" | "message_sending" | "message_sent" | "before_message_write" | "before_model_resolve" | "before_prompt_build" | "llm_input" | "llm_output" | "before_tool_call" | "after_tool_call" | "tool_result_persist" | "before_compaction" | "after_compaction" | "before_reset" | "subagent_spawning" | "subagent_delivery_target" | "subagent_spawned" | "subagent_ended" | "gateway_start" | "gateway_stop";
8
+ /** Hooks that require synchronous response from Core (can block execution) */
9
+ export declare const BLOCKING_HOOKS: Set<HookType>;
10
+ /** Check if a hook type requires synchronous (blocking) reporting */
11
+ export declare function isBlockingHook(hookType: HookType): boolean;
12
+ /** Base event data shared by all hooks */
13
+ export type BaseEventData = {
14
+ /** ISO 8601 timestamp when the event occurred */
15
+ timestamp: string;
16
+ };
17
+ export type BeforeAgentStartData = BaseEventData & {
18
+ /** Initial user prompt/intent */
19
+ prompt: string;
20
+ /** System prompt if any */
21
+ systemPrompt?: string;
22
+ /** Conversation ID if resuming */
23
+ conversationId?: string;
24
+ };
25
+ export type AgentEndData = BaseEventData & {
26
+ /** How the agent ended */
27
+ reason: "user_exit" | "error" | "timeout" | "completed" | "unknown";
28
+ /** Error message if ended due to error */
29
+ error?: string;
30
+ /** Total duration of the conversation in ms */
31
+ durationMs?: number;
32
+ };
33
+ export type SessionStartData = BaseEventData & {
34
+ /** Session identifier */
35
+ sessionId: string;
36
+ /** Whether this is a new or resumed session */
37
+ isNew: boolean;
38
+ };
39
+ export type SessionEndData = BaseEventData & {
40
+ /** Session identifier */
41
+ sessionId: string;
42
+ /** Session duration in ms */
43
+ durationMs?: number;
44
+ };
45
+ export type MessageReceivedData = BaseEventData & {
46
+ /** Who sent the message */
47
+ from: "user" | "assistant" | "system" | "tool";
48
+ /** Message content (may be truncated for large content) */
49
+ content: string;
50
+ /** Content length before truncation */
51
+ contentLength: number;
52
+ };
53
+ export type MessageSendingData = BaseEventData & {
54
+ /** Target of the message */
55
+ to: "user" | "llm" | "tool";
56
+ /** Message content (may be truncated) */
57
+ content: string;
58
+ /** Content length before truncation */
59
+ contentLength: number;
60
+ };
61
+ export type MessageSentData = BaseEventData & {
62
+ /** Target of the message */
63
+ to: "user" | "llm" | "tool";
64
+ /** Success status */
65
+ success: boolean;
66
+ /** Duration to send in ms */
67
+ durationMs?: number;
68
+ };
69
+ export type BeforeMessageWriteData = BaseEventData & {
70
+ /** File path being written to (e.g., JSONL log) */
71
+ filePath: string;
72
+ /** Message being written (may be truncated) */
73
+ content: string;
74
+ /** Content length before truncation */
75
+ contentLength: number;
76
+ };
77
+ export type BeforeModelResolveData = BaseEventData & {
78
+ /** Requested model ID/name */
79
+ requestedModel: string;
80
+ };
81
+ export type BeforePromptBuildData = BaseEventData & {
82
+ /** Number of messages in history */
83
+ messageCount: number;
84
+ /** Total token estimate */
85
+ tokenEstimate?: number;
86
+ };
87
+ export type LlmInputData = BaseEventData & {
88
+ /** Model being called */
89
+ model: string;
90
+ /** Full prompt content (may be truncated for very large prompts) */
91
+ content: string;
92
+ /** Content length before truncation */
93
+ contentLength: number;
94
+ /** Number of messages in the request */
95
+ messageCount: number;
96
+ /** Token count if available */
97
+ tokenCount?: number;
98
+ /** System prompt if separate */
99
+ systemPrompt?: string;
100
+ };
101
+ export type LlmOutputData = BaseEventData & {
102
+ /** Model that responded */
103
+ model: string;
104
+ /** Response content (may be truncated) */
105
+ content: string;
106
+ /** Content length before truncation */
107
+ contentLength: number;
108
+ /** Whether the response was streamed */
109
+ streamed: boolean;
110
+ /** Tokens used (input + output) if available */
111
+ tokenUsage?: {
112
+ input: number;
113
+ output: number;
114
+ total: number;
115
+ };
116
+ /** Latency to first token / full response in ms */
117
+ latencyMs: number;
118
+ /** Stop reason */
119
+ stopReason?: "end_turn" | "max_tokens" | "tool_use" | "error" | string;
120
+ };
121
+ export type BeforeToolCallData = BaseEventData & {
122
+ /** Tool name being called */
123
+ toolName: string;
124
+ /** Tool parameters (sanitized) */
125
+ params: Record<string, unknown>;
126
+ /** Tool input hash for dedup */
127
+ inputHash?: string;
128
+ };
129
+ export type AfterToolCallData = BaseEventData & {
130
+ /** Tool name that was called */
131
+ toolName: string;
132
+ /** Tool parameters (sanitized) */
133
+ params: Record<string, unknown>;
134
+ /** Whether the call succeeded */
135
+ success: boolean;
136
+ /** Error message if failed */
137
+ error?: string;
138
+ /** Result summary (truncated if large) */
139
+ resultSummary?: string;
140
+ /** Result size in bytes */
141
+ resultSizeBytes: number;
142
+ /** Execution duration in ms */
143
+ durationMs: number;
144
+ };
145
+ export type ToolResultPersistData = BaseEventData & {
146
+ /** Tool name */
147
+ toolName?: string;
148
+ /** Whether the result was modified (e.g., quota message appended) */
149
+ modified: boolean;
150
+ /** Modification reason if modified */
151
+ modificationReason?: string;
152
+ };
153
+ export type BeforeCompactionData = BaseEventData & {
154
+ /** Number of messages before compaction */
155
+ messageCount: number;
156
+ /** Estimated token count before */
157
+ tokenEstimate?: number;
158
+ /** Reason for compaction */
159
+ reason: "token_limit" | "manual" | "auto";
160
+ };
161
+ export type AfterCompactionData = BaseEventData & {
162
+ /** Number of messages after compaction */
163
+ messageCount: number;
164
+ /** Messages removed */
165
+ removedCount: number;
166
+ /** Estimated token count after */
167
+ tokenEstimate?: number;
168
+ };
169
+ export type BeforeResetData = BaseEventData & {
170
+ /** Reason for reset */
171
+ reason: "user_request" | "error_recovery" | "context_overflow" | "unknown";
172
+ /** Number of messages being cleared */
173
+ messageCount: number;
174
+ };
175
+ export type SubagentSpawningData = BaseEventData & {
176
+ /** Subagent ID being created */
177
+ subagentId: string;
178
+ /** Type of subagent */
179
+ subagentType: string;
180
+ /** Task/prompt for the subagent */
181
+ task: string;
182
+ /** Task length before truncation */
183
+ taskLength: number;
184
+ /** Parent agent context */
185
+ parentContext?: string;
186
+ };
187
+ export type SubagentDeliveryTargetData = BaseEventData & {
188
+ /** Subagent ID */
189
+ subagentId: string;
190
+ /** Delivery target type */
191
+ targetType: string;
192
+ /** Target details */
193
+ targetDetails?: Record<string, unknown>;
194
+ };
195
+ export type SubagentSpawnedData = BaseEventData & {
196
+ /** Subagent ID that was created */
197
+ subagentId: string;
198
+ /** Subagent type */
199
+ subagentType: string;
200
+ /** Whether spawn was successful */
201
+ success: boolean;
202
+ /** Error if failed */
203
+ error?: string;
204
+ };
205
+ export type SubagentEndedData = BaseEventData & {
206
+ /** Subagent ID that ended */
207
+ subagentId: string;
208
+ /** How it ended */
209
+ reason: "completed" | "error" | "timeout" | "cancelled" | "unknown";
210
+ /** Result summary if completed */
211
+ resultSummary?: string;
212
+ /** Error message if failed */
213
+ error?: string;
214
+ /** Duration in ms */
215
+ durationMs?: number;
216
+ };
217
+ export type GatewayStartData = BaseEventData & {
218
+ /** Gateway port */
219
+ port: number;
220
+ /** Gateway URL */
221
+ url: string;
222
+ };
223
+ export type GatewayStopData = BaseEventData & {
224
+ /** Reason for stopping */
225
+ reason: "shutdown" | "error" | "restart" | "unknown";
226
+ /** Error if stopped due to error */
227
+ error?: string;
228
+ };
229
+ export type HookEventData = BeforeAgentStartData | AgentEndData | SessionStartData | SessionEndData | MessageReceivedData | MessageSendingData | MessageSentData | BeforeMessageWriteData | BeforeModelResolveData | BeforePromptBuildData | LlmInputData | LlmOutputData | BeforeToolCallData | AfterToolCallData | ToolResultPersistData | BeforeCompactionData | AfterCompactionData | BeforeResetData | SubagentSpawningData | SubagentDeliveryTargetData | SubagentSpawnedData | SubagentEndedData | GatewayStartData | GatewayStopData;
230
+ /** A single hook event for reporting to Core */
231
+ export type HookEvent = {
232
+ /** Event sequence number (monotonically increasing per session) */
233
+ seq: number;
234
+ /** Hook type */
235
+ hookType: HookType;
236
+ /** Event data specific to this hook type */
237
+ data: HookEventData;
238
+ };
239
+ /** Request body for POST /api/v1/events/stream */
240
+ export type EventStreamRequest = {
241
+ /** Agent ID from credentials */
242
+ agentId: string;
243
+ /** Session key */
244
+ sessionKey: string;
245
+ /** Run ID for this conversation */
246
+ runId: string;
247
+ /** Array of events to report */
248
+ events: HookEvent[];
249
+ /** Client metadata */
250
+ meta: {
251
+ pluginVersion: string;
252
+ clientTimestamp: string;
253
+ };
254
+ };
255
+ /** Response from POST /api/v1/events/stream */
256
+ export type EventStreamResponse = {
257
+ success: boolean;
258
+ data?: {
259
+ /** Number of events processed */
260
+ processed: number;
261
+ /** Block decisions for blocking hooks (keyed by seq) */
262
+ blocks?: Array<{
263
+ seq: number;
264
+ reason: string;
265
+ findings?: Array<{
266
+ riskLevel: string;
267
+ riskType: string;
268
+ reason: string;
269
+ }>;
270
+ }>;
271
+ };
272
+ error?: string;
273
+ };
274
+ /** Map of hook types to their expected data types (for runtime validation) */
275
+ export declare const HOOK_DATA_FIELDS: Record<HookType, string[]>;
276
+ //# sourceMappingURL=hook-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-types.d.ts","sourceRoot":"","sources":["../../agent/hook-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Type definitions for all 24 OpenClaw plugin hooks.
3
+ *
4
+ * These types define the event data structure for each hook,
5
+ * enabling complete context reporting to Core for intent-action mismatch detection.
6
+ */
7
+ // =============================================================================
8
+ // Blocking vs Non-Blocking Hook Classification
9
+ // =============================================================================
10
+ /** Hooks that require synchronous response from Core (can block execution) */
11
+ export const BLOCKING_HOOKS = new Set([
12
+ "before_tool_call",
13
+ "subagent_spawning",
14
+ "message_sending",
15
+ "before_message_write",
16
+ ]);
17
+ /** Check if a hook type requires synchronous (blocking) reporting */
18
+ export function isBlockingHook(hookType) {
19
+ return BLOCKING_HOOKS.has(hookType);
20
+ }
21
+ // =============================================================================
22
+ // Type Guard Helpers
23
+ // =============================================================================
24
+ /** Map of hook types to their expected data types (for runtime validation) */
25
+ export const HOOK_DATA_FIELDS = {
26
+ before_agent_start: ["prompt"],
27
+ agent_end: ["reason"],
28
+ session_start: ["sessionId", "isNew"],
29
+ session_end: ["sessionId"],
30
+ message_received: ["from", "content", "contentLength"],
31
+ message_sending: ["to", "content", "contentLength"],
32
+ message_sent: ["to", "success"],
33
+ before_message_write: ["filePath", "content", "contentLength"],
34
+ before_model_resolve: ["requestedModel"],
35
+ before_prompt_build: ["messageCount"],
36
+ llm_input: ["model", "content", "contentLength", "messageCount"],
37
+ llm_output: ["model", "content", "contentLength", "streamed", "latencyMs"],
38
+ before_tool_call: ["toolName", "params"],
39
+ after_tool_call: ["toolName", "params", "success", "resultSizeBytes", "durationMs"],
40
+ tool_result_persist: ["modified"],
41
+ before_compaction: ["messageCount", "reason"],
42
+ after_compaction: ["messageCount", "removedCount"],
43
+ before_reset: ["reason", "messageCount"],
44
+ subagent_spawning: ["subagentId", "subagentType", "task", "taskLength"],
45
+ subagent_delivery_target: ["subagentId", "targetType"],
46
+ subagent_spawned: ["subagentId", "subagentType", "success"],
47
+ subagent_ended: ["subagentId", "reason"],
48
+ gateway_start: ["port", "url"],
49
+ gateway_stop: ["reason"],
50
+ };
51
+ //# sourceMappingURL=hook-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-types.js","sourceRoot":"","sources":["../../agent/hook-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuCH,gFAAgF;AAChF,+CAA+C;AAC/C,gFAAgF;AAEhF,8EAA8E;AAC9E,MAAM,CAAC,MAAM,cAAc,GAAkB,IAAI,GAAG,CAAC;IACnD,kBAAkB;IAClB,mBAAmB;IACnB,iBAAiB;IACjB,sBAAsB;CACvB,CAAC,CAAC;AAEH,qEAAqE;AACrE,MAAM,UAAU,cAAc,CAAC,QAAkB;IAC/C,OAAO,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACtC,CAAC;AA2VD,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF,8EAA8E;AAC9E,MAAM,CAAC,MAAM,gBAAgB,GAA+B;IAC1D,kBAAkB,EAAE,CAAC,QAAQ,CAAC;IAC9B,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,aAAa,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC;IACrC,WAAW,EAAE,CAAC,WAAW,CAAC;IAC1B,gBAAgB,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,eAAe,CAAC;IACtD,eAAe,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,eAAe,CAAC;IACnD,YAAY,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;IAC/B,oBAAoB,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,eAAe,CAAC;IAC9D,oBAAoB,EAAE,CAAC,gBAAgB,CAAC;IACxC,mBAAmB,EAAE,CAAC,cAAc,CAAC;IACrC,SAAS,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,CAAC;IAChE,UAAU,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,CAAC;IAC1E,gBAAgB,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC;IACxC,eAAe,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAE,YAAY,CAAC;IACnF,mBAAmB,EAAE,CAAC,UAAU,CAAC;IACjC,iBAAiB,EAAE,CAAC,cAAc,EAAE,QAAQ,CAAC;IAC7C,gBAAgB,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC;IAClD,YAAY,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC;IACxC,iBAAiB,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,CAAC;IACvE,wBAAwB,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;IACtD,gBAAgB,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,SAAS,CAAC;IAC3D,cAAc,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC;IACxC,aAAa,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;IAC9B,YAAY,EAAE,CAAC,QAAQ,CAAC;CACzB,CAAC"}
@@ -0,0 +1,19 @@
1
+ export type SignedJsonRequestOptions = {
2
+ method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
3
+ url: string;
4
+ body?: unknown;
5
+ signal?: AbortSignal;
6
+ authorization?: string | null;
7
+ traceId?: string;
8
+ headers?: Record<string, string>;
9
+ };
10
+ export declare function createTraceId(): string;
11
+ /**
12
+ * Unified signed JSON request sender for Core-facing APIs.
13
+ * Adds traceId header and request signing headers in one place.
14
+ */
15
+ export declare function sendSignedJsonRequest(options: SignedJsonRequestOptions): Promise<{
16
+ response: Response;
17
+ traceId: string;
18
+ }>;
19
+ //# sourceMappingURL=http-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../agent/http-client.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpD,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC,CAAC;AAEF,wBAAgB,aAAa,IAAI,MAAM,CAGtC;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA4BlD"}
@@ -0,0 +1,37 @@
1
+ import { randomBytes } from "node:crypto";
2
+ import { buildSignedAuthHeadersForUrl } from "./auth.js";
3
+ export function createTraceId() {
4
+ const randomNum = randomBytes(6).readUIntBE(0, 6);
5
+ return `${Date.now()}${String(randomNum).padStart(14, "0")}`;
6
+ }
7
+ /**
8
+ * Unified signed JSON request sender for Core-facing APIs.
9
+ * Adds traceId header and request signing headers in one place.
10
+ */
11
+ export async function sendSignedJsonRequest(options) {
12
+ let traceId = options.traceId ?? createTraceId();
13
+ const signedHeaders = buildSignedAuthHeadersForUrl({
14
+ method: options.method,
15
+ url: options.url,
16
+ body: options.body,
17
+ traceId,
18
+ ...(options.authorization !== undefined ? { authorization: options.authorization } : {}),
19
+ });
20
+ if (typeof signedHeaders.traceId === "string" && signedHeaders.traceId.trim()) {
21
+ traceId = signedHeaders.traceId.trim();
22
+ }
23
+ const headers = {
24
+ "Content-Type": "application/json",
25
+ ...(options.headers ?? {}),
26
+ ...signedHeaders,
27
+ traceId,
28
+ };
29
+ const response = await fetch(options.url, {
30
+ method: options.method,
31
+ headers,
32
+ ...(options.body !== undefined ? { body: JSON.stringify(options.body) } : {}),
33
+ ...(options.signal ? { signal: options.signal } : {}),
34
+ });
35
+ return { response, traceId };
36
+ }
37
+ //# sourceMappingURL=http-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../agent/http-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,4BAA4B,EAAE,MAAM,WAAW,CAAC;AAYzD,MAAM,UAAU,aAAa;IAC3B,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClD,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC;AAC/D,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAAiC;IAEjC,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,aAAa,EAAE,CAAC;IACjD,MAAM,aAAa,GAAG,4BAA4B,CAAC;QACjD,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO;QACP,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzF,CAAC,CAAC;IACH,IAAI,OAAO,aAAa,CAAC,OAAO,KAAK,QAAQ,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QAC9E,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,MAAM,OAAO,GAA2B;QACtC,cAAc,EAAE,kBAAkB;QAClC,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QAC1B,GAAG,aAAa;QAChB,OAAO;KACR,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACxC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO;QACP,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtD,CAAC,CAAC;IAEH,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Agent module exports
3
+ */
4
+ export { runGuardAgent, mapApiResponseToVerdict, type RunnerConfig } from "./runner.js";
5
+ export { loadApiKey, loadCoreCredentials, saveCoreCredentials, registerWithCore, DEFAULT_CORE_URL, DEFAULT_CONFIG, resolveConfig, type CoreCredentials, } from "./config.js";
6
+ export { sanitizeContent } from "./sanitizer.js";
7
+ export * from "./types.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../agent/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,KAAK,eAAe,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,cAAc,YAAY,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Agent module exports
3
+ */
4
+ export { runGuardAgent, mapApiResponseToVerdict } from "./runner.js";
5
+ export { loadApiKey, loadCoreCredentials, saveCoreCredentials, registerWithCore, DEFAULT_CORE_URL, DEFAULT_CONFIG, resolveConfig, } from "./config.js";
6
+ export { sanitizeContent } from "./sanitizer.js";
7
+ export * from "./types.js";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../agent/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAqB,MAAM,aAAa,CAAC;AACxF,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,aAAa,GAEd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,cAAc,YAAY,CAAC"}