@autopilot-harness/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.
- package/LICENSE +21 -0
- package/README.md +55 -0
- package/assets/autopilot-harness-hook.mjs +193 -0
- package/assets/vendor/migrations/001_initial.sql +62 -0
- package/assets/vendor/migrations/002_pending_followup.sql +4 -0
- package/assets/vendor/migrations/003_reviewing_item.sql +1 -0
- package/assets/vendor/runtime.mjs +5524 -0
- package/dist/assets/autopilot-harness-hook.mjs +193 -0
- package/dist/assets/vendor/migrations/001_initial.sql +62 -0
- package/dist/assets/vendor/migrations/002_pending_followup.sql +4 -0
- package/dist/assets/vendor/migrations/003_reviewing_item.sql +1 -0
- package/dist/assets/vendor/runtime.mjs +5524 -0
- package/dist/bin.d.ts +3 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +300 -0
- package/dist/bin.js.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/init/config-merge.d.ts +27 -0
- package/dist/init/config-merge.d.ts.map +1 -0
- package/dist/init/config-merge.js +115 -0
- package/dist/init/config-merge.js.map +1 -0
- package/dist/init/default-config.d.ts +17 -0
- package/dist/init/default-config.d.ts.map +1 -0
- package/dist/init/default-config.js +101 -0
- package/dist/init/default-config.js.map +1 -0
- package/dist/init/hooks-merge.d.ts +25 -0
- package/dist/init/hooks-merge.d.ts.map +1 -0
- package/dist/init/hooks-merge.js +134 -0
- package/dist/init/hooks-merge.js.map +1 -0
- package/dist/init/install.d.ts +31 -0
- package/dist/init/install.d.ts.map +1 -0
- package/dist/init/install.js +829 -0
- package/dist/init/install.js.map +1 -0
- package/dist/init/platforms.d.ts +60 -0
- package/dist/init/platforms.d.ts.map +1 -0
- package/dist/init/platforms.js +275 -0
- package/dist/init/platforms.js.map +1 -0
- package/dist/init/tui.d.ts +65 -0
- package/dist/init/tui.d.ts.map +1 -0
- package/dist/init/tui.js +549 -0
- package/dist/init/tui.js.map +1 -0
- package/dist/init/types.d.ts +75 -0
- package/dist/init/types.d.ts.map +1 -0
- package/dist/init/types.js +9 -0
- package/dist/init/types.js.map +1 -0
- package/dist/init/wizard-copy.d.ts +74 -0
- package/dist/init/wizard-copy.d.ts.map +1 -0
- package/dist/init/wizard-copy.js +173 -0
- package/dist/init/wizard-copy.js.map +1 -0
- package/dist/init/wizard-helpers.d.ts +103 -0
- package/dist/init/wizard-helpers.d.ts.map +1 -0
- package/dist/init/wizard-helpers.js +724 -0
- package/dist/init/wizard-helpers.js.map +1 -0
- package/dist/locale-set.d.ts +24 -0
- package/dist/locale-set.d.ts.map +1 -0
- package/dist/locale-set.js +286 -0
- package/dist/locale-set.js.map +1 -0
- package/dist/names.d.ts +5 -0
- package/dist/names.d.ts.map +1 -0
- package/dist/names.js +5 -0
- package/dist/names.js.map +1 -0
- package/dist/project-fs.d.ts +48 -0
- package/dist/project-fs.d.ts.map +1 -0
- package/dist/project-fs.js +210 -0
- package/dist/project-fs.js.map +1 -0
- package/dist/read-untrusted-file.d.ts +41 -0
- package/dist/read-untrusted-file.d.ts.map +1 -0
- package/dist/read-untrusted-file.js +362 -0
- package/dist/read-untrusted-file.js.map +1 -0
- package/dist/session.d.ts +38 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +242 -0
- package/dist/session.js.map +1 -0
- package/dist/status-doctor.d.ts +22 -0
- package/dist/status-doctor.d.ts.map +1 -0
- package/dist/status-doctor.js +712 -0
- package/dist/status-doctor.js.map +1 -0
- package/dist/uninstall.d.ts +31 -0
- package/dist/uninstall.d.ts.map +1 -0
- package/dist/uninstall.js +333 -0
- package/dist/uninstall.js.map +1 -0
- package/dist/upgrade.d.ts +29 -0
- package/dist/upgrade.d.ts.map +1 -0
- package/dist/upgrade.js +290 -0
- package/dist/upgrade.js.map +1 -0
- package/dist/vendor-entry.d.ts +6 -0
- package/dist/vendor-entry.d.ts.map +1 -0
- package/dist/vendor-entry.js +16 -0
- package/dist/vendor-entry.js.map +1 -0
- package/package.json +54 -0
package/dist/init/tui.js
ADDED
|
@@ -0,0 +1,549 @@
|
|
|
1
|
+
import * as clack from "@clack/prompts";
|
|
2
|
+
import { CLI_NAME, NPM_PACKAGE_NAME, PREFERRED_NAME } from "../names.js";
|
|
3
|
+
import { PACKAGE_VERSION } from "./types.js";
|
|
4
|
+
import { installInitYes } from "./install.js";
|
|
5
|
+
import { answersToInstallOptions, appendShellAlias, formatCheatSheet, formatPostInstallOutro, installableHostOptions, normalizePlansDir, probeProject, resolveCliCommand, } from "./wizard-helpers.js";
|
|
6
|
+
import { sanitizePlatformId, } from "./platforms.js";
|
|
7
|
+
import { readConfigInstallHints } from "./config-merge.js";
|
|
8
|
+
import { MAX_UNTRUSTED_TEXT_BYTES, readUntrustedUtf8File, } from "../read-untrusted-file.js";
|
|
9
|
+
import path from "node:path";
|
|
10
|
+
function defaultPrompts() {
|
|
11
|
+
const select = async (opts) => {
|
|
12
|
+
const result = await clack.select({
|
|
13
|
+
message: opts.message,
|
|
14
|
+
options: opts.options,
|
|
15
|
+
initialValue: opts.initialValue,
|
|
16
|
+
});
|
|
17
|
+
return result;
|
|
18
|
+
};
|
|
19
|
+
const multiselect = async (opts) => {
|
|
20
|
+
const result = await clack.multiselect({
|
|
21
|
+
message: opts.message,
|
|
22
|
+
options: opts.options,
|
|
23
|
+
initialValues: opts.initialValues,
|
|
24
|
+
required: opts.required ?? true,
|
|
25
|
+
});
|
|
26
|
+
return result;
|
|
27
|
+
};
|
|
28
|
+
return {
|
|
29
|
+
intro: clack.intro,
|
|
30
|
+
outro: clack.outro,
|
|
31
|
+
note: clack.note,
|
|
32
|
+
log: {
|
|
33
|
+
info: clack.log.info,
|
|
34
|
+
warn: clack.log.warn,
|
|
35
|
+
step: clack.log.step,
|
|
36
|
+
},
|
|
37
|
+
confirm: clack.confirm,
|
|
38
|
+
select,
|
|
39
|
+
multiselect,
|
|
40
|
+
text: clack.text,
|
|
41
|
+
isCancel: clack.isCancel,
|
|
42
|
+
spinner: clack.spinner,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
function cancelOut(p, message) {
|
|
46
|
+
p.outro(message);
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
function readProjectLocale(projectRoot) {
|
|
50
|
+
const configPath = path.join(projectRoot, ".autopilot", "config.yml");
|
|
51
|
+
try {
|
|
52
|
+
const yaml = readUntrustedUtf8File(configPath, MAX_UNTRUSTED_TEXT_BYTES, ".autopilot/config.yml");
|
|
53
|
+
const hints = readConfigInstallHints(yaml);
|
|
54
|
+
return hints.locale === "zh-CN" ? "zh-CN" : "en";
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
return "en";
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Collect wizard answers via prompts. Returns null if the user cancels.
|
|
62
|
+
*/
|
|
63
|
+
export async function collectWizardAnswers(opts) {
|
|
64
|
+
const p = opts.prompts ?? defaultPrompts();
|
|
65
|
+
const projectRoot = opts.projectRoot;
|
|
66
|
+
const probe = probeProject(projectRoot);
|
|
67
|
+
p.intro(`Welcome to ${PREFERRED_NAME}`);
|
|
68
|
+
p.note([
|
|
69
|
+
"A small harness that keeps agents honest across two phases:",
|
|
70
|
+
"",
|
|
71
|
+
" 1. Plan — shape the work into a checklist",
|
|
72
|
+
" 2. Run — implement item by item, with self-review between steps",
|
|
73
|
+
"",
|
|
74
|
+
`You'll get host hooks (for the hosts you pick), slash skills, and a project config under .autopilot/.`,
|
|
75
|
+
`CLI package: ${NPM_PACKAGE_NAME} (bin: ${CLI_NAME})`,
|
|
76
|
+
].join("\n"), "What this installs");
|
|
77
|
+
const gitLine = probe.hasGit
|
|
78
|
+
? `git · ${probe.branch ?? "detached HEAD"}`
|
|
79
|
+
: "no git repo (works, but a git root is nicer)";
|
|
80
|
+
if (!probe.hasGit) {
|
|
81
|
+
p.log.warn("This folder isn't a git repository. That's fine if you meant it — otherwise cd to your project root first.");
|
|
82
|
+
}
|
|
83
|
+
const installHere = await p.confirm({
|
|
84
|
+
message: [
|
|
85
|
+
"Install Autopilot here?",
|
|
86
|
+
"",
|
|
87
|
+
` ${probe.projectRoot}`,
|
|
88
|
+
` ${gitLine}`,
|
|
89
|
+
].join("\n"),
|
|
90
|
+
initialValue: true,
|
|
91
|
+
});
|
|
92
|
+
if (p.isCancel(installHere) || !installHere) {
|
|
93
|
+
return cancelOut(p, `No problem. cd to the project you want, then run: ${resolveCliCommand()} init`);
|
|
94
|
+
}
|
|
95
|
+
let force = Boolean(opts.force);
|
|
96
|
+
if (probe.alreadyInitialized) {
|
|
97
|
+
p.log.warn("Looks like Autopilot is already set up (.autopilot/config.yml found).");
|
|
98
|
+
if (!force) {
|
|
99
|
+
p.note([
|
|
100
|
+
"A refresh updates hooks, skills, workflows, and the pin —",
|
|
101
|
+
"your existing config.yml is left alone (plans, verify, triggers stay as-is).",
|
|
102
|
+
].join("\n"), "Already installed");
|
|
103
|
+
const useForce = await p.confirm({
|
|
104
|
+
message: "Refresh the install files without touching config.yml?",
|
|
105
|
+
initialValue: false,
|
|
106
|
+
});
|
|
107
|
+
if (p.isCancel(useForce) || !useForce) {
|
|
108
|
+
return cancelOut(p, `Left as-is. Tip: ${resolveCliCommand()} init --force skips this question next time.`);
|
|
109
|
+
}
|
|
110
|
+
force = true;
|
|
111
|
+
}
|
|
112
|
+
// Force refresh: config/plans/verify are not rewritten — skip those prompts.
|
|
113
|
+
p.log.info("Keeping your config.yml; only wiring/skills will be refreshed.");
|
|
114
|
+
const locale = readProjectLocale(probe.projectRoot);
|
|
115
|
+
p.log.info(`Locale from config: ${locale}`);
|
|
116
|
+
const shellDefault = (process.env.SHELL ?? "").includes("zsh")
|
|
117
|
+
? "zshrc"
|
|
118
|
+
: (process.env.SHELL ?? "").includes("bash")
|
|
119
|
+
? "bashrc"
|
|
120
|
+
: "skip";
|
|
121
|
+
const cliCmd = resolveCliCommand();
|
|
122
|
+
const shellAlias = await p.select({
|
|
123
|
+
message: "Want a shell helper so you can type `autopilot` anywhere?",
|
|
124
|
+
options: [
|
|
125
|
+
{
|
|
126
|
+
value: "zshrc",
|
|
127
|
+
label: "Yes — add autopilot() to ~/.zshrc",
|
|
128
|
+
hint: cliCmd,
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
value: "bashrc",
|
|
132
|
+
label: "Yes — add autopilot() to ~/.bashrc",
|
|
133
|
+
hint: cliCmd,
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
value: "skip",
|
|
137
|
+
label: "No thanks — I'll call the CLI directly",
|
|
138
|
+
hint: cliCmd,
|
|
139
|
+
},
|
|
140
|
+
],
|
|
141
|
+
initialValue: shellDefault,
|
|
142
|
+
});
|
|
143
|
+
if (p.isCancel(shellAlias)) {
|
|
144
|
+
return cancelOut(p, "Cancelled — nothing was changed.");
|
|
145
|
+
}
|
|
146
|
+
const summary = [
|
|
147
|
+
`Project: ${probe.projectRoot}`,
|
|
148
|
+
`Mode: refresh (keep config.yml)`,
|
|
149
|
+
`Locale: ${locale}`,
|
|
150
|
+
`CLI: ${cliCmd}${shellAlias === "skip" ? "" : ` · alias → ~/.${shellAlias}`}`,
|
|
151
|
+
"",
|
|
152
|
+
"Will refresh: hook, skills, workflows, pin, hooks.json merge",
|
|
153
|
+
].join("\n");
|
|
154
|
+
const ready = await p.confirm({
|
|
155
|
+
message: `Sound good?\n\n${summary}`,
|
|
156
|
+
initialValue: true,
|
|
157
|
+
});
|
|
158
|
+
if (p.isCancel(ready) || !ready) {
|
|
159
|
+
return cancelOut(p, "Cancelled — nothing was changed.");
|
|
160
|
+
}
|
|
161
|
+
return {
|
|
162
|
+
projectRoot: probe.projectRoot,
|
|
163
|
+
locale,
|
|
164
|
+
platforms: [{ id: "cursor", surface: "ide" }],
|
|
165
|
+
platform: "cursor",
|
|
166
|
+
surface: "ide",
|
|
167
|
+
plansDir: "plans",
|
|
168
|
+
plansGit: "commit",
|
|
169
|
+
verifyEnabled: false,
|
|
170
|
+
reviewScope: "executing_only",
|
|
171
|
+
maxErrorsBeforePause: 0,
|
|
172
|
+
shellAlias,
|
|
173
|
+
force: true,
|
|
174
|
+
packageVersion: opts.packageVersion ?? PACKAGE_VERSION,
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
p.note([
|
|
178
|
+
"Agent replies and stock trigger phrases will follow this locale.",
|
|
179
|
+
`You can switch later with: ${resolveCliCommand()} locale set en`,
|
|
180
|
+
"(use zh-CN for Simplified Chinese)",
|
|
181
|
+
].join("\n"), "Language");
|
|
182
|
+
const locale = await p.select({
|
|
183
|
+
message: "Which language should Autopilot speak in this project?",
|
|
184
|
+
options: [
|
|
185
|
+
{ value: "en", label: "English", hint: "default for most OSS repos" },
|
|
186
|
+
{
|
|
187
|
+
value: "zh-CN",
|
|
188
|
+
label: "Chinese (Simplified)",
|
|
189
|
+
hint: "followups & skill blurbs in Simplified Chinese",
|
|
190
|
+
},
|
|
191
|
+
],
|
|
192
|
+
initialValue: opts.locale === "zh-CN" ? "zh-CN" : "en",
|
|
193
|
+
});
|
|
194
|
+
if (p.isCancel(locale)) {
|
|
195
|
+
return cancelOut(p, "Cancelled — nothing was changed.");
|
|
196
|
+
}
|
|
197
|
+
const hostOptions = installableHostOptions();
|
|
198
|
+
const wantPlatform = sanitizePlatformId(opts.platform ?? "");
|
|
199
|
+
const defaultHostKeys = (() => {
|
|
200
|
+
const fromFlag = wantPlatform
|
|
201
|
+
? hostOptions
|
|
202
|
+
.filter((o) => o.binding.id === wantPlatform)
|
|
203
|
+
.map((o) => o.value)
|
|
204
|
+
: [];
|
|
205
|
+
if (fromFlag.length > 0)
|
|
206
|
+
return fromFlag;
|
|
207
|
+
return hostOptions[0] ? [hostOptions[0].value] : [];
|
|
208
|
+
})();
|
|
209
|
+
const selectedHosts = await p.multiselect({
|
|
210
|
+
message: "Which agent hosts should Autopilot install for? (multi-select)",
|
|
211
|
+
options: hostOptions.map((o) => ({
|
|
212
|
+
value: o.value,
|
|
213
|
+
label: o.label,
|
|
214
|
+
})),
|
|
215
|
+
initialValues: defaultHostKeys,
|
|
216
|
+
required: true,
|
|
217
|
+
});
|
|
218
|
+
if (p.isCancel(selectedHosts)) {
|
|
219
|
+
return cancelOut(p, "Cancelled — nothing was changed.");
|
|
220
|
+
}
|
|
221
|
+
if (!Array.isArray(selectedHosts) || selectedHosts.length === 0) {
|
|
222
|
+
return cancelOut(p, "Cancelled — pick at least one host.");
|
|
223
|
+
}
|
|
224
|
+
const platforms = [];
|
|
225
|
+
const seen = new Set();
|
|
226
|
+
for (const key of selectedHosts) {
|
|
227
|
+
const opt = hostOptions.find((o) => o.value === key);
|
|
228
|
+
if (!opt)
|
|
229
|
+
continue;
|
|
230
|
+
if (seen.has(opt.value))
|
|
231
|
+
continue;
|
|
232
|
+
seen.add(opt.value);
|
|
233
|
+
platforms.push({ id: opt.binding.id, surface: opt.binding.surface });
|
|
234
|
+
}
|
|
235
|
+
if (platforms.length === 0) {
|
|
236
|
+
return cancelOut(p, "Cancelled — no valid hosts selected.");
|
|
237
|
+
}
|
|
238
|
+
const platform = platforms[0].id;
|
|
239
|
+
const surface = platforms[0].surface;
|
|
240
|
+
p.note([
|
|
241
|
+
"Plans live as ordinary markdown in your repo:",
|
|
242
|
+
" <dir>/<slug>/{brief,plan,checklist}.md",
|
|
243
|
+
"Most people keep them at plans/ next to the code.",
|
|
244
|
+
].join("\n"), "Plans");
|
|
245
|
+
const plansChoice = await p.select({
|
|
246
|
+
message: "Where should plan files live?",
|
|
247
|
+
options: [
|
|
248
|
+
{
|
|
249
|
+
value: "plans",
|
|
250
|
+
label: "plans/ at the repo root",
|
|
251
|
+
hint: "recommended",
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
value: "custom",
|
|
255
|
+
label: "Somewhere else…",
|
|
256
|
+
hint: "e.g. docs/plans",
|
|
257
|
+
},
|
|
258
|
+
],
|
|
259
|
+
initialValue: "plans",
|
|
260
|
+
});
|
|
261
|
+
if (p.isCancel(plansChoice)) {
|
|
262
|
+
return cancelOut(p, "Cancelled — nothing was changed.");
|
|
263
|
+
}
|
|
264
|
+
let plansDir = "plans";
|
|
265
|
+
if (plansChoice === "custom") {
|
|
266
|
+
const custom = await p.text({
|
|
267
|
+
message: "Relative path from the project root:",
|
|
268
|
+
placeholder: "docs/plans",
|
|
269
|
+
initialValue: "docs/plans",
|
|
270
|
+
validate: (v) => {
|
|
271
|
+
const n = normalizePlansDir(v);
|
|
272
|
+
return n.ok ? undefined : n.error;
|
|
273
|
+
},
|
|
274
|
+
});
|
|
275
|
+
if (p.isCancel(custom)) {
|
|
276
|
+
return cancelOut(p, "Cancelled — nothing was changed.");
|
|
277
|
+
}
|
|
278
|
+
const n = normalizePlansDir(custom);
|
|
279
|
+
if (!n.ok) {
|
|
280
|
+
return cancelOut(p, n.error);
|
|
281
|
+
}
|
|
282
|
+
plansDir = n.value;
|
|
283
|
+
}
|
|
284
|
+
const plansGit = await p.select({
|
|
285
|
+
message: "Should those plan files be committed with the project?",
|
|
286
|
+
options: [
|
|
287
|
+
{
|
|
288
|
+
value: "commit",
|
|
289
|
+
label: "Yes — keep them in git",
|
|
290
|
+
hint: "best for teams & reviewable history",
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
value: "local-only",
|
|
294
|
+
label: "No — gitignore the plans dir",
|
|
295
|
+
hint: "handy for personal scratchpads",
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
value: "leave",
|
|
299
|
+
label: "Don't touch .gitignore",
|
|
300
|
+
hint: "I'll decide later",
|
|
301
|
+
},
|
|
302
|
+
],
|
|
303
|
+
initialValue: "commit",
|
|
304
|
+
});
|
|
305
|
+
if (p.isCancel(plansGit)) {
|
|
306
|
+
return cancelOut(p, "Cancelled — nothing was changed.");
|
|
307
|
+
}
|
|
308
|
+
p.note([
|
|
309
|
+
"Self-review: fix → multi-lens confirm after code edits.",
|
|
310
|
+
"executing_only — only after Autopilot RUN (checklist mode).",
|
|
311
|
+
"project — any product-code edit, no ON/RUN required.",
|
|
312
|
+
"With project scope, error recovery and self-review apply to casual project chats",
|
|
313
|
+
"(no ON/RUN required). Disable ~/.cursor global self-review to avoid double injection.",
|
|
314
|
+
].join("\n"), "Self-review scope");
|
|
315
|
+
const reviewScopeChoice = await p.select({
|
|
316
|
+
message: "When should automatic self-review run?",
|
|
317
|
+
options: [
|
|
318
|
+
{
|
|
319
|
+
value: "executing_only",
|
|
320
|
+
label: "Only during Autopilot RUN",
|
|
321
|
+
hint: "default — checklist executing mode",
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
value: "project",
|
|
325
|
+
label: "Project-wide (edits + error recovery)",
|
|
326
|
+
hint: "no ON/RUN required",
|
|
327
|
+
},
|
|
328
|
+
],
|
|
329
|
+
initialValue: "executing_only",
|
|
330
|
+
});
|
|
331
|
+
if (p.isCancel(reviewScopeChoice)) {
|
|
332
|
+
return cancelOut(p, "Cancelled — nothing was changed.");
|
|
333
|
+
}
|
|
334
|
+
p.note([
|
|
335
|
+
"Optional: after self-review, Autopilot can require machine checks",
|
|
336
|
+
"(tests, lint, …) before advancing. You can wire commands in config.yml",
|
|
337
|
+
"anytime — this only flips the enabled flag.",
|
|
338
|
+
].join("\n"), "Verify (optional)");
|
|
339
|
+
const verifyChoice = await p.select({
|
|
340
|
+
message: "Enable the verify layer now?",
|
|
341
|
+
options: [
|
|
342
|
+
{
|
|
343
|
+
value: "skip",
|
|
344
|
+
label: "Skip for now",
|
|
345
|
+
hint: "you can turn it on later — default",
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
value: "enable",
|
|
349
|
+
label: "Enable the flag",
|
|
350
|
+
hint: "add commands under review.verify in config.yml",
|
|
351
|
+
},
|
|
352
|
+
],
|
|
353
|
+
initialValue: "skip",
|
|
354
|
+
});
|
|
355
|
+
if (p.isCancel(verifyChoice)) {
|
|
356
|
+
return cancelOut(p, "Cancelled — nothing was changed.");
|
|
357
|
+
}
|
|
358
|
+
p.note([
|
|
359
|
+
"When a turn fails (HTTP 500, tool error, …), Autopilot can",
|
|
360
|
+
"keep recovering — or pause after N failures so you can take a look.",
|
|
361
|
+
"Paused sessions resume with: Autopilot RESUME / /autopilot-resume",
|
|
362
|
+
"",
|
|
363
|
+
"Written to config as review.errors.max_before_pause (0 = never pause).",
|
|
364
|
+
].join("\n"), "Turn errors");
|
|
365
|
+
const errorPauseChoice = await p.select({
|
|
366
|
+
message: "How should consecutive turn errors be handled?",
|
|
367
|
+
options: [
|
|
368
|
+
{
|
|
369
|
+
value: "unlimited",
|
|
370
|
+
label: "Keep going — never auto-pause",
|
|
371
|
+
hint: "best default for overnight / long runs",
|
|
372
|
+
},
|
|
373
|
+
{
|
|
374
|
+
value: "5",
|
|
375
|
+
label: "Pause after 5 errors",
|
|
376
|
+
hint: "a sensible safety net",
|
|
377
|
+
},
|
|
378
|
+
{
|
|
379
|
+
value: "custom",
|
|
380
|
+
label: "Pick my own number…",
|
|
381
|
+
hint: "1–1000",
|
|
382
|
+
},
|
|
383
|
+
],
|
|
384
|
+
initialValue: "unlimited",
|
|
385
|
+
});
|
|
386
|
+
if (p.isCancel(errorPauseChoice)) {
|
|
387
|
+
return cancelOut(p, "Cancelled — nothing was changed.");
|
|
388
|
+
}
|
|
389
|
+
let maxErrorsBeforePause = 0;
|
|
390
|
+
if (errorPauseChoice === "5") {
|
|
391
|
+
maxErrorsBeforePause = 5;
|
|
392
|
+
}
|
|
393
|
+
else if (errorPauseChoice === "custom") {
|
|
394
|
+
const custom = await p.text({
|
|
395
|
+
message: "Pause after how many consecutive turn errors?",
|
|
396
|
+
placeholder: "5",
|
|
397
|
+
initialValue: "5",
|
|
398
|
+
validate: (v) => {
|
|
399
|
+
const n = Number((v ?? "").trim());
|
|
400
|
+
if (!Number.isInteger(n) || n < 1 || n > 1000) {
|
|
401
|
+
return "Please enter a whole number between 1 and 1000";
|
|
402
|
+
}
|
|
403
|
+
return undefined;
|
|
404
|
+
},
|
|
405
|
+
});
|
|
406
|
+
if (p.isCancel(custom)) {
|
|
407
|
+
return cancelOut(p, "Cancelled — nothing was changed.");
|
|
408
|
+
}
|
|
409
|
+
maxErrorsBeforePause = Number(String(custom).trim());
|
|
410
|
+
}
|
|
411
|
+
p.note([
|
|
412
|
+
"Day to day, prefer the slash skills: /autopilot-on, /autopilot-run, …",
|
|
413
|
+
"Plain-text triggers (\"Autopilot ON\", …) still work as a fallback.",
|
|
414
|
+
"Phrases follow your locale; tweak anytime in .autopilot/config.yml.",
|
|
415
|
+
].join("\n"), "How you'll start it");
|
|
416
|
+
const cliCmd = resolveCliCommand();
|
|
417
|
+
const shellDefault = (process.env.SHELL ?? "").includes("zsh")
|
|
418
|
+
? "zshrc"
|
|
419
|
+
: (process.env.SHELL ?? "").includes("bash")
|
|
420
|
+
? "bashrc"
|
|
421
|
+
: "skip";
|
|
422
|
+
const shellAlias = await p.select({
|
|
423
|
+
message: "Want a shell helper so you can type `autopilot` anywhere?",
|
|
424
|
+
options: [
|
|
425
|
+
{
|
|
426
|
+
value: "zshrc",
|
|
427
|
+
label: "Yes — add autopilot() to ~/.zshrc",
|
|
428
|
+
hint: cliCmd,
|
|
429
|
+
},
|
|
430
|
+
{
|
|
431
|
+
value: "bashrc",
|
|
432
|
+
label: "Yes — add autopilot() to ~/.bashrc",
|
|
433
|
+
hint: cliCmd,
|
|
434
|
+
},
|
|
435
|
+
{
|
|
436
|
+
value: "skip",
|
|
437
|
+
label: "No thanks — I'll call the CLI directly",
|
|
438
|
+
hint: cliCmd,
|
|
439
|
+
},
|
|
440
|
+
],
|
|
441
|
+
initialValue: shellDefault,
|
|
442
|
+
});
|
|
443
|
+
if (p.isCancel(shellAlias)) {
|
|
444
|
+
return cancelOut(p, "Cancelled — nothing was changed.");
|
|
445
|
+
}
|
|
446
|
+
const hostSummary = platforms
|
|
447
|
+
.map((b) => `${b.id}(${b.surface})`)
|
|
448
|
+
.join(", ");
|
|
449
|
+
const summary = [
|
|
450
|
+
`Project: ${probe.projectRoot}`,
|
|
451
|
+
`Hosts: ${hostSummary}`,
|
|
452
|
+
`Locale: ${locale}`,
|
|
453
|
+
`Plans: ${plansDir}/<slug>/checklist.md`,
|
|
454
|
+
`In git: ${plansGit === "commit"
|
|
455
|
+
? "yes"
|
|
456
|
+
: plansGit === "local-only"
|
|
457
|
+
? "no (gitignore)"
|
|
458
|
+
: "unchanged"}`,
|
|
459
|
+
`Verify: ${verifyChoice === "skip" ? "off" : "flag on — add commands later"}`,
|
|
460
|
+
`Errors: ${maxErrorsBeforePause === 0
|
|
461
|
+
? "never auto-pause"
|
|
462
|
+
: `pause after ${maxErrorsBeforePause}`}`,
|
|
463
|
+
`CLI: ${cliCmd}${shellAlias === "skip" ? "" : ` · alias → ~/.${shellAlias}`}`,
|
|
464
|
+
"",
|
|
465
|
+
"Will write: .autopilot/, host hooks, skills, workflows, quickstart",
|
|
466
|
+
].join("\n");
|
|
467
|
+
const ready = await p.confirm({
|
|
468
|
+
message: `Ready to install?\n\n${summary}`,
|
|
469
|
+
initialValue: true,
|
|
470
|
+
});
|
|
471
|
+
if (p.isCancel(ready) || !ready) {
|
|
472
|
+
return cancelOut(p, "Cancelled — nothing was changed.");
|
|
473
|
+
}
|
|
474
|
+
return {
|
|
475
|
+
projectRoot: probe.projectRoot,
|
|
476
|
+
locale,
|
|
477
|
+
platforms,
|
|
478
|
+
platform,
|
|
479
|
+
surface,
|
|
480
|
+
plansDir,
|
|
481
|
+
plansGit,
|
|
482
|
+
verifyEnabled: verifyChoice === "enable",
|
|
483
|
+
reviewScope: reviewScopeChoice,
|
|
484
|
+
maxErrorsBeforePause,
|
|
485
|
+
shellAlias,
|
|
486
|
+
force,
|
|
487
|
+
packageVersion: opts.packageVersion ?? PACKAGE_VERSION,
|
|
488
|
+
};
|
|
489
|
+
}
|
|
490
|
+
/**
|
|
491
|
+
* Run interactive init end-to-end. Returns process exit code.
|
|
492
|
+
*/
|
|
493
|
+
export async function runInteractiveInit(opts) {
|
|
494
|
+
// Injected prompts (tests) skip the TTY gate; real CLI needs a terminal.
|
|
495
|
+
if (!opts.prompts && !process.stdin.isTTY) {
|
|
496
|
+
console.error(`Interactive init requires a TTY. Use: ${resolveCliCommand()} init --yes`);
|
|
497
|
+
return 1;
|
|
498
|
+
}
|
|
499
|
+
const p = opts.prompts ?? defaultPrompts();
|
|
500
|
+
const answers = await collectWizardAnswers({ ...opts, prompts: p });
|
|
501
|
+
if (!answers)
|
|
502
|
+
return 1;
|
|
503
|
+
const installOpts = answersToInstallOptions(answers);
|
|
504
|
+
const installFn = opts.install ?? installInitYes;
|
|
505
|
+
const spin = p.spinner();
|
|
506
|
+
spin.start("Installing Autopilot…");
|
|
507
|
+
let result;
|
|
508
|
+
try {
|
|
509
|
+
result = installFn(installOpts);
|
|
510
|
+
}
|
|
511
|
+
catch (err) {
|
|
512
|
+
spin.stop("Install failed");
|
|
513
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
514
|
+
p.log.warn(msg);
|
|
515
|
+
p.outro("Something went wrong — see the message above.");
|
|
516
|
+
return 1;
|
|
517
|
+
}
|
|
518
|
+
if (!result.ok) {
|
|
519
|
+
spin.stop("Install failed");
|
|
520
|
+
p.log.warn(result.error);
|
|
521
|
+
p.outro("Something went wrong — see the message above.");
|
|
522
|
+
return 1;
|
|
523
|
+
}
|
|
524
|
+
spin.stop("Installed");
|
|
525
|
+
for (const f of result.written) {
|
|
526
|
+
p.log.step(`+ ${f}`);
|
|
527
|
+
}
|
|
528
|
+
if (answers.shellAlias !== "skip") {
|
|
529
|
+
try {
|
|
530
|
+
const shortcut = appendShellAlias(answers.shellAlias);
|
|
531
|
+
if (shortcut.added) {
|
|
532
|
+
p.log.step(`shell helper → ${shortcut.path}`);
|
|
533
|
+
p.log.info(`Open a new shell, or: source ${shortcut.path}`);
|
|
534
|
+
}
|
|
535
|
+
else {
|
|
536
|
+
p.log.info(`Shell helper already present in ${shortcut.path}`);
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
catch (err) {
|
|
540
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
541
|
+
p.log.warn(`Could not write shell helper: ${msg}`);
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
const cheat = formatCheatSheet(answers.locale, resolveCliCommand(), answers.plansDir, answers.platforms?.map((b) => b.id) ?? answers.platform);
|
|
545
|
+
p.note(cheat.join("\n"), `${PREFERRED_NAME} is ready`);
|
|
546
|
+
p.outro(formatPostInstallOutro(answers.platforms?.map((b) => b.id) ?? answers.platform));
|
|
547
|
+
return 0;
|
|
548
|
+
}
|
|
549
|
+
//# sourceMappingURL=tui.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tui.js","sourceRoot":"","sources":["../../src/init/tui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,GAIlB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,kBAAkB,GAEnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EACL,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,IAAI,MAAM,WAAW,CAAC;AA0C7B,SAAS,cAAc;IACrB,MAAM,MAAM,GAA0B,KAAK,EAAK,IAI/C,EAAuB,EAAE;QACxB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC;YAChC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAgB;YAC9B,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC,CAAC;QACH,OAAO,MAAoB,CAAC;IAC9B,CAAC,CAAC;IACF,MAAM,WAAW,GAA+B,KAAK,EAAK,IAKzD,EAAyB,EAAE;QAC1B,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC;YACrC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAgB;YAC9B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;SAChC,CAAC,CAAC;QACH,OAAO,MAAsB,CAAC;IAChC,CAAC,CAAC;IACF,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,GAAG,EAAE;YACH,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI;YACpB,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI;YACpB,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI;SACrB;QACD,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,MAAM;QACN,WAAW;QACX,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC;AACJ,CAAC;AAeD,SAAS,SAAS,CAAC,CAAc,EAAE,OAAe;IAChD,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,iBAAiB,CAAC,WAAmB;IAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;IACtE,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,qBAAqB,CAChC,UAAU,EACV,wBAAwB,EACxB,uBAAuB,CACxB,CAAC;QACF,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAC3C,OAAO,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAA4B;IAE5B,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,IAAI,cAAc,EAAE,CAAC;IAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACrC,MAAM,KAAK,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IAExC,CAAC,CAAC,KAAK,CAAC,cAAc,cAAc,EAAE,CAAC,CAAC;IACxC,CAAC,CAAC,IAAI,CACJ;QACE,6DAA6D;QAC7D,EAAE;QACF,8CAA8C;QAC9C,qEAAqE;QACrE,EAAE;QACF,uGAAuG;QACvG,gBAAgB,gBAAgB,UAAU,QAAQ,GAAG;KACtD,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,oBAAoB,CACrB,CAAC;IAEF,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM;QAC1B,CAAC,CAAC,SAAS,KAAK,CAAC,MAAM,IAAI,eAAe,EAAE;QAC5C,CAAC,CAAC,8CAA8C,CAAC;IACnD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,CAAC,CAAC,GAAG,CAAC,IAAI,CACR,4GAA4G,CAC7G,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC;QAClC,OAAO,EAAE;YACP,yBAAyB;YACzB,EAAE;YACF,KAAK,KAAK,CAAC,WAAW,EAAE;YACxB,KAAK,OAAO,EAAE;SACf,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5C,OAAO,SAAS,CACd,CAAC,EACD,qDAAqD,iBAAiB,EAAE,OAAO,CAChF,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;QAC7B,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAC;QACpF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,CAAC,CAAC,IAAI,CACJ;gBACE,2DAA2D;gBAC3D,8EAA8E;aAC/E,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,mBAAmB,CACpB,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC;gBAC/B,OAAO,EAAE,wDAAwD;gBACjE,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC;YACH,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACtC,OAAO,SAAS,CACd,CAAC,EACD,oBAAoB,iBAAiB,EAAE,8CAA8C,CACtF,CAAC;YACJ,CAAC;YACD,KAAK,GAAG,IAAI,CAAC;QACf,CAAC;QAED,6EAA6E;QAC7E,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;QAC7E,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACpD,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,MAAM,EAAE,CAAC,CAAC;QAC5C,MAAM,YAAY,GAChB,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;YACvC,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC1C,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,MAAM,CAAC;QACf,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,MAAM,CAAmB;YAClD,OAAO,EAAE,2DAA2D;YACpE,OAAO,EAAE;gBACP;oBACE,KAAK,EAAE,OAAO;oBACd,KAAK,EAAE,mCAAmC;oBAC1C,IAAI,EAAE,MAAM;iBACb;gBACD;oBACE,KAAK,EAAE,QAAQ;oBACf,KAAK,EAAE,oCAAoC;oBAC3C,IAAI,EAAE,MAAM;iBACb;gBACD;oBACE,KAAK,EAAE,MAAM;oBACb,KAAK,EAAE,wCAAwC;oBAC/C,IAAI,EAAE,MAAM;iBACb;aACF;YACD,YAAY,EAAE,YAAY;SAC3B,CAAC,CAAC;QACH,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,OAAO,SAAS,CAAC,CAAC,EAAE,kCAAkC,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,OAAO,GAAG;YACd,aAAa,KAAK,CAAC,WAAW,EAAE;YAChC,qCAAqC;YACrC,aAAa,MAAM,EAAE;YACrB,aAAa,MAAM,GAAG,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,UAAU,EAAE,EAAE;YAClF,EAAE;YACF,8DAA8D;SAC/D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC;YAC5B,OAAO,EAAE,kBAAkB,OAAO,EAAE;YACpC,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;QACH,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChC,OAAO,SAAS,CAAC,CAAC,EAAE,kCAAkC,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO;YACL,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,MAAM;YACN,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YAC7C,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE,QAAQ;YAClB,aAAa,EAAE,KAAK;YACpB,WAAW,EAAE,gBAAgB;YAC7B,oBAAoB,EAAE,CAAC;YACvB,UAAU;YACV,KAAK,EAAE,IAAI;YACX,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,eAAe;SACvD,CAAC;IACJ,CAAC;IAED,CAAC,CAAC,IAAI,CACJ;QACE,kEAAkE;QAClE,8BAA8B,iBAAiB,EAAE,gBAAgB;QACjE,oCAAoC;KACrC,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,UAAU,CACX,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,MAAM,CAAa;QACxC,OAAO,EAAE,wDAAwD;QACjE,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,4BAA4B,EAAE;YACrE;gBACE,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE,sBAAsB;gBAC7B,IAAI,EAAE,gDAAgD;aACvD;SACF;QACD,YAAY,EAAE,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;KACvD,CAAC,CAAC;IACH,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC,CAAC,EAAE,kCAAkC,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,WAAW,GAAG,sBAAsB,EAAE,CAAC;IAC7C,MAAM,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IAC7D,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE;QAC5B,MAAM,QAAQ,GAAG,YAAY;YAC3B,CAAC,CAAC,WAAW;iBACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,YAAY,CAAC;iBAC5C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;YACxB,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,QAAQ,CAAC;QACzC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtD,CAAC,CAAC,EAAE,CAAC;IACL,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,WAAW,CAAS;QAChD,OAAO,EAAE,gEAAgE;QACzE,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC/B,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,KAAK,EAAE,CAAC,CAAC,KAAK;SACf,CAAC,CAAC;QACH,aAAa,EAAE,eAAe;QAC9B,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IACH,IAAI,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC,CAAC,EAAE,kCAAkC,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChE,OAAO,SAAS,CAAC,CAAC,EAAE,qCAAqC,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,SAAS,GAAsB,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC;QACrD,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,SAAS;QAClC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpB,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC,CAAC,EAAE,sCAAsC,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC;IAEtC,CAAC,CAAC,IAAI,CACJ;QACE,+CAA+C;QAC/C,0CAA0C;QAC1C,mDAAmD;KACpD,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,OAAO,CACR,CAAC;IACF,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,MAAM,CAAqB;QACrD,OAAO,EAAE,+BAA+B;QACxC,OAAO,EAAE;YACP;gBACE,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE,yBAAyB;gBAChC,IAAI,EAAE,aAAa;aACpB;YACD;gBACE,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,iBAAiB;gBACxB,IAAI,EAAE,iBAAiB;aACxB;SACF;QACD,YAAY,EAAE,OAAO;KACtB,CAAC,CAAC;IACH,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC,CAAC,EAAE,kCAAkC,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,QAAQ,GAAG,OAAO,CAAC;IACvB,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,sCAAsC;YAC/C,WAAW,EAAE,YAAY;YACzB,YAAY,EAAE,YAAY;YAC1B,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;gBACd,MAAM,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;gBAC/B,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACpC,CAAC;SACF,CAAC,CAAC;QACH,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACvB,OAAO,SAAS,CAAC,CAAC,EAAE,kCAAkC,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACV,OAAO,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC;IACrB,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,MAAM,CAAiB;QAC9C,OAAO,EAAE,wDAAwD;QACjE,OAAO,EAAE;YACP;gBACE,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,wBAAwB;gBAC/B,IAAI,EAAE,qCAAqC;aAC5C;YACD;gBACE,KAAK,EAAE,YAAY;gBACnB,KAAK,EAAE,8BAA8B;gBACrC,IAAI,EAAE,gCAAgC;aACvC;YACD;gBACE,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE,wBAAwB;gBAC/B,IAAI,EAAE,mBAAmB;aAC1B;SACF;QACD,YAAY,EAAE,QAAQ;KACvB,CAAC,CAAC;IACH,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC,CAAC,EAAE,kCAAkC,CAAC,CAAC;IAC1D,CAAC;IAED,CAAC,CAAC,IAAI,CACJ;QACE,yDAAyD;QACzD,6DAA6D;QAC7D,sDAAsD;QACtD,kFAAkF;QAClF,uFAAuF;KACxF,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,mBAAmB,CACpB,CAAC;IACF,MAAM,iBAAiB,GAAG,MAAM,CAAC,CAAC,MAAM,CAA+B;QACrE,OAAO,EAAE,wCAAwC;QACjD,OAAO,EAAE;YACP;gBACE,KAAK,EAAE,gBAAgB;gBACvB,KAAK,EAAE,2BAA2B;gBAClC,IAAI,EAAE,oCAAoC;aAC3C;YACD;gBACE,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,uCAAuC;gBAC9C,IAAI,EAAE,oBAAoB;aAC3B;SACF;QACD,YAAY,EAAE,gBAAgB;KAC/B,CAAC,CAAC;IACH,IAAI,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAClC,OAAO,SAAS,CAAC,CAAC,EAAE,kCAAkC,CAAC,CAAC;IAC1D,CAAC;IAED,CAAC,CAAC,IAAI,CACJ;QACE,mEAAmE;QACnE,wEAAwE;QACxE,6CAA6C;KAC9C,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,mBAAmB,CACpB,CAAC;IACF,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,MAAM,CAAoB;QACrD,OAAO,EAAE,8BAA8B;QACvC,OAAO,EAAE;YACP;gBACE,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,cAAc;gBACrB,IAAI,EAAE,oCAAoC;aAC3C;YACD;gBACE,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,iBAAiB;gBACxB,IAAI,EAAE,gDAAgD;aACvD;SACF;QACD,YAAY,EAAE,MAAM;KACrB,CAAC,CAAC;IACH,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC,CAAC,EAAE,kCAAkC,CAAC,CAAC;IAC1D,CAAC;IAED,CAAC,CAAC,IAAI,CACJ;QACE,4DAA4D;QAC5D,qEAAqE;QACrE,qEAAqE;QACrE,EAAE;QACF,wEAAwE;KACzE,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,aAAa,CACd,CAAC;IACF,MAAM,gBAAgB,GAAG,MAAM,CAAC,CAAC,MAAM,CAA+B;QACpE,OAAO,EAAE,gDAAgD;QACzD,OAAO,EAAE;YACP;gBACE,KAAK,EAAE,WAAW;gBAClB,KAAK,EAAE,+BAA+B;gBACtC,IAAI,EAAE,wCAAwC;aAC/C;YACD;gBACE,KAAK,EAAE,GAAG;gBACV,KAAK,EAAE,sBAAsB;gBAC7B,IAAI,EAAE,uBAAuB;aAC9B;YACD;gBACE,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,qBAAqB;gBAC5B,IAAI,EAAE,QAAQ;aACf;SACF;QACD,YAAY,EAAE,WAAW;KAC1B,CAAC,CAAC;IACH,IAAI,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACjC,OAAO,SAAS,CAAC,CAAC,EAAE,kCAAkC,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,oBAAoB,GAAG,CAAC,CAAC;IAC7B,IAAI,gBAAgB,KAAK,GAAG,EAAE,CAAC;QAC7B,oBAAoB,GAAG,CAAC,CAAC;IAC3B,CAAC;SAAM,IAAI,gBAAgB,KAAK,QAAQ,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,+CAA+C;YACxD,WAAW,EAAE,GAAG;YAChB,YAAY,EAAE,GAAG;YACjB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;gBACd,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBACnC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;oBAC9C,OAAO,gDAAgD,CAAC;gBAC1D,CAAC;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC;SACF,CAAC,CAAC;QACH,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACvB,OAAO,SAAS,CAAC,CAAC,EAAE,kCAAkC,CAAC,CAAC;QAC1D,CAAC;QACD,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,CAAC,CAAC,IAAI,CACJ;QACE,uEAAuE;QACvE,qEAAqE;QACrE,qEAAqE;KACtE,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,qBAAqB,CACtB,CAAC;IAEF,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,MAAM,YAAY,GAChB,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QACvC,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC1C,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,MAAM,CAAC;IACf,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,MAAM,CAAmB;QAClD,OAAO,EAAE,2DAA2D;QACpE,OAAO,EAAE;YACP;gBACE,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE,mCAAmC;gBAC1C,IAAI,EAAE,MAAM;aACb;YACD;gBACE,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,oCAAoC;gBAC3C,IAAI,EAAE,MAAM;aACb;YACD;gBACE,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,wCAAwC;gBAC/C,IAAI,EAAE,MAAM;aACb;SACF;QACD,YAAY,EAAE,YAAY;KAC3B,CAAC,CAAC;IACH,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC,CAAC,EAAE,kCAAkC,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,WAAW,GAAG,SAAS;SAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC;SACnC,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,OAAO,GAAG;QACd,aAAa,KAAK,CAAC,WAAW,EAAE;QAChC,aAAa,WAAW,EAAE;QAC1B,aAAa,MAAM,EAAE;QACrB,aAAa,QAAQ,sBAAsB;QAC3C,aACE,QAAQ,KAAK,QAAQ;YACnB,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,QAAQ,KAAK,YAAY;gBACzB,CAAC,CAAC,gBAAgB;gBAClB,CAAC,CAAC,WACR,EAAE;QACF,aAAa,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,8BAA8B,EAAE;QAC/E,aACE,oBAAoB,KAAK,CAAC;YACxB,CAAC,CAAC,kBAAkB;YACpB,CAAC,CAAC,eAAe,oBAAoB,EACzC,EAAE;QACF,aAAa,MAAM,GAAG,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,UAAU,EAAE,EAAE;QAClF,EAAE;QACF,oEAAoE;KACrE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC;QAC5B,OAAO,EAAE,wBAAwB,OAAO,EAAE;QAC1C,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAChC,OAAO,SAAS,CAAC,CAAC,EAAE,kCAAkC,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO;QACL,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,MAAM;QACN,SAAS;QACT,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,aAAa,EAAE,YAAY,KAAK,QAAQ;QACxC,WAAW,EAAE,iBAAiB;QAC9B,oBAAoB;QACpB,UAAU;QACV,KAAK;QACL,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,eAAe;KACvD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAA4B;IAE5B,yEAAyE;IACzE,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAC1C,OAAO,CAAC,KAAK,CACX,yCAAyC,iBAAiB,EAAE,aAAa,CAC1E,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,IAAI,cAAc,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACpE,IAAI,CAAC,OAAO;QAAE,OAAO,CAAC,CAAC;IAEvB,MAAM,WAAW,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,IAAI,cAAc,CAAC;IAEjD,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IACzB,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACpC,IAAI,MAAkB,CAAC;IACvB,IAAI,CAAC;QACH,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC5B,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACzD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC5B,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACzD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QAC/B,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,OAAO,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACtD,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACnB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC9C,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,gCAAgC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9D,CAAC;iBAAM,CAAC;gBACN,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,mCAAmC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,iCAAiC,GAAG,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,gBAAgB,CAC5B,OAAO,CAAC,MAAM,EACd,iBAAiB,EAAE,EACnB,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,QAAQ,CACxD,CAAC;IACF,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,cAAc,WAAW,CAAC,CAAC;IACvD,CAAC,CAAC,KAAK,CACL,sBAAsB,CACpB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,QAAQ,CACxD,CACF,CAAC;IACF,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/** Shared types for Autopilot init. */
|
|
2
|
+
import type { PlatformBinding } from "./platforms.js";
|
|
3
|
+
export type InitPlatform = "cursor";
|
|
4
|
+
export type InitSurface = "ide";
|
|
5
|
+
export type InitLocale = "en" | "zh-CN";
|
|
6
|
+
export type PlansGitPolicy = "commit" | "local-only" | "leave";
|
|
7
|
+
export interface InitYesOptions {
|
|
8
|
+
projectRoot: string;
|
|
9
|
+
/** Legacy single host; ignored when `platforms` is non-empty. */
|
|
10
|
+
platform: string;
|
|
11
|
+
/** Legacy single surface; ignored when `platforms` is non-empty. */
|
|
12
|
+
surface: string;
|
|
13
|
+
/**
|
|
14
|
+
* Enabled hosts for this install. When set, wins over platform/surface.
|
|
15
|
+
* Fresh init writes the full list; with `mergePlatforms` merges into config.
|
|
16
|
+
*/
|
|
17
|
+
platforms?: PlatformBinding[];
|
|
18
|
+
/**
|
|
19
|
+
* When true with an existing config.yml: merge `platforms` into config
|
|
20
|
+
* (add hosts) instead of leaving config untouched. Implies force semantics
|
|
21
|
+
* for the refresh path.
|
|
22
|
+
*/
|
|
23
|
+
mergePlatforms?: boolean;
|
|
24
|
+
locale: string;
|
|
25
|
+
force: boolean;
|
|
26
|
+
packageVersion?: string;
|
|
27
|
+
/** Artifact root under project (default `plans`). */
|
|
28
|
+
plansDir?: string;
|
|
29
|
+
/** How to treat plans/ in git (default commit = do not gitignore). */
|
|
30
|
+
plansGit?: PlansGitPolicy;
|
|
31
|
+
/** Write review.verify.enabled (default false). */
|
|
32
|
+
verifyEnabled?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Consecutive turn errors before pause.
|
|
35
|
+
* `0` = unlimited (default). Written to review.errors.max_before_pause.
|
|
36
|
+
*/
|
|
37
|
+
maxErrorsBeforePause?: number;
|
|
38
|
+
/** executing_only (default) | project */
|
|
39
|
+
reviewScope?: "executing_only" | "project";
|
|
40
|
+
/** Also write docs/autopilot/quickstart.md (default true for fresh init). */
|
|
41
|
+
writeQuickstart?: boolean;
|
|
42
|
+
}
|
|
43
|
+
export interface InitOk {
|
|
44
|
+
ok: true;
|
|
45
|
+
written: string[];
|
|
46
|
+
}
|
|
47
|
+
export interface InitFail {
|
|
48
|
+
ok: false;
|
|
49
|
+
error: string;
|
|
50
|
+
}
|
|
51
|
+
export type InitResult = InitOk | InitFail;
|
|
52
|
+
export interface HookCommand {
|
|
53
|
+
command: string;
|
|
54
|
+
/**
|
|
55
|
+
* Cursor stop-hook auto-followup cap. Default is 5 when omitted.
|
|
56
|
+
* Autopilot stop must use `null` (unlimited) so fix+confirm chains
|
|
57
|
+
* longer than 5 loops are not silently skipped.
|
|
58
|
+
*/
|
|
59
|
+
loop_limit?: number | null;
|
|
60
|
+
timeout?: number;
|
|
61
|
+
description?: string;
|
|
62
|
+
}
|
|
63
|
+
export interface HooksFile {
|
|
64
|
+
version?: number;
|
|
65
|
+
hooks: {
|
|
66
|
+
beforeSubmitPrompt?: HookCommand[];
|
|
67
|
+
afterFileEdit?: HookCommand[];
|
|
68
|
+
stop?: HookCommand[];
|
|
69
|
+
[event: string]: HookCommand[] | undefined;
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
export declare const PACKAGE_VERSION = "0.1.0";
|
|
73
|
+
export declare const HOOK_MARKER = "autopilot-harness";
|
|
74
|
+
export declare const AUTOPILOT_EVENTS: readonly ["beforeSubmitPrompt", "afterFileEdit", "stop"];
|
|
75
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/init/types.ts"],"names":[],"mappings":"AAAA,uCAAuC;AAEvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC;AACpC,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC;AAChC,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,OAAO,CAAC;AAExC,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,YAAY,GAAG,OAAO,CAAC;AAE/D,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC;IAC9B;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,mDAAmD;IACnD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,yCAAyC;IACzC,WAAW,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC3C,6EAA6E;IAC7E,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,IAAI,CAAC;IACT,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE3C,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE;QACL,kBAAkB,CAAC,EAAE,WAAW,EAAE,CAAC;QACnC,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;QAC9B,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC;QACrB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,GAAG,SAAS,CAAC;KAC5C,CAAC;CACH;AAED,eAAO,MAAM,eAAe,UAAU,CAAC;AACvC,eAAO,MAAM,WAAW,sBAAsB,CAAC;AAC/C,eAAO,MAAM,gBAAgB,0DAInB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/init/types.ts"],"names":[],"mappings":"AAAA,uCAAuC;AAiFvC,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC;AACvC,MAAM,CAAC,MAAM,WAAW,GAAG,mBAAmB,CAAC;AAC/C,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,oBAAoB;IACpB,eAAe;IACf,MAAM;CACE,CAAC"}
|