@synap-core/cli 1.13.0 → 1.13.1-next.20261102.246dc73

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 (227) hide show
  1. package/README.md +13 -3
  2. package/dist/build-info.json +2 -3
  3. package/dist/commands/agents.js +12 -2
  4. package/dist/commands/agents.js.map +1 -1
  5. package/dist/commands/capability.d.ts +86 -0
  6. package/dist/commands/capability.js +117 -30
  7. package/dist/commands/capability.js.map +1 -1
  8. package/dist/commands/context.js +2 -1
  9. package/dist/commands/context.js.map +1 -1
  10. package/dist/commands/data-extra.d.ts +13 -0
  11. package/dist/commands/data-extra.js +23 -2
  12. package/dist/commands/data-extra.js.map +1 -1
  13. package/dist/commands/doctor.d.ts +18 -0
  14. package/dist/commands/doctor.js +28 -1
  15. package/dist/commands/doctor.js.map +1 -1
  16. package/dist/commands/init.js +4 -2
  17. package/dist/commands/init.js.map +1 -1
  18. package/dist/commands/keys-request.d.ts +48 -0
  19. package/dist/commands/keys-request.js +236 -0
  20. package/dist/commands/keys-request.js.map +1 -0
  21. package/dist/commands/keys-request.test.d.ts +1 -0
  22. package/dist/commands/keys-request.test.js +176 -0
  23. package/dist/commands/keys-request.test.js.map +1 -0
  24. package/dist/commands/knowledge.d.ts +42 -5
  25. package/dist/commands/knowledge.js +90 -27
  26. package/dist/commands/knowledge.js.map +1 -1
  27. package/dist/commands/market.d.ts +89 -31
  28. package/dist/commands/market.js +215 -222
  29. package/dist/commands/market.js.map +1 -1
  30. package/dist/commands/mcp.d.ts +1 -1
  31. package/dist/commands/mcp.js +14 -9
  32. package/dist/commands/mcp.js.map +1 -1
  33. package/dist/commands/pods.js +6 -2
  34. package/dist/commands/pods.js.map +1 -1
  35. package/dist/commands/proposals-actions.js +7 -1
  36. package/dist/commands/proposals-actions.js.map +1 -1
  37. package/dist/commands/providers.d.ts +22 -6
  38. package/dist/commands/providers.js +39 -32
  39. package/dist/commands/providers.js.map +1 -1
  40. package/dist/commands/raycast.d.ts +15 -0
  41. package/dist/commands/raycast.js +36 -10
  42. package/dist/commands/raycast.js.map +1 -1
  43. package/dist/commands/status.js +12 -6
  44. package/dist/commands/status.js.map +1 -1
  45. package/dist/commands/statusline.backoff.test.js +13 -3
  46. package/dist/commands/statusline.backoff.test.js.map +1 -1
  47. package/dist/commands/statusline.d.ts +104 -9
  48. package/dist/commands/statusline.js +392 -148
  49. package/dist/commands/statusline.js.map +1 -1
  50. package/dist/commands/statusline.line2.test.d.ts +15 -0
  51. package/dist/commands/statusline.line2.test.js +226 -0
  52. package/dist/commands/statusline.line2.test.js.map +1 -0
  53. package/dist/commands/statusline.needs-you.test.d.ts +1 -0
  54. package/dist/commands/statusline.needs-you.test.js +17 -0
  55. package/dist/commands/statusline.needs-you.test.js.map +1 -0
  56. package/dist/commands/statusline.now.test.d.ts +10 -0
  57. package/dist/commands/statusline.now.test.js +250 -0
  58. package/dist/commands/statusline.now.test.js.map +1 -0
  59. package/dist/commands/tracks.d.ts +1 -0
  60. package/dist/commands/tracks.js +4 -0
  61. package/dist/commands/tracks.js.map +1 -1
  62. package/dist/commands/upload.js +12 -0
  63. package/dist/commands/upload.js.map +1 -1
  64. package/dist/commands/wait.d.ts +124 -0
  65. package/dist/commands/wait.js +384 -0
  66. package/dist/commands/wait.js.map +1 -0
  67. package/dist/commands/wait.test.d.ts +8 -0
  68. package/dist/commands/wait.test.js +308 -0
  69. package/dist/commands/wait.test.js.map +1 -0
  70. package/dist/commands/worker-github-app.d.ts +63 -0
  71. package/dist/commands/worker-github-app.js +161 -0
  72. package/dist/commands/worker-github-app.js.map +1 -0
  73. package/dist/commands/worker-github-app.test.d.ts +1 -0
  74. package/dist/commands/worker-github-app.test.js +102 -0
  75. package/dist/commands/worker-github-app.test.js.map +1 -0
  76. package/dist/commands/worker-github-broker.d.ts +39 -0
  77. package/dist/commands/worker-github-broker.js +106 -0
  78. package/dist/commands/worker-github-broker.js.map +1 -0
  79. package/dist/commands/worker-github-broker.test.d.ts +1 -0
  80. package/dist/commands/worker-github-broker.test.js +90 -0
  81. package/dist/commands/worker-github-broker.test.js.map +1 -0
  82. package/dist/commands/worker-runs.test.d.ts +1 -0
  83. package/dist/commands/worker-runs.test.js +150 -0
  84. package/dist/commands/worker-runs.test.js.map +1 -0
  85. package/dist/commands/worker-worktrees.d.ts +34 -0
  86. package/dist/commands/worker-worktrees.js +87 -0
  87. package/dist/commands/worker-worktrees.js.map +1 -0
  88. package/dist/commands/worker.d.ts +192 -5
  89. package/dist/commands/worker.js +467 -45
  90. package/dist/commands/worker.js.map +1 -1
  91. package/dist/commands/worker.test.js +269 -3
  92. package/dist/commands/worker.test.js.map +1 -1
  93. package/dist/index.js +59 -4
  94. package/dist/index.js.map +1 -1
  95. package/dist/lib/agents-config.d.ts +9 -0
  96. package/dist/lib/agents-config.js +20 -0
  97. package/dist/lib/agents-config.js.map +1 -1
  98. package/dist/lib/atomic-file.d.ts +20 -1
  99. package/dist/lib/atomic-file.js +100 -2
  100. package/dist/lib/atomic-file.js.map +1 -1
  101. package/dist/lib/auth.d.ts +25 -0
  102. package/dist/lib/auth.js +49 -9
  103. package/dist/lib/auth.js.map +1 -1
  104. package/dist/lib/box/job-server.js +4 -0
  105. package/dist/lib/box/job-server.js.map +1 -1
  106. package/dist/lib/bridge-invocation.test.d.ts +1 -0
  107. package/dist/lib/bridge-invocation.test.js +75 -0
  108. package/dist/lib/bridge-invocation.test.js.map +1 -0
  109. package/dist/lib/bridge-status.d.ts +144 -0
  110. package/dist/lib/bridge-status.js +227 -0
  111. package/dist/lib/bridge-status.js.map +1 -0
  112. package/dist/lib/bridge-status.test.d.ts +6 -0
  113. package/dist/lib/bridge-status.test.js +197 -0
  114. package/dist/lib/bridge-status.test.js.map +1 -0
  115. package/dist/lib/client-header.test.js +19 -1
  116. package/dist/lib/client-header.test.js.map +1 -1
  117. package/dist/lib/conversation-headers.d.ts +67 -2
  118. package/dist/lib/conversation-headers.js +122 -6
  119. package/dist/lib/conversation-headers.js.map +1 -1
  120. package/dist/lib/conversation-headers.test.d.ts +1 -0
  121. package/dist/lib/conversation-headers.test.js +78 -0
  122. package/dist/lib/conversation-headers.test.js.map +1 -0
  123. package/dist/lib/credential-class.d.ts +12 -1
  124. package/dist/lib/credential-class.js +20 -0
  125. package/dist/lib/credential-class.js.map +1 -1
  126. package/dist/lib/device-connect.d.ts +45 -0
  127. package/dist/lib/device-connect.js +60 -0
  128. package/dist/lib/device-connect.js.map +1 -1
  129. package/dist/lib/goal-words.js +6 -3
  130. package/dist/lib/goal-words.js.map +1 -1
  131. package/dist/lib/hub-client.d.ts +59 -1
  132. package/dist/lib/hub-client.js +130 -36
  133. package/dist/lib/hub-client.js.map +1 -1
  134. package/dist/lib/key-locations.d.ts +3 -3
  135. package/dist/lib/key-locations.js +3 -39
  136. package/dist/lib/key-locations.js.map +1 -1
  137. package/dist/lib/machine-instance.d.ts +7 -5
  138. package/dist/lib/machine-instance.js +7 -5
  139. package/dist/lib/machine-instance.js.map +1 -1
  140. package/dist/lib/mcp-bridge.d.ts +43 -0
  141. package/dist/lib/mcp-bridge.js +199 -11
  142. package/dist/lib/mcp-bridge.js.map +1 -1
  143. package/dist/lib/mcp-bridge.test.js +194 -2
  144. package/dist/lib/mcp-bridge.test.js.map +1 -1
  145. package/dist/lib/mcp-call.d.ts +5 -1
  146. package/dist/lib/mcp-call.js +7 -6
  147. package/dist/lib/mcp-call.js.map +1 -1
  148. package/dist/lib/mcp-connector-url.test.d.ts +1 -0
  149. package/dist/lib/mcp-connector-url.test.js +13 -0
  150. package/dist/lib/mcp-connector-url.test.js.map +1 -0
  151. package/dist/lib/mcp-snippets.d.ts +16 -0
  152. package/dist/lib/mcp-snippets.js +20 -2
  153. package/dist/lib/mcp-snippets.js.map +1 -1
  154. package/dist/lib/now-line.d.ts +66 -0
  155. package/dist/lib/now-line.js +193 -0
  156. package/dist/lib/now-line.js.map +1 -0
  157. package/dist/lib/now-line.test.d.ts +5 -0
  158. package/dist/lib/now-line.test.js +177 -0
  159. package/dist/lib/now-line.test.js.map +1 -0
  160. package/dist/lib/package-updates.d.ts +66 -0
  161. package/dist/lib/package-updates.js +76 -0
  162. package/dist/lib/package-updates.js.map +1 -0
  163. package/dist/lib/pod.d.ts +0 -4
  164. package/dist/lib/pod.js +0 -7
  165. package/dist/lib/pod.js.map +1 -1
  166. package/dist/lib/register-claude-code-mcp.test.js +19 -0
  167. package/dist/lib/register-claude-code-mcp.test.js.map +1 -1
  168. package/dist/lib/safe-open.d.ts +5 -3
  169. package/dist/lib/safe-open.js +9 -8
  170. package/dist/lib/safe-open.js.map +1 -1
  171. package/dist/lib/self-host.d.ts +17 -0
  172. package/dist/lib/self-host.js +24 -0
  173. package/dist/lib/self-host.js.map +1 -0
  174. package/dist/lib/targets.d.ts +31 -0
  175. package/dist/lib/targets.js +100 -104
  176. package/dist/lib/targets.js.map +1 -1
  177. package/dist/lib/template-lifecycle.d.ts +0 -31
  178. package/dist/lib/template-lifecycle.js +0 -74
  179. package/dist/lib/template-lifecycle.js.map +1 -1
  180. package/dist/lib/term.d.ts +24 -0
  181. package/dist/lib/term.js +52 -0
  182. package/dist/lib/term.js.map +1 -0
  183. package/dist/lib/term.test.d.ts +1 -0
  184. package/dist/lib/term.test.js +29 -0
  185. package/dist/lib/term.test.js.map +1 -0
  186. package/dist/lib/transcript-index.d.ts +94 -0
  187. package/dist/lib/transcript-index.js +321 -0
  188. package/dist/lib/transcript-index.js.map +1 -0
  189. package/dist/lib/transcript-index.test.d.ts +10 -0
  190. package/dist/lib/transcript-index.test.js +200 -0
  191. package/dist/lib/transcript-index.test.js.map +1 -0
  192. package/dist/lib/wait-help.d.ts +11 -0
  193. package/dist/lib/wait-help.js +25 -0
  194. package/dist/lib/wait-help.js.map +1 -0
  195. package/dist/lib/wait-state.d.ts +57 -0
  196. package/dist/lib/wait-state.js +114 -0
  197. package/dist/lib/wait-state.js.map +1 -0
  198. package/package.json +2 -2
  199. package/skills/synap/SKILL.md +81 -44
  200. package/skills/synap/code-skills.md +15 -1
  201. package/skills/synap/concepts.md +36 -26
  202. package/skills/synap/document-embeds.md +15 -1
  203. package/skills/synap/focus-sessions.md +4 -4
  204. package/skills/synap/from-intent.md +2 -2
  205. package/skills/synap/governance-rules.md +2 -0
  206. package/skills/synap/hand-off.md +10 -6
  207. package/skills/synap/reflexes.md +4 -4
  208. package/skills/synap/work-model.md +1 -1
  209. package/skills/synap/writing-titles.md +7 -0
  210. package/skills/synap-app/SKILL.md +2 -2
  211. package/skills/synap-app/overview.md +2 -2
  212. package/skills/synap-market/SKILL.md +1 -1
  213. package/skills/synap-market/governance-and-catalog.md +1 -1
  214. package/skills/synap-schema/SKILL.md +4 -1
  215. package/skills/synap-schema/intent-vocabulary-ssot.md +4 -1
  216. package/dist/commands/template.d.ts +0 -42
  217. package/dist/commands/template.js +0 -191
  218. package/dist/commands/template.js.map +0 -1
  219. package/dist/lib/browser-auth.d.ts +0 -35
  220. package/dist/lib/browser-auth.js +0 -170
  221. package/dist/lib/browser-auth.js.map +0 -1
  222. package/dist/lib/openclaw.d.ts +0 -32
  223. package/dist/lib/openclaw.js +0 -165
  224. package/dist/lib/openclaw.js.map +0 -1
  225. package/dist/lib/seed.d.ts +0 -13
  226. package/dist/lib/seed.js +0 -135
  227. package/dist/lib/seed.js.map +0 -1
@@ -22,10 +22,11 @@
22
22
  * handle fall back to a route-to-browser message.
23
23
  */
24
24
  import { type CatalogEntry, type TemplateUpdateCheck } from "@synap-core/workspace-templates";
25
+ import { type HubConfig } from "../lib/hub-client.js";
25
26
  import { type PackageFilters, type TierInfo } from "../lib/cp-packages.js";
26
27
  import { type InstalledKind, type InstalledRow, type InstalledTemplateInfo, type WorkspaceAttachment } from "../lib/installed.js";
27
28
  import { type TemplateUpdateStep } from "../lib/template-steps.js";
28
- import { type PendingDataChanges } from "../lib/template-lifecycle.js";
29
+ import { type DataChange, type PendingDataChanges } from "../lib/template-lifecycle.js";
29
30
  export interface MarketCatalog {
30
31
  entries: CatalogEntry[];
31
32
  tierBySlug: Map<string, TierInfo>;
@@ -218,8 +219,8 @@ export interface ApplyVerdict {
218
219
  */
219
220
  export declare function podApplyState(res: Record<string, unknown>): "not-finished" | "awaiting-approval" | null;
220
221
  /**
221
- * The verdict of one `/packages/apply` response — the ONE reader both
222
- * `marketInstall` and `applyOnePackage` call. Layer 2's outcome comes from the
222
+ * The verdict of one `/packages/apply` response — the ONE reader
223
+ * `marketInstall` calls. Layer 2's outcome comes from the
223
224
  * pod's own state (`podApplyState`): an apply the pod says is unfinished is
224
225
  * never "updated", and never a stamp contradiction (the pod held the version
225
226
  * on purpose — redeploying fixes nothing).
@@ -230,12 +231,11 @@ export declare function classifyApplyResponse(entry: CatalogEntry, res: Record<s
230
231
  stampVerified?: boolean | null;
231
232
  }): ApplyVerdict;
232
233
  /**
233
- * Classify one `/packages/apply` response into the honest verdict both
234
- * `marketInstall` and `applyOnePackage` print (and both put in `--json`).
234
+ * Classify one `/packages/apply` response into the honest verdict
235
+ * `marketInstall` prints (and puts in `--json`).
235
236
  * `wasUnstamped` = the slug was already installed with no recorded version
236
237
  * BEFORE this call (only `marketInstall` can detect this today — see its
237
- * `fetchInstalledTemplates` call; `applyOnePackage` only ever re-applies
238
- * already-versioned slugs, so it always passes `false`).
238
+ * `fetchInstalledTemplates` call).
239
239
  */
240
240
  export declare function classifyApplyResult(entry: CatalogEntry, ws: WorkspaceApplyResult | undefined, dependencies: ResolvedDependencyLike[] | undefined, seedSummary: SeedSummary | undefined, ctx: {
241
241
  remoteVersionSent?: string;
@@ -266,7 +266,7 @@ export declare function deferredPlacementLines(res: Record<string, unknown>): st
266
266
  * older pod that does not say).
267
267
  */
268
268
  export declare function heldVersionLine(res: Record<string, unknown>): string | null;
269
- /** Render a `classifyApplyResult` verdict — the ONE honest-text door for both `marketInstall` and `applyOnePackage`. */
269
+ /** Render a `classifyApplyResult` verdict — the ONE honest-text door of `marketInstall`. */
270
270
  export declare function printApplyVerdict(entry: CatalogEntry, verdict: ApplyVerdict): void;
271
271
  export declare function market(opts: {
272
272
  list?: boolean;
@@ -325,28 +325,34 @@ export interface UpdateCheck extends TemplateUpdateCheck {
325
325
  * see `InstalledTemplateInfo.version`'s doc in `lib/installed.ts`.
326
326
  */
327
327
  noVersionInfo: boolean;
328
- /** The installed row's kind (absent = `"workspace"`, the only kind an older pod reports). Picks the update door — see {@link updateDoorFor}. */
328
+ /** The installed row's kind (absent = `"workspace"`, the only kind an older pod reports). */
329
329
  kind?: InstalledKind;
330
+ /** The pod's reason when it could not compare this package (`market update`). */
331
+ reason?: string;
330
332
  }
331
333
  /**
332
- * Which pod door UPDATES an installed package of this kind, or `null` when the
333
- * pod has no per-package updater for it.
334
- *
335
- * ⚠️ Never default to `/packages/apply`. That is the WORKSPACE door: it mints a
336
- * workspace for any body carrying a `_meta.slug`. On 2026-10-12 `market update`
337
- * sent the `creative-director` SKILL through it and the pod created an empty
338
- * "New Workspace" — the update-time twin of the 2026-09-05 install bug that
339
- * {@link declaredCategoryOf} fixed.
340
- *
341
- * - view / skill / automation converge through the source-linked 3-way-merge
342
- * reconcile (`POST /configs/reconcile`) — the SAME comparator whose dry run
343
- * marked the row drifted (`GET /installed?drift`). Re-running `market.install`
344
- * is not an update: the skill arm always creates (unique slug ⇒ fails), the
345
- * automation arm returns "reused".
346
- * - cell / capability have no per-package updater here: `null`.
334
+ * The slugs with an update that `synap market update <slug>` can apply. Every
335
+ * installed kind (space, capability, view, skill, automation) updates through
336
+ * the pod's ONE update door (`POST /package-updates/{slug}/apply`), so every
337
+ * slug with an update is offered; what only the person can do is said by the
338
+ * pod at apply time (`NEEDS_PERSON`), never guessed here. Next-step
339
+ * suggestions use it.
340
+ */
341
+ export declare function cliUpdatableSlugs(checks: ReadonlyArray<{
342
+ slug: string;
343
+ kind?: InstalledKind;
344
+ updateAvailable: boolean;
345
+ }>): string[];
346
+ /** The status of an update left for the person to apply in pod admin (not a failure). */
347
+ export declare const APPLY_IN_POD_ADMIN = "apply-in-pod-admin";
348
+ /**
349
+ * Where the person finishes ONE package's update: pod admin's review page for
350
+ * it (`/marketplace/updates/<slug>`), when the pod-admin origin derives from
351
+ * the pod's; else the pod's own link (`reviewUrl`, pod-relative
352
+ * `/open/update/<slug>`, which the pod sends on to pod admin); else the
353
+ * Updates tab's words.
347
354
  */
348
- export type UpdateDoor = "packages-apply" | "configs-reconcile";
349
- export declare function updateDoorFor(kind: InstalledKind | undefined): UpdateDoor | null;
355
+ export declare function packageReviewLink(podUrl: string, slug: string, reviewUrl?: unknown): string | undefined;
350
356
  /**
351
357
  * Per-installed-slug drift check. SERVER-FIRST: when the pod runs the
352
358
  * server-side TemplateHealth code (Hub `/workspaces` returns `drifted`/
@@ -363,6 +369,55 @@ export declare function updateDoorFor(kind: InstalledKind | undefined): UpdateDo
363
369
  export declare function computeUpdates(installedTemplates: InstalledTemplateInfo[], cat: MarketCatalog): UpdateCheck[];
364
370
  /** First check per slug, order preserved — an update is applied per PACKAGE, not per installed object. */
365
371
  export declare function dedupeBySlug(checks: UpdateCheck[]): UpdateCheck[];
372
+ /** One update's outcome, as `market update` reports it. */
373
+ export interface UpdateApplyResult {
374
+ slug: string;
375
+ outcome: string;
376
+ /** The coarse status the summary counts (see `summarizeApplyResults`). */
377
+ status: string;
378
+ warnings: string[];
379
+ error?: string;
380
+ /** The catalog definition's failing fields, when the pod refused it. */
381
+ fieldErrors?: Record<string, string[]>;
382
+ /** Set when the update was filed for the person's approval. */
383
+ proposalId?: string;
384
+ proposalIds?: string[];
385
+ /** Where the person approves it, or finishes it on pod admin. */
386
+ reviewUrl?: string;
387
+ pendingDataChanges?: DataChange[];
388
+ }
389
+ /**
390
+ * Apply ONE installed package's update through the pod's ONE update door,
391
+ * `POST /package-updates/{slug}/apply`, whatever its kind (space, capability,
392
+ * view, skill, automation) and whoever holds the key. The pod applies the
393
+ * rule (backend `services/package-updates/`): a person's apply lands; an
394
+ * agent key's is filed for the person's approval (`proposed`) and lands when
395
+ * they approve it; what only the person can do (agree to changes to existing
396
+ * records, choose for a field both sides changed, change a view) is
397
+ * `NEEDS_PERSON` / `CHOICES_NEEDED` with that package's review page. An
398
+ * older pod that refuses an agent here (403, no `reasonCode`) keeps today's
399
+ * line: to apply in pod admin.
400
+ */
401
+ export declare function applyUpdateThroughDoor(c: {
402
+ slug: string;
403
+ kind?: InstalledKind;
404
+ latestVersion?: string;
405
+ }, cfg: HubConfig, opts: {
406
+ json?: boolean;
407
+ }, applyTimeoutMs?: number, acceptDataChanges?: string[]): Promise<UpdateApplyResult>;
408
+ /**
409
+ * Where the person approves a filed update: pod admin's proposal page, the
410
+ * approval door (`/proposal/<id>`), when the pod-admin origin derives from the
411
+ * pod's; else the link the pod sent (`reviewUrl`); else nothing.
412
+ */
413
+ export declare function approvalLink(podUrl: string, proposalId: string | undefined, reviewUrl: unknown): string | undefined;
414
+ /**
415
+ * Where the person applies a package update a limited key may not apply
416
+ * (a computer key's grant leaves out `workspace.update`, by design: applying a
417
+ * workspace package is the person's act). Pod admin's Marketplace, Updates
418
+ * tab, named by URL when the pod-admin origin derives from the pod's.
419
+ */
420
+ export declare function marketUpdatesDoor(podUrl: string): string;
366
421
  export declare function marketUpdate(slugsArg: string[] | undefined, opts: {
367
422
  /** The literal `--yes` flag: apply every update AND agree to every data change listed. */
368
423
  yes?: boolean;
@@ -377,16 +432,18 @@ export declare function marketUpdate(slugsArg: string[] | undefined, opts: {
377
432
  timeout?: string;
378
433
  }): Promise<void>;
379
434
  /**
380
- * One-line rollup over a batch of `applyOnePackage` outcomes — computed from
381
- * the SAME per-item `status` (`classifyApplyResult`'s honest verdict) the
435
+ * One-line rollup over a batch of update outcomes (`applyUpdateThroughDoor`) — computed from
436
+ * the SAME per-item `status` the
382
437
  * loop already collects, not a separate tally. `"installed"`/`"updated"`/
383
438
  * `"composed"`/`"legacy-unknown"` count as a clean update, `"unchanged"` as
384
439
  * already-current, the `*-with-failures` and `"stamp-contradiction"` statuses
385
440
  * get their OWN bucket — a partial capability-seed failure or a stamp that
386
441
  * silently didn't take is never folded into a clean "updated" count.
387
- * `"timed-out"` is broken out from the generic `"failed"` bucket; everything
388
- * else (locked/proposed/fetch-failed/not-in-catalog/no-workspace/unknown)
389
- * rolls into "failed".
442
+ * `"timed-out"` is broken out from the generic `"failed"` bucket;
443
+ * `"proposed"`/`"awaiting-approval"` count as waiting for the person's
444
+ * approval (never failed); everything else
445
+ * (locked/fetch-failed/not-in-catalog/no-workspace/unknown) rolls into
446
+ * "failed".
390
447
  */
391
448
  export declare function summarizeApplyResults(results: Array<{
392
449
  slug: string;
@@ -399,6 +456,7 @@ export declare function summarizeApplyResults(results: Array<{
399
456
  timedOut: number;
400
457
  proposed: number;
401
458
  needsConsent: number;
459
+ toApplyInPodAdmin: number;
402
460
  line: string;
403
461
  };
404
462
  /**