@armoriq/sdk-dev 0.8.3 → 0.8.5

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 (62) hide show
  1. package/README.md +30 -2
  2. package/dist/_version.d.ts +1 -1
  3. package/dist/_version.js +1 -1
  4. package/dist/cli/commands/auth.d.ts +5 -0
  5. package/dist/cli/commands/auth.d.ts.map +1 -1
  6. package/dist/cli/commands/auth.js +24 -8
  7. package/dist/cli/commands/auth.js.map +1 -1
  8. package/dist/client.d.ts +1 -0
  9. package/dist/client.d.ts.map +1 -1
  10. package/dist/client.js +44 -16
  11. package/dist/client.js.map +1 -1
  12. package/dist/client_context.d.ts +9 -0
  13. package/dist/client_context.d.ts.map +1 -0
  14. package/dist/client_context.js +58 -0
  15. package/dist/client_context.js.map +1 -0
  16. package/dist/debug.d.ts +3 -0
  17. package/dist/debug.d.ts.map +1 -0
  18. package/dist/debug.js +11 -0
  19. package/dist/debug.js.map +1 -0
  20. package/dist/index.d.ts +3 -1
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +7 -2
  23. package/dist/index.js.map +1 -1
  24. package/dist/integrations/google_adk.d.ts +5 -1
  25. package/dist/integrations/google_adk.d.ts.map +1 -1
  26. package/dist/integrations/google_adk.js +16 -10
  27. package/dist/integrations/google_adk.js.map +1 -1
  28. package/dist/integrations/langchain.d.ts.map +1 -1
  29. package/dist/integrations/langchain.js +3 -2
  30. package/dist/integrations/langchain.js.map +1 -1
  31. package/dist/integrations/openai.d.ts +9 -0
  32. package/dist/integrations/openai.d.ts.map +1 -0
  33. package/dist/integrations/openai.js +60 -0
  34. package/dist/integrations/openai.js.map +1 -0
  35. package/dist/integrations/strands.d.ts.map +1 -1
  36. package/dist/integrations/strands.js +5 -19
  37. package/dist/integrations/strands.js.map +1 -1
  38. package/dist/optional_module.d.ts +3 -0
  39. package/dist/optional_module.d.ts.map +1 -0
  40. package/dist/optional_module.js +34 -0
  41. package/dist/optional_module.js.map +1 -0
  42. package/dist/session.d.ts +2 -0
  43. package/dist/session.d.ts.map +1 -1
  44. package/dist/session.js +8 -0
  45. package/dist/session.js.map +1 -1
  46. package/dist/session_transcripts.d.ts +8 -0
  47. package/dist/session_transcripts.d.ts.map +1 -0
  48. package/dist/session_transcripts.js +72 -0
  49. package/dist/session_transcripts.js.map +1 -0
  50. package/dist/token_usage.d.ts +33 -10
  51. package/dist/token_usage.d.ts.map +1 -1
  52. package/dist/token_usage.js +85 -38
  53. package/dist/token_usage.js.map +1 -1
  54. package/dist/tool_push.d.ts +1 -1
  55. package/dist/tool_push.d.ts.map +1 -1
  56. package/dist/tool_push.js +14 -10
  57. package/dist/tool_push.js.map +1 -1
  58. package/dist/tool_registry.d.ts +36 -13
  59. package/dist/tool_registry.d.ts.map +1 -1
  60. package/dist/tool_registry.js +304 -114
  61. package/dist/tool_registry.js.map +1 -1
  62. package/package.json +1 -1
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.usageHourError = usageHourError;
3
4
  exports.summarizeTranscriptUsage = summarizeTranscriptUsage;
4
- exports.summarizeTranscriptUsageByDay = summarizeTranscriptUsageByDay;
5
+ exports.summarizeTranscriptUsageByHour = summarizeTranscriptUsageByHour;
6
+ exports.summarizeSessionUsageByHour = summarizeSessionUsageByHour;
5
7
  /**
6
8
  * Token-usage capture — shared across all ArmorIQ tool integrations
7
9
  * (ArmorClaude / ArmorCodex / ArmorCopilot / future agents).
@@ -11,8 +13,27 @@ exports.summarizeTranscriptUsageByDay = summarizeTranscriptUsageByDay;
11
13
  * transcript (Claude Code / Codex CLI) into per-model entries; tools whose
12
14
  * transcript differs can build entries themselves and still post via the client.
13
15
  */
16
+ const session_transcripts_1 = require("./session_transcripts");
14
17
  const fs_1 = require("fs");
15
18
  const observability_1 = require("./observability");
19
+ /**
20
+ * Why the backend would reject this payload's `usageDate` / `usageHour`, or
21
+ * undefined when both are valid: a real UTC calendar date in `YYYY-MM-DD` form
22
+ * and an integer hour from 0 to 23.
23
+ */
24
+ function usageHourError(payload) {
25
+ const { usageDate, usageHour } = payload;
26
+ const date = typeof usageDate === 'string' && /^\d{4}-\d{2}-\d{2}$/.test(usageDate)
27
+ ? new Date(`${usageDate}T00:00:00Z`)
28
+ : undefined;
29
+ if (!date || Number.isNaN(date.getTime()) || date.toISOString().slice(0, 10) !== usageDate) {
30
+ return 'usageDate must be a UTC calendar date in YYYY-MM-DD form';
31
+ }
32
+ if (!Number.isInteger(usageHour) || usageHour < 0 || usageHour > 23) {
33
+ return 'usageHour must be an integer from 0 to 23 (UTC hour of usageDate)';
34
+ }
35
+ return undefined;
36
+ }
16
37
  function safeEmit(fn) {
17
38
  try {
18
39
  return fn();
@@ -40,17 +61,17 @@ function safeEmit(fn) {
40
61
  * failure never affects the returned entries.
41
62
  */
42
63
  async function summarizeTranscriptUsage(transcriptPath, otel) {
43
- const { days } = readTranscriptUsage(transcriptPath);
44
- const entries = mergeEntries(days.flatMap((day) => day.entries));
64
+ const { hours } = readTranscriptUsage(transcriptPath);
65
+ const entries = mergeEntries(hours.flatMap((hour) => hour.entries));
45
66
  await emitModelSpans(entries, otel ?? null);
46
67
  return entries;
47
68
  }
48
69
  /**
49
- * Same parse as `summarizeTranscriptUsage`, split by the UTC day each message
50
- * was sent and carrying the transcript's working directory. Posting one row per
51
- * day keeps a multi-day session's tokens on the days they were spent.
70
+ * Same parse as `summarizeTranscriptUsage`, split by the UTC date and hour each
71
+ * message was sent and carrying the transcript's working directory. Posting one
72
+ * row per hour keeps a session's tokens on the hours they were spent.
52
73
  */
53
- function summarizeTranscriptUsageByDay(transcriptPath) {
74
+ function summarizeTranscriptUsageByHour(transcriptPath) {
54
75
  return readTranscriptUsage(transcriptPath);
55
76
  }
56
77
  function emptyEntry(model) {
@@ -72,19 +93,20 @@ function mergeEntries(entries) {
72
93
  return [...byModel.values()];
73
94
  }
74
95
  function readTranscriptUsage(transcriptPath) {
96
+ const acc = { byHour: new Map(), seen: new Set() };
97
+ accumulateTranscript(transcriptPath, acc);
98
+ return finishUsage(acc);
99
+ }
100
+ function accumulateTranscript(transcriptPath, acc) {
75
101
  let raw;
76
102
  try {
77
103
  raw = (0, fs_1.readFileSync)(transcriptPath, 'utf8');
78
104
  }
79
105
  catch {
80
- return { days: [] };
106
+ return;
81
107
  }
82
- const byDay = new Map();
83
- // Claude Code writes one line per content block of an assistant message, each
84
- // repeating that message's full usage. Count each message once.
85
- const seen = new Set();
86
- let repo;
87
- let lastDay;
108
+ const { byHour, seen } = acc;
109
+ let lastHour;
88
110
  for (const line of raw.split('\n')) {
89
111
  const trimmed = line.trim();
90
112
  if (!trimmed)
@@ -96,16 +118,19 @@ function readTranscriptUsage(transcriptPath) {
96
118
  catch {
97
119
  continue;
98
120
  }
99
- if (!repo && typeof obj?.cwd === 'string' && obj.cwd)
100
- repo = obj.cwd;
101
- const day = utcDay(obj?.timestamp) ?? lastDay;
102
- if (day)
103
- lastDay = day;
121
+ if (!acc.repo && typeof obj?.cwd === 'string' && obj.cwd)
122
+ acc.repo = obj.cwd;
123
+ const hour = utcHour(obj?.timestamp) ?? lastHour;
124
+ if (hour)
125
+ lastHour = hour;
104
126
  const msg = firstObject(obj?.message, obj?.payload) ?? obj;
105
127
  const usage = msg?.usage ?? obj?.usage;
106
128
  const model = typeof msg?.model === 'string' ? msg.model : typeof obj?.model === 'string' ? obj.model : '';
107
129
  if (!usage || !model || model === '<synthetic>')
108
130
  continue;
131
+ // Claude Code writes one line per content block of an assistant message, each
132
+ // repeating that message's full usage, and a forked session copies earlier
133
+ // messages into its own file. Count each message once.
109
134
  const messageId = typeof msg?.id === 'string' ? msg.id : '';
110
135
  if (messageId) {
111
136
  const key = `${messageId}:${typeof obj?.requestId === 'string' ? obj.requestId : ''}`;
@@ -119,49 +144,71 @@ function readTranscriptUsage(transcriptPath) {
119
144
  const cacheWrite = tokenCount(usage.cache_creation_input_tokens);
120
145
  if (inTok + outTok + cacheRead + cacheWrite === 0)
121
146
  continue;
122
- const bucketKey = day ?? '';
123
- let models = byDay.get(bucketKey);
147
+ const bucketKey = hour ?? '';
148
+ let models = byHour.get(bucketKey);
124
149
  if (!models) {
125
150
  models = new Map();
126
- byDay.set(bucketKey, models);
151
+ byHour.set(bucketKey, models);
127
152
  }
128
- const acc = models.get(model) ?? emptyEntry(model);
129
- addInto(acc, {
153
+ const entry = models.get(model) ?? emptyEntry(model);
154
+ addInto(entry, {
130
155
  model,
131
156
  inputTokens: inTok,
132
157
  outputTokens: outTok,
133
158
  cacheReadTokens: cacheRead,
134
159
  cacheWriteTokens: cacheWrite,
135
160
  });
136
- models.set(model, acc);
161
+ models.set(model, entry);
137
162
  }
138
- // Lines before the first timestamp belong to the first dated day.
139
- const undated = byDay.get('');
140
- byDay.delete('');
141
- const dates = [...byDay.keys()].sort();
163
+ }
164
+ function finishUsage({ byHour, repo }) {
165
+ // Lines before the first timestamp belong to the first dated hour.
166
+ const undated = byHour.get('');
167
+ byHour.delete('');
168
+ const keys = [...byHour.keys()].sort();
142
169
  if (undated) {
143
- const target = dates[0] ?? new Date().toISOString().slice(0, 10);
144
- const models = byDay.get(target) ?? new Map();
170
+ const target = keys[0] ?? hourKey(new Date());
171
+ const models = byHour.get(target) ?? new Map();
145
172
  for (const e of undated.values()) {
146
173
  const acc = models.get(e.model) ?? emptyEntry(e.model);
147
174
  addInto(acc, e);
148
175
  models.set(e.model, acc);
149
176
  }
150
- byDay.set(target, models);
177
+ byHour.set(target, models);
151
178
  }
152
- const days = [...byDay.entries()]
179
+ const hours = [...byHour.entries()]
153
180
  .sort(([a], [b]) => a.localeCompare(b))
154
- .map(([usageDate, models]) => ({ usageDate, entries: [...models.values()] }));
155
- return repo ? { days, repo } : { days };
181
+ .map(([key, models]) => ({
182
+ usageDate: key.slice(0, 10),
183
+ usageHour: Number(key.slice(11, 13)),
184
+ entries: [...models.values()],
185
+ }));
186
+ return repo ? { hours, repo } : { hours };
187
+ }
188
+ /**
189
+ * A Claude Code session's usage split by UTC date and hour: the main transcript
190
+ * plus its subagent transcripts, each assistant message counted once across all
191
+ * of them and filed under the hour of its own timestamp. `repo` is the first
192
+ * working directory found, main transcript first.
193
+ */
194
+ function summarizeSessionUsageByHour(mainTranscriptPath, opts = {}) {
195
+ const acc = { byHour: new Map(), seen: opts.seen ?? new Set() };
196
+ for (const file of (0, session_transcripts_1.sessionTranscriptPaths)(mainTranscriptPath))
197
+ accumulateTranscript(file, acc);
198
+ return finishUsage(acc);
156
199
  }
157
200
  // A timestamp with no offset is read as UTC, not the machine's zone, so every
158
- // machine files the same message under the same day (matches the Python SDK).
159
- function utcDay(timestamp) {
201
+ // machine files the same message under the same hour (matches the Python SDK).
202
+ function utcHour(timestamp) {
160
203
  if (typeof timestamp !== 'string' || !timestamp)
161
204
  return undefined;
162
205
  const hasZone = /(?:Z|[+-]\d{2}:?\d{2})$/i.test(timestamp.trim());
163
206
  const d = new Date(hasZone || !timestamp.includes('T') ? timestamp : `${timestamp}Z`);
164
- return Number.isNaN(d.getTime()) ? undefined : d.toISOString().slice(0, 10);
207
+ return Number.isNaN(d.getTime()) ? undefined : hourKey(d);
208
+ }
209
+ /** `YYYY-MM-DDTHH` of a date in UTC, the bucket key a message is filed under. */
210
+ function hourKey(d) {
211
+ return d.toISOString().slice(0, 13);
165
212
  }
166
213
  /** Whole, non-negative token count; anything unparseable counts as 0. */
167
214
  function tokenCount(value) {
@@ -1 +1 @@
1
- {"version":3,"file":"token_usage.js","sourceRoot":"","sources":["../src/token_usage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token_usage.js","sourceRoot":"","sources":["../src/token_usage.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ export declare class ToolPusher {
15
15
  private readonly sleep;
16
16
  private readonly clock;
17
17
  constructor(client: unknown, opts?: ToolPusherOptions);
18
- /** Called on every model call. Pushes only when the snapshot hash moved. Resolves when the push settles. */
18
+ /** Called on every model call. Pushes only when the agent's tools or any server's tools moved. Resolves when the push settles. */
19
19
  note(agentKey?: string | null, force?: boolean): Promise<void>;
20
20
  /** conmap answered `inventoryUnknown`: send the snapshot again. */
21
21
  request(agentKey?: string | null): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"tool_push.d.ts","sourceRoot":"","sources":["../src/tool_push.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,UAAU,mBAAmB,CAAC;AAC3C,eAAO,MAAM,WAAW,QAAS,CAAC;AAClC,eAAO,MAAM,oBAAoB,QAAW,CAAC;AAC7C,eAAO,MAAM,eAAe,8BAAkC,CAAC;AAY/D,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;CACtB;AAID,wFAAwF;AACxF,qBAAa,UAAU;IAQnB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAPzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IACzD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgC;IACtD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;gBAGlB,MAAM,EAAE,OAAO,EAChC,IAAI,GAAE,iBAAsB;IAM9B,4GAA4G;IAC5G,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA4B5D,mEAAmE;IACnE,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YAIlC,IAAI;CAgDnB;AAID,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,UAAU,CAQzD;AAED,gGAAgG;AAChG,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAO7E;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAO3E"}
1
+ {"version":3,"file":"tool_push.d.ts","sourceRoot":"","sources":["../src/tool_push.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,UAAU,mBAAmB,CAAC;AAC3C,eAAO,MAAM,WAAW,QAAS,CAAC;AAClC,eAAO,MAAM,oBAAoB,QAAW,CAAC;AAC7C,eAAO,MAAM,eAAe,8BAAkC,CAAC;AAY/D,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;CACtB;AAID,wFAAwF;AACxF,qBAAa,UAAU;IAQnB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAPzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IACzD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgC;IACtD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;gBAGlB,MAAM,EAAE,OAAO,EAChC,IAAI,GAAE,iBAAsB;IAM9B,kIAAkI;IAClI,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA6B5D,mEAAmE;IACnE,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YAIlC,IAAI;CAkDnB;AAID,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,UAAU,CAQzD;AAED,gGAAgG;AAChG,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAO7E;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAO3E"}
package/dist/tool_push.js CHANGED
@@ -10,6 +10,7 @@ exports.requestPush = requestPush;
10
10
  * the agent, never delays a call.
11
11
  */
12
12
  const zlib_1 = require("zlib");
13
+ const debug_1 = require("./debug");
13
14
  const tool_registry_1 = require("./tool_registry");
14
15
  exports.TOOLS_PATH = '/iap/sdk/tools';
15
16
  exports.DEBOUNCE_MS = 60_000;
@@ -29,7 +30,7 @@ class ToolPusher {
29
30
  this.sleep = opts.sleep ?? realSleep;
30
31
  this.clock = opts.clock ?? Date.now;
31
32
  }
32
- /** Called on every model call. Pushes only when the snapshot hash moved. Resolves when the push settles. */
33
+ /** Called on every model call. Pushes only when the agent's tools or any server's tools moved. Resolves when the push settles. */
33
34
  note(agentKey, force = false) {
34
35
  const key = agentKey ?? (0, tool_registry_1.agentKeyFor)(this.client);
35
36
  if (!key)
@@ -37,11 +38,12 @@ class ToolPusher {
37
38
  let current;
38
39
  try {
39
40
  const registry = (0, tool_registry_1.defaultToolRegistry)();
40
- if (!registry.hasTools(key))
41
+ if (!registry.hasDeclarations(key))
41
42
  return Promise.resolve();
42
- current = registry.snapshotHash(key);
43
+ current = registry.pushFingerprint(key);
43
44
  }
44
- catch {
45
+ catch (err) {
46
+ (0, debug_1.debugLog)('tool push note', err);
45
47
  return Promise.resolve();
46
48
  }
47
49
  if (this.inflight.has(key))
@@ -70,7 +72,9 @@ class ToolPusher {
70
72
  return this.note(agentKey, true);
71
73
  }
72
74
  async push(key) {
73
- const body = (0, tool_registry_1.defaultToolRegistry)().pushBody(key);
75
+ const registry = (0, tool_registry_1.defaultToolRegistry)();
76
+ const fingerprint = registry.pushFingerprint(key);
77
+ const body = registry.pushBody(key);
74
78
  this.lastAttempt.set(key, this.clock());
75
79
  const internals = this.client._sessionInternals();
76
80
  let data = JSON.stringify(body);
@@ -103,7 +107,7 @@ class ToolPusher {
103
107
  continue;
104
108
  }
105
109
  if (status >= 200 && status < 300) {
106
- this.pushed.set(key, body.snapshotHash);
110
+ this.pushed.set(key, fingerprint);
107
111
  return;
108
112
  }
109
113
  if (status >= 400 && status < 500) {
@@ -134,8 +138,8 @@ function noteModelCall(client, agentKey) {
134
138
  try {
135
139
  void toolPusherFor(client).note(agentKey);
136
140
  }
137
- catch {
138
- /* inventory problems never stop an agent */
141
+ catch (err) {
142
+ (0, debug_1.debugLog)('noteModelCall', err);
139
143
  }
140
144
  }
141
145
  function requestPush(client, agentKey) {
@@ -144,8 +148,8 @@ function requestPush(client, agentKey) {
144
148
  try {
145
149
  void toolPusherFor(client).request(agentKey);
146
150
  }
147
- catch {
148
- /* inventory problems never stop an agent */
151
+ catch (err) {
152
+ (0, debug_1.debugLog)('requestPush', err);
149
153
  }
150
154
  }
151
155
  //# sourceMappingURL=tool_push.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool_push.js","sourceRoot":"","sources":["../src/tool_push.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool_push.js","sourceRoot":"","sources":["../src/tool_push.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,14 @@ export interface ToolDeclaration {
9
9
  export interface McpServerRef {
10
10
  name: string;
11
11
  url: string;
12
+ /** Tools the agent saw from this server, schemas exactly as the server sent them. */
13
+ tools?: ToolDeclaration[];
14
+ }
15
+ export interface McpServerEntry {
16
+ name: string;
17
+ url: string;
18
+ snapshotHash: string;
19
+ tools: ArmorToolEntry[];
12
20
  }
13
21
  export interface ArmorToolEntry {
14
22
  name: string;
@@ -23,8 +31,13 @@ export interface ArmorToolsResponse {
23
31
  agent: string | null;
24
32
  sdk: string;
25
33
  tools: ArmorToolEntry[];
26
- mcpServers: McpServerRef[];
34
+ mcpServers: McpServerEntry[];
27
35
  }
36
+ /** One server is one name inside the org; sightings differing in case or trailing underscores are the same server. */
37
+ export declare function serverKey(s: {
38
+ name: string;
39
+ url: string;
40
+ }): string;
28
41
  export declare const SNAPSHOT_HASH_PREFIX = "v1:sha256:";
29
42
  /** `v1:sha256` over sorted `name:schemaHash` lines. Descriptions are not part of it. */
30
43
  export declare function snapshotHash(tools: Iterable<{
@@ -32,12 +45,12 @@ export declare function snapshotHash(tools: Iterable<{
32
45
  schemaHash?: string | null;
33
46
  }>): string;
34
47
  export interface ToolSnapshotPush {
35
- contract: 1;
48
+ contract: 2;
36
49
  agent: string;
37
50
  sdk: string;
38
51
  snapshotHash: string;
39
52
  tools: ArmorToolEntry[];
40
- mcpServers: McpServerRef[];
53
+ mcpServers: McpServerEntry[];
41
54
  }
42
55
  export declare class ToolRegistry {
43
56
  private readonly tools;
@@ -47,10 +60,12 @@ export declare class ToolRegistry {
47
60
  /** A tool ran that nothing declared: record the name with no schema. Server-prefixed names belong to the server. */
48
61
  observe(agentKey: string, name: string, serverNames?: readonly string[], toolMap?: Record<string, string>): void;
49
62
  clear(agentKey?: string): void;
50
- /** An empty set is never pushed; an empty snapshot would stale every declared row. */
51
- hasTools(agentKey: string): boolean;
63
+ /** Nothing declared is never pushed; an empty snapshot would stale every declared row. */
64
+ hasDeclarations(agentKey: string): boolean;
52
65
  /** Contract §4 fingerprint of one agent's tools; cached until the set changes. */
53
66
  snapshotHash(agentKey: string): string;
67
+ /** What a push would send, as one string: the agent's tool hash and each server's. A server change moves it; the agent hash alone does not. */
68
+ pushFingerprint(agentKey: string): string;
54
69
  /** The `POST /iap/sdk/tools` body for one agent (contract §2). */
55
70
  pushBody(agentKey: string): ToolSnapshotPush;
56
71
  /** One agent's tools, or a union tagged per entry when several agents share a process. */
@@ -72,27 +87,35 @@ export declare function knownToolMap(client: unknown): Promise<Record<string, st
72
87
  /** `<server>__<tool>`, or `<server>_<tool>` for a server the org registered. */
73
88
  export declare function mcpBackedByName(name: string, serverNames: readonly string[]): boolean;
74
89
  export declare function observeForClient(client: unknown, name: string): void;
75
- /** Gemini `Schema` (uppercase `type`, `nullable`) to JSON Schema. */
76
90
  export declare function geminiSchemaToJsonSchema(schema: unknown): unknown;
77
91
  export declare function declarationsFromAdkAgent(agent: unknown): {
78
92
  tools: ToolDeclaration[];
79
93
  servers: McpServerRef[];
80
94
  };
95
+ /**
96
+ * The tools ADK resolved for one model request (`LlmRequest.toolsDict`): toolsets are
97
+ * already expanded, and each MCP tool carries its raw definition and its session.
98
+ * No extra I/O.
99
+ */
100
+ export declare function declarationsFromAdkResolvedTools(toolsDict: unknown): {
101
+ tools: ToolDeclaration[];
102
+ servers: McpServerRef[];
103
+ };
104
+ /** ADK toolsets list their tools asynchronously; each tool wraps the raw MCP definition as `mcpTool`. */
105
+ export declare function declarationsFromAdkAgentAsync(agent: unknown): Promise<{
106
+ tools: ToolDeclaration[];
107
+ servers: McpServerRef[];
108
+ }>;
81
109
  export declare function declarationsFromStrandsAgent(agent: unknown): {
82
110
  tools: ToolDeclaration[];
83
111
  servers: McpServerRef[];
84
112
  };
85
- /** LangChain tools handed to the factory. A name in `<server>__<tool>` form is MCP-backed. */
86
- /**
87
- * Tool definitions as a model request carries them: `{type:'function', function:{name,
88
- * description, parameters}}` or flat `{name, description, parameters | input_schema}`.
89
- * LangChain hands these to `handleChatModelStart` in `invocation_params.tools`, so the
90
- * registry fills from the model call with nothing for the developer to wire.
91
- */
113
+ /** The schemas here are the model-side copies, not what the server sent; only a raw MCP definition is `mcp`. */
92
114
  export declare function declarationsFromOpenAiTools(list: unknown[], serverNames?: readonly string[], toolMap?: Record<string, string>): {
93
115
  tools: ToolDeclaration[];
94
116
  servers: McpServerRef[];
95
117
  };
118
+ /** LangChain tools handed to the factory. A name in `<server>__<tool>` form is MCP-backed. */
96
119
  export declare function declarationsFromLangChainTools(list: unknown[], serverNames?: readonly string[]): {
97
120
  tools: ToolDeclaration[];
98
121
  servers: McpServerRef[];
@@ -1 +1 @@
1
- {"version":3,"file":"tool_registry.d.ts","sourceRoot":"","sources":["../src/tool_registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool_registry.d.ts","sourceRoot":"","sources":["../src/tool_registry.ts"],"names":[],"mappings":"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"}