@renderinc/sdk 0.1.0 → 0.2.1

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.
Files changed (126) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +17 -7
  3. package/biome.json +84 -0
  4. package/dist/experimental/blob/api.d.ts +11 -0
  5. package/dist/experimental/blob/api.d.ts.map +1 -0
  6. package/dist/experimental/blob/api.js +44 -0
  7. package/dist/experimental/blob/client.d.ts +21 -0
  8. package/dist/experimental/blob/client.d.ts.map +1 -0
  9. package/dist/experimental/blob/client.js +127 -0
  10. package/dist/experimental/blob/index.d.ts +5 -0
  11. package/dist/experimental/blob/index.d.ts.map +1 -0
  12. package/dist/experimental/blob/index.js +8 -0
  13. package/dist/experimental/blob/types.d.ts +49 -0
  14. package/dist/experimental/blob/types.d.ts.map +1 -0
  15. package/dist/experimental/experimental.d.ts +12 -0
  16. package/dist/experimental/experimental.d.ts.map +1 -0
  17. package/dist/experimental/experimental.js +16 -0
  18. package/dist/experimental/index.d.ts +3 -0
  19. package/dist/experimental/index.d.ts.map +1 -0
  20. package/dist/experimental/index.js +10 -0
  21. package/dist/experimental/object/api.d.ts +11 -0
  22. package/dist/experimental/object/api.d.ts.map +1 -0
  23. package/dist/experimental/object/api.js +44 -0
  24. package/dist/experimental/object/client.d.ts +21 -0
  25. package/dist/experimental/object/client.d.ts.map +1 -0
  26. package/dist/experimental/object/client.js +127 -0
  27. package/dist/experimental/object/index.d.ts +5 -0
  28. package/dist/experimental/object/index.d.ts.map +1 -0
  29. package/dist/experimental/object/index.js +8 -0
  30. package/dist/experimental/object/types.d.ts +49 -0
  31. package/dist/experimental/object/types.d.ts.map +1 -0
  32. package/dist/experimental/object/types.js +2 -0
  33. package/dist/generated/schema.d.ts +9910 -0
  34. package/dist/generated/schema.d.ts.map +1 -0
  35. package/dist/generated/schema.js +2 -0
  36. package/dist/index.d.ts +3 -1
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +5 -2
  39. package/dist/render.d.ts +2 -0
  40. package/dist/render.d.ts.map +1 -1
  41. package/dist/render.js +4 -2
  42. package/dist/utils/create-api-client.d.ts +1 -1
  43. package/dist/utils/create-api-client.d.ts.map +1 -1
  44. package/dist/utils/create-api-client.js +2 -0
  45. package/dist/version.d.ts +3 -0
  46. package/dist/version.d.ts.map +1 -0
  47. package/dist/version.js +23 -0
  48. package/dist/workflows/client/client.d.ts +1 -1
  49. package/dist/workflows/client/client.d.ts.map +1 -1
  50. package/dist/workflows/client/sse.d.ts +2 -2
  51. package/dist/workflows/client/sse.d.ts.map +1 -1
  52. package/dist/workflows/client/sse.js +2 -0
  53. package/dist/workflows/client/types.d.ts +1 -1
  54. package/dist/workflows/client/types.d.ts.map +1 -1
  55. package/dist/workflows/executor.d.ts +2 -2
  56. package/dist/workflows/executor.d.ts.map +1 -1
  57. package/dist/workflows/registry.d.ts +1 -1
  58. package/dist/workflows/registry.d.ts.map +1 -1
  59. package/dist/workflows/registry.js +13 -6
  60. package/dist/workflows/runner.d.ts.map +1 -1
  61. package/dist/workflows/runner.js +2 -0
  62. package/dist/workflows/schema.d.ts +9 -0
  63. package/dist/workflows/schema.d.ts.map +1 -1
  64. package/dist/workflows/task.d.ts +1 -0
  65. package/dist/workflows/task.d.ts.map +1 -1
  66. package/dist/workflows/task.js +34 -0
  67. package/dist/workflows/types.d.ts +3 -1
  68. package/dist/workflows/types.d.ts.map +1 -1
  69. package/dist/workflows/uds.d.ts +1 -1
  70. package/dist/workflows/uds.d.ts.map +1 -1
  71. package/dist/workflows/uds.js +27 -82
  72. package/examples/client/main.ts +42 -0
  73. package/examples/client/package-lock.json +601 -0
  74. package/examples/client/package.json +16 -0
  75. package/examples/client/tsconfig.json +17 -0
  76. package/examples/task/main.ts +90 -0
  77. package/examples/task/package-lock.json +584 -0
  78. package/examples/task/package.json +16 -0
  79. package/examples/task/tsconfig.json +17 -0
  80. package/package.json +19 -27
  81. package/src/errors.test.ts +75 -0
  82. package/src/errors.ts +73 -0
  83. package/src/experimental/experimental.ts +56 -0
  84. package/src/experimental/index.ts +24 -0
  85. package/src/experimental/object/api.ts +91 -0
  86. package/src/experimental/object/client.test.ts +138 -0
  87. package/src/experimental/object/client.ts +317 -0
  88. package/src/experimental/object/index.ts +22 -0
  89. package/src/experimental/object/types.test.ts +87 -0
  90. package/src/experimental/object/types.ts +131 -0
  91. package/src/generated/schema.ts +12937 -0
  92. package/src/index.ts +7 -0
  93. package/src/render.ts +35 -0
  94. package/src/utils/create-api-client.ts +13 -0
  95. package/src/utils/get-base-url.test.ts +58 -0
  96. package/src/utils/get-base-url.ts +16 -0
  97. package/src/version.ts +37 -0
  98. package/src/workflows/client/client.test.ts +68 -0
  99. package/src/workflows/client/client.ts +142 -0
  100. package/src/workflows/client/create-client.ts +17 -0
  101. package/src/workflows/client/index.ts +3 -0
  102. package/src/workflows/client/sse.ts +95 -0
  103. package/src/workflows/client/types.ts +56 -0
  104. package/src/workflows/executor.ts +124 -0
  105. package/src/workflows/index.ts +7 -0
  106. package/src/workflows/registry.test.ts +76 -0
  107. package/src/workflows/registry.ts +88 -0
  108. package/src/workflows/runner.ts +38 -0
  109. package/src/workflows/schema.ts +348 -0
  110. package/src/workflows/task.ts +117 -0
  111. package/src/workflows/types.test.ts +52 -0
  112. package/src/workflows/types.ts +89 -0
  113. package/src/workflows/uds.ts +139 -0
  114. package/test-types.ts +14 -0
  115. package/tsconfig.build.json +4 -0
  116. package/tsconfig.json +23 -0
  117. package/vitest.config.ts +8 -0
  118. package/dist/workflows/client/errors.d.ts +0 -25
  119. package/dist/workflows/client/errors.d.ts.map +0 -1
  120. package/dist/workflows/client/errors.js +0 -56
  121. package/dist/workflows/client/schema.d.ts +0 -9322
  122. package/dist/workflows/client/schema.d.ts.map +0 -1
  123. package/dist/workflows/client/workflows.d.ts +0 -15
  124. package/dist/workflows/client/workflows.d.ts.map +0 -1
  125. package/dist/workflows/client/workflows.js +0 -63
  126. /package/dist/{workflows/client/schema.js → experimental/blob/types.js} +0 -0
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/dist/index.d.ts CHANGED
@@ -1,3 +1,5 @@
1
- export { Render } from "./render.js";
2
1
  export * from "./errors.js";
2
+ export type { ExperimentalClient } from "./experimental/index.js";
3
+ export { Render } from "./render.js";
4
+ export { getUserAgent, VERSION } from "./version.js";
3
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,aAAa,CAAC;AAE5B,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -14,7 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.Render = void 0;
17
+ exports.VERSION = exports.getUserAgent = exports.Render = void 0;
18
+ __exportStar(require("./errors.js"), exports);
18
19
  var render_js_1 = require("./render.js");
19
20
  Object.defineProperty(exports, "Render", { enumerable: true, get: function () { return render_js_1.Render; } });
20
- __exportStar(require("./errors.js"), exports);
21
+ var version_js_1 = require("./version.js");
22
+ Object.defineProperty(exports, "getUserAgent", { enumerable: true, get: function () { return version_js_1.getUserAgent; } });
23
+ Object.defineProperty(exports, "VERSION", { enumerable: true, get: function () { return version_js_1.VERSION; } });
package/dist/render.d.ts CHANGED
@@ -1,7 +1,9 @@
1
+ import { ExperimentalClient } from "./experimental/experimental.js";
1
2
  import { WorkflowsClient } from "./workflows/client/index.js";
2
3
  import type { ClientOptions } from "./workflows/client/types.js";
3
4
  export declare class Render {
4
5
  readonly workflows: WorkflowsClient;
6
+ readonly experimental: ExperimentalClient;
5
7
  private readonly apiClient;
6
8
  constructor(options?: ClientOptions);
7
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AASjE,qBAAa,MAAM;IACjB,SAAgB,SAAS,EAAE,eAAe,CAAC;IAE3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;gBAM9B,OAAO,CAAC,EAAE,aAAa;CAWpC"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAIpE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAKjE,qBAAa,MAAM;IACjB,SAAgB,SAAS,EAAE,eAAe,CAAC;IAC3C,SAAgB,YAAY,EAAE,kBAAkB,CAAC;IAEjD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;gBAM9B,OAAO,CAAC,EAAE,aAAa;CAYpC"}
package/dist/render.js CHANGED
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Render = void 0;
4
- const index_js_1 = require("./workflows/client/index.js");
4
+ const errors_js_1 = require("./errors.js");
5
+ const experimental_js_1 = require("./experimental/experimental.js");
5
6
  const create_api_client_js_1 = require("./utils/create-api-client.js");
6
7
  const get_base_url_js_1 = require("./utils/get-base-url.js");
7
- const errors_js_1 = require("./errors.js");
8
+ const index_js_1 = require("./workflows/client/index.js");
8
9
  class Render {
9
10
  constructor(options) {
10
11
  const token = options?.token || process.env.RENDER_API_KEY;
@@ -14,6 +15,7 @@ class Render {
14
15
  const baseUrl = (0, get_base_url_js_1.getBaseUrl)(options);
15
16
  this.apiClient = (0, create_api_client_js_1.createApiClient)(baseUrl, token);
16
17
  this.workflows = new index_js_1.WorkflowsClient(this.apiClient, baseUrl, token);
18
+ this.experimental = new experimental_js_1.ExperimentalClient(this.apiClient);
17
19
  }
18
20
  }
19
21
  exports.Render = Render;
@@ -1,4 +1,4 @@
1
1
  import { type Client } from "openapi-fetch";
2
- import type { paths } from "./schema";
2
+ import type { paths } from "../generated/schema";
3
3
  export declare function createApiClient(baseUrl: string, token: string): Client<paths>;
4
4
  //# sourceMappingURL=create-api-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-api-client.d.ts","sourceRoot":"","sources":["../../src/utils/create-api-client.ts"],"names":[],"mappings":"AAAA,OAAqB,EAAE,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEtC,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAO7E"}
1
+ {"version":3,"file":"create-api-client.d.ts","sourceRoot":"","sources":["../../src/utils/create-api-client.ts"],"names":[],"mappings":"AAAA,OAAqB,EAAE,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAGjD,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAQ7E"}
@@ -5,11 +5,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.createApiClient = createApiClient;
7
7
  const openapi_fetch_1 = __importDefault(require("openapi-fetch"));
8
+ const version_js_1 = require("../version.js");
8
9
  function createApiClient(baseUrl, token) {
9
10
  return (0, openapi_fetch_1.default)({
10
11
  baseUrl: `${baseUrl}/v1`,
11
12
  headers: {
12
13
  Authorization: `Bearer ${token}`,
14
+ "User-Agent": (0, version_js_1.getUserAgent)(),
13
15
  },
14
16
  });
15
17
  }
@@ -0,0 +1,3 @@
1
+ export declare const VERSION: string;
2
+ export declare function getUserAgent(): string;
3
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,OAAO,QAAe,CAAC;AAQpC,wBAAgB,YAAY,IAAI,MAAM,CAMrC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VERSION = void 0;
4
+ exports.getUserAgent = getUserAgent;
5
+ const node_fs_1 = require("node:fs");
6
+ const node_path_1 = require("node:path");
7
+ function getVersion() {
8
+ try {
9
+ const pkgPath = (0, node_path_1.join)(__dirname, "..", "package.json");
10
+ const pkg = JSON.parse((0, node_fs_1.readFileSync)(pkgPath, "utf-8"));
11
+ return pkg.version ?? "unknown";
12
+ }
13
+ catch {
14
+ return "unknown";
15
+ }
16
+ }
17
+ exports.VERSION = getVersion();
18
+ function getUserAgent() {
19
+ const nodeVersion = process.version.replace("v", "");
20
+ const platform = process.platform;
21
+ const arch = process.arch;
22
+ return `render-sdk-typescript/${exports.VERSION} (node/${nodeVersion}; ${platform}/${arch})`;
23
+ }
@@ -1,5 +1,5 @@
1
1
  import type { Client as ApiClient } from "openapi-fetch";
2
- import type { paths } from "../../utils/schema.js";
2
+ import type { paths } from "../../generated/schema.js";
3
3
  import type { ListTaskRunsParams, TaskData, TaskIdentifier, TaskRun, TaskRunDetails } from "./types.js";
4
4
  export declare class WorkflowsClient {
5
5
  private readonly sse;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/workflows/client/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,eAAe,CAAC;AAEzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,EACV,kBAAkB,EAClB,QAAQ,EACR,cAAc,EACd,OAAO,EACP,cAAc,EACf,MAAM,YAAY,CAAC;AAoBpB,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;gBAOjC,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAKjE,OAAO,CACX,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAE,QAAQ,EACnB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,cAAc,CAAC;YA4CZ,WAAW;IAUnB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;YAe9C,aAAa;IAerB,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CASnE"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/workflows/client/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,eAAe,CAAC;AAEzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAEvD,OAAO,KAAK,EACV,kBAAkB,EAClB,QAAQ,EACR,cAAc,EACd,OAAO,EACP,cAAc,EACf,MAAM,YAAY,CAAC;AAoBpB,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;gBAOjC,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAKjE,OAAO,CACX,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAE,QAAQ,EACnB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,cAAc,CAAC;YA4CZ,WAAW;IAUnB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;YAe9C,aAAa;IAerB,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CASnE"}
@@ -6,8 +6,8 @@ export declare enum TaskEventType {
6
6
  PENDING = "task.pending"
7
7
  }
8
8
  export declare class SSEClient {
9
- private baseUrl;
10
- private token;
9
+ private readonly baseUrl;
10
+ private readonly token;
11
11
  constructor(baseUrl: string, token: string);
12
12
  waitOnTaskRun(taskRunId: string, signal?: AbortSignal): Promise<TaskRunDetails>;
13
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../../src/workflows/client/sse.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAKjD,oBAAY,aAAa;IACvB,SAAS,mBAAmB;IAC5B,MAAM,gBAAgB;IACtB,OAAO,iBAAiB;IACxB,OAAO,iBAAiB;CACzB;AAKD,qBAAa,SAAS;IAElB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,KAAK;gBADL,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM;IAGjB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC;CAqEtF"}
1
+ {"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../../src/workflows/client/sse.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAKjD,oBAAY,aAAa;IACvB,SAAS,mBAAmB;IAC5B,MAAM,gBAAgB;IACtB,OAAO,iBAAiB;IACxB,OAAO,iBAAiB;CACzB;AAKD,qBAAa,SAAS;IAElB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBADL,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM;IAG1B,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC;CAsEtF"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SSEClient = exports.TaskEventType = void 0;
4
4
  const eventsource_1 = require("eventsource");
5
5
  const errors_js_1 = require("../../errors.js");
6
+ const version_js_1 = require("../../version.js");
6
7
  var TaskEventType;
7
8
  (function (TaskEventType) {
8
9
  TaskEventType["COMPLETED"] = "task.completed";
@@ -61,6 +62,7 @@ class SSEClient {
61
62
  headers: {
62
63
  ...init?.headers,
63
64
  Authorization: `Bearer ${this.token}`,
65
+ "User-Agent": (0, version_js_1.getUserAgent)(),
64
66
  },
65
67
  }),
66
68
  });
@@ -1,4 +1,4 @@
1
- import type { components, paths } from "../../utils/schema";
1
+ import type { components, paths } from "../../generated/schema";
2
2
  export type TaskIdentifier = string;
3
3
  export type TaskData = Array<any>;
4
4
  export declare enum TaskRunStatus {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/workflows/client/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAK5D,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AAKpC,MAAM,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;AAKlC,oBAAY,aAAa;IACvB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,MAAM,WAAW;CAClB;AAMD,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC;AAMvD,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,gBAAgB,CAAC,CAAC;AAKrE,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC;AAKnF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,QAAQ,CAAC;CACjB;AAKD,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/workflows/client/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAKhE,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AAKpC,MAAM,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;AAKlC,oBAAY,aAAa;IACvB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,MAAM,WAAW;CAClB;AAMD,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC;AAMvD,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,gBAAgB,CAAC,CAAC;AAKrE,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC;AAKnF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,QAAQ,CAAC;CACjB;AAKD,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
@@ -1,6 +1,6 @@
1
1
  export declare class TaskExecutor {
2
- private udsClient;
3
- private context;
2
+ private readonly udsClient;
3
+ private readonly context;
4
4
  constructor(socketPath: string);
5
5
  executeTask(): Promise<void>;
6
6
  registerTasks(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/workflows/executor.ts"],"names":[],"mappings":"AAyEA,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,OAAO,CAAc;gBAEjB,UAAU,EAAE,MAAM;IAQxB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAiC5B,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;CAKrC"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/workflows/executor.ts"],"names":[],"mappings":"AAyEA,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;gBAE1B,UAAU,EAAE,MAAM;IAQxB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAiC5B,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;CAKrC"}
@@ -1,7 +1,7 @@
1
1
  import type { RegisterTaskOptions, TaskFunction, TaskMetadata } from "./types.js";
2
2
  export declare class TaskRegistry {
3
3
  private static instance;
4
- private tasks;
4
+ private readonly tasks;
5
5
  private constructor();
6
6
  static getInstance(): TaskRegistry;
7
7
  register(func: TaskFunction, options: RegisterTaskOptions): void;
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/workflows/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,YAAY,EAAe,MAAM,YAAY,CAAC;AAK/F,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAe;IACtC,OAAO,CAAC,KAAK,CAAwC;IAErD,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,YAAY;IAUlC,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,GAAG,IAAI;IA4BhE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAO3C,eAAe,IAAI,MAAM,EAAE;IAI3B,WAAW,IAAI,YAAY,EAAE;IAO7B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAO1B,KAAK,IAAI,IAAI;CAGd"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/workflows/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,YAAY,EAAe,MAAM,YAAY,CAAC;AAK/F,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwC;IAE9D,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,YAAY;IAUlC,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAsChE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAO3C,eAAe,IAAI,MAAM,EAAE;IAI3B,WAAW,IAAI,YAAY,EAAE;IAO7B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAO1B,KAAK,IAAI,IAAI;CAGd"}
@@ -17,14 +17,21 @@ class TaskRegistry {
17
17
  throw new Error("Task function must have a name or name must be provided");
18
18
  }
19
19
  let taskOptions;
20
- if (options.retry) {
21
- taskOptions = {
22
- retry: {
20
+ if (options.retry || options.timeoutSeconds || options.plan) {
21
+ taskOptions = {};
22
+ if (options.retry) {
23
+ taskOptions.retry = {
23
24
  max_retries: options.retry.maxRetries,
24
- wait_duration_ms: options.retry.waitDuration,
25
+ wait_duration_ms: options.retry.waitDurationMs,
25
26
  factor: options.retry.backoffScaling,
26
- },
27
- };
27
+ };
28
+ }
29
+ if (options.timeoutSeconds) {
30
+ taskOptions.timeout_seconds = options.timeoutSeconds;
31
+ }
32
+ if (options.plan) {
33
+ taskOptions.plan = options.plan;
34
+ }
28
35
  }
29
36
  this.tasks.set(taskName, {
30
37
  name: taskName,
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/workflows/runner.ts"],"names":[],"mappings":"AAMA,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAmBrD;AAKD,wBAAsB,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG3D"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/workflows/runner.ts"],"names":[],"mappings":"AAOA,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAsBrD;AAKD,wBAAsB,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG3D"}
@@ -4,6 +4,7 @@ exports.startTaskServer = startTaskServer;
4
4
  exports.run = run;
5
5
  const errors_js_1 = require("../errors.js");
6
6
  const executor_js_1 = require("./executor.js");
7
+ const task_js_1 = require("./task.js");
7
8
  async function startTaskServer() {
8
9
  const mode = process.env.RENDER_SDK_MODE || "run";
9
10
  const socketPath = process.env.RENDER_SDK_SOCKET_PATH;
@@ -11,6 +12,7 @@ async function startTaskServer() {
11
12
  throw new errors_js_1.RenderError("RENDER_SDK_SOCKET_PATH environment variable is required");
12
13
  }
13
14
  const executor = new executor_js_1.TaskExecutor(socketPath);
15
+ (0, task_js_1.markServerStarted)();
14
16
  if (mode === "register") {
15
17
  await executor.registerTasks();
16
18
  }
@@ -275,9 +275,18 @@ export interface components {
275
275
  Task: {
276
276
  name: string;
277
277
  options?: components["schemas"]["TaskOptions"];
278
+ parameters?: components["schemas"]["TaskParameter"][];
279
+ };
280
+ TaskParameter: {
281
+ name: string;
282
+ type?: string;
283
+ has_default: boolean;
284
+ default_value?: string;
278
285
  };
279
286
  TaskOptions: {
280
287
  retry?: components["schemas"]["RetryConfig"];
288
+ timeout_seconds?: number;
289
+ plan?: string;
281
290
  };
282
291
  RetryConfig: {
283
292
  max_retries?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/workflows/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/workflows/schema.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { RegisterTaskOptions, TaskContext, TaskFunction } from "./types.js";
2
+ export declare function markServerStarted(): void;
2
3
  export declare function getCurrentContext(): TaskContext | undefined;
3
4
  export declare function setCurrentContext<T>(context: TaskContext, fn: () => Promise<T>): Promise<T>;
4
5
  export declare function task<TArgs extends any[], TResult>(options: RegisterTaskOptions, func: TaskFunction<TArgs, TResult>): TaskFunction<TArgs, TResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/workflows/task.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAUjF,wBAAgB,iBAAiB,IAAI,WAAW,GAAG,SAAS,CAE3D;AAKD,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAE3F;AASD,wBAAgB,IAAI,CAAC,KAAK,SAAS,GAAG,EAAE,EAAE,OAAO,EAC/C,OAAO,EAAE,mBAAmB,EAC5B,IAAI,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,GACjC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAoB9B"}
1
+ {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/workflows/task.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAoBjF,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAuBD,wBAAgB,iBAAiB,IAAI,WAAW,GAAG,SAAS,CAE3D;AAKD,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAE3F;AAaD,wBAAgB,IAAI,CAAC,KAAK,SAAS,GAAG,EAAE,EAAE,OAAO,EAC/C,OAAO,EAAE,mBAAmB,EAC5B,IAAI,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,GACjC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CA4C9B"}
@@ -1,11 +1,27 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.markServerStarted = markServerStarted;
3
4
  exports.getCurrentContext = getCurrentContext;
4
5
  exports.setCurrentContext = setCurrentContext;
5
6
  exports.task = task;
6
7
  const node_async_hooks_1 = require("node:async_hooks");
7
8
  const registry_js_1 = require("./registry.js");
8
9
  const taskContextStorage = new node_async_hooks_1.AsyncLocalStorage();
10
+ let autoStartScheduled = false;
11
+ let serverStarted = false;
12
+ function markServerStarted() {
13
+ serverStarted = true;
14
+ }
15
+ function shouldAutoStart() {
16
+ if (!process.env.RENDER_SDK_SOCKET_PATH) {
17
+ return false;
18
+ }
19
+ const autoStartEnv = process.env.RENDER_SDK_AUTO_START;
20
+ if (autoStartEnv !== undefined && autoStartEnv.toLowerCase() === "false") {
21
+ return false;
22
+ }
23
+ return true;
24
+ }
9
25
  function getCurrentContext() {
10
26
  return taskContextStorage.getStore();
11
27
  }
@@ -13,8 +29,26 @@ function setCurrentContext(context, fn) {
13
29
  return taskContextStorage.run(context, fn);
14
30
  }
15
31
  function task(options, func) {
32
+ if (serverStarted) {
33
+ console.warn(`Warning: Task '${options.name}' was registered after the task server started. ` +
34
+ `This task will not be available for execution. ` +
35
+ `Ensure all tasks are defined synchronously at module level.`);
36
+ }
16
37
  const registry = registry_js_1.TaskRegistry.getInstance();
17
38
  registry.register(func, options);
39
+ if (!autoStartScheduled && shouldAutoStart()) {
40
+ autoStartScheduled = true;
41
+ setImmediate(async () => {
42
+ const { startTaskServer } = await import("./runner.js");
43
+ try {
44
+ await startTaskServer();
45
+ }
46
+ catch (error) {
47
+ console.error("Failed to start task server:", error);
48
+ process.exit(1);
49
+ }
50
+ });
51
+ }
18
52
  return ((...args) => {
19
53
  const context = getCurrentContext();
20
54
  if (!context) {
@@ -25,11 +25,13 @@ export type GetSubtaskResultResponse = components["schemas"]["SubtaskResultRespo
25
25
  export type RegisterTasksRequest = components["schemas"]["Tasks"];
26
26
  export interface Retry {
27
27
  maxRetries: number;
28
- waitDuration: number;
28
+ waitDurationMs: number;
29
29
  backoffScaling?: number;
30
30
  }
31
31
  export interface RegisterTaskOptions {
32
32
  retry?: Retry;
33
+ timeoutSeconds?: number;
34
+ plan?: string;
33
35
  name: string;
34
36
  }
35
37
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/workflows/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAK9C,MAAM,MAAM,YAAY,CAAC,KAAK,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,OAAO,GAAG,GAAG,IAAI,CACrE,GAAG,IAAI,EAAE,KAAK,KACX,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAEhC,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC;AAK/D,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAKD,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,KAAK,SAAS,GAAG,EAAE,EAAE,OAAO,EACtC,IAAI,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,EAClC,QAAQ,EAAE,MAAM,EAChB,GAAG,IAAI,EAAE,KAAK,GACb,UAAU,CAAC,OAAO,CAAC,CAAC;CACxB;AAKD,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;CACnB;AAKD,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,GAAG,EAAE,CAAC;CACd;AAMD,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,CAAC;AAEvE,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAC;AAEtE,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,CAAC;AAE3E,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,CAAC;AAE7E,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,sBAAsB,CAAC,CAAC;AAEpF,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,uBAAuB,CAAC,CAAC;AAEtF,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC;AAKlE,MAAM,WAAW,KAAK;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAKD,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/workflows/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAK9C,MAAM,MAAM,YAAY,CAAC,KAAK,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,OAAO,GAAG,GAAG,IAAI,CACrE,GAAG,IAAI,EAAE,KAAK,KACX,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAEhC,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC;AAK/D,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAKD,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,KAAK,SAAS,GAAG,EAAE,EAAE,OAAO,EACtC,IAAI,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,EAClC,QAAQ,EAAE,MAAM,EAChB,GAAG,IAAI,EAAE,KAAK,GACb,UAAU,CAAC,OAAO,CAAC,CAAC;CACxB;AAKD,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;CACnB;AAKD,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,GAAG,EAAE,CAAC;CACd;AAMD,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,CAAC;AAEvE,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAC;AAEtE,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,CAAC;AAE3E,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,CAAC;AAE7E,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,sBAAsB,CAAC,CAAC;AAEpF,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,uBAAuB,CAAC,CAAC;AAEtF,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC;AAKlE,MAAM,WAAW,KAAK;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAKD,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IAQxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd"}
@@ -1,6 +1,6 @@
1
1
  import type { GetInputResponse, GetSubtaskResultResponse, TaskMetadata } from "./types.js";
2
2
  export declare class UDSClient {
3
- private socketPath;
3
+ private readonly socketPath;
4
4
  constructor(socketPath: string);
5
5
  getInput(): Promise<GetInputResponse>;
6
6
  private buildCallbackBody;
@@ -1 +1 @@
1
- {"version":3,"file":"uds.d.ts","sourceRoot":"","sources":["../../src/workflows/uds.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,gBAAgB,EAEhB,wBAAwB,EAIxB,YAAY,EACb,MAAM,YAAY,CAAC;AAKpB,qBAAa,SAAS;IACR,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,MAAM;IAKhC,QAAQ,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAI3C,OAAO,CAAC,iBAAiB;IAyBnB,YAAY,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO1D,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAa3D,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAUtE,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YAa3C,OAAO;CAgFtB"}
1
+ {"version":3,"file":"uds.d.ts","sourceRoot":"","sources":["../../src/workflows/uds.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,gBAAgB,EAEhB,wBAAwB,EAIxB,YAAY,EACb,MAAM,YAAY,CAAC;AAKpB,qBAAa,SAAS;IACR,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,MAAM;IAKzC,QAAQ,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAI3C,OAAO,CAAC,iBAAiB;IAyBnB,YAAY,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO1D,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAa3D,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAUtE,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YAa3C,OAAO;CA2CtB"}
@@ -1,40 +1,11 @@
1
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
- })();
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
35
5
  Object.defineProperty(exports, "__esModule", { value: true });
36
6
  exports.UDSClient = void 0;
37
- const net = __importStar(require("node:net"));
7
+ const node_http_1 = __importDefault(require("node:http"));
8
+ const version_js_1 = require("../version.js");
38
9
  class UDSClient {
39
10
  constructor(socketPath) {
40
11
  this.socketPath = socketPath;
@@ -90,65 +61,39 @@ class UDSClient {
90
61
  }
91
62
  async request(path, method, body) {
92
63
  return new Promise((resolve, reject) => {
93
- const client = net.createConnection({ path: this.socketPath }, () => {
94
- const bodyStr = body ? JSON.stringify(body) : "";
95
- const request = `${method} ${path} HTTP/1.1\r\nHost: unix\r\nContent-Length: ${bodyStr.length}\r\nContent-Type: application/json\r\n\r\n${bodyStr}`;
96
- client.write(request);
97
- });
98
- let data = "";
99
- let contentLength = null;
100
- let headersParsed = false;
101
- let bodyStartIndex = -1;
102
- client.on("data", (chunk) => {
103
- data += chunk.toString();
104
- if (!headersParsed) {
105
- const headerEndIndex = data.indexOf("\r\n\r\n");
106
- if (headerEndIndex !== -1) {
107
- headersParsed = true;
108
- bodyStartIndex = headerEndIndex + 4;
109
- const headers = data.substring(0, headerEndIndex);
110
- const contentLengthMatch = headers.match(/Content-Length:\s*(\d+)/i);
111
- if (contentLengthMatch) {
112
- contentLength = parseInt(contentLengthMatch[1], 10);
113
- }
114
- }
64
+ const req = node_http_1.default.request({
65
+ socketPath: this.socketPath,
66
+ path: path,
67
+ method: method,
68
+ headers: {
69
+ "Content-Length": body ? JSON.stringify(body).length : 0,
70
+ "Content-Type": "application/json",
71
+ "User-Agent": (0, version_js_1.getUserAgent)(),
72
+ },
73
+ }, async (res) => {
74
+ const chunks = [];
75
+ for await (const chunk of res)
76
+ chunks.push(chunk);
77
+ const responseBody = Buffer.concat(chunks).toString();
78
+ if (res.statusCode && res.statusCode >= 400) {
79
+ reject(new Error(`HTTP ${res.statusCode}: ${responseBody}`));
80
+ return;
115
81
  }
116
- if (headersParsed && contentLength !== null) {
117
- const bodyReceived = data.length - bodyStartIndex;
118
- if (bodyReceived >= contentLength) {
119
- client.end();
120
- }
82
+ if (responseBody.length === 0) {
83
+ resolve(undefined);
84
+ return;
121
85
  }
122
- });
123
- client.on("end", () => {
124
86
  try {
125
- const lines = data.split("\r\n");
126
- const statusLine = lines[0];
127
- const statusCode = parseInt(statusLine.split(" ")[1], 10);
128
- if (statusCode >= 400) {
129
- reject(new Error(`HTTP ${statusCode}: ${data}`));
130
- return;
131
- }
132
- const emptyLineIndex = lines.indexOf("");
133
- if (emptyLineIndex === -1) {
134
- resolve(undefined);
135
- return;
136
- }
137
- const bodyLines = lines.slice(emptyLineIndex + 1);
138
- const responseBody = bodyLines.join("\r\n").trim();
139
- if (!responseBody) {
140
- resolve(undefined);
141
- return;
142
- }
143
87
  resolve(JSON.parse(responseBody));
144
88
  }
145
89
  catch (error) {
146
90
  reject(error);
147
91
  }
148
92
  });
149
- client.on("error", (error) => {
93
+ req.on("error", (error) => {
150
94
  reject(error);
151
95
  });
96
+ req.end(body ? JSON.stringify(body) : "");
152
97
  });
153
98
  }
154
99
  }
@@ -0,0 +1,42 @@
1
+ import { Render, ServerError } from "@renderinc/sdk";
2
+
3
+ /**
4
+ * Example: Using the REST API client to run tasks
5
+ */
6
+ async function main() {
7
+ const render = new Render();
8
+
9
+ try {
10
+ // Run a task
11
+ console.log("Running task...");
12
+
13
+ const result = await render.workflows.runTask("scott-go/square", [4]);
14
+
15
+ console.log("Task completed!");
16
+ console.log("Status:", result.status);
17
+ console.log("Results:", result.results);
18
+
19
+ // List recent task runs
20
+ console.log("\nListing recent task runs...");
21
+ const taskRuns = await render.workflows.listTaskRuns({ limit: 5 });
22
+ console.log(`Found ${taskRuns.length} task runs:`);
23
+ for (const run of taskRuns) {
24
+ console.log(` - ${run.id}: ${run.status} (${run.taskId})`);
25
+ }
26
+
27
+ if (result) {
28
+ // Get specific task run details
29
+ console.log("\nGetting task run details...");
30
+ const details = await render.workflows.getTaskRun(result.id);
31
+ console.log("Task run details:", details);
32
+ }
33
+ } catch (error) {
34
+ if (error instanceof ServerError) {
35
+ console.error("server error", error.name, error.message);
36
+ }
37
+ console.error("Error:", error);
38
+ process.exit(1);
39
+ }
40
+ }
41
+
42
+ main();