@inquir/compute-cli 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/README.md +240 -0
  2. package/dist/commands/codegen.d.ts +2 -0
  3. package/dist/commands/codegen.d.ts.map +1 -0
  4. package/dist/commands/codegen.js +36 -0
  5. package/dist/commands/codegen.js.map +1 -0
  6. package/dist/commands/debug.d.ts +2 -0
  7. package/dist/commands/debug.d.ts.map +1 -0
  8. package/dist/commands/debug.js +15 -0
  9. package/dist/commands/debug.js.map +1 -0
  10. package/dist/commands/deploy.d.ts +2 -0
  11. package/dist/commands/deploy.d.ts.map +1 -0
  12. package/dist/commands/deploy.js +127 -0
  13. package/dist/commands/deploy.js.map +1 -0
  14. package/dist/commands/deploys.d.ts +2 -0
  15. package/dist/commands/deploys.d.ts.map +1 -0
  16. package/dist/commands/deploys.js +40 -0
  17. package/dist/commands/deploys.js.map +1 -0
  18. package/dist/commands/init.d.ts +2 -0
  19. package/dist/commands/init.d.ts.map +1 -0
  20. package/dist/commands/init.js +157 -0
  21. package/dist/commands/init.js.map +1 -0
  22. package/dist/commands/invoke.d.ts +2 -0
  23. package/dist/commands/invoke.d.ts.map +1 -0
  24. package/dist/commands/invoke.js +33 -0
  25. package/dist/commands/invoke.js.map +1 -0
  26. package/dist/commands/list.d.ts +2 -0
  27. package/dist/commands/list.d.ts.map +1 -0
  28. package/dist/commands/list.js +37 -0
  29. package/dist/commands/list.js.map +1 -0
  30. package/dist/commands/login.d.ts +2 -0
  31. package/dist/commands/login.d.ts.map +1 -0
  32. package/dist/commands/login.js +163 -0
  33. package/dist/commands/login.js.map +1 -0
  34. package/dist/commands/logout.d.ts +2 -0
  35. package/dist/commands/logout.d.ts.map +1 -0
  36. package/dist/commands/logout.js +19 -0
  37. package/dist/commands/logout.js.map +1 -0
  38. package/dist/commands/logs.d.ts +2 -0
  39. package/dist/commands/logs.d.ts.map +1 -0
  40. package/dist/commands/logs.js +47 -0
  41. package/dist/commands/logs.js.map +1 -0
  42. package/dist/commands/rollback.d.ts +2 -0
  43. package/dist/commands/rollback.d.ts.map +1 -0
  44. package/dist/commands/rollback.js +55 -0
  45. package/dist/commands/rollback.js.map +1 -0
  46. package/dist/commands/run.d.ts +2 -0
  47. package/dist/commands/run.d.ts.map +1 -0
  48. package/dist/commands/run.js +62 -0
  49. package/dist/commands/run.js.map +1 -0
  50. package/dist/commands/status.d.ts +2 -0
  51. package/dist/commands/status.d.ts.map +1 -0
  52. package/dist/commands/status.js +55 -0
  53. package/dist/commands/status.js.map +1 -0
  54. package/dist/commands/sync-status.d.ts +2 -0
  55. package/dist/commands/sync-status.d.ts.map +1 -0
  56. package/dist/commands/sync-status.js +56 -0
  57. package/dist/commands/sync-status.js.map +1 -0
  58. package/dist/commands/use.d.ts +2 -0
  59. package/dist/commands/use.d.ts.map +1 -0
  60. package/dist/commands/use.js +30 -0
  61. package/dist/commands/use.js.map +1 -0
  62. package/dist/commands/whoami.d.ts +2 -0
  63. package/dist/commands/whoami.d.ts.map +1 -0
  64. package/dist/commands/whoami.js +36 -0
  65. package/dist/commands/whoami.js.map +1 -0
  66. package/dist/commands/workspaces.d.ts +2 -0
  67. package/dist/commands/workspaces.d.ts.map +1 -0
  68. package/dist/commands/workspaces.js +37 -0
  69. package/dist/commands/workspaces.js.map +1 -0
  70. package/dist/index.d.ts +3 -0
  71. package/dist/index.d.ts.map +1 -0
  72. package/dist/index.js +138 -0
  73. package/dist/index.js.map +1 -0
  74. package/dist/sdk.d.ts +2 -0
  75. package/dist/sdk.d.ts.map +1 -0
  76. package/dist/sdk.js +2 -0
  77. package/dist/sdk.js.map +1 -0
  78. package/dist/utils/api.d.ts +31 -0
  79. package/dist/utils/api.d.ts.map +1 -0
  80. package/dist/utils/api.js +66 -0
  81. package/dist/utils/api.js.map +1 -0
  82. package/dist/utils/args.d.ts +19 -0
  83. package/dist/utils/args.d.ts.map +1 -0
  84. package/dist/utils/args.js +93 -0
  85. package/dist/utils/args.js.map +1 -0
  86. package/dist/utils/assets.d.ts +8 -0
  87. package/dist/utils/assets.d.ts.map +1 -0
  88. package/dist/utils/assets.js +19 -0
  89. package/dist/utils/assets.js.map +1 -0
  90. package/dist/utils/auth.d.ts +41 -0
  91. package/dist/utils/auth.d.ts.map +1 -0
  92. package/dist/utils/auth.js +97 -0
  93. package/dist/utils/auth.js.map +1 -0
  94. package/dist/utils/browser.d.ts +7 -0
  95. package/dist/utils/browser.d.ts.map +1 -0
  96. package/dist/utils/browser.js +34 -0
  97. package/dist/utils/browser.js.map +1 -0
  98. package/dist/utils/deploy-follow.d.ts +23 -0
  99. package/dist/utils/deploy-follow.d.ts.map +1 -0
  100. package/dist/utils/deploy-follow.js +57 -0
  101. package/dist/utils/deploy-follow.js.map +1 -0
  102. package/dist/utils/output.d.ts +19 -0
  103. package/dist/utils/output.d.ts.map +1 -0
  104. package/dist/utils/output.js +71 -0
  105. package/dist/utils/output.js.map +1 -0
  106. package/dist/utils/payload.d.ts +10 -0
  107. package/dist/utils/payload.d.ts.map +1 -0
  108. package/dist/utils/payload.js +42 -0
  109. package/dist/utils/payload.js.map +1 -0
  110. package/package.json +28 -0
@@ -0,0 +1,62 @@
1
+ import { discoverAssets, loadConfig, runLocally } from '../sdk.js';
2
+ import { findAssetOrExplain } from '../utils/assets.js';
3
+ import { hasFlag, readJsonFlag, readPositionalArgs, readWorkspaceDir } from '../utils/args.js';
4
+ import { parsePayloadArgs, readPayload } from '../utils/payload.js';
5
+ import { printCommandHelp, printError, printLine, printSuccess } from '../utils/output.js';
6
+ export async function runCommand(args, inspectBrk = false) {
7
+ if (hasFlag(args, '--help') || hasFlag(args, '-h')) {
8
+ printCommandHelp('run', 'run <asset> [options]', [
9
+ '--payload <json> JSON payload string',
10
+ '--payload-file <path> Path to JSON payload file',
11
+ '--config <path> Path to workspace or config file',
12
+ ]);
13
+ return;
14
+ }
15
+ const [assetName] = readPositionalArgs(args, {
16
+ valueFlags: ['--payload', '--payload-file'],
17
+ });
18
+ if (!assetName) {
19
+ throw new Error('Missing asset name');
20
+ }
21
+ const config = loadConfig(readWorkspaceDir(args));
22
+ const registry = await discoverAssets(config);
23
+ const assetResult = findAssetOrExplain(registry, assetName);
24
+ if ('error' in assetResult) {
25
+ throw new Error(assetResult.error);
26
+ }
27
+ const asset = assetResult.asset;
28
+ const payload = await readPayload(parsePayloadArgs(args));
29
+ const result = await runLocally(asset, payload, {
30
+ inspectBrk,
31
+ cwd: config.rootDir,
32
+ });
33
+ if (readJsonFlag(args)) {
34
+ printLine(JSON.stringify({
35
+ result: result.result,
36
+ error: result.error ?? null,
37
+ logs: result.logs,
38
+ durationMs: result.durationMs,
39
+ debuggerUrl: result.debuggerUrl ?? null,
40
+ }, null, 2));
41
+ if (result.error)
42
+ process.exitCode = 1;
43
+ return;
44
+ }
45
+ if (result.error) {
46
+ printError(result.error.message);
47
+ process.exitCode = 1;
48
+ }
49
+ else {
50
+ printSuccess(`Completed in ${result.durationMs}ms`);
51
+ }
52
+ if (result.debuggerUrl) {
53
+ printLine(`Debugger: ${result.debuggerUrl}`);
54
+ }
55
+ if (result.logs.length > 0) {
56
+ printLine(result.logs.join('\n'));
57
+ }
58
+ if (result.result !== undefined) {
59
+ printLine(JSON.stringify(result.result, null, 2));
60
+ }
61
+ }
62
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function statusCommand(args: string[]): Promise<void>;
2
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAqBA,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiCjE"}
@@ -0,0 +1,55 @@
1
+ import { isTerminalDeployStatus } from '../sdk.js';
2
+ import { hasFlag, readEnvironmentFlag, readJsonFlag, readPositionalArgs, readWorkspaceFlag } from '../utils/args.js';
3
+ import { getDeployStatus } from '../utils/api.js';
4
+ import { followDeploy } from '../utils/deploy-follow.js';
5
+ import { printCommandHelp, printLine } from '../utils/output.js';
6
+ function printStatus(deploy) {
7
+ printLine(`Deploy: ${deploy.deployId}`);
8
+ printLine(`Function: ${deploy.functionId}`);
9
+ printLine(`Version: v${deploy.version}${deploy.isActive ? ' (active)' : ''}`);
10
+ printLine(`Status: ${deploy.status}`);
11
+ printLine(`Environment: ${deploy.environment}`);
12
+ printLine(`Source: ${deploy.source}`);
13
+ if (deploy.rolledBackFrom)
14
+ printLine(`Rollback of: ${deploy.rolledBackFrom}`);
15
+ if (deploy.durationMs !== undefined)
16
+ printLine(`Duration: ${deploy.durationMs}ms`);
17
+ if (deploy.url)
18
+ printLine(`URL: ${deploy.url}`);
19
+ if (deploy.error)
20
+ printLine(`Error: ${deploy.error}`);
21
+ printLine(`Created: ${deploy.createdAt}`);
22
+ if (deploy.completedAt)
23
+ printLine(`Completed: ${deploy.completedAt}`);
24
+ }
25
+ export async function statusCommand(args) {
26
+ if (hasFlag(args, '--help') || hasFlag(args, '-h')) {
27
+ printCommandHelp('status', 'status <deployId> [options]', [
28
+ '--follow, -f Stream logs until the deploy finishes',
29
+ '--env <name> Named CLI environment from ~/.inquir/config.json',
30
+ '--json Machine-readable JSON output',
31
+ ]);
32
+ return;
33
+ }
34
+ const [deployId] = readPositionalArgs(args);
35
+ if (!deployId) {
36
+ throw new Error('Missing deploy id');
37
+ }
38
+ const json = readJsonFlag(args);
39
+ const ci = hasFlag(args, '--ci');
40
+ const apiOptions = { environment: readEnvironmentFlag(args), workspaceId: readWorkspaceFlag(args) };
41
+ const follow = hasFlag(args, '--follow') || hasFlag(args, '-f');
42
+ const deploy = follow
43
+ ? await followDeploy(deployId, apiOptions, { json, ci })
44
+ : await getDeployStatus(deployId, apiOptions);
45
+ if (json) {
46
+ printLine(JSON.stringify(deploy, null, 2));
47
+ }
48
+ else {
49
+ printStatus(deploy);
50
+ }
51
+ if (isTerminalDeployStatus(deploy.status) && deploy.status !== 'success') {
52
+ process.exitCode = 1;
53
+ }
54
+ }
55
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function syncStatusCommand(args: string[]): Promise<void>;
2
+ //# sourceMappingURL=sync-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-status.d.ts","sourceRoot":"","sources":["../../src/commands/sync-status.ts"],"names":[],"mappings":"AAKA,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyDrE"}
@@ -0,0 +1,56 @@
1
+ import { discoverAssets, loadConfig } from '../sdk.js';
2
+ import { hasFlag, readEnvironmentFlag, readJsonFlag, readWorkspaceDir, readWorkspaceFlag } from '../utils/args.js';
3
+ import { listRemoteFunctions } from '../utils/api.js';
4
+ import { dim, formatTable, printCommandHelp, printLine, printSuccess, yellow } from '../utils/output.js';
5
+ export async function syncStatusCommand(args) {
6
+ if (hasFlag(args, '--help') || hasFlag(args, '-h')) {
7
+ printCommandHelp('sync status', 'sync status [options]', [
8
+ '--env <name> Named environment',
9
+ '--config <path> Path to workspace or config file',
10
+ '--json Machine-readable JSON output',
11
+ ]);
12
+ return;
13
+ }
14
+ const config = loadConfig(readWorkspaceDir(args));
15
+ const [localRegistry, remoteFunctions] = await Promise.all([
16
+ discoverAssets(config),
17
+ listRemoteFunctions({ environment: readEnvironmentFlag(args), workspaceId: readWorkspaceFlag(args) }),
18
+ ]);
19
+ const rows = localRegistry.assets.map((asset) => {
20
+ const remote = remoteFunctions.find((fn) => fn.linkedLocalName === asset.name
21
+ || fn.name === asset.name);
22
+ let status = 'missing';
23
+ if (remote?.sourceHash) {
24
+ status = remote.sourceHash === asset.sourceHash ? 'in-sync' : 'drift';
25
+ }
26
+ else if (remote) {
27
+ status = 'linked';
28
+ }
29
+ return {
30
+ name: asset.name,
31
+ localHash: asset.sourceHash.slice(0, 12),
32
+ remoteHash: remote?.sourceHash ? String(remote.sourceHash).slice(0, 12) : '',
33
+ status,
34
+ };
35
+ });
36
+ if (readJsonFlag(args)) {
37
+ printLine(JSON.stringify({
38
+ assets: rows,
39
+ diagnostics: localRegistry.diagnostics,
40
+ }, null, 2));
41
+ return;
42
+ }
43
+ printLine(formatTable(rows, ['name', 'localHash', 'remoteHash', 'status']));
44
+ printLine('');
45
+ printLine(dim(`Local assets: ${localRegistry.assets.length}`));
46
+ printLine(dim(`Remote functions: ${remoteFunctions.length}`));
47
+ const driftCount = rows.filter((row) => row.status === 'drift').length;
48
+ const missingCount = rows.filter((row) => row.status === 'missing').length;
49
+ if (driftCount === 0 && missingCount === 0) {
50
+ printSuccess('All tracked assets are in sync.');
51
+ }
52
+ else {
53
+ printLine(yellow(`Drift: ${driftCount}, Missing: ${missingCount}`));
54
+ }
55
+ }
56
+ //# sourceMappingURL=sync-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-status.js","sourceRoot":"","sources":["../../src/commands/sync-status.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function useCommand(args: string[]): Promise<void>;
2
+ //# sourceMappingURL=use.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../../src/commands/use.ts"],"names":[],"mappings":"AAKA,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B9D"}
@@ -0,0 +1,30 @@
1
+ import { hasFlag, readEnvironmentFlag, readPositionalArgs } from '../utils/args.js';
2
+ import { listWorkspaces } from '../utils/api.js';
3
+ import { updateEnvironmentConfig } from '../utils/auth.js';
4
+ import { bold, printCommandHelp, printLine, printSuccess } from '../utils/output.js';
5
+ export async function useCommand(args) {
6
+ if (hasFlag(args, '--help') || hasFlag(args, '-h')) {
7
+ printCommandHelp('use', 'use <workspace> [options]', [
8
+ '<workspace> Workspace slug or id to make active',
9
+ '--env <name> Store the selection under a named environment',
10
+ ]);
11
+ return;
12
+ }
13
+ const [selector] = readPositionalArgs(args);
14
+ if (!selector) {
15
+ throw new Error('Missing workspace. Usage: inquir use <slug|id>');
16
+ }
17
+ const environment = readEnvironmentFlag(args);
18
+ const workspaces = await listWorkspaces({ environment });
19
+ const match = workspaces.find((ws) => ws.id === selector || ws.slug === selector);
20
+ if (!match) {
21
+ const available = workspaces.map((ws) => ws.slug || ws.id).join(', ');
22
+ throw new Error(`Workspace '${selector}' not found. Available: ${available || '(none)'}`);
23
+ }
24
+ await updateEnvironmentConfig(environment, (slice) => {
25
+ slice.workspaceId = match.id;
26
+ });
27
+ printSuccess(`Now using workspace ${bold(match.name)} (${match.slug || match.id}).`);
28
+ printLine('Deploys and commands will target this workspace.');
29
+ }
30
+ //# sourceMappingURL=use.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use.js","sourceRoot":"","sources":["../../src/commands/use.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAErF,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAc;IAC7C,IAAI,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QACnD,gBAAgB,CAAC,KAAK,EAAE,2BAA2B,EAAE;YACnD,oDAAoD;YACpD,8DAA8D;SAC/D,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,WAAW,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAClF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,cAAc,QAAQ,2BAA2B,SAAS,IAAI,QAAQ,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,MAAM,uBAAuB,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;QACnD,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,YAAY,CAAC,uBAAuB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;IACrF,SAAS,CAAC,kDAAkD,CAAC,CAAC;AAChE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function whoamiCommand(args: string[]): Promise<void>;
2
+ //# sourceMappingURL=whoami.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AAKA,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkCjE"}
@@ -0,0 +1,36 @@
1
+ import { hasFlag, readEnvironmentFlag, readJsonFlag, readWorkspaceFlag } from '../utils/args.js';
2
+ import { getMe } from '../utils/api.js';
3
+ import { resolveAuthConfig } from '../utils/auth.js';
4
+ import { bold, dim, printCommandHelp, printLine } from '../utils/output.js';
5
+ export async function whoamiCommand(args) {
6
+ if (hasFlag(args, '--help') || hasFlag(args, '-h')) {
7
+ printCommandHelp('whoami', 'whoami [options]', [
8
+ '--workspace <id|slug> Resolve identity in a specific workspace',
9
+ '--json Machine-readable output',
10
+ '--env <name> Use credentials from a named environment',
11
+ ]);
12
+ return;
13
+ }
14
+ const environment = readEnvironmentFlag(args);
15
+ const json = readJsonFlag(args);
16
+ const resolved = await resolveAuthConfig({ environment });
17
+ if (!resolved.token && !resolved.apiKey) {
18
+ throw new Error('Not logged in. Run `inquir login` first.');
19
+ }
20
+ const me = await getMe({ environment, workspaceId: readWorkspaceFlag(args) });
21
+ if (json) {
22
+ printLine(JSON.stringify(me, null, 2));
23
+ return;
24
+ }
25
+ if (me.user) {
26
+ const name = me.user.name ? `${me.user.name} ` : '';
27
+ printLine(`${bold('User:')} ${name}${dim(`<${me.user.email ?? me.user.id}>`)}`);
28
+ }
29
+ else {
30
+ printLine(`${bold('Credential:')} API key (workspace-scoped)`);
31
+ }
32
+ printLine(`${bold('Workspace:')} ${me.activeWorkspace.name} ${dim(`(${me.activeWorkspace.slug || me.activeWorkspace.id})`)}`);
33
+ printLine(`${bold('Role:')} ${me.activeWorkspace.role}`);
34
+ printLine(`${bold('API URL:')} ${resolved.apiUrl}`);
35
+ }
36
+ //# sourceMappingURL=whoami.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACjG,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE5E,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,iEAAiE;YACjE,gDAAgD;YAChD,iEAAiE;SAClE,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,MAAM,WAAW,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IAE1D,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE9E,IAAI,IAAI,EAAE,CAAC;QACT,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO;IACT,CAAC;IAED,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAClF,CAAC;SAAM,CAAC;QACN,SAAS,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAC;IACjE,CAAC;IACD,SAAS,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,eAAe,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,eAAe,CAAC,IAAI,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9H,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;IACzD,SAAS,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;AACtD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function workspacesCommand(args: string[]): Promise<void>;
2
+ //# sourceMappingURL=workspaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspaces.d.ts","sourceRoot":"","sources":["../../src/commands/workspaces.ts"],"names":[],"mappings":"AAKA,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmCrE"}
@@ -0,0 +1,37 @@
1
+ import { hasFlag, readEnvironmentFlag, readJsonFlag } from '../utils/args.js';
2
+ import { listWorkspaces } from '../utils/api.js';
3
+ import { resolveAuthConfig } from '../utils/auth.js';
4
+ import { formatTable, printCommandHelp, printLine } from '../utils/output.js';
5
+ export async function workspacesCommand(args) {
6
+ if (hasFlag(args, '--help') || hasFlag(args, '-h')) {
7
+ printCommandHelp('workspaces', 'workspaces [options]', [
8
+ '--json Machine-readable output',
9
+ '--env <name> Use credentials from a named environment',
10
+ ]);
11
+ return;
12
+ }
13
+ const environment = readEnvironmentFlag(args);
14
+ const json = readJsonFlag(args);
15
+ const resolved = await resolveAuthConfig({ environment });
16
+ const workspaces = await listWorkspaces({ environment });
17
+ const activeId = resolved.workspaceId;
18
+ if (json) {
19
+ printLine(JSON.stringify({ active: activeId, workspaces }, null, 2));
20
+ return;
21
+ }
22
+ if (workspaces.length === 0) {
23
+ printLine('You do not belong to any workspaces.');
24
+ return;
25
+ }
26
+ const rows = workspaces.map((ws) => ({
27
+ '': activeId && (ws.id === activeId || ws.slug === activeId) ? '*' : '',
28
+ name: ws.name,
29
+ slug: ws.slug || '-',
30
+ id: ws.id,
31
+ role: ws.role,
32
+ }));
33
+ printLine(formatTable(rows, ['', 'name', 'slug', 'id', 'role']));
34
+ printLine('');
35
+ printLine('Switch with: inquir use <slug|id>');
36
+ }
37
+ //# sourceMappingURL=workspaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../src/commands/workspaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE9E,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAc;IACpD,IAAI,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QACnD,gBAAgB,CAAC,YAAY,EAAE,sBAAsB,EAAE;YACrD,wCAAwC;YACxC,yDAAyD;SAC1D,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,MAAM,WAAW,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC;IAEtC,IAAI,IAAI,EAAE,CAAC;QACT,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACrE,OAAO;IACT,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,SAAS,CAAC,sCAAsC,CAAC,CAAC;QAClD,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACnC,EAAE,EAAE,QAAQ,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACvE,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,GAAG;QACpB,EAAE,EAAE,EAAE,CAAC,EAAE;QACT,IAAI,EAAE,EAAE,CAAC,IAAI;KACd,CAAC,CAAC,CAAC;IACJ,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACjE,SAAS,CAAC,EAAE,CAAC,CAAC;IACd,SAAS,CAAC,mCAAmC,CAAC,CAAC;AACjD,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,138 @@
1
+ #!/usr/bin/env node
2
+ import { codegenCommand } from './commands/codegen.js';
3
+ import { debugCommand } from './commands/debug.js';
4
+ import { deployCommand } from './commands/deploy.js';
5
+ import { deploysCommand } from './commands/deploys.js';
6
+ import { initCommand } from './commands/init.js';
7
+ import { invokeCommand } from './commands/invoke.js';
8
+ import { listCommand } from './commands/list.js';
9
+ import { loginCommand } from './commands/login.js';
10
+ import { logoutCommand } from './commands/logout.js';
11
+ import { logsCommand } from './commands/logs.js';
12
+ import { rollbackCommand } from './commands/rollback.js';
13
+ import { runCommand } from './commands/run.js';
14
+ import { statusCommand } from './commands/status.js';
15
+ import { syncStatusCommand } from './commands/sync-status.js';
16
+ import { useCommand } from './commands/use.js';
17
+ import { whoamiCommand } from './commands/whoami.js';
18
+ import { workspacesCommand } from './commands/workspaces.js';
19
+ import { findCommand, readCommandName } from './utils/args.js';
20
+ import { printError, printLine, printUsage } from './utils/output.js';
21
+ const VERSION = '0.1.0';
22
+ const COMMANDS = {
23
+ init: initCommand,
24
+ codegen: codegenCommand,
25
+ list: listCommand,
26
+ run: runCommand,
27
+ debug: debugCommand,
28
+ invoke: invokeCommand,
29
+ login: loginCommand,
30
+ logout: logoutCommand,
31
+ whoami: whoamiCommand,
32
+ workspaces: workspacesCommand,
33
+ use: useCommand,
34
+ deploy: deployCommand,
35
+ deploys: deploysCommand,
36
+ rollback: rollbackCommand,
37
+ status: statusCommand,
38
+ logs: logsCommand,
39
+ sync: async (args) => {
40
+ const subcommand = readCommandName(args);
41
+ if (subcommand !== 'status') {
42
+ throw new Error(`Unknown sync subcommand: ${subcommand ?? ''}`.trim());
43
+ }
44
+ await syncStatusCommand(args);
45
+ },
46
+ };
47
+ function printHelp() {
48
+ printLine('Inquir Compute CLI');
49
+ printLine('');
50
+ printUsage('Usage: inquir <command> [options]');
51
+ printLine('');
52
+ printLine('Commands:');
53
+ printLine(' init Initialize a workspace (--skip-install to skip auto-install)');
54
+ printLine(' codegen Generate client registry from workspace assets');
55
+ printLine(' list List discovered assets');
56
+ printLine(' run Run an asset locally');
57
+ printLine(' debug Run an asset locally with the inspector enabled');
58
+ printLine(' invoke Invoke a remote asset by name');
59
+ printLine(' login Authenticate the CLI (browser pairing or --token)');
60
+ printLine(' logout Remove stored credentials for the current environment');
61
+ printLine(' whoami Show the current user and active workspace');
62
+ printLine(' workspaces List workspaces you belong to');
63
+ printLine(' use Set the active workspace (by slug or id)');
64
+ printLine(' deploy Package and deploy a function asset (streams build logs)');
65
+ printLine(' deploys List deploy history for a function');
66
+ printLine(' rollback Roll back a function to a previous successful deploy');
67
+ printLine(' status Show a deploy\'s status (--follow to stream logs)');
68
+ printLine(' logs Show recent invocation logs for a remote asset');
69
+ printLine(' sync status Compare local assets against remote drift state');
70
+ printLine('');
71
+ printLine('Global flags:');
72
+ printLine(' --config Path to a config file or workspace directory');
73
+ printLine(' --json Machine-readable output when supported');
74
+ printLine(' --env Named environment from ~/.inquir/config.json');
75
+ printLine(' --workspace Target workspace (slug or id) for this command');
76
+ printLine('');
77
+ printLine(`Version: ${VERSION}`);
78
+ }
79
+ async function main() {
80
+ const [, , ...argv] = process.argv;
81
+ const resolvedCommand = findCommand(argv);
82
+ const command = resolvedCommand?.name;
83
+ if (!command || command === '--help' || command === '-h') {
84
+ printHelp();
85
+ return;
86
+ }
87
+ if (command === '--version' || command === '-v') {
88
+ printLine(VERSION);
89
+ return;
90
+ }
91
+ const handler = command ? COMMANDS[command] : undefined;
92
+ const args = resolvedCommand
93
+ ? argv.filter((_, index) => index !== resolvedCommand.index)
94
+ : [];
95
+ if (!handler) {
96
+ printError(`Unknown command: ${command ?? ''}`.trim());
97
+ printHelp();
98
+ process.exitCode = 1;
99
+ return;
100
+ }
101
+ await handler(args);
102
+ }
103
+ /** Classify an error as a network/timeout failure (CLI exit code 3). */
104
+ function isNetworkError(error) {
105
+ const NETWORK_CODES = new Set([
106
+ 'ECONNREFUSED',
107
+ 'ENOTFOUND',
108
+ 'ETIMEDOUT',
109
+ 'ECONNRESET',
110
+ 'EAI_AGAIN',
111
+ 'EPIPE',
112
+ 'ERR_SOCKET_CONNECTION_TIMEOUT',
113
+ ]);
114
+ const candidates = [error];
115
+ if (error && typeof error === 'object' && 'cause' in error) {
116
+ candidates.push(error.cause);
117
+ }
118
+ for (const c of candidates) {
119
+ const code = c && typeof c === 'object' && 'code' in c ? String(c.code) : '';
120
+ if (NETWORK_CODES.has(code))
121
+ return true;
122
+ }
123
+ const message = (error instanceof Error ? error.message : String(error)).toLowerCase();
124
+ return (message.includes('fetch failed') ||
125
+ message.includes('network') ||
126
+ message.includes('timed out') ||
127
+ message.includes('timeout'));
128
+ }
129
+ void main().catch((error) => {
130
+ const message = error instanceof Error ? error.message : String(error);
131
+ printError(message);
132
+ if ((process.env['INQUIR_DEBUG'] === '1') && error instanceof Error && error.stack) {
133
+ printError(error.stack);
134
+ }
135
+ // Exit code discipline: 0 = success, 1 = error, 3 = network/timeout.
136
+ process.exitCode = isNetworkError(error) ? 3 : 1;
137
+ });
138
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/sdk.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export * from '@inquir/compute';
2
+ //# sourceMappingURL=sdk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
package/dist/sdk.js ADDED
@@ -0,0 +1,2 @@
1
+ export * from '@inquir/compute';
2
+ //# sourceMappingURL=sdk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk.js","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { 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
+ export interface ApiRequestOptions {
3
+ apiUrl?: string;
4
+ apiKey?: string;
5
+ /** Explicit `--workspace` override (tenant id or slug). */
6
+ workspaceId?: string;
7
+ environment?: string;
8
+ }
9
+ export declare function createApiClient(options?: ApiRequestOptions): Promise<TransportClient>;
10
+ export declare function listRemoteFunctions(options?: ApiRequestOptions): Promise<RemoteFunctionRecord[]>;
11
+ export declare function resolveRemoteFunction(identifier: string, options?: ApiRequestOptions): Promise<RemoteFunctionRecord>;
12
+ export declare function invokeRemote(identifier: string, payload: unknown, options?: ApiRequestOptions): Promise<unknown>;
13
+ export declare function createRemoteFunction(input: CreateRemoteFunctionInput, options?: ApiRequestOptions): Promise<RemoteFunctionRecord>;
14
+ export declare function updateRemoteFunction(functionId: string, input: UpdateRemoteFunctionInput, options?: ApiRequestOptions): Promise<RemoteFunctionRecord>;
15
+ export declare function deployRemoteFunction(functionId: string, deployOptions?: DeployRemoteFunctionOptions, options?: ApiRequestOptions): Promise<Record<string, unknown>>;
16
+ export declare function listRemoteInvocations(functionId: string, listOptions?: {
17
+ limit?: number;
18
+ offset?: number;
19
+ }, options?: ApiRequestOptions): Promise<import("../sdk.js").RemoteInvocationsListResponse>;
20
+ export declare function queueDeploy(input: QueueDeployInput, options?: ApiRequestOptions): Promise<QueuedDeployResponse>;
21
+ export declare function getDeployStatus(deployId: string, options?: ApiRequestOptions): Promise<DeployRecord>;
22
+ export declare function listFunctionDeploys(functionId: string, listOptions?: {
23
+ limit?: number;
24
+ offset?: number;
25
+ }, options?: ApiRequestOptions): Promise<DeployListResponse>;
26
+ export declare function rollbackDeploy(functionId: string, deployId: string, rollbackOptions?: RollbackDeployOptions, options?: ApiRequestOptions): Promise<QueuedDeployResponse>;
27
+ export declare function streamDeployLogs(deployId: string, options?: ApiRequestOptions, signal?: AbortSignal): AsyncGenerator<DeployLogEvent, void, unknown>;
28
+ export declare function getMe(options?: ApiRequestOptions): Promise<MeResponse>;
29
+ export declare function listWorkspaces(options?: ApiRequestOptions): Promise<WorkspaceSummary[]>;
30
+ export type { QueueDeployInput, QueuedDeployResponse, DeployRecord, DeployListResponse, DeployLogEvent, RollbackDeployOptions, MeResponse, WorkspaceSummary, };
31
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":"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"}