@agent-assembly/sdk 0.0.1-alpha.3

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 (256) hide show
  1. package/LICENSE +176 -0
  2. package/README.md +182 -0
  3. package/dist/cjs/adapters/adapter-registry.js +2 -0
  4. package/dist/cjs/adapters/adapter.js +2 -0
  5. package/dist/cjs/adapters/index.js +2 -0
  6. package/dist/cjs/adapters/langchain/assembly-callback-handler.js +93 -0
  7. package/dist/cjs/adapters/langchain/index.js +8 -0
  8. package/dist/cjs/adapters/langchain/wrap-tool-with-assembly.js +55 -0
  9. package/dist/cjs/audit/encode.js +176 -0
  10. package/dist/cjs/audit/index.js +8 -0
  11. package/dist/cjs/core/gateway-resolver.js +254 -0
  12. package/dist/cjs/core/index.js +9 -0
  13. package/dist/cjs/core/init-assembly.js +224 -0
  14. package/dist/cjs/errors/configuration-error.js +17 -0
  15. package/dist/cjs/errors/gateway-error.js +17 -0
  16. package/dist/cjs/errors/index.js +11 -0
  17. package/dist/cjs/errors/op-terminated-error.js +20 -0
  18. package/dist/cjs/errors/policy-violation-error.js +10 -0
  19. package/dist/cjs/gateway/client.js +15 -0
  20. package/dist/cjs/gateway/index.js +5 -0
  21. package/dist/cjs/hooks/adapter-registry.js +7 -0
  22. package/dist/cjs/hooks/ai-sdk-detection.js +14 -0
  23. package/dist/cjs/hooks/ai-sdk.js +164 -0
  24. package/dist/cjs/hooks/langchain.js +9 -0
  25. package/dist/cjs/hooks/langgraph-detection.js +14 -0
  26. package/dist/cjs/hooks/langgraph.js +107 -0
  27. package/dist/cjs/hooks/mastra-detection.js +14 -0
  28. package/dist/cjs/hooks/mastra.js +120 -0
  29. package/dist/cjs/hooks/openai-agents-detection.js +14 -0
  30. package/dist/cjs/hooks/openai-agents.js +189 -0
  31. package/dist/cjs/index.js +25 -0
  32. package/dist/cjs/lineage/agent-context-store.js +20 -0
  33. package/dist/cjs/lineage/index.js +7 -0
  34. package/dist/cjs/native/client.js +160 -0
  35. package/dist/cjs/op-control.js +150 -0
  36. package/dist/cjs/package.json +3 -0
  37. package/dist/cjs/proto/generated/common.js +365 -0
  38. package/dist/cjs/proto/generated/policy.js +1418 -0
  39. package/dist/cjs/runtime.js +144 -0
  40. package/dist/cjs/types/assembly-config.js +2 -0
  41. package/dist/cjs/types/assembly-context.js +2 -0
  42. package/dist/cjs/types/assembly-mode.js +2 -0
  43. package/dist/cjs/types/audit.js +5 -0
  44. package/dist/cjs/types/enforcement-mode.js +9 -0
  45. package/dist/cjs/types/gateway-governance.js +2 -0
  46. package/dist/cjs/types/index.js +5 -0
  47. package/dist/cjs/types/langchain-adapter.js +2 -0
  48. package/dist/cjs/types/openai-agents-adapter.js +2 -0
  49. package/dist/cjs/types/policy.js +2 -0
  50. package/dist/cjs/types/tool-map.js +2 -0
  51. package/dist/cjs/types/vercel-ai-adapter.js +2 -0
  52. package/dist/cjs/wrappers/index.js +5 -0
  53. package/dist/cjs/wrappers/with-assembly.js +82 -0
  54. package/dist/esm/adapters/adapter-registry.js +2 -0
  55. package/dist/esm/adapters/adapter-registry.js.map +1 -0
  56. package/dist/esm/adapters/adapter.js +2 -0
  57. package/dist/esm/adapters/adapter.js.map +1 -0
  58. package/dist/esm/adapters/index.js +2 -0
  59. package/dist/esm/adapters/index.js.map +1 -0
  60. package/dist/esm/adapters/langchain/assembly-callback-handler.js +90 -0
  61. package/dist/esm/adapters/langchain/assembly-callback-handler.js.map +1 -0
  62. package/dist/esm/adapters/langchain/index.js +3 -0
  63. package/dist/esm/adapters/langchain/index.js.map +1 -0
  64. package/dist/esm/adapters/langchain/wrap-tool-with-assembly.js +52 -0
  65. package/dist/esm/adapters/langchain/wrap-tool-with-assembly.js.map +1 -0
  66. package/dist/esm/audit/encode.js +171 -0
  67. package/dist/esm/audit/encode.js.map +1 -0
  68. package/dist/esm/audit/index.js +2 -0
  69. package/dist/esm/audit/index.js.map +1 -0
  70. package/dist/esm/core/gateway-resolver.js +213 -0
  71. package/dist/esm/core/gateway-resolver.js.map +1 -0
  72. package/dist/esm/core/index.js +2 -0
  73. package/dist/esm/core/index.js.map +1 -0
  74. package/dist/esm/core/init-assembly.js +218 -0
  75. package/dist/esm/core/init-assembly.js.map +1 -0
  76. package/dist/esm/errors/configuration-error.js +14 -0
  77. package/dist/esm/errors/configuration-error.js.map +1 -0
  78. package/dist/esm/errors/gateway-error.js +14 -0
  79. package/dist/esm/errors/gateway-error.js.map +1 -0
  80. package/dist/esm/errors/index.js +5 -0
  81. package/dist/esm/errors/index.js.map +1 -0
  82. package/dist/esm/errors/op-terminated-error.js +17 -0
  83. package/dist/esm/errors/op-terminated-error.js.map +1 -0
  84. package/dist/esm/errors/policy-violation-error.js +7 -0
  85. package/dist/esm/errors/policy-violation-error.js.map +1 -0
  86. package/dist/esm/gateway/client.js +13 -0
  87. package/dist/esm/gateway/client.js.map +1 -0
  88. package/dist/esm/gateway/index.js +2 -0
  89. package/dist/esm/gateway/index.js.map +1 -0
  90. package/dist/esm/hooks/adapter-registry.js +5 -0
  91. package/dist/esm/hooks/adapter-registry.js.map +1 -0
  92. package/dist/esm/hooks/ai-sdk-detection.js +12 -0
  93. package/dist/esm/hooks/ai-sdk-detection.js.map +1 -0
  94. package/dist/esm/hooks/ai-sdk.js +123 -0
  95. package/dist/esm/hooks/ai-sdk.js.map +1 -0
  96. package/dist/esm/hooks/langchain.js +7 -0
  97. package/dist/esm/hooks/langchain.js.map +1 -0
  98. package/dist/esm/hooks/langgraph-detection.js +12 -0
  99. package/dist/esm/hooks/langgraph-detection.js.map +1 -0
  100. package/dist/esm/hooks/langgraph.js +69 -0
  101. package/dist/esm/hooks/langgraph.js.map +1 -0
  102. package/dist/esm/hooks/mastra-detection.js +12 -0
  103. package/dist/esm/hooks/mastra-detection.js.map +1 -0
  104. package/dist/esm/hooks/mastra.js +83 -0
  105. package/dist/esm/hooks/mastra.js.map +1 -0
  106. package/dist/esm/hooks/openai-agents-detection.js +12 -0
  107. package/dist/esm/hooks/openai-agents-detection.js.map +1 -0
  108. package/dist/esm/hooks/openai-agents.js +145 -0
  109. package/dist/esm/hooks/openai-agents.js.map +1 -0
  110. package/dist/esm/index.js +12 -0
  111. package/dist/esm/index.js.map +1 -0
  112. package/dist/esm/lineage/agent-context-store.js +16 -0
  113. package/dist/esm/lineage/agent-context-store.js.map +1 -0
  114. package/dist/esm/lineage/index.js +2 -0
  115. package/dist/esm/lineage/index.js.map +1 -0
  116. package/dist/esm/native/client.js +150 -0
  117. package/dist/esm/native/client.js.map +1 -0
  118. package/dist/esm/op-control.js +147 -0
  119. package/dist/esm/op-control.js.map +1 -0
  120. package/dist/esm/proto/generated/common.js +357 -0
  121. package/dist/esm/proto/generated/common.js.map +1 -0
  122. package/dist/esm/proto/generated/policy.js +1414 -0
  123. package/dist/esm/proto/generated/policy.js.map +1 -0
  124. package/dist/esm/runtime.js +138 -0
  125. package/dist/esm/runtime.js.map +1 -0
  126. package/dist/esm/types/assembly-config.js +2 -0
  127. package/dist/esm/types/assembly-config.js.map +1 -0
  128. package/dist/esm/types/assembly-context.js +2 -0
  129. package/dist/esm/types/assembly-context.js.map +1 -0
  130. package/dist/esm/types/assembly-mode.js +2 -0
  131. package/dist/esm/types/assembly-mode.js.map +1 -0
  132. package/dist/esm/types/audit.js +5 -0
  133. package/dist/esm/types/audit.js.map +1 -0
  134. package/dist/esm/types/enforcement-mode.js +7 -0
  135. package/dist/esm/types/enforcement-mode.js.map +1 -0
  136. package/dist/esm/types/gateway-governance.js +2 -0
  137. package/dist/esm/types/gateway-governance.js.map +1 -0
  138. package/dist/esm/types/index.js +2 -0
  139. package/dist/esm/types/index.js.map +1 -0
  140. package/dist/esm/types/langchain-adapter.js +2 -0
  141. package/dist/esm/types/langchain-adapter.js.map +1 -0
  142. package/dist/esm/types/openai-agents-adapter.js +2 -0
  143. package/dist/esm/types/openai-agents-adapter.js.map +1 -0
  144. package/dist/esm/types/policy.js +2 -0
  145. package/dist/esm/types/policy.js.map +1 -0
  146. package/dist/esm/types/tool-map.js +2 -0
  147. package/dist/esm/types/tool-map.js.map +1 -0
  148. package/dist/esm/types/vercel-ai-adapter.js +2 -0
  149. package/dist/esm/types/vercel-ai-adapter.js.map +1 -0
  150. package/dist/esm/wrappers/index.js +2 -0
  151. package/dist/esm/wrappers/index.js.map +1 -0
  152. package/dist/esm/wrappers/with-assembly.js +80 -0
  153. package/dist/esm/wrappers/with-assembly.js.map +1 -0
  154. package/dist/types/adapters/adapter-registry.d.ts +7 -0
  155. package/dist/types/adapters/adapter-registry.d.ts.map +1 -0
  156. package/dist/types/adapters/adapter.d.ts +6 -0
  157. package/dist/types/adapters/adapter.d.ts.map +1 -0
  158. package/dist/types/adapters/index.d.ts +3 -0
  159. package/dist/types/adapters/index.d.ts.map +1 -0
  160. package/dist/types/adapters/langchain/assembly-callback-handler.d.ts +21 -0
  161. package/dist/types/adapters/langchain/assembly-callback-handler.d.ts.map +1 -0
  162. package/dist/types/adapters/langchain/index.d.ts +4 -0
  163. package/dist/types/adapters/langchain/index.d.ts.map +1 -0
  164. package/dist/types/adapters/langchain/wrap-tool-with-assembly.d.ts +9 -0
  165. package/dist/types/adapters/langchain/wrap-tool-with-assembly.d.ts.map +1 -0
  166. package/dist/types/audit/encode.d.ts +77 -0
  167. package/dist/types/audit/encode.d.ts.map +1 -0
  168. package/dist/types/audit/index.d.ts +3 -0
  169. package/dist/types/audit/index.d.ts.map +1 -0
  170. package/dist/types/core/gateway-resolver.d.ts +92 -0
  171. package/dist/types/core/gateway-resolver.d.ts.map +1 -0
  172. package/dist/types/core/index.d.ts +2 -0
  173. package/dist/types/core/index.d.ts.map +1 -0
  174. package/dist/types/core/init-assembly.d.ts +10 -0
  175. package/dist/types/core/init-assembly.d.ts.map +1 -0
  176. package/dist/types/errors/configuration-error.d.ts +11 -0
  177. package/dist/types/errors/configuration-error.d.ts.map +1 -0
  178. package/dist/types/errors/gateway-error.d.ts +11 -0
  179. package/dist/types/errors/gateway-error.d.ts.map +1 -0
  180. package/dist/types/errors/index.d.ts +5 -0
  181. package/dist/types/errors/index.d.ts.map +1 -0
  182. package/dist/types/errors/op-terminated-error.d.ts +13 -0
  183. package/dist/types/errors/op-terminated-error.d.ts.map +1 -0
  184. package/dist/types/errors/policy-violation-error.d.ts +4 -0
  185. package/dist/types/errors/policy-violation-error.d.ts.map +1 -0
  186. package/dist/types/gateway/client.d.ts +14 -0
  187. package/dist/types/gateway/client.d.ts.map +1 -0
  188. package/dist/types/gateway/index.d.ts +3 -0
  189. package/dist/types/gateway/index.d.ts.map +1 -0
  190. package/dist/types/hooks/adapter-registry.d.ts +3 -0
  191. package/dist/types/hooks/adapter-registry.d.ts.map +1 -0
  192. package/dist/types/hooks/ai-sdk-detection.d.ts +2 -0
  193. package/dist/types/hooks/ai-sdk-detection.d.ts.map +1 -0
  194. package/dist/types/hooks/ai-sdk.d.ts +36 -0
  195. package/dist/types/hooks/ai-sdk.d.ts.map +1 -0
  196. package/dist/types/hooks/langchain.d.ts +3 -0
  197. package/dist/types/hooks/langchain.d.ts.map +1 -0
  198. package/dist/types/hooks/langgraph-detection.d.ts +2 -0
  199. package/dist/types/hooks/langgraph-detection.d.ts.map +1 -0
  200. package/dist/types/hooks/langgraph.d.ts +26 -0
  201. package/dist/types/hooks/langgraph.d.ts.map +1 -0
  202. package/dist/types/hooks/mastra-detection.d.ts +2 -0
  203. package/dist/types/hooks/mastra-detection.d.ts.map +1 -0
  204. package/dist/types/hooks/mastra.d.ts +29 -0
  205. package/dist/types/hooks/mastra.d.ts.map +1 -0
  206. package/dist/types/hooks/openai-agents-detection.d.ts +2 -0
  207. package/dist/types/hooks/openai-agents-detection.d.ts.map +1 -0
  208. package/dist/types/hooks/openai-agents.d.ts +42 -0
  209. package/dist/types/hooks/openai-agents.d.ts.map +1 -0
  210. package/dist/types/index.d.ts +10 -0
  211. package/dist/types/index.d.ts.map +1 -0
  212. package/dist/types/lineage/agent-context-store.d.ts +12 -0
  213. package/dist/types/lineage/agent-context-store.d.ts.map +1 -0
  214. package/dist/types/lineage/index.d.ts +2 -0
  215. package/dist/types/lineage/index.d.ts.map +1 -0
  216. package/dist/types/native/client.d.ts +26 -0
  217. package/dist/types/native/client.d.ts.map +1 -0
  218. package/dist/types/op-control.d.ts +85 -0
  219. package/dist/types/op-control.d.ts.map +1 -0
  220. package/dist/types/proto/generated/common.d.ts +90 -0
  221. package/dist/types/proto/generated/common.d.ts.map +1 -0
  222. package/dist/types/proto/generated/policy.d.ts +298 -0
  223. package/dist/types/proto/generated/policy.d.ts.map +1 -0
  224. package/dist/types/runtime.d.ts +59 -0
  225. package/dist/types/runtime.d.ts.map +1 -0
  226. package/dist/types/types/assembly-config.d.ts +47 -0
  227. package/dist/types/types/assembly-config.d.ts.map +1 -0
  228. package/dist/types/types/assembly-context.d.ts +12 -0
  229. package/dist/types/types/assembly-context.d.ts.map +1 -0
  230. package/dist/types/types/assembly-mode.d.ts +2 -0
  231. package/dist/types/types/assembly-mode.d.ts.map +1 -0
  232. package/dist/types/types/audit.d.ts +76 -0
  233. package/dist/types/types/audit.d.ts.map +1 -0
  234. package/dist/types/types/enforcement-mode.d.ts +20 -0
  235. package/dist/types/types/enforcement-mode.d.ts.map +1 -0
  236. package/dist/types/types/gateway-governance.d.ts +31 -0
  237. package/dist/types/types/gateway-governance.d.ts.map +1 -0
  238. package/dist/types/types/index.d.ts +12 -0
  239. package/dist/types/types/index.d.ts.map +1 -0
  240. package/dist/types/types/langchain-adapter.d.ts +25 -0
  241. package/dist/types/types/langchain-adapter.d.ts.map +1 -0
  242. package/dist/types/types/openai-agents-adapter.d.ts +17 -0
  243. package/dist/types/types/openai-agents-adapter.d.ts.map +1 -0
  244. package/dist/types/types/policy.d.ts +10 -0
  245. package/dist/types/types/policy.d.ts.map +1 -0
  246. package/dist/types/types/tool-map.d.ts +2 -0
  247. package/dist/types/types/tool-map.d.ts.map +1 -0
  248. package/dist/types/types/vercel-ai-adapter.d.ts +12 -0
  249. package/dist/types/types/vercel-ai-adapter.d.ts.map +1 -0
  250. package/dist/types/wrappers/index.d.ts +3 -0
  251. package/dist/types/wrappers/index.d.ts.map +1 -0
  252. package/dist/types/wrappers/with-assembly.d.ts +9 -0
  253. package/dist/types/wrappers/with-assembly.d.ts.map +1 -0
  254. package/native/aa-ffi-node/index.cjs +20 -0
  255. package/native/aa-ffi-node/index.d.ts +23 -0
  256. package/package.json +95 -0
@@ -0,0 +1,1414 @@
1
+ // AUTO-GENERATED by scripts/gen-proto.mjs from ../agent-assembly/proto/. Do not edit by hand.
2
+ // Code generated by protoc-gen-ts_proto. DO NOT EDIT.
3
+ // versions:
4
+ // protoc-gen-ts_proto v2.11.8
5
+ // protoc v3.19.1
6
+ // source: policy.proto
7
+ /* eslint-disable */
8
+ import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
9
+ import { makeGenericClientConstructor, } from "@grpc/grpc-js";
10
+ import { actionTypeFromJSON, actionTypeToJSON, AgentId, decisionFromJSON, decisionToJSON, } from "./common.js";
11
+ export const protobufPackage = "assembly.policy.v1";
12
+ /**
13
+ * OpControlSignal classifies the lifecycle action the gateway is pushing to
14
+ * the SDK. Mirrors the OpsRegistry transitions in aa-gateway/src/ops/mod.rs.
15
+ */
16
+ export var OpControlSignal;
17
+ (function (OpControlSignal) {
18
+ /** OP_CONTROL_SIGNAL_UNSPECIFIED - Default — never wired; treated as a malformed message by the SDK. */
19
+ OpControlSignal[OpControlSignal["OP_CONTROL_SIGNAL_UNSPECIFIED"] = 0] = "OP_CONTROL_SIGNAL_UNSPECIFIED";
20
+ /**
21
+ * OP_CONTROL_SIGNAL_PAUSE - Operator paused the op via POST /api/v1/ops/{id}/pause. SDK should
22
+ * cooperatively yield at the next interruption point and block on resume.
23
+ */
24
+ OpControlSignal[OpControlSignal["OP_CONTROL_SIGNAL_PAUSE"] = 1] = "OP_CONTROL_SIGNAL_PAUSE";
25
+ /** OP_CONTROL_SIGNAL_RESUME - Operator resumed the op via POST /api/v1/ops/{id}/resume. SDK unblocks. */
26
+ OpControlSignal[OpControlSignal["OP_CONTROL_SIGNAL_RESUME"] = 2] = "OP_CONTROL_SIGNAL_RESUME";
27
+ /**
28
+ * OP_CONTROL_SIGNAL_TERMINATE - Operator (or policy deny) terminated the op. SDK fast-fails the in-flight
29
+ * action with an OpTerminatedError.
30
+ */
31
+ OpControlSignal[OpControlSignal["OP_CONTROL_SIGNAL_TERMINATE"] = 3] = "OP_CONTROL_SIGNAL_TERMINATE";
32
+ OpControlSignal[OpControlSignal["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
33
+ })(OpControlSignal || (OpControlSignal = {}));
34
+ export function opControlSignalFromJSON(object) {
35
+ switch (object) {
36
+ case 0:
37
+ case "OP_CONTROL_SIGNAL_UNSPECIFIED":
38
+ return OpControlSignal.OP_CONTROL_SIGNAL_UNSPECIFIED;
39
+ case 1:
40
+ case "OP_CONTROL_SIGNAL_PAUSE":
41
+ return OpControlSignal.OP_CONTROL_SIGNAL_PAUSE;
42
+ case 2:
43
+ case "OP_CONTROL_SIGNAL_RESUME":
44
+ return OpControlSignal.OP_CONTROL_SIGNAL_RESUME;
45
+ case 3:
46
+ case "OP_CONTROL_SIGNAL_TERMINATE":
47
+ return OpControlSignal.OP_CONTROL_SIGNAL_TERMINATE;
48
+ case -1:
49
+ case "UNRECOGNIZED":
50
+ default:
51
+ return OpControlSignal.UNRECOGNIZED;
52
+ }
53
+ }
54
+ export function opControlSignalToJSON(object) {
55
+ switch (object) {
56
+ case OpControlSignal.OP_CONTROL_SIGNAL_UNSPECIFIED:
57
+ return "OP_CONTROL_SIGNAL_UNSPECIFIED";
58
+ case OpControlSignal.OP_CONTROL_SIGNAL_PAUSE:
59
+ return "OP_CONTROL_SIGNAL_PAUSE";
60
+ case OpControlSignal.OP_CONTROL_SIGNAL_RESUME:
61
+ return "OP_CONTROL_SIGNAL_RESUME";
62
+ case OpControlSignal.OP_CONTROL_SIGNAL_TERMINATE:
63
+ return "OP_CONTROL_SIGNAL_TERMINATE";
64
+ case OpControlSignal.UNRECOGNIZED:
65
+ default:
66
+ return "UNRECOGNIZED";
67
+ }
68
+ }
69
+ function createBaseCheckActionRequest() {
70
+ return { agentId: undefined, credentialToken: "", traceId: "", spanId: "", actionType: 0, context: undefined };
71
+ }
72
+ export const CheckActionRequest = {
73
+ encode(message, writer = new BinaryWriter()) {
74
+ if (message.agentId !== undefined) {
75
+ AgentId.encode(message.agentId, writer.uint32(10).fork()).join();
76
+ }
77
+ if (message.credentialToken !== "") {
78
+ writer.uint32(18).string(message.credentialToken);
79
+ }
80
+ if (message.traceId !== "") {
81
+ writer.uint32(26).string(message.traceId);
82
+ }
83
+ if (message.spanId !== "") {
84
+ writer.uint32(34).string(message.spanId);
85
+ }
86
+ if (message.actionType !== 0) {
87
+ writer.uint32(40).int32(message.actionType);
88
+ }
89
+ if (message.context !== undefined) {
90
+ ActionContext.encode(message.context, writer.uint32(50).fork()).join();
91
+ }
92
+ return writer;
93
+ },
94
+ decode(input, length) {
95
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
96
+ const end = length === undefined ? reader.len : reader.pos + length;
97
+ const message = createBaseCheckActionRequest();
98
+ while (reader.pos < end) {
99
+ const tag = reader.uint32();
100
+ switch (tag >>> 3) {
101
+ case 1: {
102
+ if (tag !== 10) {
103
+ break;
104
+ }
105
+ message.agentId = AgentId.decode(reader, reader.uint32());
106
+ continue;
107
+ }
108
+ case 2: {
109
+ if (tag !== 18) {
110
+ break;
111
+ }
112
+ message.credentialToken = reader.string();
113
+ continue;
114
+ }
115
+ case 3: {
116
+ if (tag !== 26) {
117
+ break;
118
+ }
119
+ message.traceId = reader.string();
120
+ continue;
121
+ }
122
+ case 4: {
123
+ if (tag !== 34) {
124
+ break;
125
+ }
126
+ message.spanId = reader.string();
127
+ continue;
128
+ }
129
+ case 5: {
130
+ if (tag !== 40) {
131
+ break;
132
+ }
133
+ message.actionType = reader.int32();
134
+ continue;
135
+ }
136
+ case 6: {
137
+ if (tag !== 50) {
138
+ break;
139
+ }
140
+ message.context = ActionContext.decode(reader, reader.uint32());
141
+ continue;
142
+ }
143
+ }
144
+ if ((tag & 7) === 4 || tag === 0) {
145
+ break;
146
+ }
147
+ reader.skip(tag & 7);
148
+ }
149
+ return message;
150
+ },
151
+ fromJSON(object) {
152
+ return {
153
+ agentId: isSet(object.agentId)
154
+ ? AgentId.fromJSON(object.agentId)
155
+ : isSet(object.agent_id)
156
+ ? AgentId.fromJSON(object.agent_id)
157
+ : undefined,
158
+ credentialToken: isSet(object.credentialToken)
159
+ ? globalThis.String(object.credentialToken)
160
+ : isSet(object.credential_token)
161
+ ? globalThis.String(object.credential_token)
162
+ : "",
163
+ traceId: isSet(object.traceId)
164
+ ? globalThis.String(object.traceId)
165
+ : isSet(object.trace_id)
166
+ ? globalThis.String(object.trace_id)
167
+ : "",
168
+ spanId: isSet(object.spanId)
169
+ ? globalThis.String(object.spanId)
170
+ : isSet(object.span_id)
171
+ ? globalThis.String(object.span_id)
172
+ : "",
173
+ actionType: isSet(object.actionType)
174
+ ? actionTypeFromJSON(object.actionType)
175
+ : isSet(object.action_type)
176
+ ? actionTypeFromJSON(object.action_type)
177
+ : 0,
178
+ context: isSet(object.context) ? ActionContext.fromJSON(object.context) : undefined,
179
+ };
180
+ },
181
+ toJSON(message) {
182
+ const obj = {};
183
+ if (message.agentId !== undefined) {
184
+ obj.agentId = AgentId.toJSON(message.agentId);
185
+ }
186
+ if (message.credentialToken !== "") {
187
+ obj.credentialToken = message.credentialToken;
188
+ }
189
+ if (message.traceId !== "") {
190
+ obj.traceId = message.traceId;
191
+ }
192
+ if (message.spanId !== "") {
193
+ obj.spanId = message.spanId;
194
+ }
195
+ if (message.actionType !== 0) {
196
+ obj.actionType = actionTypeToJSON(message.actionType);
197
+ }
198
+ if (message.context !== undefined) {
199
+ obj.context = ActionContext.toJSON(message.context);
200
+ }
201
+ return obj;
202
+ },
203
+ create(base) {
204
+ return CheckActionRequest.fromPartial(base ?? {});
205
+ },
206
+ fromPartial(object) {
207
+ const message = createBaseCheckActionRequest();
208
+ message.agentId = (object.agentId !== undefined && object.agentId !== null)
209
+ ? AgentId.fromPartial(object.agentId)
210
+ : undefined;
211
+ message.credentialToken = object.credentialToken ?? "";
212
+ message.traceId = object.traceId ?? "";
213
+ message.spanId = object.spanId ?? "";
214
+ message.actionType = object.actionType ?? 0;
215
+ message.context = (object.context !== undefined && object.context !== null)
216
+ ? ActionContext.fromPartial(object.context)
217
+ : undefined;
218
+ return message;
219
+ },
220
+ };
221
+ function createBaseActionContext() {
222
+ return { llmCall: undefined, toolCall: undefined, fileOp: undefined, networkCall: undefined, processExec: undefined };
223
+ }
224
+ export const ActionContext = {
225
+ encode(message, writer = new BinaryWriter()) {
226
+ if (message.llmCall !== undefined) {
227
+ LLMCallContext.encode(message.llmCall, writer.uint32(10).fork()).join();
228
+ }
229
+ if (message.toolCall !== undefined) {
230
+ ToolCallContext.encode(message.toolCall, writer.uint32(18).fork()).join();
231
+ }
232
+ if (message.fileOp !== undefined) {
233
+ FileOpContext.encode(message.fileOp, writer.uint32(26).fork()).join();
234
+ }
235
+ if (message.networkCall !== undefined) {
236
+ NetworkCallContext.encode(message.networkCall, writer.uint32(34).fork()).join();
237
+ }
238
+ if (message.processExec !== undefined) {
239
+ ProcessExecContext.encode(message.processExec, writer.uint32(42).fork()).join();
240
+ }
241
+ return writer;
242
+ },
243
+ decode(input, length) {
244
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
245
+ const end = length === undefined ? reader.len : reader.pos + length;
246
+ const message = createBaseActionContext();
247
+ while (reader.pos < end) {
248
+ const tag = reader.uint32();
249
+ switch (tag >>> 3) {
250
+ case 1: {
251
+ if (tag !== 10) {
252
+ break;
253
+ }
254
+ message.llmCall = LLMCallContext.decode(reader, reader.uint32());
255
+ continue;
256
+ }
257
+ case 2: {
258
+ if (tag !== 18) {
259
+ break;
260
+ }
261
+ message.toolCall = ToolCallContext.decode(reader, reader.uint32());
262
+ continue;
263
+ }
264
+ case 3: {
265
+ if (tag !== 26) {
266
+ break;
267
+ }
268
+ message.fileOp = FileOpContext.decode(reader, reader.uint32());
269
+ continue;
270
+ }
271
+ case 4: {
272
+ if (tag !== 34) {
273
+ break;
274
+ }
275
+ message.networkCall = NetworkCallContext.decode(reader, reader.uint32());
276
+ continue;
277
+ }
278
+ case 5: {
279
+ if (tag !== 42) {
280
+ break;
281
+ }
282
+ message.processExec = ProcessExecContext.decode(reader, reader.uint32());
283
+ continue;
284
+ }
285
+ }
286
+ if ((tag & 7) === 4 || tag === 0) {
287
+ break;
288
+ }
289
+ reader.skip(tag & 7);
290
+ }
291
+ return message;
292
+ },
293
+ fromJSON(object) {
294
+ return {
295
+ llmCall: isSet(object.llmCall)
296
+ ? LLMCallContext.fromJSON(object.llmCall)
297
+ : isSet(object.llm_call)
298
+ ? LLMCallContext.fromJSON(object.llm_call)
299
+ : undefined,
300
+ toolCall: isSet(object.toolCall)
301
+ ? ToolCallContext.fromJSON(object.toolCall)
302
+ : isSet(object.tool_call)
303
+ ? ToolCallContext.fromJSON(object.tool_call)
304
+ : undefined,
305
+ fileOp: isSet(object.fileOp)
306
+ ? FileOpContext.fromJSON(object.fileOp)
307
+ : isSet(object.file_op)
308
+ ? FileOpContext.fromJSON(object.file_op)
309
+ : undefined,
310
+ networkCall: isSet(object.networkCall)
311
+ ? NetworkCallContext.fromJSON(object.networkCall)
312
+ : isSet(object.network_call)
313
+ ? NetworkCallContext.fromJSON(object.network_call)
314
+ : undefined,
315
+ processExec: isSet(object.processExec)
316
+ ? ProcessExecContext.fromJSON(object.processExec)
317
+ : isSet(object.process_exec)
318
+ ? ProcessExecContext.fromJSON(object.process_exec)
319
+ : undefined,
320
+ };
321
+ },
322
+ toJSON(message) {
323
+ const obj = {};
324
+ if (message.llmCall !== undefined) {
325
+ obj.llmCall = LLMCallContext.toJSON(message.llmCall);
326
+ }
327
+ if (message.toolCall !== undefined) {
328
+ obj.toolCall = ToolCallContext.toJSON(message.toolCall);
329
+ }
330
+ if (message.fileOp !== undefined) {
331
+ obj.fileOp = FileOpContext.toJSON(message.fileOp);
332
+ }
333
+ if (message.networkCall !== undefined) {
334
+ obj.networkCall = NetworkCallContext.toJSON(message.networkCall);
335
+ }
336
+ if (message.processExec !== undefined) {
337
+ obj.processExec = ProcessExecContext.toJSON(message.processExec);
338
+ }
339
+ return obj;
340
+ },
341
+ create(base) {
342
+ return ActionContext.fromPartial(base ?? {});
343
+ },
344
+ fromPartial(object) {
345
+ const message = createBaseActionContext();
346
+ message.llmCall = (object.llmCall !== undefined && object.llmCall !== null)
347
+ ? LLMCallContext.fromPartial(object.llmCall)
348
+ : undefined;
349
+ message.toolCall = (object.toolCall !== undefined && object.toolCall !== null)
350
+ ? ToolCallContext.fromPartial(object.toolCall)
351
+ : undefined;
352
+ message.fileOp = (object.fileOp !== undefined && object.fileOp !== null)
353
+ ? FileOpContext.fromPartial(object.fileOp)
354
+ : undefined;
355
+ message.networkCall = (object.networkCall !== undefined && object.networkCall !== null)
356
+ ? NetworkCallContext.fromPartial(object.networkCall)
357
+ : undefined;
358
+ message.processExec = (object.processExec !== undefined && object.processExec !== null)
359
+ ? ProcessExecContext.fromPartial(object.processExec)
360
+ : undefined;
361
+ return message;
362
+ },
363
+ };
364
+ function createBaseLLMCallContext() {
365
+ return { model: "", promptTokens: 0, containsPii: false };
366
+ }
367
+ export const LLMCallContext = {
368
+ encode(message, writer = new BinaryWriter()) {
369
+ if (message.model !== "") {
370
+ writer.uint32(10).string(message.model);
371
+ }
372
+ if (message.promptTokens !== 0) {
373
+ writer.uint32(16).int32(message.promptTokens);
374
+ }
375
+ if (message.containsPii !== false) {
376
+ writer.uint32(24).bool(message.containsPii);
377
+ }
378
+ return writer;
379
+ },
380
+ decode(input, length) {
381
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
382
+ const end = length === undefined ? reader.len : reader.pos + length;
383
+ const message = createBaseLLMCallContext();
384
+ while (reader.pos < end) {
385
+ const tag = reader.uint32();
386
+ switch (tag >>> 3) {
387
+ case 1: {
388
+ if (tag !== 10) {
389
+ break;
390
+ }
391
+ message.model = reader.string();
392
+ continue;
393
+ }
394
+ case 2: {
395
+ if (tag !== 16) {
396
+ break;
397
+ }
398
+ message.promptTokens = reader.int32();
399
+ continue;
400
+ }
401
+ case 3: {
402
+ if (tag !== 24) {
403
+ break;
404
+ }
405
+ message.containsPii = reader.bool();
406
+ continue;
407
+ }
408
+ }
409
+ if ((tag & 7) === 4 || tag === 0) {
410
+ break;
411
+ }
412
+ reader.skip(tag & 7);
413
+ }
414
+ return message;
415
+ },
416
+ fromJSON(object) {
417
+ return {
418
+ model: isSet(object.model) ? globalThis.String(object.model) : "",
419
+ promptTokens: isSet(object.promptTokens)
420
+ ? globalThis.Number(object.promptTokens)
421
+ : isSet(object.prompt_tokens)
422
+ ? globalThis.Number(object.prompt_tokens)
423
+ : 0,
424
+ containsPii: isSet(object.containsPii)
425
+ ? globalThis.Boolean(object.containsPii)
426
+ : isSet(object.contains_pii)
427
+ ? globalThis.Boolean(object.contains_pii)
428
+ : false,
429
+ };
430
+ },
431
+ toJSON(message) {
432
+ const obj = {};
433
+ if (message.model !== "") {
434
+ obj.model = message.model;
435
+ }
436
+ if (message.promptTokens !== 0) {
437
+ obj.promptTokens = Math.round(message.promptTokens);
438
+ }
439
+ if (message.containsPii !== false) {
440
+ obj.containsPii = message.containsPii;
441
+ }
442
+ return obj;
443
+ },
444
+ create(base) {
445
+ return LLMCallContext.fromPartial(base ?? {});
446
+ },
447
+ fromPartial(object) {
448
+ const message = createBaseLLMCallContext();
449
+ message.model = object.model ?? "";
450
+ message.promptTokens = object.promptTokens ?? 0;
451
+ message.containsPii = object.containsPii ?? false;
452
+ return message;
453
+ },
454
+ };
455
+ function createBaseToolCallContext() {
456
+ return { toolName: "", toolSource: "", argsJson: Buffer.alloc(0), targetUrl: "" };
457
+ }
458
+ export const ToolCallContext = {
459
+ encode(message, writer = new BinaryWriter()) {
460
+ if (message.toolName !== "") {
461
+ writer.uint32(10).string(message.toolName);
462
+ }
463
+ if (message.toolSource !== "") {
464
+ writer.uint32(18).string(message.toolSource);
465
+ }
466
+ if (message.argsJson.length !== 0) {
467
+ writer.uint32(26).bytes(message.argsJson);
468
+ }
469
+ if (message.targetUrl !== "") {
470
+ writer.uint32(34).string(message.targetUrl);
471
+ }
472
+ return writer;
473
+ },
474
+ decode(input, length) {
475
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
476
+ const end = length === undefined ? reader.len : reader.pos + length;
477
+ const message = createBaseToolCallContext();
478
+ while (reader.pos < end) {
479
+ const tag = reader.uint32();
480
+ switch (tag >>> 3) {
481
+ case 1: {
482
+ if (tag !== 10) {
483
+ break;
484
+ }
485
+ message.toolName = reader.string();
486
+ continue;
487
+ }
488
+ case 2: {
489
+ if (tag !== 18) {
490
+ break;
491
+ }
492
+ message.toolSource = reader.string();
493
+ continue;
494
+ }
495
+ case 3: {
496
+ if (tag !== 26) {
497
+ break;
498
+ }
499
+ message.argsJson = Buffer.from(reader.bytes());
500
+ continue;
501
+ }
502
+ case 4: {
503
+ if (tag !== 34) {
504
+ break;
505
+ }
506
+ message.targetUrl = reader.string();
507
+ continue;
508
+ }
509
+ }
510
+ if ((tag & 7) === 4 || tag === 0) {
511
+ break;
512
+ }
513
+ reader.skip(tag & 7);
514
+ }
515
+ return message;
516
+ },
517
+ fromJSON(object) {
518
+ return {
519
+ toolName: isSet(object.toolName)
520
+ ? globalThis.String(object.toolName)
521
+ : isSet(object.tool_name)
522
+ ? globalThis.String(object.tool_name)
523
+ : "",
524
+ toolSource: isSet(object.toolSource)
525
+ ? globalThis.String(object.toolSource)
526
+ : isSet(object.tool_source)
527
+ ? globalThis.String(object.tool_source)
528
+ : "",
529
+ argsJson: isSet(object.argsJson)
530
+ ? Buffer.from(bytesFromBase64(object.argsJson))
531
+ : isSet(object.args_json)
532
+ ? Buffer.from(bytesFromBase64(object.args_json))
533
+ : Buffer.alloc(0),
534
+ targetUrl: isSet(object.targetUrl)
535
+ ? globalThis.String(object.targetUrl)
536
+ : isSet(object.target_url)
537
+ ? globalThis.String(object.target_url)
538
+ : "",
539
+ };
540
+ },
541
+ toJSON(message) {
542
+ const obj = {};
543
+ if (message.toolName !== "") {
544
+ obj.toolName = message.toolName;
545
+ }
546
+ if (message.toolSource !== "") {
547
+ obj.toolSource = message.toolSource;
548
+ }
549
+ if (message.argsJson.length !== 0) {
550
+ obj.argsJson = base64FromBytes(message.argsJson);
551
+ }
552
+ if (message.targetUrl !== "") {
553
+ obj.targetUrl = message.targetUrl;
554
+ }
555
+ return obj;
556
+ },
557
+ create(base) {
558
+ return ToolCallContext.fromPartial(base ?? {});
559
+ },
560
+ fromPartial(object) {
561
+ const message = createBaseToolCallContext();
562
+ message.toolName = object.toolName ?? "";
563
+ message.toolSource = object.toolSource ?? "";
564
+ message.argsJson = object.argsJson ?? Buffer.alloc(0);
565
+ message.targetUrl = object.targetUrl ?? "";
566
+ return message;
567
+ },
568
+ };
569
+ function createBaseFileOpContext() {
570
+ return { operation: "", path: "", isSensitivePath: false };
571
+ }
572
+ export const FileOpContext = {
573
+ encode(message, writer = new BinaryWriter()) {
574
+ if (message.operation !== "") {
575
+ writer.uint32(10).string(message.operation);
576
+ }
577
+ if (message.path !== "") {
578
+ writer.uint32(18).string(message.path);
579
+ }
580
+ if (message.isSensitivePath !== false) {
581
+ writer.uint32(24).bool(message.isSensitivePath);
582
+ }
583
+ return writer;
584
+ },
585
+ decode(input, length) {
586
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
587
+ const end = length === undefined ? reader.len : reader.pos + length;
588
+ const message = createBaseFileOpContext();
589
+ while (reader.pos < end) {
590
+ const tag = reader.uint32();
591
+ switch (tag >>> 3) {
592
+ case 1: {
593
+ if (tag !== 10) {
594
+ break;
595
+ }
596
+ message.operation = reader.string();
597
+ continue;
598
+ }
599
+ case 2: {
600
+ if (tag !== 18) {
601
+ break;
602
+ }
603
+ message.path = reader.string();
604
+ continue;
605
+ }
606
+ case 3: {
607
+ if (tag !== 24) {
608
+ break;
609
+ }
610
+ message.isSensitivePath = reader.bool();
611
+ continue;
612
+ }
613
+ }
614
+ if ((tag & 7) === 4 || tag === 0) {
615
+ break;
616
+ }
617
+ reader.skip(tag & 7);
618
+ }
619
+ return message;
620
+ },
621
+ fromJSON(object) {
622
+ return {
623
+ operation: isSet(object.operation) ? globalThis.String(object.operation) : "",
624
+ path: isSet(object.path) ? globalThis.String(object.path) : "",
625
+ isSensitivePath: isSet(object.isSensitivePath)
626
+ ? globalThis.Boolean(object.isSensitivePath)
627
+ : isSet(object.is_sensitive_path)
628
+ ? globalThis.Boolean(object.is_sensitive_path)
629
+ : false,
630
+ };
631
+ },
632
+ toJSON(message) {
633
+ const obj = {};
634
+ if (message.operation !== "") {
635
+ obj.operation = message.operation;
636
+ }
637
+ if (message.path !== "") {
638
+ obj.path = message.path;
639
+ }
640
+ if (message.isSensitivePath !== false) {
641
+ obj.isSensitivePath = message.isSensitivePath;
642
+ }
643
+ return obj;
644
+ },
645
+ create(base) {
646
+ return FileOpContext.fromPartial(base ?? {});
647
+ },
648
+ fromPartial(object) {
649
+ const message = createBaseFileOpContext();
650
+ message.operation = object.operation ?? "";
651
+ message.path = object.path ?? "";
652
+ message.isSensitivePath = object.isSensitivePath ?? false;
653
+ return message;
654
+ },
655
+ };
656
+ function createBaseNetworkCallContext() {
657
+ return { host: "", port: 0, protocol: "", inAllowlist: false };
658
+ }
659
+ export const NetworkCallContext = {
660
+ encode(message, writer = new BinaryWriter()) {
661
+ if (message.host !== "") {
662
+ writer.uint32(10).string(message.host);
663
+ }
664
+ if (message.port !== 0) {
665
+ writer.uint32(16).int32(message.port);
666
+ }
667
+ if (message.protocol !== "") {
668
+ writer.uint32(26).string(message.protocol);
669
+ }
670
+ if (message.inAllowlist !== false) {
671
+ writer.uint32(32).bool(message.inAllowlist);
672
+ }
673
+ return writer;
674
+ },
675
+ decode(input, length) {
676
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
677
+ const end = length === undefined ? reader.len : reader.pos + length;
678
+ const message = createBaseNetworkCallContext();
679
+ while (reader.pos < end) {
680
+ const tag = reader.uint32();
681
+ switch (tag >>> 3) {
682
+ case 1: {
683
+ if (tag !== 10) {
684
+ break;
685
+ }
686
+ message.host = reader.string();
687
+ continue;
688
+ }
689
+ case 2: {
690
+ if (tag !== 16) {
691
+ break;
692
+ }
693
+ message.port = reader.int32();
694
+ continue;
695
+ }
696
+ case 3: {
697
+ if (tag !== 26) {
698
+ break;
699
+ }
700
+ message.protocol = reader.string();
701
+ continue;
702
+ }
703
+ case 4: {
704
+ if (tag !== 32) {
705
+ break;
706
+ }
707
+ message.inAllowlist = reader.bool();
708
+ continue;
709
+ }
710
+ }
711
+ if ((tag & 7) === 4 || tag === 0) {
712
+ break;
713
+ }
714
+ reader.skip(tag & 7);
715
+ }
716
+ return message;
717
+ },
718
+ fromJSON(object) {
719
+ return {
720
+ host: isSet(object.host) ? globalThis.String(object.host) : "",
721
+ port: isSet(object.port) ? globalThis.Number(object.port) : 0,
722
+ protocol: isSet(object.protocol) ? globalThis.String(object.protocol) : "",
723
+ inAllowlist: isSet(object.inAllowlist)
724
+ ? globalThis.Boolean(object.inAllowlist)
725
+ : isSet(object.in_allowlist)
726
+ ? globalThis.Boolean(object.in_allowlist)
727
+ : false,
728
+ };
729
+ },
730
+ toJSON(message) {
731
+ const obj = {};
732
+ if (message.host !== "") {
733
+ obj.host = message.host;
734
+ }
735
+ if (message.port !== 0) {
736
+ obj.port = Math.round(message.port);
737
+ }
738
+ if (message.protocol !== "") {
739
+ obj.protocol = message.protocol;
740
+ }
741
+ if (message.inAllowlist !== false) {
742
+ obj.inAllowlist = message.inAllowlist;
743
+ }
744
+ return obj;
745
+ },
746
+ create(base) {
747
+ return NetworkCallContext.fromPartial(base ?? {});
748
+ },
749
+ fromPartial(object) {
750
+ const message = createBaseNetworkCallContext();
751
+ message.host = object.host ?? "";
752
+ message.port = object.port ?? 0;
753
+ message.protocol = object.protocol ?? "";
754
+ message.inAllowlist = object.inAllowlist ?? false;
755
+ return message;
756
+ },
757
+ };
758
+ function createBaseProcessExecContext() {
759
+ return { command: "", args: [] };
760
+ }
761
+ export const ProcessExecContext = {
762
+ encode(message, writer = new BinaryWriter()) {
763
+ if (message.command !== "") {
764
+ writer.uint32(10).string(message.command);
765
+ }
766
+ for (const v of message.args) {
767
+ writer.uint32(18).string(v);
768
+ }
769
+ return writer;
770
+ },
771
+ decode(input, length) {
772
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
773
+ const end = length === undefined ? reader.len : reader.pos + length;
774
+ const message = createBaseProcessExecContext();
775
+ while (reader.pos < end) {
776
+ const tag = reader.uint32();
777
+ switch (tag >>> 3) {
778
+ case 1: {
779
+ if (tag !== 10) {
780
+ break;
781
+ }
782
+ message.command = reader.string();
783
+ continue;
784
+ }
785
+ case 2: {
786
+ if (tag !== 18) {
787
+ break;
788
+ }
789
+ message.args.push(reader.string());
790
+ continue;
791
+ }
792
+ }
793
+ if ((tag & 7) === 4 || tag === 0) {
794
+ break;
795
+ }
796
+ reader.skip(tag & 7);
797
+ }
798
+ return message;
799
+ },
800
+ fromJSON(object) {
801
+ return {
802
+ command: isSet(object.command) ? globalThis.String(object.command) : "",
803
+ args: globalThis.Array.isArray(object?.args) ? object.args.map((e) => globalThis.String(e)) : [],
804
+ };
805
+ },
806
+ toJSON(message) {
807
+ const obj = {};
808
+ if (message.command !== "") {
809
+ obj.command = message.command;
810
+ }
811
+ if (message.args?.length) {
812
+ obj.args = message.args;
813
+ }
814
+ return obj;
815
+ },
816
+ create(base) {
817
+ return ProcessExecContext.fromPartial(base ?? {});
818
+ },
819
+ fromPartial(object) {
820
+ const message = createBaseProcessExecContext();
821
+ message.command = object.command ?? "";
822
+ message.args = object.args?.map((e) => e) || [];
823
+ return message;
824
+ },
825
+ };
826
+ function createBaseCheckActionResponse() {
827
+ return { decision: 0, reason: "", policyRule: "", approvalId: "", redact: undefined, decisionLatencyUs: 0 };
828
+ }
829
+ export const CheckActionResponse = {
830
+ encode(message, writer = new BinaryWriter()) {
831
+ if (message.decision !== 0) {
832
+ writer.uint32(8).int32(message.decision);
833
+ }
834
+ if (message.reason !== "") {
835
+ writer.uint32(18).string(message.reason);
836
+ }
837
+ if (message.policyRule !== "") {
838
+ writer.uint32(26).string(message.policyRule);
839
+ }
840
+ if (message.approvalId !== "") {
841
+ writer.uint32(34).string(message.approvalId);
842
+ }
843
+ if (message.redact !== undefined) {
844
+ RedactInstructions.encode(message.redact, writer.uint32(42).fork()).join();
845
+ }
846
+ if (message.decisionLatencyUs !== 0) {
847
+ writer.uint32(48).int64(message.decisionLatencyUs);
848
+ }
849
+ return writer;
850
+ },
851
+ decode(input, length) {
852
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
853
+ const end = length === undefined ? reader.len : reader.pos + length;
854
+ const message = createBaseCheckActionResponse();
855
+ while (reader.pos < end) {
856
+ const tag = reader.uint32();
857
+ switch (tag >>> 3) {
858
+ case 1: {
859
+ if (tag !== 8) {
860
+ break;
861
+ }
862
+ message.decision = reader.int32();
863
+ continue;
864
+ }
865
+ case 2: {
866
+ if (tag !== 18) {
867
+ break;
868
+ }
869
+ message.reason = reader.string();
870
+ continue;
871
+ }
872
+ case 3: {
873
+ if (tag !== 26) {
874
+ break;
875
+ }
876
+ message.policyRule = reader.string();
877
+ continue;
878
+ }
879
+ case 4: {
880
+ if (tag !== 34) {
881
+ break;
882
+ }
883
+ message.approvalId = reader.string();
884
+ continue;
885
+ }
886
+ case 5: {
887
+ if (tag !== 42) {
888
+ break;
889
+ }
890
+ message.redact = RedactInstructions.decode(reader, reader.uint32());
891
+ continue;
892
+ }
893
+ case 6: {
894
+ if (tag !== 48) {
895
+ break;
896
+ }
897
+ message.decisionLatencyUs = longToNumber(reader.int64());
898
+ continue;
899
+ }
900
+ }
901
+ if ((tag & 7) === 4 || tag === 0) {
902
+ break;
903
+ }
904
+ reader.skip(tag & 7);
905
+ }
906
+ return message;
907
+ },
908
+ fromJSON(object) {
909
+ return {
910
+ decision: isSet(object.decision) ? decisionFromJSON(object.decision) : 0,
911
+ reason: isSet(object.reason) ? globalThis.String(object.reason) : "",
912
+ policyRule: isSet(object.policyRule)
913
+ ? globalThis.String(object.policyRule)
914
+ : isSet(object.policy_rule)
915
+ ? globalThis.String(object.policy_rule)
916
+ : "",
917
+ approvalId: isSet(object.approvalId)
918
+ ? globalThis.String(object.approvalId)
919
+ : isSet(object.approval_id)
920
+ ? globalThis.String(object.approval_id)
921
+ : "",
922
+ redact: isSet(object.redact) ? RedactInstructions.fromJSON(object.redact) : undefined,
923
+ decisionLatencyUs: isSet(object.decisionLatencyUs)
924
+ ? globalThis.Number(object.decisionLatencyUs)
925
+ : isSet(object.decision_latency_us)
926
+ ? globalThis.Number(object.decision_latency_us)
927
+ : 0,
928
+ };
929
+ },
930
+ toJSON(message) {
931
+ const obj = {};
932
+ if (message.decision !== 0) {
933
+ obj.decision = decisionToJSON(message.decision);
934
+ }
935
+ if (message.reason !== "") {
936
+ obj.reason = message.reason;
937
+ }
938
+ if (message.policyRule !== "") {
939
+ obj.policyRule = message.policyRule;
940
+ }
941
+ if (message.approvalId !== "") {
942
+ obj.approvalId = message.approvalId;
943
+ }
944
+ if (message.redact !== undefined) {
945
+ obj.redact = RedactInstructions.toJSON(message.redact);
946
+ }
947
+ if (message.decisionLatencyUs !== 0) {
948
+ obj.decisionLatencyUs = Math.round(message.decisionLatencyUs);
949
+ }
950
+ return obj;
951
+ },
952
+ create(base) {
953
+ return CheckActionResponse.fromPartial(base ?? {});
954
+ },
955
+ fromPartial(object) {
956
+ const message = createBaseCheckActionResponse();
957
+ message.decision = object.decision ?? 0;
958
+ message.reason = object.reason ?? "";
959
+ message.policyRule = object.policyRule ?? "";
960
+ message.approvalId = object.approvalId ?? "";
961
+ message.redact = (object.redact !== undefined && object.redact !== null)
962
+ ? RedactInstructions.fromPartial(object.redact)
963
+ : undefined;
964
+ message.decisionLatencyUs = object.decisionLatencyUs ?? 0;
965
+ return message;
966
+ },
967
+ };
968
+ function createBaseRedactInstructions() {
969
+ return { rules: [] };
970
+ }
971
+ export const RedactInstructions = {
972
+ encode(message, writer = new BinaryWriter()) {
973
+ for (const v of message.rules) {
974
+ RedactRule.encode(v, writer.uint32(10).fork()).join();
975
+ }
976
+ return writer;
977
+ },
978
+ decode(input, length) {
979
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
980
+ const end = length === undefined ? reader.len : reader.pos + length;
981
+ const message = createBaseRedactInstructions();
982
+ while (reader.pos < end) {
983
+ const tag = reader.uint32();
984
+ switch (tag >>> 3) {
985
+ case 1: {
986
+ if (tag !== 10) {
987
+ break;
988
+ }
989
+ message.rules.push(RedactRule.decode(reader, reader.uint32()));
990
+ continue;
991
+ }
992
+ }
993
+ if ((tag & 7) === 4 || tag === 0) {
994
+ break;
995
+ }
996
+ reader.skip(tag & 7);
997
+ }
998
+ return message;
999
+ },
1000
+ fromJSON(object) {
1001
+ return {
1002
+ rules: globalThis.Array.isArray(object?.rules) ? object.rules.map((e) => RedactRule.fromJSON(e)) : [],
1003
+ };
1004
+ },
1005
+ toJSON(message) {
1006
+ const obj = {};
1007
+ if (message.rules?.length) {
1008
+ obj.rules = message.rules.map((e) => RedactRule.toJSON(e));
1009
+ }
1010
+ return obj;
1011
+ },
1012
+ create(base) {
1013
+ return RedactInstructions.fromPartial(base ?? {});
1014
+ },
1015
+ fromPartial(object) {
1016
+ const message = createBaseRedactInstructions();
1017
+ message.rules = object.rules?.map((e) => RedactRule.fromPartial(e)) || [];
1018
+ return message;
1019
+ },
1020
+ };
1021
+ function createBaseRedactRule() {
1022
+ return { fieldPath: "", replacement: "" };
1023
+ }
1024
+ export const RedactRule = {
1025
+ encode(message, writer = new BinaryWriter()) {
1026
+ if (message.fieldPath !== "") {
1027
+ writer.uint32(10).string(message.fieldPath);
1028
+ }
1029
+ if (message.replacement !== "") {
1030
+ writer.uint32(18).string(message.replacement);
1031
+ }
1032
+ return writer;
1033
+ },
1034
+ decode(input, length) {
1035
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
1036
+ const end = length === undefined ? reader.len : reader.pos + length;
1037
+ const message = createBaseRedactRule();
1038
+ while (reader.pos < end) {
1039
+ const tag = reader.uint32();
1040
+ switch (tag >>> 3) {
1041
+ case 1: {
1042
+ if (tag !== 10) {
1043
+ break;
1044
+ }
1045
+ message.fieldPath = reader.string();
1046
+ continue;
1047
+ }
1048
+ case 2: {
1049
+ if (tag !== 18) {
1050
+ break;
1051
+ }
1052
+ message.replacement = reader.string();
1053
+ continue;
1054
+ }
1055
+ }
1056
+ if ((tag & 7) === 4 || tag === 0) {
1057
+ break;
1058
+ }
1059
+ reader.skip(tag & 7);
1060
+ }
1061
+ return message;
1062
+ },
1063
+ fromJSON(object) {
1064
+ return {
1065
+ fieldPath: isSet(object.fieldPath)
1066
+ ? globalThis.String(object.fieldPath)
1067
+ : isSet(object.field_path)
1068
+ ? globalThis.String(object.field_path)
1069
+ : "",
1070
+ replacement: isSet(object.replacement) ? globalThis.String(object.replacement) : "",
1071
+ };
1072
+ },
1073
+ toJSON(message) {
1074
+ const obj = {};
1075
+ if (message.fieldPath !== "") {
1076
+ obj.fieldPath = message.fieldPath;
1077
+ }
1078
+ if (message.replacement !== "") {
1079
+ obj.replacement = message.replacement;
1080
+ }
1081
+ return obj;
1082
+ },
1083
+ create(base) {
1084
+ return RedactRule.fromPartial(base ?? {});
1085
+ },
1086
+ fromPartial(object) {
1087
+ const message = createBaseRedactRule();
1088
+ message.fieldPath = object.fieldPath ?? "";
1089
+ message.replacement = object.replacement ?? "";
1090
+ return message;
1091
+ },
1092
+ };
1093
+ function createBaseBatchCheckRequest() {
1094
+ return { requests: [] };
1095
+ }
1096
+ export const BatchCheckRequest = {
1097
+ encode(message, writer = new BinaryWriter()) {
1098
+ for (const v of message.requests) {
1099
+ CheckActionRequest.encode(v, writer.uint32(10).fork()).join();
1100
+ }
1101
+ return writer;
1102
+ },
1103
+ decode(input, length) {
1104
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
1105
+ const end = length === undefined ? reader.len : reader.pos + length;
1106
+ const message = createBaseBatchCheckRequest();
1107
+ while (reader.pos < end) {
1108
+ const tag = reader.uint32();
1109
+ switch (tag >>> 3) {
1110
+ case 1: {
1111
+ if (tag !== 10) {
1112
+ break;
1113
+ }
1114
+ message.requests.push(CheckActionRequest.decode(reader, reader.uint32()));
1115
+ continue;
1116
+ }
1117
+ }
1118
+ if ((tag & 7) === 4 || tag === 0) {
1119
+ break;
1120
+ }
1121
+ reader.skip(tag & 7);
1122
+ }
1123
+ return message;
1124
+ },
1125
+ fromJSON(object) {
1126
+ return {
1127
+ requests: globalThis.Array.isArray(object?.requests)
1128
+ ? object.requests.map((e) => CheckActionRequest.fromJSON(e))
1129
+ : [],
1130
+ };
1131
+ },
1132
+ toJSON(message) {
1133
+ const obj = {};
1134
+ if (message.requests?.length) {
1135
+ obj.requests = message.requests.map((e) => CheckActionRequest.toJSON(e));
1136
+ }
1137
+ return obj;
1138
+ },
1139
+ create(base) {
1140
+ return BatchCheckRequest.fromPartial(base ?? {});
1141
+ },
1142
+ fromPartial(object) {
1143
+ const message = createBaseBatchCheckRequest();
1144
+ message.requests = object.requests?.map((e) => CheckActionRequest.fromPartial(e)) || [];
1145
+ return message;
1146
+ },
1147
+ };
1148
+ function createBaseBatchCheckResponse() {
1149
+ return { responses: [] };
1150
+ }
1151
+ export const BatchCheckResponse = {
1152
+ encode(message, writer = new BinaryWriter()) {
1153
+ for (const v of message.responses) {
1154
+ CheckActionResponse.encode(v, writer.uint32(10).fork()).join();
1155
+ }
1156
+ return writer;
1157
+ },
1158
+ decode(input, length) {
1159
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
1160
+ const end = length === undefined ? reader.len : reader.pos + length;
1161
+ const message = createBaseBatchCheckResponse();
1162
+ while (reader.pos < end) {
1163
+ const tag = reader.uint32();
1164
+ switch (tag >>> 3) {
1165
+ case 1: {
1166
+ if (tag !== 10) {
1167
+ break;
1168
+ }
1169
+ message.responses.push(CheckActionResponse.decode(reader, reader.uint32()));
1170
+ continue;
1171
+ }
1172
+ }
1173
+ if ((tag & 7) === 4 || tag === 0) {
1174
+ break;
1175
+ }
1176
+ reader.skip(tag & 7);
1177
+ }
1178
+ return message;
1179
+ },
1180
+ fromJSON(object) {
1181
+ return {
1182
+ responses: globalThis.Array.isArray(object?.responses)
1183
+ ? object.responses.map((e) => CheckActionResponse.fromJSON(e))
1184
+ : [],
1185
+ };
1186
+ },
1187
+ toJSON(message) {
1188
+ const obj = {};
1189
+ if (message.responses?.length) {
1190
+ obj.responses = message.responses.map((e) => CheckActionResponse.toJSON(e));
1191
+ }
1192
+ return obj;
1193
+ },
1194
+ create(base) {
1195
+ return BatchCheckResponse.fromPartial(base ?? {});
1196
+ },
1197
+ fromPartial(object) {
1198
+ const message = createBaseBatchCheckResponse();
1199
+ message.responses = object.responses?.map((e) => CheckActionResponse.fromPartial(e)) || [];
1200
+ return message;
1201
+ },
1202
+ };
1203
+ function createBaseOpControlSubscribeRequest() {
1204
+ return { agentId: undefined };
1205
+ }
1206
+ export const OpControlSubscribeRequest = {
1207
+ encode(message, writer = new BinaryWriter()) {
1208
+ if (message.agentId !== undefined) {
1209
+ AgentId.encode(message.agentId, writer.uint32(10).fork()).join();
1210
+ }
1211
+ return writer;
1212
+ },
1213
+ decode(input, length) {
1214
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
1215
+ const end = length === undefined ? reader.len : reader.pos + length;
1216
+ const message = createBaseOpControlSubscribeRequest();
1217
+ while (reader.pos < end) {
1218
+ const tag = reader.uint32();
1219
+ switch (tag >>> 3) {
1220
+ case 1: {
1221
+ if (tag !== 10) {
1222
+ break;
1223
+ }
1224
+ message.agentId = AgentId.decode(reader, reader.uint32());
1225
+ continue;
1226
+ }
1227
+ }
1228
+ if ((tag & 7) === 4 || tag === 0) {
1229
+ break;
1230
+ }
1231
+ reader.skip(tag & 7);
1232
+ }
1233
+ return message;
1234
+ },
1235
+ fromJSON(object) {
1236
+ return {
1237
+ agentId: isSet(object.agentId)
1238
+ ? AgentId.fromJSON(object.agentId)
1239
+ : isSet(object.agent_id)
1240
+ ? AgentId.fromJSON(object.agent_id)
1241
+ : undefined,
1242
+ };
1243
+ },
1244
+ toJSON(message) {
1245
+ const obj = {};
1246
+ if (message.agentId !== undefined) {
1247
+ obj.agentId = AgentId.toJSON(message.agentId);
1248
+ }
1249
+ return obj;
1250
+ },
1251
+ create(base) {
1252
+ return OpControlSubscribeRequest.fromPartial(base ?? {});
1253
+ },
1254
+ fromPartial(object) {
1255
+ const message = createBaseOpControlSubscribeRequest();
1256
+ message.agentId = (object.agentId !== undefined && object.agentId !== null)
1257
+ ? AgentId.fromPartial(object.agentId)
1258
+ : undefined;
1259
+ return message;
1260
+ },
1261
+ };
1262
+ function createBaseOpControlMessage() {
1263
+ return { opId: "", signal: 0, sequence: 0 };
1264
+ }
1265
+ export const OpControlMessage = {
1266
+ encode(message, writer = new BinaryWriter()) {
1267
+ if (message.opId !== "") {
1268
+ writer.uint32(10).string(message.opId);
1269
+ }
1270
+ if (message.signal !== 0) {
1271
+ writer.uint32(16).int32(message.signal);
1272
+ }
1273
+ if (message.sequence !== 0) {
1274
+ writer.uint32(24).uint64(message.sequence);
1275
+ }
1276
+ return writer;
1277
+ },
1278
+ decode(input, length) {
1279
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
1280
+ const end = length === undefined ? reader.len : reader.pos + length;
1281
+ const message = createBaseOpControlMessage();
1282
+ while (reader.pos < end) {
1283
+ const tag = reader.uint32();
1284
+ switch (tag >>> 3) {
1285
+ case 1: {
1286
+ if (tag !== 10) {
1287
+ break;
1288
+ }
1289
+ message.opId = reader.string();
1290
+ continue;
1291
+ }
1292
+ case 2: {
1293
+ if (tag !== 16) {
1294
+ break;
1295
+ }
1296
+ message.signal = reader.int32();
1297
+ continue;
1298
+ }
1299
+ case 3: {
1300
+ if (tag !== 24) {
1301
+ break;
1302
+ }
1303
+ message.sequence = longToNumber(reader.uint64());
1304
+ continue;
1305
+ }
1306
+ }
1307
+ if ((tag & 7) === 4 || tag === 0) {
1308
+ break;
1309
+ }
1310
+ reader.skip(tag & 7);
1311
+ }
1312
+ return message;
1313
+ },
1314
+ fromJSON(object) {
1315
+ return {
1316
+ opId: isSet(object.opId)
1317
+ ? globalThis.String(object.opId)
1318
+ : isSet(object.op_id)
1319
+ ? globalThis.String(object.op_id)
1320
+ : "",
1321
+ signal: isSet(object.signal) ? opControlSignalFromJSON(object.signal) : 0,
1322
+ sequence: isSet(object.sequence) ? globalThis.Number(object.sequence) : 0,
1323
+ };
1324
+ },
1325
+ toJSON(message) {
1326
+ const obj = {};
1327
+ if (message.opId !== "") {
1328
+ obj.opId = message.opId;
1329
+ }
1330
+ if (message.signal !== 0) {
1331
+ obj.signal = opControlSignalToJSON(message.signal);
1332
+ }
1333
+ if (message.sequence !== 0) {
1334
+ obj.sequence = Math.round(message.sequence);
1335
+ }
1336
+ return obj;
1337
+ },
1338
+ create(base) {
1339
+ return OpControlMessage.fromPartial(base ?? {});
1340
+ },
1341
+ fromPartial(object) {
1342
+ const message = createBaseOpControlMessage();
1343
+ message.opId = object.opId ?? "";
1344
+ message.signal = object.signal ?? 0;
1345
+ message.sequence = object.sequence ?? 0;
1346
+ return message;
1347
+ },
1348
+ };
1349
+ export const PolicyServiceService = {
1350
+ /**
1351
+ * CheckAction evaluates a single action before the agent dispatches it.
1352
+ * Called on every intercepted action — must be as fast as possible.
1353
+ */
1354
+ checkAction: {
1355
+ path: "/assembly.policy.v1.PolicyService/CheckAction",
1356
+ requestStream: false,
1357
+ responseStream: false,
1358
+ requestSerialize: (value) => Buffer.from(CheckActionRequest.encode(value).finish()),
1359
+ requestDeserialize: (value) => CheckActionRequest.decode(value),
1360
+ responseSerialize: (value) => Buffer.from(CheckActionResponse.encode(value).finish()),
1361
+ responseDeserialize: (value) => CheckActionResponse.decode(value),
1362
+ },
1363
+ /**
1364
+ * BatchCheck pre-warms the policy cache for a set of anticipated actions.
1365
+ * Called at agent startup or when entering a new task context.
1366
+ */
1367
+ batchCheck: {
1368
+ path: "/assembly.policy.v1.PolicyService/BatchCheck",
1369
+ requestStream: false,
1370
+ responseStream: false,
1371
+ requestSerialize: (value) => Buffer.from(BatchCheckRequest.encode(value).finish()),
1372
+ requestDeserialize: (value) => BatchCheckRequest.decode(value),
1373
+ responseSerialize: (value) => Buffer.from(BatchCheckResponse.encode(value).finish()),
1374
+ responseDeserialize: (value) => BatchCheckResponse.decode(value),
1375
+ },
1376
+ /**
1377
+ * OpControlStream is the gateway → SDK push channel for op-lifecycle
1378
+ * signals (pause / resume / terminate). The SDK opens the stream once
1379
+ * per agent process at startup; the gateway pushes one OpControlMessage
1380
+ * per OpsRegistry transition matching the subscriber's agent_id. See
1381
+ * AAASM-1653 (PR-D of AAASM-1422); SDK-side consumers ship in PR-E
1382
+ * (Python), PR-F (Node), and PR-G (Go).
1383
+ */
1384
+ opControlStream: {
1385
+ path: "/assembly.policy.v1.PolicyService/OpControlStream",
1386
+ requestStream: false,
1387
+ responseStream: true,
1388
+ requestSerialize: (value) => Buffer.from(OpControlSubscribeRequest.encode(value).finish()),
1389
+ requestDeserialize: (value) => OpControlSubscribeRequest.decode(value),
1390
+ responseSerialize: (value) => Buffer.from(OpControlMessage.encode(value).finish()),
1391
+ responseDeserialize: (value) => OpControlMessage.decode(value),
1392
+ },
1393
+ };
1394
+ export const PolicyServiceClient = makeGenericClientConstructor(PolicyServiceService, "assembly.policy.v1.PolicyService");
1395
+ function bytesFromBase64(b64) {
1396
+ return Uint8Array.from(globalThis.Buffer.from(b64, "base64"));
1397
+ }
1398
+ function base64FromBytes(arr) {
1399
+ return globalThis.Buffer.from(arr).toString("base64");
1400
+ }
1401
+ function longToNumber(int64) {
1402
+ const num = globalThis.Number(int64.toString());
1403
+ if (num > globalThis.Number.MAX_SAFE_INTEGER) {
1404
+ throw new globalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER");
1405
+ }
1406
+ if (num < globalThis.Number.MIN_SAFE_INTEGER) {
1407
+ throw new globalThis.Error("Value is smaller than Number.MIN_SAFE_INTEGER");
1408
+ }
1409
+ return num;
1410
+ }
1411
+ function isSet(value) {
1412
+ return value !== null && value !== undefined;
1413
+ }
1414
+ //# sourceMappingURL=policy.js.map