@inquir/compute-cli 0.2.0 → 0.2.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.
- package/README.md +15 -0
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +19 -2
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/upgrade.d.ts +6 -0
- package/dist/commands/upgrade.d.ts.map +1 -0
- package/dist/commands/upgrade.js +72 -0
- package/dist/commands/upgrade.js.map +1 -0
- package/dist/index.js +15 -2
- package/dist/index.js.map +1 -1
- package/dist/utils/args.d.ts.map +1 -1
- package/dist/utils/args.js +1 -0
- package/dist/utils/args.js.map +1 -1
- package/dist/utils/auth.d.ts +2 -0
- package/dist/utils/auth.d.ts.map +1 -1
- package/dist/utils/auth.js.map +1 -1
- package/dist/utils/auto-update.d.ts +84 -0
- package/dist/utils/auto-update.d.ts.map +1 -0
- package/dist/utils/auto-update.js +232 -0
- package/dist/utils/auto-update.js.map +1 -0
- package/package.json +1 -1
- package/skill/SKILL.md +60 -60
package/README.md
CHANGED
|
@@ -193,6 +193,21 @@ TCP port is reachable by anyone who can reach the host: the platform
|
|
|
193
193
|
terminates no TLS and checks no credentials on raw TCP, so the service must
|
|
194
194
|
authenticate its own clients.
|
|
195
195
|
|
|
196
|
+
**Staying up to date**
|
|
197
|
+
|
|
198
|
+
The CLI keeps itself in step with the platform. On start it checks — at most
|
|
199
|
+
every 12 hours, with a 2.5 s network timeout, never failing your command — the
|
|
200
|
+
npm registry for the latest `@inquir/compute-cli` and the API for the minimum
|
|
201
|
+
version it still supports (`GET /v1/cli/version`). When a newer version exists
|
|
202
|
+
and the CLI is a global npm install running in an interactive terminal, it
|
|
203
|
+
updates itself and re-runs your command; in CI, under `--json`, without a TTY,
|
|
204
|
+
via `npx` or from a source checkout it only prints a one-line notice. If the
|
|
205
|
+
API's *minimum* is not met, the command stops with the exact fix instead of
|
|
206
|
+
failing later on a changed wire contract.
|
|
207
|
+
|
|
208
|
+
- `inquir upgrade` - update now (`--check` only reports).
|
|
209
|
+
- Opt out: `inquir config set autoUpdate false`, `INQUIR_NO_AUTO_UPDATE=1`, or `--no-update` on one command.
|
|
210
|
+
|
|
196
211
|
**Diagnostics & config**
|
|
197
212
|
|
|
198
213
|
- `inquir doctor` - diagnose environment, credentials, and API connectivity (`--json` for a report).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAoBA,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA6GjE"}
|
package/dist/commands/config.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { hasFlag, readEnvironmentFlag, readJsonFlag, readPositionalArgs } from '../utils/args.js';
|
|
2
|
-
import { getConfigFilePath, resolveAuthConfig, updateEnvironmentConfig } from '../utils/auth.js';
|
|
2
|
+
import { getConfigFilePath, loadAuthConfig, resolveAuthConfig, saveAuthConfig, updateEnvironmentConfig, } from '../utils/auth.js';
|
|
3
3
|
import { buildApiOptions } from '../utils/context.js';
|
|
4
4
|
import { usageError } from '../utils/errors.js';
|
|
5
5
|
import { bold, dim, printCommandHelp, printLine, printSuccess } from '../utils/output.js';
|
|
6
6
|
import { maskToken } from '../utils/redact.js';
|
|
7
|
-
const SETTABLE_KEYS = ['apiUrl', 'workspace', 'token', 'apiKey'];
|
|
7
|
+
const SETTABLE_KEYS = ['apiUrl', 'workspace', 'token', 'apiKey', 'autoUpdate'];
|
|
8
8
|
function isSettableKey(key) {
|
|
9
9
|
return SETTABLE_KEYS.includes(key);
|
|
10
10
|
}
|
|
@@ -42,6 +42,17 @@ export async function configCommand(args) {
|
|
|
42
42
|
if (!isSettableKey(key)) {
|
|
43
43
|
throw usageError(`Unknown config key: ${key}. Settable: ${SETTABLE_KEYS.join(', ')}`);
|
|
44
44
|
}
|
|
45
|
+
if (key === 'autoUpdate') {
|
|
46
|
+
// Global (not per environment): whether the CLI may replace itself on start.
|
|
47
|
+
const on = /^(true|1|on|yes)$/i.test(value);
|
|
48
|
+
const off = /^(false|0|off|no)$/i.test(value);
|
|
49
|
+
if (!on && !off)
|
|
50
|
+
throw usageError('autoUpdate must be true or false', 'inquir config set autoUpdate false');
|
|
51
|
+
const current = await loadAuthConfig();
|
|
52
|
+
await saveAuthConfig({ ...current, autoUpdate: on });
|
|
53
|
+
printSuccess(`Auto-update ${on ? 'enabled' : 'disabled'}.`);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
45
56
|
await updateEnvironmentConfig(environment, (slice) => {
|
|
46
57
|
if (key === 'workspace')
|
|
47
58
|
slice.workspaceId = value;
|
|
@@ -56,6 +67,12 @@ export async function configCommand(args) {
|
|
|
56
67
|
if (!key || !isSettableKey(key)) {
|
|
57
68
|
throw usageError(`Usage: inquir config get <${SETTABLE_KEYS.join('|')}>`);
|
|
58
69
|
}
|
|
70
|
+
if (key === 'autoUpdate') {
|
|
71
|
+
const stored = await loadAuthConfig();
|
|
72
|
+
const enabled = stored.autoUpdate !== false;
|
|
73
|
+
printLine(json ? JSON.stringify({ autoUpdate: enabled }) : String(enabled));
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
59
76
|
const resolved = await resolveAuthConfig(buildApiOptions(args));
|
|
60
77
|
const value = key === 'apiUrl' ? resolved.apiUrl
|
|
61
78
|
: key === 'workspace' ? resolved.workspaceId
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAClG,OAAO,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"AAaA;;;GAGG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA6DlE"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { readJsonFlag } from '../utils/args.js';
|
|
2
|
+
import { resolveAuthConfig } from '../utils/auth.js';
|
|
3
|
+
import { PACKAGE_NAME, checkForUpdate, detectInstallKind, installGlobally, } from '../utils/auto-update.js';
|
|
4
|
+
import { buildApiOptions } from '../utils/context.js';
|
|
5
|
+
import { CliError, ExitCode } from '../utils/errors.js';
|
|
6
|
+
import { dim, printCommandHelp, printInfo, printLine, printSuccess } from '../utils/output.js';
|
|
7
|
+
import { hasFlag } from '../utils/args.js';
|
|
8
|
+
/**
|
|
9
|
+
* `inquir upgrade` — check the registry (and the API's minimum) now and
|
|
10
|
+
* install the latest version. `--check` only reports.
|
|
11
|
+
*/
|
|
12
|
+
export async function upgradeCommand(args) {
|
|
13
|
+
if (hasFlag(args, '--help') || hasFlag(args, '-h')) {
|
|
14
|
+
printCommandHelp('upgrade', 'upgrade [--check]', [
|
|
15
|
+
'--check Report the installed vs latest version without installing',
|
|
16
|
+
'--json Machine-readable output',
|
|
17
|
+
'',
|
|
18
|
+
'The CLI also checks for updates on start (at most every 12 hours) and, when',
|
|
19
|
+
'installed globally with npm in an interactive terminal, updates itself and',
|
|
20
|
+
're-runs your command. Opt out: inquir config set autoUpdate false,',
|
|
21
|
+
'INQUIR_NO_AUTO_UPDATE=1, or --no-update on a single command.',
|
|
22
|
+
], ['inquir upgrade', 'inquir upgrade --check']);
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const json = readJsonFlag(args);
|
|
26
|
+
const apiUrl = (await resolveAuthConfig(buildApiOptions(args)).catch(() => null))?.apiUrl;
|
|
27
|
+
const result = await checkForUpdate({ apiUrl, force: true });
|
|
28
|
+
const kind = detectInstallKind();
|
|
29
|
+
if (json) {
|
|
30
|
+
printLine(JSON.stringify({ ...result, installKind: kind }, null, 2));
|
|
31
|
+
if (hasFlag(args, '--check'))
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
printLine(`installed: ${result.current}`);
|
|
36
|
+
printLine(`latest: ${result.latest ?? '(registry unreachable)'}`);
|
|
37
|
+
if (result.minimum)
|
|
38
|
+
printLine(`minimum required by the API: ${result.minimum}`);
|
|
39
|
+
}
|
|
40
|
+
if (hasFlag(args, '--check'))
|
|
41
|
+
return;
|
|
42
|
+
if (!result.latest) {
|
|
43
|
+
throw new CliError('Could not reach the npm registry to look up the latest version', {
|
|
44
|
+
code: 'REGISTRY_UNREACHABLE',
|
|
45
|
+
exitCode: ExitCode.NETWORK,
|
|
46
|
+
fix: `Try again, or run: npm install -g ${PACKAGE_NAME}@latest`,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
if (!result.outdated) {
|
|
50
|
+
if (!json)
|
|
51
|
+
printSuccess(`Already up to date (${result.current}).`);
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
if (kind !== 'global-npm') {
|
|
55
|
+
throw new CliError(`Installed via ${kind === 'npx' ? 'npx' : kind === 'dev' ? 'a source checkout' : 'an unknown method'}; not replacing it in place`, {
|
|
56
|
+
code: 'UPGRADE_NOT_APPLICABLE',
|
|
57
|
+
exitCode: ExitCode.USAGE,
|
|
58
|
+
fix: kind === 'npx' ? 'Re-run with npx to use the latest version.' : `Install globally: npm install -g ${PACKAGE_NAME}@latest`,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
printInfo(dim(`Updating ${result.current} → ${result.latest}…`));
|
|
62
|
+
const outcome = installGlobally(result.latest);
|
|
63
|
+
if (!outcome.ok) {
|
|
64
|
+
throw new CliError(`Self-update failed: ${outcome.message ?? 'unknown error'}`, {
|
|
65
|
+
code: 'UPGRADE_FAILED',
|
|
66
|
+
exitCode: ExitCode.ERROR,
|
|
67
|
+
fix: `Run it yourself: npm install -g ${PACKAGE_NAME}@${result.latest}`,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
printSuccess(`Updated to ${result.latest}.`);
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=upgrade.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -18,11 +18,14 @@ import { rollbackCommand } from './commands/rollback.js';
|
|
|
18
18
|
import { runCommand } from './commands/run.js';
|
|
19
19
|
import { statusCommand } from './commands/status.js';
|
|
20
20
|
import { syncStatusCommand } from './commands/sync-status.js';
|
|
21
|
+
import { upgradeCommand } from './commands/upgrade.js';
|
|
21
22
|
import { useCommand } from './commands/use.js';
|
|
22
23
|
import { whoamiCommand } from './commands/whoami.js';
|
|
23
24
|
import { workspacesCommand } from './commands/workspaces.js';
|
|
24
25
|
import { findCommand, hasFlag, readCommandName, readPositionalArgs } from './utils/args.js';
|
|
25
|
-
import {
|
|
26
|
+
import { resolveAuthConfig } from './utils/auth.js';
|
|
27
|
+
import { maybeAutoUpdate } from './utils/auto-update.js';
|
|
28
|
+
import { buildApiOptions, initRuntime, runtime } from './utils/context.js';
|
|
26
29
|
import { renderError, toCliError, usageError } from './utils/errors.js';
|
|
27
30
|
import { bold, printLine, printUsage } from './utils/output.js';
|
|
28
31
|
import { getVersion } from './utils/version.js';
|
|
@@ -71,6 +74,7 @@ const COMMANDS = {
|
|
|
71
74
|
delete: deleteCommand,
|
|
72
75
|
doctor: doctorCommand,
|
|
73
76
|
config: configCommand,
|
|
77
|
+
upgrade: upgradeCommand,
|
|
74
78
|
help: async (args) => {
|
|
75
79
|
const [name] = readPositionalArgs(args);
|
|
76
80
|
if (name && COMMANDS[name] && name !== 'help') {
|
|
@@ -123,6 +127,7 @@ function printHelp() {
|
|
|
123
127
|
printLine(bold('Diagnostics & config'));
|
|
124
128
|
printLine(' doctor Diagnose environment, credentials, and connectivity');
|
|
125
129
|
printLine(' config View/get/set CLI configuration');
|
|
130
|
+
printLine(' upgrade Update the CLI to the latest version (also happens on start)');
|
|
126
131
|
printLine(' mcp Run an MCP server over stdio for coding agents');
|
|
127
132
|
printLine(' help Show help for a command (inquir help <command>)');
|
|
128
133
|
printLine('');
|
|
@@ -137,6 +142,7 @@ function printHelp() {
|
|
|
137
142
|
printLine(' --workspace Target workspace (slug or id) for this command');
|
|
138
143
|
printLine(' --api-url <url> Override the API base URL');
|
|
139
144
|
printLine(' --token <pat> Use a Personal Access Token (non-interactive/CI)');
|
|
145
|
+
printLine(' --no-update Skip the startup update check for this command');
|
|
140
146
|
printLine('');
|
|
141
147
|
printLine(bold('Examples'));
|
|
142
148
|
printLine(' inquir init # scaffold a workspace here');
|
|
@@ -167,7 +173,14 @@ async function main() {
|
|
|
167
173
|
throw usageError(`Unknown command: ${command}`, 'inquir help');
|
|
168
174
|
}
|
|
169
175
|
const args = argv.filter((_, index) => index !== resolvedCommand.index);
|
|
170
|
-
|
|
176
|
+
// Stay in step with the platform: throttled check, self-update + re-exec
|
|
177
|
+
// when allowed, hard stop only when the API's minimum version is not met.
|
|
178
|
+
await maybeAutoUpdate({
|
|
179
|
+
argv,
|
|
180
|
+
json: runtime().json,
|
|
181
|
+
apiUrl: (await resolveAuthConfig(buildApiOptions(args)).catch(() => null))?.apiUrl,
|
|
182
|
+
});
|
|
183
|
+
await handler(args.filter((a) => a !== '--no-update'));
|
|
171
184
|
}
|
|
172
185
|
void main().catch((error) => {
|
|
173
186
|
const cliError = toCliError(error);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/args.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/utils/args.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/utils/args.ts"],"names":[],"mappings":"AA6BA,UAAU,oBAAoB;IAC5B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAeD,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED,4FAA4F;AAC5F,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAe9E;AAED,gFAAgF;AAChF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAmBpE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAKvD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAEpD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAEtE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAEpE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAEjE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAEhE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAWtE;AAmDD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAElE;AAED,oFAAoF;AACpF,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CA+BvF;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,oBAAyB,GAAG,MAAM,EAAE,CAE/F"}
|
package/dist/utils/args.js
CHANGED
package/dist/utils/args.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/utils/args.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/utils/args.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/auth.d.ts
CHANGED
|
@@ -15,6 +15,8 @@ export interface EnvironmentConfig {
|
|
|
15
15
|
}
|
|
16
16
|
export interface AuthConfig extends EnvironmentConfig {
|
|
17
17
|
environments?: Record<string, EnvironmentConfig>;
|
|
18
|
+
/** Startup self-update (default on). `inquir config set autoUpdate false` to opt out. */
|
|
19
|
+
autoUpdate?: boolean;
|
|
18
20
|
}
|
|
19
21
|
export interface ResolvedAuthConfig {
|
|
20
22
|
apiUrl: string;
|
package/dist/utils/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/utils/auth.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAED,MAAM,WAAW,UAAW,SAAQ,iBAAiB;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/utils/auth.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAED,MAAM,WAAW,UAAW,SAAQ,iBAAiB;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACjD,yFAAyF;IACzF,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAED,8FAA8F;AAC9F,eAAO,MAAM,eAAe,2BAA2B,CAAC;AAcxD,kFAAkF;AAClF,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC,CA2B1D;AAED,wBAAsB,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAS1E;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAMrD;AAWD,mFAAmF;AACnF,wBAAgB,sBAAsB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE5E;AAED,wBAAsB,iBAAiB,CACrC,SAAS,GAAE,OAAO,CAAC,UAAU,CAAC,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1F,OAAO,CAAC,kBAAkB,CAAC,CAwC7B;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,MAAM,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,GACzC,OAAO,CAAC,IAAI,CAAC,CAYf"}
|
package/dist/utils/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/utils/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/utils/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Startup self-update — keeps the CLI in step with Inquir Compute.
|
|
3
|
+
*
|
|
4
|
+
* Two sources of truth, checked at most once per `CHECK_TTL_MS` (cached in
|
|
5
|
+
* ~/.inquir/update-check.json) with a short network timeout, so a normal
|
|
6
|
+
* command pays nothing on the hot path and never fails because of this:
|
|
7
|
+
*
|
|
8
|
+
* - the npm registry's `latest` dist-tag: what is installable;
|
|
9
|
+
* - the API's `GET /v1/cli/version`: the minimum version the platform still
|
|
10
|
+
* supports (a server release that changes the wire contract raises it).
|
|
11
|
+
*
|
|
12
|
+
* When a newer version exists and the CLI is a global npm install running in
|
|
13
|
+
* an interactive terminal, it re-installs itself (`npm i -g`) and re-executes
|
|
14
|
+
* the original command with the new binary — the user asked for one thing and
|
|
15
|
+
* gets it, on the new version. Everything else (CI, --json, no TTY, npx, a
|
|
16
|
+
* dev checkout, opt-out) only prints a one-line notice on stderr, except when
|
|
17
|
+
* the server's *minimum* is not met: then the command refuses to run with the
|
|
18
|
+
* exact fix, because a too-old CLI would fail in confusing ways later.
|
|
19
|
+
*
|
|
20
|
+
* Opt out: `INQUIR_NO_AUTO_UPDATE=1`, `--no-update`, or
|
|
21
|
+
* `inquir config set autoUpdate false`. Manual: `inquir upgrade`.
|
|
22
|
+
*/
|
|
23
|
+
import { spawnSync } from 'node:child_process';
|
|
24
|
+
export declare const PACKAGE_NAME = "@inquir/compute-cli";
|
|
25
|
+
export declare const CHECK_TTL_MS: number;
|
|
26
|
+
export interface UpdateCheckCache {
|
|
27
|
+
checkedAt: number;
|
|
28
|
+
latest?: string;
|
|
29
|
+
minimum?: string;
|
|
30
|
+
minimumSource?: string;
|
|
31
|
+
}
|
|
32
|
+
export interface UpdateCheckResult {
|
|
33
|
+
current: string;
|
|
34
|
+
latest?: string;
|
|
35
|
+
minimum?: string;
|
|
36
|
+
/** current < latest */
|
|
37
|
+
outdated: boolean;
|
|
38
|
+
/** current < minimum required by the API */
|
|
39
|
+
belowMinimum: boolean;
|
|
40
|
+
fromCache: boolean;
|
|
41
|
+
}
|
|
42
|
+
export type InstallKind = 'global-npm' | 'npx' | 'dev' | 'unknown';
|
|
43
|
+
/** semver-ish compare on `major.minor.patch[-pre]`; pre-release sorts below release. */
|
|
44
|
+
export declare function compareVersions(a: string, b: string): number;
|
|
45
|
+
export declare function updateCachePath(): string;
|
|
46
|
+
/** Where this CLI came from — decides whether we may replace it. */
|
|
47
|
+
export declare function detectInstallKind(entryPath?: string): InstallKind;
|
|
48
|
+
export interface CheckOptions {
|
|
49
|
+
currentVersion?: string;
|
|
50
|
+
apiUrl?: string;
|
|
51
|
+
fetchImpl?: typeof fetch;
|
|
52
|
+
cacheFile?: string;
|
|
53
|
+
now?: number;
|
|
54
|
+
/** Ignore the cache TTL (`inquir upgrade`). */
|
|
55
|
+
force?: boolean;
|
|
56
|
+
}
|
|
57
|
+
/** Throttled lookup of latest (registry) + minimum (API); never throws. */
|
|
58
|
+
export declare function checkForUpdate(options?: CheckOptions): Promise<UpdateCheckResult>;
|
|
59
|
+
export interface InstallOutcome {
|
|
60
|
+
ok: boolean;
|
|
61
|
+
message?: string;
|
|
62
|
+
}
|
|
63
|
+
/** `npm install -g @inquir/compute-cli@<version>` with inherited stdio. */
|
|
64
|
+
export declare function installGlobally(version: string, spawn?: typeof spawnSync): InstallOutcome;
|
|
65
|
+
export interface AutoUpdateContext {
|
|
66
|
+
argv: string[];
|
|
67
|
+
json: boolean;
|
|
68
|
+
apiUrl?: string;
|
|
69
|
+
/** Test seams. */
|
|
70
|
+
check?: typeof checkForUpdate;
|
|
71
|
+
install?: typeof installGlobally;
|
|
72
|
+
installKind?: InstallKind;
|
|
73
|
+
isTTY?: boolean;
|
|
74
|
+
env?: NodeJS.ProcessEnv;
|
|
75
|
+
entryPath?: string;
|
|
76
|
+
reexecImpl?: (argv: string[], entryPath: string) => never;
|
|
77
|
+
}
|
|
78
|
+
export declare function shouldSkipAutoUpdate(argv: string[], env?: NodeJS.ProcessEnv): boolean;
|
|
79
|
+
/**
|
|
80
|
+
* Called once at startup. Returns normally when the current process should go
|
|
81
|
+
* on and run the command; re-executes (and exits) when it updated itself.
|
|
82
|
+
*/
|
|
83
|
+
export declare function maybeAutoUpdate(ctx: AutoUpdateContext): Promise<void>;
|
|
84
|
+
//# sourceMappingURL=auto-update.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-update.d.ts","sourceRoot":"","sources":["../../src/utils/auto-update.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAS/C,eAAO,MAAM,YAAY,wBAAwB,CAAC;AAClD,eAAO,MAAM,YAAY,QAAsB,CAAC;AAKhD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,4CAA4C;IAC5C,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC;AAEnE,wFAAwF;AACxF,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAgB5D;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAkCD,oEAAoE;AACpE,wBAAgB,iBAAiB,CAAC,SAAS,SAAwB,GAAG,WAAW,CAOhF;AAED,MAAM,WAAW,YAAY;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,2EAA2E;AAC3E,wBAAsB,cAAc,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAqC3F;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,mBAAY,GAAG,cAAc,CAWlF;AAWD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kBAAkB;IAClB,KAAK,CAAC,EAAE,OAAO,cAAc,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,eAAe,CAAC;IACjC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,KAAK,KAAK,CAAC;CAC3D;AAQD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAQlG;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiD3E"}
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Startup self-update — keeps the CLI in step with Inquir Compute.
|
|
3
|
+
*
|
|
4
|
+
* Two sources of truth, checked at most once per `CHECK_TTL_MS` (cached in
|
|
5
|
+
* ~/.inquir/update-check.json) with a short network timeout, so a normal
|
|
6
|
+
* command pays nothing on the hot path and never fails because of this:
|
|
7
|
+
*
|
|
8
|
+
* - the npm registry's `latest` dist-tag: what is installable;
|
|
9
|
+
* - the API's `GET /v1/cli/version`: the minimum version the platform still
|
|
10
|
+
* supports (a server release that changes the wire contract raises it).
|
|
11
|
+
*
|
|
12
|
+
* When a newer version exists and the CLI is a global npm install running in
|
|
13
|
+
* an interactive terminal, it re-installs itself (`npm i -g`) and re-executes
|
|
14
|
+
* the original command with the new binary — the user asked for one thing and
|
|
15
|
+
* gets it, on the new version. Everything else (CI, --json, no TTY, npx, a
|
|
16
|
+
* dev checkout, opt-out) only prints a one-line notice on stderr, except when
|
|
17
|
+
* the server's *minimum* is not met: then the command refuses to run with the
|
|
18
|
+
* exact fix, because a too-old CLI would fail in confusing ways later.
|
|
19
|
+
*
|
|
20
|
+
* Opt out: `INQUIR_NO_AUTO_UPDATE=1`, `--no-update`, or
|
|
21
|
+
* `inquir config set autoUpdate false`. Manual: `inquir upgrade`.
|
|
22
|
+
*/
|
|
23
|
+
import { spawnSync } from 'node:child_process';
|
|
24
|
+
import { promises as fs } from 'node:fs';
|
|
25
|
+
import path from 'node:path';
|
|
26
|
+
import { fileURLToPath } from 'node:url';
|
|
27
|
+
import { getConfigFilePath, loadAuthConfig } from './auth.js';
|
|
28
|
+
import { CliError, ExitCode } from './errors.js';
|
|
29
|
+
import { dim, printInfo } from './output.js';
|
|
30
|
+
import { getVersion } from './version.js';
|
|
31
|
+
export const PACKAGE_NAME = '@inquir/compute-cli';
|
|
32
|
+
export const CHECK_TTL_MS = 12 * 60 * 60 * 1000;
|
|
33
|
+
const NETWORK_TIMEOUT_MS = 2500;
|
|
34
|
+
/** Set on the re-executed child so it never checks again in the same run. */
|
|
35
|
+
const REEXEC_ENV = 'INQUIR_CLI_REEXEC';
|
|
36
|
+
/** semver-ish compare on `major.minor.patch[-pre]`; pre-release sorts below release. */
|
|
37
|
+
export function compareVersions(a, b) {
|
|
38
|
+
const parse = (v) => {
|
|
39
|
+
const [core, pre] = v.trim().replace(/^v/, '').split('-', 2);
|
|
40
|
+
const nums = core.split('.').map((n) => Number.parseInt(n, 10) || 0);
|
|
41
|
+
while (nums.length < 3)
|
|
42
|
+
nums.push(0);
|
|
43
|
+
return { nums, pre: pre ?? '' };
|
|
44
|
+
};
|
|
45
|
+
const x = parse(a);
|
|
46
|
+
const y = parse(b);
|
|
47
|
+
for (let i = 0; i < 3; i++) {
|
|
48
|
+
if (x.nums[i] !== y.nums[i])
|
|
49
|
+
return x.nums[i] < y.nums[i] ? -1 : 1;
|
|
50
|
+
}
|
|
51
|
+
if (x.pre === y.pre)
|
|
52
|
+
return 0;
|
|
53
|
+
if (!x.pre)
|
|
54
|
+
return 1;
|
|
55
|
+
if (!y.pre)
|
|
56
|
+
return -1;
|
|
57
|
+
return x.pre < y.pre ? -1 : 1;
|
|
58
|
+
}
|
|
59
|
+
export function updateCachePath() {
|
|
60
|
+
return path.join(path.dirname(getConfigFilePath()), 'update-check.json');
|
|
61
|
+
}
|
|
62
|
+
async function readCache(file) {
|
|
63
|
+
try {
|
|
64
|
+
const raw = await fs.readFile(file, 'utf8');
|
|
65
|
+
const parsed = JSON.parse(raw);
|
|
66
|
+
return typeof parsed?.checkedAt === 'number' ? parsed : null;
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
async function writeCache(file, cache) {
|
|
73
|
+
try {
|
|
74
|
+
await fs.mkdir(path.dirname(file), { recursive: true });
|
|
75
|
+
await fs.writeFile(file, JSON.stringify(cache), 'utf8');
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
/* a cache that cannot be written just means we check again next time */
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
async function fetchJson(fetchImpl, url) {
|
|
82
|
+
try {
|
|
83
|
+
const res = await fetchImpl(url, {
|
|
84
|
+
headers: { Accept: 'application/json' },
|
|
85
|
+
signal: AbortSignal.timeout(NETWORK_TIMEOUT_MS),
|
|
86
|
+
});
|
|
87
|
+
if (!res.ok)
|
|
88
|
+
return null;
|
|
89
|
+
return (await res.json());
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/** Where this CLI came from — decides whether we may replace it. */
|
|
96
|
+
export function detectInstallKind(entryPath = process.argv[1] ?? '') {
|
|
97
|
+
const p = entryPath.replace(/\\/g, '/');
|
|
98
|
+
if (!p)
|
|
99
|
+
return 'unknown';
|
|
100
|
+
if (/\/_npx\//.test(p) || /\/\.npm\/_npx\//.test(p))
|
|
101
|
+
return 'npx';
|
|
102
|
+
if (/\/packages\/cli\/(dist|src)\//.test(p))
|
|
103
|
+
return 'dev';
|
|
104
|
+
if (/\/node_modules\/@inquir\/compute-cli\//.test(p))
|
|
105
|
+
return 'global-npm';
|
|
106
|
+
return 'unknown';
|
|
107
|
+
}
|
|
108
|
+
/** Throttled lookup of latest (registry) + minimum (API); never throws. */
|
|
109
|
+
export async function checkForUpdate(options = {}) {
|
|
110
|
+
const current = options.currentVersion ?? getVersion();
|
|
111
|
+
const now = options.now ?? Date.now();
|
|
112
|
+
const cacheFile = options.cacheFile ?? updateCachePath();
|
|
113
|
+
const fetchImpl = options.fetchImpl ?? fetch;
|
|
114
|
+
const cached = await readCache(cacheFile);
|
|
115
|
+
let latest = cached?.latest;
|
|
116
|
+
let minimum = cached?.minimum;
|
|
117
|
+
let fromCache = true;
|
|
118
|
+
if (options.force || !cached || now - cached.checkedAt > CHECK_TTL_MS) {
|
|
119
|
+
fromCache = false;
|
|
120
|
+
const [registry, api] = await Promise.all([
|
|
121
|
+
fetchJson(fetchImpl, `https://registry.npmjs.org/${PACKAGE_NAME}/latest`),
|
|
122
|
+
options.apiUrl
|
|
123
|
+
? fetchJson(fetchImpl, `${options.apiUrl.replace(/\/+$/, '')}/v1/cli/version`)
|
|
124
|
+
: Promise.resolve(null),
|
|
125
|
+
]);
|
|
126
|
+
if (typeof registry?.version === 'string')
|
|
127
|
+
latest = registry.version;
|
|
128
|
+
if (typeof api?.minimum === 'string')
|
|
129
|
+
minimum = api.minimum;
|
|
130
|
+
await writeCache(cacheFile, {
|
|
131
|
+
checkedAt: now,
|
|
132
|
+
latest,
|
|
133
|
+
minimum,
|
|
134
|
+
minimumSource: options.apiUrl,
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
return {
|
|
138
|
+
current,
|
|
139
|
+
latest,
|
|
140
|
+
minimum,
|
|
141
|
+
outdated: latest ? compareVersions(current, latest) < 0 : false,
|
|
142
|
+
belowMinimum: minimum ? compareVersions(current, minimum) < 0 : false,
|
|
143
|
+
fromCache,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
/** `npm install -g @inquir/compute-cli@<version>` with inherited stdio. */
|
|
147
|
+
export function installGlobally(version, spawn = spawnSync) {
|
|
148
|
+
const npm = process.platform === 'win32' ? 'npm.cmd' : 'npm';
|
|
149
|
+
const result = spawn(npm, ['install', '-g', `${PACKAGE_NAME}@${version}`, '--no-fund', '--no-audit'], {
|
|
150
|
+
stdio: 'inherit',
|
|
151
|
+
shell: process.platform === 'win32',
|
|
152
|
+
});
|
|
153
|
+
if (result.error)
|
|
154
|
+
return { ok: false, message: result.error.message };
|
|
155
|
+
if (result.status !== 0) {
|
|
156
|
+
return { ok: false, message: `npm install exited with code ${result.status ?? 'unknown'}` };
|
|
157
|
+
}
|
|
158
|
+
return { ok: true };
|
|
159
|
+
}
|
|
160
|
+
/** Re-run the original command with the freshly installed binary. */
|
|
161
|
+
function reexec(argv, entryPath) {
|
|
162
|
+
const result = spawnSync(process.execPath, [entryPath, ...argv], {
|
|
163
|
+
stdio: 'inherit',
|
|
164
|
+
env: { ...process.env, [REEXEC_ENV]: '1' },
|
|
165
|
+
});
|
|
166
|
+
process.exit(result.status ?? 1);
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Commands that must never trigger an update dance: the update itself, and
|
|
170
|
+
* the ones people run to *see* the version or get help.
|
|
171
|
+
*/
|
|
172
|
+
const SKIP_COMMANDS = new Set(['upgrade', 'help', 'mcp']);
|
|
173
|
+
export function shouldSkipAutoUpdate(argv, env = process.env) {
|
|
174
|
+
if (env[REEXEC_ENV])
|
|
175
|
+
return true;
|
|
176
|
+
if (env.INQUIR_NO_AUTO_UPDATE && env.INQUIR_NO_AUTO_UPDATE !== '0')
|
|
177
|
+
return true;
|
|
178
|
+
if (argv.includes('--no-update'))
|
|
179
|
+
return true;
|
|
180
|
+
if (argv.includes('--version') || argv.includes('-v') || argv.includes('--help') || argv.includes('-h'))
|
|
181
|
+
return true;
|
|
182
|
+
const first = argv.find((a) => !a.startsWith('-'));
|
|
183
|
+
if (!first || SKIP_COMMANDS.has(first))
|
|
184
|
+
return true;
|
|
185
|
+
return false;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Called once at startup. Returns normally when the current process should go
|
|
189
|
+
* on and run the command; re-executes (and exits) when it updated itself.
|
|
190
|
+
*/
|
|
191
|
+
export async function maybeAutoUpdate(ctx) {
|
|
192
|
+
const env = ctx.env ?? process.env;
|
|
193
|
+
if (shouldSkipAutoUpdate(ctx.argv, env))
|
|
194
|
+
return;
|
|
195
|
+
const config = await loadAuthConfig().catch(() => ({}));
|
|
196
|
+
const optedOut = config.autoUpdate === false;
|
|
197
|
+
const check = ctx.check ?? checkForUpdate;
|
|
198
|
+
const result = await check({ apiUrl: ctx.apiUrl }).catch(() => null);
|
|
199
|
+
if (!result || (!result.outdated && !result.belowMinimum))
|
|
200
|
+
return;
|
|
201
|
+
const target = result.latest ?? result.minimum;
|
|
202
|
+
const kind = ctx.installKind ?? detectInstallKind(ctx.entryPath);
|
|
203
|
+
const interactive = (ctx.isTTY ?? Boolean(process.stdout.isTTY && process.stderr.isTTY)) && !env.CI && !ctx.json;
|
|
204
|
+
const manual = `npm install -g ${PACKAGE_NAME}@latest`;
|
|
205
|
+
const canSelfUpdate = interactive && !optedOut && kind === 'global-npm';
|
|
206
|
+
if (canSelfUpdate) {
|
|
207
|
+
printInfo(dim(`Updating inquir CLI ${result.current} → ${target}…`));
|
|
208
|
+
const outcome = (ctx.install ?? installGlobally)(target);
|
|
209
|
+
if (outcome.ok) {
|
|
210
|
+
printInfo(dim(`Updated to ${target}; re-running your command.`));
|
|
211
|
+
const entry = ctx.entryPath ?? process.argv[1] ?? fileURLToPath(import.meta.url);
|
|
212
|
+
(ctx.reexecImpl ?? reexec)(ctx.argv, entry);
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
process.stderr.write(`inquir: self-update failed (${outcome.message ?? 'unknown error'}); run: ${manual}\n`);
|
|
216
|
+
}
|
|
217
|
+
if (result.belowMinimum) {
|
|
218
|
+
// The platform will not talk to this version correctly — refuse loudly.
|
|
219
|
+
throw new CliError(`This CLI (${result.current}) is older than the minimum the API requires (${result.minimum})`, {
|
|
220
|
+
code: 'CLI_UPDATE_REQUIRED',
|
|
221
|
+
exitCode: ExitCode.ERROR,
|
|
222
|
+
explanation: 'The platform changed its wire contract; an older CLI would fail in confusing ways.',
|
|
223
|
+
fix: `Update it: ${manual}`,
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
if (!ctx.json) {
|
|
227
|
+
process.stderr.write(`inquir: a newer CLI is available (${result.current} → ${target}). ` +
|
|
228
|
+
(kind === 'global-npm' ? `Run: ${manual}` : kind === 'npx' ? 'Re-run with npx to pick it up.' : `Update: ${manual}`) +
|
|
229
|
+
'\n');
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
//# sourceMappingURL=auto-update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-update.js","sourceRoot":"","sources":["../../src/utils/auto-update.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/skill/SKILL.md
CHANGED
|
@@ -1,60 +1,60 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: inquir-compute
|
|
3
|
-
description: Deploy and run functions, background jobs, and web apps on Inquir Compute — use when code needs to run remotely, on a schedule, longer than a request cycle, or behind a stable URL. Zero-config deploys via `inquir deploy` or the inquir MCP tools.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Inquir Compute — deploy & run workloads
|
|
7
|
-
|
|
8
|
-
Inquir Compute runs three kinds of workloads in isolated containers:
|
|
9
|
-
|
|
10
|
-
1. **Functions** — Lambda-compatible handlers (`exports.handler`, `def handler`, Go `Handler`). Best for event processing, API routes, webhooks, cron.
|
|
11
|
-
2. **Web apps** — any HTTP server (Express, Fastify, FastAPI, Flask, raw `http`). Deployed as-is; the platform runs it with `PORT` set and proxies requests. No code changes needed.
|
|
12
|
-
3. **Jobs / durable orchestrations** — async invocations with retries, queues, timers, `waitForEvent`, and human-approval waits that survive process restarts.
|
|
13
|
-
|
|
14
|
-
## When to reach for Inquir instead of local code
|
|
15
|
-
|
|
16
|
-
- The user's code must run **after this session ends** (schedules, webhooks, background processing).
|
|
17
|
-
- A task will outlive an HTTP request → use `invoke-async` (jobs) or a durable orchestration, not a long request.
|
|
18
|
-
- The user asks to "deploy", "host", or "get a URL for" something.
|
|
19
|
-
|
|
20
|
-
## Deploying (zero config)
|
|
21
|
-
|
|
22
|
-
From a directory — no config file, no SDK, any of Node / Python / Go:
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
inquir deploy # deploy current directory, auto-detect everything
|
|
26
|
-
inquir deploy ./api --name billing --set LOG_LEVEL=debug
|
|
27
|
-
inquir deploy --dry-run # show the detection plan without deploying
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
Detection rules:
|
|
31
|
-
- `exports.handler` / `def handler` / `func Handler` in the entry file → **function**.
|
|
32
|
-
- A server app (`.listen(`, Express/FastAPI/Flask imports, or a `start` script) → **web app**; start command is auto-derived (`node server.js`, `python -m uvicorn main:app …`). Override with `--start "<cmd>"`.
|
|
33
|
-
- Entry file: package.json `main`, then `index/main/app/server.*` at root or `src/`.
|
|
34
|
-
- Dependencies are installed **server-side at deploy** (npm/pip) — never commit `node_modules`.
|
|
35
|
-
|
|
36
|
-
Overrides when detection guesses wrong: `--runtime`, `--handler <module.export>`, `--mode handler|web`, `--start "<cmd>"`.
|
|
37
|
-
|
|
38
|
-
## MCP tools (preferred for agents)
|
|
39
|
-
|
|
40
|
-
Register once: `claude mcp add inquir -- inquir mcp`
|
|
41
|
-
|
|
42
|
-
- `deploy {path, name?, start?, env?}` — detect + deploy a directory; returns detection reasons, deploy status, and error logs on failure.
|
|
43
|
-
- `invoke {function, payload}` — run a function and get result + logs.
|
|
44
|
-
- `exec {function, command, target?}` — run a shell command inside the function's container (its runtime image + code). `target: "source"` (default) is read-write: use it for installing deps, running tests, debugging.
|
|
45
|
-
- `list_invocations {function}` — recent runs with errors and logs: the debugging entry point.
|
|
46
|
-
- `deploy_status {deployId}`, `rollback {function, deployId}`, `list_functions`.
|
|
47
|
-
|
|
48
|
-
## Debug loop that works
|
|
49
|
-
|
|
50
|
-
1. `deploy` → read `deploy.error` and status.
|
|
51
|
-
2. If failing at runtime: `list_invocations` → read logs.
|
|
52
|
-
3. Reproduce inside the container: `exec {command: "npm test"}` or `exec {command: "python -c '...'"}`.
|
|
53
|
-
4. Fix code locally, `deploy` again. Deploys are versioned; `rollback` restores any previous success.
|
|
54
|
-
|
|
55
|
-
## Contracts that matter
|
|
56
|
-
|
|
57
|
-
- Handlers: return JSON-serializable values; HTTP-fronted functions return `{statusCode, headers, body}`.
|
|
58
|
-
- Web apps MUST listen on `process.env.PORT` / `$PORT` (any host binding on `0.0.0.0`).
|
|
59
|
-
- Web apps get no streaming invocations (SSE) yet; use a function for streaming responses.
|
|
60
|
-
- Secrets: pass with `--set KEY=VALUE` or `--env-file`; never hardcode.
|
|
1
|
+
---
|
|
2
|
+
name: inquir-compute
|
|
3
|
+
description: Deploy and run functions, background jobs, and web apps on Inquir Compute — use when code needs to run remotely, on a schedule, longer than a request cycle, or behind a stable URL. Zero-config deploys via `inquir deploy` or the inquir MCP tools.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Inquir Compute — deploy & run workloads
|
|
7
|
+
|
|
8
|
+
Inquir Compute runs three kinds of workloads in isolated containers:
|
|
9
|
+
|
|
10
|
+
1. **Functions** — Lambda-compatible handlers (`exports.handler`, `def handler`, Go `Handler`). Best for event processing, API routes, webhooks, cron.
|
|
11
|
+
2. **Web apps** — any HTTP server (Express, Fastify, FastAPI, Flask, raw `http`). Deployed as-is; the platform runs it with `PORT` set and proxies requests. No code changes needed.
|
|
12
|
+
3. **Jobs / durable orchestrations** — async invocations with retries, queues, timers, `waitForEvent`, and human-approval waits that survive process restarts.
|
|
13
|
+
|
|
14
|
+
## When to reach for Inquir instead of local code
|
|
15
|
+
|
|
16
|
+
- The user's code must run **after this session ends** (schedules, webhooks, background processing).
|
|
17
|
+
- A task will outlive an HTTP request → use `invoke-async` (jobs) or a durable orchestration, not a long request.
|
|
18
|
+
- The user asks to "deploy", "host", or "get a URL for" something.
|
|
19
|
+
|
|
20
|
+
## Deploying (zero config)
|
|
21
|
+
|
|
22
|
+
From a directory — no config file, no SDK, any of Node / Python / Go:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
inquir deploy # deploy current directory, auto-detect everything
|
|
26
|
+
inquir deploy ./api --name billing --set LOG_LEVEL=debug
|
|
27
|
+
inquir deploy --dry-run # show the detection plan without deploying
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Detection rules:
|
|
31
|
+
- `exports.handler` / `def handler` / `func Handler` in the entry file → **function**.
|
|
32
|
+
- A server app (`.listen(`, Express/FastAPI/Flask imports, or a `start` script) → **web app**; start command is auto-derived (`node server.js`, `python -m uvicorn main:app …`). Override with `--start "<cmd>"`.
|
|
33
|
+
- Entry file: package.json `main`, then `index/main/app/server.*` at root or `src/`.
|
|
34
|
+
- Dependencies are installed **server-side at deploy** (npm/pip) — never commit `node_modules`.
|
|
35
|
+
|
|
36
|
+
Overrides when detection guesses wrong: `--runtime`, `--handler <module.export>`, `--mode handler|web`, `--start "<cmd>"`.
|
|
37
|
+
|
|
38
|
+
## MCP tools (preferred for agents)
|
|
39
|
+
|
|
40
|
+
Register once: `claude mcp add inquir -- inquir mcp`
|
|
41
|
+
|
|
42
|
+
- `deploy {path, name?, start?, env?}` — detect + deploy a directory; returns detection reasons, deploy status, and error logs on failure.
|
|
43
|
+
- `invoke {function, payload}` — run a function and get result + logs.
|
|
44
|
+
- `exec {function, command, target?}` — run a shell command inside the function's container (its runtime image + code). `target: "source"` (default) is read-write: use it for installing deps, running tests, debugging.
|
|
45
|
+
- `list_invocations {function}` — recent runs with errors and logs: the debugging entry point.
|
|
46
|
+
- `deploy_status {deployId}`, `rollback {function, deployId}`, `list_functions`.
|
|
47
|
+
|
|
48
|
+
## Debug loop that works
|
|
49
|
+
|
|
50
|
+
1. `deploy` → read `deploy.error` and status.
|
|
51
|
+
2. If failing at runtime: `list_invocations` → read logs.
|
|
52
|
+
3. Reproduce inside the container: `exec {command: "npm test"}` or `exec {command: "python -c '...'"}`.
|
|
53
|
+
4. Fix code locally, `deploy` again. Deploys are versioned; `rollback` restores any previous success.
|
|
54
|
+
|
|
55
|
+
## Contracts that matter
|
|
56
|
+
|
|
57
|
+
- Handlers: return JSON-serializable values; HTTP-fronted functions return `{statusCode, headers, body}`.
|
|
58
|
+
- Web apps MUST listen on `process.env.PORT` / `$PORT` (any host binding on `0.0.0.0`).
|
|
59
|
+
- Web apps get no streaming invocations (SSE) yet; use a function for streaming responses.
|
|
60
|
+
- Secrets: pass with `--set KEY=VALUE` or `--env-file`; never hardcode.
|