@inquir/compute-cli 0.3.0 → 0.4.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 +223 -114
- package/dist/commands/admin-tenants.d.ts +11 -0
- package/dist/commands/admin-tenants.d.ts.map +1 -0
- package/dist/commands/admin-tenants.js +318 -0
- package/dist/commands/admin-tenants.js.map +1 -0
- package/dist/commands/admin.d.ts +2 -0
- package/dist/commands/admin.d.ts.map +1 -0
- package/dist/commands/admin.js +445 -0
- package/dist/commands/admin.js.map +1 -0
- package/dist/commands/apps-describe.d.ts +9 -0
- package/dist/commands/apps-describe.d.ts.map +1 -0
- package/dist/commands/apps-describe.js +118 -0
- package/dist/commands/apps-describe.js.map +1 -0
- package/dist/commands/apps-observability.d.ts +9 -0
- package/dist/commands/apps-observability.d.ts.map +1 -0
- package/dist/commands/apps-observability.js +281 -0
- package/dist/commands/apps-observability.js.map +1 -0
- package/dist/commands/apps-promote.d.ts +31 -0
- package/dist/commands/apps-promote.d.ts.map +1 -0
- package/dist/commands/apps-promote.js +115 -0
- package/dist/commands/apps-promote.js.map +1 -0
- package/dist/commands/apps-resources.d.ts +6 -0
- package/dist/commands/apps-resources.d.ts.map +1 -0
- package/dist/commands/apps-resources.js +107 -0
- package/dist/commands/apps-resources.js.map +1 -0
- package/dist/commands/apps.d.ts +25 -2
- package/dist/commands/apps.d.ts.map +1 -1
- package/dist/commands/apps.js +434 -66
- package/dist/commands/apps.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +7 -3
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/delete.d.ts.map +1 -1
- package/dist/commands/delete.js +10 -2
- package/dist/commands/delete.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +78 -33
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.d.ts.map +1 -1
- package/dist/commands/logout.js +37 -5
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/mcp.d.ts +13 -0
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +184 -77
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/projects.d.ts.map +1 -1
- package/dist/commands/projects.js +107 -11
- package/dist/commands/projects.js.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/finite-source-command-client.d.ts +3 -0
- package/dist/lib/finite-source-command-client.d.ts.map +1 -0
- package/dist/lib/finite-source-command-client.js +3 -0
- package/dist/lib/finite-source-command-client.js.map +1 -0
- package/dist/lib/mcp-io.d.ts +23 -0
- package/dist/lib/mcp-io.d.ts.map +1 -0
- package/dist/lib/mcp-io.js +185 -0
- package/dist/lib/mcp-io.js.map +1 -0
- package/dist/lib/mcp-source-commands.d.ts +17 -0
- package/dist/lib/mcp-source-commands.d.ts.map +1 -0
- package/dist/lib/mcp-source-commands.js +345 -0
- package/dist/lib/mcp-source-commands.js.map +1 -0
- package/dist/utils/api.d.ts +19 -10
- package/dist/utils/api.d.ts.map +1 -1
- package/dist/utils/api.js +22 -4
- package/dist/utils/api.js.map +1 -1
- package/dist/utils/apps-presentation.d.ts +1 -1
- package/dist/utils/apps-presentation.d.ts.map +1 -1
- package/dist/utils/apps-presentation.js +10 -0
- package/dist/utils/apps-presentation.js.map +1 -1
- package/dist/utils/auth.d.ts +21 -1
- package/dist/utils/auth.d.ts.map +1 -1
- package/dist/utils/auth.js +119 -22
- package/dist/utils/auth.js.map +1 -1
- package/dist/utils/browser.d.ts +12 -0
- package/dist/utils/browser.d.ts.map +1 -1
- package/dist/utils/browser.js +37 -16
- package/dist/utils/browser.js.map +1 -1
- package/dist/utils/package-metadata.js +1 -1
- package/dist/utils/project-context.d.ts.map +1 -1
- package/dist/utils/project-context.js +7 -5
- package/dist/utils/project-context.js.map +1 -1
- package/dist/utils/project-lookup.d.ts +10 -0
- package/dist/utils/project-lookup.d.ts.map +1 -0
- package/dist/utils/project-lookup.js +52 -0
- package/dist/utils/project-lookup.js.map +1 -0
- package/package.json +10 -10
- package/skill/SKILL.md +9 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-source-commands.d.ts","sourceRoot":"","sources":["../../src/lib/mcp-source-commands.ts"],"names":[],"mappings":"AAKA,OAAO,EAA4F,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AAI3I,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AACjC,KAAK,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;AA2I3D,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACjG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/F;AACD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE;IAAE,SAAS,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,iBAAiB,CAkHhJ"}
|
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import { constants } from 'node:fs';
|
|
3
|
+
import os from 'node:os';
|
|
4
|
+
import path from 'node:path';
|
|
5
|
+
import { createHash, randomUUID } from 'node:crypto';
|
|
6
|
+
import { authHeaders, createClient, getMe, listRemoteFunctions, resolveRemoteFunction, toApiError } from '../sdk.js';
|
|
7
|
+
import { prepareSourceCommand, restoreSourceCommand, sourcePublicationState } from './finite-source-command-client.js';
|
|
8
|
+
import { abortable, boundedMcpFetch } from './mcp-io.js';
|
|
9
|
+
const UUID = /^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$/;
|
|
10
|
+
const DIGEST = /^[a-f0-9]{64}$/;
|
|
11
|
+
const hash = (value) => createHash('sha256').update(JSON.stringify(value)).digest('hex');
|
|
12
|
+
const equal = (left, right) => JSON.stringify(left) === JSON.stringify(right);
|
|
13
|
+
function object(value) {
|
|
14
|
+
if (!value || typeof value !== 'object' || Array.isArray(value))
|
|
15
|
+
throw new Error('Expected source command object');
|
|
16
|
+
return value;
|
|
17
|
+
}
|
|
18
|
+
function exact(args, keys) {
|
|
19
|
+
if (Object.keys(args).some(key => !keys.includes(key)))
|
|
20
|
+
throw new Error('Unexpected source command argument');
|
|
21
|
+
}
|
|
22
|
+
function identifier(value) {
|
|
23
|
+
if (typeof value !== 'string' || !value.trim() || value.length > 256
|
|
24
|
+
|| Array.from(value).some(character => character.charCodeAt(0) < 32 || character.charCodeAt(0) === 127))
|
|
25
|
+
throw new Error('Invalid source command identifier');
|
|
26
|
+
return value;
|
|
27
|
+
}
|
|
28
|
+
function uuid(value) {
|
|
29
|
+
if (typeof value !== 'string' || !UUID.test(value))
|
|
30
|
+
throw new Error('A retained lowercase UUID requestId is required');
|
|
31
|
+
return value;
|
|
32
|
+
}
|
|
33
|
+
function waitMs(value) {
|
|
34
|
+
if (value === undefined)
|
|
35
|
+
return 0;
|
|
36
|
+
if (typeof value !== 'number' || !Number.isSafeInteger(value) || value < 0 || value > 900_000)
|
|
37
|
+
throw new Error('waitMs must be an integer from 0 to 900000');
|
|
38
|
+
return value;
|
|
39
|
+
}
|
|
40
|
+
async function syncDirectory(directory) {
|
|
41
|
+
if (process.platform === 'win32')
|
|
42
|
+
return;
|
|
43
|
+
const handle = await fs.open(directory, 'r');
|
|
44
|
+
try {
|
|
45
|
+
await handle.sync();
|
|
46
|
+
}
|
|
47
|
+
finally {
|
|
48
|
+
await handle.close();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
async function privateDirectory(directory) {
|
|
52
|
+
await fs.mkdir(directory, { mode: 0o700 }).catch((error) => { if (error.code !== 'EEXIST')
|
|
53
|
+
throw error; });
|
|
54
|
+
const stat = await fs.lstat(directory);
|
|
55
|
+
if (!stat.isDirectory() || stat.isSymbolicLink() || process.platform !== 'win32' && (stat.mode & 0o077))
|
|
56
|
+
throw new Error('Source operation storage must be a private real directory');
|
|
57
|
+
}
|
|
58
|
+
/** Records contain command/env secrets, but never credentials. On Windows this
|
|
59
|
+
* uses the same private user-profile ACL boundary as the CLI credential store;
|
|
60
|
+
* POSIX additionally enforces 0700 directories and 0600 records.
|
|
61
|
+
*/
|
|
62
|
+
class OperationStore {
|
|
63
|
+
root;
|
|
64
|
+
constructor(root) {
|
|
65
|
+
this.root = root;
|
|
66
|
+
if (!path.isAbsolute(root))
|
|
67
|
+
throw new Error('Source operation storage requires an absolute directory');
|
|
68
|
+
}
|
|
69
|
+
async init() {
|
|
70
|
+
// Do not follow a redirected .inquir/journal parent. The default parent is
|
|
71
|
+
// the existing user-profile credential directory, not a project checkout.
|
|
72
|
+
await privateDirectory(path.dirname(this.root));
|
|
73
|
+
await privateDirectory(this.root);
|
|
74
|
+
await privateDirectory(path.join(this.root, 'operations'));
|
|
75
|
+
await privateDirectory(path.join(this.root, 'requests'));
|
|
76
|
+
await syncDirectory(path.dirname(this.root));
|
|
77
|
+
await syncDirectory(this.root);
|
|
78
|
+
}
|
|
79
|
+
async read(file) {
|
|
80
|
+
await this.init();
|
|
81
|
+
const handle = await fs.open(file, constants.O_RDONLY | (constants.O_NOFOLLOW ?? 0)).catch((error) => {
|
|
82
|
+
if (error.code === 'ENOENT')
|
|
83
|
+
return null;
|
|
84
|
+
throw error;
|
|
85
|
+
});
|
|
86
|
+
if (!handle)
|
|
87
|
+
return null;
|
|
88
|
+
try {
|
|
89
|
+
let stat = await handle.stat();
|
|
90
|
+
const link = await fs.lstat(file);
|
|
91
|
+
if (stat.isFile() && stat.nlink > 1) {
|
|
92
|
+
// Recover a crash between exclusive hardlink publication and temporary
|
|
93
|
+
// unlink. Only exact private temporary aliases of this inode qualify.
|
|
94
|
+
const prefix = `.${path.basename(file)}.`;
|
|
95
|
+
for await (const entry of await fs.opendir(path.dirname(file))) {
|
|
96
|
+
if (!entry.name.startsWith(prefix) || !entry.name.endsWith('.tmp') || !UUID.test(entry.name.slice(prefix.length, -4)))
|
|
97
|
+
continue;
|
|
98
|
+
const temporary = path.join(path.dirname(file), entry.name), temporaryStat = await fs.lstat(temporary).catch((error) => {
|
|
99
|
+
if (error.code === 'ENOENT')
|
|
100
|
+
return null;
|
|
101
|
+
throw error;
|
|
102
|
+
});
|
|
103
|
+
if (temporaryStat?.isFile() && !temporaryStat.isSymbolicLink() && temporaryStat.dev === stat.dev && temporaryStat.ino === stat.ino) {
|
|
104
|
+
await fs.unlink(temporary).catch((error) => { if (error.code !== 'ENOENT')
|
|
105
|
+
throw error; });
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
await syncDirectory(path.dirname(file));
|
|
109
|
+
stat = await handle.stat();
|
|
110
|
+
}
|
|
111
|
+
if (!stat.isFile() || link.isSymbolicLink() || stat.nlink !== 1 || stat.size > 32 * 1024
|
|
112
|
+
|| process.platform !== 'win32' && (stat.mode & 0o077))
|
|
113
|
+
throw new Error('Invalid private source operation record');
|
|
114
|
+
return JSON.parse(await handle.readFile('utf8'));
|
|
115
|
+
}
|
|
116
|
+
finally {
|
|
117
|
+
await handle.close();
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
async publish(file, value) {
|
|
121
|
+
await this.init();
|
|
122
|
+
const temporary = path.join(path.dirname(file), `.${path.basename(file)}.${randomUUID()}.tmp`);
|
|
123
|
+
const handle = await fs.open(temporary, 'wx', 0o600);
|
|
124
|
+
try {
|
|
125
|
+
try {
|
|
126
|
+
await handle.writeFile(JSON.stringify(value));
|
|
127
|
+
await handle.sync();
|
|
128
|
+
}
|
|
129
|
+
finally {
|
|
130
|
+
await handle.close();
|
|
131
|
+
}
|
|
132
|
+
try {
|
|
133
|
+
await fs.link(temporary, file);
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
if (error.code !== 'EEXIST')
|
|
137
|
+
throw error;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
finally {
|
|
141
|
+
await fs.unlink(temporary).catch((error) => { if (error.code !== 'ENOENT')
|
|
142
|
+
throw error; });
|
|
143
|
+
}
|
|
144
|
+
await syncDirectory(path.dirname(file));
|
|
145
|
+
const retained = await this.read(file);
|
|
146
|
+
if (retained === null)
|
|
147
|
+
throw new Error('Source command retention is not observable');
|
|
148
|
+
return retained;
|
|
149
|
+
}
|
|
150
|
+
async request(namespace, id) {
|
|
151
|
+
const retained = await this.read(path.join(this.root, 'requests', `${hash([namespace, typeof id, id])}.json`));
|
|
152
|
+
if (retained === null)
|
|
153
|
+
return null;
|
|
154
|
+
const value = object(retained);
|
|
155
|
+
if (value.version !== 1 || Object.keys(value).sort().join(',') !== 'requestId,version')
|
|
156
|
+
throw new Error('Invalid retained MCP request mapping');
|
|
157
|
+
return uuid(value.requestId);
|
|
158
|
+
}
|
|
159
|
+
async bindRequest(namespace, id, requestId) {
|
|
160
|
+
const retained = object(await this.publish(path.join(this.root, 'requests', `${hash([namespace, typeof id, id])}.json`), { version: 1, requestId }));
|
|
161
|
+
if (retained.version !== 1 || Object.keys(retained).sort().join(',') !== 'requestId,version')
|
|
162
|
+
throw new Error('Invalid retained MCP request mapping');
|
|
163
|
+
return uuid(retained.requestId);
|
|
164
|
+
}
|
|
165
|
+
async retain(value) {
|
|
166
|
+
const retained = await this.publish(path.join(this.root, 'operations', `${uuid(value.record.requestId)}.json`), value);
|
|
167
|
+
if (!equal(retained, value))
|
|
168
|
+
throw new Error('Source request ID already belongs to a different command or scope');
|
|
169
|
+
}
|
|
170
|
+
async exists(requestId) {
|
|
171
|
+
return await this.read(path.join(this.root, 'operations', `${uuid(requestId)}.json`)) !== null;
|
|
172
|
+
}
|
|
173
|
+
async load(requestId) {
|
|
174
|
+
const value = object(await this.read(path.join(this.root, 'operations', `${uuid(requestId)}.json`)));
|
|
175
|
+
if (value.version !== 1 || Object.keys(value).sort().join(',') !== 'apiUrl,credentialHash,functionIdentifier,namespace,record,selector,version'
|
|
176
|
+
|| typeof value.apiUrl !== 'string' || typeof value.credentialHash !== 'string' || !DIGEST.test(value.credentialHash)
|
|
177
|
+
|| typeof value.namespace !== 'string' || !(value.selector === null || typeof value.selector === 'string'))
|
|
178
|
+
throw new Error('Invalid retained source operation');
|
|
179
|
+
identifier(value.functionIdentifier);
|
|
180
|
+
const retained = value;
|
|
181
|
+
if (retained.record.requestId !== requestId)
|
|
182
|
+
throw new Error('Retained source operation ID mismatch');
|
|
183
|
+
const accepted = await this.read(path.join(this.root, 'operations', `${requestId}.accepted.json`));
|
|
184
|
+
if (accepted !== null) {
|
|
185
|
+
const digest = object(accepted);
|
|
186
|
+
if (Object.keys(digest).sort().join(',') !== 'manifestDigest,requestId' || digest.requestId !== requestId
|
|
187
|
+
|| typeof digest.manifestDigest !== 'string' || !DIGEST.test(digest.manifestDigest))
|
|
188
|
+
throw new Error('Invalid retained source acceptance');
|
|
189
|
+
retained.record.acceptedManifestDigest = digest.manifestDigest;
|
|
190
|
+
}
|
|
191
|
+
return retained;
|
|
192
|
+
}
|
|
193
|
+
async acceptance(record) {
|
|
194
|
+
if (!record.acceptedManifestDigest)
|
|
195
|
+
return;
|
|
196
|
+
const value = { requestId: record.requestId, manifestDigest: record.acceptedManifestDigest };
|
|
197
|
+
if (!equal(await this.publish(path.join(this.root, 'operations', `${uuid(record.requestId)}.accepted.json`), value), value)) {
|
|
198
|
+
throw new Error('Accepted source manifest changed');
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
/** The factory retains no mutable config pointers. Each action freezes one
|
|
203
|
+
* credential/client; reload refuses a changed API, credential or workspace.
|
|
204
|
+
*/
|
|
205
|
+
export function createMcpSourceCommands(options) {
|
|
206
|
+
const namespace = options.namespace === undefined ? '' : identifier(options.namespace);
|
|
207
|
+
const store = new OperationStore(options.root ?? path.join(os.homedir(), '.inquir', 'mcp-source-commands'));
|
|
208
|
+
const locks = new Map();
|
|
209
|
+
async function serialized(key, work) {
|
|
210
|
+
const before = locks.get(key) ?? Promise.resolve();
|
|
211
|
+
const current = before.catch(() => undefined).then(work);
|
|
212
|
+
locks.set(key, current);
|
|
213
|
+
try {
|
|
214
|
+
return await current;
|
|
215
|
+
}
|
|
216
|
+
finally {
|
|
217
|
+
if (locks.get(key) === current)
|
|
218
|
+
locks.delete(key);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
async function frozen(signal) {
|
|
222
|
+
const discoverySignal = AbortSignal.any([AbortSignal.timeout(60_000), ...(signal ? [signal] : [])]);
|
|
223
|
+
const resolved = await abortable(() => options.getClient(), discoverySignal);
|
|
224
|
+
if (!resolved.apiKey)
|
|
225
|
+
throw new Error('A CLI credential is required for source commands');
|
|
226
|
+
const endpoint = new URL(resolved.baseUrl);
|
|
227
|
+
if (!['https:', 'http:'].includes(endpoint.protocol) || endpoint.username || endpoint.password || endpoint.search || endpoint.hash
|
|
228
|
+
|| resolved.baseUrl.length > 2048)
|
|
229
|
+
throw new Error('Source commands require a plain HTTP(S) API base URL');
|
|
230
|
+
const client = createClient({ baseUrl: resolved.baseUrl, apiKey: resolved.apiKey, workspaceId: resolved.workspaceId,
|
|
231
|
+
fetchImpl: boundedMcpFetch(resolved.fetchImpl, signal) });
|
|
232
|
+
const me = await getMe(client), tenantId = identifier(me.activeWorkspace?.id);
|
|
233
|
+
return { client: createClient({ baseUrl: client.baseUrl, apiKey: client.apiKey, workspaceId: tenantId, fetchImpl: client.fetchImpl }),
|
|
234
|
+
tenantId, apiUrl: client.baseUrl, credentialHash: hash(client.apiKey), selector: client.workspaceId ?? null };
|
|
235
|
+
}
|
|
236
|
+
function transport(client, expectedScope) {
|
|
237
|
+
return async (scope, pathname, init) => {
|
|
238
|
+
if (!equal(scope, expectedScope) || client.workspaceId !== scope.tenantId)
|
|
239
|
+
throw new Error('Source transport scope changed');
|
|
240
|
+
const headers = new Headers(init.headers);
|
|
241
|
+
for (const [key, value] of Object.entries(authHeaders(client)))
|
|
242
|
+
headers.set(key, value);
|
|
243
|
+
const response = await client.fetchImpl(`${client.baseUrl}${pathname}`, { ...init, headers, redirect: 'error' });
|
|
244
|
+
const text = await response.text();
|
|
245
|
+
let payload;
|
|
246
|
+
try {
|
|
247
|
+
payload = text ? JSON.parse(text) : undefined;
|
|
248
|
+
}
|
|
249
|
+
catch {
|
|
250
|
+
payload = undefined;
|
|
251
|
+
}
|
|
252
|
+
if (!response.ok)
|
|
253
|
+
throw toApiError(response, payload);
|
|
254
|
+
return payload;
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
function checkedContext(retained, context) {
|
|
258
|
+
if (retained.apiUrl !== context.apiUrl || retained.credentialHash !== context.credentialHash
|
|
259
|
+
|| retained.selector !== context.selector || retained.record.scope.tenantId !== context.tenantId) {
|
|
260
|
+
throw new Error(`Retained source command ${retained.record.requestId} belongs to a different API, credential or workspace`);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
function restored(retained, context) {
|
|
264
|
+
checkedContext(retained, context);
|
|
265
|
+
return restoreSourceCommand(retained.record, { scope: retained.record.scope, transport: transport(context.client, retained.record.scope), retainAcceptance: record => store.acceptance(record) });
|
|
266
|
+
}
|
|
267
|
+
async function run(operation, action, signal, wait = 0) {
|
|
268
|
+
try {
|
|
269
|
+
const response = action === 'status' && wait ? await operation.poll({ signal, maxWaitMs: wait }) : await operation[action](signal);
|
|
270
|
+
await store.acceptance(operation.record());
|
|
271
|
+
if ('result' in response && sourcePublicationState(response) === 'CAPTURE_FAILED') {
|
|
272
|
+
return { ...response, captureState: 'CAPTURE_FAILED',
|
|
273
|
+
message: `Terminal log capture failed (${response.result.logFailure.code}); the result preserves the actual termination and exit code. `
|
|
274
|
+
+ 'Logs and workspace output are unavailable; source was not published. Do not re-execute the command to recover logs; retain this request ID.' };
|
|
275
|
+
}
|
|
276
|
+
return response;
|
|
277
|
+
}
|
|
278
|
+
catch (error) {
|
|
279
|
+
// Include only the resumable ID, never saved command/env or credentials.
|
|
280
|
+
throw new Error(`Source command ${operation.record().requestId}: ${error instanceof Error ? error.message : 'action failed'}. `
|
|
281
|
+
+ 'Use source_command_status to observe; source_command_resume with action submit retries this same input. Stopping observation does not cancel execution.', { cause: error });
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
return {
|
|
285
|
+
execute(args, rpcId, signal) {
|
|
286
|
+
return serialized(`rpc:${typeof rpcId}:${rpcId}`, async () => {
|
|
287
|
+
exact(args, ['function', 'command', 'timeoutMs', 'target', 'env', 'requestId']);
|
|
288
|
+
const functionIdentifier = identifier(args.function);
|
|
289
|
+
if (args.target !== undefined && args.target !== 'source')
|
|
290
|
+
throw new Error('Invalid source execution target');
|
|
291
|
+
if (typeof args.command !== 'string' || args.timeoutMs !== undefined && typeof args.timeoutMs !== 'number')
|
|
292
|
+
throw new Error('Invalid source command input');
|
|
293
|
+
// Caller-retained UUID is the intent identity. JSON-RPC IDs alone may
|
|
294
|
+
// be reused by an unrelated MCP conversation, including in one process.
|
|
295
|
+
const requestId = uuid(args.requestId);
|
|
296
|
+
signal?.throwIfAborted();
|
|
297
|
+
// Validate bounded command/env before discovery or filesystem work.
|
|
298
|
+
const validated = await prepareSourceCommand({ scope: { tenantId: 'unresolved', functionId: 'unresolved' }, requestId,
|
|
299
|
+
input: { command: args.command, timeoutMs: args.timeoutMs, env: args.env },
|
|
300
|
+
retain: async () => undefined, transport: async () => { throw new Error('Validation cannot dispatch'); } });
|
|
301
|
+
const normalized = validated.record().input;
|
|
302
|
+
const context = await frozen(signal);
|
|
303
|
+
const mapped = namespace ? await store.request(namespace, rpcId) : null;
|
|
304
|
+
if (mapped && mapped !== requestId)
|
|
305
|
+
throw new Error('MCP request ID already belongs to another retained source intent');
|
|
306
|
+
if (await store.exists(requestId)) {
|
|
307
|
+
const retained = await store.load(requestId), operation = restored(retained, context);
|
|
308
|
+
// Validate/normalize supplied bytes with the same strict client parser.
|
|
309
|
+
const candidate = await prepareSourceCommand({ scope: retained.record.scope, requestId,
|
|
310
|
+
input: normalized,
|
|
311
|
+
retain: async () => undefined, transport: transport(context.client, retained.record.scope) });
|
|
312
|
+
if (retained.functionIdentifier !== functionIdentifier || !equal(candidate.record().input, retained.record.input))
|
|
313
|
+
throw new Error('Source request ID already belongs to different command input');
|
|
314
|
+
if (namespace && await store.bindRequest(namespace, rpcId, requestId) !== requestId)
|
|
315
|
+
throw new Error('MCP request ID concurrently retained another source intent');
|
|
316
|
+
// Duplicate delivery only observes. Retrying POST is an explicit resume.
|
|
317
|
+
return run(operation, 'status', signal);
|
|
318
|
+
}
|
|
319
|
+
const functions = await listRemoteFunctions(context.client);
|
|
320
|
+
const fn = functions.find(item => item.id === functionIdentifier) ?? await resolveRemoteFunction(context.client, functionIdentifier);
|
|
321
|
+
const operation = await prepareSourceCommand({ scope: { tenantId: context.tenantId, functionId: identifier(fn.id) }, requestId,
|
|
322
|
+
input: normalized,
|
|
323
|
+
transport: transport(context.client, { tenantId: context.tenantId, functionId: fn.id }),
|
|
324
|
+
retainAcceptance: record => store.acceptance(record),
|
|
325
|
+
retain: record => store.retain({ version: 1, apiUrl: context.apiUrl, credentialHash: context.credentialHash, selector: context.selector,
|
|
326
|
+
namespace, functionIdentifier, record }) });
|
|
327
|
+
const retainedId = namespace ? await store.bindRequest(namespace, rpcId, requestId) : requestId;
|
|
328
|
+
if (retainedId !== requestId)
|
|
329
|
+
throw new Error(`MCP request ID concurrently retained source command ${retainedId}; observe that request before retrying`);
|
|
330
|
+
return serialized(`operation:${requestId}`, () => run(operation, 'submit', signal));
|
|
331
|
+
});
|
|
332
|
+
},
|
|
333
|
+
async action(action, args, signal) {
|
|
334
|
+
exact(args, ['requestId', ...(action === 'status' ? ['waitMs'] : [])]);
|
|
335
|
+
const requestId = uuid(args.requestId), wait = action === 'status' ? waitMs(args.waitMs) : 0;
|
|
336
|
+
signal?.throwIfAborted();
|
|
337
|
+
const context = await frozen(signal), retained = await store.load(requestId);
|
|
338
|
+
const operation = restored(retained, context);
|
|
339
|
+
// GET waits must not block explicit cancel/reconcile for the same operation.
|
|
340
|
+
return action === 'status' ? run(operation, action, signal, wait)
|
|
341
|
+
: serialized(`operation:${requestId}`, () => run(operation, action, signal));
|
|
342
|
+
},
|
|
343
|
+
};
|
|
344
|
+
}
|
|
345
|
+
//# sourceMappingURL=mcp-source-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-source-commands.js","sourceRoot":"","sources":["../../src/lib/mcp-source-commands.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/api.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { type AppDomain, type Build, type BuildStatus, type DomainVerificationInstructions, type PromoteResponse, type QueueBuildInput, type QueueBuildResponse, type AppLimits, type AppConnectionInfo, type Application, type ApplicationDetail, type ApplicationListResponse, type AppLogEvent, type AppNetworkPolicy, type AppPortSpec, type AppRuntimeSpec, type AppScaleActionResponse, type AppScalingActivation, type AppScalingPolicy, type CreateApplicationInput, type CreateReleaseInput, type CreateReleaseResponse, type Release, type ReleasePort, type ReleaseStatus, type CreateRemoteFunctionInput, type DeployRemoteFunctionOptions, type RemoteFunctionRecord, type TransportClient, type UpdateRemoteFunctionInput, type QueueDeployInput, type QueuedDeployResponse, type DeployRecord, type DeployListResponse, type DeployLogEvent, type RollbackDeployOptions, type MeResponse, type WorkspaceSummary } from '../sdk.js';
|
|
1
|
+
import { deleteRemoteFunction as sdkDeleteRemoteFunction, type AppDomain, type Build, type BuildStatus, type DomainVerificationInstructions, type AppRollout, type AppRolloutPhase, type PromoteAccepted, type PromoteResponse, type PromoteResult, type QueueBuildInput, type QueueBuildResponse, type AppLimits, type AppConnectionInfo, type Application, type ApplicationDetail, type ApplicationListResponse, type AppLogEvent, type AppNetworkPolicy, type AppPortSpec, type AppRuntimeSpec, type AppScaleActionResponse, type AppScalingActivation, type AppScalingPolicy, type CreateApplicationInput, type CreateReleaseInput, type CreateReleaseResponse, type Release, type ReleasePort, type ReleaseStatus, type CreateRemoteFunctionInput, type DeployRemoteFunctionOptions, type RemoteFunctionRecord, type TransportClient, type UpdateRemoteFunctionInput, type QueueDeployInput, type QueuedDeployResponse, type DeployRecord, type DeployListResponse, type DeployLogEvent, type RollbackDeployOptions, type MeResponse, type WorkspaceSummary } from '../sdk.js';
|
|
2
2
|
import type { AppVolumeBackup, AppVolumeBackupListResponse, AppVolumeBackupRunResponse } from '../sdk.js';
|
|
3
3
|
export type { AppVolumeBackup, AppVolumeBackupListResponse, AppVolumeBackupRunResponse };
|
|
4
4
|
import { type CreateProjectInput, type ProjectResourceRef } from '../sdk.js';
|
|
5
5
|
export interface ApiRequestOptions {
|
|
6
|
+
/** MCP supplies a bounded, cancellable transport for one tool action. */
|
|
7
|
+
fetchImpl?: typeof fetch;
|
|
6
8
|
apiUrl?: string;
|
|
7
9
|
apiKey?: string;
|
|
8
10
|
/** Explicit `--token` override (Personal Access Token). */
|
|
@@ -35,8 +37,8 @@ export declare function deployRemoteFunction(functionId: string, deployOptions?:
|
|
|
35
37
|
export declare function listRemoteInvocations(functionId: string, listOptions?: {
|
|
36
38
|
limit?: number;
|
|
37
39
|
offset?: number;
|
|
38
|
-
}, options?: ApiRequestOptions): Promise<import("
|
|
39
|
-
export declare function deleteRemoteFunction(functionId: string, options?: ApiRequestOptions):
|
|
40
|
+
}, options?: ApiRequestOptions): Promise<import("@inquir/compute").RemoteInvocationsListResponse>;
|
|
41
|
+
export declare function deleteRemoteFunction(functionId: string, options?: ApiRequestOptions): ReturnType<typeof sdkDeleteRemoteFunction>;
|
|
40
42
|
export declare function queueDeploy(input: QueueDeployInput, options?: ApiRequestOptions): Promise<QueuedDeployResponse>;
|
|
41
43
|
export declare function getDeployStatus(deployId: string, options?: ApiRequestOptions, signal?: AbortSignal): Promise<DeployRecord>;
|
|
42
44
|
export declare function listFunctionDeploys(functionId: string, listOptions?: {
|
|
@@ -50,10 +52,13 @@ export declare function listWorkspaces(options?: ApiRequestOptions): Promise<Wor
|
|
|
50
52
|
export declare function listProjects(listOptions?: {
|
|
51
53
|
limit?: number;
|
|
52
54
|
cursor?: string;
|
|
53
|
-
}, options?: ApiRequestOptions): Promise<import("
|
|
54
|
-
export declare function getProject(project: string, options?: ApiRequestOptions): Promise<import("
|
|
55
|
-
export declare function createProject(input: CreateProjectInput, options?: ApiRequestOptions): Promise<import("
|
|
56
|
-
export declare function addProjectResource(project: string, resource: ProjectResourceRef, options?: ApiRequestOptions): Promise<import("
|
|
55
|
+
}, options?: ApiRequestOptions): Promise<import("@inquir/compute").ProjectListResponse>;
|
|
56
|
+
export declare function getProject(project: string, options?: ApiRequestOptions): Promise<import("@inquir/compute").ProjectDetail>;
|
|
57
|
+
export declare function createProject(input: CreateProjectInput, options?: ApiRequestOptions): Promise<import("@inquir/compute").Project>;
|
|
58
|
+
export declare function addProjectResource(project: string, resource: ProjectResourceRef, options?: ApiRequestOptions): Promise<import("@inquir/compute").ProjectMember>;
|
|
59
|
+
export declare function removeProjectResource(project: string, resource: ProjectResourceRef, options?: ApiRequestOptions): Promise<{
|
|
60
|
+
removed: true;
|
|
61
|
+
}>;
|
|
57
62
|
export declare function listApplications(listOptions?: {
|
|
58
63
|
limit?: number;
|
|
59
64
|
cursor?: string;
|
|
@@ -96,12 +101,16 @@ export declare function redeployApplication(applicationId: string, input?: {
|
|
|
96
101
|
redeployOf: string;
|
|
97
102
|
}>;
|
|
98
103
|
export declare function getRelease(releaseId: string, options?: ApiRequestOptions): Promise<Release>;
|
|
99
|
-
export
|
|
104
|
+
export { isPromoteAccepted } from '@inquir/compute';
|
|
105
|
+
/** 200: promoted; 202 (isPromoteAccepted): a rolling rollout the server goes on with in the background. */
|
|
106
|
+
export declare function promoteRelease(releaseId: string, options?: ApiRequestOptions): Promise<PromoteResult>;
|
|
107
|
+
/** One rollout of an application: what a 202 promote's pollUrl names (apps:read). */
|
|
108
|
+
export declare function getApplicationRollout(applicationId: string, rolloutId: string, options?: ApiRequestOptions): Promise<AppRollout>;
|
|
100
109
|
export declare function updateApplication(applicationId: string, patch: Partial<CreateApplicationInput>, options?: ApiRequestOptions): Promise<Application>;
|
|
101
110
|
export declare function wakeApplication(applicationId: string, options?: ApiRequestOptions): Promise<AppScaleActionResponse>;
|
|
102
111
|
export declare function pauseApplication(applicationId: string, options?: ApiRequestOptions): Promise<AppScaleActionResponse>;
|
|
103
112
|
export declare function queueBuild(applicationId: string, input: QueueBuildInput, options?: ApiRequestOptions): Promise<QueueBuildResponse>;
|
|
104
|
-
export declare function getBuild(buildId: string, options?: ApiRequestOptions): Promise<Build>;
|
|
113
|
+
export declare function getBuild(buildId: string, options?: ApiRequestOptions, signal?: AbortSignal): Promise<Build>;
|
|
105
114
|
export declare function listBuilds(applicationId: string, options?: ApiRequestOptions): Promise<{
|
|
106
115
|
items: Build[];
|
|
107
116
|
}>;
|
|
@@ -135,5 +144,5 @@ export declare function listApplicationDomains(applicationId: string, options?:
|
|
|
135
144
|
export declare function removeApplicationDomain(applicationId: string, hostname: string, options?: ApiRequestOptions): Promise<{
|
|
136
145
|
removed: boolean;
|
|
137
146
|
}>;
|
|
138
|
-
export type { AppDomain, Application, ApplicationDetail, ApplicationListResponse, AppLimits, AppLogEvent, AppNetworkPolicy, AppPortSpec, AppRuntimeSpec, AppScaleActionResponse, AppScalingActivation, AppScalingPolicy, Build, BuildStatus, DomainVerificationInstructions, PromoteResponse, QueueBuildInput, QueueBuildResponse, CreateApplicationInput, CreateReleaseInput, CreateReleaseResponse, Release, ReleasePort, ReleaseStatus, CreateRemoteFunctionInput, UpdateRemoteFunctionInput, QueueDeployInput, QueuedDeployResponse, DeployRecord, DeployListResponse, DeployLogEvent, RollbackDeployOptions, MeResponse, WorkspaceSummary, };
|
|
147
|
+
export type { AppDomain, Application, ApplicationDetail, ApplicationListResponse, AppLimits, AppLogEvent, AppNetworkPolicy, AppPortSpec, AppRuntimeSpec, AppScaleActionResponse, AppScalingActivation, AppScalingPolicy, Build, BuildStatus, DomainVerificationInstructions, PromoteResponse, PromoteAccepted, PromoteResult, AppRollout, AppRolloutPhase, QueueBuildInput, QueueBuildResponse, CreateApplicationInput, CreateReleaseInput, CreateReleaseResponse, Release, ReleasePort, ReleaseStatus, CreateRemoteFunctionInput, UpdateRemoteFunctionInput, QueueDeployInput, QueuedDeployResponse, DeployRecord, DeployListResponse, DeployLogEvent, RollbackDeployOptions, MeResponse, WorkspaceSummary, };
|
|
139
148
|
//# sourceMappingURL=api.d.ts.map
|
package/dist/utils/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/api.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { createClient, createRemoteFunction as sdkCreateRemoteFunction, deployRemoteFunction as sdkDeployRemoteFunction, invokeRemote as sdkInvokeRemote, listRemoteFunctions as sdkListRemoteFunctions, listRemoteInvocations as sdkListRemoteInvocations, resolveRemoteFunction as sdkResolveRemoteFunction, updateRemoteFunction as sdkUpdateRemoteFunction, queueDeploy as sdkQueueDeploy, getDeployStatus as sdkGetDeployStatus, listFunctionDeploys as sdkListFunctionDeploys, rollbackDeploy as sdkRollbackDeploy, streamDeployLogs as sdkStreamDeployLogs, deleteRemoteFunction as sdkDeleteRemoteFunction, getMe as sdkGetMe, listWorkspaces as sdkListWorkspaces, listApplications as sdkListApplications, getApplication as sdkGetApplication, getAppLimits as sdkGetAppLimits, createApplication as sdkCreateApplication, listAppBackups as sdkListAppBackups, getAppBackup as sdkGetAppBackup, createAppBackup as sdkCreateAppBackup, deleteAppBackup as sdkDeleteAppBackup, restoreAppBackup as sdkRestoreAppBackup, getAppConnectionUrl as sdkGetAppConnectionUrl, connectApps as sdkConnectApps, archiveApplication as sdkArchiveApplication, createRelease as sdkCreateRelease, redeployApplication as sdkRedeployApplication, getRelease as sdkGetRelease, promoteRelease as sdkPromoteRelease, rollbackApplication as sdkRollbackApplication, stopRelease as sdkStopRelease, execInApplication as sdkExecInApplication, streamReleaseLogs as sdkStreamReleaseLogs, addApplicationDomain as sdkAddApplicationDomain, verifyApplicationDomain as sdkVerifyApplicationDomain, listApplicationDomains as sdkListApplicationDomains, removeApplicationDomain as sdkRemoveApplicationDomain, updateApplication as sdkUpdateApplication, wakeApplication as sdkWakeApplication, pauseApplication as sdkPauseApplication, queueBuild as sdkQueueBuild, getBuild as sdkGetBuild, listBuilds as sdkListBuilds, cancelBuild as sdkCancelBuild, streamBuildLogs as sdkStreamBuildLogs, } from '../sdk.js';
|
|
2
|
-
import { addProjectResource as sdkAddProjectResource, createProject as sdkCreateProject, getProject as sdkGetProject, listProjects as sdkListProjects, } from '../sdk.js';
|
|
1
|
+
import { createClient, createRemoteFunction as sdkCreateRemoteFunction, deployRemoteFunction as sdkDeployRemoteFunction, invokeRemote as sdkInvokeRemote, listRemoteFunctions as sdkListRemoteFunctions, listRemoteInvocations as sdkListRemoteInvocations, resolveRemoteFunction as sdkResolveRemoteFunction, updateRemoteFunction as sdkUpdateRemoteFunction, queueDeploy as sdkQueueDeploy, getDeployStatus as sdkGetDeployStatus, listFunctionDeploys as sdkListFunctionDeploys, rollbackDeploy as sdkRollbackDeploy, streamDeployLogs as sdkStreamDeployLogs, deleteRemoteFunction as sdkDeleteRemoteFunction, getMe as sdkGetMe, listWorkspaces as sdkListWorkspaces, listApplications as sdkListApplications, getApplication as sdkGetApplication, getAppLimits as sdkGetAppLimits, createApplication as sdkCreateApplication, listAppBackups as sdkListAppBackups, getAppBackup as sdkGetAppBackup, createAppBackup as sdkCreateAppBackup, deleteAppBackup as sdkDeleteAppBackup, restoreAppBackup as sdkRestoreAppBackup, getAppConnectionUrl as sdkGetAppConnectionUrl, connectApps as sdkConnectApps, archiveApplication as sdkArchiveApplication, createRelease as sdkCreateRelease, redeployApplication as sdkRedeployApplication, getRelease as sdkGetRelease, promoteRelease as sdkPromoteRelease, getApplicationRollout as sdkGetApplicationRollout, rollbackApplication as sdkRollbackApplication, stopRelease as sdkStopRelease, execInApplication as sdkExecInApplication, streamReleaseLogs as sdkStreamReleaseLogs, addApplicationDomain as sdkAddApplicationDomain, verifyApplicationDomain as sdkVerifyApplicationDomain, listApplicationDomains as sdkListApplicationDomains, removeApplicationDomain as sdkRemoveApplicationDomain, updateApplication as sdkUpdateApplication, wakeApplication as sdkWakeApplication, pauseApplication as sdkPauseApplication, queueBuild as sdkQueueBuild, getBuild as sdkGetBuild, listBuilds as sdkListBuilds, cancelBuild as sdkCancelBuild, streamBuildLogs as sdkStreamBuildLogs, } from '../sdk.js';
|
|
2
|
+
import { addProjectResource as sdkAddProjectResource, createProject as sdkCreateProject, getProject as sdkGetProject, listProjects as sdkListProjects, removeProjectResource as sdkRemoveProjectResource, } from '../sdk.js';
|
|
3
3
|
import { resolveAuthConfig } from './auth.js';
|
|
4
4
|
import { authRequiredError, CliError, ExitCode } from './errors.js';
|
|
5
5
|
import { registerSecret } from './redact.js';
|
|
@@ -24,6 +24,7 @@ export async function createApiClient(options = {}) {
|
|
|
24
24
|
baseUrl: resolved.apiUrl,
|
|
25
25
|
apiKey: credential,
|
|
26
26
|
workspaceId,
|
|
27
|
+
fetchImpl: options.fetchImpl,
|
|
27
28
|
});
|
|
28
29
|
}
|
|
29
30
|
export async function listRemoteFunctions(options = {}) {
|
|
@@ -102,6 +103,9 @@ export async function createProject(input, options = {}) {
|
|
|
102
103
|
export async function addProjectResource(project, resource, options = {}) {
|
|
103
104
|
return sdkAddProjectResource(await createApiClient(options), project, resource);
|
|
104
105
|
}
|
|
106
|
+
export async function removeProjectResource(project, resource, options = {}) {
|
|
107
|
+
return sdkRemoveProjectResource(await createApiClient(options), project, resource);
|
|
108
|
+
}
|
|
105
109
|
// --- App runtime plane (long-lived container services) --------------------
|
|
106
110
|
export async function listApplications(listOptions = {}, options = {}) {
|
|
107
111
|
return sdkListApplications(await createApiClient(options), listOptions);
|
|
@@ -182,9 +186,15 @@ export async function redeployApplication(applicationId, input = {}, options = {
|
|
|
182
186
|
export async function getRelease(releaseId, options = {}) {
|
|
183
187
|
return sdkGetRelease(await createApiClient(options), releaseId);
|
|
184
188
|
}
|
|
189
|
+
export { isPromoteAccepted } from '@inquir/compute';
|
|
190
|
+
/** 200: promoted; 202 (isPromoteAccepted): a rolling rollout the server goes on with in the background. */
|
|
185
191
|
export async function promoteRelease(releaseId, options = {}) {
|
|
186
192
|
return sdkPromoteRelease(await createApiClient(options), releaseId);
|
|
187
193
|
}
|
|
194
|
+
/** One rollout of an application: what a 202 promote's pollUrl names (apps:read). */
|
|
195
|
+
export async function getApplicationRollout(applicationId, rolloutId, options = {}) {
|
|
196
|
+
return sdkGetApplicationRollout(await createApiClient(options), applicationId, rolloutId);
|
|
197
|
+
}
|
|
188
198
|
export async function updateApplication(applicationId, patch, options = {}) {
|
|
189
199
|
return sdkUpdateApplication(await createApiClient(options), applicationId, patch);
|
|
190
200
|
}
|
|
@@ -197,8 +207,15 @@ export async function pauseApplication(applicationId, options = {}) {
|
|
|
197
207
|
export async function queueBuild(applicationId, input, options = {}) {
|
|
198
208
|
return sdkQueueBuild(await createApiClient(options), applicationId, input);
|
|
199
209
|
}
|
|
200
|
-
export async function getBuild(buildId, options = {}) {
|
|
201
|
-
|
|
210
|
+
export async function getBuild(buildId, options = {}, signal) {
|
|
211
|
+
const client = await createApiClient(options);
|
|
212
|
+
signal?.throwIfAborted();
|
|
213
|
+
// Match deploy observation: abort covers headers and the response body,
|
|
214
|
+
// without changing authentication or workspace scope for this request.
|
|
215
|
+
return sdkGetBuild(signal ? {
|
|
216
|
+
...client,
|
|
217
|
+
fetchImpl: (input, init) => client.fetchImpl(input, { ...init, signal }),
|
|
218
|
+
} : client, buildId);
|
|
202
219
|
}
|
|
203
220
|
export async function listBuilds(applicationId, options = {}) {
|
|
204
221
|
return sdkListBuilds(await createApiClient(options), applicationId);
|
|
@@ -208,6 +225,7 @@ export async function cancelBuild(buildId, options = {}) {
|
|
|
208
225
|
}
|
|
209
226
|
export async function* streamBuildLogs(buildId, options = {}, signal) {
|
|
210
227
|
const client = await createApiClient(options);
|
|
228
|
+
signal?.throwIfAborted();
|
|
211
229
|
yield* sdkStreamBuildLogs(client, buildId, signal);
|
|
212
230
|
}
|
|
213
231
|
export async function rollbackApplication(applicationId, options = {}) {
|