agent-toolbelt 0.2.0 → 0.2.2
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.
- package/README.md +6 -1
- package/dist/index.d.mts +52 -1
- package/dist/index.d.ts +52 -1
- package/dist/index.js +8 -0
- package/dist/index.mjs +8 -0
- package/dist/langchain.js +28 -0
- package/dist/langchain.mjs +28 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Official SDK for [Agent Toolbelt](https://agent-toolbelt-production.up.railway.app) — a suite of focused API tools for AI agents and developers.
|
|
4
4
|
|
|
5
|
-
**Typed client + LangChain tool wrappers** for schema generation, text extraction, token counting, CSV conversion, Markdown conversion, URL metadata, regex building, cron expressions, address normalization,
|
|
5
|
+
**Typed client + LangChain tool wrappers** for schema generation, text extraction, token counting, CSV conversion, Markdown conversion, URL metadata, regex building, cron expressions, address normalization, color palette generation, and brand kit creation.
|
|
6
6
|
|
|
7
7
|
## Install
|
|
8
8
|
|
|
@@ -118,6 +118,9 @@ await client.addressNormalizer({ address: "123 main st apt 4b, springfield, il 6
|
|
|
118
118
|
|
|
119
119
|
// Generate color palettes from descriptions or hex colors
|
|
120
120
|
await client.colorPalette({ description: "calm fintech blue", count: 5 });
|
|
121
|
+
|
|
122
|
+
// Generate a full brand kit — colors, typography, CSS/Tailwind tokens
|
|
123
|
+
await client.brandKit({ name: "Solaris Health", industry: "healthcare", vibe: ["modern", "trustworthy"], format: "full" });
|
|
121
124
|
```
|
|
122
125
|
|
|
123
126
|
---
|
|
@@ -159,6 +162,7 @@ const result = await agent.invoke({
|
|
|
159
162
|
| `build_cron` | Convert schedule descriptions to cron expressions |
|
|
160
163
|
| `normalize_address` | Normalize US addresses to USPS format |
|
|
161
164
|
| `generate_color_palette` | Generate color palettes with WCAG scores and CSS variables |
|
|
165
|
+
| `generate_brand_kit` | Generate full brand kit — colors, typography, CSS/Tailwind tokens |
|
|
162
166
|
|
|
163
167
|
---
|
|
164
168
|
|
|
@@ -176,6 +180,7 @@ const result = await agent.invoke({
|
|
|
176
180
|
| `cron-builder` | $0.0005 / call |
|
|
177
181
|
| `address-normalizer` | $0.0005 / call |
|
|
178
182
|
| `color-palette` | $0.0005 / call |
|
|
183
|
+
| `brand-kit` | $0.001 / call |
|
|
179
184
|
|
|
180
185
|
## License
|
|
181
186
|
|
package/dist/index.d.mts
CHANGED
|
@@ -185,6 +185,45 @@ interface BrandKitResult {
|
|
|
185
185
|
googleFontsUrl?: string;
|
|
186
186
|
};
|
|
187
187
|
}
|
|
188
|
+
interface MeetingActionItem {
|
|
189
|
+
id: number;
|
|
190
|
+
owner: string;
|
|
191
|
+
task: string;
|
|
192
|
+
deadline?: string;
|
|
193
|
+
priority: "high" | "medium" | "low";
|
|
194
|
+
context?: string;
|
|
195
|
+
}
|
|
196
|
+
interface MeetingActionItemsResult {
|
|
197
|
+
meetingTitle: string;
|
|
198
|
+
actionItems: MeetingActionItem[];
|
|
199
|
+
actionItemCount: number;
|
|
200
|
+
summary?: string;
|
|
201
|
+
decisions?: string[];
|
|
202
|
+
}
|
|
203
|
+
interface ImageMetadataStripperResult {
|
|
204
|
+
image: string;
|
|
205
|
+
outputFormat: string;
|
|
206
|
+
original: {
|
|
207
|
+
sizeBytes: number;
|
|
208
|
+
format?: string;
|
|
209
|
+
width?: number;
|
|
210
|
+
height?: number;
|
|
211
|
+
channels?: number;
|
|
212
|
+
hasExif?: boolean;
|
|
213
|
+
hasIcc?: boolean;
|
|
214
|
+
hasIptc?: boolean;
|
|
215
|
+
hasXmp?: boolean;
|
|
216
|
+
orientation?: number;
|
|
217
|
+
density?: number;
|
|
218
|
+
};
|
|
219
|
+
output: {
|
|
220
|
+
sizeBytes: number;
|
|
221
|
+
reductionBytes: number;
|
|
222
|
+
reductionPercent: number;
|
|
223
|
+
};
|
|
224
|
+
metadataStripped: boolean;
|
|
225
|
+
strippedFields: string[];
|
|
226
|
+
}
|
|
188
227
|
declare class AgentToolbelt {
|
|
189
228
|
private apiKey;
|
|
190
229
|
private baseUrl;
|
|
@@ -255,6 +294,18 @@ declare class AgentToolbelt {
|
|
|
255
294
|
format?: "hex" | "rgb" | "hsl" | "all";
|
|
256
295
|
includeShades?: boolean;
|
|
257
296
|
}): Promise<ColorPaletteResult>;
|
|
297
|
+
/** Extract action items, decisions, and summary from meeting notes or transcripts */
|
|
298
|
+
meetingActionItems(input: {
|
|
299
|
+
notes: string;
|
|
300
|
+
format?: "action_items_only" | "full";
|
|
301
|
+
participants?: string[];
|
|
302
|
+
}): Promise<MeetingActionItemsResult>;
|
|
303
|
+
/** Strip EXIF, GPS, ICC, IPTC, and XMP metadata from a base64-encoded image */
|
|
304
|
+
imageMetadataStripper(input: {
|
|
305
|
+
image: string;
|
|
306
|
+
format?: "jpeg" | "png" | "webp" | "preserve";
|
|
307
|
+
quality?: number;
|
|
308
|
+
}): Promise<ImageMetadataStripperResult>;
|
|
258
309
|
/** Generate a full brand kit — color palette, typography, CSS/Tailwind tokens */
|
|
259
310
|
brandKit(input: {
|
|
260
311
|
name: string;
|
|
@@ -265,4 +316,4 @@ declare class AgentToolbelt {
|
|
|
265
316
|
}): Promise<BrandKitResult>;
|
|
266
317
|
}
|
|
267
318
|
|
|
268
|
-
export { type AddressNormalizerResult, AgentToolbelt, type AgentToolbeltOptions, type BrandKitResult, type ColorPaletteResult, type CronBuilderResult, type CsvToJsonResult, type MarkdownConverterResult, type RegexBuilderResult, type SchemaGeneratorResult, type TextExtractorResult, type TokenCountResult, type UrlMetadataResult };
|
|
319
|
+
export { type AddressNormalizerResult, AgentToolbelt, type AgentToolbeltOptions, type BrandKitResult, type ColorPaletteResult, type CronBuilderResult, type CsvToJsonResult, type ImageMetadataStripperResult, type MarkdownConverterResult, type MeetingActionItem, type MeetingActionItemsResult, type RegexBuilderResult, type SchemaGeneratorResult, type TextExtractorResult, type TokenCountResult, type UrlMetadataResult };
|
package/dist/index.d.ts
CHANGED
|
@@ -185,6 +185,45 @@ interface BrandKitResult {
|
|
|
185
185
|
googleFontsUrl?: string;
|
|
186
186
|
};
|
|
187
187
|
}
|
|
188
|
+
interface MeetingActionItem {
|
|
189
|
+
id: number;
|
|
190
|
+
owner: string;
|
|
191
|
+
task: string;
|
|
192
|
+
deadline?: string;
|
|
193
|
+
priority: "high" | "medium" | "low";
|
|
194
|
+
context?: string;
|
|
195
|
+
}
|
|
196
|
+
interface MeetingActionItemsResult {
|
|
197
|
+
meetingTitle: string;
|
|
198
|
+
actionItems: MeetingActionItem[];
|
|
199
|
+
actionItemCount: number;
|
|
200
|
+
summary?: string;
|
|
201
|
+
decisions?: string[];
|
|
202
|
+
}
|
|
203
|
+
interface ImageMetadataStripperResult {
|
|
204
|
+
image: string;
|
|
205
|
+
outputFormat: string;
|
|
206
|
+
original: {
|
|
207
|
+
sizeBytes: number;
|
|
208
|
+
format?: string;
|
|
209
|
+
width?: number;
|
|
210
|
+
height?: number;
|
|
211
|
+
channels?: number;
|
|
212
|
+
hasExif?: boolean;
|
|
213
|
+
hasIcc?: boolean;
|
|
214
|
+
hasIptc?: boolean;
|
|
215
|
+
hasXmp?: boolean;
|
|
216
|
+
orientation?: number;
|
|
217
|
+
density?: number;
|
|
218
|
+
};
|
|
219
|
+
output: {
|
|
220
|
+
sizeBytes: number;
|
|
221
|
+
reductionBytes: number;
|
|
222
|
+
reductionPercent: number;
|
|
223
|
+
};
|
|
224
|
+
metadataStripped: boolean;
|
|
225
|
+
strippedFields: string[];
|
|
226
|
+
}
|
|
188
227
|
declare class AgentToolbelt {
|
|
189
228
|
private apiKey;
|
|
190
229
|
private baseUrl;
|
|
@@ -255,6 +294,18 @@ declare class AgentToolbelt {
|
|
|
255
294
|
format?: "hex" | "rgb" | "hsl" | "all";
|
|
256
295
|
includeShades?: boolean;
|
|
257
296
|
}): Promise<ColorPaletteResult>;
|
|
297
|
+
/** Extract action items, decisions, and summary from meeting notes or transcripts */
|
|
298
|
+
meetingActionItems(input: {
|
|
299
|
+
notes: string;
|
|
300
|
+
format?: "action_items_only" | "full";
|
|
301
|
+
participants?: string[];
|
|
302
|
+
}): Promise<MeetingActionItemsResult>;
|
|
303
|
+
/** Strip EXIF, GPS, ICC, IPTC, and XMP metadata from a base64-encoded image */
|
|
304
|
+
imageMetadataStripper(input: {
|
|
305
|
+
image: string;
|
|
306
|
+
format?: "jpeg" | "png" | "webp" | "preserve";
|
|
307
|
+
quality?: number;
|
|
308
|
+
}): Promise<ImageMetadataStripperResult>;
|
|
258
309
|
/** Generate a full brand kit — color palette, typography, CSS/Tailwind tokens */
|
|
259
310
|
brandKit(input: {
|
|
260
311
|
name: string;
|
|
@@ -265,4 +316,4 @@ declare class AgentToolbelt {
|
|
|
265
316
|
}): Promise<BrandKitResult>;
|
|
266
317
|
}
|
|
267
318
|
|
|
268
|
-
export { type AddressNormalizerResult, AgentToolbelt, type AgentToolbeltOptions, type BrandKitResult, type ColorPaletteResult, type CronBuilderResult, type CsvToJsonResult, type MarkdownConverterResult, type RegexBuilderResult, type SchemaGeneratorResult, type TextExtractorResult, type TokenCountResult, type UrlMetadataResult };
|
|
319
|
+
export { type AddressNormalizerResult, AgentToolbelt, type AgentToolbeltOptions, type BrandKitResult, type ColorPaletteResult, type CronBuilderResult, type CsvToJsonResult, type ImageMetadataStripperResult, type MarkdownConverterResult, type MeetingActionItem, type MeetingActionItemsResult, type RegexBuilderResult, type SchemaGeneratorResult, type TextExtractorResult, type TokenCountResult, type UrlMetadataResult };
|
package/dist/index.js
CHANGED
|
@@ -90,6 +90,14 @@ var AgentToolbelt = class {
|
|
|
90
90
|
colorPalette(input) {
|
|
91
91
|
return this.call("color-palette", input);
|
|
92
92
|
}
|
|
93
|
+
/** Extract action items, decisions, and summary from meeting notes or transcripts */
|
|
94
|
+
meetingActionItems(input) {
|
|
95
|
+
return this.call("meeting-action-items", input);
|
|
96
|
+
}
|
|
97
|
+
/** Strip EXIF, GPS, ICC, IPTC, and XMP metadata from a base64-encoded image */
|
|
98
|
+
imageMetadataStripper(input) {
|
|
99
|
+
return this.call("image-metadata-stripper", input);
|
|
100
|
+
}
|
|
93
101
|
/** Generate a full brand kit — color palette, typography, CSS/Tailwind tokens */
|
|
94
102
|
brandKit(input) {
|
|
95
103
|
return this.call("brand-kit", input);
|
package/dist/index.mjs
CHANGED
|
@@ -64,6 +64,14 @@ var AgentToolbelt = class {
|
|
|
64
64
|
colorPalette(input) {
|
|
65
65
|
return this.call("color-palette", input);
|
|
66
66
|
}
|
|
67
|
+
/** Extract action items, decisions, and summary from meeting notes or transcripts */
|
|
68
|
+
meetingActionItems(input) {
|
|
69
|
+
return this.call("meeting-action-items", input);
|
|
70
|
+
}
|
|
71
|
+
/** Strip EXIF, GPS, ICC, IPTC, and XMP metadata from a base64-encoded image */
|
|
72
|
+
imageMetadataStripper(input) {
|
|
73
|
+
return this.call("image-metadata-stripper", input);
|
|
74
|
+
}
|
|
67
75
|
/** Generate a full brand kit — color palette, typography, CSS/Tailwind tokens */
|
|
68
76
|
brandKit(input) {
|
|
69
77
|
return this.call("brand-kit", input);
|
package/dist/langchain.js
CHANGED
|
@@ -165,6 +165,34 @@ function createLangChainTools(client) {
|
|
|
165
165
|
return JSON.stringify(result);
|
|
166
166
|
}
|
|
167
167
|
}),
|
|
168
|
+
// ---- Meeting Action Items ----
|
|
169
|
+
new import_tools.DynamicStructuredTool({
|
|
170
|
+
name: "extract_meeting_action_items",
|
|
171
|
+
description: "Extract structured action items, key decisions, and a summary from meeting notes or transcripts. Use this after a meeting to automatically generate a task list with owners, deadlines, and priorities. Works with raw transcripts, bullet-point notes, or any free-form meeting text. Returns each action item with the responsible person, what needs to be done, deadline (if mentioned), and priority level. The 'full' format also includes a meeting summary and list of decisions made.",
|
|
172
|
+
schema: import_zod.z.object({
|
|
173
|
+
notes: import_zod.z.string().describe("Meeting notes or transcript to extract action items from"),
|
|
174
|
+
format: import_zod.z.enum(["action_items_only", "full"]).default("full").describe("'full' includes summary and decisions; 'action_items_only' returns just the task list"),
|
|
175
|
+
participants: import_zod.z.array(import_zod.z.string()).optional().describe("Known participant names to help with owner attribution")
|
|
176
|
+
}),
|
|
177
|
+
func: async ({ notes, format, participants }) => {
|
|
178
|
+
const result = await client.meetingActionItems({ notes, format, participants });
|
|
179
|
+
return JSON.stringify(result);
|
|
180
|
+
}
|
|
181
|
+
}),
|
|
182
|
+
// ---- Image Metadata Stripper ----
|
|
183
|
+
new import_tools.DynamicStructuredTool({
|
|
184
|
+
name: "strip_image_metadata",
|
|
185
|
+
description: "Strip EXIF, GPS location, IPTC, XMP, and ICC metadata from an image for privacy protection. Use this before uploading or sharing images to remove sensitive embedded data like GPS coordinates, camera model, timestamps, copyright notices, and editing history. Accepts base64-encoded JPEG, PNG, WebP, or TIFF images. Returns the cleaned image as base64 along with a report of what was removed and the file size reduction.",
|
|
186
|
+
schema: import_zod.z.object({
|
|
187
|
+
image: import_zod.z.string().describe("Base64-encoded image data (JPEG, PNG, WebP, or TIFF). Do not include the data URI prefix."),
|
|
188
|
+
format: import_zod.z.enum(["jpeg", "png", "webp", "preserve"]).default("preserve").describe("Output format. 'preserve' keeps the original format."),
|
|
189
|
+
quality: import_zod.z.number().int().min(1).max(100).default(90).describe("Output quality for lossy formats (1-100)")
|
|
190
|
+
}),
|
|
191
|
+
func: async ({ image, format, quality }) => {
|
|
192
|
+
const result = await client.imageMetadataStripper({ image, format, quality });
|
|
193
|
+
return JSON.stringify(result);
|
|
194
|
+
}
|
|
195
|
+
}),
|
|
168
196
|
// ---- Brand Kit ----
|
|
169
197
|
new import_tools.DynamicStructuredTool({
|
|
170
198
|
name: "generate_brand_kit",
|
package/dist/langchain.mjs
CHANGED
|
@@ -141,6 +141,34 @@ function createLangChainTools(client) {
|
|
|
141
141
|
return JSON.stringify(result);
|
|
142
142
|
}
|
|
143
143
|
}),
|
|
144
|
+
// ---- Meeting Action Items ----
|
|
145
|
+
new DynamicStructuredTool({
|
|
146
|
+
name: "extract_meeting_action_items",
|
|
147
|
+
description: "Extract structured action items, key decisions, and a summary from meeting notes or transcripts. Use this after a meeting to automatically generate a task list with owners, deadlines, and priorities. Works with raw transcripts, bullet-point notes, or any free-form meeting text. Returns each action item with the responsible person, what needs to be done, deadline (if mentioned), and priority level. The 'full' format also includes a meeting summary and list of decisions made.",
|
|
148
|
+
schema: z.object({
|
|
149
|
+
notes: z.string().describe("Meeting notes or transcript to extract action items from"),
|
|
150
|
+
format: z.enum(["action_items_only", "full"]).default("full").describe("'full' includes summary and decisions; 'action_items_only' returns just the task list"),
|
|
151
|
+
participants: z.array(z.string()).optional().describe("Known participant names to help with owner attribution")
|
|
152
|
+
}),
|
|
153
|
+
func: async ({ notes, format, participants }) => {
|
|
154
|
+
const result = await client.meetingActionItems({ notes, format, participants });
|
|
155
|
+
return JSON.stringify(result);
|
|
156
|
+
}
|
|
157
|
+
}),
|
|
158
|
+
// ---- Image Metadata Stripper ----
|
|
159
|
+
new DynamicStructuredTool({
|
|
160
|
+
name: "strip_image_metadata",
|
|
161
|
+
description: "Strip EXIF, GPS location, IPTC, XMP, and ICC metadata from an image for privacy protection. Use this before uploading or sharing images to remove sensitive embedded data like GPS coordinates, camera model, timestamps, copyright notices, and editing history. Accepts base64-encoded JPEG, PNG, WebP, or TIFF images. Returns the cleaned image as base64 along with a report of what was removed and the file size reduction.",
|
|
162
|
+
schema: z.object({
|
|
163
|
+
image: z.string().describe("Base64-encoded image data (JPEG, PNG, WebP, or TIFF). Do not include the data URI prefix."),
|
|
164
|
+
format: z.enum(["jpeg", "png", "webp", "preserve"]).default("preserve").describe("Output format. 'preserve' keeps the original format."),
|
|
165
|
+
quality: z.number().int().min(1).max(100).default(90).describe("Output quality for lossy formats (1-100)")
|
|
166
|
+
}),
|
|
167
|
+
func: async ({ image, format, quality }) => {
|
|
168
|
+
const result = await client.imageMetadataStripper({ image, format, quality });
|
|
169
|
+
return JSON.stringify(result);
|
|
170
|
+
}
|
|
171
|
+
}),
|
|
144
172
|
// ---- Brand Kit ----
|
|
145
173
|
new DynamicStructuredTool({
|
|
146
174
|
name: "generate_brand_kit",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agent-toolbelt",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "Official SDK for Agent Toolbelt — typed API client and LangChain tool wrappers for schema generation, text extraction, token counting, CSV conversion, and more.",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|