@inquir/compute-cli 0.3.0 → 0.4.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 (106) hide show
  1. package/README.md +528 -406
  2. package/dist/commands/admin-tenants.d.ts +11 -0
  3. package/dist/commands/admin-tenants.d.ts.map +1 -0
  4. package/dist/commands/admin-tenants.js +318 -0
  5. package/dist/commands/admin-tenants.js.map +1 -0
  6. package/dist/commands/admin.d.ts +2 -0
  7. package/dist/commands/admin.d.ts.map +1 -0
  8. package/dist/commands/admin.js +445 -0
  9. package/dist/commands/admin.js.map +1 -0
  10. package/dist/commands/apps-describe.d.ts +9 -0
  11. package/dist/commands/apps-describe.d.ts.map +1 -0
  12. package/dist/commands/apps-describe.js +125 -0
  13. package/dist/commands/apps-describe.js.map +1 -0
  14. package/dist/commands/apps-instances.d.ts +18 -0
  15. package/dist/commands/apps-instances.d.ts.map +1 -0
  16. package/dist/commands/apps-instances.js +87 -0
  17. package/dist/commands/apps-instances.js.map +1 -0
  18. package/dist/commands/apps-observability.d.ts +15 -0
  19. package/dist/commands/apps-observability.d.ts.map +1 -0
  20. package/dist/commands/apps-observability.js +310 -0
  21. package/dist/commands/apps-observability.js.map +1 -0
  22. package/dist/commands/apps-promote.d.ts +31 -0
  23. package/dist/commands/apps-promote.d.ts.map +1 -0
  24. package/dist/commands/apps-promote.js +115 -0
  25. package/dist/commands/apps-promote.js.map +1 -0
  26. package/dist/commands/apps-resources.d.ts +6 -0
  27. package/dist/commands/apps-resources.d.ts.map +1 -0
  28. package/dist/commands/apps-resources.js +107 -0
  29. package/dist/commands/apps-resources.js.map +1 -0
  30. package/dist/commands/apps.d.ts +118 -2
  31. package/dist/commands/apps.d.ts.map +1 -1
  32. package/dist/commands/apps.js +999 -110
  33. package/dist/commands/apps.js.map +1 -1
  34. package/dist/commands/config.d.ts.map +1 -1
  35. package/dist/commands/config.js +7 -3
  36. package/dist/commands/config.js.map +1 -1
  37. package/dist/commands/delete.d.ts.map +1 -1
  38. package/dist/commands/delete.js +10 -2
  39. package/dist/commands/delete.js.map +1 -1
  40. package/dist/commands/deploy.js +3 -3
  41. package/dist/commands/deploy.js.map +1 -1
  42. package/dist/commands/init.js +15 -15
  43. package/dist/commands/login.d.ts.map +1 -1
  44. package/dist/commands/login.js +78 -33
  45. package/dist/commands/login.js.map +1 -1
  46. package/dist/commands/logout.d.ts.map +1 -1
  47. package/dist/commands/logout.js +37 -5
  48. package/dist/commands/logout.js.map +1 -1
  49. package/dist/commands/mcp.d.ts +13 -0
  50. package/dist/commands/mcp.d.ts.map +1 -1
  51. package/dist/commands/mcp.js +184 -77
  52. package/dist/commands/mcp.js.map +1 -1
  53. package/dist/commands/projects.d.ts.map +1 -1
  54. package/dist/commands/projects.js +107 -11
  55. package/dist/commands/projects.js.map +1 -1
  56. package/dist/index.js +9 -1
  57. package/dist/index.js.map +1 -1
  58. package/dist/lib/finite-source-command-client.d.ts +3 -0
  59. package/dist/lib/finite-source-command-client.d.ts.map +1 -0
  60. package/dist/lib/finite-source-command-client.js +3 -0
  61. package/dist/lib/finite-source-command-client.js.map +1 -0
  62. package/dist/lib/mcp-io.d.ts +23 -0
  63. package/dist/lib/mcp-io.d.ts.map +1 -0
  64. package/dist/lib/mcp-io.js +185 -0
  65. package/dist/lib/mcp-io.js.map +1 -0
  66. package/dist/lib/mcp-source-commands.d.ts +17 -0
  67. package/dist/lib/mcp-source-commands.d.ts.map +1 -0
  68. package/dist/lib/mcp-source-commands.js +345 -0
  69. package/dist/lib/mcp-source-commands.js.map +1 -0
  70. package/dist/utils/api.d.ts +39 -14
  71. package/dist/utils/api.d.ts.map +1 -1
  72. package/dist/utils/api.js +43 -6
  73. package/dist/utils/api.js.map +1 -1
  74. package/dist/utils/apps-presentation.d.ts +8 -1
  75. package/dist/utils/apps-presentation.d.ts.map +1 -1
  76. package/dist/utils/apps-presentation.js +35 -1
  77. package/dist/utils/apps-presentation.js.map +1 -1
  78. package/dist/utils/auth.d.ts +21 -1
  79. package/dist/utils/auth.d.ts.map +1 -1
  80. package/dist/utils/auth.js +119 -22
  81. package/dist/utils/auth.js.map +1 -1
  82. package/dist/utils/browser.d.ts +12 -0
  83. package/dist/utils/browser.d.ts.map +1 -1
  84. package/dist/utils/browser.js +37 -16
  85. package/dist/utils/browser.js.map +1 -1
  86. package/dist/utils/errors.d.ts.map +1 -1
  87. package/dist/utils/errors.js +41 -0
  88. package/dist/utils/errors.js.map +1 -1
  89. package/dist/utils/msys-path.d.ts +14 -0
  90. package/dist/utils/msys-path.d.ts.map +1 -0
  91. package/dist/utils/msys-path.js +55 -0
  92. package/dist/utils/msys-path.js.map +1 -0
  93. package/dist/utils/package-metadata.js +1 -1
  94. package/dist/utils/project-context.d.ts.map +1 -1
  95. package/dist/utils/project-context.js +7 -5
  96. package/dist/utils/project-context.js.map +1 -1
  97. package/dist/utils/project-lookup.d.ts +10 -0
  98. package/dist/utils/project-lookup.d.ts.map +1 -0
  99. package/dist/utils/project-lookup.js +52 -0
  100. package/dist/utils/project-lookup.js.map +1 -0
  101. package/dist/utils/source-pack.d.ts +24 -0
  102. package/dist/utils/source-pack.d.ts.map +1 -0
  103. package/dist/utils/source-pack.js +63 -0
  104. package/dist/utils/source-pack.js.map +1 -0
  105. package/package.json +26 -26
  106. package/skill/SKILL.md +73 -67
@@ -12,14 +12,16 @@
12
12
  * Register (Claude Code): claude mcp add inquir -- inquir mcp
13
13
  */
14
14
  import path from 'node:path';
15
- import readline from 'node:readline';
16
- import { createZipBase64, rawRequest } from '@inquir/compute';
15
+ import { createZipBase64, rawRequest, createClient, getMe, listRemoteFunctions as listFunctionsWithClient, resolveRemoteFunction as resolveFunctionWithClient } from '@inquir/compute';
17
16
  import { createApiClient, createRemoteFunction, getDeployStatus, invokeRemote, listRemoteFunctions, listRemoteInvocations, queueDeploy, resolveRemoteFunction, rollbackDeploy, updateRemoteFunction, } from '../utils/api.js';
18
17
  import { buildApiOptions } from '../utils/context.js';
19
18
  import { isTerminalDeployStatus } from '../sdk.js';
20
19
  import { detectApp } from '../utils/detect.js';
21
- import { hasFlag } from '../utils/args.js';
20
+ import { hasFlag, readFlagValue } from '../utils/args.js';
22
21
  import { printCommandHelp } from '../utils/output.js';
22
+ import { redact } from '../utils/redact.js';
23
+ import { createMcpSourceCommands } from '../lib/mcp-source-commands.js';
24
+ import { boundedMcpFetch, createMcpWriter, readMcpLines, MCP_FRAME_BYTES } from '../lib/mcp-io.js';
23
25
  const PROTOCOL_VERSION = '2024-11-05';
24
26
  const SERVER_INFO = { name: 'inquir', version: '0.1.0' };
25
27
  /** Wait for a queued deploy to reach a terminal status (poll, no SSE). */
@@ -104,9 +106,9 @@ const TOOLS = [
104
106
  },
105
107
  {
106
108
  name: 'exec',
107
- description: 'Run a shell command inside the function\'s container environment (its runtime image + code). ' +
108
- 'Use for installing dependencies, running tests, or debugging. target "source" (default) mounts the ' +
109
- 'editable source read-write; "release" mounts the deployed release read-only.',
109
+ description: 'Submit a command against a private snapshot of function source (default target). Source requires a caller-retained UUID requestId; ' +
110
+ 'returns asynchronous execution identity. Observe with source_command_status and explicitly publish with source_command_reconcile. ' +
111
+ 'Unavailable finite execution never falls back to writable source mounts. target "release" executes against the deployed release read-only.',
110
112
  inputSchema: {
111
113
  type: 'object',
112
114
  properties: {
@@ -114,20 +116,52 @@ const TOOLS = [
114
116
  command: { type: 'string', description: 'Shell command (sh -c)' },
115
117
  timeoutMs: { type: 'number', description: 'Timeout in ms (default 60000, max 900000)' },
116
118
  target: { type: 'string', enum: ['source', 'release'] },
119
+ requestId: { type: 'string', format: 'uuid', description: 'Required for source: retain one lowercase UUID v4 per intent before calling; reuse for uncertain replies' },
120
+ env: { type: 'object', additionalProperties: { type: 'string' }, description: 'Source command environment overrides' },
117
121
  },
118
122
  required: ['function', 'command'],
123
+ anyOf: [{ properties: { target: { const: 'release' } }, required: ['target'] }, { required: ['requestId'] }],
119
124
  additionalProperties: false,
120
125
  },
121
- handler: async (args, apiOptions) => {
122
- const fn = await resolveRemoteFunction(String(args.function), apiOptions);
123
- const client = await createApiClient(apiOptions);
126
+ handler: async (args, apiOptions, context) => {
127
+ if (args.target === undefined || args.target === 'source')
128
+ return context.sources.execute(args, context.id, context.signal);
129
+ if (args.target !== 'release')
130
+ throw new Error('Invalid exec target');
131
+ if (args.env !== undefined || args.requestId !== undefined)
132
+ throw new Error('env and requestId apply only to source commands');
133
+ const resolved = await createApiClient(apiOptions), identity = await getMe(resolved);
134
+ const client = createClient({ baseUrl: resolved.baseUrl, apiKey: resolved.apiKey,
135
+ workspaceId: identity.activeWorkspace.id, fetchImpl: resolved.fetchImpl });
136
+ const identifier = String(args.function), functions = await listFunctionsWithClient(client);
137
+ const fn = functions.find(item => item.id === identifier) ?? await resolveFunctionWithClient(client, identifier);
124
138
  return rawRequest(client, 'POST', `/functions/${fn.id}/exec`, {
125
139
  command: String(args.command),
126
140
  ...(typeof args.timeoutMs === 'number' ? { timeoutMs: args.timeoutMs } : {}),
127
- ...(typeof args.target === 'string' ? { target: args.target } : {}),
141
+ target: 'release',
128
142
  });
129
143
  },
130
144
  },
145
+ ...['status', 'reconcile', 'cancel'].map(action => ({
146
+ name: `source_command_${action}`,
147
+ description: action === 'status' ? 'Read retained source command state/output. Optional waitMs polls GET only; stopping observation does not cancel execution.'
148
+ : action === 'reconcile' ? 'Explicitly reconcile retained output with its original source snapshot. Returns APPLIED, CONFLICT or output refusal; never re-executes the command.'
149
+ : 'Request durable cancellation of a retained source command. CANCEL_REQUESTED is intent, not stopped execution or released capacity; publication may already be committed.',
150
+ inputSchema: { type: 'object', properties: { requestId: { type: 'string', format: 'uuid' },
151
+ ...(action === 'status' ? { waitMs: { type: 'integer', minimum: 0, maximum: 900000 } } : {}) }, required: ['requestId'], additionalProperties: false },
152
+ handler: async (args, _apiOptions, context) => context.sources.action(action, args, context.signal),
153
+ })),
154
+ {
155
+ name: 'source_command_resume',
156
+ description: 'Resume a locally retained UUID after reconnect/restart. status only observes; submit explicitly retries the SAME saved command, input and UUID after an uncertain submission. Never generates another execution identity.',
157
+ inputSchema: { type: 'object', properties: { requestId: { type: 'string', format: 'uuid' }, action: { type: 'string', enum: ['status', 'submit'] } },
158
+ required: ['requestId', 'action'], additionalProperties: false },
159
+ handler: async (args, _apiOptions, context) => {
160
+ if (Object.keys(args).some(key => !['requestId', 'action'].includes(key)) || !['status', 'submit'].includes(String(args.action)))
161
+ throw new Error('Invalid source resume action');
162
+ return context.sources.action(args.action, { requestId: args.requestId }, context.signal);
163
+ },
164
+ },
131
165
  {
132
166
  name: 'list_invocations',
133
167
  description: 'Recent invocations for a function (status, duration, errors, logs) — the debugging entry point.',
@@ -181,7 +215,126 @@ function toolResult(value) {
181
215
  };
182
216
  }
183
217
  function toolError(message) {
184
- return { content: [{ type: 'text', text: message }], isError: true };
218
+ return { content: [{ type: 'text', text: redact(message) }], isError: true };
219
+ }
220
+ /** Requests run independently so cancellation notifications and control tools
221
+ * can be consumed while a GET observation or deployment is waiting.
222
+ */
223
+ export function createMcpDispatcher(apiOptions, options) {
224
+ const sources = options.sources ?? createMcpSourceCommands({ getClient: () => createApiClient(apiOptions), namespace: options.sourceSession });
225
+ const active = new Map();
226
+ let heavy = 0, control = 0, deployment = 0, closed;
227
+ const keyOf = (id) => `${typeof id}:${id}`;
228
+ const close = (error) => { closed ??= error; for (const entry of active.values())
229
+ entry.controller.abort(error); };
230
+ const dispatch = async (line) => {
231
+ if (closed)
232
+ return;
233
+ if (Buffer.byteLength(line) > MCP_FRAME_BYTES) {
234
+ close(new Error('MCP input frame exceeds 64KiB'));
235
+ throw closed;
236
+ }
237
+ let request;
238
+ try {
239
+ request = JSON.parse(line);
240
+ }
241
+ catch {
242
+ await options.write({ jsonrpc: '2.0', id: null, error: { code: -32700, message: 'Parse error' } });
243
+ return;
244
+ }
245
+ if (!request || request.jsonrpc !== '2.0' || typeof request.method !== 'string'
246
+ || request.id !== undefined && request.id !== null && (typeof request.id !== 'string' && typeof request.id !== 'number' || typeof request.id === 'number' && !Number.isSafeInteger(request.id))) {
247
+ await options.write({ jsonrpc: '2.0', id: null, error: { code: -32600, message: 'Invalid request' } });
248
+ return;
249
+ }
250
+ const { id, method, params } = request;
251
+ if (method === 'notifications/cancelled') {
252
+ const cancelledId = params?.requestId;
253
+ if (typeof cancelledId === 'string' || typeof cancelledId === 'number')
254
+ active.get(keyOf(cancelledId))?.controller.abort(new Error('MCP observation cancelled'));
255
+ return;
256
+ }
257
+ if (id === undefined || id === null)
258
+ return; // Notifications cannot execute tools.
259
+ const key = keyOf(id), body = JSON.stringify(request), existing = active.get(key);
260
+ if (existing) {
261
+ if (existing.body !== body)
262
+ await options.write({ jsonrpc: '2.0', id, error: { code: -32600, message: 'An active request ID cannot identify different input' } });
263
+ // The original accepted request owns its response; duplicates add no waiters.
264
+ return;
265
+ }
266
+ const respond = (result) => options.write({ jsonrpc: '2.0', id, result });
267
+ // Protocol controls bypass work admission; output still has bounded backpressure.
268
+ if (method === 'initialize') {
269
+ await respond({ protocolVersion: PROTOCOL_VERSION, capabilities: { tools: {} }, serverInfo: SERVER_INFO });
270
+ return;
271
+ }
272
+ if (method === 'ping') {
273
+ await respond({});
274
+ return;
275
+ }
276
+ if (method === 'tools/list') {
277
+ await respond({ tools: TOOLS.map(({ name, description, inputSchema }) => ({ name, description, inputSchema })) });
278
+ return;
279
+ }
280
+ if (method !== 'tools/call') {
281
+ await options.write({ jsonrpc: '2.0', id, error: { code: -32601, message: `Method not found: ${method}` } });
282
+ return;
283
+ }
284
+ const tool = TOOLS.find(item => item.name === String(params?.name ?? ''));
285
+ if (!tool) {
286
+ await respond(toolError(`Unknown tool: ${String(params?.name ?? '')}`));
287
+ return;
288
+ }
289
+ const args = params?.arguments ?? {};
290
+ if (!args || typeof args !== 'object' || Array.isArray(args)) {
291
+ await respond(toolError('Tool arguments must be an object'));
292
+ return;
293
+ }
294
+ const isControl = tool.name.startsWith('source_command_') || tool.name === 'deploy_status';
295
+ const isDeployment = tool.name === 'deploy' || tool.name === 'rollback';
296
+ if (isControl ? control >= 2 : heavy >= 4 || isDeployment && deployment >= 1) {
297
+ await respond(toolError('MCP work limit reached; retain the same source UUID and retry after active work finishes'));
298
+ return;
299
+ }
300
+ if (isControl)
301
+ control++;
302
+ else
303
+ heavy++;
304
+ if (isDeployment)
305
+ deployment++;
306
+ const controller = new AbortController();
307
+ const work = Promise.resolve().then(async () => {
308
+ try {
309
+ controller.signal.throwIfAborted();
310
+ const scopedOptions = { ...apiOptions, fetchImpl: boundedMcpFetch(apiOptions.fetchImpl ?? fetch, controller.signal) };
311
+ try {
312
+ await respond(toolResult(await tool.handler(args, scopedOptions, { id, signal: controller.signal, sources })));
313
+ }
314
+ catch (error) {
315
+ await respond(toolError(error instanceof Error ? error.message : 'Tool failed'));
316
+ }
317
+ }
318
+ catch (error) {
319
+ await options.write({ jsonrpc: '2.0', id, error: { code: -32603, message: redact(error instanceof Error ? error.message : 'Internal error') } });
320
+ }
321
+ });
322
+ active.set(key, { body, controller, work });
323
+ try {
324
+ await work;
325
+ }
326
+ finally {
327
+ if (active.get(key)?.work === work)
328
+ active.delete(key);
329
+ if (isControl)
330
+ control--;
331
+ else
332
+ heavy--;
333
+ if (isDeployment)
334
+ deployment--;
335
+ }
336
+ };
337
+ return Object.assign(dispatch, { close, async drain() { await Promise.allSettled(Array.from(active.values(), entry => entry.work)); } });
185
338
  }
186
339
  export async function mcpCommand(args) {
187
340
  if (hasFlag(args, '--help') || hasFlag(args, '-h')) {
@@ -194,75 +347,29 @@ export async function mcpCommand(args) {
194
347
  ]);
195
348
  return;
196
349
  }
197
- const apiOptions = buildApiOptions(args);
198
- const write = (message) => {
199
- process.stdout.write(JSON.stringify(message) + '\n');
200
- };
201
- const rl = readline.createInterface({ input: process.stdin, terminal: false });
202
- for await (const line of rl) {
203
- const trimmed = line.trim();
204
- if (!trimmed)
205
- continue;
206
- let request;
207
- try {
208
- request = JSON.parse(trimmed);
209
- }
210
- catch {
211
- write({ jsonrpc: '2.0', id: null, error: { code: -32700, message: 'Parse error' } });
212
- continue;
350
+ let dispatch;
351
+ const writer = createMcpWriter(process.stdout, error => { dispatch?.close(error); process.stdin.destroy(); });
352
+ dispatch = createMcpDispatcher(buildApiOptions(args), { write: writer.write, sourceSession: readFlagValue(args, '--source-session') });
353
+ try {
354
+ for await (const line of readMcpLines(process.stdin)) {
355
+ const trimmed = line.trim();
356
+ if (!trimmed)
357
+ continue;
358
+ // Admission and writer bounds own outstanding work; no unbounded pending set.
359
+ void dispatch(trimmed).catch(error => { dispatch?.close(error instanceof Error ? error : new Error('MCP transport failed')); process.stdin.destroy(); });
213
360
  }
214
- const { id, method, params } = request;
215
- // Notifications (no id) need no response.
216
- const respond = (result) => {
217
- if (id !== undefined && id !== null)
218
- write({ jsonrpc: '2.0', id, result });
219
- };
220
- const respondError = (code, message) => {
221
- if (id !== undefined && id !== null)
222
- write({ jsonrpc: '2.0', id, error: { code, message } });
223
- };
361
+ }
362
+ catch (error) {
363
+ dispatch.close(error instanceof Error ? error : new Error('MCP input failed'));
364
+ }
365
+ finally {
366
+ dispatch.close(new Error('MCP input ended; observation stopped, execution is not cancelled'));
367
+ await dispatch.drain();
224
368
  try {
225
- switch (method) {
226
- case 'initialize':
227
- respond({
228
- protocolVersion: PROTOCOL_VERSION,
229
- capabilities: { tools: {} },
230
- serverInfo: SERVER_INFO,
231
- });
232
- break;
233
- case 'notifications/initialized':
234
- case 'notifications/cancelled':
235
- break;
236
- case 'ping':
237
- respond({});
238
- break;
239
- case 'tools/list':
240
- respond({
241
- tools: TOOLS.map(({ name, description, inputSchema }) => ({ name, description, inputSchema })),
242
- });
243
- break;
244
- case 'tools/call': {
245
- const toolName = String(params?.name ?? '');
246
- const tool = TOOLS.find((t) => t.name === toolName);
247
- if (!tool) {
248
- respond(toolError(`Unknown tool: ${toolName}`));
249
- break;
250
- }
251
- const toolArgs = (params?.arguments ?? {});
252
- try {
253
- respond(toolResult(await tool.handler(toolArgs, apiOptions)));
254
- }
255
- catch (err) {
256
- respond(toolError(err instanceof Error ? err.message : String(err)));
257
- }
258
- break;
259
- }
260
- default:
261
- respondError(-32601, `Method not found: ${method}`);
262
- }
369
+ await writer.flush();
263
370
  }
264
- catch (err) {
265
- respondError(-32603, err instanceof Error ? err.message : String(err));
371
+ finally {
372
+ writer.dispose();
266
373
  }
267
374
  }
268
375
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/commands/projects.ts"],"names":[],"mappings":"AAgBA,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4FnE"}
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/commands/projects.ts"],"names":[],"mappings":"AAyBA,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAoLnE"}
@@ -1,27 +1,37 @@
1
- import { addProjectResource, createProject, getProject, listProjects, requireAuth, resolveApplication, } from '../utils/api.js';
1
+ import { addProjectResource, createProject, getProject, listProjects, removeProjectResource, requireAuth, resolveApplication, } from '../utils/api.js';
2
2
  import { hasFlag, readFlagValue, readJsonFlag, readLimitFlag, readPositionalArgs } from '../utils/args.js';
3
3
  import { buildApiOptions } from '../utils/context.js';
4
- import { usageError } from '../utils/errors.js';
5
- import { formatTable, printCommandHelp, printLine } from '../utils/output.js';
4
+ import { CliError, ExitCode, usageError } from '../utils/errors.js';
5
+ import { dim, formatTable, printCommandHelp, printLine } from '../utils/output.js';
6
6
  import { readProjectSelection, resolveProjectContext, writeProjectSelection } from '../utils/project-context.js';
7
+ import { isNotFound, resolveProject } from '../utils/project-lookup.js';
7
8
  const VALUE_FLAGS = ['--slug', '--description', '--limit', '--cursor'];
9
+ /** Names for a membership list; an id stays when its project cannot be read. */
10
+ async function projectNames(ids, apiOptions) {
11
+ return Promise.all(ids.map((id) => getProject(id, apiOptions).then((project) => project.name, () => id)));
12
+ }
8
13
  export async function projectsCommand(args) {
9
14
  const [subcommand, ...positionals] = readPositionalArgs(args, { valueFlags: VALUE_FLAGS });
10
15
  if (!subcommand || hasFlag(args, '--help') || hasFlag(args, '-h')) {
11
16
  printCommandHelp('projects', 'projects <subcommand> [options]', [
12
17
  'list List projects (--limit, --cursor)',
13
18
  'create <name> Create a project (--slug, --description)',
14
- 'use <id|slug> Select a project for apps created from this directory',
19
+ 'use <project> Select a project for apps created from this directory',
15
20
  'use --clear Clear the selection; new apps create their own project',
16
21
  'current Show the project selected for this directory',
17
- 'add <project> <app> Add an existing application by id or name',
22
+ 'add <project> <app> File an existing application in one more project',
23
+ 'remove <project> <app> Take an application out of a project; it keeps running',
24
+ 'move <project> <app> File it in <project> and take it out of every other project',
18
25
  '--cwd <path> Directory to select a project for (config root when present)',
19
26
  '--json Machine-readable output',
20
27
  '',
28
+ '<project> is a project id, slug or unique name; <app> an application id or name.',
21
29
  'Projects group long-lived container applications: web services, APIs, databases, and workers.',
22
30
  'Serverless functions are managed separately and cannot be added to projects.',
31
+ 'Archiving a project in the dashboard also archives all its applications.',
32
+ 'Removing or moving an application never archives a project; archive an emptied one in the dashboard.',
23
33
  'Selection is local to this directory, API, workspace, and signed-in identity.',
24
- 'apps create --project <id|slug> overrides the selection for one application.',
34
+ 'apps create --project <project> overrides the selection for one application.',
25
35
  'With no selection, apps create creates a project named after the application.',
26
36
  ], [
27
37
  'inquir projects create shop',
@@ -29,13 +39,17 @@ export async function projectsCommand(args) {
29
39
  'inquir apps create api --port 3000',
30
40
  'inquir apps create db --template postgres --project shop',
31
41
  'inquir projects add shop existing-app',
42
+ 'inquir projects move shop db',
43
+ 'inquir projects remove "Old shop" api',
32
44
  ]);
33
45
  if (!subcommand && !hasFlag(args, '--help') && !hasFlag(args, '-h')) {
34
46
  throw usageError('Missing projects subcommand', 'inquir projects list');
35
47
  }
36
48
  return;
37
49
  }
38
- const counts = { list: 0, create: 1, use: hasFlag(args, '--clear') ? 0 : 1, current: 0, add: 2 };
50
+ const counts = {
51
+ list: 0, create: 1, use: hasFlag(args, '--clear') ? 0 : 1, current: 0, add: 2, remove: 2, move: 2,
52
+ };
39
53
  if (!(subcommand in counts))
40
54
  throw usageError(`Unknown projects subcommand: ${subcommand}`, 'inquir projects --help');
41
55
  if (positionals.length !== counts[subcommand]) {
@@ -70,10 +84,92 @@ export async function projectsCommand(args) {
70
84
  return;
71
85
  }
72
86
  if (subcommand === 'add') {
73
- const project = await getProject(positionals[0], apiOptions);
87
+ const project = await resolveProject(positionals[0], apiOptions);
74
88
  const application = await resolveApplication(positionals[1], apiOptions);
75
89
  const resource = await addProjectResource(project.id, { kind: 'application', id: application.id }, apiOptions);
76
- printLine(json ? JSON.stringify({ projectId: project.id, resource }, null, 2) : `Added ${application.name} to ${project.name}.`);
90
+ if (json) {
91
+ printLine(JSON.stringify({ projectId: project.id, resource }, null, 2));
92
+ return;
93
+ }
94
+ printLine(`Added ${application.name} to ${project.name}.`);
95
+ // Membership is many-to-many: adding never takes it out of where it was.
96
+ const elsewhere = (application.projectIds ?? []).filter((id) => id !== project.id);
97
+ if (elsewhere.length > 0) {
98
+ printLine(dim(` it is still in ${(await projectNames(elsewhere, apiOptions)).join(', ')}`));
99
+ printLine(dim(` to keep it only here: inquir projects move ${project.slug} ${application.name}`));
100
+ }
101
+ return;
102
+ }
103
+ if (subcommand === 'remove') {
104
+ const project = await resolveProject(positionals[0], apiOptions);
105
+ const application = await resolveApplication(positionals[1], apiOptions);
106
+ const remaining = (application.projectIds ?? []).filter((id) => id !== project.id);
107
+ try {
108
+ await removeProjectResource(project.id, { kind: 'application', id: application.id }, apiOptions);
109
+ }
110
+ catch (error) {
111
+ if (!isNotFound(error))
112
+ throw error;
113
+ throw new CliError(`${application.name} is not in project ${project.name}`, {
114
+ code: 'NOT_A_PROJECT_MEMBER',
115
+ exitCode: ExitCode.ERROR,
116
+ fix: remaining.length > 0
117
+ ? `It is in: ${(await projectNames(remaining, apiOptions)).join(', ')}`
118
+ : 'It is in no project.',
119
+ });
120
+ }
121
+ if (json) {
122
+ printLine(JSON.stringify({
123
+ projectId: project.id,
124
+ removed: { kind: 'application', id: application.id },
125
+ remainingProjectIds: remaining,
126
+ }, null, 2));
127
+ return;
128
+ }
129
+ printLine(`Removed ${application.name} from ${project.name}. It keeps running.`);
130
+ if (remaining.length === 0)
131
+ printLine(dim(` it is in no project now; file it: inquir projects add <project> ${application.name}`));
132
+ return;
133
+ }
134
+ if (subcommand === 'move') {
135
+ const target = await resolveProject(positionals[0], apiOptions);
136
+ const application = await resolveApplication(positionals[1], apiOptions);
137
+ const previousIds = (application.projectIds ?? []).filter((id) => id !== target.id);
138
+ // File it in the target first: a failure part-way leaves it in both
139
+ // projects, never in none.
140
+ const resource = await addProjectResource(target.id, { kind: 'application', id: application.id }, apiOptions);
141
+ const left = [];
142
+ for (const id of previousIds) {
143
+ let previous;
144
+ try {
145
+ previous = await getProject(id, apiOptions);
146
+ await removeProjectResource(previous.id, { kind: 'application', id: application.id }, apiOptions);
147
+ }
148
+ catch (error) {
149
+ // Archived or unfiled meanwhile: already where a move would leave it.
150
+ if (isNotFound(error))
151
+ continue;
152
+ throw error;
153
+ }
154
+ const after = await getProject(previous.id, apiOptions);
155
+ left.push({ id: previous.id, name: previous.name, slug: previous.slug, empty: after.resourceCount === 0 });
156
+ }
157
+ if (json) {
158
+ printLine(JSON.stringify({ projectId: target.id, resource, removedFrom: left }, null, 2));
159
+ return;
160
+ }
161
+ printLine(left.length > 0
162
+ ? `Moved ${application.name} to ${target.name}.`
163
+ : `${application.name} is in ${target.name}; it was in no other project.`);
164
+ for (const project of left) {
165
+ printLine(dim(` removed from ${project.name}`));
166
+ // Archiving cascades to members, and the API does not record whether a
167
+ // project was created automatically with an application — so an empty
168
+ // one is reported, never archived here.
169
+ if (project.empty) {
170
+ printLine(dim(` ${project.name} is now empty; if it was only created for ${application.name}, archive it in the dashboard`));
171
+ }
172
+ }
77
173
  return;
78
174
  }
79
175
  const context = await resolveProjectContext(args, apiOptions);
@@ -84,7 +180,7 @@ export async function projectsCommand(args) {
84
180
  return;
85
181
  }
86
182
  // Resolve before persisting: unknown/archived projects must never erase a valid selection.
87
- const project = await getProject(positionals[0], context.apiOptions);
183
+ const project = await resolveProject(positionals[0], context.apiOptions);
88
184
  await writeProjectSelection(context, project.id);
89
185
  printLine(json ? JSON.stringify({ project, workspaceId: context.workspaceId }, null, 2) : `Now using project ${project.name} (${project.slug}) for applications created from this directory.`);
90
186
  return;
@@ -93,6 +189,6 @@ export async function projectsCommand(args) {
93
189
  const project = projectId ? await getProject(projectId, context.apiOptions) : null;
94
190
  printLine(json ? JSON.stringify({ project, workspaceId: context.workspaceId }, null, 2) : project
95
191
  ? `${project.name} (${project.slug}) — ${project.id}`
96
- : 'No project selected. New applications will create their own project. Select one: inquir projects use <id|slug>');
192
+ : 'No project selected. New applications will create their own project. Select one: inquir projects use <project>');
97
193
  }
98
194
  //# sourceMappingURL=projects.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/commands/projects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/commands/projects.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env node
2
+ import { adminCommand } from './commands/admin.js';
2
3
  import { appsCommand } from './commands/apps.js';
3
4
  import { codegenCommand } from './commands/codegen.js';
4
5
  import { configCommand } from './commands/config.js';
@@ -77,6 +78,7 @@ const COMMANDS = {
77
78
  doctor: doctorCommand,
78
79
  config: configCommand,
79
80
  upgrade: upgradeCommand,
81
+ admin: adminCommand,
80
82
  help: async (args) => {
81
83
  const [name] = readPositionalArgs(args);
82
84
  if (name && COMMANDS[name] && name !== 'help') {
@@ -125,7 +127,7 @@ function printHelp() {
125
127
  printLine(bold('Container services (apps)'));
126
128
  printLine(' apps Long-lived containers: any image, HTTP or raw TCP ports');
127
129
  printLine(' list | create | deploy | status | logs | promote | rollback | stop | exec');
128
- printLine(' projects Group applications: list | create | use | current | add');
130
+ printLine(' projects Group applications: list | create | use | current | add | remove | move');
129
131
  printLine('');
130
132
  printLine(bold('Diagnostics & config'));
131
133
  printLine(' doctor Diagnose environment, credentials, and connectivity');
@@ -134,6 +136,12 @@ function printHelp() {
134
136
  printLine(' mcp Run an MCP server over stdio for coding agents');
135
137
  printLine(' help Show help for a command (inquir help <command>)');
136
138
  printLine('');
139
+ printLine(bold('Platform operators'));
140
+ printLine(' admin Control-plane cluster: admin cluster status | hold | release | move | host register | grant | revoke;');
141
+ printLine(' replicas: admin allocations relocate <allocationId> | relocation <operationId>');
142
+ printLine(' tenants: admin tenants migrate-fabric <tenantId>|--batch | migrations | migration <id>; admin containerd-tenants');
143
+ printLine(' (needs INQUIR_ADMIN_TOKEN)');
144
+ printLine('');
137
145
  printLine(bold('Global flags'));
138
146
  printLine(' --json Machine-readable output (implies no color)');
139
147
  printLine(' --debug Verbose diagnostics and stack traces');