@promptdriven/pds 0.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/main.js ADDED
@@ -0,0 +1,248 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.runCli = runCli;
37
+ exports.runFromProcess = runFromProcess;
38
+ const parser_1 = require("./args/parser");
39
+ const api_client_1 = require("./client/api-client");
40
+ const config_1 = require("./config/config");
41
+ const registry_1 = require("./commands/registry");
42
+ const errors_1 = require("./errors/errors");
43
+ const output_1 = require("./output/output");
44
+ const version_1 = require("./version");
45
+ async function runCli(argv, options = {}) {
46
+ const stdoutChunks = [];
47
+ const stderrChunks = [];
48
+ const stdout = createWriter(stdoutChunks, options.stdout);
49
+ const stderr = createWriter(stderrChunks, options.stderr);
50
+ let output = new output_1.Output({ stdout, stderr });
51
+ try {
52
+ const invocation = (0, parser_1.parseInvocation)(argv);
53
+ output = new output_1.Output({
54
+ json: invocation.globalOptions.json,
55
+ jsonl: invocation.globalOptions.jsonl,
56
+ verbose: invocation.globalOptions.verbose,
57
+ stdout,
58
+ stderr
59
+ });
60
+ if (invocation.globalOptions.version) {
61
+ stdout(`${version_1.PDS_CLIENT_VERSION}\n`);
62
+ return { exitCode: 0, stdout: stdoutChunks.join(""), stderr: stderrChunks.join("") };
63
+ }
64
+ const env = options.env ?? process.env;
65
+ const config = await (0, config_1.loadConfig)({
66
+ configRoot: options.configRoot,
67
+ env,
68
+ flags: invocation.globalOptions
69
+ });
70
+ const client = options.clientFactory?.(config) ?? new api_client_1.PdsApiClient({
71
+ apiUrl: config.apiUrl,
72
+ token: config.token,
73
+ timeoutMs: config.timeoutMs
74
+ });
75
+ if (requiresVersionNegotiation(invocation.commandPath)) {
76
+ await negotiateAgentVersion(client, invocation.commandPath);
77
+ }
78
+ const result = await (0, registry_1.dispatchCommand)(invocation.commandPath, invocation.commandArgs, {
79
+ client,
80
+ config,
81
+ configRoot: options.configRoot,
82
+ env,
83
+ emitJsonlEvent: invocation.globalOptions.jsonl ? (event) => output.event(event) : undefined,
84
+ notice: !invocation.globalOptions.json && !invocation.globalOptions.jsonl
85
+ ? (text) => stderr(`${text}\n`)
86
+ : undefined,
87
+ openUrl: !invocation.globalOptions.json && !invocation.globalOptions.jsonl
88
+ ? options.openUrl ?? defaultOpenUrl(env)
89
+ : undefined,
90
+ sleep: options.sleep ?? delay
91
+ });
92
+ output.final(result);
93
+ return { exitCode: 0, stdout: stdoutChunks.join(""), stderr: stderrChunks.join("") };
94
+ }
95
+ catch (error) {
96
+ const cliError = output.error(error);
97
+ return { exitCode: cliError.exitCode, stdout: stdoutChunks.join(""), stderr: stderrChunks.join("") };
98
+ }
99
+ }
100
+ function defaultOpenUrl(env) {
101
+ if (parseEnvBoolean(env.PDS_NO_BROWSER) || parseEnvBoolean(env.CI)) {
102
+ return undefined;
103
+ }
104
+ return async (url) => {
105
+ try {
106
+ const { spawn } = await Promise.resolve().then(() => __importStar(require("node:child_process")));
107
+ const command = process.platform === "darwin"
108
+ ? "open"
109
+ : process.platform === "win32"
110
+ ? "cmd"
111
+ : "xdg-open";
112
+ const args = process.platform === "win32"
113
+ ? ["/c", "start", "", url]
114
+ : [url];
115
+ const child = spawn(command, args, {
116
+ detached: true,
117
+ stdio: "ignore"
118
+ });
119
+ child.unref();
120
+ }
121
+ catch {
122
+ // Printing the verification URL is sufficient when auto-open fails.
123
+ }
124
+ };
125
+ }
126
+ const VERSION_NEGOTIATED_COMMANDS = new Set([
127
+ "auth login",
128
+ "auth token create",
129
+ "auth token revoke",
130
+ "projects create",
131
+ "script set",
132
+ "pipeline run",
133
+ "project reset-pipeline",
134
+ "jobs cancel",
135
+ "distribution generate",
136
+ "distribution connections list",
137
+ "distribution connection select",
138
+ "distribution publish",
139
+ "release-video create",
140
+ "release-video status"
141
+ ]);
142
+ function requiresVersionNegotiation(commandPath) {
143
+ return VERSION_NEGOTIATED_COMMANDS.has(commandPath.join(" "));
144
+ }
145
+ async function negotiateAgentVersion(client, commandPath) {
146
+ const response = await client.getVersion();
147
+ const record = isRecord(response) ? response : {};
148
+ const apiVersion = typeof record.apiVersion === "string" ? record.apiVersion : "";
149
+ if (apiVersion !== version_1.PDS_API_VERSION) {
150
+ throw new errors_1.ApiError("Unsupported PDS agent API version", {
151
+ code: "api_version_unsupported",
152
+ status: 409,
153
+ exitCode: errors_1.EXIT_CODES.apiVersionMismatch,
154
+ details: {
155
+ requestedApiVersion: version_1.PDS_API_VERSION,
156
+ supportedApiVersion: apiVersion || null
157
+ }
158
+ });
159
+ }
160
+ if (commandPath.join(" ") === "project reset-pipeline") {
161
+ const features = isRecord(record.features) ? record.features : {};
162
+ if (features.projectResetPipeline !== true) {
163
+ throw new errors_1.ApiError("PDS server does not support project reset-pipeline", {
164
+ code: "api_version_unsupported",
165
+ status: 409,
166
+ exitCode: errors_1.EXIT_CODES.apiVersionMismatch,
167
+ details: {
168
+ feature: "projectResetPipeline"
169
+ }
170
+ });
171
+ }
172
+ }
173
+ if (commandPath.join(" ") === "release-video create" || commandPath.join(" ") === "release-video status") {
174
+ const features = isRecord(record.features) ? record.features : {};
175
+ if (features.releaseVideo !== true) {
176
+ throw new errors_1.ApiError("PDS server does not support release-video", {
177
+ code: "api_version_unsupported",
178
+ status: 409,
179
+ exitCode: errors_1.EXIT_CODES.apiVersionMismatch,
180
+ details: {
181
+ feature: "releaseVideo"
182
+ }
183
+ });
184
+ }
185
+ }
186
+ if (commandPath.join(" ") === "distribution connections list" || commandPath.join(" ") === "distribution connection select") {
187
+ const features = isRecord(record.features) ? record.features : {};
188
+ if (features.distributionConnections !== true) {
189
+ throw new errors_1.ApiError("PDS server does not support distribution connection selection", {
190
+ code: "api_version_unsupported",
191
+ status: 409,
192
+ exitCode: errors_1.EXIT_CODES.apiVersionMismatch,
193
+ details: {
194
+ feature: "distributionConnections"
195
+ }
196
+ });
197
+ }
198
+ }
199
+ const minClientVersion = typeof record.minClientVersion === "string" ? record.minClientVersion : "";
200
+ if (minClientVersion && compareDottedVersions(version_1.PDS_CLIENT_VERSION, minClientVersion) < 0) {
201
+ throw new errors_1.ApiError("PDS CLI version is older than the server minimum", {
202
+ code: "api_version_unsupported",
203
+ status: 409,
204
+ exitCode: errors_1.EXIT_CODES.apiVersionMismatch,
205
+ details: {
206
+ clientVersion: version_1.PDS_CLIENT_VERSION,
207
+ minClientVersion
208
+ }
209
+ });
210
+ }
211
+ }
212
+ function compareDottedVersions(left, right) {
213
+ const leftParts = left.split(".").map((part) => Number.parseInt(part, 10));
214
+ const rightParts = right.split(".").map((part) => Number.parseInt(part, 10));
215
+ const length = Math.max(leftParts.length, rightParts.length);
216
+ for (let index = 0; index < length; index += 1) {
217
+ const leftPart = Number.isFinite(leftParts[index]) ? leftParts[index] : 0;
218
+ const rightPart = Number.isFinite(rightParts[index]) ? rightParts[index] : 0;
219
+ if (leftPart !== rightPart) {
220
+ return leftPart < rightPart ? -1 : 1;
221
+ }
222
+ }
223
+ return 0;
224
+ }
225
+ function isRecord(value) {
226
+ return value !== null && typeof value === "object" && !Array.isArray(value);
227
+ }
228
+ function parseEnvBoolean(value) {
229
+ return /^(1|true|yes|on)$/i.test(value ?? "");
230
+ }
231
+ function delay(ms) {
232
+ return new Promise((resolve) => setTimeout(resolve, ms));
233
+ }
234
+ async function runFromProcess() {
235
+ const result = await runCli(process.argv.slice(2), {
236
+ env: process.env,
237
+ stdout: (text) => process.stdout.write(text),
238
+ stderr: (text) => process.stderr.write(text)
239
+ });
240
+ process.exitCode = result.exitCode;
241
+ }
242
+ function createWriter(chunks, writer) {
243
+ return (text) => {
244
+ chunks.push(text);
245
+ writer?.(text);
246
+ };
247
+ }
248
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { CliError } from "../errors/errors";
2
+ export type WriteFn = (text: string) => void;
3
+ export type OutputOptions = {
4
+ json?: boolean;
5
+ jsonl?: boolean;
6
+ verbose?: boolean;
7
+ stdout: WriteFn;
8
+ stderr: WriteFn;
9
+ };
10
+ export declare class Output {
11
+ private readonly options;
12
+ constructor(options: OutputOptions);
13
+ progress(event: Record<string, unknown>, humanText?: string): void;
14
+ event(event: unknown): void;
15
+ final(value: unknown, humanText?: string): void;
16
+ error(error: unknown): CliError;
17
+ }
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Output = void 0;
4
+ const errors_1 = require("../errors/errors");
5
+ class Output {
6
+ options;
7
+ constructor(options) {
8
+ this.options = options;
9
+ }
10
+ progress(event, humanText) {
11
+ if (this.options.jsonl) {
12
+ this.options.stdout(`${JSON.stringify({ type: "progress", ...(0, errors_1.redactSecrets)(event) })}\n`);
13
+ return;
14
+ }
15
+ if (this.options.verbose && humanText) {
16
+ this.options.stderr(`${humanText}\n`);
17
+ }
18
+ }
19
+ event(event) {
20
+ if (this.options.jsonl) {
21
+ this.options.stdout(`${JSON.stringify((0, errors_1.redactSecrets)(event))}\n`);
22
+ }
23
+ }
24
+ final(value, humanText) {
25
+ if (this.options.json) {
26
+ this.options.stdout(`${JSON.stringify(redactForFinalOutput(value))}\n`);
27
+ return;
28
+ }
29
+ if (this.options.jsonl) {
30
+ const events = readJsonlEvents(value);
31
+ if (events) {
32
+ for (const event of events) {
33
+ this.options.stdout(`${JSON.stringify((0, errors_1.redactSecrets)(event))}\n`);
34
+ }
35
+ return;
36
+ }
37
+ this.options.stdout(`${JSON.stringify({ type: "result", result: (0, errors_1.redactSecrets)(value) })}\n`);
38
+ return;
39
+ }
40
+ if (humanText !== undefined) {
41
+ this.options.stdout(`${humanText}\n`);
42
+ return;
43
+ }
44
+ if (typeof value === "string") {
45
+ this.options.stdout(`${value}\n`);
46
+ return;
47
+ }
48
+ this.options.stdout(`${JSON.stringify((0, errors_1.redactSecrets)(value), null, 2)}\n`);
49
+ }
50
+ error(error) {
51
+ const cliError = (0, errors_1.toCliError)(error);
52
+ const payload = {
53
+ ok: false,
54
+ error: {
55
+ code: cliError.code,
56
+ message: cliError.message,
57
+ details: (0, errors_1.redactSecrets)(cliError.details)
58
+ }
59
+ };
60
+ if (this.options.json) {
61
+ this.options.stdout(`${JSON.stringify(payload)}\n`);
62
+ }
63
+ else if (this.options.jsonl) {
64
+ this.options.stdout(`${JSON.stringify({ type: "error", ...payload })}\n`);
65
+ }
66
+ else {
67
+ this.options.stderr(`Error: ${cliError.message}\n`);
68
+ }
69
+ return cliError;
70
+ }
71
+ }
72
+ exports.Output = Output;
73
+ function readJsonlEvents(value) {
74
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
75
+ return null;
76
+ }
77
+ const events = value.events;
78
+ return Array.isArray(events) ? events : null;
79
+ }
80
+ function redactForFinalOutput(value) {
81
+ return (0, errors_1.redactSecrets)(value, {
82
+ allowCreatedTokenRawToken: true,
83
+ allowTopLevelRawToken: Boolean(value) &&
84
+ typeof value === "object" &&
85
+ !Array.isArray(value) &&
86
+ typeof value.rawToken === "string" &&
87
+ Boolean(value.token),
88
+ });
89
+ }
90
+ //# sourceMappingURL=output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/output/output.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const PDS_CLIENT_VERSION = "0.1.0";
2
+ export declare const PDS_API_VERSION = "2026-05-31";
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PDS_API_VERSION = exports.PDS_CLIENT_VERSION = void 0;
4
+ exports.PDS_CLIENT_VERSION = "0.1.0";
5
+ exports.PDS_API_VERSION = "2026-05-31";
6
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,kBAAkB,GAAG,OAAO,CAAC;AAC7B,QAAA,eAAe,GAAG,YAAY,CAAC"}
package/package.json ADDED
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "@promptdriven/pds",
3
+ "version": "0.1.0",
4
+ "description": "Prompt Driven Studio command-line interface for agent and CI automation.",
5
+ "license": "UNLICENSED",
6
+ "homepage": "https://video.promptdriven.ai/agents/cli",
7
+ "bugs": {
8
+ "url": "https://github.com/promptdriven/Generative-Video-Studio/issues"
9
+ },
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "git+https://github.com/promptdriven/Generative-Video-Studio.git",
13
+ "directory": "cli/pds"
14
+ },
15
+ "keywords": [
16
+ "prompt-driven-studio",
17
+ "pds",
18
+ "cli",
19
+ "automation"
20
+ ],
21
+ "type": "commonjs",
22
+ "bin": {
23
+ "pds": "bin/pds"
24
+ },
25
+ "files": [
26
+ "README.md",
27
+ "bin/",
28
+ "dist/"
29
+ ],
30
+ "engines": {
31
+ "node": ">=20"
32
+ },
33
+ "publishConfig": {
34
+ "access": "public"
35
+ },
36
+ "scripts": {
37
+ "build": "tsc -p tsconfig.json",
38
+ "pack:check": "npm run build && npm pack --dry-run",
39
+ "smoke:pack": "npm run build && node scripts/smoke-pack.mjs",
40
+ "test": "tsc -p tsconfig.test.json && node --test \"dist-test/**/*.test.js\""
41
+ }
42
+ }