terminal-pilot 0.0.14 → 0.0.16
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/dist/cli.js +7386 -392
- package/dist/cli.js.map +4 -4
- package/dist/commands/close-session.d.ts +1 -1
- package/dist/commands/close-session.js +108 -9
- package/dist/commands/close-session.js.map +4 -4
- package/dist/commands/create-session.d.ts +1 -1
- package/dist/commands/create-session.js +108 -9
- package/dist/commands/create-session.js.map +4 -4
- package/dist/commands/fill.d.ts +1 -1
- package/dist/commands/fill.js +108 -9
- package/dist/commands/fill.js.map +4 -4
- package/dist/commands/get-session.d.ts +1 -1
- package/dist/commands/get-session.js +108 -9
- package/dist/commands/get-session.js.map +4 -4
- package/dist/commands/index.d.ts +17 -17
- package/dist/commands/index.js +206 -44
- package/dist/commands/index.js.map +4 -4
- package/dist/commands/install.d.ts +1 -1
- package/dist/commands/install.js +114 -15
- package/dist/commands/install.js.map +4 -4
- package/dist/commands/installer.js +17 -10
- package/dist/commands/installer.js.map +4 -4
- package/dist/commands/list-sessions.d.ts +1 -1
- package/dist/commands/list-sessions.js +108 -9
- package/dist/commands/list-sessions.js.map +4 -4
- package/dist/commands/press-key.d.ts +1 -1
- package/dist/commands/press-key.js +108 -9
- package/dist/commands/press-key.js.map +4 -4
- package/dist/commands/read-history.d.ts +1 -1
- package/dist/commands/read-history.js +108 -9
- package/dist/commands/read-history.js.map +4 -4
- package/dist/commands/read-screen.d.ts +1 -1
- package/dist/commands/read-screen.js +108 -9
- package/dist/commands/read-screen.js.map +4 -4
- package/dist/commands/resize.d.ts +1 -1
- package/dist/commands/resize.js +108 -9
- package/dist/commands/resize.js.map +4 -4
- package/dist/commands/runtime.js +8 -1
- package/dist/commands/runtime.js.map +4 -4
- package/dist/commands/screenshot.d.ts +1 -1
- package/dist/commands/screenshot.js +112 -13
- package/dist/commands/screenshot.js.map +4 -4
- package/dist/commands/send-signal.d.ts +1 -1
- package/dist/commands/send-signal.js +108 -9
- package/dist/commands/send-signal.js.map +4 -4
- package/dist/commands/type.d.ts +1 -1
- package/dist/commands/type.js +108 -9
- package/dist/commands/type.js.map +4 -4
- package/dist/commands/uninstall.d.ts +1 -1
- package/dist/commands/uninstall.js +117 -18
- package/dist/commands/uninstall.js.map +4 -4
- package/dist/commands/wait-for-exit.d.ts +1 -1
- package/dist/commands/wait-for-exit.js +108 -9
- package/dist/commands/wait-for-exit.js.map +4 -4
- package/dist/commands/wait-for.d.ts +1 -1
- package/dist/commands/wait-for.js +108 -9
- package/dist/commands/wait-for.js.map +4 -4
- package/dist/testing/cli-repl.js +7386 -392
- package/dist/testing/cli-repl.js.map +4 -4
- package/dist/testing/qa-cli.js +7394 -400
- package/dist/testing/qa-cli.js.map +4 -4
- package/package.json +1 -1
|
@@ -1,5 +1,95 @@
|
|
|
1
1
|
// ../toolcraft/src/index.ts
|
|
2
|
-
import { fileURLToPath } from "node:url";
|
|
2
|
+
import { fileURLToPath as fileURLToPath2 } from "node:url";
|
|
3
|
+
|
|
4
|
+
// ../toolcraft/src/user-error.ts
|
|
5
|
+
var UserError = class extends Error {
|
|
6
|
+
constructor(message) {
|
|
7
|
+
super(message);
|
|
8
|
+
this.name = "UserError";
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
// ../toolcraft/src/human-in-loop/config.ts
|
|
13
|
+
function validateHumanInLoopOnDefine(config) {
|
|
14
|
+
const label = Array.isArray(config.children) ? "group" : "command";
|
|
15
|
+
if (config.confirm === true && config.humanInLoop !== void 0 && config.humanInLoop !== null) {
|
|
16
|
+
throw new Error(`${label} '${config.name}': use either confirm or humanInLoop, not both`);
|
|
17
|
+
}
|
|
18
|
+
if (config.humanInLoop === void 0 || config.humanInLoop === null) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
if (config.humanInLoop.mode !== "sync" && config.humanInLoop.mode !== "async") {
|
|
22
|
+
throw new Error(`${label} '${config.name}': humanInLoop.mode must be "sync" or "async"`);
|
|
23
|
+
}
|
|
24
|
+
if (typeof config.humanInLoop.message !== "function") {
|
|
25
|
+
throw new Error(`${label} '${config.name}': humanInLoop.message must be a function`);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function mergeHumanInLoopFromGroup(groupHumanInLoop, childHumanInLoop) {
|
|
29
|
+
if (childHumanInLoop !== void 0) {
|
|
30
|
+
return childHumanInLoop;
|
|
31
|
+
}
|
|
32
|
+
return groupHumanInLoop;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// ../toolcraft-schema/src/json.ts
|
|
36
|
+
function Json() {
|
|
37
|
+
return {
|
|
38
|
+
kind: "json"
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// ../toolcraft-schema/src/oneof.ts
|
|
43
|
+
function assertValidBranches(branches) {
|
|
44
|
+
if (Object.keys(branches).length === 0) {
|
|
45
|
+
throw new Error("OneOf schema requires at least one branch");
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function OneOf(config) {
|
|
49
|
+
assertValidBranches(config.branches);
|
|
50
|
+
return {
|
|
51
|
+
kind: "oneOf",
|
|
52
|
+
discriminator: config.discriminator,
|
|
53
|
+
branches: config.branches
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// ../toolcraft-schema/src/record.ts
|
|
58
|
+
function Record(value) {
|
|
59
|
+
return {
|
|
60
|
+
kind: "record",
|
|
61
|
+
value
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// ../toolcraft-schema/src/union.ts
|
|
66
|
+
function isOptionalSchema(schema) {
|
|
67
|
+
return schema.kind === "optional";
|
|
68
|
+
}
|
|
69
|
+
function getRequiredKeyFingerprint(schema) {
|
|
70
|
+
const requiredKeys = Object.keys(schema.shape).filter((key) => !isOptionalSchema(schema.shape[key])).sort();
|
|
71
|
+
return JSON.stringify(requiredKeys);
|
|
72
|
+
}
|
|
73
|
+
function assertValidBranches2(branches) {
|
|
74
|
+
if (branches.length === 0) {
|
|
75
|
+
throw new Error("Union schema requires at least one branch");
|
|
76
|
+
}
|
|
77
|
+
const fingerprints = /* @__PURE__ */ new Set();
|
|
78
|
+
for (const branch of branches) {
|
|
79
|
+
const fingerprint = getRequiredKeyFingerprint(branch);
|
|
80
|
+
if (fingerprints.has(fingerprint)) {
|
|
81
|
+
throw new Error("Union schema branches must have unique required-key fingerprints");
|
|
82
|
+
}
|
|
83
|
+
fingerprints.add(fingerprint);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
function Union(branches) {
|
|
87
|
+
assertValidBranches2(branches);
|
|
88
|
+
return {
|
|
89
|
+
kind: "union",
|
|
90
|
+
branches
|
|
91
|
+
};
|
|
92
|
+
}
|
|
3
93
|
|
|
4
94
|
// ../toolcraft-schema/src/index.ts
|
|
5
95
|
function assertValidEnumValues(values) {
|
|
@@ -57,18 +147,21 @@ var S = {
|
|
|
57
147
|
kind: "optional",
|
|
58
148
|
inner
|
|
59
149
|
};
|
|
60
|
-
}
|
|
150
|
+
},
|
|
151
|
+
OneOf,
|
|
152
|
+
Union,
|
|
153
|
+
Record,
|
|
154
|
+
Json
|
|
61
155
|
};
|
|
62
156
|
|
|
157
|
+
// ../toolcraft/src/package-metadata.ts
|
|
158
|
+
import { existsSync, readFileSync, statSync } from "node:fs";
|
|
159
|
+
import path from "node:path";
|
|
160
|
+
import { fileURLToPath } from "node:url";
|
|
161
|
+
|
|
63
162
|
// ../toolcraft/src/index.ts
|
|
64
163
|
var commandConfigSymbol = /* @__PURE__ */ Symbol("toolcraft.command.config");
|
|
65
164
|
var commandSourcePathSymbol = /* @__PURE__ */ Symbol("toolcraft.command.sourcePath");
|
|
66
|
-
var UserError = class extends Error {
|
|
67
|
-
constructor(message) {
|
|
68
|
-
super(message);
|
|
69
|
-
this.name = "UserError";
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
165
|
function cloneScope(scope) {
|
|
73
166
|
return scope === void 0 ? void 0 : [...scope];
|
|
74
167
|
}
|
|
@@ -100,7 +193,7 @@ function cloneRequires(requires) {
|
|
|
100
193
|
function parseStackPath(candidate) {
|
|
101
194
|
if (candidate.startsWith("file://")) {
|
|
102
195
|
try {
|
|
103
|
-
return
|
|
196
|
+
return fileURLToPath2(candidate);
|
|
104
197
|
} catch {
|
|
105
198
|
return void 0;
|
|
106
199
|
}
|
|
@@ -196,6 +289,7 @@ function createBaseCommand(config) {
|
|
|
196
289
|
secrets: cloneSecrets(config.secrets),
|
|
197
290
|
scope: resolveCommandScope(config.scope, void 0),
|
|
198
291
|
confirm: config.confirm ?? false,
|
|
292
|
+
humanInLoop: config.humanInLoop,
|
|
199
293
|
requires: cloneRequires(config.requires),
|
|
200
294
|
handler: config.handler,
|
|
201
295
|
render: config.render
|
|
@@ -203,6 +297,7 @@ function createBaseCommand(config) {
|
|
|
203
297
|
Object.defineProperty(command, commandConfigSymbol, {
|
|
204
298
|
value: {
|
|
205
299
|
scope: cloneScope(config.scope),
|
|
300
|
+
humanInLoop: config.humanInLoop,
|
|
206
301
|
secrets: cloneSecrets(config.secrets),
|
|
207
302
|
requires: cloneRequires(config.requires),
|
|
208
303
|
sourcePath: inferCommandSourcePath()
|
|
@@ -225,6 +320,7 @@ function materializeCommand(command, inherited) {
|
|
|
225
320
|
secrets: mergeSecrets(inherited.secrets, internal.secrets),
|
|
226
321
|
scope: resolveCommandScope(internal.scope, inherited.scope),
|
|
227
322
|
confirm: command.confirm,
|
|
323
|
+
humanInLoop: mergeHumanInLoopFromGroup(inherited.humanInLoop, internal.humanInLoop),
|
|
228
324
|
requires: mergeRequires(inherited.requires, internal.requires),
|
|
229
325
|
handler: command.handler,
|
|
230
326
|
render: command.render
|
|
@@ -232,6 +328,7 @@ function materializeCommand(command, inherited) {
|
|
|
232
328
|
Object.defineProperty(materialized, commandConfigSymbol, {
|
|
233
329
|
value: {
|
|
234
330
|
scope: cloneScope(internal.scope),
|
|
331
|
+
humanInLoop: internal.humanInLoop,
|
|
235
332
|
secrets: cloneSecrets(internal.secrets),
|
|
236
333
|
requires: cloneRequires(internal.requires),
|
|
237
334
|
sourcePath: internal.sourcePath
|
|
@@ -243,8 +340,10 @@ function materializeCommand(command, inherited) {
|
|
|
243
340
|
return materialized;
|
|
244
341
|
}
|
|
245
342
|
function defineCommand(config) {
|
|
343
|
+
validateHumanInLoopOnDefine(config);
|
|
246
344
|
return materializeCommand(createBaseCommand(config), {
|
|
247
345
|
scope: void 0,
|
|
346
|
+
humanInLoop: void 0,
|
|
248
347
|
secrets: {},
|
|
249
348
|
requires: void 0
|
|
250
349
|
});
|
|
@@ -252,13 +351,13 @@ function defineCommand(config) {
|
|
|
252
351
|
|
|
253
352
|
// src/commands/installer.ts
|
|
254
353
|
import os2 from "node:os";
|
|
255
|
-
import
|
|
354
|
+
import path5 from "node:path";
|
|
256
355
|
import * as nodeFs from "node:fs/promises";
|
|
257
356
|
import { readFile as readFile2 } from "node:fs/promises";
|
|
258
357
|
|
|
259
358
|
// ../agent-skill-config/src/configs.ts
|
|
260
359
|
import os from "node:os";
|
|
261
|
-
import
|
|
360
|
+
import path2 from "node:path";
|
|
262
361
|
|
|
263
362
|
// ../agent-defs/src/agents/claude-code.ts
|
|
264
363
|
var claudeCodeAgent = {
|
|
@@ -448,7 +547,7 @@ import { parse as parseToml, stringify as stringifyToml } from "smol-toml";
|
|
|
448
547
|
import { parse as parseYaml, stringify as stringifyYaml } from "yaml";
|
|
449
548
|
|
|
450
549
|
// ../config-mutations/src/execution/path-utils.ts
|
|
451
|
-
import
|
|
550
|
+
import path3 from "node:path";
|
|
452
551
|
|
|
453
552
|
// ../config-mutations/src/template/render.ts
|
|
454
553
|
import Mustache2 from "mustache";
|
|
@@ -456,8 +555,8 @@ var originalEscape = Mustache2.escape;
|
|
|
456
555
|
|
|
457
556
|
// ../agent-skill-config/src/templates.ts
|
|
458
557
|
import { readFile, stat } from "node:fs/promises";
|
|
459
|
-
import
|
|
460
|
-
import { fileURLToPath as
|
|
558
|
+
import path4 from "node:path";
|
|
559
|
+
import { fileURLToPath as fileURLToPath3 } from "node:url";
|
|
461
560
|
|
|
462
561
|
// src/commands/installer.ts
|
|
463
562
|
var DEFAULT_INSTALL_AGENT = "claude-code";
|
|
@@ -489,7 +588,7 @@ function resolveHomeRelativePath(targetPath, homeDir) {
|
|
|
489
588
|
return homeDir;
|
|
490
589
|
}
|
|
491
590
|
if (targetPath.startsWith("~/")) {
|
|
492
|
-
return
|
|
591
|
+
return path5.join(homeDir, targetPath.slice(2));
|
|
493
592
|
}
|
|
494
593
|
return targetPath;
|
|
495
594
|
}
|
|
@@ -499,12 +598,12 @@ function getSkillFolderWithHome(agent, scope, cwd, homeDir) {
|
|
|
499
598
|
throwUnsupportedAgent(agent);
|
|
500
599
|
}
|
|
501
600
|
return {
|
|
502
|
-
displayPath:
|
|
601
|
+
displayPath: path5.join(
|
|
503
602
|
scope === "global" ? config.globalSkillDir : config.localSkillDir,
|
|
504
603
|
TERMINAL_PILOT_SKILL_NAME
|
|
505
604
|
),
|
|
506
|
-
fullPath:
|
|
507
|
-
scope === "global" ? resolveHomeRelativePath(config.globalSkillDir, homeDir) :
|
|
605
|
+
fullPath: path5.join(
|
|
606
|
+
scope === "global" ? resolveHomeRelativePath(config.globalSkillDir, homeDir) : path5.resolve(cwd, config.localSkillDir),
|
|
508
607
|
TERMINAL_PILOT_SKILL_NAME
|
|
509
608
|
)
|
|
510
609
|
};
|