@skrr-ai/cli 0.1.39 → 0.1.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 (134) hide show
  1. package/README.md +1 -1
  2. package/dist/base-command.d.ts +9 -0
  3. package/dist/base-command.js +26 -3
  4. package/dist/commands/agent-shares/list-for.js +4 -11
  5. package/dist/commands/agent-shares/received.js +4 -11
  6. package/dist/commands/agent-shares/sent.js +4 -11
  7. package/dist/commands/agent-shares/with.js +3 -10
  8. package/dist/commands/agents/activity.js +1 -1
  9. package/dist/commands/agents/api-actions/add.js +6 -0
  10. package/dist/commands/agents/chat.js +6 -1
  11. package/dist/commands/agents/create.d.ts +7 -0
  12. package/dist/commands/agents/create.js +19 -2
  13. package/dist/commands/agents/manager/ensure.d.ts +18 -0
  14. package/dist/commands/agents/manager/ensure.js +56 -0
  15. package/dist/commands/agents/show.js +4 -0
  16. package/dist/commands/agents/tools/auth.d.ts +6 -0
  17. package/dist/commands/agents/tools/auth.js +27 -1
  18. package/dist/commands/agents/tools/index.js +11 -1
  19. package/dist/commands/agents/triggers/policy.d.ts +1 -0
  20. package/dist/commands/agents/triggers/policy.js +32 -0
  21. package/dist/commands/agents/update.js +10 -4
  22. package/dist/commands/code/install.d.ts +4 -2
  23. package/dist/commands/code/install.js +12 -10
  24. package/dist/commands/convos/list.js +1 -3
  25. package/dist/commands/convos/show.js +4 -11
  26. package/dist/commands/daemon/index.js +3 -3
  27. package/dist/commands/daemon/install.js +4 -4
  28. package/dist/commands/daemon/login.js +1 -1
  29. package/dist/commands/daemon/logs.d.ts +3 -1
  30. package/dist/commands/daemon/logs.js +16 -1
  31. package/dist/commands/daemon/start.js +3 -3
  32. package/dist/commands/daemon/status.d.ts +9 -0
  33. package/dist/commands/daemon/status.js +22 -0
  34. package/dist/commands/dm/messages.js +1 -11
  35. package/dist/commands/followups/cancel.js +1 -1
  36. package/dist/commands/followups/observability.js +6 -2
  37. package/dist/commands/followups/remind.js +5 -2
  38. package/dist/commands/followups/reschedule.js +2 -1
  39. package/dist/commands/followups/resolve.js +1 -1
  40. package/dist/commands/followups/show.js +20 -0
  41. package/dist/commands/followups/watch.d.ts +1 -0
  42. package/dist/commands/followups/watch.js +9 -3
  43. package/dist/commands/harnesses/forget.js +20 -3
  44. package/dist/commands/harnesses/install.js +18 -6
  45. package/dist/commands/harnesses/installers.d.ts +1 -1
  46. package/dist/commands/harnesses/installers.js +36 -12
  47. package/dist/commands/harnesses/list.d.ts +74 -2
  48. package/dist/commands/harnesses/list.js +231 -15
  49. package/dist/commands/harnesses/ping.d.ts +2 -0
  50. package/dist/commands/harnesses/ping.js +21 -0
  51. package/dist/commands/harnesses/show.d.ts +22 -0
  52. package/dist/commands/harnesses/show.js +116 -17
  53. package/dist/commands/harnesses/update.d.ts +8 -0
  54. package/dist/commands/harnesses/update.js +25 -1
  55. package/dist/commands/harnesses/usage.d.ts +2 -0
  56. package/dist/commands/harnesses/usage.js +7 -2
  57. package/dist/commands/instructions/status.js +13 -0
  58. package/dist/commands/instructions/update-target.d.ts +1 -0
  59. package/dist/commands/instructions/update-target.js +11 -3
  60. package/dist/commands/login.js +5 -5
  61. package/dist/commands/machines/list.js +8 -9
  62. package/dist/commands/machines/show.js +46 -17
  63. package/dist/commands/messages/show.js +3 -10
  64. package/dist/commands/shares/get.js +2 -9
  65. package/dist/commands/shares/list.js +1 -9
  66. package/dist/commands/shortcuts/show.js +4 -11
  67. package/dist/commands/skills/local.js +6 -0
  68. package/dist/commands/spaces/actions/run.js +3 -4
  69. package/dist/commands/spaces/briefs/get.js +2 -9
  70. package/dist/commands/spaces/briefs/list.js +1 -9
  71. package/dist/commands/spaces/conversations.js +1 -9
  72. package/dist/commands/spaces/heartbeats/list.js +1 -9
  73. package/dist/commands/spaces/heartbeats/status.js +2 -9
  74. package/dist/commands/tasks/activity.js +1 -10
  75. package/dist/commands/tasks/approvals/list.js +1 -9
  76. package/dist/commands/tasks/attachments/list.js +1 -9
  77. package/dist/commands/tasks/comments/list.js +1 -9
  78. package/dist/commands/tasks/dri-status.js +2 -9
  79. package/dist/commands/tasks/events/append.js +9 -7
  80. package/dist/commands/tasks/execution-timeline.js +1 -9
  81. package/dist/commands/tasks/lifecycle/detach.js +26 -5
  82. package/dist/commands/tasks/monitor.js +1 -9
  83. package/dist/commands/tasks/result/submit.js +9 -0
  84. package/dist/commands/tasks/runs.js +1 -9
  85. package/dist/commands/tasks/show.js +5 -12
  86. package/dist/commands/token/list.d.ts +8 -0
  87. package/dist/commands/token/list.js +51 -6
  88. package/dist/help.js +8 -12
  89. package/dist/lib/agent-home-workspace.d.ts +19 -0
  90. package/dist/lib/agent-home-workspace.js +39 -0
  91. package/dist/lib/agent-resolver.js +2 -2
  92. package/dist/lib/agentic-stream.d.ts +22 -1
  93. package/dist/lib/agentic-stream.js +48 -7
  94. package/dist/lib/cli-installers.d.ts +84 -2
  95. package/dist/lib/cli-installers.js +146 -13
  96. package/dist/lib/command-miss.d.ts +22 -0
  97. package/dist/lib/command-miss.js +78 -0
  98. package/dist/lib/daemon-setup.js +2 -2
  99. package/dist/lib/daemon-target.d.ts +14 -0
  100. package/dist/lib/daemon-target.js +32 -0
  101. package/dist/lib/daemonBroker.js +1 -1
  102. package/dist/lib/daemonHandoff.js +1 -1
  103. package/dist/lib/dedicated-lease-command.js +4 -1
  104. package/dist/lib/dedicated-machines.d.ts +8 -1
  105. package/dist/lib/dedicated-machines.js +22 -6
  106. package/dist/lib/dedicated-wait.js +13 -0
  107. package/dist/lib/exec-runtime-binary.js +2 -2
  108. package/dist/lib/followups.d.ts +18 -0
  109. package/dist/lib/followups.js +14 -1
  110. package/dist/lib/format.d.ts +11 -0
  111. package/dist/lib/format.js +21 -0
  112. package/dist/lib/harness-labels.d.ts +39 -0
  113. package/dist/lib/harness-labels.js +60 -0
  114. package/dist/lib/harnesses.d.ts +6 -0
  115. package/dist/lib/instruction-input.d.ts +13 -0
  116. package/dist/lib/instruction-input.js +20 -1
  117. package/dist/lib/label-ref.d.ts +8 -1
  118. package/dist/lib/label-ref.js +12 -2
  119. package/dist/lib/local-skills.d.ts +17 -1
  120. package/dist/lib/local-skills.js +20 -2
  121. package/dist/lib/login.js +5 -5
  122. package/dist/lib/machines.d.ts +6 -0
  123. package/dist/lib/machines.js +68 -2
  124. package/dist/lib/option-hint.d.ts +15 -0
  125. package/dist/lib/option-hint.js +75 -0
  126. package/dist/lib/runtime-tool-support.d.ts +34 -0
  127. package/dist/lib/runtime-tool-support.js +77 -0
  128. package/dist/lib/share-rows.d.ts +17 -0
  129. package/dist/lib/share-rows.js +35 -0
  130. package/dist/lib/workspaces.d.ts +3 -0
  131. package/dist/lib/workspaces.js +38 -0
  132. package/dist/node_modules/@skrr-ai/data-provider/index.js +5029 -5007
  133. package/oclif.manifest.json +34255 -34142
  134. package/package.json +10 -5
@@ -47,7 +47,7 @@ class HarnessesInstall extends base_command_1.BaseCommand {
47
47
  static flags = {
48
48
  json: core_1.Flags.boolean({ description: 'Output as JSON' }),
49
49
  daemon: core_1.Flags.string({
50
- description: 'Which machine to install on. Defaults to your only active daemon; required when several are active.',
50
+ description: 'Which machine to install on. Defaults to your only connected daemon; required when several are connected.',
51
51
  }),
52
52
  };
53
53
  async run() {
@@ -63,7 +63,7 @@ class HarnessesInstall extends base_command_1.BaseCommand {
63
63
  const target = await (0, daemon_target_1.resolveDaemonTarget)({
64
64
  explicit: flags.daemon,
65
65
  local: (0, daemon_target_1.localMachine)(),
66
- listActiveDaemons: () => (0, daemon_target_1.listActiveDaemons)(this.resolvedCredential),
66
+ listActiveDaemons: () => (0, daemon_target_1.listConnectedDaemons)(this.resolvedCredential),
67
67
  });
68
68
  const daemonId = this.daemonIdFor(target);
69
69
  let start;
@@ -152,14 +152,26 @@ class HarnessesInstall extends base_command_1.BaseCommand {
152
152
  this.error('This machine is a Dedicated Runtime whose daemon has not published an id this process can read. Name a machine with --daemon.', { exit: 1 });
153
153
  }
154
154
  if (target.kind === 'none') {
155
- this.error(`No active daemon is registered for this account, so nothing can perform the install. Start the local runtime with \`${this.config.bin} daemon start\`.`, { exit: 1 });
155
+ this.failWithCliError({
156
+ message: `No daemon is connected for this account, so nothing can perform the install. Start the background service on this computer with \`${this.config.bin} daemon start\`.`,
157
+ code: 'NO_DAEMON',
158
+ exit: 1,
159
+ retryable: false,
160
+ });
156
161
  }
157
162
  const choices = target.daemons
158
163
  .slice(0, 10)
159
- .map((d) => ` ${(0, daemon_ref_1.formatDaemonRef)(d.id)} ${d.name || '—'}`)
164
+ // Full ids: they are what `--daemon` takes (OSK-9993).
165
+ .map((d) => ` ${d.id} ${d.name || '—'}`)
160
166
  .join('\n');
161
- this.error(`${target.daemons.length} active daemons — say which machine to install on:\n${choices}\n` +
162
- `Pass one with --daemon, or see them all with \`${this.config.bin} list-daemons\`.`, { exit: 1 });
167
+ // The same refusal, and the same code, as \`code install\` (OSK-9993 verifier).
168
+ this.failWithCliError({
169
+ message: `${target.daemons.length} connected daemons — say which machine to install on:\n${choices}\n` +
170
+ `Pass one with --daemon, or see each daemon id in the DAEMON ID column of \`${this.config.bin} harnesses list\`.`,
171
+ code: 'AMBIGUOUS_DAEMON',
172
+ exit: 1,
173
+ retryable: false,
174
+ });
163
175
  }
164
176
  }
165
177
  exports.default = HarnessesInstall;
@@ -11,7 +11,7 @@ import { BaseCommand } from '../../base-command';
11
11
  *
12
12
  * That gap is not cosmetic, because `skrr harnesses list` answers a DIFFERENT
13
13
  * question and looks like it answers this one. Its `status` is the daemon's
14
- * socket, so on this account `skrr-code` read `online` with no binary installed
14
+ * socket, so on this account the first-party harness read `online` with no binary installed
15
15
  * at all, and `harnesses ping` answered it in 78ms — the daemon was there, the
16
16
  * harness was not. A user could not discover that from inside the product; it
17
17
  * took `command -v` in a shell.
@@ -4,7 +4,6 @@ const core_1 = require("@oclif/core");
4
4
  const base_command_1 = require("../../base-command");
5
5
  const data_provider_1 = require("@skrr-ai/data-provider");
6
6
  const cli_installers_1 = require("../../lib/cli-installers");
7
- const daemon_ref_1 = require("../../lib/daemon-ref");
8
7
  const daemon_target_1 = require("../../lib/daemon-target");
9
8
  const format_1 = require("../../lib/format");
10
9
  /**
@@ -19,7 +18,7 @@ const format_1 = require("../../lib/format");
19
18
  *
20
19
  * That gap is not cosmetic, because `skrr harnesses list` answers a DIFFERENT
21
20
  * question and looks like it answers this one. Its `status` is the daemon's
22
- * socket, so on this account `skrr-code` read `online` with no binary installed
21
+ * socket, so on this account the first-party harness read `online` with no binary installed
23
22
  * at all, and `harnesses ping` answered it in 78ms — the daemon was there, the
24
23
  * harness was not. A user could not discover that from inside the product; it
25
24
  * took `command -v` in a shell.
@@ -44,7 +43,7 @@ class HarnessesInstallers extends base_command_1.BaseCommand {
44
43
  static flags = {
45
44
  json: core_1.Flags.boolean({ description: 'Output as JSON' }),
46
45
  daemon: core_1.Flags.string({
47
- description: 'Which machine to ask. Defaults to your only active daemon; required when several are active.',
46
+ description: 'Which machine to ask. Defaults to your only connected daemon; required when several are connected.',
48
47
  }),
49
48
  };
50
49
  async run() {
@@ -53,7 +52,7 @@ class HarnessesInstallers extends base_command_1.BaseCommand {
53
52
  const target = await (0, daemon_target_1.resolveDaemonTarget)({
54
53
  explicit: flags.daemon,
55
54
  local: (0, daemon_target_1.localMachine)(),
56
- listActiveDaemons: () => (0, daemon_target_1.listActiveDaemons)(this.resolvedCredential),
55
+ listActiveDaemons: () => (0, daemon_target_1.listConnectedDaemons)(this.resolvedCredential),
57
56
  });
58
57
  const daemonId = this.daemonIdFor(target);
59
58
  let res;
@@ -65,8 +64,21 @@ class HarnessesInstallers extends base_command_1.BaseCommand {
65
64
  return;
66
65
  }
67
66
  const providers = res.providers ?? [];
67
+ // Computed before the output mode splits: a JSON reader needs the same
68
+ // "this daemon is older than that provider" signal the table prints, and
69
+ // the daemon version the header shows (OSK-9537 verifier).
70
+ const notOffered = providers.length > 0 ? (0, cli_installers_1.providersNotOffered)(providers, data_provider_1.MANAGED_CLI_PROVIDER_IDS) : [];
68
71
  if (flags.json) {
69
- this.log(JSON.stringify({ daemonId, platform: res.platform, providers }, null, 2));
72
+ this.log(JSON.stringify({
73
+ daemonId,
74
+ platform: res.platform,
75
+ daemonVersion: res.daemonVersion ?? null,
76
+ providers,
77
+ notOffered: notOffered.map((provider) => ({
78
+ provider,
79
+ addedInDaemon: cli_installers_1.MANAGED_CLI_PROVIDER_SINCE[(0, cli_installers_1.readinessKey)(provider)] ?? null,
80
+ })),
81
+ }, null, 2));
70
82
  return;
71
83
  }
72
84
  if (providers.length === 0) {
@@ -116,12 +128,12 @@ class HarnessesInstallers extends base_command_1.BaseCommand {
116
128
  }
117
129
  // A provider the platform knows and this daemon did not mention. Without
118
130
  // this it simply is not on the list, which reads as dropped support rather
119
- // than as an older daemon — `devin` arrived in daemon 0.8.43, so 0.8.35
131
+ // than as an older daemon — `devin` arrived in the 0.8.45 daemon release, so 0.8.35
120
132
  // answers with six providers and says nothing about the seventh.
121
- const missing = (0, cli_installers_1.providersNotOffered)(providers, data_provider_1.MANAGED_CLI_PROVIDER_IDS);
133
+ const missing = notOffered;
122
134
  if (missing.length > 0) {
123
135
  this.log('');
124
- this.log(` Not offered by this daemon: ${missing.join(', ')}. ` +
136
+ this.log(` Not offered by this daemon: ${(0, cli_installers_1.describeProvidersNotOffered)(missing)}. ` +
125
137
  'That usually means the daemon is older than the provider — ' +
126
138
  'check `skrr daemon status` for its version and how to update it.');
127
139
  }
@@ -142,14 +154,26 @@ class HarnessesInstallers extends base_command_1.BaseCommand {
142
154
  this.error('This machine is a Dedicated Runtime whose daemon has not published an id this process can read. Name a machine with --daemon.', { exit: 1 });
143
155
  }
144
156
  if (target.kind === 'none') {
145
- this.error(`No active daemon is registered for this account, so nothing can report on it. Start the local runtime with \`${this.config.bin} daemon start\`.`, { exit: 1 });
157
+ this.failWithCliError({
158
+ message: `No daemon is connected for this account, so nothing can report on it. Start the background service on this computer with \`${this.config.bin} daemon start\`.`,
159
+ code: 'NO_DAEMON',
160
+ exit: 1,
161
+ retryable: false,
162
+ });
146
163
  }
147
164
  const choices = target.daemons
148
165
  .slice(0, 10)
149
- .map((d) => ` ${(0, daemon_ref_1.formatDaemonRef)(d.id)} ${d.name || '—'}`)
166
+ // Full ids: they are what `--daemon` takes (OSK-9993).
167
+ .map((d) => ` ${d.id} ${d.name || '—'}`)
150
168
  .join('\n');
151
- this.error(`${target.daemons.length} active daemons — say which machine to report on:\n${choices}\n` +
152
- `Pass one with --daemon, or see them all with \`${this.config.bin} list-daemons\`.`, { exit: 1 });
169
+ // The same refusal, and the same code, as \`code install\` (OSK-9993 verifier).
170
+ this.failWithCliError({
171
+ message: `${target.daemons.length} connected daemons — say which machine to report on:\n${choices}\n` +
172
+ `Pass one with --daemon, or see each daemon id in the DAEMON ID column of \`${this.config.bin} harnesses list\`.`,
173
+ code: 'AMBIGUOUS_DAEMON',
174
+ exit: 1,
175
+ retryable: false,
176
+ });
153
177
  }
154
178
  }
155
179
  exports.default = HarnessesInstallers;
@@ -1,4 +1,5 @@
1
1
  import { BaseCommand } from '../../base-command';
2
+ import { type ProviderReadiness } from '../../lib/cli-installers';
2
3
  /**
3
4
  * Minimal shape of a provider Harness row as returned by
4
5
  * `GET /api/harnesses` (`{ harnesses: WireHarness[] }`). Only the
@@ -71,6 +72,25 @@ export declare function shortMachineLabel(machineUuid?: string): string;
71
72
  export declare function emptyListMessage(input: {
72
73
  provider: string | null;
73
74
  local: boolean;
75
+ /** `--all` was passed, so suggesting it is noise (OSK-9285). */
76
+ all?: boolean;
77
+ /**
78
+ * Every provider this account has a row for, whatever its status, when the
79
+ * caller could read it. Absent or null: unknown, and nothing is claimed.
80
+ */
81
+ accountProviders?: readonly string[] | null;
82
+ }): string;
83
+ /**
84
+ * The NAME cell. `show` and `--json` said when YOUR alias covers the shared
85
+ * name; this table printed the alias as if it were the name everyone sees
86
+ * (OSK-10004). The marker leads because the column truncates from the right,
87
+ * and a trailing one is the first thing a long name would cut.
88
+ */
89
+ export declare const ALIAS_MARKER = "*";
90
+ export declare function harnessNameCell(row: {
91
+ name?: string;
92
+ sharedName?: string;
93
+ aliased?: boolean;
74
94
  }): string;
75
95
  /**
76
96
  * What the DEFAULT column says for one row.
@@ -89,9 +109,33 @@ export type HarnessSelection = {
89
109
  hiddenOffline: number;
90
110
  /** Rows dropped by `--limit` alone. */
91
111
  hiddenByLimit: number;
112
+ /**
113
+ * Superseded rows a status filter dropped — the ones `--status offline`
114
+ * leaves to `--status superseded`. Only superseded rows are counted: online
115
+ * rows the same filter drops were never offline, so they are not "hidden".
116
+ */
117
+ hiddenSuperseded: number;
92
118
  /** Rows that survived every filter, before the online-only default and `--limit`. */
93
119
  matched: number;
94
120
  };
121
+ /**
122
+ * What `--status` accepts: exactly what the STATUS column prints (OSK-10005).
123
+ *
124
+ * The column says `superseded` for a row a later registration on the same
125
+ * machine replaced; the filter accepted only online|offline, so the one value
126
+ * that says "never coming back" could be read and never selected.
127
+ */
128
+ export declare const HARNESS_STATUS_FILTERS: readonly ["online", "offline", "superseded"];
129
+ /**
130
+ * The status to ask the SERVER for. Only `online` narrows there.
131
+ *
132
+ * Supersession is judged among the rows in one response — a row is superseded
133
+ * when a newer row for the same provider on the same machine exists. Asked for
134
+ * `offline` only, the server cannot see the live row that replaced an offline
135
+ * one, so it labelled that row `offline` while `--all` called it `superseded`.
136
+ * Online rows are never superseded, so that one filter is safe to push down.
137
+ */
138
+ export declare function serverStatusParam(status: string | undefined): string | undefined;
95
139
  /**
96
140
  * Harness rows created before `harnessLocation` was introduced do not carry that
97
141
  * field. A daemon id is the durable discriminator for those legacy rows:
@@ -145,6 +189,8 @@ export declare function selectHarnessRows(rows: HarnessRow[], options: {
145
189
  local: boolean;
146
190
  daemon?: string;
147
191
  limit?: number;
192
+ /** Keep only rows whose STATUS column reads this (`harnessStatusLabel`). */
193
+ status?: string;
148
194
  /** Hide offline rows (the human-readable default). */
149
195
  onlineOnly: boolean;
150
196
  }): HarnessSelection;
@@ -177,7 +223,9 @@ export type HarnessDefaults = {
177
223
  workspaceDefaultHarnessId?: string | null;
178
224
  };
179
225
  export type HarnessesJson = {
180
- harnesses: HarnessRow[];
226
+ harnesses: Array<HarnessRow & {
227
+ readiness?: ProviderReadiness | null;
228
+ }>;
181
229
  filters: HarnessesFilters;
182
230
  defaults: HarnessDefaults;
183
231
  counts: {
@@ -189,6 +237,8 @@ export type HarnessesJson = {
189
237
  hiddenByLocal: number;
190
238
  /** Rows `--limit` dropped — raise `--limit` to get them back. */
191
239
  hiddenByLimit: number;
240
+ /** Superseded rows `--status` dropped — `--status superseded` lists them. */
241
+ hiddenSuperseded: number;
192
242
  /**
193
243
  * OSK-3385 — how many of the returned rows are `status: 'online'`.
194
244
  *
@@ -213,7 +263,22 @@ export type HarnessesJson = {
213
263
  * (`compareHarnessRows`), not in server order. Round 1 introduced that sort;
214
264
  * it is deliberate, so `.harnesses[0]` is the row you almost always want.
215
265
  */
216
- export declare function buildHarnessesJson(selection: HarnessSelection, filters: HarnessesFilters, defaults?: HarnessDefaults): HarnessesJson;
266
+ export declare function buildHarnessesJson(selection: HarnessSelection, filters: HarnessesFilters, defaults?: HarnessDefaults, readiness?: (row: HarnessRow) => ProviderReadiness | undefined): HarnessesJson;
267
+ /**
268
+ * What the READINESS column's non-answers mean, counted from the rows shown.
269
+ *
270
+ * Each footnote names a different next step, so they are not merged: a `-` on
271
+ * an offline row wants `--all`/a started daemon, a `-` on a provider the daemon
272
+ * does not manage (hermes, gemini) wants nothing, `unknown` is installed but
273
+ * unverifiable, and only a definite not-ready label (interactive-required,
274
+ * not-installed, …) has something to fix. Counting `unknown` as not ready
275
+ * would send the reader to fix eleven rows that are fine as far as anyone can
276
+ * tell.
277
+ */
278
+ export declare function readinessFootnotes(rows: readonly HarnessRow[], readiness: {
279
+ lookup: (row: HarnessRow) => ProviderReadiness | undefined;
280
+ daemonAnswered: (row: HarnessRow) => boolean;
281
+ }): string[];
217
282
  /**
218
283
  * Rows with the provider in its CANONICAL spelling.
219
284
  *
@@ -246,6 +311,13 @@ export default class HarnessesList extends BaseCommand {
246
311
  daemon: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
247
312
  limit: import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
248
313
  local: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
314
+ readiness: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
249
315
  };
250
316
  run(): Promise<void>;
317
+ /**
318
+ * The canonical providers this account has any row for, or null when that
319
+ * cannot be read. Asked only when a --provider filter came back empty, so
320
+ * the ordinary path pays nothing for it.
321
+ */
322
+ private accountProviders;
251
323
  }