@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.
- package/README.md +697 -0
- package/dist/conversational-assistant/breed-advisor.d.ts +24 -0
- package/dist/conversational-assistant/breed-advisor.d.ts.map +1 -0
- package/dist/conversational-assistant/breed-advisor.js +390 -0
- package/dist/conversational-assistant/breed-advisor.js.map +1 -0
- package/dist/conversational-assistant/breed-knowledge.d.ts +42 -0
- package/dist/conversational-assistant/breed-knowledge.d.ts.map +1 -0
- package/dist/conversational-assistant/breed-knowledge.js +335 -0
- package/dist/conversational-assistant/breed-knowledge.js.map +1 -0
- package/dist/external-event-integrator/human-approval.d.ts +207 -0
- package/dist/external-event-integrator/human-approval.d.ts.map +1 -0
- package/dist/external-event-integrator/human-approval.js +387 -0
- package/dist/external-event-integrator/human-approval.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp-collections.d.ts +30 -0
- package/dist/mcp-collections.d.ts.map +1 -0
- package/dist/mcp-collections.js +58 -0
- package/dist/mcp-collections.js.map +1 -0
- package/dist/one-shot-llm-analyzer/description-parser.d.ts +55 -0
- package/dist/one-shot-llm-analyzer/description-parser.d.ts.map +1 -0
- package/dist/one-shot-llm-analyzer/description-parser.js +349 -0
- package/dist/one-shot-llm-analyzer/description-parser.js.map +1 -0
- package/dist/one-shot-llm-analyzer/haiku-generator.d.ts +157 -0
- package/dist/one-shot-llm-analyzer/haiku-generator.d.ts.map +1 -0
- package/dist/one-shot-llm-analyzer/haiku-generator.js +66 -0
- package/dist/one-shot-llm-analyzer/haiku-generator.js.map +1 -0
- package/dist/one-shot-llm-analyzer/name-generator.d.ts +157 -0
- package/dist/one-shot-llm-analyzer/name-generator.d.ts.map +1 -0
- package/dist/one-shot-llm-analyzer/name-generator.js +121 -0
- package/dist/one-shot-llm-analyzer/name-generator.js.map +1 -0
- package/dist/one-shot-llm-analyzer/photo-analyzer.d.ts +57 -0
- package/dist/one-shot-llm-analyzer/photo-analyzer.d.ts.map +1 -0
- package/dist/one-shot-llm-analyzer/photo-analyzer.js +288 -0
- package/dist/one-shot-llm-analyzer/photo-analyzer.js.map +1 -0
- package/dist/pure-function-tool/haiku-validator.d.ts +27 -0
- package/dist/pure-function-tool/haiku-validator.d.ts.map +1 -0
- package/dist/pure-function-tool/haiku-validator.js +148 -0
- package/dist/pure-function-tool/haiku-validator.js.map +1 -0
- package/dist/pure-function-tool/name-validator.d.ts +203 -0
- package/dist/pure-function-tool/name-validator.d.ts.map +1 -0
- package/dist/pure-function-tool/name-validator.js +244 -0
- package/dist/pure-function-tool/name-validator.js.map +1 -0
- package/dist/types/schemas.d.ts +612 -0
- package/dist/types/schemas.d.ts.map +1 -0
- package/dist/types/schemas.js +127 -0
- package/dist/types/schemas.js.map +1 -0
- package/dist/utils/color-extraction.d.ts +14 -0
- package/dist/utils/color-extraction.d.ts.map +1 -0
- package/dist/utils/color-extraction.js +45 -0
- package/dist/utils/color-extraction.js.map +1 -0
- package/package.json +63 -0
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Physical and behavioral characteristics of a cat
|
|
4
|
+
*/
|
|
5
|
+
export const CatCharacteristicsSchema = z.object({
|
|
6
|
+
physical: z.object({
|
|
7
|
+
furColor: z.string().describe('Primary fur color'),
|
|
8
|
+
furPattern: z.string().optional().describe('Fur pattern (tabby, calico, etc.)'),
|
|
9
|
+
eyeColor: z.string().optional().describe('Eye color'),
|
|
10
|
+
breed: z.string().optional().describe('Cat breed'),
|
|
11
|
+
size: z.enum(['tiny', 'small', 'medium', 'large', 'extra-large']).optional(),
|
|
12
|
+
}),
|
|
13
|
+
behavioral: z.object({
|
|
14
|
+
personality: z.array(z.string()).describe('Personality traits'),
|
|
15
|
+
quirks: z.array(z.string()).optional().describe('Unique quirks or habits'),
|
|
16
|
+
vocalizations: z.array(z.string()).optional().describe('Types of sounds they make'),
|
|
17
|
+
}),
|
|
18
|
+
metadata: z.object({
|
|
19
|
+
origin: z.string().optional().describe('Where the cat is from'),
|
|
20
|
+
age: z.string().optional().describe('Age or age range'),
|
|
21
|
+
occupation: z.string().optional().describe('What they do'),
|
|
22
|
+
}).optional(),
|
|
23
|
+
notes: z.string().optional().describe('Additional notes'),
|
|
24
|
+
description: z.string().describe('Full prose description of the cat'),
|
|
25
|
+
});
|
|
26
|
+
/**
|
|
27
|
+
* A name suggestion with reasoning
|
|
28
|
+
*/
|
|
29
|
+
export const NameSuggestionSchema = z.object({
|
|
30
|
+
name: z.string().describe('Suggested name'),
|
|
31
|
+
reasoning: z.string().describe('Why this name fits the cat'),
|
|
32
|
+
alternatives: z.array(z.string()).optional().describe('Alternative name suggestions'),
|
|
33
|
+
});
|
|
34
|
+
/**
|
|
35
|
+
* Result of validating a cat name
|
|
36
|
+
*/
|
|
37
|
+
export const NameValidationResultSchema = z.object({
|
|
38
|
+
status: z.enum(['valid', 'invalid', 'questionable']).describe('Validation status'),
|
|
39
|
+
reason: z.string().describe('Explanation of the validation result'),
|
|
40
|
+
suggestedFixes: z.array(z.string()).optional().describe('Suggested improvements'),
|
|
41
|
+
});
|
|
42
|
+
/**
|
|
43
|
+
* A three-line haiku
|
|
44
|
+
*/
|
|
45
|
+
export const HaikuSchema = z.object({
|
|
46
|
+
line1: z.string().describe('First line (5 syllables)'),
|
|
47
|
+
line2: z.string().describe('Second line (7 syllables)'),
|
|
48
|
+
line3: z.string().describe('Third line (5 syllables)'),
|
|
49
|
+
});
|
|
50
|
+
/**
|
|
51
|
+
* Result of validating a haiku
|
|
52
|
+
*/
|
|
53
|
+
export const HaikuValidationResultSchema = z.object({
|
|
54
|
+
valid: z.boolean().describe('Whether the haiku follows proper structure'),
|
|
55
|
+
syllables: z.object({
|
|
56
|
+
line1: z.number().describe('Syllable count in line 1 (should be 5)'),
|
|
57
|
+
line2: z.number().describe('Syllable count in line 2 (should be 7)'),
|
|
58
|
+
line3: z.number().describe('Syllable count in line 3 (should be 5)'),
|
|
59
|
+
}),
|
|
60
|
+
errors: z.array(z.string()).describe('List of structural errors'),
|
|
61
|
+
hasKigo: z.boolean().optional().describe('Whether it contains a seasonal reference'),
|
|
62
|
+
hasKireji: z.boolean().optional().describe('Whether it has a cutting word or pause'),
|
|
63
|
+
});
|
|
64
|
+
/**
|
|
65
|
+
* Selection profile for breed advisor conversation
|
|
66
|
+
*/
|
|
67
|
+
export const SelectionProfileSchema = z.object({
|
|
68
|
+
livingSpace: z.enum(['apartment', 'small-house', 'large-house', 'farm']).nullable().optional().describe('Living space type'),
|
|
69
|
+
activityLevel: z.enum(['couch-companion', 'playful-moderate', 'active-explorer', 'high-energy-athlete']).nullable().optional().describe('Desired activity level'),
|
|
70
|
+
groomingTolerance: z.enum(['minimal', 'weekly', 'daily']).nullable().optional().describe('Grooming tolerance'),
|
|
71
|
+
familyComposition: z.enum(['single', 'couple', 'young-kids', 'older-kids', 'multi-pet']).nullable().optional().describe('Family composition'),
|
|
72
|
+
allergies: z.boolean().nullable().optional().describe('Has allergies requiring hypoallergenic breeds'),
|
|
73
|
+
musicPreference: z.enum(['classical', 'jazz', 'rock', 'metal', 'pop', 'country', 'electronic', 'none']).nullable().optional().describe('Music preference (CRITICAL factor!)'),
|
|
74
|
+
conversationPhase: z.enum(['gathering', 'ready-to-recommend', 'refining', 'completed']).optional().describe('Current conversation phase (set by agent)'),
|
|
75
|
+
});
|
|
76
|
+
/**
|
|
77
|
+
* Input for breed advisor agent
|
|
78
|
+
*/
|
|
79
|
+
export const BreedAdvisorInputSchema = z.object({
|
|
80
|
+
message: z.string().describe('User message'),
|
|
81
|
+
sessionState: z.object({
|
|
82
|
+
profile: SelectionProfileSchema,
|
|
83
|
+
conversationHistory: z.array(z.object({
|
|
84
|
+
role: z.enum(['user', 'assistant']),
|
|
85
|
+
content: z.string(),
|
|
86
|
+
})).optional(),
|
|
87
|
+
}).optional().describe('Current session state'),
|
|
88
|
+
});
|
|
89
|
+
/**
|
|
90
|
+
* Breed match result for recommendations
|
|
91
|
+
*/
|
|
92
|
+
export const BreedMatchSchema = z.object({
|
|
93
|
+
breed: z.string().describe('Breed name'),
|
|
94
|
+
matchScore: z.number().min(0).max(100).describe('Match score (0-100)'),
|
|
95
|
+
reasoning: z.string().describe('Why this breed matches'),
|
|
96
|
+
});
|
|
97
|
+
/**
|
|
98
|
+
* Output from breed advisor agent
|
|
99
|
+
* Follows ConversationalAgentOutput envelope pattern
|
|
100
|
+
*/
|
|
101
|
+
export const BreedAdvisorOutputSchema = z.object({
|
|
102
|
+
reply: z.string().describe('Agent response to user'),
|
|
103
|
+
sessionState: SelectionProfileSchema.describe('Updated selection profile for next turn'),
|
|
104
|
+
result: z.discriminatedUnion('status', [
|
|
105
|
+
z.object({
|
|
106
|
+
status: z.literal('in-progress'),
|
|
107
|
+
metadata: z.object({
|
|
108
|
+
recommendations: z.array(BreedMatchSchema).optional(),
|
|
109
|
+
factorsCollected: z.number().optional(),
|
|
110
|
+
requiredFactors: z.number().optional(),
|
|
111
|
+
conversationPhase: z.string().optional(),
|
|
112
|
+
}).optional(),
|
|
113
|
+
}),
|
|
114
|
+
z.object({
|
|
115
|
+
status: z.literal('success'),
|
|
116
|
+
data: z.object({
|
|
117
|
+
selectedBreed: z.string().describe('The breed the user selected'),
|
|
118
|
+
finalProfile: SelectionProfileSchema.describe('Complete selection profile'),
|
|
119
|
+
}),
|
|
120
|
+
}),
|
|
121
|
+
z.object({
|
|
122
|
+
status: z.literal('error'),
|
|
123
|
+
error: z.enum(['user-abandoned', 'no-suitable-match', 'timeout']),
|
|
124
|
+
}),
|
|
125
|
+
]).describe('Machine-readable result for orchestration'),
|
|
126
|
+
});
|
|
127
|
+
//# sourceMappingURL=schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/types/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared utilities for extracting cat color information from text.
|
|
3
|
+
* Used by both description parser and photo analyzer.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Extracts fur color from text based on keyword matching.
|
|
7
|
+
* Returns a standardized color name.
|
|
8
|
+
*
|
|
9
|
+
* @param text - Text to search for color keywords (case-insensitive)
|
|
10
|
+
* @param defaultColor - Default color if no keywords found (default: varies by caller)
|
|
11
|
+
* @returns Standardized fur color name
|
|
12
|
+
*/
|
|
13
|
+
export declare function extractFurColor(text: string, defaultColor?: string): string;
|
|
14
|
+
//# sourceMappingURL=color-extraction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color-extraction.d.ts","sourceRoot":"","sources":["../../src/utils/color-extraction.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAiC3E"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared utilities for extracting cat color information from text.
|
|
3
|
+
* Used by both description parser and photo analyzer.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Extracts fur color from text based on keyword matching.
|
|
7
|
+
* Returns a standardized color name.
|
|
8
|
+
*
|
|
9
|
+
* @param text - Text to search for color keywords (case-insensitive)
|
|
10
|
+
* @param defaultColor - Default color if no keywords found (default: varies by caller)
|
|
11
|
+
* @returns Standardized fur color name
|
|
12
|
+
*/
|
|
13
|
+
export function extractFurColor(text, defaultColor) {
|
|
14
|
+
const lowerText = text.toLowerCase();
|
|
15
|
+
if (lowerText.includes('orange') || lowerText.includes('ginger')) {
|
|
16
|
+
return 'Orange';
|
|
17
|
+
}
|
|
18
|
+
if (lowerText.includes('black')) {
|
|
19
|
+
return 'Black';
|
|
20
|
+
}
|
|
21
|
+
if (lowerText.includes('white')) {
|
|
22
|
+
return 'White';
|
|
23
|
+
}
|
|
24
|
+
if (lowerText.includes('gray') || lowerText.includes('grey')) {
|
|
25
|
+
return 'Gray';
|
|
26
|
+
}
|
|
27
|
+
if (lowerText.includes('brown')) {
|
|
28
|
+
return 'Brown';
|
|
29
|
+
}
|
|
30
|
+
if (lowerText.includes('cream')) {
|
|
31
|
+
return 'Cream';
|
|
32
|
+
}
|
|
33
|
+
if (lowerText.includes('calico')) {
|
|
34
|
+
return 'Calico (white, orange, black)';
|
|
35
|
+
}
|
|
36
|
+
if (lowerText.includes('tortoiseshell') || lowerText.includes('tortie')) {
|
|
37
|
+
return 'Tortoiseshell';
|
|
38
|
+
}
|
|
39
|
+
if (lowerText.includes('silver')) {
|
|
40
|
+
return 'Silver';
|
|
41
|
+
}
|
|
42
|
+
// Return provided default or a generic default
|
|
43
|
+
return defaultColor ?? 'Mixed colors';
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=color-extraction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color-extraction.js","sourceRoot":"","sources":["../../src/utils/color-extraction.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,YAAqB;IACjE,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAErC,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjE,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7D,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,OAAO,+BAA+B,CAAC;IACzC,CAAC;IACD,IAAI,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxE,OAAO,eAAe,CAAC;IACzB,CAAC;IACD,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,+CAA+C;IAC/C,OAAO,YAAY,IAAI,cAAc,CAAC;AACxC,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@vibe-agent-toolkit/vat-example-cat-agents",
|
|
3
|
+
"version": "0.1.2-rc.4",
|
|
4
|
+
"description": "Example agents: 8 quirky cat agents demonstrating VAT patterns",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"exports": {
|
|
7
|
+
".": {
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"default": "./dist/index.js"
|
|
10
|
+
},
|
|
11
|
+
"./mcp-collections": {
|
|
12
|
+
"types": "./dist/mcp-collections.d.ts",
|
|
13
|
+
"default": "./dist/mcp-collections.js"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"files": [
|
|
17
|
+
"dist"
|
|
18
|
+
],
|
|
19
|
+
"scripts": {
|
|
20
|
+
"build": "tsc",
|
|
21
|
+
"test": "vitest run",
|
|
22
|
+
"test:watch": "vitest",
|
|
23
|
+
"typecheck": "tsc --noEmit",
|
|
24
|
+
"demo:photos": "bun examples/photo-analysis-demo.ts",
|
|
25
|
+
"demo:conversation": "bun examples/conversational-demo.ts"
|
|
26
|
+
},
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"@vibe-agent-toolkit/agent-runtime": "0.1.2-rc.4",
|
|
29
|
+
"@vibe-agent-toolkit/agent-schema": "0.1.2-rc.4",
|
|
30
|
+
"@vibe-agent-toolkit/transports": "0.1.2-rc.4",
|
|
31
|
+
"@vibe-agent-toolkit/utils": "0.1.2-rc.4",
|
|
32
|
+
"syllable": "^5.0.1",
|
|
33
|
+
"zod": "^3.24.1"
|
|
34
|
+
},
|
|
35
|
+
"devDependencies": {
|
|
36
|
+
"@ai-sdk/openai": "^3.0.18",
|
|
37
|
+
"@anthropic-ai/claude-agent-sdk": "^0.1.5",
|
|
38
|
+
"@anthropic-ai/sdk": "^0.36.0",
|
|
39
|
+
"@langchain/openai": "^0.3.16",
|
|
40
|
+
"@types/node": "^22.10.5",
|
|
41
|
+
"@vibe-agent-toolkit/runtime-claude-agent-sdk": "0.1.2-rc.4",
|
|
42
|
+
"@vibe-agent-toolkit/runtime-langchain": "0.1.2-rc.4",
|
|
43
|
+
"@vibe-agent-toolkit/runtime-openai": "0.1.2-rc.4",
|
|
44
|
+
"@vibe-agent-toolkit/runtime-vercel-ai-sdk": "0.1.2-rc.4",
|
|
45
|
+
"ai": "^6.0.48",
|
|
46
|
+
"openai": "^4.77.3",
|
|
47
|
+
"typescript": "^5.7.3",
|
|
48
|
+
"vitest": "^2.1.8"
|
|
49
|
+
},
|
|
50
|
+
"keywords": [
|
|
51
|
+
"ai-agent",
|
|
52
|
+
"cat-agents",
|
|
53
|
+
"vibe-agent-toolkit",
|
|
54
|
+
"example"
|
|
55
|
+
],
|
|
56
|
+
"author": "Jeff Dutton",
|
|
57
|
+
"license": "MIT",
|
|
58
|
+
"repository": {
|
|
59
|
+
"type": "git",
|
|
60
|
+
"url": "https://github.com/jdutton/vibe-agent-toolkit.git",
|
|
61
|
+
"directory": "packages/vat-example-cat-agents"
|
|
62
|
+
}
|
|
63
|
+
}
|