@inquir/compute-cli 0.2.2 → 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.
Files changed (119) hide show
  1. package/README.md +228 -21
  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 +118 -0
  13. package/dist/commands/apps-describe.js.map +1 -0
  14. package/dist/commands/apps-observability.d.ts +9 -0
  15. package/dist/commands/apps-observability.d.ts.map +1 -0
  16. package/dist/commands/apps-observability.js +281 -0
  17. package/dist/commands/apps-observability.js.map +1 -0
  18. package/dist/commands/apps-promote.d.ts +31 -0
  19. package/dist/commands/apps-promote.d.ts.map +1 -0
  20. package/dist/commands/apps-promote.js +115 -0
  21. package/dist/commands/apps-promote.js.map +1 -0
  22. package/dist/commands/apps-resources.d.ts +6 -0
  23. package/dist/commands/apps-resources.d.ts.map +1 -0
  24. package/dist/commands/apps-resources.js +107 -0
  25. package/dist/commands/apps-resources.js.map +1 -0
  26. package/dist/commands/apps.d.ts +65 -5
  27. package/dist/commands/apps.d.ts.map +1 -1
  28. package/dist/commands/apps.js +1293 -89
  29. package/dist/commands/apps.js.map +1 -1
  30. package/dist/commands/config.d.ts.map +1 -1
  31. package/dist/commands/config.js +7 -3
  32. package/dist/commands/config.js.map +1 -1
  33. package/dist/commands/delete.d.ts.map +1 -1
  34. package/dist/commands/delete.js +10 -2
  35. package/dist/commands/delete.js.map +1 -1
  36. package/dist/commands/deploy.d.ts +38 -0
  37. package/dist/commands/deploy.d.ts.map +1 -1
  38. package/dist/commands/deploy.js +165 -12
  39. package/dist/commands/deploy.js.map +1 -1
  40. package/dist/commands/doctor.js +2 -2
  41. package/dist/commands/init.d.ts.map +1 -1
  42. package/dist/commands/init.js +3 -0
  43. package/dist/commands/init.js.map +1 -1
  44. package/dist/commands/login.d.ts.map +1 -1
  45. package/dist/commands/login.js +96 -20
  46. package/dist/commands/login.js.map +1 -1
  47. package/dist/commands/logout.d.ts.map +1 -1
  48. package/dist/commands/logout.js +37 -5
  49. package/dist/commands/logout.js.map +1 -1
  50. package/dist/commands/mcp.d.ts +13 -0
  51. package/dist/commands/mcp.d.ts.map +1 -1
  52. package/dist/commands/mcp.js +184 -77
  53. package/dist/commands/mcp.js.map +1 -1
  54. package/dist/commands/projects.d.ts +2 -0
  55. package/dist/commands/projects.d.ts.map +1 -0
  56. package/dist/commands/projects.js +194 -0
  57. package/dist/commands/projects.js.map +1 -0
  58. package/dist/index.js +11 -0
  59. package/dist/index.js.map +1 -1
  60. package/dist/lib/finite-source-command-client.d.ts +3 -0
  61. package/dist/lib/finite-source-command-client.d.ts.map +1 -0
  62. package/dist/lib/finite-source-command-client.js +3 -0
  63. package/dist/lib/finite-source-command-client.js.map +1 -0
  64. package/dist/lib/mcp-io.d.ts +23 -0
  65. package/dist/lib/mcp-io.d.ts.map +1 -0
  66. package/dist/lib/mcp-io.js +185 -0
  67. package/dist/lib/mcp-io.js.map +1 -0
  68. package/dist/lib/mcp-source-commands.d.ts +17 -0
  69. package/dist/lib/mcp-source-commands.d.ts.map +1 -0
  70. package/dist/lib/mcp-source-commands.js +345 -0
  71. package/dist/lib/mcp-source-commands.js.map +1 -0
  72. package/dist/utils/api.d.ts +58 -8
  73. package/dist/utils/api.d.ts.map +1 -1
  74. package/dist/utils/api.js +86 -7
  75. package/dist/utils/api.js.map +1 -1
  76. package/dist/utils/apps-presentation.d.ts +11 -1
  77. package/dist/utils/apps-presentation.d.ts.map +1 -1
  78. package/dist/utils/apps-presentation.js +37 -0
  79. package/dist/utils/apps-presentation.js.map +1 -1
  80. package/dist/utils/args.d.ts.map +1 -1
  81. package/dist/utils/args.js +8 -1
  82. package/dist/utils/args.js.map +1 -1
  83. package/dist/utils/assets.d.ts +48 -1
  84. package/dist/utils/assets.d.ts.map +1 -1
  85. package/dist/utils/assets.js +185 -7
  86. package/dist/utils/assets.js.map +1 -1
  87. package/dist/utils/auth.d.ts +29 -2
  88. package/dist/utils/auth.d.ts.map +1 -1
  89. package/dist/utils/auth.js +164 -27
  90. package/dist/utils/auth.js.map +1 -1
  91. package/dist/utils/browser.d.ts +12 -0
  92. package/dist/utils/browser.d.ts.map +1 -1
  93. package/dist/utils/browser.js +37 -16
  94. package/dist/utils/browser.js.map +1 -1
  95. package/dist/utils/context.d.ts.map +1 -1
  96. package/dist/utils/context.js +2 -0
  97. package/dist/utils/context.js.map +1 -1
  98. package/dist/utils/deploy-follow.d.ts +4 -3
  99. package/dist/utils/deploy-follow.d.ts.map +1 -1
  100. package/dist/utils/deploy-follow.js +76 -17
  101. package/dist/utils/deploy-follow.js.map +1 -1
  102. package/dist/utils/detect.d.ts +49 -1
  103. package/dist/utils/detect.d.ts.map +1 -1
  104. package/dist/utils/detect.js +153 -12
  105. package/dist/utils/detect.js.map +1 -1
  106. package/dist/utils/ensure-auth.d.ts.map +1 -1
  107. package/dist/utils/ensure-auth.js +6 -2
  108. package/dist/utils/ensure-auth.js.map +1 -1
  109. package/dist/utils/package-metadata.js +1 -1
  110. package/dist/utils/project-context.d.ts +17 -0
  111. package/dist/utils/project-context.d.ts.map +1 -0
  112. package/dist/utils/project-context.js +96 -0
  113. package/dist/utils/project-context.js.map +1 -0
  114. package/dist/utils/project-lookup.d.ts +10 -0
  115. package/dist/utils/project-lookup.d.ts.map +1 -0
  116. package/dist/utils/project-lookup.js +52 -0
  117. package/dist/utils/project-lookup.js.map +1 -0
  118. package/package.json +7 -4
  119. package/skill/SKILL.md +15 -2
@@ -1,10 +1,11 @@
1
1
  import { readEnvironmentFlag, hasFlag } from '../utils/args.js';
2
- import { updateEnvironmentConfig } from '../utils/auth.js';
3
- import { printCommandHelp, printSuccess } from '../utils/output.js';
2
+ import { configReferencesToken, ownedCliSession, updateEnvironmentConfig } from '../utils/auth.js';
3
+ import { logoutCliAuth } from '../sdk.js';
4
+ import { printCommandHelp, printSuccess, printWarning } from '../utils/output.js';
4
5
  export async function logoutCommand(args) {
5
6
  if (hasFlag(args, '--help') || hasFlag(args, '-h')) {
6
7
  printCommandHelp('logout', 'logout [options]', [
7
- '--env <name> Clear credentials for a named environment',
8
+ '--env <name> Log out a named environment and revoke its CLI session',
8
9
  ], [
9
10
  'inquir logout',
10
11
  'inquir logout --env staging',
@@ -12,11 +13,42 @@ export async function logoutCommand(args) {
12
13
  return;
13
14
  }
14
15
  const environment = readEnvironmentFlag(args);
15
- await updateEnvironmentConfig(environment, (slice) => {
16
+ const outcome = await updateEnvironmentConfig(environment, async (slice, config) => {
17
+ const session = ownedCliSession(slice);
18
+ let result = slice.token ? 'unmanaged' : 'none';
19
+ if (slice.token && session) {
20
+ if (configReferencesToken(config, slice.token, slice))
21
+ result = 'shared';
22
+ else {
23
+ try {
24
+ // Never resolve ambient API/token/workspace settings for revocation.
25
+ await logoutCliAuth(session.apiUrl, slice.token);
26
+ result = 'revoked';
27
+ }
28
+ catch {
29
+ result = 'failed';
30
+ }
31
+ }
32
+ }
16
33
  delete slice.token;
34
+ delete slice.tokenSession;
35
+ delete slice.apiKey;
17
36
  delete slice.user;
18
37
  delete slice.workspaceId;
38
+ slice.loggedOut = true;
39
+ return result;
19
40
  });
20
- printSuccess('Logged out. Stored token and active workspace were cleared.');
41
+ printSuccess(outcome === 'revoked'
42
+ ? 'Logged out. The CLI session was revoked and local credentials were cleared.'
43
+ : 'Logged out locally. Stored credentials and active workspace were cleared.');
44
+ if (outcome === 'failed')
45
+ printWarning('Server revocation could not be confirmed. The CLI session may still be active; revoke it in Settings → Access tokens.');
46
+ if (outcome === 'shared')
47
+ printWarning('The token is also used by another profile or environment variable, so it was not revoked.');
48
+ if (outcome === 'unmanaged')
49
+ printWarning('Imported or older tokens are not automatically revoked. Revoke this token in Settings → Access tokens if it is no longer needed.');
50
+ if ([process.env.INQUIR_TOKEN, process.env.INQUIR_API_KEY, process.env.LAMBDA_API_KEY].some((value) => value?.trim())) {
51
+ printWarning('Credentials from environment variables remain active. Unset them to finish logging out of this shell.');
52
+ }
21
53
  }
22
54
  //# sourceMappingURL=logout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logout.js","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEpE,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAc;IAChD,IAAI,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QACnD,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,EAAE;YAC7C,0DAA0D;SAC3D,EAAE;YACD,eAAe;YACf,6BAA6B;SAC9B,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,MAAM,WAAW,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,uBAAuB,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;QACnD,OAAO,KAAK,CAAC,KAAK,CAAC;QACnB,OAAO,KAAK,CAAC,IAAI,CAAC;QAClB,OAAO,KAAK,CAAC,WAAW,CAAC;IAC3B,CAAC,CAAC,CAAC;IACH,YAAY,CAAC,6DAA6D,CAAC,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"logout.js","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AACnG,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElF,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAc;IAChD,IAAI,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QACnD,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,EAAE;YAC7C,uEAAuE;SACxE,EAAE;YACD,eAAe;YACf,6BAA6B;SAC9B,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,MAAM,WAAW,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,MAAM,uBAAuB,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACjF,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,MAAM,GAA2D,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;QACxG,IAAI,KAAK,CAAC,KAAK,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC;gBAAE,MAAM,GAAG,QAAQ,CAAC;iBACpE,CAAC;gBACJ,IAAI,CAAC;oBACH,qEAAqE;oBACrE,MAAM,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;oBACjD,MAAM,GAAG,SAAS,CAAC;gBACrB,CAAC;gBAAC,MAAM,CAAC;oBAAC,MAAM,GAAG,QAAQ,CAAC;gBAAC,CAAC;YAChC,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC,KAAK,CAAC;QACnB,OAAO,KAAK,CAAC,YAAY,CAAC;QAC1B,OAAO,KAAK,CAAC,MAAM,CAAC;QACpB,OAAO,KAAK,CAAC,IAAI,CAAC;QAClB,OAAO,KAAK,CAAC,WAAW,CAAC;QACzB,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;QACvB,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;IACH,YAAY,CAAC,OAAO,KAAK,SAAS;QAChC,CAAC,CAAC,6EAA6E;QAC/E,CAAC,CAAC,2EAA2E,CAAC,CAAC;IACjF,IAAI,OAAO,KAAK,QAAQ;QAAE,YAAY,CAAC,uHAAuH,CAAC,CAAC;IAChK,IAAI,OAAO,KAAK,QAAQ;QAAE,YAAY,CAAC,2FAA2F,CAAC,CAAC;IACpI,IAAI,OAAO,KAAK,WAAW;QAAE,YAAY,CAAC,kIAAkI,CAAC,CAAC;IAC9K,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACtH,YAAY,CAAC,uGAAuG,CAAC,CAAC;IACxH,CAAC;AACH,CAAC"}
@@ -11,5 +11,18 @@
11
11
  *
12
12
  * Register (Claude Code): claude mcp add inquir -- inquir mcp
13
13
  */
14
+ import { type ApiRequestOptions } from '../utils/api.js';
15
+ import { type McpSourceCommands } from '../lib/mcp-source-commands.js';
16
+ /** Requests run independently so cancellation notifications and control tools
17
+ * can be consumed while a GET observation or deployment is waiting.
18
+ */
19
+ export declare function createMcpDispatcher(apiOptions: ApiRequestOptions, options: {
20
+ write(message: Record<string, unknown>): void | Promise<void>;
21
+ sources?: McpSourceCommands;
22
+ sourceSession?: string;
23
+ }): ((line: string) => Promise<void>) & {
24
+ close: (error: Error) => void;
25
+ drain(): Promise<void>;
26
+ };
14
27
  export declare function mcpCommand(args: string[]): Promise<void>;
15
28
  //# sourceMappingURL=mcp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAmNH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkF9D"}
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,EAWL,KAAK,iBAAiB,EAEvB,MAAM,iBAAiB,CAAC;AAOzB,OAAO,EAA2B,KAAK,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AA0NhG;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,iBAAiB,EAAE,OAAO,EAAE;IAC1E,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACpH,WAM+B,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;mBAD9B,KAAK;;EA4D5B;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B9D"}
@@ -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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"}
@@ -0,0 +1,2 @@
1
+ export declare function projectsCommand(args: string[]): Promise<void>;
2
+ //# sourceMappingURL=projects.d.ts.map
@@ -0,0 +1 @@
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"}