@once-agent/sdk 0.1.11 → 0.1.12

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 (160) hide show
  1. package/README.md +76 -1
  2. package/dist/cli.js +50 -1
  3. package/dist/cli.js.map +1 -1
  4. package/dist/connect/identity.d.ts +22 -0
  5. package/dist/connect/identity.d.ts.map +1 -0
  6. package/dist/connect/identity.js +159 -0
  7. package/dist/connect/identity.js.map +1 -0
  8. package/dist/connect/index.d.ts +17 -0
  9. package/dist/connect/index.d.ts.map +1 -0
  10. package/dist/connect/index.js +9 -0
  11. package/dist/connect/index.js.map +1 -0
  12. package/dist/connect/local-agent-tool.d.ts +30 -7
  13. package/dist/connect/local-agent-tool.d.ts.map +1 -1
  14. package/dist/connect/local-agent-tool.js +81 -9
  15. package/dist/connect/local-agent-tool.js.map +1 -1
  16. package/dist/connect/manifest.d.ts +55 -0
  17. package/dist/connect/manifest.d.ts.map +1 -0
  18. package/dist/connect/manifest.js +166 -0
  19. package/dist/connect/manifest.js.map +1 -0
  20. package/dist/connect/openai-function-tools.d.ts +66 -0
  21. package/dist/connect/openai-function-tools.d.ts.map +1 -0
  22. package/dist/connect/openai-function-tools.js +182 -0
  23. package/dist/connect/openai-function-tools.js.map +1 -0
  24. package/dist/connect/payload.d.ts +30 -0
  25. package/dist/connect/payload.d.ts.map +1 -0
  26. package/dist/connect/payload.js +122 -0
  27. package/dist/connect/payload.js.map +1 -0
  28. package/dist/connect/tool-classifier.d.ts +40 -0
  29. package/dist/connect/tool-classifier.d.ts.map +1 -0
  30. package/dist/connect/tool-classifier.js +271 -0
  31. package/dist/connect/tool-classifier.js.map +1 -0
  32. package/dist/connect/toolset.d.ts +42 -0
  33. package/dist/connect/toolset.d.ts.map +1 -0
  34. package/dist/connect/toolset.js +123 -0
  35. package/dist/connect/toolset.js.map +1 -0
  36. package/dist/discovery/index.d.ts +13 -0
  37. package/dist/discovery/index.d.ts.map +1 -0
  38. package/dist/discovery/index.js +8 -0
  39. package/dist/discovery/index.js.map +1 -0
  40. package/dist/execution-observation.d.ts +122 -0
  41. package/dist/execution-observation.d.ts.map +1 -0
  42. package/dist/execution-observation.js +324 -0
  43. package/dist/execution-observation.js.map +1 -0
  44. package/dist/gateway/index.d.ts +9 -0
  45. package/dist/gateway/index.d.ts.map +1 -0
  46. package/dist/gateway/index.js +5 -0
  47. package/dist/gateway/index.js.map +1 -0
  48. package/dist/gateway/local-toolset.d.ts +32 -0
  49. package/dist/gateway/local-toolset.d.ts.map +1 -0
  50. package/dist/gateway/local-toolset.js +79 -0
  51. package/dist/gateway/local-toolset.js.map +1 -0
  52. package/dist/gateway/openai-function-tools.d.ts +28 -0
  53. package/dist/gateway/openai-function-tools.d.ts.map +1 -0
  54. package/dist/gateway/openai-function-tools.js +117 -0
  55. package/dist/gateway/openai-function-tools.js.map +1 -0
  56. package/dist/gateway/planner.d.ts +53 -0
  57. package/dist/gateway/planner.d.ts.map +1 -0
  58. package/dist/gateway/planner.js +155 -0
  59. package/dist/gateway/planner.js.map +1 -0
  60. package/dist/gateway/tool-graph-binding.d.ts +51 -0
  61. package/dist/gateway/tool-graph-binding.d.ts.map +1 -0
  62. package/dist/gateway/tool-graph-binding.js +123 -0
  63. package/dist/gateway/tool-graph-binding.js.map +1 -0
  64. package/dist/langchain-execution-observer.d.ts +22 -0
  65. package/dist/langchain-execution-observer.d.ts.map +1 -0
  66. package/dist/langchain-execution-observer.js +128 -0
  67. package/dist/langchain-execution-observer.js.map +1 -0
  68. package/dist/langchain-runtime-discovery.d.ts +33 -0
  69. package/dist/langchain-runtime-discovery.d.ts.map +1 -0
  70. package/dist/langchain-runtime-discovery.js +214 -0
  71. package/dist/langchain-runtime-discovery.js.map +1 -0
  72. package/dist/mcp-live-discovery.d.ts +71 -0
  73. package/dist/mcp-live-discovery.d.ts.map +1 -0
  74. package/dist/mcp-live-discovery.js +710 -0
  75. package/dist/mcp-live-discovery.js.map +1 -0
  76. package/dist/mcp-live-report.d.ts +3 -0
  77. package/dist/mcp-live-report.d.ts.map +1 -0
  78. package/dist/mcp-live-report.js +50 -0
  79. package/dist/mcp-live-report.js.map +1 -0
  80. package/dist/mcp-tool-refresh-report.d.ts +3 -0
  81. package/dist/mcp-tool-refresh-report.d.ts.map +1 -0
  82. package/dist/mcp-tool-refresh-report.js +44 -0
  83. package/dist/mcp-tool-refresh-report.js.map +1 -0
  84. package/dist/mcp-tool-refresh.d.ts +33 -0
  85. package/dist/mcp-tool-refresh.d.ts.map +1 -0
  86. package/dist/mcp-tool-refresh.js +489 -0
  87. package/dist/mcp-tool-refresh.js.map +1 -0
  88. package/dist/openai-agents-execution-observer.d.ts +24 -0
  89. package/dist/openai-agents-execution-observer.d.ts.map +1 -0
  90. package/dist/openai-agents-execution-observer.js +163 -0
  91. package/dist/openai-agents-execution-observer.js.map +1 -0
  92. package/dist/otel-execution-observer.d.ts +16 -0
  93. package/dist/otel-execution-observer.d.ts.map +1 -0
  94. package/dist/otel-execution-observer.js +129 -0
  95. package/dist/otel-execution-observer.js.map +1 -0
  96. package/dist/runtime-tool-discovery.d.ts +86 -0
  97. package/dist/runtime-tool-discovery.d.ts.map +1 -0
  98. package/dist/runtime-tool-discovery.js +429 -0
  99. package/dist/runtime-tool-discovery.js.map +1 -0
  100. package/dist/tool-discovery.d.ts +51 -0
  101. package/dist/tool-discovery.d.ts.map +1 -0
  102. package/dist/tool-discovery.js +487 -0
  103. package/dist/tool-discovery.js.map +1 -0
  104. package/dist/tool-importance.d.ts +34 -0
  105. package/dist/tool-importance.d.ts.map +1 -0
  106. package/dist/tool-importance.js +269 -0
  107. package/dist/tool-importance.js.map +1 -0
  108. package/dist/tool-report.d.ts +3 -0
  109. package/dist/tool-report.d.ts.map +1 -0
  110. package/dist/tool-report.js +75 -0
  111. package/dist/tool-report.js.map +1 -0
  112. package/dist/vercel-execution-observer.d.ts +12 -0
  113. package/dist/vercel-execution-observer.d.ts.map +1 -0
  114. package/dist/vercel-execution-observer.js +97 -0
  115. package/dist/vercel-execution-observer.js.map +1 -0
  116. package/dist-cjs/connect/identity.js +162 -0
  117. package/dist-cjs/connect/identity.js.map +1 -0
  118. package/dist-cjs/connect/index.js +26 -0
  119. package/dist-cjs/connect/index.js.map +1 -0
  120. package/dist-cjs/connect/local-agent-tool.js +82 -9
  121. package/dist-cjs/connect/local-agent-tool.js.map +1 -1
  122. package/dist-cjs/connect/manifest.js +171 -0
  123. package/dist-cjs/connect/manifest.js.map +1 -0
  124. package/dist-cjs/connect/openai-function-tools.js +187 -0
  125. package/dist-cjs/connect/openai-function-tools.js.map +1 -0
  126. package/dist-cjs/connect/payload.js +125 -0
  127. package/dist-cjs/connect/payload.js.map +1 -0
  128. package/dist-cjs/connect/tool-classifier.js +276 -0
  129. package/dist-cjs/connect/tool-classifier.js.map +1 -0
  130. package/dist-cjs/connect/toolset.js +126 -0
  131. package/dist-cjs/connect/toolset.js.map +1 -0
  132. package/dist-cjs/discovery/index.js +26 -0
  133. package/dist-cjs/discovery/index.js.map +1 -0
  134. package/dist-cjs/execution-observation.js +330 -0
  135. package/dist-cjs/execution-observation.js.map +1 -0
  136. package/dist-cjs/gateway/index.js +16 -0
  137. package/dist-cjs/gateway/index.js.map +1 -0
  138. package/dist-cjs/gateway/local-toolset.js +84 -0
  139. package/dist-cjs/gateway/local-toolset.js.map +1 -0
  140. package/dist-cjs/gateway/openai-function-tools.js +120 -0
  141. package/dist-cjs/gateway/openai-function-tools.js.map +1 -0
  142. package/dist-cjs/gateway/planner.js +160 -0
  143. package/dist-cjs/gateway/planner.js.map +1 -0
  144. package/dist-cjs/gateway/tool-graph-binding.js +126 -0
  145. package/dist-cjs/gateway/tool-graph-binding.js.map +1 -0
  146. package/dist-cjs/langchain-execution-observer.js +131 -0
  147. package/dist-cjs/langchain-execution-observer.js.map +1 -0
  148. package/dist-cjs/langchain-runtime-discovery.js +218 -0
  149. package/dist-cjs/langchain-runtime-discovery.js.map +1 -0
  150. package/dist-cjs/openai-agents-execution-observer.js +166 -0
  151. package/dist-cjs/openai-agents-execution-observer.js.map +1 -0
  152. package/dist-cjs/otel-execution-observer.js +132 -0
  153. package/dist-cjs/otel-execution-observer.js.map +1 -0
  154. package/dist-cjs/runtime-tool-discovery.js +436 -0
  155. package/dist-cjs/runtime-tool-discovery.js.map +1 -0
  156. package/dist-cjs/tool-importance.js +272 -0
  157. package/dist-cjs/tool-importance.js.map +1 -0
  158. package/dist-cjs/vercel-execution-observer.js +100 -0
  159. package/dist-cjs/vercel-execution-observer.js.map +1 -0
  160. package/package.json +25 -3
@@ -0,0 +1,272 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assessToolImportance = assessToolImportance;
4
+ const evidenceAdjustment = {
5
+ EXECUTED: 15,
6
+ MODEL_VISIBLE: 10,
7
+ RUNTIME_REGISTERED: 7,
8
+ SERVER_AUTHORITATIVE: 4,
9
+ HOST_CONFIGURED: 2,
10
+ SOURCE_DISCOVERED: 0,
11
+ REGISTRY_CANDIDATE: -30
12
+ };
13
+ const protectionAdjustment = {
14
+ NONE: 10,
15
+ NATIVE_IDEMPOTENCY: -5,
16
+ AUTHORITATIVE_RECONCILIATION: -15,
17
+ ONCE_HEALTHY: -35,
18
+ ONCE_UNVERIFIED: 0
19
+ };
20
+ function clamp(value, minimum = 0, maximum = 100) {
21
+ return Math.max(minimum, Math.min(maximum, value));
22
+ }
23
+ function criticalityBand(score) {
24
+ if (score >= 85)
25
+ return "I5";
26
+ if (score >= 70)
27
+ return "I4";
28
+ if (score >= 50)
29
+ return "I3";
30
+ if (score >= 30)
31
+ return "I2";
32
+ if (score >= 10)
33
+ return "I1";
34
+ return "I0";
35
+ }
36
+ function actionBand(score) {
37
+ if (score >= 95)
38
+ return "CRITICAL_GAP";
39
+ if (score >= 80)
40
+ return "PROTECT_PRIORITY";
41
+ if (score >= 60)
42
+ return "QUALIFY";
43
+ if (score >= 40)
44
+ return "REVIEW";
45
+ if (score >= 20)
46
+ return "OBSERVE";
47
+ return "BYPASS";
48
+ }
49
+ function inferredQualification(effectClass) {
50
+ switch (effectClass) {
51
+ case "READ_ONLY":
52
+ case "GENERATION_ONLY":
53
+ return "NOT_APPLICABLE";
54
+ case "UNKNOWN":
55
+ case "DYNAMIC_EXECUTION":
56
+ return "UNKNOWN";
57
+ case "LOCAL_MUTATION":
58
+ return "UNLIKELY";
59
+ default:
60
+ return "REVIEW_REQUIRED";
61
+ }
62
+ }
63
+ function inferEffect(input) {
64
+ const text = [
65
+ input.name,
66
+ input.description ?? "",
67
+ input.sourceCategory ?? ""
68
+ ].join(" ").toLowerCase();
69
+ if (input.readOnlyHint === true) {
70
+ return {
71
+ effectClass: "READ_ONLY",
72
+ base: 5,
73
+ confidence: 0.78,
74
+ reasons: ["read_only_hint"]
75
+ };
76
+ }
77
+ if (/terraform\s*(destroy|apply)|kubectl.*(?:delete|apply)|destroy.*(?:prod|production)|(?:prod|production).*(?:destroy|delete|purge|drop)/.test(text)) {
78
+ return {
79
+ effectClass: "DESTRUCTIVE_ADMIN",
80
+ base: 95,
81
+ confidence: 0.94,
82
+ reasons: ["destructive_production_operation"]
83
+ };
84
+ }
85
+ if (/refund|charge|payment|payout|transfer|capture.*(?:card|payment)|money|financial/.test(text)) {
86
+ return {
87
+ effectClass: "MONEY_MOVEMENT",
88
+ base: 90,
89
+ confidence: 0.93,
90
+ reasons: ["money_movement"]
91
+ };
92
+ }
93
+ if (/grant.*(?:admin|role|permission)|revoke.*(?:access|role|permission)|rotate.*(?:key|credential|secret)|deleteuser|disableuser|identity|iam|security policy|account mutation/.test(text)) {
94
+ return {
95
+ effectClass: "IDENTITY_ACCESS_SECURITY",
96
+ base: 90,
97
+ confidence: 0.9,
98
+ reasons: ["identity_access_security_change"]
99
+ };
100
+ }
101
+ if (/deploy|production|terraform|kubectl|helm|cloudformation|dns|infrastructure/.test(text)) {
102
+ return {
103
+ effectClass: "PRODUCTION_INFRASTRUCTURE",
104
+ base: 85,
105
+ confidence: 0.84,
106
+ reasons: ["production_or_infrastructure_change"]
107
+ };
108
+ }
109
+ if (/merge.*pull|pull.*merge|git.*push|create.*tag|publish.*release|repository|github.*(?:create|update|delete)|code_repository/.test(text)) {
110
+ return {
111
+ effectClass: "CODE_REPOSITORY_MUTATION",
112
+ base: 72,
113
+ confidence: 0.82,
114
+ reasons: ["code_repository_mutation"]
115
+ };
116
+ }
117
+ if (/database|prisma|insert|upsert|sql.*(?:update|delete|insert)|delete.*record|update.*record/.test(text)) {
118
+ return {
119
+ effectClass: "DATABASE_MUTATION",
120
+ base: 62,
121
+ confidence: 0.82,
122
+ reasons: ["database_mutation"]
123
+ };
124
+ }
125
+ if (/queue|kafka|sns|sqs|pubsub|enqueue|publish.*event|event publication/.test(text)) {
126
+ return {
127
+ effectClass: "QUEUE_EVENT_MUTATION",
128
+ base: 60,
129
+ confidence: 0.82,
130
+ reasons: ["queue_or_event_mutation"]
131
+ };
132
+ }
133
+ if (/sendmail|sendemail|sendmessage|sendsms|postmessage|email|sms|slack|teams|discord|messaging/.test(text)) {
134
+ return {
135
+ effectClass: "EXTERNAL_COMMUNICATION",
136
+ base: 55,
137
+ confidence: 0.88,
138
+ reasons: ["external_communication"]
139
+ };
140
+ }
141
+ if (/booking|reservation|appointment|order mutation|createorder|cancelorder|business mutation/.test(text)) {
142
+ return {
143
+ effectClass: "EXTERNAL_BUSINESS_MUTATION",
144
+ base: 65,
145
+ confidence: 0.86,
146
+ reasons: ["external_business_mutation"]
147
+ };
148
+ }
149
+ if (/putobject|deleteobject|uploadfile|uploadobject|object storage|blob/.test(text)) {
150
+ return {
151
+ effectClass: "STORAGE_MUTATION",
152
+ base: 50,
153
+ confidence: 0.82,
154
+ reasons: ["storage_mutation"]
155
+ };
156
+ }
157
+ if (/writefile|appendfile|unlink|rename|local filesystem|file_write/.test(text)) {
158
+ return {
159
+ effectClass: "LOCAL_MUTATION",
160
+ base: 25,
161
+ confidence: 0.86,
162
+ reasons: ["local_mutation"]
163
+ };
164
+ }
165
+ if (/http_write|http_delete|http request|shell|computer|browser|code execution|execute command/.test(text)) {
166
+ return {
167
+ effectClass: "DYNAMIC_EXECUTION",
168
+ base: 55,
169
+ confidence: 0.58,
170
+ reasons: ["dynamic_or_generic_execution"]
171
+ };
172
+ }
173
+ if (/\b(get|list|read|search|fetch|lookup|inspect|query)\b|read_only/.test(text)) {
174
+ return {
175
+ effectClass: "READ_ONLY",
176
+ base: 4,
177
+ confidence: 0.66,
178
+ reasons: ["read_semantics"]
179
+ };
180
+ }
181
+ if (/summar|generate|reason|classify|translate|generation/.test(text)) {
182
+ return {
183
+ effectClass: "GENERATION_ONLY",
184
+ base: 4,
185
+ confidence: 0.64,
186
+ reasons: ["generation_semantics"]
187
+ };
188
+ }
189
+ return {
190
+ effectClass: "UNKNOWN",
191
+ base: 50,
192
+ confidence: 0.25,
193
+ reasons: ["insufficient_effect_evidence"]
194
+ };
195
+ }
196
+ function assessToolImportance(input) {
197
+ const inferred = inferEffect(input);
198
+ const text = [
199
+ input.name,
200
+ input.description ?? "",
201
+ input.sourceCategory ?? ""
202
+ ].join(" ").toLowerCase();
203
+ let criticality = inferred.base;
204
+ const criticalityReasons = [...inferred.reasons];
205
+ if (inferred.effectClass !== "READ_ONLY" &&
206
+ inferred.effectClass !== "GENERATION_ONLY" &&
207
+ /irreversible|destructive|destroy|purge|terminate|drop\b/.test(text)) {
208
+ criticality += 15;
209
+ criticalityReasons.push("irreversible_or_destructive");
210
+ }
211
+ if (/bulk|batch|all records|multi-record/.test(text)) {
212
+ criticality += 10;
213
+ criticalityReasons.push("bulk_scope");
214
+ }
215
+ if (inferred.effectClass === "QUEUE_EVENT_MUTATION") {
216
+ criticality += 8;
217
+ criticalityReasons.push("downstream_fanout");
218
+ }
219
+ criticality = clamp(criticality);
220
+ const qualification = input.qualification ??
221
+ inferredQualification(inferred.effectClass);
222
+ const protection = input.protection ?? "NONE";
223
+ let priority = criticality +
224
+ evidenceAdjustment[input.evidence] +
225
+ protectionAdjustment[protection];
226
+ const actionReasons = [
227
+ `evidence_${input.evidence.toLowerCase()}`,
228
+ `protection_${protection.toLowerCase()}`
229
+ ];
230
+ switch (qualification) {
231
+ case "QUALIFIED":
232
+ priority += 15;
233
+ actionReasons.push("once_qualified");
234
+ break;
235
+ case "REVIEW_REQUIRED":
236
+ priority += 5;
237
+ actionReasons.push("qualification_review_required");
238
+ break;
239
+ case "UNKNOWN":
240
+ priority += 5;
241
+ actionReasons.push("qualification_unknown");
242
+ break;
243
+ case "UNLIKELY":
244
+ priority -= 20;
245
+ actionReasons.push("once_unlikely");
246
+ break;
247
+ case "NOT_APPLICABLE":
248
+ priority = Math.min(priority, 15);
249
+ actionReasons.push("once_not_applicable");
250
+ break;
251
+ }
252
+ priority = clamp(priority);
253
+ return {
254
+ effectClass: inferred.effectClass,
255
+ criticality: {
256
+ score: criticality,
257
+ band: criticalityBand(criticality),
258
+ confidence: inferred.confidence,
259
+ reasons: criticalityReasons
260
+ },
261
+ qualification,
262
+ actionPriority: {
263
+ score: priority,
264
+ band: actionBand(priority),
265
+ reasons: actionReasons
266
+ },
267
+ protection,
268
+ protectedCritical: protection === "ONCE_HEALTHY" &&
269
+ criticality >= 70
270
+ };
271
+ }
272
+ //# sourceMappingURL=tool-importance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-importance.js","sourceRoot":"","sources":["../src/tool-importance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.observeVercelAiSdkStepExecutions = observeVercelAiSdkStepExecutions;
4
+ const execution_observation_js_1 = require("./execution-observation.js");
5
+ function asRecord(value) {
6
+ return value && typeof value === "object" && !Array.isArray(value)
7
+ ? value
8
+ : undefined;
9
+ }
10
+ function ownDataValue(value, key) {
11
+ const record = asRecord(value);
12
+ if (!record)
13
+ return undefined;
14
+ const descriptor = Object.getOwnPropertyDescriptor(record, key);
15
+ return descriptor && "value" in descriptor
16
+ ? descriptor.value
17
+ : undefined;
18
+ }
19
+ function ownString(value, key) {
20
+ const raw = ownDataValue(value, key);
21
+ return typeof raw === "string" && raw.trim() !== ""
22
+ ? raw
23
+ : undefined;
24
+ }
25
+ function arrayData(value, key) {
26
+ const raw = ownDataValue(value, key);
27
+ return Array.isArray(raw) ? raw : [];
28
+ }
29
+ function toolMap(snapshot) {
30
+ const map = new Map();
31
+ for (const tool of snapshot.tools) {
32
+ const current = map.get(tool.canonicalName);
33
+ if (current === undefined) {
34
+ map.set(tool.canonicalName, tool);
35
+ }
36
+ else {
37
+ // Fail closed if a malformed/custom snapshot contains duplicate names.
38
+ map.set(tool.canonicalName, null);
39
+ }
40
+ }
41
+ return map;
42
+ }
43
+ function statusFromResult(result) {
44
+ const isError = ownDataValue(result, "isError");
45
+ if (isError === true)
46
+ return "FAILED";
47
+ if (isError === false)
48
+ return "SUCCEEDED";
49
+ return "UNKNOWN";
50
+ }
51
+ /**
52
+ * Convert an already-emitted Vercel AI SDK step result into Once EXECUTED
53
+ * observations. This helper never calls a model, provider, tool or callback.
54
+ *
55
+ * Only entries present in `toolResults` establish execution evidence. A
56
+ * `toolCalls` entry without a result is model intent, not proof of execution.
57
+ * Tool arguments and tool results are deliberately ignored.
58
+ */
59
+ function observeVercelAiSdkStepExecutions(stepResult, visibleSnapshot) {
60
+ const visible = toolMap(visibleSnapshot);
61
+ const calls = arrayData(stepResult, "toolCalls");
62
+ const results = arrayData(stepResult, "toolResults");
63
+ const callNameById = new Map();
64
+ for (const call of calls) {
65
+ const toolCallId = ownString(call, "toolCallId");
66
+ const toolName = ownString(call, "toolName");
67
+ if (toolCallId && toolName) {
68
+ callNameById.set(toolCallId, toolName);
69
+ }
70
+ }
71
+ const observations = [];
72
+ const now = new Date().toISOString();
73
+ for (const result of results) {
74
+ const toolCallId = ownString(result, "toolCallId");
75
+ const explicitName = ownString(result, "toolName");
76
+ const toolName = explicitName ?? (toolCallId ? callNameById.get(toolCallId) : undefined);
77
+ if (!toolName)
78
+ continue;
79
+ const tool = visible.get(toolName);
80
+ if (!tool)
81
+ continue;
82
+ const observed = (0, execution_observation_js_1.observeToolExecution)({
83
+ ...(toolCallId ? { eventId: `vercel-tool-call:${toolCallId}` } : {}),
84
+ toolId: tool.toolId,
85
+ namespacedName: tool.namespacedName,
86
+ descriptorFingerprint: (0, execution_observation_js_1.executionToolFingerprint)(tool),
87
+ canonicalName: tool.canonicalName,
88
+ framework: "vercel-ai-sdk",
89
+ runtimeName: visibleSnapshot.runtimeName,
90
+ source: "framework_callback",
91
+ status: statusFromResult(result),
92
+ observedAt: now,
93
+ });
94
+ if (observed.accepted) {
95
+ observations.push(observed.event);
96
+ }
97
+ }
98
+ return Object.freeze(observations);
99
+ }
100
+ //# sourceMappingURL=vercel-execution-observer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vercel-execution-observer.js","sourceRoot":"","sources":["../src/vercel-execution-observer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@once-agent/sdk",
3
- "version": "0.1.11",
3
+ "version": "0.1.12",
4
4
  "description": "Execution safety for side-effecting AI agent tools.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -10,6 +10,21 @@
10
10
  "types": "./dist/index.d.ts",
11
11
  "import": "./dist/index.js",
12
12
  "require": "./dist-cjs/index.js"
13
+ },
14
+ "./connect": {
15
+ "types": "./dist/connect/index.d.ts",
16
+ "import": "./dist/connect/index.js",
17
+ "require": "./dist-cjs/connect/index.js"
18
+ },
19
+ "./discovery": {
20
+ "types": "./dist/discovery/index.d.ts",
21
+ "import": "./dist/discovery/index.js",
22
+ "require": "./dist-cjs/discovery/index.js"
23
+ },
24
+ "./gateway": {
25
+ "types": "./dist/gateway/index.d.ts",
26
+ "import": "./dist/gateway/index.js",
27
+ "require": "./dist-cjs/gateway/index.js"
13
28
  }
14
29
  },
15
30
  "files": [
@@ -27,13 +42,20 @@
27
42
  "test:dataset-progress": "npm run build && node ./scripts/dataset-progress-regression.mjs",
28
43
  "test:agent-discovery": "node ./scripts/agent-discovery-regression.mjs",
29
44
  "test:doctor": "npm run build && node ./scripts/doctor-adoption-regression.mjs",
45
+ "test:tool-discovery": "npm run build && node ./scripts/tool-discovery-regression.mjs && node ./scripts/mcp-live-discovery-regression.mjs && node ./scripts/mcp-tool-refresh-regression.mjs && node ./scripts/runtime-tool-discovery-regression.mjs && node ./scripts/vercel-runtime-tool-discovery-regression.mjs && node ./scripts/langchain-runtime-discovery-regression.mjs && node ./scripts/execution-observation-regression.mjs && node ./scripts/openai-agents-execution-observer-regression.mjs && node ./scripts/vercel-execution-observer-regression.mjs && node ./scripts/langchain-execution-observer-regression.mjs && node ./scripts/otel-execution-observer-regression.mjs && node ./scripts/phase11d-evidence-ladder-regression.mjs",
46
+ "test:gateway": "npm run build && node ./scripts/gateway-planner-regression.mjs && node ./scripts/gateway-broker-regression.mjs && node ./scripts/gateway-tool-graph-binding-regression.mjs && node ./scripts/gateway-openai-function-tools-regression.mjs",
30
47
  "routing:check": "node ./scripts/agent-routing-conformance.mjs",
31
48
  "routing:cases": "node ./scripts/agent-routing-conformance.mjs --emit-cases",
32
49
  "test:routing-conformance": "node ./scripts/agent-routing-conformance-regression.mjs",
33
50
  "test:contract": "npm run build && tsc --noEmit --target ES2022 --module NodeNext --moduleResolution NodeNext --strict --types node ./scripts/sdk-contract-types.ts && node ./scripts/sdk-contract-runtime.mjs",
34
- "test:release": "npm run benchmark:scan && npm run test:benchmark && npm run test:trace && npm run test:dataset-seal && npm run test:dataset-progress && npm run test:agent-discovery && npm run test:doctor && npm run test:routing-conformance && npm run test:scanner-declarations && npm run test:contract && npm run test:protect && npm run test:capabilities && npm run test:transformer && npm run test:binding && npm run test:patch-planner && npm run test:transformer-protect && npm run test:apply && npm run test:id-conformance && npm run test:consumer && npm run test:activation && npm run test:package && npm run test:runtime-setup && npm run test:connect",
35
- "test:local": "npm run build && node --test ./test/local.test.mjs ./test/connect/local-agent-tool.test.mjs",
51
+ "test:release": "npm run benchmark:scan && npm run test:benchmark && npm run test:trace && npm run test:dataset-seal && npm run test:dataset-progress && npm run test:agent-discovery && npm run test:doctor && npm run test:tool-discovery && npm run test:gateway && npm run test:routing-conformance && npm run test:scanner-declarations && npm run test:contract && npm run test:protect && npm run test:capabilities && npm run test:transformer && npm run test:binding && npm run test:patch-planner && npm run test:transformer-protect && npm run test:apply && npm run test:id-conformance && npm run test:consumer && npm run test:connect-package && npm run test:discovery-package && npm run test:gateway-package && npm run test:activation && npm run test:package && npm run test:runtime-setup && npm run test:connect",
52
+ "test:local": "npm run build && node --test ./test/local.test.mjs ./test/connect/local-agent-tool.test.mjs ./test/gateway/local-gateway-toolset.test.mjs ./test/gateway/openai-function-tools-gateway.test.mjs",
36
53
  "test:connect": "npm run build && node --test ./test/connect/*.test.mjs",
54
+ "test:connect-package": "node ./scripts/connect-package-regression.mjs",
55
+ "test:discovery-package": "node ./scripts/runtime-discovery-package-regression.mjs && node ./scripts/execution-discovery-package-regression.mjs",
56
+ "test:gateway-package": "node ./scripts/gateway-package-regression.mjs",
57
+ "test:connect-package-protected": "node ./scripts/connect-packed-protection-regression.mjs",
58
+ "test:gateway-package-protected": "node ./scripts/gateway-packed-protection-regression.mjs",
37
59
  "test:protect": "npm run build && node ./scripts/protect-regression.mjs",
38
60
  "test:capabilities": "npm run build && node ./scripts/capability-regression.mjs",
39
61
  "test:transformer": "npm run build && node ./scripts/http-transformer-regression.mjs",