@telnyx/voice-agent-tester 0.4.0 ā 0.4.1
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.
|
@@ -46,8 +46,8 @@ jobs:
|
|
|
46
46
|
|
|
47
47
|
- name: Setup Git user
|
|
48
48
|
run: |
|
|
49
|
-
git config user.name
|
|
50
|
-
git config user.email
|
|
49
|
+
git config user.name "github-actions[bot]"
|
|
50
|
+
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
|
51
51
|
|
|
52
52
|
- name: Use Node.js 20.x
|
|
53
53
|
uses: actions/setup-node@v4
|
|
@@ -64,9 +64,44 @@ jobs:
|
|
|
64
64
|
env:
|
|
65
65
|
CI: true
|
|
66
66
|
|
|
67
|
-
- name:
|
|
67
|
+
- name: Determine next version
|
|
68
|
+
id: version
|
|
68
69
|
run: |
|
|
69
|
-
npx release-it --ci --
|
|
70
|
+
NEXT=$(npx release-it --ci --release-version${{ env.INCREMENT_ARG }}${{ env.PRERELEASE_ARGS }} 2>/dev/null)
|
|
71
|
+
echo "next=$NEXT" >> "$GITHUB_OUTPUT"
|
|
72
|
+
echo "branch=release/v$NEXT" >> "$GITHUB_OUTPUT"
|
|
73
|
+
env:
|
|
74
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
75
|
+
|
|
76
|
+
- name: Create release branch
|
|
77
|
+
run: |
|
|
78
|
+
git checkout -b "${{ steps.version.outputs.branch }}"
|
|
79
|
+
|
|
80
|
+
- name: Create draft release on branch
|
|
81
|
+
run: |
|
|
82
|
+
npx release-it --ci --github.draft --no-npm.publish --no-git.push --no-git.requireUpstream${{ env.INCREMENT_ARG }}${{ env.PRERELEASE_ARGS }}
|
|
70
83
|
env:
|
|
71
84
|
NPM_TOKEN: ${{ secrets.NPM_CI_TOKEN }}
|
|
72
85
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
86
|
+
|
|
87
|
+
- name: Push release branch
|
|
88
|
+
run: |
|
|
89
|
+
git push origin "${{ steps.version.outputs.branch }}"
|
|
90
|
+
|
|
91
|
+
- name: Create pull request
|
|
92
|
+
run: |
|
|
93
|
+
gh pr create \
|
|
94
|
+
--title "chore: release v${{ steps.version.outputs.next }}" \
|
|
95
|
+
--body "## Release v${{ steps.version.outputs.next }}
|
|
96
|
+
|
|
97
|
+
Automated release PR created by the draft-release workflow.
|
|
98
|
+
|
|
99
|
+
- Version bump in \`package.json\`
|
|
100
|
+
- Updated \`CHANGELOG.md\`
|
|
101
|
+
- Draft GitHub release created
|
|
102
|
+
|
|
103
|
+
**After merging**, publish the release from the [releases page](https://github.com/${{ github.repository }}/releases)." \
|
|
104
|
+
--base "${{ env.TARGET_REF }}" \
|
|
105
|
+
--head "${{ steps.version.outputs.branch }}"
|
|
106
|
+
env:
|
|
107
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -19,8 +19,8 @@ jobs:
|
|
|
19
19
|
|
|
20
20
|
- name: Setup Git user
|
|
21
21
|
run: |
|
|
22
|
-
git config user.name
|
|
23
|
-
git config user.email
|
|
22
|
+
git config user.name "github-actions[bot]"
|
|
23
|
+
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
|
24
24
|
|
|
25
25
|
- name: Use Node.js 20.x
|
|
26
26
|
uses: actions/setup-node@v4
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.4.1](https://github.com/team-telnyx/voice-agent-tester/compare/v0.4.0...v0.4.1) (2026-02-18)
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
* require provider-specific params for comparison mode ([#10](https://github.com/team-telnyx/voice-agent-tester/issues/10)) ([db9eb27](https://github.com/team-telnyx/voice-agent-tester/commit/db9eb273c139374a9f6358126113cab92f8f5b32))
|
|
8
|
+
* use Qwen/Qwen3-235B-A22B as model for imported assistants ([#11](https://github.com/team-telnyx/voice-agent-tester/issues/11)) ([3c4ed0a](https://github.com/team-telnyx/voice-agent-tester/commit/3c4ed0a14498833544f1797426b234585adcb49b))
|
|
9
|
+
|
|
10
|
+
### Bug Fixes
|
|
11
|
+
|
|
12
|
+
* add --no-git.requireUpstream to release-it in draft workflow ([#14](https://github.com/team-telnyx/voice-agent-tester/issues/14)) ([9553e65](https://github.com/team-telnyx/voice-agent-tester/commit/9553e65bdc6f0094853895da6b806befc5a898f6))
|
|
13
|
+
* use triggering user as git author and create PR for releases ([#13](https://github.com/team-telnyx/voice-agent-tester/issues/13)) ([8ebecba](https://github.com/team-telnyx/voice-agent-tester/commit/8ebecba1839985949e46bec457f327711f89138d))
|
|
14
|
+
|
|
3
15
|
## [0.4.0](https://github.com/team-telnyx/voice-agent-tester/compare/v0.3.0...v0.4.0) (2026-01-26)
|
|
4
16
|
|
|
5
17
|
### Features
|
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -87,6 +87,50 @@ function substituteUrlParams(url, params) {
|
|
|
87
87
|
return result;
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
+
/**
|
|
91
|
+
* Get the list of missing provider-specific parameters required for comparison mode.
|
|
92
|
+
* Each provider has its own set of required params for the direct widget benchmark.
|
|
93
|
+
*
|
|
94
|
+
* @param {Object} argv - Parsed CLI arguments
|
|
95
|
+
* @returns {Array<{key: string, flag: string, description: string}>} Missing params
|
|
96
|
+
*/
|
|
97
|
+
function getCompareRequiredParams(argv) {
|
|
98
|
+
const missing = [];
|
|
99
|
+
|
|
100
|
+
switch (argv.provider) {
|
|
101
|
+
case 'vapi':
|
|
102
|
+
if (!argv.shareKey) {
|
|
103
|
+
missing.push({ key: 'shareKey', flag: '--share-key', description: 'Vapi share key' });
|
|
104
|
+
}
|
|
105
|
+
break;
|
|
106
|
+
case 'elevenlabs':
|
|
107
|
+
if (!argv.branchId) {
|
|
108
|
+
missing.push({ key: 'branchId', flag: '--branch-id', description: 'ElevenLabs branch ID' });
|
|
109
|
+
}
|
|
110
|
+
break;
|
|
111
|
+
// retell and others: no extra params needed yet
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
return missing;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Get provider-specific template parameters for comparison mode URL/HTML substitution.
|
|
119
|
+
*
|
|
120
|
+
* @param {Object} argv - Parsed CLI arguments
|
|
121
|
+
* @returns {Object} Template params to merge into provider params
|
|
122
|
+
*/
|
|
123
|
+
function getCompareTemplateParams(argv) {
|
|
124
|
+
switch (argv.provider) {
|
|
125
|
+
case 'vapi':
|
|
126
|
+
return { shareKey: argv.shareKey };
|
|
127
|
+
case 'elevenlabs':
|
|
128
|
+
return { branchId: argv.branchId };
|
|
129
|
+
default:
|
|
130
|
+
return {};
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
90
134
|
// Helper function to load and validate application config
|
|
91
135
|
function loadApplicationConfig(configPath, params = {}) {
|
|
92
136
|
const configFile = fs.readFileSync(configPath, 'utf8');
|
|
@@ -235,6 +279,14 @@ const argv = yargs(hideBin(process.argv))
|
|
|
235
279
|
type: 'string',
|
|
236
280
|
description: 'Provider assistant/agent ID to import (required with --provider)'
|
|
237
281
|
})
|
|
282
|
+
.option('share-key', {
|
|
283
|
+
type: 'string',
|
|
284
|
+
description: 'Vapi share key for direct widget testing (required for comparison mode with --provider vapi)'
|
|
285
|
+
})
|
|
286
|
+
.option('branch-id', {
|
|
287
|
+
type: 'string',
|
|
288
|
+
description: 'ElevenLabs branch ID for direct widget testing (required for comparison mode with --provider elevenlabs)'
|
|
289
|
+
})
|
|
238
290
|
.option('assistant-id', {
|
|
239
291
|
type: 'string',
|
|
240
292
|
description: 'Assistant/agent ID for direct benchmarking (works with all providers)'
|
|
@@ -456,8 +508,8 @@ async function main() {
|
|
|
456
508
|
// Parse URL parameters for template substitution
|
|
457
509
|
const params = parseParams(argv.params);
|
|
458
510
|
|
|
459
|
-
// Determine if we should run comparison benchmark
|
|
460
|
-
|
|
511
|
+
// Determine if we should run comparison benchmark (may be updated later if public key is missing)
|
|
512
|
+
let shouldCompare = argv.provider && argv.compare && !argv.noCompare;
|
|
461
513
|
|
|
462
514
|
// Store credentials for potential comparison run
|
|
463
515
|
let telnyxApiKey = argv.apiKey;
|
|
@@ -492,6 +544,29 @@ async function main() {
|
|
|
492
544
|
}
|
|
493
545
|
}
|
|
494
546
|
|
|
547
|
+
// Require provider-specific params when comparison mode is enabled
|
|
548
|
+
if (shouldCompare) {
|
|
549
|
+
const missingParams = getCompareRequiredParams(argv);
|
|
550
|
+
if (missingParams.length > 0) {
|
|
551
|
+
for (const param of missingParams) {
|
|
552
|
+
console.log(`\nš ${param.description} is required for comparison mode`);
|
|
553
|
+
const inputVal = await promptUserInput(`Enter ${param.description} (or press Enter to skip comparison): `);
|
|
554
|
+
if (inputVal) {
|
|
555
|
+
argv[param.key] = inputVal;
|
|
556
|
+
} else {
|
|
557
|
+
console.warn(`ā ļø Missing ${param.flag}. Disabling comparison mode (--no-compare).`);
|
|
558
|
+
console.warn(` To run comparison benchmarks, pass ${param.flag} <value>\n`);
|
|
559
|
+
argv.compare = false;
|
|
560
|
+
argv.noCompare = true;
|
|
561
|
+
break;
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
// Re-evaluate shouldCompare after potential public key prompt
|
|
568
|
+
shouldCompare = argv.provider && argv.compare && !argv.noCompare;
|
|
569
|
+
|
|
495
570
|
const importResult = await importAssistantsFromProvider({
|
|
496
571
|
provider: argv.provider,
|
|
497
572
|
providerApiKey: providerApiKey,
|
|
@@ -583,7 +658,7 @@ async function main() {
|
|
|
583
658
|
|
|
584
659
|
// Phase 1: Provider Direct Benchmark
|
|
585
660
|
// Load provider-specific application config with provider assistant ID
|
|
586
|
-
const providerParams = { ...params, assistantId: providerImportId };
|
|
661
|
+
const providerParams = { ...params, assistantId: providerImportId, ...getCompareTemplateParams(argv) };
|
|
587
662
|
const providerAppPath = path.resolve(__packageDir, 'applications', `${argv.provider}.yaml`);
|
|
588
663
|
|
|
589
664
|
if (!fs.existsSync(providerAppPath)) {
|
package/src/provider-import.js
CHANGED
|
@@ -200,7 +200,7 @@ async function configureImportedAssistant({ assistantId, assistantName, telnyxAp
|
|
|
200
200
|
},
|
|
201
201
|
body: JSON.stringify({
|
|
202
202
|
name: newName,
|
|
203
|
-
model: 'Qwen/Qwen3-235B-
|
|
203
|
+
model: 'Qwen/Qwen3-235B-A22B',
|
|
204
204
|
telephony_settings: {
|
|
205
205
|
supports_unauthenticated_web_calls: true
|
|
206
206
|
},
|