@nodaro/sdk 1.15.0 → 1.17.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/README.md CHANGED
@@ -263,14 +263,19 @@ try {
263
263
  | `client.workflows` | List, get, create, update, delete, run |
264
264
  | `client.projects` | Workspace organization |
265
265
  | `client.jobs` | Job status (+ lean `getStatus` for poll loops) and cancellation |
266
+ | `client.videoPro` | Generate Video Pro run control: graceful stop + continue |
267
+ | `client.recast` | Recast runs + authored-script import (validate / import / estimate / gates) — Cloud |
266
268
  | `client.executions` | Workflow execution status, list, cancel |
267
269
  | `client.nodes` | Node discovery + direct `run` / `runAndWait` / `runMany` |
270
+ | `client.models` | Model catalog: capability sheets, credit pricing, prompt tips, `doctrineCovered` |
268
271
  | `client.apps` | Published apps: inputs, run, runs history |
269
272
  | `client.characters` | Character Studio: CRUD, portraits, assets, motion, LoRA |
270
273
  | `client.locations` | Location Studio: CRUD, assets, atmosphere motion |
271
274
  | `client.objects` | Object Studio: CRUD, assets, motion |
272
275
  | `client.creatures` | Creature Studio: CRUD, assets, motion |
273
276
  | `client.voices` | Voice catalog + clones (from URL or file), voice changer, multi-speaker recast + the interactive `analyze`/stems/`exportMix` flow, design, remix, dubbing |
277
+ | `client.media` | Social-video import, trim, collage, save-to-storage, metadata probe |
278
+ | `client.audio` | Audio primitives: separate, isolate, FX, mix, volume, combine |
274
279
  | `client.pipelines` | Showrunner pipelines: stages, approvals, chat, branch |
275
280
  | `client.reduce` | Fan-in reducer (pick-best, concat, vote, merge…) |
276
281
  | `client.promptHelper` | Prompt enhancement / wizard |
@@ -278,8 +283,11 @@ try {
278
283
  | `client.uploads` | Signed upload URLs for image / video / audio |
279
284
  | `client.library` | Generated-media library |
280
285
  | `client.presets` | Node presets (factory + user) |
281
- | `client.pickerCatalogs` | Parameter-picker catalog discovery |
286
+ | `client.pickerCatalogs` | Parameter-picker catalog discovery + text→pickers AI Fill (`analyzeText`) |
287
+ | `client.shots` | Cine share → remix records (create, read, visibility, delete) |
282
288
  | `client.community` | Shared characters/locations/objects: browse, clone, favorites |
289
+ | `client.templates` | Workflow templates: browse + clone |
290
+ | `client.tutorials` | Guided tutorial catalog |
283
291
  | `client.developerApps` | Manage your own OAuth apps |
284
292
  | `client.oauth` | Code exchange, revoke, app-info |
285
293
 
package/dist/index.cjs CHANGED
@@ -170,7 +170,8 @@ var WorkflowsResource = class {
170
170
  { body: input }
171
171
  );
172
172
  }
173
- /** Delete a workflow. Returns `{ success: true }`. */
173
+ /** Delete a workflow. Returns `{ success: true }`. Throws `NotFoundError`
174
+ * when the id doesn't exist or isn't yours (the delete is not silent). */
174
175
  delete(id) {
175
176
  return this.client.request("DELETE", `/v1/workflows/${encodeURIComponent(id)}`);
176
177
  }
@@ -465,7 +466,8 @@ var DeveloperAppsResource = class {
465
466
  { body: input }
466
467
  );
467
468
  }
468
- /** Delete a developer app. Returns `{ success: true }`. */
469
+ /** Delete a developer app. Returns `{ success: true }`. Throws
470
+ * `NotFoundError` when the id doesn't exist or isn't yours. */
469
471
  delete(id) {
470
472
  return this.client.request(
471
473
  "DELETE",
@@ -2042,6 +2044,91 @@ var ModelsResource = class {
2042
2044
  }
2043
2045
  };
2044
2046
 
2047
+ // src/resources/shots.ts
2048
+ var ShotsResource = class {
2049
+ constructor(client) {
2050
+ this.client = client;
2051
+ }
2052
+ client;
2053
+ /** Create a shot record. Returns the new shot's id — an unguessable
2054
+ * capability string that doubles as the share-link path segment. */
2055
+ create(input = {}) {
2056
+ return this.client.request("POST", "/v1/shots", { body: input });
2057
+ }
2058
+ /** Read a shot. Public shots are readable by anyone holding the id;
2059
+ * private shots resolve only for their owner (404 otherwise). */
2060
+ get(id) {
2061
+ return this.client.request("GET", `/v1/shots/${encodeURIComponent(id)}`);
2062
+ }
2063
+ /** Update an owned shot (any subset of fields, e.g. a visibility toggle). */
2064
+ update(id, input) {
2065
+ return this.client.request("PATCH", `/v1/shots/${encodeURIComponent(id)}`, { body: input });
2066
+ }
2067
+ /** Delete an owned shot. */
2068
+ async delete(id) {
2069
+ await this.client.request("DELETE", `/v1/shots/${encodeURIComponent(id)}`);
2070
+ }
2071
+ };
2072
+
2073
+ // src/resources/recast.ts
2074
+ var RecastResource = class {
2075
+ constructor(client) {
2076
+ this.client = client;
2077
+ }
2078
+ client;
2079
+ // ── Authored-script lane (all three endpoints are free) ────────────────
2080
+ /** The generated authoring guide (markdown): document contract, enum
2081
+ * vocabularies, bounds, audio rules, and a validated worked example. */
2082
+ async authoringSkill() {
2083
+ const res = await this.client.request(
2084
+ "GET",
2085
+ "/v1/video-analysis/authoring-skill"
2086
+ );
2087
+ return res.markdown ?? "";
2088
+ }
2089
+ /** FREE validation of an authored script. Loop until `valid: true`. */
2090
+ validateScript(script) {
2091
+ return this.client.request("POST", "/v1/video-analysis/import/validate", {
2092
+ body: { script }
2093
+ });
2094
+ }
2095
+ /**
2096
+ * Import a VALIDATED authored script as a completed analysis job.
2097
+ * `rightsAttested: true` is required (403 otherwise) — authored recasts
2098
+ * render Faithful, exactly as written, so only import work you own.
2099
+ */
2100
+ importScript(script, opts) {
2101
+ return this.client.request("POST", "/v1/video-analysis/import", {
2102
+ body: { script, rightsAttested: opts.rightsAttested }
2103
+ });
2104
+ }
2105
+ // ── Run lane ───────────────────────────────────────────────────────────
2106
+ /** Quote a run (credits) before buying the plan. */
2107
+ estimate(input) {
2108
+ return this.client.request("POST", "/v1/recast/estimate", { body: input });
2109
+ }
2110
+ /** Create a run (buys the plan). Returns `{ recastId }`. */
2111
+ create(input) {
2112
+ return this.client.request("POST", "/v1/recast", { body: input });
2113
+ }
2114
+ /** Poll the run — status plus any pending interactive step. */
2115
+ get(recastId) {
2116
+ return this.client.request("GET", `/v1/recast/${encodeURIComponent(recastId)}`);
2117
+ }
2118
+ /** Start rendering a `planned` run. Idempotent server-side. */
2119
+ start(recastId, opts = {}) {
2120
+ return this.client.request("POST", `/v1/recast/${encodeURIComponent(recastId)}/start`, {
2121
+ body: opts
2122
+ });
2123
+ }
2124
+ /** Answer a pending interactive gate (the pick itself is free). */
2125
+ resolveGate(recastId, input) {
2126
+ return this.client.request("POST", `/v1/recast/${encodeURIComponent(recastId)}/select`, {
2127
+ body: input
2128
+ });
2129
+ }
2130
+ };
2131
+
2045
2132
  // src/resources/community.ts
2046
2133
  var CommunityResource = class {
2047
2134
  constructor(client) {
@@ -2195,7 +2282,7 @@ var TutorialsResource = class {
2195
2282
  };
2196
2283
 
2197
2284
  // src/client.ts
2198
- var SDK_VERSION = "1.15.0" ;
2285
+ var SDK_VERSION = "1.17.0" ;
2199
2286
  var CLIENT_HEADER = "X-Nodaro-Client";
2200
2287
  var isBrowser = () => typeof window !== "undefined" && typeof window.document !== "undefined";
2201
2288
  var NodaroClient = class {
@@ -2241,6 +2328,8 @@ var NodaroClient = class {
2241
2328
  presets;
2242
2329
  pickerCatalogs;
2243
2330
  models;
2331
+ shots;
2332
+ recast;
2244
2333
  community;
2245
2334
  templates;
2246
2335
  tutorials;
@@ -2276,6 +2365,8 @@ var NodaroClient = class {
2276
2365
  this.presets = new PresetsResource(this);
2277
2366
  this.pickerCatalogs = new PickerCatalogsResource(this);
2278
2367
  this.models = new ModelsResource(this);
2368
+ this.shots = new ShotsResource(this);
2369
+ this.recast = new RecastResource(this);
2279
2370
  this.community = new CommunityResource(this);
2280
2371
  this.templates = new TemplatesResource(this);
2281
2372
  this.tutorials = new TutorialsResource(this);
@@ -2471,7 +2562,9 @@ exports.PresetsResource = PresetsResource;
2471
2562
  exports.ProjectsResource = ProjectsResource;
2472
2563
  exports.PromptHelperResource = PromptHelperResource;
2473
2564
  exports.RateLimitedError = RateLimitedError;
2565
+ exports.RecastResource = RecastResource;
2474
2566
  exports.ReduceResource = ReduceResource;
2567
+ exports.ShotsResource = ShotsResource;
2475
2568
  exports.StaticTokenAuth = StaticTokenAuth;
2476
2569
  exports.StorageExceededError = StorageExceededError;
2477
2570
  exports.TemplatesResource = TemplatesResource;