lim 0.10.1 → 0.11.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 +6 -6
- package/dist/commands/run.d.ts +27 -0
- package/dist/commands/run.d.ts.map +1 -0
- package/dist/commands/run.js +379 -0
- package/dist/commands/run.js.map +1 -0
- package/dist/lib/onboarding.d.ts.map +1 -1
- package/dist/lib/onboarding.js +5 -5
- package/dist/lib/onboarding.js.map +1 -1
- package/package.json +2 -2
- package/dist/commands/go.d.ts +0 -17
- package/dist/commands/go.d.ts.map +0 -1
- package/dist/commands/go.js +0 -203
- package/dist/commands/go.js.map +0 -1
package/README.md
CHANGED
|
@@ -49,10 +49,10 @@ The CLI stores configuration in `~/.lim/config.yaml`. This file is compatible wi
|
|
|
49
49
|
## Fast First Run
|
|
50
50
|
|
|
51
51
|
```bash
|
|
52
|
-
lim
|
|
52
|
+
lim run
|
|
53
53
|
```
|
|
54
54
|
|
|
55
|
-
`lim
|
|
55
|
+
`lim run` is the fastest way to get started with Limrun. Run it inside a clear iOS or Expo project root to install the Limrun agent skills for that project and get the next prompt for your coding agent. Run it anywhere else to clone the native sample app, build it on Limrun, and print a cloud simulator URL.
|
|
56
56
|
|
|
57
57
|
## Global Flags
|
|
58
58
|
|
|
@@ -103,7 +103,7 @@ This avoids relying on locally cached "last created" state and keeps the target
|
|
|
103
103
|
|
|
104
104
|
## Commands
|
|
105
105
|
|
|
106
|
-
- [
|
|
106
|
+
- [Run](#run) — Get started with Limrun on your project or the sample app
|
|
107
107
|
- [iOS](#ios) — Create, manage, and interact with iOS instances
|
|
108
108
|
- [Android](#android) — Create, manage, and interact with Android instances
|
|
109
109
|
- [Xcode](#xcode) — Create and manage Xcode sandbox instances
|
|
@@ -114,12 +114,12 @@ This avoids relying on locally cached "last created" state and keeps the target
|
|
|
114
114
|
|
|
115
115
|
---
|
|
116
116
|
|
|
117
|
-
###
|
|
117
|
+
### Run
|
|
118
118
|
|
|
119
|
-
`lim
|
|
119
|
+
`lim run` logs in if needed, then chooses the fastest useful path:
|
|
120
120
|
|
|
121
121
|
```bash
|
|
122
|
-
lim
|
|
122
|
+
lim run
|
|
123
123
|
```
|
|
124
124
|
|
|
125
125
|
- In a clear native iOS project, it installs the Limrun iOS/Xcode skill into `.agents/skills/` and `.claude/skills/`.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { BaseCommand } from '../base-command';
|
|
2
|
+
export default class Run extends BaseCommand {
|
|
3
|
+
static baseFlags: typeof BaseCommand.baseFlags;
|
|
4
|
+
static hiddenAliases: string[];
|
|
5
|
+
static summary: string;
|
|
6
|
+
static description: string;
|
|
7
|
+
static examples: string[];
|
|
8
|
+
private progress?;
|
|
9
|
+
run(): Promise<void>;
|
|
10
|
+
private setupExistingProject;
|
|
11
|
+
private shouldUseDetectedProject;
|
|
12
|
+
private printSkillSummary;
|
|
13
|
+
private printEnvWarnings;
|
|
14
|
+
private success;
|
|
15
|
+
private validateAuth;
|
|
16
|
+
private runSampleFlow;
|
|
17
|
+
private buildAndLaunchProject;
|
|
18
|
+
private outputProjectRecovery;
|
|
19
|
+
private outputNextSteps;
|
|
20
|
+
private withProgress;
|
|
21
|
+
private startProgress;
|
|
22
|
+
private stopProgress;
|
|
23
|
+
private appendProgressLog;
|
|
24
|
+
private renderProgress;
|
|
25
|
+
private clearProgressBlock;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=run.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAgC9C,MAAM,CAAC,OAAO,OAAO,GAAI,SAAQ,WAAW;IAC1C,MAAM,CAAC,SAAS,EAGA,OAAO,WAAW,CAAC,SAAS,CAAC;IAC7C,MAAM,CAAC,aAAa,WAAU;IAC9B,MAAM,CAAC,OAAO,SAA6B;IAC3C,MAAM,CAAC,WAAW,SAAmF;IACrG,MAAM,CAAC,QAAQ,WAA6B;IAC5C,OAAO,CAAC,QAAQ,CAAC,CAAgB;IAE3B,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YA8BZ,oBAAoB;YAoCpB,wBAAwB;IAyBtC,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,OAAO;YAOD,YAAY;YAWZ,aAAa;YA6Bb,qBAAqB;IAyEnC,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,eAAe;YAST,YAAY;IAY1B,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,iBAAiB;IAiBzB,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,kBAAkB;CAY3B"}
|
|
@@ -0,0 +1,379 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const os_1 = __importDefault(require("os"));
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const core_1 = require("@oclif/core");
|
|
9
|
+
const prompts_1 = __importDefault(require("prompts"));
|
|
10
|
+
const base_command_1 = require("../base-command");
|
|
11
|
+
const config_1 = require("../lib/config");
|
|
12
|
+
const project_detection_1 = require("../lib/project-detection");
|
|
13
|
+
const onboarding_1 = require("../lib/onboarding");
|
|
14
|
+
const VERSION = require('../../package.json').version;
|
|
15
|
+
const IOS_SKILL = 'limrun-xcode-and-ios-simulator';
|
|
16
|
+
const EXPO_SKILL = 'limrun-expo-development';
|
|
17
|
+
const SPINNER_FRAMES = process.platform === 'win32' ? ['-', '\\', '|', '/'] : ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
|
|
18
|
+
const SUCCESS_ICON = process.platform === 'win32' ? '√' : '✔';
|
|
19
|
+
const FAILURE_ICON = process.platform === 'win32' ? '×' : '✖';
|
|
20
|
+
const BUILD_LOG_TAIL_LINES = 10;
|
|
21
|
+
class Run extends base_command_1.BaseCommand {
|
|
22
|
+
async run() {
|
|
23
|
+
const { flags } = await this.parse(Run);
|
|
24
|
+
this.setParsedFlags(flags);
|
|
25
|
+
const detection = (0, project_detection_1.detectProject)(process.cwd());
|
|
26
|
+
const useDetectedProject = detection.kind !== 'sample' ? await this.shouldUseDetectedProject(detection) : false;
|
|
27
|
+
const envRoot = detection.kind !== 'sample' && useDetectedProject ? detection.projectDir : process.cwd();
|
|
28
|
+
const projectEnvApiKey = flags['api-key'] ? undefined : (0, onboarding_1.applyProjectEnvApiKey)(envRoot).apiKey;
|
|
29
|
+
await (0, onboarding_1.ensureLoggedIn)({
|
|
30
|
+
version: VERSION,
|
|
31
|
+
apiKey: flags['api-key'],
|
|
32
|
+
log: (message) => this.info(message),
|
|
33
|
+
});
|
|
34
|
+
const apiKey = flags['api-key'] || (0, config_1.readConfig)().apiKey;
|
|
35
|
+
const allowAuthRetry = !flags['api-key'] && !projectEnvApiKey && !process.env['LIM_API_KEY'];
|
|
36
|
+
if (detection.kind === 'native-ios' && useDetectedProject) {
|
|
37
|
+
await this.setupExistingProject(detection, [IOS_SKILL], apiKey, allowAuthRetry);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (detection.kind === 'expo' && useDetectedProject) {
|
|
41
|
+
await this.setupExistingProject(detection, [IOS_SKILL, EXPO_SKILL], apiKey, allowAuthRetry);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
await this.runSampleFlow(apiKey, allowAuthRetry);
|
|
45
|
+
}
|
|
46
|
+
async setupExistingProject(detection, skillNames, apiKey, allowAuthRetry) {
|
|
47
|
+
const projectRoot = detection.projectDir;
|
|
48
|
+
const projectPath = humanPath(projectRoot);
|
|
49
|
+
await this.withProgress('Checking Limrun access', () => this.validateAuth(allowAuthRetry));
|
|
50
|
+
this.success(`Detected an iOS/Expo project at ${projectPath}`);
|
|
51
|
+
const results = await this.withProgress('Installing Limrun agent skills', () => (0, onboarding_1.installProjectSkills)({ projectRoot, skillNames }));
|
|
52
|
+
this.printSkillSummary(results);
|
|
53
|
+
this.printEnvWarnings((0, onboarding_1.ensureProjectEnvApiKey)(projectRoot, apiKey).warnings);
|
|
54
|
+
this.success('Configured .env for Limrun');
|
|
55
|
+
const streamUrl = await this.buildAndLaunchProject({
|
|
56
|
+
projectRoot,
|
|
57
|
+
displayName: 'lim-run-project',
|
|
58
|
+
labels: {
|
|
59
|
+
name: 'lim-run-project',
|
|
60
|
+
projectKind: detection.kind,
|
|
61
|
+
},
|
|
62
|
+
progressLabel: buildProgressLabel(detection.kind),
|
|
63
|
+
failureLabel: 'Build failed',
|
|
64
|
+
recoveryPath: projectRoot,
|
|
65
|
+
recoveryFromDir: process.cwd(),
|
|
66
|
+
});
|
|
67
|
+
this.output('');
|
|
68
|
+
this.output('✨ Click here to see your app:');
|
|
69
|
+
this.output(streamUrl);
|
|
70
|
+
this.outputNextSteps(projectPath, 'Make a change and rebuild with Limrun skills.');
|
|
71
|
+
}
|
|
72
|
+
async shouldUseDetectedProject(detection) {
|
|
73
|
+
if (this.shouldSuppressInfo() || !process.stdin.isTTY || !process.stderr.isTTY) {
|
|
74
|
+
return true;
|
|
75
|
+
}
|
|
76
|
+
const projectPath = interactivePathLabel(humanPath(detection.projectDir));
|
|
77
|
+
const response = await (0, prompts_1.default)({
|
|
78
|
+
type: 'select',
|
|
79
|
+
name: 'choice',
|
|
80
|
+
message: `Found an iOS/Expo project at ${projectPath}. What do you want to use?`,
|
|
81
|
+
choices: [
|
|
82
|
+
{ title: `Use ${projectPath}`, value: 'project' },
|
|
83
|
+
{ title: 'Clone and run the sample app', value: 'sample' },
|
|
84
|
+
],
|
|
85
|
+
initial: 0,
|
|
86
|
+
}, {
|
|
87
|
+
onCancel: () => {
|
|
88
|
+
this.error('Cancelled.');
|
|
89
|
+
},
|
|
90
|
+
});
|
|
91
|
+
return response.choice !== 'sample';
|
|
92
|
+
}
|
|
93
|
+
printSkillSummary(results) {
|
|
94
|
+
const installed = results.filter((result) => result.status === 'installed').length;
|
|
95
|
+
const unchanged = results.filter((result) => result.status === 'unchanged').length;
|
|
96
|
+
const skipped = results.filter((result) => result.status === 'skipped');
|
|
97
|
+
if (installed > 0) {
|
|
98
|
+
this.success('Limrun skills installed for Claude Code and Cursor/OpenCode-compatible agents');
|
|
99
|
+
}
|
|
100
|
+
else if (unchanged > 0 && skipped.length === 0) {
|
|
101
|
+
this.success('Limrun skills are already installed for Claude Code and Cursor/OpenCode-compatible agents');
|
|
102
|
+
}
|
|
103
|
+
if (skipped.length > 0) {
|
|
104
|
+
this.info('Skipped skill directories with local changes:');
|
|
105
|
+
for (const result of skipped) {
|
|
106
|
+
this.info(` ${humanPath(result.path)}`);
|
|
107
|
+
}
|
|
108
|
+
this.info('Run `lim skills install` interactively, or rerun it with `--force`, to update them.');
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
printEnvWarnings(warnings) {
|
|
112
|
+
for (const warning of warnings) {
|
|
113
|
+
this.info(`Warning: ${warning}`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
success(message) {
|
|
117
|
+
if (this.shouldSuppressInfo()) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
process.stderr.write(`${core_1.ux.colorize('green', SUCCESS_ICON)} ${message}\n`);
|
|
121
|
+
}
|
|
122
|
+
async validateAuth(allowRetry) {
|
|
123
|
+
const check = async () => {
|
|
124
|
+
await this.client.iosInstances.list({ state: 'ready' });
|
|
125
|
+
};
|
|
126
|
+
if (allowRetry) {
|
|
127
|
+
await this.withAuth(check);
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
await check();
|
|
131
|
+
}
|
|
132
|
+
async runSampleFlow(apiKey, allowAuthRetry) {
|
|
133
|
+
const cwd = process.cwd();
|
|
134
|
+
await this.withProgress('Checking Limrun access', () => this.validateAuth(allowAuthRetry));
|
|
135
|
+
const sample = await this.withProgress('Setting up sample app', () => (0, onboarding_1.ensureSampleRepo)({ cwd }));
|
|
136
|
+
const samplePathFromStart = humanPath(sample.path, cwd);
|
|
137
|
+
this.success(`${sample.reused ? 'Using existing' : 'Cloned'} ${samplePathFromStart}`);
|
|
138
|
+
process.chdir(sample.path);
|
|
139
|
+
this.printEnvWarnings((0, onboarding_1.ensureProjectEnvApiKey)(sample.path, apiKey).warnings);
|
|
140
|
+
this.success('Configured .env for Limrun');
|
|
141
|
+
const streamUrl = await this.buildAndLaunchProject({
|
|
142
|
+
projectRoot: process.cwd(),
|
|
143
|
+
displayName: 'lim-run-sample',
|
|
144
|
+
labels: {
|
|
145
|
+
name: 'lim-go-sample',
|
|
146
|
+
repo: 'sample-native-app',
|
|
147
|
+
},
|
|
148
|
+
progressLabel: buildProgressLabel('native-ios'),
|
|
149
|
+
failureLabel: 'Sample build failed',
|
|
150
|
+
recoveryPath: sample.path,
|
|
151
|
+
recoveryFromDir: cwd,
|
|
152
|
+
});
|
|
153
|
+
this.output('');
|
|
154
|
+
this.output('✨ Click here to see your app:');
|
|
155
|
+
this.output(streamUrl);
|
|
156
|
+
this.outputNextSteps(humanPath(sample.path, cwd), samplePrompt());
|
|
157
|
+
}
|
|
158
|
+
async buildAndLaunchProject({ projectRoot, displayName, labels, progressLabel, failureLabel, recoveryPath, recoveryFromDir, }) {
|
|
159
|
+
let recoveryPrinted = false;
|
|
160
|
+
try {
|
|
161
|
+
return await this.withAuth(async () => {
|
|
162
|
+
const instance = await this.withProgress('Preparing a Limrun iOS simulator with Xcode', () => this.client.iosInstances.create({
|
|
163
|
+
wait: true,
|
|
164
|
+
reuseIfExists: true,
|
|
165
|
+
metadata: {
|
|
166
|
+
displayName,
|
|
167
|
+
labels,
|
|
168
|
+
},
|
|
169
|
+
spec: {
|
|
170
|
+
sandbox: {
|
|
171
|
+
xcode: {
|
|
172
|
+
enabled: true,
|
|
173
|
+
},
|
|
174
|
+
},
|
|
175
|
+
},
|
|
176
|
+
}));
|
|
177
|
+
(0, config_1.registerCreatedInstance)(instance, ['xcode']);
|
|
178
|
+
const xcodeUrl = instance.status.sandbox?.xcode?.url;
|
|
179
|
+
if (!xcodeUrl) {
|
|
180
|
+
this.error('The iOS instance is ready, but its Xcode sandbox URL is missing.');
|
|
181
|
+
}
|
|
182
|
+
const xcode = await this.client.xcodeInstances.createClient({
|
|
183
|
+
apiUrl: xcodeUrl,
|
|
184
|
+
token: instance.status.token,
|
|
185
|
+
});
|
|
186
|
+
await xcode.sync(projectRoot, { watch: false });
|
|
187
|
+
const build = xcode.xcodebuild();
|
|
188
|
+
this.startProgress(progressLabel);
|
|
189
|
+
build.stdout.on('data', (line) => this.appendProgressLog(line));
|
|
190
|
+
build.stderr.on('data', (line) => this.appendProgressLog(line));
|
|
191
|
+
const buildStart = Date.now();
|
|
192
|
+
let result;
|
|
193
|
+
try {
|
|
194
|
+
result = await build;
|
|
195
|
+
}
|
|
196
|
+
catch (err) {
|
|
197
|
+
this.stopProgress('failure');
|
|
198
|
+
throw err;
|
|
199
|
+
}
|
|
200
|
+
if (result.exitCode !== 0) {
|
|
201
|
+
this.stopProgress('failure');
|
|
202
|
+
this.outputProjectRecovery(recoveryPath, recoveryFromDir);
|
|
203
|
+
recoveryPrinted = true;
|
|
204
|
+
this.error(`${failureLabel} with exit code ${result.exitCode}`, { exit: result.exitCode });
|
|
205
|
+
}
|
|
206
|
+
this.stopProgress('success', `Built and launched in ${formatDurationMs(Date.now() - buildStart)}`);
|
|
207
|
+
return this.consoleStreamUrl(instance.metadata.id);
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
catch (err) {
|
|
211
|
+
if (!recoveryPrinted) {
|
|
212
|
+
this.outputProjectRecovery(recoveryPath, recoveryFromDir);
|
|
213
|
+
}
|
|
214
|
+
throw err;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
outputProjectRecovery(projectPath, fromDir = process.cwd()) {
|
|
218
|
+
this.output('');
|
|
219
|
+
this.output(`Project is available at ${humanPath(projectPath, fromDir)}.`);
|
|
220
|
+
this.output('Open it with your coding agent to continue.');
|
|
221
|
+
}
|
|
222
|
+
outputNextSteps(projectPath, prompt) {
|
|
223
|
+
this.output('');
|
|
224
|
+
this.output('Next steps:');
|
|
225
|
+
this.output('');
|
|
226
|
+
this.output(`- Open ${bold(interactivePathLabel(projectPath))} in your coding agent`);
|
|
227
|
+
this.output('');
|
|
228
|
+
this.output(`- Prompt it: "${prompt}"`);
|
|
229
|
+
}
|
|
230
|
+
async withProgress(message, run) {
|
|
231
|
+
this.startProgress(message);
|
|
232
|
+
try {
|
|
233
|
+
const result = await run();
|
|
234
|
+
this.stopProgress('success');
|
|
235
|
+
return result;
|
|
236
|
+
}
|
|
237
|
+
catch (err) {
|
|
238
|
+
this.stopProgress('failure');
|
|
239
|
+
throw err;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
startProgress(message) {
|
|
243
|
+
if (this.shouldSuppressInfo()) {
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
this.progress = { frame: 0, logLines: [], message, renderedRows: 0 };
|
|
247
|
+
if (process.stderr.isTTY) {
|
|
248
|
+
this.progress.timer = setInterval(() => this.renderProgress(), process.platform === 'win32' ? 500 : 100);
|
|
249
|
+
this.progress.timer.unref();
|
|
250
|
+
this.renderProgress();
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
stopProgress(result = 'success', message) {
|
|
254
|
+
if (this.shouldSuppressInfo() || !this.progress) {
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
const progress = this.progress;
|
|
258
|
+
if (progress.timer) {
|
|
259
|
+
clearInterval(progress.timer);
|
|
260
|
+
}
|
|
261
|
+
this.progress = undefined;
|
|
262
|
+
this.clearProgressBlock(progress);
|
|
263
|
+
const icon = result === 'success' ? core_1.ux.colorize('green', SUCCESS_ICON) : core_1.ux.colorize('red', FAILURE_ICON);
|
|
264
|
+
process.stderr.write(`${icon} ${message ?? progress.message}\n`);
|
|
265
|
+
}
|
|
266
|
+
appendProgressLog(chunk) {
|
|
267
|
+
if (this.shouldSuppressInfo() || !this.progress) {
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
270
|
+
const lines = String(chunk)
|
|
271
|
+
.replace(/\r/g, '\n')
|
|
272
|
+
.split('\n')
|
|
273
|
+
.map((line) => line.trimEnd())
|
|
274
|
+
.filter((line) => line.length > 0);
|
|
275
|
+
if (lines.length === 0) {
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
this.progress.logLines.push(...lines);
|
|
279
|
+
this.progress.logLines = this.progress.logLines.slice(-BUILD_LOG_TAIL_LINES);
|
|
280
|
+
this.renderProgress();
|
|
281
|
+
}
|
|
282
|
+
renderProgress() {
|
|
283
|
+
if (!this.progress || !process.stderr.isTTY) {
|
|
284
|
+
return;
|
|
285
|
+
}
|
|
286
|
+
const frame = SPINNER_FRAMES[this.progress.frame % SPINNER_FRAMES.length];
|
|
287
|
+
this.progress.frame += 1;
|
|
288
|
+
const lines = [
|
|
289
|
+
progressLine(`${core_1.ux.colorize('magenta', frame)} ${this.progress.message}`),
|
|
290
|
+
...this.progress.logLines.map((line) => core_1.ux.colorize('dim', ` ${truncateTerminalLine(line, 2)}`)),
|
|
291
|
+
];
|
|
292
|
+
this.clearProgressBlock(this.progress);
|
|
293
|
+
this.progress.renderedRows = lines.length;
|
|
294
|
+
process.stderr.write(lines.join('\n'));
|
|
295
|
+
}
|
|
296
|
+
clearProgressBlock(progress) {
|
|
297
|
+
if (!process.stderr.isTTY) {
|
|
298
|
+
return;
|
|
299
|
+
}
|
|
300
|
+
process.stderr.clearLine(0);
|
|
301
|
+
process.stderr.cursorTo(0);
|
|
302
|
+
for (let i = 1; i < progress.renderedRows; i += 1) {
|
|
303
|
+
process.stderr.moveCursor(0, -1);
|
|
304
|
+
process.stderr.clearLine(0);
|
|
305
|
+
process.stderr.cursorTo(0);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
Run.baseFlags = {
|
|
310
|
+
'api-key': base_command_1.BaseCommand.baseFlags['api-key'],
|
|
311
|
+
quiet: base_command_1.BaseCommand.baseFlags.quiet,
|
|
312
|
+
};
|
|
313
|
+
Run.hiddenAliases = ['go'];
|
|
314
|
+
Run.summary = 'Get started with Limrun';
|
|
315
|
+
Run.description = 'Prepare your app for Limrun, or launch a working sample in a cloud simulator.';
|
|
316
|
+
Run.examples = ['<%= config.bin %> run'];
|
|
317
|
+
exports.default = Run;
|
|
318
|
+
function humanPath(absolutePath, fromDir = process.cwd()) {
|
|
319
|
+
const relative = path_1.default.relative(fromDir, absolutePath);
|
|
320
|
+
if (!relative)
|
|
321
|
+
return '.';
|
|
322
|
+
if (relative.startsWith('..') || path_1.default.isAbsolute(relative))
|
|
323
|
+
return absolutePath;
|
|
324
|
+
return relative;
|
|
325
|
+
}
|
|
326
|
+
function interactivePathLabel(value) {
|
|
327
|
+
return value === '.' ? 'current directory' : value;
|
|
328
|
+
}
|
|
329
|
+
function buildProgressLabel(kind) {
|
|
330
|
+
if (kind === 'expo') {
|
|
331
|
+
return 'Building and launching app (est. 5-10m)';
|
|
332
|
+
}
|
|
333
|
+
return 'Building and launching app (est. 30s-5m)';
|
|
334
|
+
}
|
|
335
|
+
function samplePrompt() {
|
|
336
|
+
return `Change \`Hello, world!\` to \`Hello, ${environmentUserName()}!\``;
|
|
337
|
+
}
|
|
338
|
+
function formatDurationMs(ms) {
|
|
339
|
+
if (ms < 1000) {
|
|
340
|
+
return `${ms}ms`;
|
|
341
|
+
}
|
|
342
|
+
const seconds = Math.round(ms / 1000);
|
|
343
|
+
if (seconds < 60) {
|
|
344
|
+
return `${seconds}s`;
|
|
345
|
+
}
|
|
346
|
+
const minutes = Math.floor(seconds / 60);
|
|
347
|
+
const remainder = seconds % 60;
|
|
348
|
+
return remainder === 0 ? `${minutes}m` : `${minutes}m ${remainder}s`;
|
|
349
|
+
}
|
|
350
|
+
function bold(value) {
|
|
351
|
+
return `\x1b[1m${value}\x1b[22m`;
|
|
352
|
+
}
|
|
353
|
+
function environmentUserName() {
|
|
354
|
+
return process.env['USER'] || process.env['USERNAME'] || safeOsUserName() || 'Limrun';
|
|
355
|
+
}
|
|
356
|
+
function safeOsUserName() {
|
|
357
|
+
try {
|
|
358
|
+
return os_1.default.userInfo().username;
|
|
359
|
+
}
|
|
360
|
+
catch {
|
|
361
|
+
return undefined;
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
function progressLine(line) {
|
|
365
|
+
const width = process.stderr.columns;
|
|
366
|
+
if (!width || line.length < width - 1) {
|
|
367
|
+
return line;
|
|
368
|
+
}
|
|
369
|
+
return `${line.slice(0, Math.max(0, width - 4))}...`;
|
|
370
|
+
}
|
|
371
|
+
function truncateTerminalLine(line, indent = 0) {
|
|
372
|
+
const width = process.stderr.columns;
|
|
373
|
+
const max = width ? width - indent - 1 : undefined;
|
|
374
|
+
if (!max || line.length < max) {
|
|
375
|
+
return line;
|
|
376
|
+
}
|
|
377
|
+
return `${line.slice(0, Math.max(0, max - 3))}...`;
|
|
378
|
+
}
|
|
379
|
+
//# 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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onboarding.d.ts","sourceRoot":"","sources":["../../src/lib/onboarding.ts"],"names":[],"mappings":"AAOA,OAAO,EAKL,KAAK,OAAO,EAEb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAoB,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAI5E,eAAO,MAAM,sBAAsB,oDAAoD,CAAC;AACxF,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AAIzD,KAAK,eAAe,GAAG,OAAO,CAAC,OAAO,EAAE,QAAQ,GAAG,QAAQ,CAAC,CAAC;AAC7D,KAAK,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC;AAIzD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,eAAe,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,UAAU,qBAAqB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,UAAU,2BAA2B;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B;AAED,KAAK,SAAS,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAEnE,UAAU,iBAAiB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAID,cAAM,eAAgB,SAAQ,KAAK;gBACrB,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAsB,cAAc,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAYnG;AAED,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,sBAAsB,CAYjF;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,
|
|
1
|
+
{"version":3,"file":"onboarding.d.ts","sourceRoot":"","sources":["../../src/lib/onboarding.ts"],"names":[],"mappings":"AAOA,OAAO,EAKL,KAAK,OAAO,EAEb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAoB,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAI5E,eAAO,MAAM,sBAAsB,oDAAoD,CAAC;AACxF,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AAIzD,KAAK,eAAe,GAAG,OAAO,CAAC,OAAO,EAAE,QAAQ,GAAG,QAAQ,CAAC,CAAC;AAC7D,KAAK,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC;AAIzD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,eAAe,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,UAAU,qBAAqB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,UAAU,2BAA2B;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B;AAED,KAAK,SAAS,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAEnE,UAAU,iBAAiB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAID,cAAM,eAAgB,SAAQ,KAAK;gBACrB,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAsB,cAAc,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAYnG;AAED,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,sBAAsB,CAYjF;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,CAuD3F;AA+FD,wBAAsB,oBAAoB,CAAC,EACzC,WAAW,EACX,UAAU,EACV,MAAM,GACP,EAAE,2BAA2B,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CA+B7D;AAoED,wBAAsB,gBAAgB,CAAC,EACrC,GAAG,EACH,GAAY,GACb,EAAE,iBAAiB,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,CAchE;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
package/dist/lib/onboarding.js
CHANGED
|
@@ -91,7 +91,7 @@ function applyProjectEnvApiKey(projectRoot) {
|
|
|
91
91
|
}
|
|
92
92
|
function ensureProjectEnvApiKey(projectRoot, apiKey) {
|
|
93
93
|
if (!apiKey) {
|
|
94
|
-
throw new OnboardingError('Limrun API key is missing after login. Run `lim login`, then rerun `lim
|
|
94
|
+
throw new OnboardingError('Limrun API key is missing after login. Run `lim login`, then rerun `lim run`.');
|
|
95
95
|
}
|
|
96
96
|
if (/[\r\n]/.test(apiKey)) {
|
|
97
97
|
throw new OnboardingError('Limrun API key contains an invalid newline.');
|
|
@@ -296,7 +296,7 @@ async function runGit(args, cwd) {
|
|
|
296
296
|
catch (err) {
|
|
297
297
|
const code = typeof err === 'object' && err && 'code' in err ? String(err.code) : '';
|
|
298
298
|
if (code === 'ENOENT') {
|
|
299
|
-
throw new OnboardingError('Git is required to fetch the sample app. Install git, then rerun `lim
|
|
299
|
+
throw new OnboardingError('Git is required to fetch the sample app. Install git, then rerun `lim run`.');
|
|
300
300
|
}
|
|
301
301
|
throw err;
|
|
302
302
|
}
|
|
@@ -309,17 +309,17 @@ async function verifySampleRemote(sampleDir, git) {
|
|
|
309
309
|
catch (err) {
|
|
310
310
|
if (err instanceof OnboardingError)
|
|
311
311
|
throw err;
|
|
312
|
-
throw new OnboardingError(`${sampleDir} already exists but is not a git checkout of ${exports.SAMPLE_NATIVE_APP_REPO}. Move or delete it, then rerun \`lim
|
|
312
|
+
throw new OnboardingError(`${sampleDir} already exists but is not a git checkout of ${exports.SAMPLE_NATIVE_APP_REPO}. Move or delete it, then rerun \`lim run\`.`);
|
|
313
313
|
}
|
|
314
314
|
if (!isExpectedSampleRemote(remote)) {
|
|
315
|
-
throw new OnboardingError(`${sampleDir} already exists with origin ${remote}. Move or delete it, then rerun \`lim
|
|
315
|
+
throw new OnboardingError(`${sampleDir} already exists with origin ${remote}. Move or delete it, then rerun \`lim run\`.`);
|
|
316
316
|
}
|
|
317
317
|
}
|
|
318
318
|
async function ensureSampleRepo({ cwd, git = runGit, }) {
|
|
319
319
|
const sampleDir = path_1.default.join(cwd, exports.SAMPLE_NATIVE_APP_DIR);
|
|
320
320
|
if (fs_1.default.existsSync(sampleDir)) {
|
|
321
321
|
if (!fs_1.default.lstatSync(sampleDir).isDirectory()) {
|
|
322
|
-
throw new OnboardingError(`${sampleDir} already exists and is not a directory. Move or delete it, then rerun \`lim
|
|
322
|
+
throw new OnboardingError(`${sampleDir} already exists and is not a directory. Move or delete it, then rerun \`lim run\`.`);
|
|
323
323
|
}
|
|
324
324
|
await verifySampleRemote(sampleDir, git);
|
|
325
325
|
return { path: sampleDir, reused: true };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onboarding.js","sourceRoot":"","sources":["../../src/lib/onboarding.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyEA,wCAYC;AAED,sDAYC;AAED,
|
|
1
|
+
{"version":3,"file":"onboarding.js","sourceRoot":"","sources":["../../src/lib/onboarding.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lim",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.1",
|
|
4
4
|
"description": "Use remote XCode, iOS Simulator, Android Emulator and more to build and test apps from Linux, Windows or macOS.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"lim": "./bin/run.js"
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"test": "jest"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@limrun/api": "0.28.
|
|
27
|
+
"@limrun/api": "0.28.8",
|
|
28
28
|
"@oclif/core": "^4",
|
|
29
29
|
"cli-progress": "^3.12.0",
|
|
30
30
|
"cli-table3": "^0.6.5",
|
package/dist/commands/go.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { BaseCommand } from '../base-command';
|
|
2
|
-
export default class Go extends BaseCommand {
|
|
3
|
-
static baseFlags: typeof BaseCommand.baseFlags;
|
|
4
|
-
static summary: string;
|
|
5
|
-
static description: string;
|
|
6
|
-
static examples: string[];
|
|
7
|
-
run(): Promise<void>;
|
|
8
|
-
private setupExistingProject;
|
|
9
|
-
private printSkillSummary;
|
|
10
|
-
private printEnvWarnings;
|
|
11
|
-
private validateAuth;
|
|
12
|
-
private runSampleFlow;
|
|
13
|
-
private outputBuildInProgress;
|
|
14
|
-
private outputSampleRecovery;
|
|
15
|
-
private outputSampleNextStep;
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=go.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"go.d.ts","sourceRoot":"","sources":["../../src/commands/go.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAkB9C,MAAM,CAAC,OAAO,OAAO,EAAG,SAAQ,WAAW;IACzC,MAAM,CAAC,SAAS,EAGA,OAAO,WAAW,CAAC,SAAS,CAAC;IAC7C,MAAM,CAAC,OAAO,SAA6B;IAC3C,MAAM,CAAC,WAAW,SAAmF;IACrG,MAAM,CAAC,QAAQ,WAA4B;IAErC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YA4BZ,oBAAoB;IA8BlC,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,gBAAgB;YAMV,YAAY;YAWZ,aAAa;IAyE3B,OAAO,CAAC,qBAAqB;IAK7B,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,oBAAoB;CAU7B"}
|
package/dist/commands/go.js
DELETED
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const path_1 = __importDefault(require("path"));
|
|
7
|
-
const base_command_1 = require("../base-command");
|
|
8
|
-
const config_1 = require("../lib/config");
|
|
9
|
-
const project_detection_1 = require("../lib/project-detection");
|
|
10
|
-
const onboarding_1 = require("../lib/onboarding");
|
|
11
|
-
const xcode_sandbox_1 = require("../lib/xcode-sandbox");
|
|
12
|
-
const VERSION = require('../../package.json').version;
|
|
13
|
-
const IOS_SKILL = 'limrun-xcode-and-ios-simulator';
|
|
14
|
-
const EXPO_SKILL = 'limrun-expo-development';
|
|
15
|
-
class Go extends base_command_1.BaseCommand {
|
|
16
|
-
async run() {
|
|
17
|
-
const { flags } = await this.parse(Go);
|
|
18
|
-
this.setParsedFlags(flags);
|
|
19
|
-
const detection = (0, project_detection_1.detectProject)(process.cwd());
|
|
20
|
-
const envRoot = detection.kind === 'sample' ? process.cwd() : detection.projectDir;
|
|
21
|
-
const projectEnvApiKey = flags['api-key'] ? undefined : (0, onboarding_1.applyProjectEnvApiKey)(envRoot).apiKey;
|
|
22
|
-
await (0, onboarding_1.ensureLoggedIn)({
|
|
23
|
-
version: VERSION,
|
|
24
|
-
apiKey: flags['api-key'],
|
|
25
|
-
log: (message) => this.info(message),
|
|
26
|
-
});
|
|
27
|
-
const apiKey = flags['api-key'] || (0, config_1.readConfig)().apiKey;
|
|
28
|
-
const allowAuthRetry = !flags['api-key'] && !projectEnvApiKey && !process.env['LIM_API_KEY'];
|
|
29
|
-
if (detection.kind === 'native-ios') {
|
|
30
|
-
await this.setupExistingProject(detection, [IOS_SKILL], apiKey, allowAuthRetry);
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
if (detection.kind === 'expo') {
|
|
34
|
-
await this.setupExistingProject(detection, [IOS_SKILL, EXPO_SKILL], apiKey, allowAuthRetry);
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
await this.runSampleFlow(apiKey, allowAuthRetry);
|
|
38
|
-
}
|
|
39
|
-
async setupExistingProject(detection, skillNames, apiKey, allowAuthRetry) {
|
|
40
|
-
const projectRoot = detection.projectDir;
|
|
41
|
-
const projectPath = humanPath(projectRoot);
|
|
42
|
-
await this.validateAuth(allowAuthRetry);
|
|
43
|
-
this.info('Detected an iOS/Expo project.');
|
|
44
|
-
this.info('Installing Limrun agent skills...');
|
|
45
|
-
const results = await (0, onboarding_1.installProjectSkills)({ projectRoot, skillNames });
|
|
46
|
-
this.printSkillSummary(results);
|
|
47
|
-
this.printEnvWarnings((0, onboarding_1.ensureProjectEnvApiKey)(projectRoot, apiKey).warnings);
|
|
48
|
-
this.info('Configured .env for Limrun.');
|
|
49
|
-
this.output('');
|
|
50
|
-
if (projectPath !== '.') {
|
|
51
|
-
this.output(`Project: ${projectPath}`);
|
|
52
|
-
this.output(`Run your coding agent from: cd ${shellQuote(projectPath)}`);
|
|
53
|
-
this.output('');
|
|
54
|
-
}
|
|
55
|
-
this.output('Next steps: open your coding agent in this project and ask:');
|
|
56
|
-
if (detection.kind === 'expo') {
|
|
57
|
-
this.output('"Build and run this Expo app with Limrun. Share the simulator URL when it is ready."');
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
this.output('"Build and run this iOS app with Limrun. Share the simulator URL when it is ready."');
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
printSkillSummary(results) {
|
|
64
|
-
const installed = results.filter((result) => result.status === 'installed').length;
|
|
65
|
-
const unchanged = results.filter((result) => result.status === 'unchanged').length;
|
|
66
|
-
const skipped = results.filter((result) => result.status === 'skipped');
|
|
67
|
-
if (installed > 0) {
|
|
68
|
-
this.info('Limrun skills installed for Claude Code and Cursor/OpenCode-compatible agents.');
|
|
69
|
-
}
|
|
70
|
-
else if (unchanged > 0 && skipped.length === 0) {
|
|
71
|
-
this.info('Limrun skills are already installed for Claude Code and Cursor/OpenCode-compatible agents.');
|
|
72
|
-
}
|
|
73
|
-
if (skipped.length > 0) {
|
|
74
|
-
this.info('Skipped skill directories with local changes:');
|
|
75
|
-
for (const result of skipped) {
|
|
76
|
-
this.info(` ${humanPath(result.path)}`);
|
|
77
|
-
}
|
|
78
|
-
this.info('Run `lim skills install` interactively, or rerun it with `--force`, to update them.');
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
printEnvWarnings(warnings) {
|
|
82
|
-
for (const warning of warnings) {
|
|
83
|
-
this.info(`Warning: ${warning}`);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
async validateAuth(allowRetry) {
|
|
87
|
-
const check = async () => {
|
|
88
|
-
await this.client.iosInstances.list({ state: 'ready' });
|
|
89
|
-
};
|
|
90
|
-
if (allowRetry) {
|
|
91
|
-
await this.withAuth(check);
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
await check();
|
|
95
|
-
}
|
|
96
|
-
async runSampleFlow(apiKey, allowAuthRetry) {
|
|
97
|
-
const cwd = process.cwd();
|
|
98
|
-
this.info('No iOS or Expo project detected. Setting up the sample app.');
|
|
99
|
-
await this.validateAuth(allowAuthRetry);
|
|
100
|
-
const sample = await (0, onboarding_1.ensureSampleRepo)({ cwd });
|
|
101
|
-
this.info(`${sample.reused ? 'Using existing' : 'Cloned'} ${humanPath(sample.path)}.`);
|
|
102
|
-
this.printEnvWarnings((0, onboarding_1.ensureProjectEnvApiKey)(sample.path, apiKey).warnings);
|
|
103
|
-
this.info('Configured .env for Limrun.');
|
|
104
|
-
let recoveryPrinted = false;
|
|
105
|
-
try {
|
|
106
|
-
await this.withAuth(async () => {
|
|
107
|
-
this.info('Preparing a Limrun iOS simulator with Xcode...');
|
|
108
|
-
const instance = await this.client.iosInstances.create({
|
|
109
|
-
wait: true,
|
|
110
|
-
reuseIfExists: true,
|
|
111
|
-
metadata: {
|
|
112
|
-
displayName: 'lim-go-sample',
|
|
113
|
-
labels: {
|
|
114
|
-
name: 'lim-go-sample',
|
|
115
|
-
repo: 'sample-native-app',
|
|
116
|
-
},
|
|
117
|
-
},
|
|
118
|
-
spec: {
|
|
119
|
-
sandbox: {
|
|
120
|
-
xcode: {
|
|
121
|
-
enabled: true,
|
|
122
|
-
},
|
|
123
|
-
},
|
|
124
|
-
},
|
|
125
|
-
});
|
|
126
|
-
(0, config_1.registerCreatedInstance)(instance, ['xcode']);
|
|
127
|
-
const xcodeUrl = instance.status.sandbox?.xcode?.url;
|
|
128
|
-
if (!xcodeUrl) {
|
|
129
|
-
this.error('The iOS instance is ready, but its Xcode sandbox URL is missing.');
|
|
130
|
-
}
|
|
131
|
-
const xcode = await this.client.xcodeInstances.createClient({
|
|
132
|
-
apiUrl: xcodeUrl,
|
|
133
|
-
token: instance.status.token,
|
|
134
|
-
});
|
|
135
|
-
this.info('Syncing sample app...');
|
|
136
|
-
await xcode.sync(sample.path, { watch: false });
|
|
137
|
-
this.info('Building and launching sample app...');
|
|
138
|
-
const xcodeSandboxId = (0, xcode_sandbox_1.xcodeSandboxIdFromUrl)(xcodeUrl);
|
|
139
|
-
if (xcodeSandboxId) {
|
|
140
|
-
this.outputBuildInProgress(xcodeSandboxId);
|
|
141
|
-
}
|
|
142
|
-
const build = xcode.xcodebuild();
|
|
143
|
-
const result = await build;
|
|
144
|
-
if (result.exitCode !== 0) {
|
|
145
|
-
this.outputSampleRecovery(sample.path);
|
|
146
|
-
recoveryPrinted = true;
|
|
147
|
-
this.error(`Sample build failed with exit code ${result.exitCode}`, { exit: result.exitCode });
|
|
148
|
-
}
|
|
149
|
-
this.output('Build completed successfully!');
|
|
150
|
-
this.output('');
|
|
151
|
-
this.output('App deployed and running in a Limrun cloud simulator:');
|
|
152
|
-
this.output(this.consoleStreamUrl(instance.metadata.id));
|
|
153
|
-
this.outputSampleNextStep(sample.path);
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
catch (err) {
|
|
157
|
-
if (!recoveryPrinted) {
|
|
158
|
-
this.outputSampleRecovery(sample.path);
|
|
159
|
-
}
|
|
160
|
-
throw err;
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
outputBuildInProgress(sandboxId) {
|
|
164
|
-
this.output('Build is in progress. You can follow the logs from:');
|
|
165
|
-
this.output(this.consoleBuildUrl(sandboxId));
|
|
166
|
-
}
|
|
167
|
-
outputSampleRecovery(samplePath) {
|
|
168
|
-
this.output('');
|
|
169
|
-
this.output(`Sample app is available at ${humanPath(samplePath)}.`);
|
|
170
|
-
this.output('Open it with your coding agent to continue.');
|
|
171
|
-
}
|
|
172
|
-
outputSampleNextStep(samplePath) {
|
|
173
|
-
this.output('');
|
|
174
|
-
this.output('Next steps:');
|
|
175
|
-
this.output(` cd ${shellQuote(humanPath(samplePath))}`);
|
|
176
|
-
this.output(' Open your favorite coding agent and ask:');
|
|
177
|
-
this.output(' "Change `Hello, world!` to `Hello, Limrun!`, rebuild with Limrun, and show me the updated simulator."');
|
|
178
|
-
this.output(' Start building your app.');
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
Go.baseFlags = {
|
|
182
|
-
'api-key': base_command_1.BaseCommand.baseFlags['api-key'],
|
|
183
|
-
quiet: base_command_1.BaseCommand.baseFlags.quiet,
|
|
184
|
-
};
|
|
185
|
-
Go.summary = 'Get started with Limrun';
|
|
186
|
-
Go.description = 'Prepare your app for Limrun, or launch a working sample in a cloud simulator.';
|
|
187
|
-
Go.examples = ['<%= config.bin %> go'];
|
|
188
|
-
exports.default = Go;
|
|
189
|
-
function humanPath(absolutePath) {
|
|
190
|
-
const relative = path_1.default.relative(process.cwd(), absolutePath);
|
|
191
|
-
if (!relative)
|
|
192
|
-
return '.';
|
|
193
|
-
if (relative.startsWith('..') || path_1.default.isAbsolute(relative))
|
|
194
|
-
return absolutePath;
|
|
195
|
-
return relative;
|
|
196
|
-
}
|
|
197
|
-
function shellQuote(value) {
|
|
198
|
-
if (/^[A-Za-z0-9_./:-]+$/.test(value)) {
|
|
199
|
-
return value;
|
|
200
|
-
}
|
|
201
|
-
return `'${value.replace(/'/g, "'\\''")}'`;
|
|
202
|
-
}
|
|
203
|
-
//# sourceMappingURL=go.js.map
|
package/dist/commands/go.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"go.js","sourceRoot":"","sources":["../../src/commands/go.ts"],"names":[],"mappings":"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"}
|