@roborean/api-types 0.1.3 → 0.1.5

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/client.d.ts CHANGED
@@ -5,10 +5,13 @@ export type ProjectSummary = {
5
5
  schemaVersion: string;
6
6
  };
7
7
  export type ProjectDetail = {
8
- project: Record<string, unknown>;
8
+ project: object;
9
9
  };
10
10
  export type ProjectCreate = {
11
- project: Record<string, unknown>;
11
+ project: object;
12
+ };
13
+ export type ProjectUpdate = {
14
+ project: object;
12
15
  };
13
16
  export type RunDetail = {
14
17
  runId: string;
@@ -23,6 +26,17 @@ export type RunCreate = {
23
26
  stopOnBitError?: boolean;
24
27
  workspaceOverrides?: Record<string, unknown>;
25
28
  };
29
+ export type RunSummary = {
30
+ runId: string;
31
+ projectId: string;
32
+ status: string;
33
+ createdAt: string;
34
+ finishedAt?: string | null;
35
+ };
36
+ export type PreviewRequest = {
37
+ documentId: string;
38
+ workspaceOverrides?: Record<string, unknown>;
39
+ };
26
40
  export type PreviewResponse = {
27
41
  documentId: string;
28
42
  kind: string;
@@ -33,6 +47,53 @@ export type PreviewResponse = {
33
47
  message: string;
34
48
  }>;
35
49
  };
50
+ export type TemplateContentResponse = {
51
+ templateId: string;
52
+ path: string;
53
+ contentBase64: string;
54
+ text?: string | null;
55
+ };
56
+ export type TemplateContentUpdate = {
57
+ text?: string;
58
+ contentBase64?: string;
59
+ };
60
+ export type TemplateLibraryKind = "document" | "starter" | "recipe";
61
+ export type RequiredBitTypeSummary = {
62
+ /** Bit type identifier. */
63
+ typeId: string;
64
+ /** Human-readable bit type name. */
65
+ name: string;
66
+ };
67
+ export type TemplateLibraryEntry = {
68
+ id: string;
69
+ kind: TemplateLibraryKind;
70
+ title: string;
71
+ description?: string | null;
72
+ documentType?: string | null;
73
+ driver?: string | null;
74
+ irFamily?: string | null;
75
+ tags?: string[];
76
+ templateVersion?: string | null;
77
+ requiredInputs?: string[];
78
+ capabilities?: string[];
79
+ path?: string | null;
80
+ mediaType?: string | null;
81
+ variableCount?: number | null;
82
+ bitCount?: number | null;
83
+ documentCount?: number | null;
84
+ /** Required bit types for recipe entries. */
85
+ requiredBitTypes?: RequiredBitTypeSummary[];
86
+ };
87
+ export type TemplateLibraryDetail = TemplateLibraryEntry & {
88
+ manifest?: Record<string, unknown> | null;
89
+ project?: Record<string, unknown> | null;
90
+ recipe?: Record<string, unknown> | null;
91
+ };
92
+ export type TemplateLibraryListParams = {
93
+ kind?: TemplateLibraryKind;
94
+ documentType?: string;
95
+ tag?: string;
96
+ };
36
97
  export type RoboreanClientOptions = {
37
98
  baseUrl: string;
38
99
  fetch?: typeof fetch;
@@ -43,7 +104,19 @@ export declare function createRoboreanClient(opts: RoboreanClientOptions): {
43
104
  listProjects: () => Promise<ProjectSummary[]>;
44
105
  getProject: (id: string) => Promise<ProjectDetail>;
45
106
  createProject: (body: ProjectCreate) => Promise<ProjectDetail>;
107
+ updateProject: (id: string, body: ProjectUpdate) => Promise<ProjectDetail>;
108
+ deleteProject: (id: string) => Promise<void>;
46
109
  createRun: (id: string, body: RunCreate, idempotencyKey: string) => Promise<RunDetail>;
47
110
  getRun: (runId: string) => Promise<RunDetail>;
111
+ listRuns: (projectId: string) => Promise<RunSummary[]>;
112
+ previewDocument: (projectId: string, body: PreviewRequest) => Promise<PreviewResponse>;
113
+ getTemplateContent: (projectId: string, templateId: string) => Promise<TemplateContentResponse>;
114
+ putTemplateContent: (projectId: string, templateId: string, body: TemplateContentUpdate) => Promise<TemplateContentResponse>;
115
+ deleteTemplateContent: (projectId: string, templateId: string) => Promise<void>;
116
+ listTemplateLibrary: (params?: TemplateLibraryListParams) => Promise<TemplateLibraryEntry[]>;
117
+ getTemplateLibraryEntry: (entryId: string) => Promise<TemplateLibraryDetail>;
118
+ getTemplateLibraryContent: (entryId: string) => Promise<TemplateContentResponse>;
119
+ artifactDownloadUrl: (runId: string, artifactId: string) => string;
120
+ downloadArtifact: (runId: string, artifactId: string) => Promise<Blob>;
48
121
  };
49
122
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAEnF,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC;AAEjE,MAAM,MAAM,aAAa,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC;AAEjE,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtE,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C,CAAC;AAkBF,+CAA+C;AAC/C,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,qBAAqB;;qBAc3C,MAAM;0BAOD,aAAa;oBAOnB,MAAM,QAAQ,SAAS,kBAAkB,MAAM;oBAW/C,MAAM;EAQzB"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -20,12 +20,52 @@ export function createRoboreanClient(opts) {
20
20
  listProjects: () => request(opts.baseUrl, "/v1/projects", { headers: headers() }, fetchImpl),
21
21
  getProject: (id) => request(opts.baseUrl, `/v1/projects/${id}`, { headers: headers() }, fetchImpl),
22
22
  createProject: (body) => request(opts.baseUrl, "/v1/projects", { method: "POST", headers: headers(), body: JSON.stringify(body) }, fetchImpl),
23
+ updateProject: (id, body) => request(opts.baseUrl, `/v1/projects/${id}`, { method: "PUT", headers: headers(), body: JSON.stringify(body) }, fetchImpl),
24
+ deleteProject: (id) => request(opts.baseUrl, `/v1/projects/${id}`, { method: "DELETE", headers: headers() }, fetchImpl),
23
25
  createRun: (id, body, idempotencyKey) => request(opts.baseUrl, `/v1/projects/${id}/runs`, {
24
26
  method: "POST",
25
27
  headers: { ...headers(), "Idempotency-Key": idempotencyKey },
26
28
  body: JSON.stringify(body),
27
29
  }, fetchImpl),
28
30
  getRun: (runId) => request(opts.baseUrl, `/v1/runs/${runId}`, { headers: headers() }, fetchImpl),
31
+ listRuns: (projectId) => request(opts.baseUrl, `/v1/projects/${projectId}/runs`, { headers: headers() }, fetchImpl),
32
+ previewDocument: (projectId, body) => request(opts.baseUrl, `/v1/projects/${projectId}/preview`, {
33
+ method: "POST",
34
+ headers: headers(),
35
+ body: JSON.stringify(body),
36
+ }, fetchImpl),
37
+ getTemplateContent: (projectId, templateId) => request(opts.baseUrl, `/v1/projects/${projectId}/templates/${templateId}/content`, { headers: headers() }, fetchImpl),
38
+ putTemplateContent: (projectId, templateId, body) => request(opts.baseUrl, `/v1/projects/${projectId}/templates/${templateId}/content`, {
39
+ method: "PUT",
40
+ headers: headers(),
41
+ body: JSON.stringify(body),
42
+ }, fetchImpl),
43
+ deleteTemplateContent: (projectId, templateId) => request(opts.baseUrl, `/v1/projects/${projectId}/templates/${templateId}/content`, { method: "DELETE", headers: headers() }, fetchImpl),
44
+ listTemplateLibrary: (params = {}) => {
45
+ const search = new URLSearchParams();
46
+ if (params.kind) {
47
+ search.set("kind", params.kind);
48
+ }
49
+ if (params.documentType) {
50
+ search.set("documentType", params.documentType);
51
+ }
52
+ if (params.tag) {
53
+ search.set("tag", params.tag);
54
+ }
55
+ const query = search.toString();
56
+ const suffix = query ? `?${query}` : "";
57
+ return request(opts.baseUrl, `/v1/template-library${suffix}`, { headers: headers() }, fetchImpl);
58
+ },
59
+ getTemplateLibraryEntry: (entryId) => request(opts.baseUrl, `/v1/template-library/${entryId}`, { headers: headers() }, fetchImpl),
60
+ getTemplateLibraryContent: (entryId) => request(opts.baseUrl, `/v1/template-library/${entryId}/content`, { headers: headers() }, fetchImpl),
61
+ artifactDownloadUrl: (runId, artifactId) => `${opts.baseUrl}/v1/runs/${runId}/artifacts/${artifactId}`,
62
+ downloadArtifact: async (runId, artifactId) => {
63
+ const response = await fetchImpl(`${opts.baseUrl}/v1/runs/${runId}/artifacts/${artifactId}`, { headers: opts.getHeaders?.() ?? {} });
64
+ if (!response.ok) {
65
+ throw new Error(`${response.status} ${await response.text()}`);
66
+ }
67
+ return response.blob();
68
+ },
29
69
  };
30
70
  }
31
71
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAwCnF,KAAK,UAAU,OAAO,CACpB,OAAe,EACf,IAAY,EACZ,IAAiB,EACjB,SAAuB;IAEvB,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,OAAO,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;IAC5D,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,MAAM,IAAI,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,OAAO,SAAc,CAAC;IACxB,CAAC;IACD,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAC;AACtC,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,oBAAoB,CAAC,IAA2B;IAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC;IACtC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC;QACrB,cAAc,EAAE,kBAAkB;QAClC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC;KAC/B,CAAC,CAAC;IACH,OAAO;QACL,YAAY,EAAE,GAAG,EAAE,CACjB,OAAO,CACL,IAAI,CAAC,OAAO,EACZ,cAAc,EACd,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EACtB,SAAS,CACV;QACH,UAAU,EAAE,CAAC,EAAU,EAAE,EAAE,CACzB,OAAO,CACL,IAAI,CAAC,OAAO,EACZ,gBAAgB,EAAE,EAAE,EACpB,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EACtB,SAAS,CACV;QACH,aAAa,EAAE,CAAC,IAAmB,EAAE,EAAE,CACrC,OAAO,CACL,IAAI,CAAC,OAAO,EACZ,cAAc,EACd,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAClE,SAAS,CACV;QACH,SAAS,EAAE,CAAC,EAAU,EAAE,IAAe,EAAE,cAAsB,EAAE,EAAE,CACjE,OAAO,CACL,IAAI,CAAC,OAAO,EACZ,gBAAgB,EAAE,OAAO,EACzB;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE;YAC5D,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,EACD,SAAS,CACV;QACH,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CACxB,OAAO,CACL,IAAI,CAAC,OAAO,EACZ,YAAY,KAAK,EAAE,EACnB,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EACtB,SAAS,CACV;KACJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}