terminal-pilot 0.0.39 → 0.0.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/README.md +13 -1
  2. package/dist/cli.js +24 -4
  3. package/dist/cli.js.map +2 -2
  4. package/dist/commands/close-session.js +9 -1
  5. package/dist/commands/close-session.js.map +2 -2
  6. package/dist/commands/create-session.js +9 -1
  7. package/dist/commands/create-session.js.map +2 -2
  8. package/dist/commands/daemon-runtime.js +13 -2
  9. package/dist/commands/daemon-runtime.js.map +2 -2
  10. package/dist/commands/fill.js +9 -1
  11. package/dist/commands/fill.js.map +2 -2
  12. package/dist/commands/get-session.js +9 -1
  13. package/dist/commands/get-session.js.map +2 -2
  14. package/dist/commands/index.d.ts +4 -0
  15. package/dist/commands/index.js +19 -2
  16. package/dist/commands/index.js.map +2 -2
  17. package/dist/commands/list-sessions.js +9 -1
  18. package/dist/commands/list-sessions.js.map +2 -2
  19. package/dist/commands/press-key.js +9 -1
  20. package/dist/commands/press-key.js.map +2 -2
  21. package/dist/commands/read-history.js +9 -1
  22. package/dist/commands/read-history.js.map +2 -2
  23. package/dist/commands/read-screen.js +9 -1
  24. package/dist/commands/read-screen.js.map +2 -2
  25. package/dist/commands/resize.js +9 -1
  26. package/dist/commands/resize.js.map +2 -2
  27. package/dist/commands/runtime.js +9 -1
  28. package/dist/commands/runtime.js.map +2 -2
  29. package/dist/commands/screenshot.js +9 -1
  30. package/dist/commands/screenshot.js.map +2 -2
  31. package/dist/commands/send-signal.js +9 -1
  32. package/dist/commands/send-signal.js.map +2 -2
  33. package/dist/commands/type.js +9 -1
  34. package/dist/commands/type.js.map +2 -2
  35. package/dist/commands/wait-for-exit.js +9 -1
  36. package/dist/commands/wait-for-exit.js.map +2 -2
  37. package/dist/commands/wait-for.d.ts +2 -0
  38. package/dist/commands/wait-for.js +19 -2
  39. package/dist/commands/wait-for.js.map +2 -2
  40. package/dist/index.js +9 -1
  41. package/dist/index.js.map +2 -2
  42. package/dist/terminal-pilot.js +9 -1
  43. package/dist/terminal-pilot.js.map +2 -2
  44. package/dist/terminal-session.d.ts +1 -0
  45. package/dist/terminal-session.js +9 -1
  46. package/dist/terminal-session.js.map +2 -2
  47. package/dist/testing/cli-repl.js +24 -4
  48. package/dist/testing/cli-repl.js.map +2 -2
  49. package/dist/testing/qa-cli.js +24 -4
  50. package/dist/testing/qa-cli.js.map +2 -2
  51. package/node_modules/toolcraft-design/dist/index.d.ts +2 -2
  52. package/node_modules/toolcraft-design/dist/index.js +1 -1
  53. package/node_modules/toolcraft-design/dist/render-markdown-plaintext.d.ts +2 -0
  54. package/node_modules/toolcraft-design/dist/render-markdown-plaintext.js +1 -0
  55. package/node_modules/toolcraft-design/dist/terminal-markdown/index.d.ts +2 -0
  56. package/node_modules/toolcraft-design/dist/terminal-markdown/index.js +1 -0
  57. package/node_modules/toolcraft-design/dist/terminal-markdown/parser/inline.js +38 -2
  58. package/node_modules/toolcraft-design/dist/terminal-markdown/plaintext-renderer.d.ts +11 -0
  59. package/node_modules/toolcraft-design/dist/terminal-markdown/plaintext-renderer.js +228 -0
  60. package/node_modules/toolcraft-design/package.json +4 -0
  61. package/package.json +1 -1
@@ -78,6 +78,7 @@ export declare function createTerminalPilotGroup(): import("toolcraft").Group<Te
78
78
  readonly pattern: import("toolcraft").StringSchema;
79
79
  readonly session: import("toolcraft").OptionalSchema<import("toolcraft").StringSchema>;
80
80
  readonly timeout: import("toolcraft").OptionalSchema<import("toolcraft").NumberSchema>;
81
+ readonly scope: import("toolcraft").OptionalSchema<import("toolcraft").EnumSchema<readonly ["history", "screen"]>>;
81
82
  readonly literal: import("toolcraft").OptionalSchema<import("toolcraft").BooleanSchema>;
82
83
  }>, undefined, {
83
84
  matched: true;
@@ -87,6 +88,7 @@ export declare function createTerminalPilotGroup(): import("toolcraft").Group<Te
87
88
  readonly pattern: import("toolcraft").StringSchema;
88
89
  readonly session: import("toolcraft").OptionalSchema<import("toolcraft").StringSchema>;
89
90
  readonly timeout: import("toolcraft").OptionalSchema<import("toolcraft").NumberSchema>;
91
+ readonly scope: import("toolcraft").OptionalSchema<import("toolcraft").EnumSchema<readonly ["history", "screen"]>>;
90
92
  readonly literal: import("toolcraft").OptionalSchema<import("toolcraft").BooleanSchema>;
91
93
  }>, {
92
94
  matched: true;
@@ -301,6 +303,7 @@ export declare const terminalPilotGroup: Readonly<import("toolcraft").Group<Term
301
303
  readonly pattern: import("toolcraft").StringSchema;
302
304
  readonly session: import("toolcraft").OptionalSchema<import("toolcraft").StringSchema>;
303
305
  readonly timeout: import("toolcraft").OptionalSchema<import("toolcraft").NumberSchema>;
306
+ readonly scope: import("toolcraft").OptionalSchema<import("toolcraft").EnumSchema<readonly ["history", "screen"]>>;
304
307
  readonly literal: import("toolcraft").OptionalSchema<import("toolcraft").BooleanSchema>;
305
308
  }>, undefined, {
306
309
  matched: true;
@@ -310,6 +313,7 @@ export declare const terminalPilotGroup: Readonly<import("toolcraft").Group<Term
310
313
  readonly pattern: import("toolcraft").StringSchema;
311
314
  readonly session: import("toolcraft").OptionalSchema<import("toolcraft").StringSchema>;
312
315
  readonly timeout: import("toolcraft").OptionalSchema<import("toolcraft").NumberSchema>;
316
+ readonly scope: import("toolcraft").OptionalSchema<import("toolcraft").EnumSchema<readonly ["history", "screen"]>>;
313
317
  readonly literal: import("toolcraft").OptionalSchema<import("toolcraft").BooleanSchema>;
314
318
  }>, {
315
319
  matched: true;
@@ -2150,10 +2150,13 @@ var TerminalSession = class {
2150
2150
  }
2151
2151
  async waitFor(pattern, opts) {
2152
2152
  const timeout = opts?.timeout ?? DEFAULT_TIMEOUT_MS;
2153
+ const scope = opts?.scope ?? "history";
2153
2154
  assertTimeout(timeout);
2155
+ assertWaitScope(scope);
2154
2156
  const startedAt = Date.now();
2155
2157
  while (Date.now() - startedAt <= timeout) {
2156
- const matched = matchPattern(this.rawBuffer, pattern);
2158
+ const source = scope === "screen" ? (await this.screen()).text : this.rawBuffer;
2159
+ const matched = matchPattern(source, pattern);
2157
2160
  if (matched !== null) {
2158
2161
  return matched;
2159
2162
  }
@@ -2274,6 +2277,11 @@ function assertTimeout(timeout) {
2274
2277
  throw new Error("Timeout must be a finite non-negative number.");
2275
2278
  }
2276
2279
  }
2280
+ function assertWaitScope(scope) {
2281
+ if (scope !== "history" && scope !== "screen") {
2282
+ throw new Error('Wait scope must be either "history" or "screen".');
2283
+ }
2284
+ }
2277
2285
  function assertQuietPeriod(duration) {
2278
2286
  if (!Number.isFinite(duration) || duration < 0) {
2279
2287
  throw new Error("Quiet period must be a finite non-negative number.");
@@ -7217,6 +7225,11 @@ var params15 = S.Object({
7217
7225
  timeout: S.Optional(
7218
7226
  S.Number({ short: "t", description: "Maximum wait time in milliseconds", minimum: 0 })
7219
7227
  ),
7228
+ scope: S.Optional(
7229
+ S.Enum(["history", "screen"], {
7230
+ description: "Search all captured output or only the current visible screen"
7231
+ })
7232
+ ),
7220
7233
  literal: S.Optional(
7221
7234
  S.Boolean({
7222
7235
  short: "l",
@@ -7240,7 +7253,11 @@ var waitFor = defineCommand({
7240
7253
  env
7241
7254
  );
7242
7255
  const pattern = params17.literal === true ? params17.pattern : new RegExp(params17.pattern);
7243
- const line = params17.timeout === void 0 ? await namedSession.session.waitFor(pattern) : await namedSession.session.waitFor(pattern, { timeout: params17.timeout });
7256
+ const options = params17.timeout === void 0 && params17.scope === void 0 ? void 0 : {
7257
+ ...params17.timeout === void 0 ? {} : { timeout: params17.timeout },
7258
+ ...params17.scope === void 0 ? {} : { scope: params17.scope }
7259
+ };
7260
+ const line = await namedSession.session.waitFor(pattern, options);
7244
7261
  return { matched: true, line };
7245
7262
  }
7246
7263
  });