@kilnci/cli 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.
Files changed (130) hide show
  1. package/bin/kiln.js +5 -0
  2. package/dist/base-command.d.ts +21 -0
  3. package/dist/base-command.d.ts.map +1 -0
  4. package/dist/base-command.js +30 -0
  5. package/dist/base-command.js.map +1 -0
  6. package/dist/client.d.ts +166 -0
  7. package/dist/client.d.ts.map +1 -0
  8. package/dist/client.js +321 -0
  9. package/dist/client.js.map +1 -0
  10. package/dist/commands/artifacts.d.ts +17 -0
  11. package/dist/commands/artifacts.d.ts.map +1 -0
  12. package/dist/commands/artifacts.js +96 -0
  13. package/dist/commands/artifacts.js.map +1 -0
  14. package/dist/commands/build.d.ts +15 -0
  15. package/dist/commands/build.d.ts.map +1 -0
  16. package/dist/commands/build.js +79 -0
  17. package/dist/commands/build.js.map +1 -0
  18. package/dist/commands/cancel.d.ts +10 -0
  19. package/dist/commands/cancel.d.ts.map +1 -0
  20. package/dist/commands/cancel.js +27 -0
  21. package/dist/commands/cancel.js.map +1 -0
  22. package/dist/commands/login.d.ts +18 -0
  23. package/dist/commands/login.d.ts.map +1 -0
  24. package/dist/commands/login.js +188 -0
  25. package/dist/commands/login.js.map +1 -0
  26. package/dist/commands/logout.d.ts +7 -0
  27. package/dist/commands/logout.d.ts.map +1 -0
  28. package/dist/commands/logout.js +17 -0
  29. package/dist/commands/logout.js.map +1 -0
  30. package/dist/commands/logs.d.ts +18 -0
  31. package/dist/commands/logs.d.ts.map +1 -0
  32. package/dist/commands/logs.js +139 -0
  33. package/dist/commands/logs.js.map +1 -0
  34. package/dist/commands/org/create.d.ts +13 -0
  35. package/dist/commands/org/create.d.ts.map +1 -0
  36. package/dist/commands/org/create.js +39 -0
  37. package/dist/commands/org/create.js.map +1 -0
  38. package/dist/commands/org/delete.d.ts +13 -0
  39. package/dist/commands/org/delete.d.ts.map +1 -0
  40. package/dist/commands/org/delete.js +44 -0
  41. package/dist/commands/org/delete.js.map +1 -0
  42. package/dist/commands/org/gitlab/remove.d.ts +13 -0
  43. package/dist/commands/org/gitlab/remove.d.ts.map +1 -0
  44. package/dist/commands/org/gitlab/remove.js +51 -0
  45. package/dist/commands/org/gitlab/remove.js.map +1 -0
  46. package/dist/commands/org/gitlab/setup.d.ts +17 -0
  47. package/dist/commands/org/gitlab/setup.d.ts.map +1 -0
  48. package/dist/commands/org/gitlab/setup.js +83 -0
  49. package/dist/commands/org/gitlab/setup.js.map +1 -0
  50. package/dist/commands/org/gitlab/show.d.ts +10 -0
  51. package/dist/commands/org/gitlab/show.d.ts.map +1 -0
  52. package/dist/commands/org/gitlab/show.js +54 -0
  53. package/dist/commands/org/gitlab/show.js.map +1 -0
  54. package/dist/commands/org/gitlab/sync.d.ts +10 -0
  55. package/dist/commands/org/gitlab/sync.d.ts.map +1 -0
  56. package/dist/commands/org/gitlab/sync.js +38 -0
  57. package/dist/commands/org/gitlab/sync.js.map +1 -0
  58. package/dist/commands/org/index.d.ts +11 -0
  59. package/dist/commands/org/index.d.ts.map +1 -0
  60. package/dist/commands/org/index.js +46 -0
  61. package/dist/commands/org/index.js.map +1 -0
  62. package/dist/commands/org/repos/disable.d.ts +11 -0
  63. package/dist/commands/org/repos/disable.d.ts.map +1 -0
  64. package/dist/commands/org/repos/disable.js +32 -0
  65. package/dist/commands/org/repos/disable.js.map +1 -0
  66. package/dist/commands/org/repos/enable.d.ts +11 -0
  67. package/dist/commands/org/repos/enable.d.ts.map +1 -0
  68. package/dist/commands/org/repos/enable.js +32 -0
  69. package/dist/commands/org/repos/enable.js.map +1 -0
  70. package/dist/commands/org/repos.d.ts +14 -0
  71. package/dist/commands/org/repos.d.ts.map +1 -0
  72. package/dist/commands/org/repos.js +54 -0
  73. package/dist/commands/org/repos.js.map +1 -0
  74. package/dist/commands/status.d.ts +17 -0
  75. package/dist/commands/status.d.ts.map +1 -0
  76. package/dist/commands/status.js +73 -0
  77. package/dist/commands/status.js.map +1 -0
  78. package/dist/commands/workers/create.d.ts +15 -0
  79. package/dist/commands/workers/create.d.ts.map +1 -0
  80. package/dist/commands/workers/create.js +74 -0
  81. package/dist/commands/workers/create.js.map +1 -0
  82. package/dist/commands/workers/delete.d.ts +13 -0
  83. package/dist/commands/workers/delete.d.ts.map +1 -0
  84. package/dist/commands/workers/delete.js +40 -0
  85. package/dist/commands/workers/delete.js.map +1 -0
  86. package/dist/commands/workers/index.d.ts +10 -0
  87. package/dist/commands/workers/index.d.ts.map +1 -0
  88. package/dist/commands/workers/index.js +42 -0
  89. package/dist/commands/workers/index.js.map +1 -0
  90. package/dist/commands/workers/logs.d.ts +11 -0
  91. package/dist/commands/workers/logs.d.ts.map +1 -0
  92. package/dist/commands/workers/logs.js +54 -0
  93. package/dist/commands/workers/logs.js.map +1 -0
  94. package/dist/commands/workers/revoke.d.ts +10 -0
  95. package/dist/commands/workers/revoke.d.ts.map +1 -0
  96. package/dist/commands/workers/revoke.js +27 -0
  97. package/dist/commands/workers/revoke.js.map +1 -0
  98. package/dist/commands/workers/start.d.ts +19 -0
  99. package/dist/commands/workers/start.d.ts.map +1 -0
  100. package/dist/commands/workers/start.js +329 -0
  101. package/dist/commands/workers/start.js.map +1 -0
  102. package/dist/commands/workers/status.d.ts +7 -0
  103. package/dist/commands/workers/status.d.ts.map +1 -0
  104. package/dist/commands/workers/status.js +75 -0
  105. package/dist/commands/workers/status.js.map +1 -0
  106. package/dist/commands/workers/stop.d.ts +10 -0
  107. package/dist/commands/workers/stop.d.ts.map +1 -0
  108. package/dist/commands/workers/stop.js +79 -0
  109. package/dist/commands/workers/stop.js.map +1 -0
  110. package/dist/commands/workers/token.d.ts +13 -0
  111. package/dist/commands/workers/token.d.ts.map +1 -0
  112. package/dist/commands/workers/token.js +38 -0
  113. package/dist/commands/workers/token.js.map +1 -0
  114. package/dist/config.d.ts +38 -0
  115. package/dist/config.d.ts.map +1 -0
  116. package/dist/config.js +68 -0
  117. package/dist/config.js.map +1 -0
  118. package/dist/formatters.d.ts +42 -0
  119. package/dist/formatters.d.ts.map +1 -0
  120. package/dist/formatters.js +194 -0
  121. package/dist/formatters.js.map +1 -0
  122. package/dist/index.d.ts +4 -0
  123. package/dist/index.d.ts.map +1 -0
  124. package/dist/index.js +5 -0
  125. package/dist/index.js.map +1 -0
  126. package/dist/lib/workers-helpers.d.ts +20 -0
  127. package/dist/lib/workers-helpers.d.ts.map +1 -0
  128. package/dist/lib/workers-helpers.js +51 -0
  129. package/dist/lib/workers-helpers.js.map +1 -0
  130. package/package.json +56 -0
package/bin/kiln.js ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { execute } from '@oclif/core';
4
+
5
+ await execute({ dir: import.meta.url });
@@ -0,0 +1,21 @@
1
+ import { Command } from '@oclif/core';
2
+ import { type Config } from './config.js';
3
+ import { ApiClient } from './client.js';
4
+ /**
5
+ * Base command class with common functionality for authenticated commands.
6
+ */
7
+ export declare abstract class BaseCommand extends Command {
8
+ protected appConfig: Config;
9
+ protected client: ApiClient;
10
+ /**
11
+ * Initialize the command with authentication.
12
+ * Call this at the start of run() for commands that require auth.
13
+ */
14
+ protected requireAuth(): void;
15
+ /**
16
+ * Handle API errors consistently.
17
+ * Use this in catch blocks to format error messages.
18
+ */
19
+ protected handleError(error: unknown, action: string): never;
20
+ }
21
+ //# sourceMappingURL=base-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-command.d.ts","sourceRoot":"","sources":["../src/base-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;GAEG;AACH,8BAAsB,WAAY,SAAQ,OAAO;IAC/C,SAAS,CAAC,SAAS,EAAG,MAAM,CAAC;IAC7B,SAAS,CAAC,MAAM,EAAG,SAAS,CAAC;IAE7B;;;OAGG;IACH,SAAS,CAAC,WAAW,IAAI,IAAI;IAU7B;;;OAGG;IACH,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK;CAI7D"}
@@ -0,0 +1,30 @@
1
+ import { Command } from '@oclif/core';
2
+ import { loadConfig } from './config.js';
3
+ import { ApiClient } from './client.js';
4
+ /**
5
+ * Base command class with common functionality for authenticated commands.
6
+ */
7
+ export class BaseCommand extends Command {
8
+ appConfig;
9
+ client;
10
+ /**
11
+ * Initialize the command with authentication.
12
+ * Call this at the start of run() for commands that require auth.
13
+ */
14
+ requireAuth() {
15
+ this.appConfig = loadConfig();
16
+ if (!this.appConfig.token) {
17
+ this.error('Authentication required. Set KILN_TOKEN or configure ~/.kiln.yml');
18
+ }
19
+ this.client = new ApiClient(this.appConfig);
20
+ }
21
+ /**
22
+ * Handle API errors consistently.
23
+ * Use this in catch blocks to format error messages.
24
+ */
25
+ handleError(error, action) {
26
+ const message = error instanceof Error ? error.message : 'Unknown error';
27
+ this.error(`Failed to ${action}: ${message}`);
28
+ }
29
+ }
30
+ //# sourceMappingURL=base-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-command.js","sourceRoot":"","sources":["../src/base-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,UAAU,EAAe,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;GAEG;AACH,MAAM,OAAgB,WAAY,SAAQ,OAAO;IACrC,SAAS,CAAU;IACnB,MAAM,CAAa;IAE7B;;;OAGG;IACO,WAAW;QACnB,IAAI,CAAC,SAAS,GAAG,UAAU,EAAE,CAAC;QAE9B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC;QACjF,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACO,WAAW,CAAC,KAAc,EAAE,MAAc;QAClD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QACzE,IAAI,CAAC,KAAK,CAAC,aAAa,MAAM,KAAK,OAAO,EAAE,CAAC,CAAC;IAChD,CAAC;CACF"}
@@ -0,0 +1,166 @@
1
+ import type { Build, Worker, WorkerCreate, WorkerCreated, Organization, OrganizationCreate, OrganizationUpdate, GitLabIntegration, GitLabIntegrationConfig, Repository, RepositoryUpdate } from '@kilnci/shared';
2
+ import type { Config } from './config.js';
3
+ interface CreateBuildInput {
4
+ repositoryId: string;
5
+ branch?: string;
6
+ }
7
+ interface PaginatedResponse<T> {
8
+ items: T[];
9
+ total: number;
10
+ page: number;
11
+ pageSize: number;
12
+ }
13
+ /**
14
+ * HTTP client for the Kiln API
15
+ */
16
+ export declare class ApiClient {
17
+ private baseUrl;
18
+ private token?;
19
+ constructor(config: Config);
20
+ /**
21
+ * Create a new build
22
+ */
23
+ createBuild(request: CreateBuildInput): Promise<Build>;
24
+ /**
25
+ * Get a build by ID
26
+ */
27
+ getBuild(id: string): Promise<Build>;
28
+ /**
29
+ * List builds with optional filters
30
+ */
31
+ listBuilds(params?: {
32
+ page?: number;
33
+ pageSize?: number;
34
+ repo?: string;
35
+ branch?: string;
36
+ status?: string;
37
+ }): Promise<PaginatedResponse<Build>>;
38
+ /**
39
+ * Cancel a build
40
+ */
41
+ cancelBuild(id: string): Promise<void>;
42
+ /**
43
+ * List all workers
44
+ */
45
+ listWorkers(): Promise<Worker[]>;
46
+ /**
47
+ * Create a new worker (admin only)
48
+ * Returns the worker with a one-time registration token
49
+ */
50
+ createWorker(data: WorkerCreate): Promise<WorkerCreated>;
51
+ /**
52
+ * Delete a worker by ID
53
+ */
54
+ deleteWorker(id: string): Promise<void>;
55
+ /**
56
+ * Revoke all sessions for a worker
57
+ */
58
+ revokeWorkerSessions(id: string): Promise<void>;
59
+ /**
60
+ * Regenerate registration token for a pending worker
61
+ */
62
+ regenerateWorkerToken(id: string, tokenTtlMinutes?: number): Promise<{
63
+ workerToken: string;
64
+ tokenExpiresAt: string;
65
+ }>;
66
+ /**
67
+ * List organizations
68
+ */
69
+ listOrganizations(params?: {
70
+ page?: number;
71
+ pageSize?: number;
72
+ }): Promise<PaginatedResponse<Organization>>;
73
+ /**
74
+ * Get an organization by slug
75
+ */
76
+ getOrganization(slug: string): Promise<Organization>;
77
+ /**
78
+ * Create an organization
79
+ */
80
+ createOrganization(data: OrganizationCreate): Promise<Organization>;
81
+ /**
82
+ * Update an organization
83
+ */
84
+ updateOrganization(slug: string, data: OrganizationUpdate): Promise<Organization>;
85
+ /**
86
+ * Delete an organization
87
+ */
88
+ deleteOrganization(slug: string): Promise<void>;
89
+ /**
90
+ * Get GitLab integration config
91
+ */
92
+ getGitLabIntegration(orgSlug: string): Promise<GitLabIntegration>;
93
+ /**
94
+ * Configure GitLab integration
95
+ */
96
+ configureGitLabIntegration(orgSlug: string, config: GitLabIntegrationConfig): Promise<GitLabIntegration>;
97
+ /**
98
+ * Delete GitLab integration
99
+ */
100
+ deleteGitLabIntegration(orgSlug: string): Promise<void>;
101
+ /**
102
+ * Sync repositories from GitLab
103
+ */
104
+ syncGitLabRepositories(orgSlug: string): Promise<{
105
+ synced: number;
106
+ removed: number;
107
+ repositories: Repository[];
108
+ }>;
109
+ /**
110
+ * List repositories for an organization
111
+ */
112
+ listRepositories(orgSlug: string, params?: {
113
+ page?: number;
114
+ pageSize?: number;
115
+ }): Promise<PaginatedResponse<Repository>>;
116
+ /**
117
+ * Update repository configuration
118
+ */
119
+ updateRepository(orgSlug: string, repoId: string, data: RepositoryUpdate): Promise<Repository>;
120
+ /**
121
+ * Get the download URL for build logs
122
+ */
123
+ getLogsDownloadUrl(buildId: string): Promise<string>;
124
+ /**
125
+ * Get the download URL for workspace artifact
126
+ */
127
+ getWorkspaceDownloadUrl(buildId: string): Promise<string>;
128
+ /**
129
+ * Download a file from a URL and return its content as a buffer
130
+ */
131
+ downloadFile(url: string): Promise<Buffer>;
132
+ private get;
133
+ private post;
134
+ private put;
135
+ private delete;
136
+ private getHeaders;
137
+ private handleResponse;
138
+ }
139
+ /**
140
+ * WebSocket client for real-time log streaming
141
+ */
142
+ export declare class LogStreamClient {
143
+ private baseUrl;
144
+ private token?;
145
+ private ws?;
146
+ constructor(config: Config);
147
+ /**
148
+ * Connect to a build's log stream
149
+ */
150
+ connect(buildId: string, handlers: {
151
+ onLog?: (line: {
152
+ timestamp: Date;
153
+ stream: string;
154
+ line: string;
155
+ }) => void;
156
+ onStatus?: (status: string) => void;
157
+ onError?: (error: string) => void;
158
+ onClose?: () => void;
159
+ }): void;
160
+ /**
161
+ * Close the WebSocket connection
162
+ */
163
+ close(): void;
164
+ }
165
+ export {};
166
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,KAAK,EACL,MAAM,EACN,YAAY,EACZ,aAAa,EAEb,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,UAAU,EACV,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C,UAAU,gBAAgB;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,iBAAiB,CAAC,CAAC;IAC3B,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAOD;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAC,CAAS;gBAEX,MAAM,EAAE,MAAM;IAK1B;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC;IAI5D;;OAEG;IACG,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAI1C;;OAEG;IACG,UAAU,CAAC,MAAM,CAAC,EAAE;QACxB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAarC;;OAEG;IACG,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAItC;;;OAGG;IACG,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAI9D;;OAEG;IACG,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C;;OAEG;IACG,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD;;OAEG;IACG,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QACzE,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IAQF;;OAEG;IACG,iBAAiB,CAAC,MAAM,CAAC,EAAE;QAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAU5C;;OAEG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAI1D;;OAEG;IACG,kBAAkB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;IAIzE;;OAEG;IACG,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;IAIvF;;OAEG;IACG,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQrD;;OAEG;IACG,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIvE;;OAEG;IACG,0BAA0B,CAC9B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,iBAAiB,CAAC;IAI7B;;OAEG;IACG,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D;;OAEG;IACG,sBAAsB,CAC1B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;IAO3E;;OAEG;IACG,gBAAgB,CACpB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5C,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAYzC;;OAEG;IACG,gBAAgB,CACpB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,UAAU,CAAC;IAItB;;OAEG;IACG,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO1D;;OAEG;IACG,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO/D;;OAEG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YASlC,GAAG;YAQH,IAAI;YAYJ,GAAG;YAYH,MAAM;IAWpB,OAAO,CAAC,UAAU;YAQJ,cAAc;CAO7B;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,EAAE,CAAC,CAAY;gBAEX,MAAM,EAAE,MAAM;IAM1B;;OAEG;IACH,OAAO,CACL,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE;QACR,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE;YAAE,SAAS,EAAE,IAAI,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,KAAK,IAAI,CAAC;QAC1E,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;QACpC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;QAClC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;KACtB,GACA,IAAI;IAyDP;;OAEG;IACH,KAAK,IAAI,IAAI;CAMd"}
package/dist/client.js ADDED
@@ -0,0 +1,321 @@
1
+ import WebSocket from 'ws';
2
+ /**
3
+ * HTTP client for the Kiln API
4
+ */
5
+ export class ApiClient {
6
+ baseUrl;
7
+ token;
8
+ constructor(config) {
9
+ this.baseUrl = config.url.replace(/\/$/, '');
10
+ this.token = config.token;
11
+ }
12
+ /**
13
+ * Create a new build
14
+ */
15
+ async createBuild(request) {
16
+ return this.post('/api/builds', request);
17
+ }
18
+ /**
19
+ * Get a build by ID
20
+ */
21
+ async getBuild(id) {
22
+ return this.get(`/api/builds/${id}`);
23
+ }
24
+ /**
25
+ * List builds with optional filters
26
+ */
27
+ async listBuilds(params) {
28
+ const query = new URLSearchParams();
29
+ if (params?.page)
30
+ query.set('page', params.page.toString());
31
+ if (params?.pageSize)
32
+ query.set('pageSize', params.pageSize.toString());
33
+ if (params?.repo)
34
+ query.set('repo', params.repo);
35
+ if (params?.branch)
36
+ query.set('branch', params.branch);
37
+ if (params?.status)
38
+ query.set('status', params.status);
39
+ const queryString = query.toString();
40
+ const url = queryString ? `/api/builds?${queryString}` : '/api/builds';
41
+ return this.get(url);
42
+ }
43
+ /**
44
+ * Cancel a build
45
+ */
46
+ async cancelBuild(id) {
47
+ await this.post(`/api/builds/${id}/cancel`, {});
48
+ }
49
+ /**
50
+ * List all workers
51
+ */
52
+ async listWorkers() {
53
+ return this.get('/api/workers');
54
+ }
55
+ /**
56
+ * Create a new worker (admin only)
57
+ * Returns the worker with a one-time registration token
58
+ */
59
+ async createWorker(data) {
60
+ return this.post('/api/workers', data);
61
+ }
62
+ /**
63
+ * Delete a worker by ID
64
+ */
65
+ async deleteWorker(id) {
66
+ await this.delete(`/api/workers/${id}`);
67
+ }
68
+ /**
69
+ * Revoke all sessions for a worker
70
+ */
71
+ async revokeWorkerSessions(id) {
72
+ await this.post(`/api/workers/${id}/revoke`, {});
73
+ }
74
+ /**
75
+ * Regenerate registration token for a pending worker
76
+ */
77
+ async regenerateWorkerToken(id, tokenTtlMinutes) {
78
+ return this.post(`/api/workers/${id}/token`, { tokenTtlMinutes });
79
+ }
80
+ // ============================================
81
+ // Organization methods
82
+ // ============================================
83
+ /**
84
+ * List organizations
85
+ */
86
+ async listOrganizations(params) {
87
+ const query = new URLSearchParams();
88
+ if (params?.page)
89
+ query.set('page', params.page.toString());
90
+ if (params?.pageSize)
91
+ query.set('pageSize', params.pageSize.toString());
92
+ const queryString = query.toString();
93
+ const url = queryString ? `/api/organizations?${queryString}` : '/api/organizations';
94
+ return this.get(url);
95
+ }
96
+ /**
97
+ * Get an organization by slug
98
+ */
99
+ async getOrganization(slug) {
100
+ return this.get(`/api/organizations/${slug}`);
101
+ }
102
+ /**
103
+ * Create an organization
104
+ */
105
+ async createOrganization(data) {
106
+ return this.post('/api/organizations', data);
107
+ }
108
+ /**
109
+ * Update an organization
110
+ */
111
+ async updateOrganization(slug, data) {
112
+ return this.put(`/api/organizations/${slug}`, data);
113
+ }
114
+ /**
115
+ * Delete an organization
116
+ */
117
+ async deleteOrganization(slug) {
118
+ await this.delete(`/api/organizations/${slug}`);
119
+ }
120
+ // ============================================
121
+ // GitLab integration methods
122
+ // ============================================
123
+ /**
124
+ * Get GitLab integration config
125
+ */
126
+ async getGitLabIntegration(orgSlug) {
127
+ return this.get(`/api/organizations/${orgSlug}/gitlab`);
128
+ }
129
+ /**
130
+ * Configure GitLab integration
131
+ */
132
+ async configureGitLabIntegration(orgSlug, config) {
133
+ return this.put(`/api/organizations/${orgSlug}/gitlab`, config);
134
+ }
135
+ /**
136
+ * Delete GitLab integration
137
+ */
138
+ async deleteGitLabIntegration(orgSlug) {
139
+ await this.delete(`/api/organizations/${orgSlug}/gitlab`);
140
+ }
141
+ /**
142
+ * Sync repositories from GitLab
143
+ */
144
+ async syncGitLabRepositories(orgSlug) {
145
+ return this.post(`/api/organizations/${orgSlug}/gitlab/sync`, {});
146
+ }
147
+ /**
148
+ * List repositories for an organization
149
+ */
150
+ async listRepositories(orgSlug, params) {
151
+ const query = new URLSearchParams();
152
+ if (params?.page)
153
+ query.set('page', params.page.toString());
154
+ if (params?.pageSize)
155
+ query.set('pageSize', params.pageSize.toString());
156
+ const queryString = query.toString();
157
+ const url = queryString
158
+ ? `/api/organizations/${orgSlug}/repos?${queryString}`
159
+ : `/api/organizations/${orgSlug}/repos`;
160
+ return this.get(url);
161
+ }
162
+ /**
163
+ * Update repository configuration
164
+ */
165
+ async updateRepository(orgSlug, repoId, data) {
166
+ return this.put(`/api/organizations/${orgSlug}/repos/${repoId}`, data);
167
+ }
168
+ /**
169
+ * Get the download URL for build logs
170
+ */
171
+ async getLogsDownloadUrl(buildId) {
172
+ const response = await this.get(`/api/builds/${buildId}/logs/download`);
173
+ return response.downloadUrl;
174
+ }
175
+ /**
176
+ * Get the download URL for workspace artifact
177
+ */
178
+ async getWorkspaceDownloadUrl(buildId) {
179
+ const response = await this.get(`/api/builds/${buildId}/artifacts/workspace`);
180
+ return response.downloadUrl;
181
+ }
182
+ /**
183
+ * Download a file from a URL and return its content as a buffer
184
+ */
185
+ async downloadFile(url) {
186
+ const response = await fetch(url);
187
+ if (!response.ok) {
188
+ throw new Error(`Failed to download: HTTP ${response.status}`);
189
+ }
190
+ const arrayBuffer = await response.arrayBuffer();
191
+ return Buffer.from(arrayBuffer);
192
+ }
193
+ async get(path) {
194
+ const response = await fetch(`${this.baseUrl}${path}`, {
195
+ method: 'GET',
196
+ headers: this.getHeaders(),
197
+ });
198
+ return this.handleResponse(response);
199
+ }
200
+ async post(path, body) {
201
+ const response = await fetch(`${this.baseUrl}${path}`, {
202
+ method: 'POST',
203
+ headers: {
204
+ ...this.getHeaders(),
205
+ 'Content-Type': 'application/json',
206
+ },
207
+ body: JSON.stringify(body),
208
+ });
209
+ return this.handleResponse(response);
210
+ }
211
+ async put(path, body) {
212
+ const response = await fetch(`${this.baseUrl}${path}`, {
213
+ method: 'PUT',
214
+ headers: {
215
+ ...this.getHeaders(),
216
+ 'Content-Type': 'application/json',
217
+ },
218
+ body: JSON.stringify(body),
219
+ });
220
+ return this.handleResponse(response);
221
+ }
222
+ async delete(path) {
223
+ const response = await fetch(`${this.baseUrl}${path}`, {
224
+ method: 'DELETE',
225
+ headers: this.getHeaders(),
226
+ });
227
+ if (!response.ok && response.status !== 204) {
228
+ const error = (await response.json());
229
+ throw new Error(error.message || `HTTP ${response.status}`);
230
+ }
231
+ }
232
+ getHeaders() {
233
+ const headers = {};
234
+ if (this.token) {
235
+ headers['Authorization'] = `Bearer ${this.token}`;
236
+ }
237
+ return headers;
238
+ }
239
+ async handleResponse(response) {
240
+ if (!response.ok) {
241
+ const error = (await response.json());
242
+ throw new Error(error.message || `HTTP ${response.status}`);
243
+ }
244
+ return response.json();
245
+ }
246
+ }
247
+ /**
248
+ * WebSocket client for real-time log streaming
249
+ */
250
+ export class LogStreamClient {
251
+ baseUrl;
252
+ token;
253
+ ws;
254
+ constructor(config) {
255
+ // Convert http(s) to ws(s)
256
+ this.baseUrl = config.url.replace(/^http/, 'ws').replace(/\/$/, '');
257
+ this.token = config.token;
258
+ }
259
+ /**
260
+ * Connect to a build's log stream
261
+ */
262
+ connect(buildId, handlers) {
263
+ const url = `${this.baseUrl}/api/builds/${buildId}/logs?token=${this.token}`;
264
+ this.ws = new WebSocket(url);
265
+ this.ws.on('open', () => {
266
+ // Connection established
267
+ });
268
+ this.ws.on('message', (data) => {
269
+ try {
270
+ const message = JSON.parse(data.toString());
271
+ switch (message.type) {
272
+ case 'log':
273
+ if (handlers.onLog) {
274
+ const payload = message.payload;
275
+ handlers.onLog({
276
+ timestamp: new Date(payload.timestamp),
277
+ stream: payload.stream,
278
+ line: payload.line,
279
+ });
280
+ }
281
+ break;
282
+ case 'status':
283
+ if (handlers.onStatus) {
284
+ const payload = message.payload;
285
+ handlers.onStatus(payload.status);
286
+ }
287
+ break;
288
+ case 'error':
289
+ if (handlers.onError) {
290
+ const payload = message.payload;
291
+ handlers.onError(payload.error);
292
+ }
293
+ break;
294
+ }
295
+ }
296
+ catch {
297
+ // Ignore invalid messages
298
+ }
299
+ });
300
+ this.ws.on('close', () => {
301
+ if (handlers.onClose) {
302
+ handlers.onClose();
303
+ }
304
+ });
305
+ this.ws.on('error', (error) => {
306
+ if (handlers.onError) {
307
+ handlers.onError(error.message);
308
+ }
309
+ });
310
+ }
311
+ /**
312
+ * Close the WebSocket connection
313
+ */
314
+ close() {
315
+ if (this.ws) {
316
+ this.ws.close();
317
+ this.ws = undefined;
318
+ }
319
+ }
320
+ }
321
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { BaseCommand } from '../base-command.js';
2
+ export default class Artifacts extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static args: {
6
+ buildId: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
7
+ };
8
+ static flags: {
9
+ download: import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
+ output: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
+ };
12
+ run(): Promise<void>;
13
+ private listArtifacts;
14
+ private downloadWorkspace;
15
+ private formatSize;
16
+ }
17
+ //# sourceMappingURL=artifacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../src/commands/artifacts.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,WAAW;IAChD,OAAgB,WAAW,SAAsC;IAEjE,OAAgB,QAAQ,WAItB;IAEF,OAAgB,IAAI;;MAKlB;IAEF,OAAgB,KAAK;;;MAUnB;IAEW,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBjC,OAAO,CAAC,aAAa;YA0BP,iBAAiB;IAuB/B,OAAO,CAAC,UAAU;CAKnB"}