@agentgazer/shared 0.1.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 (43) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +35 -0
  3. package/dist/__tests__/parsers.test.d.ts +2 -0
  4. package/dist/__tests__/parsers.test.d.ts.map +1 -0
  5. package/dist/__tests__/parsers.test.js +388 -0
  6. package/dist/__tests__/parsers.test.js.map +1 -0
  7. package/dist/__tests__/pricing.test.d.ts +2 -0
  8. package/dist/__tests__/pricing.test.d.ts.map +1 -0
  9. package/dist/__tests__/pricing.test.js +373 -0
  10. package/dist/__tests__/pricing.test.js.map +1 -0
  11. package/dist/__tests__/providers.test.d.ts +2 -0
  12. package/dist/__tests__/providers.test.d.ts.map +1 -0
  13. package/dist/__tests__/providers.test.js +227 -0
  14. package/dist/__tests__/providers.test.js.map +1 -0
  15. package/dist/index.d.ts +7 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +28 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/logger.d.ts +9 -0
  20. package/dist/logger.d.ts.map +1 -0
  21. package/dist/logger.js +59 -0
  22. package/dist/logger.js.map +1 -0
  23. package/dist/models.d.ts +11 -0
  24. package/dist/models.d.ts.map +1 -0
  25. package/dist/models.js +86 -0
  26. package/dist/models.js.map +1 -0
  27. package/dist/parsers.d.ts +11 -0
  28. package/dist/parsers.d.ts.map +1 -0
  29. package/dist/parsers.js +101 -0
  30. package/dist/parsers.js.map +1 -0
  31. package/dist/pricing.d.ts +8 -0
  32. package/dist/pricing.d.ts.map +1 -0
  33. package/dist/pricing.js +74 -0
  34. package/dist/pricing.js.map +1 -0
  35. package/dist/providers.d.ts +38 -0
  36. package/dist/providers.d.ts.map +1 -0
  37. package/dist/providers.js +195 -0
  38. package/dist/providers.js.map +1 -0
  39. package/dist/types.d.ts +176 -0
  40. package/dist/types.d.ts.map +1 -0
  41. package/dist/types.js +31 -0
  42. package/dist/types.js.map +1 -0
  43. package/package.json +54 -0
@@ -0,0 +1,195 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KNOWN_PROVIDER_NAMES = void 0;
4
+ exports.detectProvider = detectProvider;
5
+ exports.detectProviderByHostname = detectProviderByHostname;
6
+ exports.getProviderBaseUrl = getProviderBaseUrl;
7
+ exports.getProviderAuthHeader = getProviderAuthHeader;
8
+ exports.parsePathPrefix = parsePathPrefix;
9
+ exports.parseAgentPath = parseAgentPath;
10
+ /** All known provider names (excludes "unknown"). Single source of truth. */
11
+ exports.KNOWN_PROVIDER_NAMES = [
12
+ "openai",
13
+ "anthropic",
14
+ "google",
15
+ "mistral",
16
+ "cohere",
17
+ "deepseek",
18
+ "moonshot",
19
+ "zhipu",
20
+ "minimax",
21
+ "baichuan",
22
+ "yi",
23
+ ];
24
+ const PROVIDER_PATTERNS = [
25
+ {
26
+ name: "openai",
27
+ hostPatterns: [/^api\.openai\.com$/],
28
+ pathPatterns: [/\/v1\/chat\/completions/, /\/v1\/completions/],
29
+ },
30
+ {
31
+ name: "anthropic",
32
+ hostPatterns: [/^api\.anthropic\.com$/],
33
+ pathPatterns: [/\/v1\/messages/],
34
+ },
35
+ {
36
+ name: "google",
37
+ hostPatterns: [/^generativelanguage\.googleapis\.com$/],
38
+ },
39
+ {
40
+ name: "mistral",
41
+ hostPatterns: [/^api\.mistral\.ai$/],
42
+ },
43
+ {
44
+ name: "cohere",
45
+ hostPatterns: [/^api\.cohere\.com$/, /^api\.cohere\.ai$/],
46
+ },
47
+ {
48
+ name: "deepseek",
49
+ hostPatterns: [/^api\.deepseek\.com$/],
50
+ },
51
+ {
52
+ name: "moonshot",
53
+ hostPatterns: [/^api\.moonshot\.cn$/],
54
+ },
55
+ {
56
+ name: "zhipu",
57
+ hostPatterns: [/^open\.bigmodel\.cn$/, /^api\.z\.ai$/],
58
+ },
59
+ {
60
+ name: "minimax",
61
+ hostPatterns: [/^api\.minimax\.chat$/],
62
+ },
63
+ {
64
+ name: "baichuan",
65
+ hostPatterns: [/^api\.baichuan-ai\.com$/],
66
+ },
67
+ {
68
+ name: "yi",
69
+ hostPatterns: [/^api\.lingyiwanwu\.com$/],
70
+ },
71
+ ];
72
+ function detectProvider(url) {
73
+ let hostname = "";
74
+ let pathname = url;
75
+ try {
76
+ const parsed = new URL(url);
77
+ hostname = parsed.hostname;
78
+ pathname = parsed.pathname;
79
+ }
80
+ catch {
81
+ // If URL can't be parsed, fall through to path-only matching
82
+ }
83
+ for (const provider of PROVIDER_PATTERNS) {
84
+ if (hostname) {
85
+ for (const hostPattern of provider.hostPatterns) {
86
+ if (hostPattern.test(hostname)) {
87
+ return provider.name;
88
+ }
89
+ }
90
+ }
91
+ if (provider.pathPatterns) {
92
+ for (const pathPattern of provider.pathPatterns) {
93
+ if (pathPattern.test(pathname)) {
94
+ return provider.name;
95
+ }
96
+ }
97
+ }
98
+ }
99
+ return "unknown";
100
+ }
101
+ /**
102
+ * Detect provider by hostname only. Returns "unknown" for path-only matches.
103
+ * Used for key injection and rate limiting where hostname trust is required.
104
+ */
105
+ function detectProviderByHostname(url) {
106
+ let hostname = "";
107
+ try {
108
+ const parsed = new URL(url);
109
+ hostname = parsed.hostname;
110
+ }
111
+ catch {
112
+ return "unknown";
113
+ }
114
+ if (!hostname)
115
+ return "unknown";
116
+ for (const provider of PROVIDER_PATTERNS) {
117
+ for (const hostPattern of provider.hostPatterns) {
118
+ if (hostPattern.test(hostname)) {
119
+ return provider.name;
120
+ }
121
+ }
122
+ }
123
+ return "unknown";
124
+ }
125
+ function getProviderBaseUrl(provider) {
126
+ const urls = {
127
+ openai: "https://api.openai.com",
128
+ anthropic: "https://api.anthropic.com",
129
+ google: "https://generativelanguage.googleapis.com",
130
+ mistral: "https://api.mistral.ai",
131
+ cohere: "https://api.cohere.com",
132
+ deepseek: "https://api.deepseek.com",
133
+ moonshot: "https://api.moonshot.cn",
134
+ zhipu: "https://open.bigmodel.cn",
135
+ minimax: "https://api.minimax.chat",
136
+ baichuan: "https://api.baichuan-ai.com",
137
+ yi: "https://api.lingyiwanwu.com",
138
+ };
139
+ return urls[provider] ?? null;
140
+ }
141
+ /**
142
+ * Returns the auth header name and value for a given provider.
143
+ * Different providers use different header conventions.
144
+ */
145
+ function getProviderAuthHeader(provider, apiKey) {
146
+ switch (provider) {
147
+ case "openai":
148
+ case "mistral":
149
+ case "cohere":
150
+ case "deepseek":
151
+ case "moonshot":
152
+ case "zhipu":
153
+ case "minimax":
154
+ case "baichuan":
155
+ case "yi":
156
+ return { name: "authorization", value: `Bearer ${apiKey}` };
157
+ case "anthropic":
158
+ return { name: "x-api-key", value: apiKey };
159
+ case "google":
160
+ return { name: "x-goog-api-key", value: apiKey };
161
+ default:
162
+ return null;
163
+ }
164
+ }
165
+ /**
166
+ * Parse a URL path to extract a provider name prefix.
167
+ * Given "/openai/v1/chat/completions" returns { provider: "openai", remainingPath: "/v1/chat/completions" }.
168
+ * Returns null for unknown prefixes, allowing fallthrough to existing detection.
169
+ */
170
+ function parsePathPrefix(path) {
171
+ const match = path.match(/^\/([^/]+)(\/.*)?$/);
172
+ if (!match)
173
+ return null;
174
+ const segment = match[1].toLowerCase();
175
+ const rest = match[2] ?? "/";
176
+ if (exports.KNOWN_PROVIDER_NAMES.includes(segment)) {
177
+ return { provider: segment, remainingPath: rest };
178
+ }
179
+ return null;
180
+ }
181
+ /**
182
+ * Parse a URL path to extract an agent ID from /agents/{id}/... format.
183
+ * Given "/agents/my-bot/openai/v1/chat/completions" returns:
184
+ * { agentId: "my-bot", remainingPath: "/openai/v1/chat/completions" }
185
+ * Returns null if path doesn't match the /agents/{id}/ pattern.
186
+ */
187
+ function parseAgentPath(path) {
188
+ const match = path.match(/^\/agents\/([^/]+)(\/.*)?$/);
189
+ if (!match)
190
+ return null;
191
+ const agentId = match[1];
192
+ const rest = match[2] ?? "/";
193
+ return { agentId, remainingPath: rest };
194
+ }
195
+ //# sourceMappingURL=providers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,176 @@
1
+ import { z } from "zod";
2
+ export declare const EventType: z.ZodEnum<["llm_call", "completion", "heartbeat", "error", "custom"]>;
3
+ export type EventType = z.infer<typeof EventType>;
4
+ export declare const Source: z.ZodEnum<["sdk", "proxy"]>;
5
+ export type Source = z.infer<typeof Source>;
6
+ export declare const AgentEventSchema: z.ZodObject<{
7
+ id: z.ZodOptional<z.ZodString>;
8
+ agent_id: z.ZodString;
9
+ event_type: z.ZodEnum<["llm_call", "completion", "heartbeat", "error", "custom"]>;
10
+ provider: z.ZodOptional<z.ZodNullable<z.ZodString>>;
11
+ model: z.ZodOptional<z.ZodNullable<z.ZodString>>;
12
+ requested_model: z.ZodOptional<z.ZodNullable<z.ZodString>>;
13
+ tokens_in: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
14
+ tokens_out: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
15
+ tokens_total: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
16
+ cost_usd: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
17
+ latency_ms: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
18
+ status_code: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
19
+ error_message: z.ZodOptional<z.ZodNullable<z.ZodString>>;
20
+ tags: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
21
+ source: z.ZodEnum<["sdk", "proxy"]>;
22
+ timestamp: z.ZodString;
23
+ trace_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
24
+ span_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
25
+ parent_span_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
26
+ }, "strip", z.ZodTypeAny, {
27
+ agent_id: string;
28
+ event_type: "llm_call" | "completion" | "heartbeat" | "error" | "custom";
29
+ tags: Record<string, unknown>;
30
+ source: "sdk" | "proxy";
31
+ timestamp: string;
32
+ id?: string | undefined;
33
+ provider?: string | null | undefined;
34
+ model?: string | null | undefined;
35
+ requested_model?: string | null | undefined;
36
+ tokens_in?: number | null | undefined;
37
+ tokens_out?: number | null | undefined;
38
+ tokens_total?: number | null | undefined;
39
+ cost_usd?: number | null | undefined;
40
+ latency_ms?: number | null | undefined;
41
+ status_code?: number | null | undefined;
42
+ error_message?: string | null | undefined;
43
+ trace_id?: string | null | undefined;
44
+ span_id?: string | null | undefined;
45
+ parent_span_id?: string | null | undefined;
46
+ }, {
47
+ agent_id: string;
48
+ event_type: "llm_call" | "completion" | "heartbeat" | "error" | "custom";
49
+ source: "sdk" | "proxy";
50
+ timestamp: string;
51
+ id?: string | undefined;
52
+ provider?: string | null | undefined;
53
+ model?: string | null | undefined;
54
+ requested_model?: string | null | undefined;
55
+ tokens_in?: number | null | undefined;
56
+ tokens_out?: number | null | undefined;
57
+ tokens_total?: number | null | undefined;
58
+ cost_usd?: number | null | undefined;
59
+ latency_ms?: number | null | undefined;
60
+ status_code?: number | null | undefined;
61
+ error_message?: string | null | undefined;
62
+ tags?: Record<string, unknown> | undefined;
63
+ trace_id?: string | null | undefined;
64
+ span_id?: string | null | undefined;
65
+ parent_span_id?: string | null | undefined;
66
+ }>;
67
+ export type AgentEvent = z.infer<typeof AgentEventSchema>;
68
+ export declare const BatchEventsSchema: z.ZodObject<{
69
+ events: z.ZodArray<z.ZodObject<{
70
+ id: z.ZodOptional<z.ZodString>;
71
+ agent_id: z.ZodString;
72
+ event_type: z.ZodEnum<["llm_call", "completion", "heartbeat", "error", "custom"]>;
73
+ provider: z.ZodOptional<z.ZodNullable<z.ZodString>>;
74
+ model: z.ZodOptional<z.ZodNullable<z.ZodString>>;
75
+ requested_model: z.ZodOptional<z.ZodNullable<z.ZodString>>;
76
+ tokens_in: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
77
+ tokens_out: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
78
+ tokens_total: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
79
+ cost_usd: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
80
+ latency_ms: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
81
+ status_code: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
82
+ error_message: z.ZodOptional<z.ZodNullable<z.ZodString>>;
83
+ tags: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
84
+ source: z.ZodEnum<["sdk", "proxy"]>;
85
+ timestamp: z.ZodString;
86
+ trace_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
87
+ span_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
88
+ parent_span_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
89
+ }, "strip", z.ZodTypeAny, {
90
+ agent_id: string;
91
+ event_type: "llm_call" | "completion" | "heartbeat" | "error" | "custom";
92
+ tags: Record<string, unknown>;
93
+ source: "sdk" | "proxy";
94
+ timestamp: string;
95
+ id?: string | undefined;
96
+ provider?: string | null | undefined;
97
+ model?: string | null | undefined;
98
+ requested_model?: string | null | undefined;
99
+ tokens_in?: number | null | undefined;
100
+ tokens_out?: number | null | undefined;
101
+ tokens_total?: number | null | undefined;
102
+ cost_usd?: number | null | undefined;
103
+ latency_ms?: number | null | undefined;
104
+ status_code?: number | null | undefined;
105
+ error_message?: string | null | undefined;
106
+ trace_id?: string | null | undefined;
107
+ span_id?: string | null | undefined;
108
+ parent_span_id?: string | null | undefined;
109
+ }, {
110
+ agent_id: string;
111
+ event_type: "llm_call" | "completion" | "heartbeat" | "error" | "custom";
112
+ source: "sdk" | "proxy";
113
+ timestamp: string;
114
+ id?: string | undefined;
115
+ provider?: string | null | undefined;
116
+ model?: string | null | undefined;
117
+ requested_model?: string | null | undefined;
118
+ tokens_in?: number | null | undefined;
119
+ tokens_out?: number | null | undefined;
120
+ tokens_total?: number | null | undefined;
121
+ cost_usd?: number | null | undefined;
122
+ latency_ms?: number | null | undefined;
123
+ status_code?: number | null | undefined;
124
+ error_message?: string | null | undefined;
125
+ tags?: Record<string, unknown> | undefined;
126
+ trace_id?: string | null | undefined;
127
+ span_id?: string | null | undefined;
128
+ parent_span_id?: string | null | undefined;
129
+ }>, "many">;
130
+ }, "strip", z.ZodTypeAny, {
131
+ events: {
132
+ agent_id: string;
133
+ event_type: "llm_call" | "completion" | "heartbeat" | "error" | "custom";
134
+ tags: Record<string, unknown>;
135
+ source: "sdk" | "proxy";
136
+ timestamp: string;
137
+ id?: string | undefined;
138
+ provider?: string | null | undefined;
139
+ model?: string | null | undefined;
140
+ requested_model?: string | null | undefined;
141
+ tokens_in?: number | null | undefined;
142
+ tokens_out?: number | null | undefined;
143
+ tokens_total?: number | null | undefined;
144
+ cost_usd?: number | null | undefined;
145
+ latency_ms?: number | null | undefined;
146
+ status_code?: number | null | undefined;
147
+ error_message?: string | null | undefined;
148
+ trace_id?: string | null | undefined;
149
+ span_id?: string | null | undefined;
150
+ parent_span_id?: string | null | undefined;
151
+ }[];
152
+ }, {
153
+ events: {
154
+ agent_id: string;
155
+ event_type: "llm_call" | "completion" | "heartbeat" | "error" | "custom";
156
+ source: "sdk" | "proxy";
157
+ timestamp: string;
158
+ id?: string | undefined;
159
+ provider?: string | null | undefined;
160
+ model?: string | null | undefined;
161
+ requested_model?: string | null | undefined;
162
+ tokens_in?: number | null | undefined;
163
+ tokens_out?: number | null | undefined;
164
+ tokens_total?: number | null | undefined;
165
+ cost_usd?: number | null | undefined;
166
+ latency_ms?: number | null | undefined;
167
+ status_code?: number | null | undefined;
168
+ error_message?: string | null | undefined;
169
+ tags?: Record<string, unknown> | undefined;
170
+ trace_id?: string | null | undefined;
171
+ span_id?: string | null | undefined;
172
+ parent_span_id?: string | null | undefined;
173
+ }[];
174
+ }>;
175
+ export type BatchEvents = z.infer<typeof BatchEventsSchema>;
176
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,SAAS,uEAAqE,CAAC;AAC5F,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAElD,eAAO,MAAM,MAAM,6BAA2B,CAAC;AAC/C,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAAC;AAE5C,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoB3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
package/dist/types.js ADDED
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BatchEventsSchema = exports.AgentEventSchema = exports.Source = exports.EventType = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.EventType = zod_1.z.enum(["llm_call", "completion", "heartbeat", "error", "custom"]);
6
+ exports.Source = zod_1.z.enum(["sdk", "proxy"]);
7
+ exports.AgentEventSchema = zod_1.z.object({
8
+ id: zod_1.z.string().uuid().optional(),
9
+ agent_id: zod_1.z.string().min(1),
10
+ event_type: exports.EventType,
11
+ provider: zod_1.z.string().nullish(),
12
+ model: zod_1.z.string().nullish(),
13
+ requested_model: zod_1.z.string().nullish(),
14
+ tokens_in: zod_1.z.number().int().nonnegative().nullish(),
15
+ tokens_out: zod_1.z.number().int().nonnegative().nullish(),
16
+ tokens_total: zod_1.z.number().int().nonnegative().nullish(),
17
+ cost_usd: zod_1.z.number().nonnegative().nullish(),
18
+ latency_ms: zod_1.z.number().int().nonnegative().nullish(),
19
+ status_code: zod_1.z.number().int().nullish(),
20
+ error_message: zod_1.z.string().nullish(),
21
+ tags: zod_1.z.record(zod_1.z.unknown()).default({}),
22
+ source: exports.Source,
23
+ timestamp: zod_1.z.string().datetime(),
24
+ trace_id: zod_1.z.string().nullish(),
25
+ span_id: zod_1.z.string().nullish(),
26
+ parent_span_id: zod_1.z.string().nullish(),
27
+ });
28
+ exports.BatchEventsSchema = zod_1.z.object({
29
+ events: zod_1.z.array(exports.AgentEventSchema).min(1).max(500),
30
+ });
31
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,SAAS,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AAG/E,QAAA,MAAM,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AAGlC,QAAA,gBAAgB,GAAG,OAAC,CAAC,MAAM,CAAC;IACvC,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAChC,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,UAAU,EAAE,iBAAS;IACrB,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;IAC9B,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;IAC3B,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;IACrC,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE;IACnD,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE;IACpD,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE;IACtD,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE;IAC5C,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE;IACpD,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;IACvC,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;IACnC,IAAI,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACvC,MAAM,EAAE,cAAM;IACd,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;IAC9B,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;IAC7B,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;CACrC,CAAC,CAAC;AAIU,QAAA,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IACxC,MAAM,EAAE,OAAC,CAAC,KAAK,CAAC,wBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;CAClD,CAAC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,54 @@
1
+ {
2
+ "name": "@agentgazer/shared",
3
+ "version": "0.1.0",
4
+ "description": "Shared types, schemas, and utilities for AgentGazer packages",
5
+ "license": "Apache-2.0",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "default": "./dist/index.js"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist/",
16
+ "README.md",
17
+ "LICENSE"
18
+ ],
19
+ "publishConfig": {
20
+ "access": "public"
21
+ },
22
+ "repository": {
23
+ "type": "git",
24
+ "url": "https://github.com/agentgazer/agentgazer.git",
25
+ "directory": "packages/shared"
26
+ },
27
+ "homepage": "https://github.com/agentgazer/agentgazer/tree/main/packages/shared#readme",
28
+ "bugs": {
29
+ "url": "https://github.com/agentgazer/agentgazer/issues"
30
+ },
31
+ "keywords": [
32
+ "agentgazer",
33
+ "ai-agents",
34
+ "observability",
35
+ "shared",
36
+ "types"
37
+ ],
38
+ "engines": {
39
+ "node": ">=18"
40
+ },
41
+ "scripts": {
42
+ "build": "tsc",
43
+ "dev": "tsc --watch",
44
+ "test": "vitest run",
45
+ "prepublishOnly": "npm run build"
46
+ },
47
+ "dependencies": {
48
+ "zod": "^3.23.0"
49
+ },
50
+ "devDependencies": {
51
+ "typescript": "^5.5.0",
52
+ "vitest": "^4.0.18"
53
+ }
54
+ }