@vibe-agent-toolkit/vat-example-cat-agents 0.1.2-rc.4

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 (54) hide show
  1. package/README.md +697 -0
  2. package/dist/conversational-assistant/breed-advisor.d.ts +24 -0
  3. package/dist/conversational-assistant/breed-advisor.d.ts.map +1 -0
  4. package/dist/conversational-assistant/breed-advisor.js +390 -0
  5. package/dist/conversational-assistant/breed-advisor.js.map +1 -0
  6. package/dist/conversational-assistant/breed-knowledge.d.ts +42 -0
  7. package/dist/conversational-assistant/breed-knowledge.d.ts.map +1 -0
  8. package/dist/conversational-assistant/breed-knowledge.js +335 -0
  9. package/dist/conversational-assistant/breed-knowledge.js.map +1 -0
  10. package/dist/external-event-integrator/human-approval.d.ts +207 -0
  11. package/dist/external-event-integrator/human-approval.d.ts.map +1 -0
  12. package/dist/external-event-integrator/human-approval.js +387 -0
  13. package/dist/external-event-integrator/human-approval.js.map +1 -0
  14. package/dist/index.d.ts +11 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +19 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/mcp-collections.d.ts +30 -0
  19. package/dist/mcp-collections.d.ts.map +1 -0
  20. package/dist/mcp-collections.js +58 -0
  21. package/dist/mcp-collections.js.map +1 -0
  22. package/dist/one-shot-llm-analyzer/description-parser.d.ts +55 -0
  23. package/dist/one-shot-llm-analyzer/description-parser.d.ts.map +1 -0
  24. package/dist/one-shot-llm-analyzer/description-parser.js +349 -0
  25. package/dist/one-shot-llm-analyzer/description-parser.js.map +1 -0
  26. package/dist/one-shot-llm-analyzer/haiku-generator.d.ts +157 -0
  27. package/dist/one-shot-llm-analyzer/haiku-generator.d.ts.map +1 -0
  28. package/dist/one-shot-llm-analyzer/haiku-generator.js +66 -0
  29. package/dist/one-shot-llm-analyzer/haiku-generator.js.map +1 -0
  30. package/dist/one-shot-llm-analyzer/name-generator.d.ts +157 -0
  31. package/dist/one-shot-llm-analyzer/name-generator.d.ts.map +1 -0
  32. package/dist/one-shot-llm-analyzer/name-generator.js +121 -0
  33. package/dist/one-shot-llm-analyzer/name-generator.js.map +1 -0
  34. package/dist/one-shot-llm-analyzer/photo-analyzer.d.ts +57 -0
  35. package/dist/one-shot-llm-analyzer/photo-analyzer.d.ts.map +1 -0
  36. package/dist/one-shot-llm-analyzer/photo-analyzer.js +288 -0
  37. package/dist/one-shot-llm-analyzer/photo-analyzer.js.map +1 -0
  38. package/dist/pure-function-tool/haiku-validator.d.ts +27 -0
  39. package/dist/pure-function-tool/haiku-validator.d.ts.map +1 -0
  40. package/dist/pure-function-tool/haiku-validator.js +148 -0
  41. package/dist/pure-function-tool/haiku-validator.js.map +1 -0
  42. package/dist/pure-function-tool/name-validator.d.ts +203 -0
  43. package/dist/pure-function-tool/name-validator.d.ts.map +1 -0
  44. package/dist/pure-function-tool/name-validator.js +244 -0
  45. package/dist/pure-function-tool/name-validator.js.map +1 -0
  46. package/dist/types/schemas.d.ts +612 -0
  47. package/dist/types/schemas.d.ts.map +1 -0
  48. package/dist/types/schemas.js +127 -0
  49. package/dist/types/schemas.js.map +1 -0
  50. package/dist/utils/color-extraction.d.ts +14 -0
  51. package/dist/utils/color-extraction.d.ts.map +1 -0
  52. package/dist/utils/color-extraction.js +45 -0
  53. package/dist/utils/color-extraction.js.map +1 -0
  54. package/package.json +63 -0
@@ -0,0 +1,349 @@
1
+ import { executeLLMAnalyzer } from '@vibe-agent-toolkit/agent-runtime';
2
+ import { LLM_INVALID_OUTPUT, RESULT_ERROR } from '@vibe-agent-toolkit/agent-schema';
3
+ import { z } from 'zod';
4
+ import { CatCharacteristicsSchema } from '../types/schemas.js';
5
+ // Extract fur color from text descriptions
6
+ import { extractFurColor as extractFurColorUtil } from '../utils/color-extraction.js';
7
+ /**
8
+ * Input schema for description parsing
9
+ */
10
+ export const DescriptionParserInputSchema = z.object({
11
+ description: z.string().describe('Text description of the cat (structured or unstructured)'),
12
+ mockable: z.boolean().optional().describe('Whether to use mock mode (default: true)'),
13
+ });
14
+ /**
15
+ * Parses a text description of a cat and extracts characteristics.
16
+ *
17
+ * Archetype: One-Shot LLM Analyzer
18
+ *
19
+ * This would typically call an LLM to parse unstructured text.
20
+ * For now, it generates mock data based on keyword extraction.
21
+ *
22
+ * Handles both structured descriptions and "word vomit":
23
+ * - "Orange tabby, playful, loves boxes"
24
+ * - "So there's this cat right and he's like super orange and has stripes and he knocks stuff off tables"
25
+ *
26
+ * @param description - Text description of the cat (structured or unstructured)
27
+ * @param options - Configuration options
28
+ * @returns Cat characteristics extracted from the description
29
+ */
30
+ export async function parseDescription(description, options = {}) {
31
+ const { mockable = true } = options;
32
+ if (mockable) {
33
+ return mockParseDescription(description);
34
+ }
35
+ throw new Error('Real LLM parsing not implemented yet. Use mockable: true for testing.');
36
+ }
37
+ /**
38
+ * Mock implementation that extracts characteristics from text using keyword matching.
39
+ */
40
+ function mockParseDescription(description) {
41
+ const lowerDesc = description.toLowerCase();
42
+ // Extract physical characteristics
43
+ const furColor = extractFurColor(lowerDesc);
44
+ const furPattern = extractFurPattern(lowerDesc);
45
+ const eyeColor = extractEyeColor(lowerDesc);
46
+ const breed = extractBreed(lowerDesc);
47
+ const size = extractSize(lowerDesc);
48
+ // Extract behavioral characteristics
49
+ const personality = extractPersonality(lowerDesc);
50
+ const quirks = extractQuirks(lowerDesc);
51
+ const vocalizations = extractVocalizations(lowerDesc);
52
+ // Extract metadata
53
+ const age = extractAge(lowerDesc);
54
+ const origin = extractOrigin(lowerDesc);
55
+ const occupation = extractOccupation(lowerDesc);
56
+ return {
57
+ physical: {
58
+ furColor,
59
+ furPattern,
60
+ eyeColor,
61
+ breed,
62
+ size,
63
+ },
64
+ behavioral: {
65
+ personality,
66
+ quirks,
67
+ vocalizations,
68
+ },
69
+ metadata: age || origin || occupation ? {
70
+ age,
71
+ origin,
72
+ occupation,
73
+ } : undefined,
74
+ description,
75
+ };
76
+ }
77
+ function extractFurColor(text) {
78
+ return extractFurColorUtil(text, 'Mixed colors');
79
+ }
80
+ function extractFurPattern(text) {
81
+ if (text.includes('tabby') || text.includes('stripe')) {
82
+ return 'Tabby';
83
+ }
84
+ if (text.includes('spot')) {
85
+ return 'Spotted';
86
+ }
87
+ if (text.includes('tuxedo')) {
88
+ return 'Tuxedo';
89
+ }
90
+ if (text.includes('point') && (text.includes('siamese') || text.includes('himalayan'))) {
91
+ return 'Colorpoint';
92
+ }
93
+ if (text.includes('bicolor') || text.includes('two-tone')) {
94
+ return 'Bicolor';
95
+ }
96
+ return undefined;
97
+ }
98
+ function extractEyeColor(text) {
99
+ if (text.includes('blue eye') || text.includes('blue-eye')) {
100
+ return 'Blue';
101
+ }
102
+ if (text.includes('green eye') || text.includes('green-eye')) {
103
+ return 'Green';
104
+ }
105
+ if (text.includes('amber eye') || text.includes('gold eye') || text.includes('yellow eye')) {
106
+ return 'Amber';
107
+ }
108
+ if (text.includes('copper eye')) {
109
+ return 'Copper';
110
+ }
111
+ return undefined;
112
+ }
113
+ function extractBreed(text) {
114
+ const breeds = [
115
+ 'persian', 'siamese', 'maine coon', 'bengal', 'ragdoll',
116
+ 'sphynx', 'british shorthair', 'scottish fold', 'abyssinian',
117
+ 'russian blue', 'birman', 'himalayan', 'burmese', 'exotic shorthair',
118
+ ];
119
+ for (const breed of breeds) {
120
+ if (text.includes(breed)) {
121
+ return breed.split(' ').map((w) => w.charAt(0).toUpperCase() + w.slice(1)).join(' ');
122
+ }
123
+ }
124
+ return undefined;
125
+ }
126
+ function extractSize(text) {
127
+ if (text.includes('tiny') || text.includes('kitten') || text.includes('teacup')) {
128
+ return 'tiny';
129
+ }
130
+ if (text.includes('small') || text.includes('petite')) {
131
+ return 'small';
132
+ }
133
+ if (text.includes('huge') || text.includes('giant') || text.includes('massive')) {
134
+ return 'extra-large';
135
+ }
136
+ if (text.includes('large') || text.includes('big')) {
137
+ return 'large';
138
+ }
139
+ if (text.includes('medium')) {
140
+ return 'medium';
141
+ }
142
+ return undefined;
143
+ }
144
+ function extractPersonality(text) {
145
+ const personality = [];
146
+ // Positive traits
147
+ if (text.includes('playful')) {
148
+ personality.push('Playful');
149
+ }
150
+ if (text.includes('friendly') || text.includes('affectionate')) {
151
+ personality.push('Friendly');
152
+ }
153
+ if (text.includes('curious')) {
154
+ personality.push('Curious');
155
+ }
156
+ if (text.includes('energetic') || text.includes('active')) {
157
+ personality.push('Energetic');
158
+ }
159
+ if (text.includes('calm') || text.includes('peaceful')) {
160
+ personality.push('Calm');
161
+ }
162
+ if (text.includes('intelligent') || text.includes('smart')) {
163
+ personality.push('Intelligent');
164
+ }
165
+ // Negative/quirky traits
166
+ if (text.includes('grumpy') || text.includes('cranky')) {
167
+ personality.push('Grumpy');
168
+ }
169
+ if (text.includes('lazy') || text.includes('sleepy')) {
170
+ personality.push('Lazy');
171
+ }
172
+ if (text.includes('aloof') || text.includes('independent')) {
173
+ personality.push('Aloof');
174
+ }
175
+ if (text.includes('demanding') || text.includes('bossy')) {
176
+ personality.push('Demanding');
177
+ }
178
+ if (text.includes('shy') || text.includes('timid')) {
179
+ personality.push('Shy');
180
+ }
181
+ if (text.includes('mischievous') || text.includes('trouble')) {
182
+ personality.push('Mischievous');
183
+ }
184
+ // Default if nothing found
185
+ if (personality.length === 0) {
186
+ personality.push('Mysterious', 'Independent');
187
+ }
188
+ return personality;
189
+ }
190
+ function extractQuirks(text) {
191
+ const quirks = [];
192
+ if (text.includes('knock') && (text.includes('stuff') || text.includes('things') || text.includes('off'))) {
193
+ quirks.push('Knocks things off tables');
194
+ }
195
+ if (text.includes('box') || text.includes('boxes')) {
196
+ quirks.push('Loves sitting in boxes');
197
+ }
198
+ if (text.includes('zoomies') || text.includes('running around') || text.includes('crazy')) {
199
+ quirks.push('Gets the zoomies at 3am');
200
+ }
201
+ if (text.includes('water') && !text.includes("doesn't like") && !text.includes('hates')) {
202
+ quirks.push('Fascinated by running water');
203
+ }
204
+ if (text.includes('fetch') || text.includes('retrieves')) {
205
+ quirks.push('Plays fetch like a dog');
206
+ }
207
+ if (text.includes('chirp') || text.includes('trill')) {
208
+ quirks.push('Makes chirping sounds');
209
+ }
210
+ if (text.includes('cross-eye') || text.includes('derp')) {
211
+ quirks.push('Adorably cross-eyed');
212
+ }
213
+ if (text.includes('toe') && text.includes('extra')) {
214
+ quirks.push('Extra toes (polydactyl)');
215
+ }
216
+ return quirks.length > 0 ? quirks : undefined;
217
+ }
218
+ function extractVocalizations(text) {
219
+ const vocalizations = [];
220
+ if (text.includes('meow') || text.includes('mew')) {
221
+ vocalizations.push('Meows');
222
+ }
223
+ if (text.includes('purr')) {
224
+ vocalizations.push('Purrs');
225
+ }
226
+ if (text.includes('chirp') || text.includes('trill')) {
227
+ vocalizations.push('Chirps');
228
+ }
229
+ if (text.includes('hiss')) {
230
+ vocalizations.push('Hisses');
231
+ }
232
+ if (text.includes('yowl') || text.includes('howl')) {
233
+ vocalizations.push('Yowls');
234
+ }
235
+ if (text.includes('silent') || text.includes('quiet')) {
236
+ vocalizations.push('Usually silent');
237
+ }
238
+ if (text.includes('chatty') || text.includes('talkative') || text.includes('vocal')) {
239
+ vocalizations.push('Very vocal', 'Meows frequently');
240
+ }
241
+ return vocalizations.length > 0 ? vocalizations : undefined;
242
+ }
243
+ function extractAge(text) {
244
+ // Try to find specific age patterns like "5 years old" or "2yo" FIRST
245
+ // This must come before general keywords to avoid matching "5 year old" as "senior (10+ years)"
246
+ // Simplified regex to avoid backtracking - non-capturing group
247
+ // eslint-disable-next-line sonarjs/slow-regex
248
+ const ageRegex = /(\d+)\s*(?:year|yo)/;
249
+ const ageMatch = ageRegex.exec(text);
250
+ if (ageMatch) {
251
+ return `${ageMatch[1]} years old`;
252
+ }
253
+ if (text.includes('kitten')) {
254
+ return 'Kitten (under 1 year)';
255
+ }
256
+ if (text.includes('young')) {
257
+ return '1-3 years';
258
+ }
259
+ if (text.includes('adult')) {
260
+ return '3-10 years';
261
+ }
262
+ if (text.includes('senior') || text.includes('elderly')) {
263
+ return 'Senior (10+ years)';
264
+ }
265
+ return undefined;
266
+ }
267
+ function extractOrigin(text) {
268
+ if (text.includes('rescue') || text.includes('adopted') || text.includes('shelter')) {
269
+ return 'Rescue/Shelter';
270
+ }
271
+ if (text.includes('stray')) {
272
+ return 'Former stray';
273
+ }
274
+ if (text.includes('breeder')) {
275
+ return 'From breeder';
276
+ }
277
+ if (text.includes('street') || text.includes('alley')) {
278
+ return 'Street cat';
279
+ }
280
+ return undefined;
281
+ }
282
+ function extractOccupation(text) {
283
+ if (text.includes('mouser') || text.includes('catches mice') || text.includes('hunter')) {
284
+ return 'Professional mouser';
285
+ }
286
+ if (text.includes('office') || text.includes('workplace')) {
287
+ return 'Office cat';
288
+ }
289
+ if (text.includes('barn')) {
290
+ return 'Barn cat';
291
+ }
292
+ if (text.includes('therapy')) {
293
+ return 'Therapy cat';
294
+ }
295
+ if (text.includes('instagram') || text.includes('influencer') || text.includes('famous')) {
296
+ return 'Social media influencer';
297
+ }
298
+ if (text.includes('lazy') && text.includes('job')) {
299
+ return 'Professional napper';
300
+ }
301
+ return undefined;
302
+ }
303
+ /**
304
+ * Description parser agent
305
+ *
306
+ * Captain Obvious is a cat who states the obvious and extracts characteristics literally.
307
+ * He has an uncanny ability to parse both structured descriptions and complete "word vomit",
308
+ * extracting every detail with earnest precision.
309
+ *
310
+ * In mock mode, uses keyword extraction. In real mode, uses LLM to parse natural language.
311
+ */
312
+ export const descriptionParserAgent = {
313
+ name: 'description-parser',
314
+ manifest: {
315
+ name: 'description-parser',
316
+ version: '1.0.0',
317
+ description: 'Parses text descriptions and extracts structured cat characteristics',
318
+ archetype: 'one-shot-llm-analyzer',
319
+ metadata: {
320
+ author: 'Captain Obvious',
321
+ personality: 'States the obvious, extracts characteristics literally',
322
+ handlesUnstructured: true,
323
+ model: 'claude-3-haiku',
324
+ },
325
+ },
326
+ execute: async (input) => {
327
+ // Validate input
328
+ const parsed = DescriptionParserInputSchema.safeParse(input);
329
+ if (!parsed.success) {
330
+ return {
331
+ result: { status: RESULT_ERROR, error: LLM_INVALID_OUTPUT },
332
+ };
333
+ }
334
+ const { description, mockable = true } = parsed.data;
335
+ return executeLLMAnalyzer({
336
+ mockable,
337
+ mockFn: () => mockParseDescription(description),
338
+ realFn: async () => {
339
+ throw new Error('Real LLM parsing not implemented yet. Use mockable: true for testing.');
340
+ },
341
+ parseOutput: (raw) => {
342
+ const parsed = JSON.parse(raw);
343
+ return CatCharacteristicsSchema.parse(parsed);
344
+ },
345
+ errorContext: 'Description parsing',
346
+ });
347
+ },
348
+ };
349
+ //# sourceMappingURL=description-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"description-parser.js","sourceRoot":"","sources":["../../src/one-shot-llm-analyzer/description-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,157 @@
1
+ import type { Agent, LLMError, OneShotAgentOutput } from '@vibe-agent-toolkit/agent-schema';
2
+ import { z } from 'zod';
3
+ import { type Haiku } from '../types/schemas.js';
4
+ /**
5
+ * Input schema for haiku generation
6
+ */
7
+ export declare const HaikuGeneratorInputSchema: z.ZodObject<{
8
+ characteristics: z.ZodObject<{
9
+ physical: z.ZodObject<{
10
+ furColor: z.ZodString;
11
+ furPattern: z.ZodOptional<z.ZodString>;
12
+ eyeColor: z.ZodOptional<z.ZodString>;
13
+ breed: z.ZodOptional<z.ZodString>;
14
+ size: z.ZodOptional<z.ZodEnum<["tiny", "small", "medium", "large", "extra-large"]>>;
15
+ }, "strip", z.ZodTypeAny, {
16
+ furColor: string;
17
+ furPattern?: string | undefined;
18
+ eyeColor?: string | undefined;
19
+ breed?: string | undefined;
20
+ size?: "tiny" | "small" | "medium" | "large" | "extra-large" | undefined;
21
+ }, {
22
+ furColor: string;
23
+ furPattern?: string | undefined;
24
+ eyeColor?: string | undefined;
25
+ breed?: string | undefined;
26
+ size?: "tiny" | "small" | "medium" | "large" | "extra-large" | undefined;
27
+ }>;
28
+ behavioral: z.ZodObject<{
29
+ personality: z.ZodArray<z.ZodString, "many">;
30
+ quirks: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
31
+ vocalizations: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
32
+ }, "strip", z.ZodTypeAny, {
33
+ personality: string[];
34
+ quirks?: string[] | undefined;
35
+ vocalizations?: string[] | undefined;
36
+ }, {
37
+ personality: string[];
38
+ quirks?: string[] | undefined;
39
+ vocalizations?: string[] | undefined;
40
+ }>;
41
+ metadata: z.ZodOptional<z.ZodObject<{
42
+ origin: z.ZodOptional<z.ZodString>;
43
+ age: z.ZodOptional<z.ZodString>;
44
+ occupation: z.ZodOptional<z.ZodString>;
45
+ }, "strip", z.ZodTypeAny, {
46
+ origin?: string | undefined;
47
+ age?: string | undefined;
48
+ occupation?: string | undefined;
49
+ }, {
50
+ origin?: string | undefined;
51
+ age?: string | undefined;
52
+ occupation?: string | undefined;
53
+ }>>;
54
+ notes: z.ZodOptional<z.ZodString>;
55
+ description: z.ZodString;
56
+ }, "strip", z.ZodTypeAny, {
57
+ physical: {
58
+ furColor: string;
59
+ furPattern?: string | undefined;
60
+ eyeColor?: string | undefined;
61
+ breed?: string | undefined;
62
+ size?: "tiny" | "small" | "medium" | "large" | "extra-large" | undefined;
63
+ };
64
+ behavioral: {
65
+ personality: string[];
66
+ quirks?: string[] | undefined;
67
+ vocalizations?: string[] | undefined;
68
+ };
69
+ description: string;
70
+ metadata?: {
71
+ origin?: string | undefined;
72
+ age?: string | undefined;
73
+ occupation?: string | undefined;
74
+ } | undefined;
75
+ notes?: string | undefined;
76
+ }, {
77
+ physical: {
78
+ furColor: string;
79
+ furPattern?: string | undefined;
80
+ eyeColor?: string | undefined;
81
+ breed?: string | undefined;
82
+ size?: "tiny" | "small" | "medium" | "large" | "extra-large" | undefined;
83
+ };
84
+ behavioral: {
85
+ personality: string[];
86
+ quirks?: string[] | undefined;
87
+ vocalizations?: string[] | undefined;
88
+ };
89
+ description: string;
90
+ metadata?: {
91
+ origin?: string | undefined;
92
+ age?: string | undefined;
93
+ occupation?: string | undefined;
94
+ } | undefined;
95
+ notes?: string | undefined;
96
+ }>;
97
+ mockable: z.ZodOptional<z.ZodBoolean>;
98
+ }, "strip", z.ZodTypeAny, {
99
+ characteristics: {
100
+ physical: {
101
+ furColor: string;
102
+ furPattern?: string | undefined;
103
+ eyeColor?: string | undefined;
104
+ breed?: string | undefined;
105
+ size?: "tiny" | "small" | "medium" | "large" | "extra-large" | undefined;
106
+ };
107
+ behavioral: {
108
+ personality: string[];
109
+ quirks?: string[] | undefined;
110
+ vocalizations?: string[] | undefined;
111
+ };
112
+ description: string;
113
+ metadata?: {
114
+ origin?: string | undefined;
115
+ age?: string | undefined;
116
+ occupation?: string | undefined;
117
+ } | undefined;
118
+ notes?: string | undefined;
119
+ };
120
+ mockable?: boolean | undefined;
121
+ }, {
122
+ characteristics: {
123
+ physical: {
124
+ furColor: string;
125
+ furPattern?: string | undefined;
126
+ eyeColor?: string | undefined;
127
+ breed?: string | undefined;
128
+ size?: "tiny" | "small" | "medium" | "large" | "extra-large" | undefined;
129
+ };
130
+ behavioral: {
131
+ personality: string[];
132
+ quirks?: string[] | undefined;
133
+ vocalizations?: string[] | undefined;
134
+ };
135
+ description: string;
136
+ metadata?: {
137
+ origin?: string | undefined;
138
+ age?: string | undefined;
139
+ occupation?: string | undefined;
140
+ } | undefined;
141
+ notes?: string | undefined;
142
+ };
143
+ mockable?: boolean | undefined;
144
+ }>;
145
+ export type HaikuGeneratorInput = z.infer<typeof HaikuGeneratorInputSchema>;
146
+ /**
147
+ * Haiku generator agent
148
+ *
149
+ * Ms. Haiku is a zen cat poet who sometimes ignores syllable rules for artistic expression.
150
+ * About 60% of her haikus follow proper 5-7-5 structure, but 40% bend the rules in pursuit
151
+ * of deeper meaning. This is why Professor Whiskers' validation is needed.
152
+ *
153
+ * In mock mode, generates simple valid haikus based on characteristics.
154
+ * In real mode, uses LLM for creative poetic generation.
155
+ */
156
+ export declare const haikuGeneratorAgent: Agent<HaikuGeneratorInput, OneShotAgentOutput<Haiku, LLMError>>;
157
+ //# sourceMappingURL=haiku-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"haiku-generator.d.ts","sourceRoot":"","sources":["../../src/one-shot-llm-analyzer/haiku-generator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC5F,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAA4B,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE3E;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAsB5E;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAAK,CACrC,mBAAmB,EACnB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAiCpC,CAAC"}
@@ -0,0 +1,66 @@
1
+ import { executeLLMAnalyzer, validateAgentInput } from '@vibe-agent-toolkit/agent-runtime';
2
+ import { z } from 'zod';
3
+ import { CatCharacteristicsSchema } from '../types/schemas.js';
4
+ /**
5
+ * Input schema for haiku generation
6
+ */
7
+ export const HaikuGeneratorInputSchema = z.object({
8
+ characteristics: CatCharacteristicsSchema.describe('Cat characteristics to inspire the haiku'),
9
+ mockable: z.boolean().optional().describe('Whether to use mock mode (default: true)'),
10
+ });
11
+ /**
12
+ * Mock implementation that generates simple haikus based on characteristics.
13
+ */
14
+ function mockGenerateHaiku(characteristics) {
15
+ const { physical, behavioral } = characteristics;
16
+ const color = physical.furColor.toLowerCase();
17
+ const personality = (behavioral.personality[0] ?? 'mysterious').toLowerCase();
18
+ // Generate simple 5-7-5 haikus based on characteristics
19
+ return {
20
+ line1: `${capitalizeFirst(color)} fur gleams bright`,
21
+ line2: `${capitalizeFirst(personality)} cat sits watching`,
22
+ line3: 'Autumn leaves drift down',
23
+ };
24
+ }
25
+ function capitalizeFirst(str) {
26
+ return str.charAt(0).toUpperCase() + str.slice(1);
27
+ }
28
+ /**
29
+ * Haiku generator agent
30
+ *
31
+ * Ms. Haiku is a zen cat poet who sometimes ignores syllable rules for artistic expression.
32
+ * About 60% of her haikus follow proper 5-7-5 structure, but 40% bend the rules in pursuit
33
+ * of deeper meaning. This is why Professor Whiskers' validation is needed.
34
+ *
35
+ * In mock mode, generates simple valid haikus based on characteristics.
36
+ * In real mode, uses LLM for creative poetic generation.
37
+ */
38
+ export const haikuGeneratorAgent = {
39
+ name: 'haiku-generator',
40
+ manifest: {
41
+ name: 'haiku-generator',
42
+ version: '1.0.0',
43
+ description: 'Generates contemplative haikus about cats based on their characteristics',
44
+ archetype: 'one-shot-llm-analyzer',
45
+ metadata: {
46
+ author: 'Ms. Haiku',
47
+ personality: 'Zen cat poet, sometimes ignores syllable rules for artistic expression',
48
+ validRate: '60%',
49
+ model: 'claude-3-haiku',
50
+ temperature: 0.8,
51
+ },
52
+ },
53
+ execute: async (input) => {
54
+ const validatedOrError = validateAgentInput(input, HaikuGeneratorInputSchema);
55
+ if ('result' in validatedOrError) {
56
+ return validatedOrError;
57
+ }
58
+ const { characteristics, mockable = true } = validatedOrError;
59
+ return executeLLMAnalyzer({
60
+ mockable,
61
+ mockFn: () => mockGenerateHaiku(characteristics),
62
+ notImplementedMessage: 'Real LLM haiku generation requires runtime adapter with callLLM context',
63
+ });
64
+ },
65
+ };
66
+ //# sourceMappingURL=haiku-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"haiku-generator.js","sourceRoot":"","sources":["../../src/one-shot-llm-analyzer/haiku-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAE3F,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,wBAAwB,EAAc,MAAM,qBAAqB,CAAC;AAE3E;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,eAAe,EAAE,wBAAwB,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IAC9F,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;CACtF,CAAC,CAAC;AAIH;;GAEG;AACH,SAAS,iBAAiB,CAAC,eAAyD;IAClF,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,eAAe,CAAC;IACjD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC9C,MAAM,WAAW,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;IAE9E,wDAAwD;IACxD,OAAO;QACL,KAAK,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,oBAAoB;QACpD,KAAK,EAAE,GAAG,eAAe,CAAC,WAAW,CAAC,oBAAoB;QAC1D,KAAK,EAAE,0BAA0B;KAClC,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,GAAW;IAClC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAG5B;IACF,IAAI,EAAE,iBAAiB;IACvB,QAAQ,EAAE;QACR,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,0EAA0E;QACvF,SAAS,EAAE,uBAAuB;QAClC,QAAQ,EAAE;YACR,MAAM,EAAE,WAAW;YACnB,WAAW,EAAE,wEAAwE;YACrF,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,gBAAgB;YACvB,WAAW,EAAE,GAAG;SACjB;KACF;IACD,OAAO,EAAE,KAAK,EAAE,KAA0B,EAAE,EAAE;QAC5C,MAAM,gBAAgB,GAAG,kBAAkB,CACzC,KAAK,EACL,yBAAyB,CAC1B,CAAC;QACF,IAAI,QAAQ,IAAI,gBAAgB,EAAE,CAAC;YACjC,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QAED,MAAM,EAAE,eAAe,EAAE,QAAQ,GAAG,IAAI,EAAE,GAAG,gBAAgB,CAAC;QAE9D,OAAO,kBAAkB,CAAC;YACxB,QAAQ;YACR,MAAM,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,eAAe,CAAC;YAChD,qBAAqB,EAAE,yEAAyE;SACjG,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}