@chanl/scenarios-core 0.4.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/LICENSE +21 -0
- package/dist/__tests__/e2e/test-helpers.d.ts +79 -0
- package/dist/__tests__/e2e/test-helpers.d.ts.map +1 -0
- package/dist/__tests__/e2e/test-helpers.js +162 -0
- package/dist/__tests__/e2e/test-helpers.js.map +1 -0
- package/dist/adapters/adapter-registry.d.ts +14 -0
- package/dist/adapters/adapter-registry.d.ts.map +1 -0
- package/dist/adapters/adapter-registry.js +53 -0
- package/dist/adapters/adapter-registry.js.map +1 -0
- package/dist/adapters/agent-adapter.interface.d.ts +70 -0
- package/dist/adapters/agent-adapter.interface.d.ts.map +1 -0
- package/dist/adapters/agent-adapter.interface.js +3 -0
- package/dist/adapters/agent-adapter.interface.js.map +1 -0
- package/dist/adapters/anthropic.adapter.d.ts +17 -0
- package/dist/adapters/anthropic.adapter.d.ts.map +1 -0
- package/dist/adapters/anthropic.adapter.js +145 -0
- package/dist/adapters/anthropic.adapter.js.map +1 -0
- package/dist/adapters/http.adapter.d.ts +17 -0
- package/dist/adapters/http.adapter.d.ts.map +1 -0
- package/dist/adapters/http.adapter.js +95 -0
- package/dist/adapters/http.adapter.js.map +1 -0
- package/dist/adapters/index.d.ts +6 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +22 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/openai.adapter.d.ts +17 -0
- package/dist/adapters/openai.adapter.d.ts.map +1 -0
- package/dist/adapters/openai.adapter.js +133 -0
- package/dist/adapters/openai.adapter.js.map +1 -0
- package/dist/dataset/convert.d.ts +28 -0
- package/dist/dataset/convert.d.ts.map +1 -0
- package/dist/dataset/convert.js +94 -0
- package/dist/dataset/convert.js.map +1 -0
- package/dist/dataset/formats/dpo.d.ts +41 -0
- package/dist/dataset/formats/dpo.d.ts.map +1 -0
- package/dist/dataset/formats/dpo.js +79 -0
- package/dist/dataset/formats/dpo.js.map +1 -0
- package/dist/dataset/formats/index.d.ts +4 -0
- package/dist/dataset/formats/index.d.ts.map +1 -0
- package/dist/dataset/formats/index.js +13 -0
- package/dist/dataset/formats/index.js.map +1 -0
- package/dist/dataset/formats/openai.d.ts +29 -0
- package/dist/dataset/formats/openai.d.ts.map +1 -0
- package/dist/dataset/formats/openai.js +98 -0
- package/dist/dataset/formats/openai.js.map +1 -0
- package/dist/dataset/formats/sharegpt.d.ts +31 -0
- package/dist/dataset/formats/sharegpt.d.ts.map +1 -0
- package/dist/dataset/formats/sharegpt.js +76 -0
- package/dist/dataset/formats/sharegpt.js.map +1 -0
- package/dist/dataset/index.d.ts +4 -0
- package/dist/dataset/index.d.ts.map +1 -0
- package/dist/dataset/index.js +20 -0
- package/dist/dataset/index.js.map +1 -0
- package/dist/dataset/types.d.ts +108 -0
- package/dist/dataset/types.d.ts.map +1 -0
- package/dist/dataset/types.js +7 -0
- package/dist/dataset/types.js.map +1 -0
- package/dist/execution/agent-config-resolver.d.ts +44 -0
- package/dist/execution/agent-config-resolver.d.ts.map +1 -0
- package/dist/execution/agent-config-resolver.js +76 -0
- package/dist/execution/agent-config-resolver.js.map +1 -0
- package/dist/execution/execution-processor.d.ts +75 -0
- package/dist/execution/execution-processor.d.ts.map +1 -0
- package/dist/execution/execution-processor.js +569 -0
- package/dist/execution/execution-processor.js.map +1 -0
- package/dist/execution/execution.module.d.ts +3 -0
- package/dist/execution/execution.module.d.ts.map +1 -0
- package/dist/execution/execution.module.js +56 -0
- package/dist/execution/execution.module.js.map +1 -0
- package/dist/execution/execution.service.d.ts +52 -0
- package/dist/execution/execution.service.d.ts.map +1 -0
- package/dist/execution/execution.service.js +182 -0
- package/dist/execution/execution.service.js.map +1 -0
- package/dist/execution/index.d.ts +11 -0
- package/dist/execution/index.d.ts.map +1 -0
- package/dist/execution/index.js +30 -0
- package/dist/execution/index.js.map +1 -0
- package/dist/execution/interfaces/job-data.interface.d.ts +38 -0
- package/dist/execution/interfaces/job-data.interface.d.ts.map +1 -0
- package/dist/execution/interfaces/job-data.interface.js +3 -0
- package/dist/execution/interfaces/job-data.interface.js.map +1 -0
- package/dist/execution/judge-llm.d.ts +35 -0
- package/dist/execution/judge-llm.d.ts.map +1 -0
- package/dist/execution/judge-llm.js +129 -0
- package/dist/execution/judge-llm.js.map +1 -0
- package/dist/execution/llm-config-resolver.d.ts +26 -0
- package/dist/execution/llm-config-resolver.d.ts.map +1 -0
- package/dist/execution/llm-config-resolver.js +99 -0
- package/dist/execution/llm-config-resolver.js.map +1 -0
- package/dist/execution/persona-llm.d.ts +29 -0
- package/dist/execution/persona-llm.d.ts.map +1 -0
- package/dist/execution/persona-llm.js +98 -0
- package/dist/execution/persona-llm.js.map +1 -0
- package/dist/execution/persona-strategy-registry.d.ts +14 -0
- package/dist/execution/persona-strategy-registry.d.ts.map +1 -0
- package/dist/execution/persona-strategy-registry.js +51 -0
- package/dist/execution/persona-strategy-registry.js.map +1 -0
- package/dist/execution/persona-strategy.interface.d.ts +88 -0
- package/dist/execution/persona-strategy.interface.d.ts.map +1 -0
- package/dist/execution/persona-strategy.interface.js +3 -0
- package/dist/execution/persona-strategy.interface.js.map +1 -0
- package/dist/execution/queue-producer.service.d.ts +21 -0
- package/dist/execution/queue-producer.service.d.ts.map +1 -0
- package/dist/execution/queue-producer.service.js +60 -0
- package/dist/execution/queue-producer.service.js.map +1 -0
- package/dist/execution/queues.config.d.ts +39 -0
- package/dist/execution/queues.config.d.ts.map +1 -0
- package/dist/execution/queues.config.js +43 -0
- package/dist/execution/queues.config.js.map +1 -0
- package/dist/execution/strategies/default.strategy.d.ts +11 -0
- package/dist/execution/strategies/default.strategy.d.ts.map +1 -0
- package/dist/execution/strategies/default.strategy.js +31 -0
- package/dist/execution/strategies/default.strategy.js.map +1 -0
- package/dist/execution/strategies/reactive.strategy.d.ts +28 -0
- package/dist/execution/strategies/reactive.strategy.d.ts.map +1 -0
- package/dist/execution/strategies/reactive.strategy.js +220 -0
- package/dist/execution/strategies/reactive.strategy.js.map +1 -0
- package/dist/execution/template-renderer.d.ts +52 -0
- package/dist/execution/template-renderer.d.ts.map +1 -0
- package/dist/execution/template-renderer.js +90 -0
- package/dist/execution/template-renderer.js.map +1 -0
- package/dist/generation/index.d.ts +2 -0
- package/dist/generation/index.d.ts.map +1 -0
- package/dist/generation/index.js +6 -0
- package/dist/generation/index.js.map +1 -0
- package/dist/generation/scenario-generator.service.d.ts +77 -0
- package/dist/generation/scenario-generator.service.d.ts.map +1 -0
- package/dist/generation/scenario-generator.service.js +272 -0
- package/dist/generation/scenario-generator.service.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -0
- package/dist/personas/dto/create-persona.dto.d.ts +61 -0
- package/dist/personas/dto/create-persona.dto.d.ts.map +1 -0
- package/dist/personas/dto/create-persona.dto.js +146 -0
- package/dist/personas/dto/create-persona.dto.js.map +1 -0
- package/dist/personas/dto/index.d.ts +3 -0
- package/dist/personas/dto/index.d.ts.map +1 -0
- package/dist/personas/dto/index.js +19 -0
- package/dist/personas/dto/index.js.map +1 -0
- package/dist/personas/dto/update-persona.dto.d.ts +8 -0
- package/dist/personas/dto/update-persona.dto.d.ts.map +1 -0
- package/dist/personas/dto/update-persona.dto.js +29 -0
- package/dist/personas/dto/update-persona.dto.js.map +1 -0
- package/dist/personas/index.d.ts +6 -0
- package/dist/personas/index.d.ts.map +1 -0
- package/dist/personas/index.js +22 -0
- package/dist/personas/index.js.map +1 -0
- package/dist/personas/persona.controller.d.ts +69 -0
- package/dist/personas/persona.controller.d.ts.map +1 -0
- package/dist/personas/persona.controller.js +282 -0
- package/dist/personas/persona.controller.js.map +1 -0
- package/dist/personas/persona.module.d.ts +3 -0
- package/dist/personas/persona.module.d.ts.map +1 -0
- package/dist/personas/persona.module.js +28 -0
- package/dist/personas/persona.module.js.map +1 -0
- package/dist/personas/persona.service.d.ts +85 -0
- package/dist/personas/persona.service.d.ts.map +1 -0
- package/dist/personas/persona.service.js +382 -0
- package/dist/personas/persona.service.js.map +1 -0
- package/dist/personas/schemas/persona.schema.d.ts +90 -0
- package/dist/personas/schemas/persona.schema.d.ts.map +1 -0
- package/dist/personas/schemas/persona.schema.js +321 -0
- package/dist/personas/schemas/persona.schema.js.map +1 -0
- package/dist/scenarios/controllers/scenario-execution.controller.d.ts +48 -0
- package/dist/scenarios/controllers/scenario-execution.controller.d.ts.map +1 -0
- package/dist/scenarios/controllers/scenario-execution.controller.js +260 -0
- package/dist/scenarios/controllers/scenario-execution.controller.js.map +1 -0
- package/dist/scenarios/controllers/scenario.controller.d.ts +81 -0
- package/dist/scenarios/controllers/scenario.controller.d.ts.map +1 -0
- package/dist/scenarios/controllers/scenario.controller.js +345 -0
- package/dist/scenarios/controllers/scenario.controller.js.map +1 -0
- package/dist/scenarios/dto/create-scenario.dto.d.ts +31 -0
- package/dist/scenarios/dto/create-scenario.dto.d.ts.map +1 -0
- package/dist/scenarios/dto/create-scenario.dto.js +102 -0
- package/dist/scenarios/dto/create-scenario.dto.js.map +1 -0
- package/dist/scenarios/dto/execute-scenario.dto.d.ts +34 -0
- package/dist/scenarios/dto/execute-scenario.dto.d.ts.map +1 -0
- package/dist/scenarios/dto/execute-scenario.dto.js +150 -0
- package/dist/scenarios/dto/execute-scenario.dto.js.map +1 -0
- package/dist/scenarios/dto/index.d.ts +4 -0
- package/dist/scenarios/dto/index.d.ts.map +1 -0
- package/dist/scenarios/dto/index.js +20 -0
- package/dist/scenarios/dto/index.js.map +1 -0
- package/dist/scenarios/dto/update-scenario.dto.d.ts +6 -0
- package/dist/scenarios/dto/update-scenario.dto.d.ts.map +1 -0
- package/dist/scenarios/dto/update-scenario.dto.js +9 -0
- package/dist/scenarios/dto/update-scenario.dto.js.map +1 -0
- package/dist/scenarios/index.d.ts +9 -0
- package/dist/scenarios/index.d.ts.map +1 -0
- package/dist/scenarios/index.js +25 -0
- package/dist/scenarios/index.js.map +1 -0
- package/dist/scenarios/scenario.module.d.ts +3 -0
- package/dist/scenarios/scenario.module.d.ts.map +1 -0
- package/dist/scenarios/scenario.module.js +42 -0
- package/dist/scenarios/scenario.module.js.map +1 -0
- package/dist/scenarios/schemas/scenario-execution.schema.d.ts +133 -0
- package/dist/scenarios/schemas/scenario-execution.schema.d.ts.map +1 -0
- package/dist/scenarios/schemas/scenario-execution.schema.js +292 -0
- package/dist/scenarios/schemas/scenario-execution.schema.js.map +1 -0
- package/dist/scenarios/schemas/scenario.schema.d.ts +106 -0
- package/dist/scenarios/schemas/scenario.schema.d.ts.map +1 -0
- package/dist/scenarios/schemas/scenario.schema.js +205 -0
- package/dist/scenarios/schemas/scenario.schema.js.map +1 -0
- package/dist/scenarios/services/scenario-execution.service.d.ts +73 -0
- package/dist/scenarios/services/scenario-execution.service.d.ts.map +1 -0
- package/dist/scenarios/services/scenario-execution.service.js +505 -0
- package/dist/scenarios/services/scenario-execution.service.js.map +1 -0
- package/dist/scenarios/services/scenario.service.d.ts +110 -0
- package/dist/scenarios/services/scenario.service.d.ts.map +1 -0
- package/dist/scenarios/services/scenario.service.js +608 -0
- package/dist/scenarios/services/scenario.service.js.map +1 -0
- package/dist/simulator/index.d.ts +2 -0
- package/dist/simulator/index.d.ts.map +1 -0
- package/dist/simulator/index.js +18 -0
- package/dist/simulator/index.js.map +1 -0
- package/dist/simulator/persona-simulator.service.d.ts +81 -0
- package/dist/simulator/persona-simulator.service.d.ts.map +1 -0
- package/dist/simulator/persona-simulator.service.js +358 -0
- package/dist/simulator/persona-simulator.service.js.map +1 -0
- package/dist/templates/dto/create-template.dto.d.ts +16 -0
- package/dist/templates/dto/create-template.dto.d.ts.map +1 -0
- package/dist/templates/dto/create-template.dto.js +75 -0
- package/dist/templates/dto/create-template.dto.js.map +1 -0
- package/dist/templates/dto/index.d.ts +4 -0
- package/dist/templates/dto/index.d.ts.map +1 -0
- package/dist/templates/dto/index.js +10 -0
- package/dist/templates/dto/index.js.map +1 -0
- package/dist/templates/dto/instantiate-template.dto.d.ts +7 -0
- package/dist/templates/dto/instantiate-template.dto.d.ts.map +1 -0
- package/dist/templates/dto/instantiate-template.dto.js +38 -0
- package/dist/templates/dto/instantiate-template.dto.js.map +1 -0
- package/dist/templates/dto/update-template.dto.d.ts +6 -0
- package/dist/templates/dto/update-template.dto.d.ts.map +1 -0
- package/dist/templates/dto/update-template.dto.js +9 -0
- package/dist/templates/dto/update-template.dto.js.map +1 -0
- package/dist/templates/index.d.ts +6 -0
- package/dist/templates/index.d.ts.map +1 -0
- package/dist/templates/index.js +22 -0
- package/dist/templates/index.js.map +1 -0
- package/dist/templates/scenario-template.controller.d.ts +42 -0
- package/dist/templates/scenario-template.controller.d.ts.map +1 -0
- package/dist/templates/scenario-template.controller.js +148 -0
- package/dist/templates/scenario-template.controller.js.map +1 -0
- package/dist/templates/scenario-template.module.d.ts +3 -0
- package/dist/templates/scenario-template.module.d.ts.map +1 -0
- package/dist/templates/scenario-template.module.js +30 -0
- package/dist/templates/scenario-template.module.js.map +1 -0
- package/dist/templates/scenario-template.service.d.ts +50 -0
- package/dist/templates/scenario-template.service.d.ts.map +1 -0
- package/dist/templates/scenario-template.service.js +497 -0
- package/dist/templates/scenario-template.service.js.map +1 -0
- package/dist/templates/schemas/scenario-template.schema.d.ts +59 -0
- package/dist/templates/schemas/scenario-template.schema.d.ts.map +1 -0
- package/dist/templates/schemas/scenario-template.schema.js +132 -0
- package/dist/templates/schemas/scenario-template.schema.js.map +1 -0
- package/dist/tool-fixtures/dto/create-tool-fixture.dto.d.ts +18 -0
- package/dist/tool-fixtures/dto/create-tool-fixture.dto.d.ts.map +1 -0
- package/dist/tool-fixtures/dto/create-tool-fixture.dto.js +46 -0
- package/dist/tool-fixtures/dto/create-tool-fixture.dto.js.map +1 -0
- package/dist/tool-fixtures/dto/index.d.ts +4 -0
- package/dist/tool-fixtures/dto/index.d.ts.map +1 -0
- package/dist/tool-fixtures/dto/index.js +20 -0
- package/dist/tool-fixtures/dto/index.js.map +1 -0
- package/dist/tool-fixtures/dto/tool-fixture-filter.dto.d.ts +6 -0
- package/dist/tool-fixtures/dto/tool-fixture-filter.dto.d.ts.map +1 -0
- package/dist/tool-fixtures/dto/tool-fixture-filter.dto.js +33 -0
- package/dist/tool-fixtures/dto/tool-fixture-filter.dto.js.map +1 -0
- package/dist/tool-fixtures/dto/update-tool-fixture.dto.d.ts +6 -0
- package/dist/tool-fixtures/dto/update-tool-fixture.dto.d.ts.map +1 -0
- package/dist/tool-fixtures/dto/update-tool-fixture.dto.js +9 -0
- package/dist/tool-fixtures/dto/update-tool-fixture.dto.js.map +1 -0
- package/dist/tool-fixtures/index.d.ts +7 -0
- package/dist/tool-fixtures/index.d.ts.map +1 -0
- package/dist/tool-fixtures/index.js +23 -0
- package/dist/tool-fixtures/index.js.map +1 -0
- package/dist/tool-fixtures/mock-resolver.service.d.ts +48 -0
- package/dist/tool-fixtures/mock-resolver.service.d.ts.map +1 -0
- package/dist/tool-fixtures/mock-resolver.service.js +99 -0
- package/dist/tool-fixtures/mock-resolver.service.js.map +1 -0
- package/dist/tool-fixtures/schemas/tool-fixture.schema.d.ts +35 -0
- package/dist/tool-fixtures/schemas/tool-fixture.schema.d.ts.map +1 -0
- package/dist/tool-fixtures/schemas/tool-fixture.schema.js +87 -0
- package/dist/tool-fixtures/schemas/tool-fixture.schema.js.map +1 -0
- package/dist/tool-fixtures/tool-fixture.controller.d.ts +45 -0
- package/dist/tool-fixtures/tool-fixture.controller.d.ts.map +1 -0
- package/dist/tool-fixtures/tool-fixture.controller.js +223 -0
- package/dist/tool-fixtures/tool-fixture.controller.js.map +1 -0
- package/dist/tool-fixtures/tool-fixture.module.d.ts +3 -0
- package/dist/tool-fixtures/tool-fixture.module.d.ts.map +1 -0
- package/dist/tool-fixtures/tool-fixture.module.js +31 -0
- package/dist/tool-fixtures/tool-fixture.module.js.map +1 -0
- package/dist/tool-fixtures/tool-fixture.service.d.ts +59 -0
- package/dist/tool-fixtures/tool-fixture.service.d.ts.map +1 -0
- package/dist/tool-fixtures/tool-fixture.service.js +198 -0
- package/dist/tool-fixtures/tool-fixture.service.js.map +1 -0
- package/package.json +47 -0
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateScenario = validateScenario;
|
|
4
|
+
exports.validatePersona = validatePersona;
|
|
5
|
+
exports.validateCriterion = validateCriterion;
|
|
6
|
+
exports.validateScorecard = validateScorecard;
|
|
7
|
+
exports.parseJsonResponse = parseJsonResponse;
|
|
8
|
+
exports.generateTestSuite = generateTestSuite;
|
|
9
|
+
const openai_adapter_1 = require("../adapters/openai.adapter");
|
|
10
|
+
const anthropic_adapter_1 = require("../adapters/anthropic.adapter");
|
|
11
|
+
const llm_config_resolver_1 = require("../execution/llm-config-resolver");
|
|
12
|
+
// Valid enum values from schemas — used to validate LLM output
|
|
13
|
+
const VALID_CATEGORIES = ['support', 'sales', 'booking', 'technical', 'onboarding', 'feedback'];
|
|
14
|
+
const VALID_DIFFICULTIES = ['easy', 'medium', 'hard'];
|
|
15
|
+
const VALID_EMOTIONS = ['friendly', 'distracted', 'polite', 'concerned', 'stressed', 'annoyed', 'neutral', 'calm', 'frustrated', 'curious', 'irritated'];
|
|
16
|
+
const VALID_GENDERS = ['male', 'female'];
|
|
17
|
+
const VALID_COOPERATION = ['very cooperative', 'cooperative', 'neutral', 'difficult', 'hostile'];
|
|
18
|
+
const VALID_PATIENCE = ['very patient', 'patient', 'neutral', 'impatient', 'very impatient'];
|
|
19
|
+
const VALID_COMMUNICATION = ['direct', 'indirect', 'verbose', 'concise', 'rambling'];
|
|
20
|
+
const VALID_PERSONALITY = ['friendly', 'professional', 'assertive', 'passive', 'demanding'];
|
|
21
|
+
const VALID_SPEECH_STYLES = ['slow', 'fast', 'normal', 'moderate'];
|
|
22
|
+
const VALID_INTENT_CLARITY = ['very clear', 'slightly unclear', 'slurred', 'slightly slurred', 'mumbled', 'unclear'];
|
|
23
|
+
const VALID_CRITERIA_TYPES = ['prompt', 'keyword', 'response_time', 'tool_call', 'hallucination', 'knowledge_retention', 'conversation_completeness', 'role_adherence', 'rag_faithfulness'];
|
|
24
|
+
const GENERATION_SYSTEM_PROMPT = `You are an AI agent test suite generator. Given an agent's system prompt, you generate realistic test scenarios, personas, and evaluation scorecards.
|
|
25
|
+
|
|
26
|
+
You MUST respond with valid JSON only — no markdown, no code fences, no explanation text.
|
|
27
|
+
|
|
28
|
+
## Rules
|
|
29
|
+
- Scenarios are situations a CUSTOMER brings to the agent (written in first person from the customer's perspective)
|
|
30
|
+
- Personas are the simulated customers who will interact with the agent
|
|
31
|
+
- Each persona should match a scenario's difficulty level
|
|
32
|
+
- Scorecards define how to evaluate the agent's performance
|
|
33
|
+
- Use ONLY the exact enum values provided below
|
|
34
|
+
|
|
35
|
+
## Valid Enum Values
|
|
36
|
+
|
|
37
|
+
Categories: ${JSON.stringify(VALID_CATEGORIES)}
|
|
38
|
+
Difficulties: ${JSON.stringify(VALID_DIFFICULTIES)}
|
|
39
|
+
Emotions: ${JSON.stringify(VALID_EMOTIONS)}
|
|
40
|
+
Genders: ${JSON.stringify(VALID_GENDERS)}
|
|
41
|
+
Cooperation levels: ${JSON.stringify(VALID_COOPERATION)}
|
|
42
|
+
Patience levels: ${JSON.stringify(VALID_PATIENCE)}
|
|
43
|
+
Communication styles: ${JSON.stringify(VALID_COMMUNICATION)}
|
|
44
|
+
Personality types: ${JSON.stringify(VALID_PERSONALITY)}
|
|
45
|
+
Speech styles: ${JSON.stringify(VALID_SPEECH_STYLES)}
|
|
46
|
+
Intent clarity: ${JSON.stringify(VALID_INTENT_CLARITY)}
|
|
47
|
+
Criteria types: ${JSON.stringify(VALID_CRITERIA_TYPES)}
|
|
48
|
+
|
|
49
|
+
## Difficulty → Persona Trait Mapping
|
|
50
|
+
- easy: friendly/calm emotion, very cooperative/cooperative, patient, direct communication
|
|
51
|
+
- medium: concerned/stressed emotion, neutral cooperation, neutral patience, indirect/verbose communication
|
|
52
|
+
- hard: frustrated/irritated/annoyed emotion, difficult/hostile cooperation, impatient/very impatient, rambling/indirect communication
|
|
53
|
+
|
|
54
|
+
## Criteria Type Settings
|
|
55
|
+
- prompt: { "description": "What to evaluate", "evaluationType": "score" }
|
|
56
|
+
- keyword: { "matchType": "must_contain"|"must_not_contain", "keyword": ["word1","word2"] }
|
|
57
|
+
- response_time: { "participant": "agent" }
|
|
58
|
+
- tool_call: { "expectedTool": "tool_name" }
|
|
59
|
+
- hallucination: { "description": "What facts to check", "evaluationType": "boolean" }
|
|
60
|
+
- knowledge_retention: { "description": "What to remember", "evaluationType": "score" }
|
|
61
|
+
- conversation_completeness: { "description": "What must be covered", "evaluationType": "score" }
|
|
62
|
+
- role_adherence: { "description": "Expected agent role", "evaluationType": "score" }`;
|
|
63
|
+
function buildGenerationPrompt(request) {
|
|
64
|
+
const count = request.count || 10;
|
|
65
|
+
const difficulties = request.difficulties || ['easy', 'medium', 'hard'];
|
|
66
|
+
const adversarial = request.includeAdversarial ? 'Include 2-3 adversarial/edge-case scenarios (hostile customer, confused customer, customer trying to exploit the system).' : '';
|
|
67
|
+
const domainHint = request.domain ? `Domain: ${request.domain}.` : 'Auto-detect the domain from the system prompt.';
|
|
68
|
+
return `Generate a test suite for this AI agent.
|
|
69
|
+
|
|
70
|
+
## Agent System Prompt
|
|
71
|
+
${request.systemPrompt}
|
|
72
|
+
|
|
73
|
+
## Requirements
|
|
74
|
+
- Generate exactly ${count} scenarios
|
|
75
|
+
- Distribute across difficulties: ${JSON.stringify(difficulties)}
|
|
76
|
+
- Generate one persona per scenario (matching difficulty)
|
|
77
|
+
- Generate one scorecard with 5-8 criteria covering the most important evaluation dimensions
|
|
78
|
+
- ${domainHint}
|
|
79
|
+
${adversarial}
|
|
80
|
+
|
|
81
|
+
## Response Format
|
|
82
|
+
{
|
|
83
|
+
"domain": "detected domain name",
|
|
84
|
+
"summary": "1-2 sentence description of what was generated",
|
|
85
|
+
"scenarios": [
|
|
86
|
+
{
|
|
87
|
+
"name": "Short descriptive name",
|
|
88
|
+
"description": "What this scenario tests",
|
|
89
|
+
"prompt": "First-person customer opening line (1-2 sentences)",
|
|
90
|
+
"category": "one of the valid categories",
|
|
91
|
+
"difficulty": "easy|medium|hard",
|
|
92
|
+
"tags": ["tag1", "tag2"],
|
|
93
|
+
"context": {
|
|
94
|
+
"situation": "What's happening",
|
|
95
|
+
"objective": "What the customer wants",
|
|
96
|
+
"background": "Any relevant context"
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
],
|
|
100
|
+
"personas": [
|
|
101
|
+
{
|
|
102
|
+
"name": "Realistic full name",
|
|
103
|
+
"gender": "male|female",
|
|
104
|
+
"emotion": "from valid emotions list",
|
|
105
|
+
"language": "english",
|
|
106
|
+
"accent": "american",
|
|
107
|
+
"intentClarity": "from valid list",
|
|
108
|
+
"speechStyle": "from valid list",
|
|
109
|
+
"backgroundNoise": false,
|
|
110
|
+
"allowInterruptions": false,
|
|
111
|
+
"description": "Brief character description",
|
|
112
|
+
"backstory": "You are... (first person backstory)",
|
|
113
|
+
"behavior": {
|
|
114
|
+
"personality": "from valid list",
|
|
115
|
+
"cooperationLevel": "from valid list",
|
|
116
|
+
"patience": "from valid list",
|
|
117
|
+
"communicationStyle": "from valid list"
|
|
118
|
+
},
|
|
119
|
+
"variables": { "key": "value for scenario context" },
|
|
120
|
+
"tags": ["tag1"]
|
|
121
|
+
}
|
|
122
|
+
],
|
|
123
|
+
"scorecard": {
|
|
124
|
+
"name": "Scorecard name",
|
|
125
|
+
"description": "What this scorecard evaluates",
|
|
126
|
+
"criteria": [
|
|
127
|
+
{
|
|
128
|
+
"key": "snake_case_key",
|
|
129
|
+
"name": "Human readable name",
|
|
130
|
+
"description": "What this criterion evaluates",
|
|
131
|
+
"type": "from valid criteria types",
|
|
132
|
+
"settings": { ... },
|
|
133
|
+
"threshold": { "min": 7 }
|
|
134
|
+
}
|
|
135
|
+
]
|
|
136
|
+
}
|
|
137
|
+
}`;
|
|
138
|
+
}
|
|
139
|
+
/** @internal Exported for testing */
|
|
140
|
+
function validateScenario(s) {
|
|
141
|
+
if (!s?.name || !s?.prompt)
|
|
142
|
+
return null;
|
|
143
|
+
return {
|
|
144
|
+
name: s.name,
|
|
145
|
+
description: s.description || '',
|
|
146
|
+
prompt: s.prompt,
|
|
147
|
+
category: VALID_CATEGORIES.includes(s.category) ? s.category : 'support',
|
|
148
|
+
difficulty: VALID_DIFFICULTIES.includes(s.difficulty) ? s.difficulty : 'medium',
|
|
149
|
+
tags: Array.isArray(s.tags) ? s.tags : [],
|
|
150
|
+
context: s.context || undefined,
|
|
151
|
+
groundTruth: s.groundTruth || undefined,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
/** @internal Exported for testing */
|
|
155
|
+
function validatePersona(p) {
|
|
156
|
+
if (!p?.name)
|
|
157
|
+
return null;
|
|
158
|
+
return {
|
|
159
|
+
name: p.name,
|
|
160
|
+
gender: VALID_GENDERS.includes(p.gender) ? p.gender : 'female',
|
|
161
|
+
emotion: VALID_EMOTIONS.includes(p.emotion) ? p.emotion : 'neutral',
|
|
162
|
+
language: 'english',
|
|
163
|
+
accent: p.accent || 'american',
|
|
164
|
+
intentClarity: VALID_INTENT_CLARITY.includes(p.intentClarity) ? p.intentClarity : 'very clear',
|
|
165
|
+
speechStyle: VALID_SPEECH_STYLES.includes(p.speechStyle) ? p.speechStyle : 'normal',
|
|
166
|
+
backgroundNoise: Boolean(p.backgroundNoise),
|
|
167
|
+
allowInterruptions: Boolean(p.allowInterruptions),
|
|
168
|
+
description: p.description || '',
|
|
169
|
+
backstory: p.backstory || '',
|
|
170
|
+
behavior: {
|
|
171
|
+
personality: VALID_PERSONALITY.includes(p.behavior?.personality) ? p.behavior.personality : 'professional',
|
|
172
|
+
cooperationLevel: VALID_COOPERATION.includes(p.behavior?.cooperationLevel) ? p.behavior.cooperationLevel : 'cooperative',
|
|
173
|
+
patience: VALID_PATIENCE.includes(p.behavior?.patience) ? p.behavior.patience : 'patient',
|
|
174
|
+
communicationStyle: VALID_COMMUNICATION.includes(p.behavior?.communicationStyle) ? p.behavior.communicationStyle : 'direct',
|
|
175
|
+
},
|
|
176
|
+
variables: typeof p.variables === 'object' && !Array.isArray(p.variables) ? p.variables : {},
|
|
177
|
+
tags: Array.isArray(p.tags) ? p.tags : [],
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
/** @internal Exported for testing */
|
|
181
|
+
function validateCriterion(c) {
|
|
182
|
+
if (!c?.key || !c?.name || !c?.type)
|
|
183
|
+
return null;
|
|
184
|
+
if (!VALID_CRITERIA_TYPES.includes(c.type))
|
|
185
|
+
return null;
|
|
186
|
+
return {
|
|
187
|
+
key: c.key,
|
|
188
|
+
name: c.name,
|
|
189
|
+
description: c.description || '',
|
|
190
|
+
type: c.type,
|
|
191
|
+
settings: c.settings || {},
|
|
192
|
+
threshold: c.threshold || undefined,
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
/** @internal Exported for testing */
|
|
196
|
+
function validateScorecard(sc) {
|
|
197
|
+
if (!sc?.name || !Array.isArray(sc?.criteria))
|
|
198
|
+
return null;
|
|
199
|
+
const criteria = sc.criteria.map(validateCriterion).filter(Boolean);
|
|
200
|
+
if (criteria.length === 0)
|
|
201
|
+
return null;
|
|
202
|
+
return {
|
|
203
|
+
name: sc.name,
|
|
204
|
+
description: sc.description || '',
|
|
205
|
+
criteria,
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
/** @internal Exported for testing */
|
|
209
|
+
function parseJsonResponse(text) {
|
|
210
|
+
// Strip markdown code fences if present
|
|
211
|
+
let cleaned = text.trim();
|
|
212
|
+
if (cleaned.startsWith('```')) {
|
|
213
|
+
cleaned = cleaned.replace(/^```(?:json)?\n?/, '').replace(/\n?```$/, '');
|
|
214
|
+
}
|
|
215
|
+
return JSON.parse(cleaned);
|
|
216
|
+
}
|
|
217
|
+
async function generateTestSuite(request) {
|
|
218
|
+
const resolved = (0, llm_config_resolver_1.resolveLlmConfigSync)(request.adapterType, request.adapterConfig);
|
|
219
|
+
if (!resolved) {
|
|
220
|
+
throw new Error('No LLM API key configured. Set CHANL_OPENAI_API_KEY or CHANL_ANTHROPIC_API_KEY environment variable, or provide adapterConfig.apiKey.');
|
|
221
|
+
}
|
|
222
|
+
const userPrompt = buildGenerationPrompt(request);
|
|
223
|
+
let responseText;
|
|
224
|
+
if (resolved.kind === 'openai') {
|
|
225
|
+
const adapter = new openai_adapter_1.OpenAIAdapter();
|
|
226
|
+
await adapter.connect({
|
|
227
|
+
apiKey: resolved.apiKey,
|
|
228
|
+
model: resolved.model || 'gpt-4o',
|
|
229
|
+
temperature: 0.7,
|
|
230
|
+
maxTokens: 8192,
|
|
231
|
+
systemPrompt: GENERATION_SYSTEM_PROMPT,
|
|
232
|
+
});
|
|
233
|
+
const res = await adapter.sendMessage(userPrompt, []);
|
|
234
|
+
await adapter.disconnect();
|
|
235
|
+
responseText = res.content;
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
const adapter = new anthropic_adapter_1.AnthropicAdapter();
|
|
239
|
+
await adapter.connect({
|
|
240
|
+
apiKey: resolved.apiKey,
|
|
241
|
+
model: resolved.model || 'claude-sonnet-4-20250514',
|
|
242
|
+
temperature: 0.7,
|
|
243
|
+
maxTokens: 8192,
|
|
244
|
+
systemPrompt: GENERATION_SYSTEM_PROMPT,
|
|
245
|
+
});
|
|
246
|
+
const res = await adapter.sendMessage(userPrompt, []);
|
|
247
|
+
await adapter.disconnect();
|
|
248
|
+
responseText = res.content;
|
|
249
|
+
}
|
|
250
|
+
const parsed = parseJsonResponse(responseText);
|
|
251
|
+
const scenarios = (parsed.scenarios || [])
|
|
252
|
+
.map(validateScenario)
|
|
253
|
+
.filter(Boolean);
|
|
254
|
+
const personas = (parsed.personas || [])
|
|
255
|
+
.map(validatePersona)
|
|
256
|
+
.filter(Boolean);
|
|
257
|
+
const scorecard = validateScorecard(parsed.scorecard);
|
|
258
|
+
if (!scorecard) {
|
|
259
|
+
throw new Error('LLM failed to generate a valid scorecard. Try again.');
|
|
260
|
+
}
|
|
261
|
+
if (scenarios.length === 0) {
|
|
262
|
+
throw new Error('LLM failed to generate any valid scenarios. Try again.');
|
|
263
|
+
}
|
|
264
|
+
return {
|
|
265
|
+
scenarios,
|
|
266
|
+
personas,
|
|
267
|
+
scorecard,
|
|
268
|
+
summary: parsed.summary || `Generated ${scenarios.length} scenarios with ${personas.length} personas`,
|
|
269
|
+
domain: parsed.domain || request.domain || 'general',
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
//# sourceMappingURL=scenario-generator.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scenario-generator.service.js","sourceRoot":"","sources":["../../src/generation/scenario-generator.service.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './personas';
|
|
2
|
+
export * from './scenarios';
|
|
3
|
+
export * from './adapters';
|
|
4
|
+
export * from './simulator';
|
|
5
|
+
export * from './templates';
|
|
6
|
+
export * from './execution';
|
|
7
|
+
export * from './tool-fixtures';
|
|
8
|
+
export * from './dataset';
|
|
9
|
+
export * from './generation';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
// @chanl-ai/scenarios-core
|
|
18
|
+
__exportStar(require("./personas"), exports);
|
|
19
|
+
__exportStar(require("./scenarios"), exports);
|
|
20
|
+
__exportStar(require("./adapters"), exports);
|
|
21
|
+
__exportStar(require("./simulator"), exports);
|
|
22
|
+
__exportStar(require("./templates"), exports);
|
|
23
|
+
__exportStar(require("./execution"), exports);
|
|
24
|
+
__exportStar(require("./tool-fixtures"), exports);
|
|
25
|
+
__exportStar(require("./dataset"), exports);
|
|
26
|
+
__exportStar(require("./generation"), exports);
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2BAA2B;AAC3B,6CAA2B;AAC3B,8CAA4B;AAC5B,6CAA2B;AAC3B,8CAA4B;AAC5B,8CAA4B;AAC5B,8CAA4B;AAC5B,kDAAgC;AAChC,4CAA0B;AAC1B,+CAA6B"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export declare class CreatePersonaDto {
|
|
2
|
+
name: string;
|
|
3
|
+
gender: string;
|
|
4
|
+
emotion: string;
|
|
5
|
+
language: string;
|
|
6
|
+
accent: string;
|
|
7
|
+
intentClarity: string;
|
|
8
|
+
speechStyle: string;
|
|
9
|
+
backgroundNoise: boolean;
|
|
10
|
+
allowInterruptions: boolean;
|
|
11
|
+
description?: string;
|
|
12
|
+
backstory?: string;
|
|
13
|
+
variables?: Record<string, string>;
|
|
14
|
+
voiceId?: string;
|
|
15
|
+
voiceProvider?: string;
|
|
16
|
+
tags?: string[];
|
|
17
|
+
agentId?: string;
|
|
18
|
+
agentConfig?: {
|
|
19
|
+
promptTemplate?: string;
|
|
20
|
+
voice?: {
|
|
21
|
+
voiceId?: string;
|
|
22
|
+
provider?: 'elevenlabs' | 'azure' | 'google' | 'cartesia';
|
|
23
|
+
};
|
|
24
|
+
behavior?: {
|
|
25
|
+
interruptionFrequency?: 'never' | 'rare' | 'frequent';
|
|
26
|
+
responseSpeed?: 'slow' | 'normal' | 'fast';
|
|
27
|
+
verbosity?: 'terse' | 'normal' | 'verbose';
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
voice?: {
|
|
31
|
+
gender?: string;
|
|
32
|
+
age?: string;
|
|
33
|
+
accent?: string;
|
|
34
|
+
clarity?: string;
|
|
35
|
+
pace?: string;
|
|
36
|
+
volume?: string;
|
|
37
|
+
tone?: string;
|
|
38
|
+
voiceId?: string;
|
|
39
|
+
provider?: string;
|
|
40
|
+
};
|
|
41
|
+
behavior?: {
|
|
42
|
+
personality?: string;
|
|
43
|
+
emotionalState?: string;
|
|
44
|
+
cooperationLevel?: string;
|
|
45
|
+
patience?: string;
|
|
46
|
+
communicationStyle?: string;
|
|
47
|
+
};
|
|
48
|
+
conversationTraits?: {
|
|
49
|
+
allowInterruptions?: boolean;
|
|
50
|
+
interruptionFrequency?: string;
|
|
51
|
+
asksClarifyingQuestions?: boolean;
|
|
52
|
+
repeatsInformation?: boolean;
|
|
53
|
+
goesOffTopic?: boolean;
|
|
54
|
+
};
|
|
55
|
+
environment?: {
|
|
56
|
+
backgroundNoise?: boolean;
|
|
57
|
+
noiseType?: string;
|
|
58
|
+
connectionQuality?: string;
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=create-persona.dto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-persona.dto.d.ts","sourceRoot":"","sources":["../../../src/personas/dto/create-persona.dto.ts"],"names":[],"mappings":"AASA,qBAAa,gBAAgB;IAE3B,IAAI,EAAG,MAAM,CAAC;IAGd,MAAM,EAAG,MAAM,CAAC;IAehB,OAAO,EAAG,MAAM,CAAC;IAGjB,QAAQ,EAAG,MAAM,CAAC;IAgBlB,MAAM,EAAG,MAAM,CAAC;IAUhB,aAAa,EAAG,MAAM,CAAC;IAGvB,WAAW,EAAG,MAAM,CAAC;IAGrB,eAAe,EAAG,OAAO,CAAC;IAG1B,kBAAkB,EAAG,OAAO,CAAC;IAI7B,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,SAAS,CAAC,EAAE,MAAM,CAAC;IAInB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAInC,OAAO,CAAC,EAAE,MAAM,CAAC;IAIjB,aAAa,CAAC,EAAE,MAAM,CAAC;IAKvB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAIhB,OAAO,CAAC,EAAE,MAAM,CAAC;IAIjB,WAAW,CAAC,EAAE;QACZ,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,KAAK,CAAC,EAAE;YACN,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,QAAQ,CAAC,EAAE,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;SAC3D,CAAC;QACF,QAAQ,CAAC,EAAE;YACT,qBAAqB,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC;YACtD,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;YAC3C,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;SAC5C,CAAC;KACH,CAAC;IAIF,KAAK,CAAC,EAAE;QACN,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IAIF,QAAQ,CAAC,EAAE;QACT,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;KAC7B,CAAC;IAIF,kBAAkB,CAAC,EAAE;QACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,uBAAuB,CAAC,EAAE,OAAO,CAAC;QAClC,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;IAIF,WAAW,CAAC,EAAE;QACZ,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;CACH"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.CreatePersonaDto = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
class CreatePersonaDto {
|
|
15
|
+
}
|
|
16
|
+
exports.CreatePersonaDto = CreatePersonaDto;
|
|
17
|
+
__decorate([
|
|
18
|
+
(0, class_validator_1.IsString)(),
|
|
19
|
+
__metadata("design:type", String)
|
|
20
|
+
], CreatePersonaDto.prototype, "name", void 0);
|
|
21
|
+
__decorate([
|
|
22
|
+
(0, class_validator_1.IsEnum)(['male', 'female']),
|
|
23
|
+
__metadata("design:type", String)
|
|
24
|
+
], CreatePersonaDto.prototype, "gender", void 0);
|
|
25
|
+
__decorate([
|
|
26
|
+
(0, class_validator_1.IsEnum)([
|
|
27
|
+
'friendly',
|
|
28
|
+
'distracted',
|
|
29
|
+
'polite',
|
|
30
|
+
'concerned',
|
|
31
|
+
'stressed',
|
|
32
|
+
'annoyed',
|
|
33
|
+
'neutral',
|
|
34
|
+
'calm',
|
|
35
|
+
'frustrated',
|
|
36
|
+
'curious',
|
|
37
|
+
'irritated',
|
|
38
|
+
]),
|
|
39
|
+
__metadata("design:type", String)
|
|
40
|
+
], CreatePersonaDto.prototype, "emotion", void 0);
|
|
41
|
+
__decorate([
|
|
42
|
+
(0, class_validator_1.IsEnum)(['english', 'spanish', 'portuguese']),
|
|
43
|
+
__metadata("design:type", String)
|
|
44
|
+
], CreatePersonaDto.prototype, "language", void 0);
|
|
45
|
+
__decorate([
|
|
46
|
+
(0, class_validator_1.IsEnum)([
|
|
47
|
+
'american',
|
|
48
|
+
'british',
|
|
49
|
+
'australian',
|
|
50
|
+
'canadian',
|
|
51
|
+
'irish',
|
|
52
|
+
'scottish',
|
|
53
|
+
'mexican',
|
|
54
|
+
'argentinian',
|
|
55
|
+
'colombian',
|
|
56
|
+
'brazilian',
|
|
57
|
+
'portuguese',
|
|
58
|
+
'other',
|
|
59
|
+
]),
|
|
60
|
+
__metadata("design:type", String)
|
|
61
|
+
], CreatePersonaDto.prototype, "accent", void 0);
|
|
62
|
+
__decorate([
|
|
63
|
+
(0, class_validator_1.IsEnum)([
|
|
64
|
+
'very clear',
|
|
65
|
+
'slightly unclear',
|
|
66
|
+
'slurred',
|
|
67
|
+
'slightly slurred',
|
|
68
|
+
'mumbled',
|
|
69
|
+
'unclear',
|
|
70
|
+
]),
|
|
71
|
+
__metadata("design:type", String)
|
|
72
|
+
], CreatePersonaDto.prototype, "intentClarity", void 0);
|
|
73
|
+
__decorate([
|
|
74
|
+
(0, class_validator_1.IsEnum)(['slow', 'fast', 'normal', 'moderate']),
|
|
75
|
+
__metadata("design:type", String)
|
|
76
|
+
], CreatePersonaDto.prototype, "speechStyle", void 0);
|
|
77
|
+
__decorate([
|
|
78
|
+
(0, class_validator_1.IsBoolean)(),
|
|
79
|
+
__metadata("design:type", Boolean)
|
|
80
|
+
], CreatePersonaDto.prototype, "backgroundNoise", void 0);
|
|
81
|
+
__decorate([
|
|
82
|
+
(0, class_validator_1.IsBoolean)(),
|
|
83
|
+
__metadata("design:type", Boolean)
|
|
84
|
+
], CreatePersonaDto.prototype, "allowInterruptions", void 0);
|
|
85
|
+
__decorate([
|
|
86
|
+
(0, class_validator_1.IsOptional)(),
|
|
87
|
+
(0, class_validator_1.IsString)(),
|
|
88
|
+
__metadata("design:type", String)
|
|
89
|
+
], CreatePersonaDto.prototype, "description", void 0);
|
|
90
|
+
__decorate([
|
|
91
|
+
(0, class_validator_1.IsOptional)(),
|
|
92
|
+
(0, class_validator_1.IsString)(),
|
|
93
|
+
__metadata("design:type", String)
|
|
94
|
+
], CreatePersonaDto.prototype, "backstory", void 0);
|
|
95
|
+
__decorate([
|
|
96
|
+
(0, class_validator_1.IsOptional)(),
|
|
97
|
+
(0, class_validator_1.IsObject)(),
|
|
98
|
+
__metadata("design:type", Object)
|
|
99
|
+
], CreatePersonaDto.prototype, "variables", void 0);
|
|
100
|
+
__decorate([
|
|
101
|
+
(0, class_validator_1.IsOptional)(),
|
|
102
|
+
(0, class_validator_1.IsString)(),
|
|
103
|
+
__metadata("design:type", String)
|
|
104
|
+
], CreatePersonaDto.prototype, "voiceId", void 0);
|
|
105
|
+
__decorate([
|
|
106
|
+
(0, class_validator_1.IsOptional)(),
|
|
107
|
+
(0, class_validator_1.IsEnum)(['elevenlabs', 'azure', 'google', 'chanl']),
|
|
108
|
+
__metadata("design:type", String)
|
|
109
|
+
], CreatePersonaDto.prototype, "voiceProvider", void 0);
|
|
110
|
+
__decorate([
|
|
111
|
+
(0, class_validator_1.IsOptional)(),
|
|
112
|
+
(0, class_validator_1.IsArray)(),
|
|
113
|
+
(0, class_validator_1.IsString)({ each: true }),
|
|
114
|
+
__metadata("design:type", Array)
|
|
115
|
+
], CreatePersonaDto.prototype, "tags", void 0);
|
|
116
|
+
__decorate([
|
|
117
|
+
(0, class_validator_1.IsOptional)(),
|
|
118
|
+
(0, class_validator_1.IsString)(),
|
|
119
|
+
__metadata("design:type", String)
|
|
120
|
+
], CreatePersonaDto.prototype, "agentId", void 0);
|
|
121
|
+
__decorate([
|
|
122
|
+
(0, class_validator_1.IsOptional)(),
|
|
123
|
+
(0, class_validator_1.IsObject)(),
|
|
124
|
+
__metadata("design:type", Object)
|
|
125
|
+
], CreatePersonaDto.prototype, "agentConfig", void 0);
|
|
126
|
+
__decorate([
|
|
127
|
+
(0, class_validator_1.IsOptional)(),
|
|
128
|
+
(0, class_validator_1.IsObject)(),
|
|
129
|
+
__metadata("design:type", Object)
|
|
130
|
+
], CreatePersonaDto.prototype, "voice", void 0);
|
|
131
|
+
__decorate([
|
|
132
|
+
(0, class_validator_1.IsOptional)(),
|
|
133
|
+
(0, class_validator_1.IsObject)(),
|
|
134
|
+
__metadata("design:type", Object)
|
|
135
|
+
], CreatePersonaDto.prototype, "behavior", void 0);
|
|
136
|
+
__decorate([
|
|
137
|
+
(0, class_validator_1.IsOptional)(),
|
|
138
|
+
(0, class_validator_1.IsObject)(),
|
|
139
|
+
__metadata("design:type", Object)
|
|
140
|
+
], CreatePersonaDto.prototype, "conversationTraits", void 0);
|
|
141
|
+
__decorate([
|
|
142
|
+
(0, class_validator_1.IsOptional)(),
|
|
143
|
+
(0, class_validator_1.IsObject)(),
|
|
144
|
+
__metadata("design:type", Object)
|
|
145
|
+
], CreatePersonaDto.prototype, "environment", void 0);
|
|
146
|
+
//# sourceMappingURL=create-persona.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-persona.dto.js","sourceRoot":"","sources":["../../../src/personas/dto/create-persona.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAOyB;AAEzB,MAAa,gBAAgB;CAiJ5B;AAjJD,4CAiJC;AA/IC;IADC,IAAA,0BAAQ,GAAE;;8CACG;AAGd;IADC,IAAA,wBAAM,EAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;;gDACX;AAehB;IAbC,IAAA,wBAAM,EAAC;QACN,UAAU;QACV,YAAY;QACZ,QAAQ;QACR,WAAW;QACX,UAAU;QACV,SAAS;QACT,SAAS;QACT,MAAM;QACN,YAAY;QACZ,SAAS;QACT,WAAW;KACZ,CAAC;;iDACe;AAGjB;IADC,IAAA,wBAAM,EAAC,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;;kDAC3B;AAgBlB;IAdC,IAAA,wBAAM,EAAC;QACN,UAAU;QACV,SAAS;QACT,YAAY;QACZ,UAAU;QACV,OAAO;QACP,UAAU;QACV,SAAS;QACT,aAAa;QACb,WAAW;QACX,WAAW;QACX,YAAY;QACZ,OAAO;KACR,CAAC;;gDACc;AAUhB;IARC,IAAA,wBAAM,EAAC;QACN,YAAY;QACZ,kBAAkB;QAClB,SAAS;QACT,kBAAkB;QAClB,SAAS;QACT,SAAS;KACV,CAAC;;uDACqB;AAGvB;IADC,IAAA,wBAAM,EAAC,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;;qDAC1B;AAGrB;IADC,IAAA,2BAAS,GAAE;;yDACc;AAG1B;IADC,IAAA,2BAAS,GAAE;;4DACiB;AAI7B;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;qDACU;AAIrB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;mDACQ;AAInB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;mDACwB;AAInC;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;iDACM;AAIjB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,EAAC,CAAC,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;;uDAC5B;AAKvB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;IACT,IAAA,0BAAQ,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;8CACT;AAIhB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;iDACM;AAIjB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;qDAYT;AAIF;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;+CAWT;AAIF;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;kDAOT;AAIF;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;4DAOT;AAIF;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;qDAKT"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/personas/dto/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./create-persona.dto"), exports);
|
|
18
|
+
__exportStar(require("./update-persona.dto"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/personas/dto/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,uDAAqC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { CreatePersonaDto } from './create-persona.dto';
|
|
2
|
+
declare const UpdatePersonaDto_base: import("@nestjs/mapped-types").MappedType<Partial<CreatePersonaDto>>;
|
|
3
|
+
export declare class UpdatePersonaDto extends UpdatePersonaDto_base {
|
|
4
|
+
isActive?: boolean;
|
|
5
|
+
isDefault?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=update-persona.dto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-persona.dto.d.ts","sourceRoot":"","sources":["../../../src/personas/dto/update-persona.dto.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;;AAExD,qBAAa,gBAAiB,SAAQ,qBAA6B;IAGjE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAInB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.UpdatePersonaDto = void 0;
|
|
13
|
+
const mapped_types_1 = require("@nestjs/mapped-types");
|
|
14
|
+
const class_validator_1 = require("class-validator");
|
|
15
|
+
const create_persona_dto_1 = require("./create-persona.dto");
|
|
16
|
+
class UpdatePersonaDto extends (0, mapped_types_1.PartialType)(create_persona_dto_1.CreatePersonaDto) {
|
|
17
|
+
}
|
|
18
|
+
exports.UpdatePersonaDto = UpdatePersonaDto;
|
|
19
|
+
__decorate([
|
|
20
|
+
(0, class_validator_1.IsOptional)(),
|
|
21
|
+
(0, class_validator_1.IsBoolean)(),
|
|
22
|
+
__metadata("design:type", Boolean)
|
|
23
|
+
], UpdatePersonaDto.prototype, "isActive", void 0);
|
|
24
|
+
__decorate([
|
|
25
|
+
(0, class_validator_1.IsOptional)(),
|
|
26
|
+
(0, class_validator_1.IsBoolean)(),
|
|
27
|
+
__metadata("design:type", Boolean)
|
|
28
|
+
], UpdatePersonaDto.prototype, "isDefault", void 0);
|
|
29
|
+
//# sourceMappingURL=update-persona.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-persona.dto.js","sourceRoot":"","sources":["../../../src/personas/dto/update-persona.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uDAAmD;AACnD,qDAAwD;AACxD,6DAAwD;AAExD,MAAa,gBAAiB,SAAQ,IAAA,0BAAW,EAAC,qCAAgB,CAAC;CAQlE;AARD,4CAQC;AALC;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,GAAE;;kDACO;AAInB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,GAAE;;mDACQ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/personas/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,OAAO,CAAC"}
|