agent-toolbelt 0.1.0 → 0.2.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.
package/dist/index.d.mts CHANGED
@@ -126,6 +126,65 @@ interface ColorPaletteResult {
126
126
  css: string;
127
127
  swatches: string;
128
128
  }
129
+ interface BrandKitColor {
130
+ name: string;
131
+ hex: string;
132
+ hsl: string;
133
+ rgb: string;
134
+ values: {
135
+ h: number;
136
+ s: number;
137
+ l: number;
138
+ };
139
+ }
140
+ interface BrandKitAccessibilityCheck {
141
+ ratio: number;
142
+ rating: string;
143
+ }
144
+ interface BrandKitResult {
145
+ brand: string;
146
+ industry?: string;
147
+ vibes?: string[];
148
+ palette?: {
149
+ primary: BrandKitColor;
150
+ secondary: BrandKitColor;
151
+ accent: BrandKitColor;
152
+ background: BrandKitColor;
153
+ surface: BrandKitColor;
154
+ text: BrandKitColor;
155
+ textMuted: BrandKitColor;
156
+ success: BrandKitColor;
157
+ warning: BrandKitColor;
158
+ error: BrandKitColor;
159
+ };
160
+ typography?: {
161
+ display: {
162
+ family: string;
163
+ weights: string[];
164
+ usage: string;
165
+ };
166
+ body: {
167
+ family: string;
168
+ weights: string[];
169
+ usage: string;
170
+ };
171
+ scale: Record<string, string>;
172
+ googleFontsUrl: string;
173
+ };
174
+ accessibility?: {
175
+ primaryOnBackground: BrandKitAccessibilityCheck;
176
+ textOnBackground: BrandKitAccessibilityCheck;
177
+ primaryOnWhite: BrandKitAccessibilityCheck;
178
+ };
179
+ tokens?: Record<string, unknown>;
180
+ css?: string;
181
+ tailwindConfig?: string;
182
+ fonts?: {
183
+ display: string;
184
+ body: string;
185
+ googleFontsUrl?: string;
186
+ };
187
+ }
129
188
  declare class AgentToolbelt {
130
189
  private apiKey;
131
190
  private baseUrl;
@@ -196,6 +255,14 @@ declare class AgentToolbelt {
196
255
  format?: "hex" | "rgb" | "hsl" | "all";
197
256
  includeShades?: boolean;
198
257
  }): Promise<ColorPaletteResult>;
258
+ /** Generate a full brand kit — color palette, typography, CSS/Tailwind tokens */
259
+ brandKit(input: {
260
+ name: string;
261
+ industry?: string;
262
+ vibe?: string[];
263
+ targetAudience?: string;
264
+ format?: "full" | "tokens" | "css" | "tailwind";
265
+ }): Promise<BrandKitResult>;
199
266
  }
200
267
 
201
- export { type AddressNormalizerResult, AgentToolbelt, type AgentToolbeltOptions, type ColorPaletteResult, type CronBuilderResult, type CsvToJsonResult, type MarkdownConverterResult, type RegexBuilderResult, type SchemaGeneratorResult, type TextExtractorResult, type TokenCountResult, type UrlMetadataResult };
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 };
package/dist/index.d.ts CHANGED
@@ -126,6 +126,65 @@ interface ColorPaletteResult {
126
126
  css: string;
127
127
  swatches: string;
128
128
  }
129
+ interface BrandKitColor {
130
+ name: string;
131
+ hex: string;
132
+ hsl: string;
133
+ rgb: string;
134
+ values: {
135
+ h: number;
136
+ s: number;
137
+ l: number;
138
+ };
139
+ }
140
+ interface BrandKitAccessibilityCheck {
141
+ ratio: number;
142
+ rating: string;
143
+ }
144
+ interface BrandKitResult {
145
+ brand: string;
146
+ industry?: string;
147
+ vibes?: string[];
148
+ palette?: {
149
+ primary: BrandKitColor;
150
+ secondary: BrandKitColor;
151
+ accent: BrandKitColor;
152
+ background: BrandKitColor;
153
+ surface: BrandKitColor;
154
+ text: BrandKitColor;
155
+ textMuted: BrandKitColor;
156
+ success: BrandKitColor;
157
+ warning: BrandKitColor;
158
+ error: BrandKitColor;
159
+ };
160
+ typography?: {
161
+ display: {
162
+ family: string;
163
+ weights: string[];
164
+ usage: string;
165
+ };
166
+ body: {
167
+ family: string;
168
+ weights: string[];
169
+ usage: string;
170
+ };
171
+ scale: Record<string, string>;
172
+ googleFontsUrl: string;
173
+ };
174
+ accessibility?: {
175
+ primaryOnBackground: BrandKitAccessibilityCheck;
176
+ textOnBackground: BrandKitAccessibilityCheck;
177
+ primaryOnWhite: BrandKitAccessibilityCheck;
178
+ };
179
+ tokens?: Record<string, unknown>;
180
+ css?: string;
181
+ tailwindConfig?: string;
182
+ fonts?: {
183
+ display: string;
184
+ body: string;
185
+ googleFontsUrl?: string;
186
+ };
187
+ }
129
188
  declare class AgentToolbelt {
130
189
  private apiKey;
131
190
  private baseUrl;
@@ -196,6 +255,14 @@ declare class AgentToolbelt {
196
255
  format?: "hex" | "rgb" | "hsl" | "all";
197
256
  includeShades?: boolean;
198
257
  }): Promise<ColorPaletteResult>;
258
+ /** Generate a full brand kit — color palette, typography, CSS/Tailwind tokens */
259
+ brandKit(input: {
260
+ name: string;
261
+ industry?: string;
262
+ vibe?: string[];
263
+ targetAudience?: string;
264
+ format?: "full" | "tokens" | "css" | "tailwind";
265
+ }): Promise<BrandKitResult>;
199
266
  }
200
267
 
201
- export { type AddressNormalizerResult, AgentToolbelt, type AgentToolbeltOptions, type ColorPaletteResult, type CronBuilderResult, type CsvToJsonResult, type MarkdownConverterResult, type RegexBuilderResult, type SchemaGeneratorResult, type TextExtractorResult, type TokenCountResult, type UrlMetadataResult };
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 };
package/dist/index.js CHANGED
@@ -90,6 +90,10 @@ var AgentToolbelt = class {
90
90
  colorPalette(input) {
91
91
  return this.call("color-palette", input);
92
92
  }
93
+ /** Generate a full brand kit — color palette, typography, CSS/Tailwind tokens */
94
+ brandKit(input) {
95
+ return this.call("brand-kit", input);
96
+ }
93
97
  };
94
98
  // Annotate the CommonJS export names for ESM import in node:
95
99
  0 && (module.exports = {
package/dist/index.mjs CHANGED
@@ -64,6 +64,10 @@ var AgentToolbelt = class {
64
64
  colorPalette(input) {
65
65
  return this.call("color-palette", input);
66
66
  }
67
+ /** Generate a full brand kit — color palette, typography, CSS/Tailwind tokens */
68
+ brandKit(input) {
69
+ return this.call("brand-kit", input);
70
+ }
67
71
  };
68
72
  export {
69
73
  AgentToolbelt
package/dist/langchain.js CHANGED
@@ -164,6 +164,22 @@ function createLangChainTools(client) {
164
164
  const result = await client.colorPalette({ description, count, format });
165
165
  return JSON.stringify(result);
166
166
  }
167
+ }),
168
+ // ---- Brand Kit ----
169
+ new import_tools.DynamicStructuredTool({
170
+ name: "generate_brand_kit",
171
+ description: "Generate a complete brand kit from a company name, industry, and aesthetic keywords. Use this when a user needs a full visual identity: color palette, typography pairings, and design tokens. Powered by color psychology \u2014 maps industries to appropriate hues (fintech\u2192blues, healthcare\u2192greens, etc.) and vibes to color adjustments (luxurious\u2192desaturated darks, playful\u2192saturated brights). Returns Google Fonts pairings, WCAG accessibility scores, and ready-to-paste CSS custom properties or Tailwind config.",
172
+ schema: import_zod.z.object({
173
+ name: import_zod.z.string().describe("Company or brand name (e.g. 'Solaris Health', 'Bolt Finance')"),
174
+ industry: import_zod.z.string().optional().describe("Industry or sector (e.g. 'fintech', 'healthcare', 'fashion', 'saas', 'food & beverage')"),
175
+ vibe: import_zod.z.array(import_zod.z.string()).optional().describe("Aesthetic keywords (e.g. ['modern', 'minimal'], ['bold', 'playful'], ['luxurious', 'elegant'])"),
176
+ targetAudience: import_zod.z.string().optional().describe("Who the brand is for (e.g. 'enterprise B2B', 'gen-z consumers')"),
177
+ format: import_zod.z.enum(["full", "tokens", "css", "tailwind"]).default("full").describe("Output format: full (everything), tokens (JSON), css (custom properties), tailwind (config)")
178
+ }),
179
+ func: async ({ name, industry, vibe, targetAudience, format }) => {
180
+ const result = await client.brandKit({ name, industry, vibe, targetAudience, format });
181
+ return JSON.stringify(result);
182
+ }
167
183
  })
168
184
  ];
169
185
  }
@@ -140,6 +140,22 @@ function createLangChainTools(client) {
140
140
  const result = await client.colorPalette({ description, count, format });
141
141
  return JSON.stringify(result);
142
142
  }
143
+ }),
144
+ // ---- Brand Kit ----
145
+ new DynamicStructuredTool({
146
+ name: "generate_brand_kit",
147
+ description: "Generate a complete brand kit from a company name, industry, and aesthetic keywords. Use this when a user needs a full visual identity: color palette, typography pairings, and design tokens. Powered by color psychology \u2014 maps industries to appropriate hues (fintech\u2192blues, healthcare\u2192greens, etc.) and vibes to color adjustments (luxurious\u2192desaturated darks, playful\u2192saturated brights). Returns Google Fonts pairings, WCAG accessibility scores, and ready-to-paste CSS custom properties or Tailwind config.",
148
+ schema: z.object({
149
+ name: z.string().describe("Company or brand name (e.g. 'Solaris Health', 'Bolt Finance')"),
150
+ industry: z.string().optional().describe("Industry or sector (e.g. 'fintech', 'healthcare', 'fashion', 'saas', 'food & beverage')"),
151
+ vibe: z.array(z.string()).optional().describe("Aesthetic keywords (e.g. ['modern', 'minimal'], ['bold', 'playful'], ['luxurious', 'elegant'])"),
152
+ targetAudience: z.string().optional().describe("Who the brand is for (e.g. 'enterprise B2B', 'gen-z consumers')"),
153
+ format: z.enum(["full", "tokens", "css", "tailwind"]).default("full").describe("Output format: full (everything), tokens (JSON), css (custom properties), tailwind (config)")
154
+ }),
155
+ func: async ({ name, industry, vibe, targetAudience, format }) => {
156
+ const result = await client.brandKit({ name, industry, vibe, targetAudience, format });
157
+ return JSON.stringify(result);
158
+ }
143
159
  })
144
160
  ];
145
161
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-toolbelt",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
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",