Skip to content

Commit 46e2378

Browse files
author
markos-cloud
committed
Initial commit
VoxGlide — embeddable voice AI SDK for web pages.
0 parents  commit 46e2378

164 files changed

Lines changed: 35832 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.editorconfig

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
root = true
2+
3+
[*]
4+
charset = utf-8
5+
end_of_line = lf
6+
insert_final_newline = true
7+
trim_trailing_whitespace = true
8+
indent_style = space
9+
indent_size = 2
10+
11+
[*.md]
12+
trim_trailing_whitespace = false
13+
14+
[Makefile]
15+
indent_style = tab
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
name: Bug Report
2+
description: Report a bug in VoxGlide
3+
labels: ["bug"]
4+
body:
5+
- type: textarea
6+
id: description
7+
attributes:
8+
label: Bug Description
9+
description: A clear and concise description of the bug.
10+
validations:
11+
required: true
12+
13+
- type: textarea
14+
id: steps
15+
attributes:
16+
label: Steps to Reproduce
17+
description: Steps to reproduce the behavior.
18+
placeholder: |
19+
1. Configure SDK with ...
20+
2. Open page ...
21+
3. Say/type "..."
22+
4. See error
23+
validations:
24+
required: true
25+
26+
- type: textarea
27+
id: expected
28+
attributes:
29+
label: Expected Behavior
30+
description: What you expected to happen.
31+
validations:
32+
required: true
33+
34+
- type: textarea
35+
id: actual
36+
attributes:
37+
label: Actual Behavior
38+
description: What actually happened.
39+
validations:
40+
required: true
41+
42+
- type: dropdown
43+
id: component
44+
attributes:
45+
label: Component
46+
options:
47+
- SDK (client)
48+
- Server (proxy)
49+
- Admin Dashboard
50+
- Documentation
51+
- Examples
52+
validations:
53+
required: true
54+
55+
- type: input
56+
id: version
57+
attributes:
58+
label: VoxGlide Version
59+
placeholder: "0.1.0"
60+
validations:
61+
required: true
62+
63+
- type: dropdown
64+
id: browser
65+
attributes:
66+
label: Browser
67+
options:
68+
- Chrome
69+
- Firefox
70+
- Safari
71+
- Edge
72+
- Other
73+
74+
- type: dropdown
75+
id: llm-provider
76+
attributes:
77+
label: LLM Provider
78+
options:
79+
- Gemini
80+
- OpenAI
81+
- Anthropic
82+
- Ollama
83+
- Other
84+
85+
- type: textarea
86+
id: logs
87+
attributes:
88+
label: Relevant Logs
89+
description: Paste any relevant log output (enable `debug: true` in SDK config).
90+
render: shell
91+
92+
- type: textarea
93+
id: context
94+
attributes:
95+
label: Additional Context
96+
description: Any other context, screenshots, or information.

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: Security Vulnerability
4+
url: https://github.com/billiax/voxglide/blob/main/SECURITY.md
5+
about: Do NOT open public issues for security vulnerabilities. See SECURITY.md for reporting instructions.
6+
- name: Documentation
7+
url: https://github.com/billiax/voxglide/tree/main/docs
8+
about: Browse the documentation for configuration, custom tools, workflows, and more.
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: Feature Request
2+
description: Suggest a new feature or enhancement
3+
labels: ["enhancement"]
4+
body:
5+
- type: textarea
6+
id: problem
7+
attributes:
8+
label: Problem Statement
9+
description: What problem does this feature solve? What use case does it enable?
10+
validations:
11+
required: true
12+
13+
- type: textarea
14+
id: solution
15+
attributes:
16+
label: Proposed Solution
17+
description: Describe the solution you'd like.
18+
validations:
19+
required: true
20+
21+
- type: textarea
22+
id: alternatives
23+
attributes:
24+
label: Alternatives Considered
25+
description: Any alternative solutions or workarounds you've considered.
26+
27+
- type: dropdown
28+
id: component
29+
attributes:
30+
label: Component
31+
options:
32+
- SDK (client)
33+
- Server (proxy)
34+
- Admin Dashboard
35+
- Documentation
36+
- Examples
37+
38+
- type: textarea
39+
id: context
40+
attributes:
41+
label: Additional Context
42+
description: Any other context, mockups, or examples.

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
## Description
2+
3+
<!-- What does this PR do? Why is it needed? -->
4+
5+
## Type of Change
6+
7+
- [ ] Bug fix (non-breaking change that fixes an issue)
8+
- [ ] New feature (non-breaking change that adds functionality)
9+
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
10+
- [ ] Refactor (no functional changes)
11+
- [ ] Documentation
12+
- [ ] Tests
13+
14+
## Checklist
15+
16+
- [ ] I have read the [Contributing Guide](CONTRIBUTING.md)
17+
- [ ] My code follows the project code style
18+
- [ ] I have added/updated tests for changed behavior
19+
- [ ] `npm run check` passes (typecheck + lint + test)
20+
- [ ] I have updated documentation if needed
21+
22+
## Related Issues
23+
24+
<!-- Link related issues: Fixes #123, Closes #456 -->
25+
26+
## Testing
27+
28+
<!-- Describe how you tested these changes -->

.github/workflows/ci.yml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
permissions:
10+
contents: read
11+
12+
jobs:
13+
check:
14+
name: Check
15+
runs-on: ubuntu-latest
16+
17+
steps:
18+
- uses: actions/checkout@v4
19+
20+
- uses: actions/setup-node@v4
21+
with:
22+
node-version: 22
23+
cache: npm
24+
25+
- name: Install dependencies
26+
run: npm ci
27+
28+
- name: Typecheck
29+
run: npm run typecheck
30+
31+
- name: Lint
32+
run: npm run lint
33+
34+
- name: Test
35+
run: npm test
36+
37+
- name: Build
38+
run: npm run build

.github/workflows/release.yml

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
permissions:
9+
contents: write
10+
id-token: write
11+
12+
jobs:
13+
release:
14+
name: Publish & Release
15+
runs-on: ubuntu-latest
16+
steps:
17+
- uses: actions/checkout@v4
18+
19+
- uses: actions/setup-node@v4
20+
with:
21+
node-version: 22
22+
cache: npm
23+
registry-url: https://registry.npmjs.org
24+
25+
- name: Install dependencies
26+
run: npm ci
27+
28+
- name: Check
29+
run: npm run check
30+
31+
- name: Build
32+
run: npm run build
33+
34+
- name: Publish to npm
35+
run: npm publish --provenance --access public
36+
env:
37+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
38+
39+
- name: Create GitHub Release
40+
uses: softprops/action-gh-release@v2
41+
with:
42+
generate_release_notes: true
43+
files: |
44+
dist/voice-sdk.esm.js
45+
dist/voice-sdk.iife.js

.gitignore

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Dependencies
2+
node_modules/
3+
server/node_modules/
4+
5+
# Build output
6+
dist/
7+
*.tsbuildinfo
8+
9+
# Environment
10+
.env
11+
.env.*
12+
13+
# Keys and certificates
14+
*.pem
15+
16+
# Logs
17+
*.log
18+
npm-debug.log*
19+
20+
# Coverage
21+
coverage/
22+
23+
# OS files
24+
.DS_Store
25+
Thumbs.db
26+
27+
# Editor/IDE
28+
.vscode/
29+
.idea/
30+
*.swp
31+
*.swo
32+
*~
33+
34+
# Alternative lock files (npm is canonical)
35+
yarn.lock
36+
pnpm-lock.yaml
37+
38+
# Claude Code
39+
.claude/worktrees/
40+
41+
# Misc
42+
.mcp.json
43+
.playwright-mcp/
44+
temp/

.npmignore

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
src/
2+
tests/
3+
server/
4+
extension/
5+
examples/
6+
.claude/
7+
.github/
8+
*.config.*
9+
rollup.config.mjs
10+
tsconfig.json
11+
vitest.config.ts
12+
eslint.config.mjs
13+
start-dev.sh
14+
CLAUDE.md
15+
.gitignore
16+
.npmignore

CHANGELOG.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [Unreleased]
9+
10+
## [0.1.0] - 2025-06-01
11+
12+
### Added
13+
14+
- Voice and text input modes with browser Speech API
15+
- Auto-context scanning (forms, headings, navigation, interactive elements)
16+
- Built-in DOM actions: fill fields, click elements, read content, navigate, scan page
17+
- Multi-LLM proxy server supporting Gemini, OpenAI, Anthropic, and Ollama
18+
- Shadow DOM UI with theming presets, sizes, and full color control
19+
- Conversation workflows with guided multi-step flows and validation
20+
- Accessibility mode with ARIA live regions, keyboard shortcuts, and screen reader tools
21+
- Custom tool registration via config, runtime API, and `window.nbt_functions`
22+
- SPA navigation detection with automatic session persistence
23+
- Admin dashboard for real-time session monitoring and page analysis
24+
- ESM and IIFE bundle formats
25+
- Zero runtime dependencies

0 commit comments

Comments
 (0)