vidjutsu 0.2.0 → 1.1.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/dist/methods.d.ts CHANGED
@@ -38,14 +38,16 @@ export interface VidJutsuMethods {
38
38
  confirmVerification(body: ReqBody<"/v1/auth/verify/confirm", "post">): ReturnType<Client["POST"]>;
39
39
  /** Request email verification code Public endpoint. */
40
40
  requestVerification(body: ReqBody<"/v1/auth/verify/request", "post">): ReturnType<Client["POST"]>;
41
- /** Get daily usage and rate limits */
42
- getUsage(): ReturnType<Client["GET"]>;
43
41
  /** Check spec Auth required. 5 credits. */
44
42
  checkSpec(body: ReqBody<"/v1/check", "post">): ReturnType<Client["POST"]>;
45
43
  /** Get check rules Auth required. */
46
44
  getCheckRules(): ReturnType<Client["GET"]>;
47
45
  /** Update check rules Auth required. */
48
46
  updateCheckRules(body: ReqBody<"/v1/check/rules", "put">): ReturnType<Client["PUT"]>;
47
+ /** Check prompt compliance */
48
+ checkCompliancePrompt(body: ReqBody<"/v1/compliance/prompt", "post">): ReturnType<Client["POST"]>;
49
+ /** Check video compliance */
50
+ checkComplianceVideo(body: ReqBody<"/v1/compliance/video", "post">): ReturnType<Client["POST"]>;
49
51
  /** Check checkout status Public endpoint. */
50
52
  getCheckoutStatus(query?: QueryParams<"/v1/credits/status", "get">): ReturnType<Client["GET"]>;
51
53
  /** Extract from media Auth required. 5 credits. */
@@ -80,6 +82,8 @@ export interface VidJutsuMethods {
80
82
  uploadFile(): ReturnType<Client["POST"]>;
81
83
  /** Upload from URL Auth required. */
82
84
  uploadFromUrl(body: ReqBody<"/v1/upload/url", "post">): ReturnType<Client["POST"]>;
85
+ /** Get daily usage */
86
+ getUsage(): ReturnType<Client["GET"]>;
83
87
  /** Watch media Auth required. 10 credits. */
84
88
  watchMedia(body: ReqBody<"/v1/watch", "post">): ReturnType<Client["POST"]>;
85
89
  }
package/dist/methods.js CHANGED
@@ -36,9 +36,6 @@ export function bindMethods(client) {
36
36
  requestVerification(body) {
37
37
  return client.POST("/v1/auth/verify/request", { body });
38
38
  },
39
- getUsage() {
40
- return client.GET("/v1/usage", {});
41
- },
42
39
  checkSpec(body) {
43
40
  return client.POST("/v1/check", { body });
44
41
  },
@@ -48,6 +45,12 @@ export function bindMethods(client) {
48
45
  updateCheckRules(body) {
49
46
  return client.PUT("/v1/check/rules", { body });
50
47
  },
48
+ checkCompliancePrompt(body) {
49
+ return client.POST("/v1/compliance/prompt", { body });
50
+ },
51
+ checkComplianceVideo(body) {
52
+ return client.POST("/v1/compliance/video", { body });
53
+ },
51
54
  getCheckoutStatus(query) {
52
55
  return client.GET("/v1/credits/status", { params: { query } });
53
56
  },
@@ -99,6 +102,9 @@ export function bindMethods(client) {
99
102
  uploadFromUrl(body) {
100
103
  return client.POST("/v1/upload/url", { body });
101
104
  },
105
+ getUsage() {
106
+ return client.GET("/v1/usage", {});
107
+ },
102
108
  watchMedia(body) {
103
109
  return client.POST("/v1/watch", { body });
104
110
  },
package/install.sh ADDED
@@ -0,0 +1,197 @@
1
+ #!/bin/sh
2
+ set -e
3
+
4
+ # VidJutsu CLI Installer
5
+ # Usage: curl -fsSL https://vidjutsu.ai/install.sh | bash
6
+
7
+ REPO="tfcbot/vidjutsu-sdk"
8
+ BINARY_NAME="vidjutsu"
9
+ INSTALL_DIR="$HOME/.local/bin"
10
+
11
+ # Colors
12
+ RED='\033[0;31m'
13
+ GREEN='\033[0;32m'
14
+ YELLOW='\033[1;33m'
15
+ CYAN='\033[0;36m'
16
+ BOLD='\033[1m'
17
+ RESET='\033[0m'
18
+
19
+ info() { printf "${CYAN}>${RESET} %s\n" "$1"; }
20
+ success() { printf "${GREEN}✓${RESET} %s\n" "$1"; }
21
+ warn() { printf "${YELLOW}!${RESET} %s\n" "$1"; }
22
+ error() { printf "${RED}✗${RESET} %s\n" "$1" >&2; exit 1; }
23
+
24
+ # --- Detect OS and Architecture ---
25
+
26
+ detect_platform() {
27
+ OS=$(uname -s | tr '[:upper:]' '[:lower:]')
28
+ ARCH=$(uname -m)
29
+
30
+ case "$OS" in
31
+ darwin) OS="darwin" ;;
32
+ linux) OS="linux" ;;
33
+ *) error "Unsupported operating system: $OS" ;;
34
+ esac
35
+
36
+ case "$ARCH" in
37
+ x86_64|amd64) ARCH="x64" ;;
38
+ aarch64|arm64) ARCH="arm64" ;;
39
+ *) error "Unsupported architecture: $ARCH" ;;
40
+ esac
41
+
42
+ PLATFORM="${OS}-${ARCH}"
43
+ info "Detected platform: ${BOLD}${PLATFORM}${RESET}"
44
+ }
45
+
46
+ # --- Prerequisites ---
47
+
48
+ ensure_node() {
49
+ if command -v node >/dev/null 2>&1; then
50
+ success "Node.js $(node --version) found"
51
+ return
52
+ fi
53
+
54
+ error "Node.js is required. Install it from https://nodejs.org"
55
+ }
56
+
57
+ ensure_bun() {
58
+ if command -v bun >/dev/null 2>&1; then
59
+ success "Bun $(bun --version) found"
60
+ return
61
+ fi
62
+
63
+ info "Installing Bun..."
64
+ curl -fsSL https://bun.sh/install | bash
65
+ export BUN_INSTALL="$HOME/.bun"
66
+ export PATH="$BUN_INSTALL/bin:$PATH"
67
+ success "Bun installed: $(bun --version)"
68
+ }
69
+
70
+ ensure_typescript() {
71
+ if command -v tsc >/dev/null 2>&1; then
72
+ success "TypeScript $(tsc --version) found"
73
+ return
74
+ fi
75
+
76
+ info "Installing TypeScript globally..."
77
+ if command -v bun >/dev/null 2>&1; then
78
+ bun add -g typescript
79
+ elif command -v npm >/dev/null 2>&1; then
80
+ npm install -g typescript
81
+ fi
82
+ success "TypeScript installed"
83
+ }
84
+
85
+ # --- Version Detection ---
86
+
87
+ get_version() {
88
+ if [ -n "$VERSION" ]; then
89
+ info "Using specified version: v${VERSION}"
90
+ return
91
+ fi
92
+
93
+ info "Fetching latest release..."
94
+
95
+ RELEASE_RESPONSE=$(curl -sL -w "\n%{http_code}" \
96
+ "https://api.github.com/repos/${REPO}/releases/latest")
97
+
98
+ HTTP_CODE=$(echo "$RELEASE_RESPONSE" | tail -1)
99
+ RELEASE_BODY=$(echo "$RELEASE_RESPONSE" | sed '$d')
100
+
101
+ if [ "$HTTP_CODE" != "200" ]; then
102
+ error "Could not fetch latest release (HTTP ${HTTP_CODE}). Check that a release exists at https://github.com/${REPO}/releases or set VERSION env var manually."
103
+ fi
104
+
105
+ VERSION=$(echo "$RELEASE_BODY" | grep '"tag_name"' | sed -E 's/.*"v?([^"]+)".*/\1/')
106
+
107
+ if [ -z "$VERSION" ]; then
108
+ error "Could not parse version from release response. Set VERSION env var manually."
109
+ fi
110
+
111
+ info "Latest version: ${BOLD}v${VERSION}${RESET}"
112
+ }
113
+
114
+ # --- Download and Install ---
115
+
116
+ install_binary() {
117
+ DOWNLOAD_URL="https://github.com/${REPO}/releases/download/v${VERSION}/${BINARY_NAME}-${PLATFORM}"
118
+ TMPFILE=$(mktemp)
119
+
120
+ info "Downloading ${BINARY_NAME} v${VERSION} for ${PLATFORM}..."
121
+ curl -fsSL "$DOWNLOAD_URL" -o "$TMPFILE" || error "Download failed. Check that v${VERSION} exists at ${DOWNLOAD_URL}"
122
+
123
+ # Verify checksum if available
124
+ CHECKSUM_URL="https://github.com/${REPO}/releases/download/v${VERSION}/checksums.txt"
125
+ if curl -fsSL "$CHECKSUM_URL" -o /tmp/vidjutsu-checksums.txt 2>/dev/null; then
126
+ EXPECTED=$(grep "${BINARY_NAME}-${PLATFORM}" /tmp/vidjutsu-checksums.txt | awk '{print $1}')
127
+ if [ -n "$EXPECTED" ]; then
128
+ if command -v sha256sum >/dev/null 2>&1; then
129
+ ACTUAL=$(sha256sum "$TMPFILE" | awk '{print $1}')
130
+ else
131
+ ACTUAL=$(shasum -a 256 "$TMPFILE" | awk '{print $1}')
132
+ fi
133
+ if [ "$ACTUAL" != "$EXPECTED" ]; then
134
+ rm -f "$TMPFILE" /tmp/vidjutsu-checksums.txt
135
+ error "Checksum verification failed. The binary may have been tampered with."
136
+ fi
137
+ success "Checksum verified"
138
+ fi
139
+ rm -f /tmp/vidjutsu-checksums.txt
140
+ fi
141
+
142
+ chmod +x "$TMPFILE"
143
+
144
+ mkdir -p "$INSTALL_DIR"
145
+ mv "$TMPFILE" "${INSTALL_DIR}/${BINARY_NAME}"
146
+ success "Installed to ${INSTALL_DIR}/${BINARY_NAME}"
147
+
148
+ # Auto-add to PATH if needed
149
+ case ":$PATH:" in
150
+ *":${INSTALL_DIR}:"*) ;;
151
+ *)
152
+ export PATH="${INSTALL_DIR}:$PATH"
153
+ SHELL_RC=""
154
+ if [ -n "$ZSH_VERSION" ] || [ "$(basename "$SHELL")" = "zsh" ]; then
155
+ SHELL_RC="$HOME/.zshrc"
156
+ else
157
+ SHELL_RC="$HOME/.bashrc"
158
+ fi
159
+ if [ -n "$SHELL_RC" ] && ! grep -q '.local/bin' "$SHELL_RC" 2>/dev/null; then
160
+ printf '\nexport PATH="$HOME/.local/bin:$PATH"\n' >> "$SHELL_RC"
161
+ success "Added $INSTALL_DIR to PATH in $SHELL_RC"
162
+ fi
163
+ ;;
164
+ esac
165
+ }
166
+
167
+ # --- Verify ---
168
+
169
+ verify() {
170
+ if command -v "$BINARY_NAME" >/dev/null 2>&1; then
171
+ success "Verification passed"
172
+ else
173
+ warn "Binary installed but not found in PATH. You may need to restart your shell."
174
+ fi
175
+ }
176
+
177
+ # --- Main ---
178
+
179
+ main() {
180
+ printf "\n${BOLD} VidJutsu CLI Installer${RESET}\n\n"
181
+
182
+ detect_platform
183
+ ensure_node
184
+ ensure_bun
185
+ ensure_typescript
186
+ get_version
187
+ install_binary
188
+ verify
189
+
190
+ printf "\n${GREEN}${BOLD} ✓ VidJutsu CLI v${VERSION} installed successfully${RESET}\n"
191
+ printf "\n Get started:\n"
192
+ printf " ${CYAN}vidjutsu auth${RESET} — authenticate your account\n"
193
+ printf " ${CYAN}vidjutsu generate${RESET} — generate AI video\n"
194
+ printf " ${CYAN}vidjutsu --help${RESET} — see all commands\n\n"
195
+ }
196
+
197
+ main
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vidjutsu",
3
- "version": "0.2.0",
4
- "description": "TypeScript SDK for the VidJutsu video intelligence API",
3
+ "version": "1.1.0",
4
+ "description": "VidJutsu video intelligence API. SDK + CLI.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
@@ -11,15 +11,28 @@
11
11
  "types": "./dist/index.d.ts"
12
12
  }
13
13
  },
14
+ "bin": {
15
+ "vidjutsu": "./dist/cli/index.mjs"
16
+ },
14
17
  "files": [
15
- "dist"
18
+ "dist",
19
+ "install.sh"
16
20
  ],
17
21
  "scripts": {
18
22
  "generate": "bun scripts/generate-schema.ts && bun scripts/generate-methods.ts",
19
- "build": "tsc",
23
+ "build": "bun run build:sdk && bun run build:cli",
24
+ "build:sdk": "tsc",
25
+ "build:cli": "bun build src/cli/index.ts --outfile dist/cli/index.mjs --target node",
26
+ "build:binary": "bun run build:binary:darwin-arm64 && bun run build:binary:darwin-x64 && bun run build:binary:linux-x64 && bun run build:binary:linux-arm64",
27
+ "build:binary:darwin-arm64": "bun build src/cli/index.ts --compile --target=bun-darwin-arm64 --outfile dist/vidjutsu-darwin-arm64",
28
+ "build:binary:darwin-x64": "bun build src/cli/index.ts --compile --target=bun-darwin-x64 --outfile dist/vidjutsu-darwin-x64",
29
+ "build:binary:linux-x64": "bun build src/cli/index.ts --compile --target=bun-linux-x64 --outfile dist/vidjutsu-linux-x64",
30
+ "build:binary:linux-arm64": "bun build src/cli/index.ts --compile --target=bun-linux-arm64 --outfile dist/vidjutsu-linux-arm64",
31
+ "dev": "bun run src/cli/index.ts",
20
32
  "prepublishOnly": "bun run generate && bun run build"
21
33
  },
22
34
  "dependencies": {
35
+ "citty": "^0.1",
23
36
  "openapi-fetch": "^0.13.5"
24
37
  },
25
38
  "devDependencies": {
@@ -33,6 +46,7 @@
33
46
  "ai",
34
47
  "api",
35
48
  "sdk",
49
+ "cli",
36
50
  "watch",
37
51
  "extract",
38
52
  "transcribe"