@armoriq/sdk-dev 0.6.10 → 0.8.0

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 (96) hide show
  1. package/README.md +168 -1
  2. package/dist/_version.d.ts +1 -1
  3. package/dist/_version.d.ts.map +1 -1
  4. package/dist/_version.js +1 -1
  5. package/dist/_version.js.map +1 -1
  6. package/dist/cli/commands/auth.d.ts +12 -0
  7. package/dist/cli/commands/auth.d.ts.map +1 -1
  8. package/dist/cli/commands/auth.js +522 -49
  9. package/dist/cli/commands/auth.js.map +1 -1
  10. package/dist/client.d.ts +8 -15
  11. package/dist/client.d.ts.map +1 -1
  12. package/dist/client.js +20 -18
  13. package/dist/client.js.map +1 -1
  14. package/dist/config.d.ts +0 -17
  15. package/dist/config.d.ts.map +1 -1
  16. package/dist/config.js +1 -19
  17. package/dist/config.js.map +1 -1
  18. package/dist/index.d.ts +3 -2
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +8 -14
  21. package/dist/index.js.map +1 -1
  22. package/dist/integrations/google_adk.d.ts +155 -7
  23. package/dist/integrations/google_adk.d.ts.map +1 -1
  24. package/dist/integrations/google_adk.js +727 -46
  25. package/dist/integrations/google_adk.js.map +1 -1
  26. package/dist/integrations/langchain.d.ts +48 -2
  27. package/dist/integrations/langchain.d.ts.map +1 -1
  28. package/dist/integrations/langchain.js +528 -33
  29. package/dist/integrations/langchain.js.map +1 -1
  30. package/dist/integrations/strands.d.ts +65 -1
  31. package/dist/integrations/strands.d.ts.map +1 -1
  32. package/dist/integrations/strands.js +456 -36
  33. package/dist/integrations/strands.js.map +1 -1
  34. package/dist/models.d.ts +2 -2
  35. package/dist/models.d.ts.map +1 -1
  36. package/dist/observability/content-capture.d.ts +103 -0
  37. package/dist/observability/content-capture.d.ts.map +1 -0
  38. package/dist/observability/content-capture.js +423 -0
  39. package/dist/observability/content-capture.js.map +1 -0
  40. package/dist/observability/index.d.ts +6 -7
  41. package/dist/observability/index.d.ts.map +1 -1
  42. package/dist/observability/index.js +18 -27
  43. package/dist/observability/index.js.map +1 -1
  44. package/dist/observability/otel-config.d.ts +47 -0
  45. package/dist/observability/otel-config.d.ts.map +1 -0
  46. package/dist/observability/otel-config.js +268 -0
  47. package/dist/observability/otel-config.js.map +1 -0
  48. package/dist/observability/otel-export-ceiling.d.ts +96 -0
  49. package/dist/observability/otel-export-ceiling.d.ts.map +1 -0
  50. package/dist/observability/otel-export-ceiling.js +271 -0
  51. package/dist/observability/otel-export-ceiling.js.map +1 -0
  52. package/dist/observability/otel-runtime.d.ts +103 -0
  53. package/dist/observability/otel-runtime.d.ts.map +1 -0
  54. package/dist/observability/otel-runtime.js +680 -0
  55. package/dist/observability/otel-runtime.js.map +1 -0
  56. package/dist/observability/otel-session.d.ts +168 -0
  57. package/dist/observability/otel-session.d.ts.map +1 -0
  58. package/dist/observability/otel-session.js +630 -0
  59. package/dist/observability/otel-session.js.map +1 -0
  60. package/dist/observability/otel-shutdown.d.ts +17 -0
  61. package/dist/observability/otel-shutdown.d.ts.map +1 -0
  62. package/dist/observability/otel-shutdown.js +54 -0
  63. package/dist/observability/otel-shutdown.js.map +1 -0
  64. package/dist/observability/policy-lease.d.ts +22 -0
  65. package/dist/observability/policy-lease.d.ts.map +1 -0
  66. package/dist/observability/policy-lease.js +102 -0
  67. package/dist/observability/policy-lease.js.map +1 -0
  68. package/dist/plan_builder.d.ts +5 -4
  69. package/dist/plan_builder.d.ts.map +1 -1
  70. package/dist/plan_builder.js +14 -15
  71. package/dist/plan_builder.js.map +1 -1
  72. package/dist/session.d.ts +61 -93
  73. package/dist/session.d.ts.map +1 -1
  74. package/dist/session.js +388 -804
  75. package/dist/session.js.map +1 -1
  76. package/dist/token_usage.d.ts +11 -18
  77. package/dist/token_usage.d.ts.map +1 -1
  78. package/dist/token_usage.js +29 -94
  79. package/dist/token_usage.js.map +1 -1
  80. package/dist/tool_name.d.ts +18 -0
  81. package/dist/tool_name.d.ts.map +1 -0
  82. package/dist/tool_name.js +29 -0
  83. package/dist/tool_name.js.map +1 -0
  84. package/dist/tool_push.d.ts +28 -0
  85. package/dist/tool_push.d.ts.map +1 -0
  86. package/dist/tool_push.js +151 -0
  87. package/dist/tool_push.js.map +1 -0
  88. package/dist/tool_registry.d.ts +100 -0
  89. package/dist/tool_registry.d.ts.map +1 -0
  90. package/dist/tool_registry.js +440 -0
  91. package/dist/tool_registry.js.map +1 -0
  92. package/dist/tool_schema.d.ts +22 -0
  93. package/dist/tool_schema.d.ts.map +1 -0
  94. package/dist/tool_schema.js +163 -0
  95. package/dist/tool_schema.js.map +1 -0
  96. package/package.json +12 -7
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ToolPusher = exports.RETRY_DELAYS_MS = exports.GZIP_THRESHOLD_BYTES = exports.DEBOUNCE_MS = exports.TOOLS_PATH = void 0;
4
+ exports.toolPusherFor = toolPusherFor;
5
+ exports.noteModelCall = noteModelCall;
6
+ exports.requestPush = requestPush;
7
+ /**
8
+ * Push the agent's tool snapshot to conmap; conmap never dials the agent. Pushes after the
9
+ * first model call, when the tool hash moves, and on `inventoryUnknown`. Never throws into
10
+ * the agent, never delays a call.
11
+ */
12
+ const zlib_1 = require("zlib");
13
+ const tool_registry_1 = require("./tool_registry");
14
+ exports.TOOLS_PATH = '/iap/sdk/tools';
15
+ exports.DEBOUNCE_MS = 60_000;
16
+ exports.GZIP_THRESHOLD_BYTES = 8 * 1024;
17
+ exports.RETRY_DELAYS_MS = [1_000, 4_000, 16_000];
18
+ const realSleep = (ms) => new Promise((r) => setTimeout(r, ms).unref?.());
19
+ /** One per client. Remembers what conmap has so identical snapshots are not re-sent. */
20
+ class ToolPusher {
21
+ client;
22
+ pushed = new Map();
23
+ lastAttempt = new Map();
24
+ inflight = new Set();
25
+ sleep;
26
+ clock;
27
+ constructor(client, opts = {}) {
28
+ this.client = client;
29
+ this.sleep = opts.sleep ?? realSleep;
30
+ this.clock = opts.clock ?? Date.now;
31
+ }
32
+ /** Called on every model call. Pushes only when the snapshot hash moved. Resolves when the push settles. */
33
+ note(agentKey, force = false) {
34
+ const key = agentKey ?? (0, tool_registry_1.agentKeyFor)(this.client);
35
+ if (!key)
36
+ return Promise.resolve();
37
+ let current;
38
+ try {
39
+ const registry = (0, tool_registry_1.defaultToolRegistry)();
40
+ if (!registry.hasTools(key))
41
+ return Promise.resolve();
42
+ current = registry.snapshotHash(key);
43
+ }
44
+ catch {
45
+ return Promise.resolve();
46
+ }
47
+ if (this.inflight.has(key))
48
+ return Promise.resolve();
49
+ if (!force && this.pushed.get(key) === current)
50
+ return Promise.resolve();
51
+ const last = this.lastAttempt.get(key);
52
+ const wait = last === undefined ? 0 : Math.max(0, last + exports.DEBOUNCE_MS - this.clock());
53
+ this.inflight.add(key);
54
+ return (async () => {
55
+ try {
56
+ if (wait > 0)
57
+ await this.sleep(wait);
58
+ await this.push(key);
59
+ }
60
+ catch (err) {
61
+ console.warn(`[armoriq] tool snapshot push failed: ${err.message}`);
62
+ }
63
+ finally {
64
+ this.inflight.delete(key);
65
+ }
66
+ })();
67
+ }
68
+ /** conmap answered `inventoryUnknown`: send the snapshot again. */
69
+ request(agentKey) {
70
+ return this.note(agentKey, true);
71
+ }
72
+ async push(key) {
73
+ const body = (0, tool_registry_1.defaultToolRegistry)().pushBody(key);
74
+ this.lastAttempt.set(key, this.clock());
75
+ const internals = this.client._sessionInternals();
76
+ let data = JSON.stringify(body);
77
+ const headers = {
78
+ 'X-API-Key': internals.apiKey,
79
+ 'Content-Type': 'application/json',
80
+ };
81
+ if (Buffer.byteLength(data) > exports.GZIP_THRESHOLD_BYTES) {
82
+ data = (0, zlib_1.gzipSync)(Buffer.from(data));
83
+ headers['Content-Encoding'] = 'gzip';
84
+ }
85
+ const url = `${internals.backendEndpoint}${exports.TOOLS_PATH}`;
86
+ let lastError = '';
87
+ for (const delay of [0, ...exports.RETRY_DELAYS_MS]) {
88
+ if (delay)
89
+ await this.sleep(delay);
90
+ let status = 0;
91
+ let payload;
92
+ try {
93
+ const res = (await internals.httpClient.post(url, data, {
94
+ headers,
95
+ timeout: 10_000,
96
+ validateStatus: () => true,
97
+ }));
98
+ status = res?.status ?? 0;
99
+ payload = res?.data;
100
+ }
101
+ catch (err) {
102
+ lastError = err.message;
103
+ continue;
104
+ }
105
+ if (status >= 200 && status < 300) {
106
+ this.pushed.set(key, body.snapshotHash);
107
+ return;
108
+ }
109
+ if (status >= 400 && status < 500) {
110
+ const code = payload ?? {};
111
+ console.warn(`[armoriq] tool snapshot rejected (${status}) for ${key}: ${String(code.error ?? code.message ?? '')}`);
112
+ return;
113
+ }
114
+ lastError = `HTTP ${status}`;
115
+ }
116
+ console.warn(`[armoriq] tool snapshot push gave up for ${key} after ${exports.RETRY_DELAYS_MS.length + 1} attempts: ${lastError}`);
117
+ }
118
+ }
119
+ exports.ToolPusher = ToolPusher;
120
+ const PUSHERS = new WeakMap();
121
+ function toolPusherFor(client) {
122
+ const key = client;
123
+ let p = PUSHERS.get(key);
124
+ if (!p) {
125
+ p = new ToolPusher(client);
126
+ PUSHERS.set(key, p);
127
+ }
128
+ return p;
129
+ }
130
+ /** Adapters call this from their model-call hook. Never throws, never awaited by the caller. */
131
+ function noteModelCall(client, agentKey) {
132
+ if (!client || typeof client !== 'object')
133
+ return;
134
+ try {
135
+ void toolPusherFor(client).note(agentKey);
136
+ }
137
+ catch {
138
+ /* inventory problems never stop an agent */
139
+ }
140
+ }
141
+ function requestPush(client, agentKey) {
142
+ if (!client || typeof client !== 'object')
143
+ return;
144
+ try {
145
+ void toolPusherFor(client).request(agentKey);
146
+ }
147
+ catch {
148
+ /* inventory problems never stop an agent */
149
+ }
150
+ }
151
+ //# sourceMappingURL=tool_push.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool_push.js","sourceRoot":"","sources":["../src/tool_push.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ export type SchemaSource = 'framework' | 'inferred' | 'none' | 'mcp';
2
+ export interface ToolDeclaration {
3
+ name: string;
4
+ description?: string;
5
+ inputSchema?: unknown;
6
+ schemaSource: SchemaSource;
7
+ annotations?: Record<string, unknown>;
8
+ }
9
+ export interface McpServerRef {
10
+ name: string;
11
+ url: string;
12
+ }
13
+ export interface ArmorToolEntry {
14
+ name: string;
15
+ description: string;
16
+ schemaSource: SchemaSource;
17
+ schemaHash: string | null;
18
+ inputSchema?: unknown;
19
+ annotations?: Record<string, unknown>;
20
+ agent?: string;
21
+ }
22
+ export interface ArmorToolsResponse {
23
+ agent: string | null;
24
+ sdk: string;
25
+ tools: ArmorToolEntry[];
26
+ mcpServers: McpServerRef[];
27
+ }
28
+ export declare const SNAPSHOT_HASH_PREFIX = "v1:sha256:";
29
+ /** `v1:sha256` over sorted `name:schemaHash` lines. Descriptions are not part of it. */
30
+ export declare function snapshotHash(tools: Iterable<{
31
+ name: string;
32
+ schemaHash?: string | null;
33
+ }>): string;
34
+ export interface ToolSnapshotPush {
35
+ contract: 1;
36
+ agent: string;
37
+ sdk: string;
38
+ snapshotHash: string;
39
+ tools: ArmorToolEntry[];
40
+ mcpServers: McpServerRef[];
41
+ }
42
+ export declare class ToolRegistry {
43
+ private readonly tools;
44
+ private readonly servers;
45
+ private readonly hashes;
46
+ register(agentKey: string, tools: Iterable<ToolDeclaration>, mcpServers?: Iterable<McpServerRef>): void;
47
+ /** A tool ran that nothing declared: record the name with no schema. Server-prefixed names belong to the server. */
48
+ observe(agentKey: string, name: string, serverNames?: readonly string[], toolMap?: Record<string, string>): void;
49
+ clear(agentKey?: string): void;
50
+ /** An empty set is never pushed; an empty snapshot would stale every declared row. */
51
+ hasTools(agentKey: string): boolean;
52
+ /** Contract §4 fingerprint of one agent's tools; cached until the set changes. */
53
+ snapshotHash(agentKey: string): string;
54
+ /** The `POST /iap/sdk/tools` body for one agent (contract §2). */
55
+ pushBody(agentKey: string): ToolSnapshotPush;
56
+ /** One agent's tools, or a union tagged per entry when several agents share a process. */
57
+ snapshot(agentKey?: string): ArmorToolsResponse;
58
+ }
59
+ export declare function defaultToolRegistry(): ToolRegistry;
60
+ /** The registry key for a client: its agent id, when it has a real one. */
61
+ export declare function agentKeyFor(client: unknown): string | null;
62
+ /** Never throws: a registry problem must not stop an agent from running. */
63
+ export declare function registerForClient(client: unknown, tools: ToolDeclaration[], mcpServers?: McpServerRef[]): void;
64
+ /** The org's MCP server names from the client's cached bootstrap payload. Never fetches. */
65
+ export declare function cachedServerNames(client: unknown): string[];
66
+ /** The org's MCP server names, fetching bootstrap when the client has not yet; empty when unreachable. */
67
+ export declare function knownServerNames(client: unknown): Promise<string[]>;
68
+ /** The org's tool name → MCP server map from the cached bootstrap payload. Never fetches. */
69
+ export declare function cachedToolMap(client: unknown): Record<string, string>;
70
+ /** The org's tool name → MCP server map, fetching bootstrap when needed; a bare published name is the server's. */
71
+ export declare function knownToolMap(client: unknown): Promise<Record<string, string>>;
72
+ /** `<server>__<tool>`, or `<server>_<tool>` for a server the org registered. */
73
+ export declare function mcpBackedByName(name: string, serverNames: readonly string[]): boolean;
74
+ export declare function observeForClient(client: unknown, name: string): void;
75
+ /** Gemini `Schema` (uppercase `type`, `nullable`) to JSON Schema. */
76
+ export declare function geminiSchemaToJsonSchema(schema: unknown): unknown;
77
+ export declare function declarationsFromAdkAgent(agent: unknown): {
78
+ tools: ToolDeclaration[];
79
+ servers: McpServerRef[];
80
+ };
81
+ export declare function declarationsFromStrandsAgent(agent: unknown): {
82
+ tools: ToolDeclaration[];
83
+ servers: McpServerRef[];
84
+ };
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
+ */
92
+ export declare function declarationsFromOpenAiTools(list: unknown[], serverNames?: readonly string[], toolMap?: Record<string, string>): {
93
+ tools: ToolDeclaration[];
94
+ servers: McpServerRef[];
95
+ };
96
+ export declare function declarationsFromLangChainTools(list: unknown[], serverNames?: readonly string[]): {
97
+ tools: ToolDeclaration[];
98
+ servers: McpServerRef[];
99
+ };
100
+ //# sourceMappingURL=tool_registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool_registry.d.ts","sourceRoot":"","sources":["../src/tool_registry.ts"],"names":[],"mappings":"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"}