Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
38c798c
Merge pull request #30 from video-db/release
omgate234 Jan 19, 2026
cb276e3
feat: removing `Job` handling completely
omgate234 Jan 19, 2026
3c614f8
feat: fetch time case conversion in `makeRequest`
omgate234 Jan 19, 2026
3c19859
feat: ts and linting fixes
omgate234 Jan 19, 2026
071a271
fix: file upload
omgate234 Jan 19, 2026
41e4686
feat: feature parity
omgate234 Jan 19, 2026
bf180f5
chore: removed redundant files
omgate234 Jan 19, 2026
4f1604f
Merge pull request #31 from omgate234/feat/0.3.0
omgate234 Jan 19, 2026
cf9d8f6
feat: `prepare` command for git installs
omgate234 Jan 19, 2026
27bfbbc
fix: correct tsconfig.build to only include src files
omgate234 Jan 19, 2026
8cbd564
fix: update entrypoints to match dist/src structure
omgate234 Jan 19, 2026
5e0c976
fix: revert entrypoints to dist/index.js
omgate234 Jan 19, 2026
a6d5e7b
Merge pull request #32 from omgate234/feat/0.3.0
omgate234 Jan 19, 2026
75cce8a
feat: removed `meta` bound info to flat access
omgate234 Jan 19, 2026
b30ce0d
Merge pull request #33 from omgate234/feat/0.3.0
omgate234 Jan 19, 2026
9cc6249
feat: `v0.4.0` parity with python SDK
omgate234 Jan 19, 2026
94f4d53
Merge pull request #34 from omgate234/feat/0.4.0
omgate234 Jan 19, 2026
27a5424
feat: version bump to `v0.3.0`
omgate234 Jan 20, 2026
e0ca457
feat: recorder sdk addition
omgate234 Jan 20, 2026
60644b5
feat: reproduce recorder sdk setup script
omgate234 Jan 20, 2026
f7bec88
feat: new interface handling
omgate234 Jan 20, 2026
ec52548
fix: types and keys
omgate234 Jan 20, 2026
1bc51fb
test: extras
omgate234 Jan 20, 2026
5ad108b
fix: correct channel_id mapping
omgate234 Jan 20, 2026
703aa25
feat: missing keys
omgate234 Jan 20, 2026
bbd1507
feat: feature parity with python SDK
omgate234 Jan 21, 2026
ad62a59
feat: no trailing slashes
omgate234 Jan 21, 2026
2bace2d
feat: rtstream synced with python SDK
omgate234 Jan 21, 2026
45f8085
feat: websocket feature parity
omgate234 Jan 21, 2026
9ffdbaa
feat: websocket logger
omgate234 Jan 21, 2026
a3aebeb
feat: rtstream naming change
omgate234 Jan 21, 2026
31a5d81
feat: docs page
omgate234 Jan 21, 2026
cd1c2a4
docfix: correct command
omgate234 Jan 21, 2026
e7bad7e
Merge pull request #2 from omgate234/feat/recorder-sdk
omgate234 Jan 21, 2026
298f57a
fix: correct branch for docs
omgate234 Jan 21, 2026
cbded28
Merge branch 'feat/0.4.0' of https://github.com/omgate234/videodb-nod…
omgate234 Jan 21, 2026
3ab160f
Merge pull request #35 from omgate234/feat/0.4.0
omgate234 Jan 21, 2026
b15b540
feat: `listRtstreams` options for query params
omgate234 Jan 21, 2026
9a818cc
feat: remove logger module
omgate234 Jan 21, 2026
9a84c6b
feat: `wsConnectionId` for rtstream indexings
omgate234 Jan 21, 2026
4ec5189
feat: session and client token update
omgate234 Jan 22, 2026
82ecfe6
feat: generate from python SDK workflow
omgate234 Jan 23, 2026
403b78e
fix: correct prompts file name
omgate234 Jan 23, 2026
ea4354d
feat: feature parity with python and cleanup format
omgate234 Jan 23, 2026
b8dec2f
Merge pull request #36 from omgate234/feat/sdk-sync-workflows
ashish-spext Jan 23, 2026
feb13c6
feat: case conversion for inputs
omgate234 Jan 27, 2026
43298ff
utils file
omgate234 Jan 27, 2026
685f218
feat: reframe options
omgate234 Jan 27, 2026
711bfc8
feat: docs branch
omgate234 Jan 27, 2026
2979bf9
feat: meeting attributes
omgate234 Jan 27, 2026
6265707
feat: docs from main branch
omgate234 Jan 27, 2026
60eb56d
feat: `streamUrl` caching
omgate234 Jan 27, 2026
9888fda
feat: updated `CHANGELOG`
omgate234 Feb 2, 2026
33df3b7
feat: apiUrl to binaryManager
omgate234 Feb 3, 2026
d32ebd6
Update recorder binary to version 0.2.5
lalit-videodb Feb 6, 2026
939a8e6
Fix binary version in package.json
lalit-videodb Feb 7, 2026
ea7ddc8
update scene index method
0xrohitgarg Feb 8, 2026
2ae7aa1
Merge branch 'release-0.4.0' of github.com:video-db/videodb-node into…
0xrohitgarg Feb 8, 2026
614bd4f
fix: handle EPIPE crash, robust requestPermission parsing, bump binar…
lalit-videodb Feb 10, 2026
57c6aa4
feat: list capture sessions
omgate234 Feb 10, 2026
824e1f2
fix: consolidate installer to single source of truth
lalit-videodb Feb 10, 2026
26529fb
Merge branch 'release-0.4.0', remote-tracking branch 'origin' into re…
omgate234 Feb 10, 2026
b89d8c3
feat: version match with 0.3.0
omgate234 Feb 10, 2026
df74a5a
Merge branch 'release-0.4.0' into release-0.3.0
omgate234 Feb 10, 2026
9137a98
fix: handle missing dist folder in setup.js
lalit-videodb Feb 10, 2026
af908d9
fix: restore lib/installer.js for npm install compatibility
lalit-videodb Feb 10, 2026
111b044
fix: support params for list capture sessions
omgate234 Feb 10, 2026
aed5186
Merge pull request #39 from video-db/release-0.4.0
lalit-videodb Feb 10, 2026
c36333e
chore: bump binary version to 0.2.7
lalit-videodb Feb 11, 2026
7a91892
feat: Python SDK sync
omgate234 Feb 12, 2026
2df90c3
feat: media type connection for rtstream
omgate234 Feb 12, 2026
663f3f9
feat: rtstream index scenes
omgate234 Feb 12, 2026
4971e2f
feat: python SDK sync for default values
omgate234 Feb 12, 2026
a3377c1
feat: `startCaptureSession`, `stopCaptureSession` -> `startCapture`, …
omgate234 Feb 12, 2026
b295608
feat: v0.2.0
omgate234 Feb 12, 2026
9539727
feat: export method in rtstream
omgate234 Feb 12, 2026
0c6ed6c
feat: clientId in capture session
omgate234 Feb 12, 2026
bda1662
feat: search added params and values
omgate234 Feb 12, 2026
dd2343c
feat: new checksums
omgate234 Feb 12, 2026
efa4d9b
fix: case conversion bug
omgate234 Feb 12, 2026
16acb65
feat: updated checksums
omgate234 Feb 12, 2026
9c33637
Merge pull request #40 from video-db/release-0.2.0
omgate234 Feb 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
227 changes: 227 additions & 0 deletions .github/workflows/generate-from-python.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,227 @@
name: Generate Node SDK from Python

on:
repository_dispatch:
types: [python-updated]

# Manual trigger for testing
workflow_dispatch:
inputs:
source_branch:
description: 'Python SDK branch to clone (has the updated code)'
required: true
default: 'main'
target_branch:
description: 'Target branch for PR (will be created from main if not exists)'
required: true
default: 'main'

jobs:
generate:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write

steps:
- name: Checkout Node SDK
uses: actions/checkout@v5
with:
fetch-depth: 0

- name: Set branch info
id: branches
run: |
if [[ "${{ github.event_name }}" == "repository_dispatch" ]]; then
SOURCE_BRANCH="${{ github.event.client_payload.source_branch }}"
TARGET_BRANCH="${{ github.event.client_payload.target_branch }}"
TRIGGER_TYPE="${{ github.event.client_payload.trigger_type }}"
else
SOURCE_BRANCH="${{ inputs.source_branch }}"
TARGET_BRANCH="${{ inputs.target_branch }}"
TRIGGER_TYPE="manual"
fi

echo "source_branch=$SOURCE_BRANCH" >> $GITHUB_OUTPUT
echo "target_branch=$TARGET_BRANCH" >> $GITHUB_OUTPUT
echo "trigger_type=$TRIGGER_TYPE" >> $GITHUB_OUTPUT

echo "Source branch (Python SDK): $SOURCE_BRANCH"
echo "Target branch (Node SDK): $TARGET_BRANCH"
echo "Trigger type: $TRIGGER_TYPE"

- name: Setup target branch
id: setup_branch
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
TARGET_BRANCH="${{ steps.branches.outputs.target_branch }}"

# Check if target branch exists in Node SDK
if git ls-remote --exit-code --heads origin "$TARGET_BRANCH" > /dev/null 2>&1; then
echo "Branch $TARGET_BRANCH exists, checking out"
git checkout "$TARGET_BRANCH"
git pull origin "$TARGET_BRANCH"
echo "branch_created=false" >> $GITHUB_OUTPUT
else
echo "Branch $TARGET_BRANCH does not exist, creating from main"
git checkout main
git pull origin main
git checkout -b "$TARGET_BRANCH"
git push -u origin "$TARGET_BRANCH"
echo "branch_created=true" >> $GITHUB_OUTPUT
fi

echo "Currently on branch: $(git branch --show-current)"

- name: Clone Python SDK
env:
GH_TOKEN: ${{ secrets.SDK_SYNC_PAT }}
run: |
SOURCE_BRANCH="${{ steps.branches.outputs.source_branch }}"
PYTHON_REPO="${{ github.repository_owner }}/videodb-python"

echo "Cloning Python SDK from $PYTHON_REPO @ $SOURCE_BRANCH"

# Clone the Python SDK at the source branch
git clone --depth 1 --branch "$SOURCE_BRANCH" \
"https://x-access-token:${GH_TOKEN}@github.com/${PYTHON_REPO}.git" python-sdk

# Remove .git directory - makes it READ-ONLY reference
rm -rf python-sdk/.git

echo "Python SDK cloned as read-only reference"
ls -la python-sdk/videodb/

- name: Fetch Python SDK diff
env:
GH_TOKEN: ${{ secrets.SDK_SYNC_PAT }}
run: |
TRIGGER_TYPE="${{ steps.branches.outputs.trigger_type }}"
SOURCE_BRANCH="${{ steps.branches.outputs.source_branch }}"
TARGET_BRANCH="${{ steps.branches.outputs.target_branch }}"
PYTHON_REPO="${{ github.repository_owner }}/videodb-python"

if [[ "$TRIGGER_TYPE" == "code_change" ]]; then
# For code changes, fetch diff using SHAs from payload
BEFORE_SHA="${{ github.event.client_payload.before_sha }}"
AFTER_SHA="${{ github.event.client_payload.after_sha }}"

if [[ -n "$BEFORE_SHA" && -n "$AFTER_SHA" ]]; then
echo "Fetching diff for code change: $BEFORE_SHA...$AFTER_SHA"
gh api \
-H "Accept: application/vnd.github.v3.diff" \
"/repos/$PYTHON_REPO/compare/${BEFORE_SHA}...${AFTER_SHA}" \
> python.diff 2>/dev/null || touch python.diff
else
touch python.diff
fi
else
# For spec changes, compare target_branch vs source_branch
echo "Fetching diff for spec change: $TARGET_BRANCH...$SOURCE_BRANCH"
gh api \
-H "Accept: application/vnd.github.v3.diff" \
"/repos/$PYTHON_REPO/compare/${TARGET_BRANCH}...${SOURCE_BRANCH}" \
> python.diff 2>/dev/null || touch python.diff
fi

echo "Diff size: $(wc -l < python.diff) lines"

- name: Fetch prompt and build context
run: |
# Fetch static prompt from agent-toolkit
curl -sL https://raw.githubusercontent.com/video-db/agent-toolkit/main/context/prompts/python-to-node-sdk.txt > static_prompt.txt

# Build full prompt with dynamic content
cat > codex_prompt.md << 'PROMPT_EOF'
## Git Diff of Python SDK Changes

The following diff shows what changed in the Python SDK:

```diff
PROMPT_EOF

cat python.diff >> codex_prompt.md

cat >> codex_prompt.md << 'PROMPT_EOF'
```

---

PROMPT_EOF

# Append static instructions
cat static_prompt.txt >> codex_prompt.md

echo "Prompt built successfully"

- name: Run Codex
uses: openai/codex-action@v1
with:
openai-api-key: ${{ secrets.OPENAI_API_KEY }}
model: o4-mini
sandbox: workspace-write
prompt-file: codex_prompt.md

- name: Check for changes and create PR
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# Configure git
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"

# Check if there are changes
if git diff --quiet && git diff --staged --quiet; then
echo "No changes generated by Codex"
exit 0
fi

# Clean up temporary files - DO NOT commit these
rm -f python.diff static_prompt.txt codex_prompt.md
rm -rf python-sdk

# Get branch info
TARGET_BRANCH="${{ steps.branches.outputs.target_branch }}"
SOURCE_BRANCH="${{ steps.branches.outputs.source_branch }}"
TRIGGER_TYPE="${{ steps.branches.outputs.trigger_type }}"

# Create work branch
WORK_BRANCH="auto/python-sync-$(date +%Y%m%d-%H%M%S)"
git checkout -b "$WORK_BRANCH"
git add -A

# Commit
git commit -m "feat: sync with Python SDK

Source: videodb-python@${SOURCE_BRANCH}
Target: ${TARGET_BRANCH}
Trigger: ${TRIGGER_TYPE}

Generated by OpenAI Codex"

# Push
git push origin "$WORK_BRANCH"

# Create PR targeting the target branch
gh pr create \
--base "$TARGET_BRANCH" \
--title "feat: sync with Python SDK" \
--body "## Summary

Automated SDK update to match Python SDK changes.

**Python SDK branch**: \`$SOURCE_BRANCH\`
**Target branch**: \`$TARGET_BRANCH\`
**Trigger type**: \`$TRIGGER_TYPE\`

## Review Checklist

- [ ] TypeScript types are correct
- [ ] Async/await patterns match existing code
- [ ] camelCase naming convention followed
- [ ] No breaking changes introduced
- [ ] Tests pass locally

---
*Generated by [OpenAI Codex](https://github.com/openai/codex)*"
16 changes: 16 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
}
Loading