@timurproko/a1 0.2.7-dev.1252 → 0.2.7-dev.1255

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 (253) hide show
  1. package/bin/ui.js +3 -3
  2. package/dist/app/session-shell/clipboard-diagnostics.d.ts +2 -2
  3. package/dist/app/session-shell/clipboard-image.d.ts +0 -1
  4. package/dist/app/session-shell/clipboard-image.js +1 -1
  5. package/dist/app/session-shell/dialog-coordinator.d.ts +6 -5
  6. package/dist/app/session-shell/dialog-coordinator.js +3 -4
  7. package/dist/app/session-shell/dock-chrome.d.ts +11 -6
  8. package/dist/app/session-shell/dock-chrome.js +5 -8
  9. package/dist/app/session-shell/editor-hyperlink-budget.d.ts +0 -2
  10. package/dist/app/session-shell/editor-hyperlink-budget.js +1 -1
  11. package/dist/app/session-shell/exit-notice.d.ts +2 -2
  12. package/dist/app/session-shell/exit-notice.js +1 -1
  13. package/dist/app/session-shell/extension-surface.d.ts +8 -7
  14. package/dist/app/session-shell/helper-pool.d.ts +3 -4
  15. package/dist/app/session-shell/helper-pool.js +1 -1
  16. package/dist/app/session-shell/image-preparation-client.d.ts +4 -3
  17. package/dist/app/session-shell/image-preparation.d.ts +0 -2
  18. package/dist/app/session-shell/image-preparation.js +2 -2
  19. package/dist/app/session-shell/image-source.d.ts +2 -3
  20. package/dist/app/session-shell/image-source.js +2 -2
  21. package/dist/app/session-shell/input-surface-switch.d.ts +9 -7
  22. package/dist/app/session-shell/input-surface-switch.js +1 -2
  23. package/dist/app/session-shell/login-interaction.d.ts +5 -4
  24. package/dist/app/session-shell/login-interaction.js +2 -3
  25. package/dist/app/session-shell/paste-executor.d.ts +4 -8
  26. package/dist/app/session-shell/paste-executor.js +2 -2
  27. package/dist/app/session-shell/paste-protocol.d.ts +2 -2
  28. package/dist/app/session-shell/path-chip-presentation.d.ts +0 -5
  29. package/dist/app/session-shell/path-chip-presentation.js +3 -3
  30. package/dist/app/session-shell/prompt-chips.d.ts +8 -7
  31. package/dist/app/session-shell/prompt-history-controller.d.ts +3 -3
  32. package/dist/app/session-shell/prompt-submission.d.ts +5 -2
  33. package/dist/app/session-shell/prompt-submission.js +4 -5
  34. package/dist/app/session-shell/quit-outro-effects.d.ts +3 -3
  35. package/dist/app/session-shell/quit-outro-effects.js +1 -4
  36. package/dist/app/session-shell/quit-outro.d.ts +9 -12
  37. package/dist/app/session-shell/quit-outro.js +11 -11
  38. package/dist/app/session-shell/response-copy-protocol.d.ts +3 -2
  39. package/dist/app/session-shell/response-copy-transport.d.ts +2 -14
  40. package/dist/app/session-shell/response-copy-transport.js +1 -1
  41. package/dist/app/session-shell/session-lifecycle.d.ts +2 -1
  42. package/dist/app/session-shell/session-shell-root.d.ts +74 -89
  43. package/dist/app/session-shell/session-shell-root.js +81 -113
  44. package/dist/app/session-shell/session-shell.d.ts +13 -16
  45. package/dist/app/session-shell/session-shell.js +144 -268
  46. package/dist/app/session-shell/session-viewport-controller.d.ts +7 -6
  47. package/dist/app/session-shell/session-viewport-controller.js +2 -2
  48. package/dist/app/session-shell/settings-bindings.d.ts +24 -2
  49. package/dist/app/session-shell/settings-bindings.js +24 -0
  50. package/dist/app/session-shell/share-operation.d.ts +3 -3
  51. package/dist/app/session-shell/share-operation.js +4 -6
  52. package/dist/app/session-shell/shell-clipboard.d.ts +59 -0
  53. package/dist/app/session-shell/shell-clipboard.js +119 -0
  54. package/dist/app/session-shell/shell-editor-factory.d.ts +8 -4
  55. package/dist/app/session-shell/shell-editor-factory.js +13 -15
  56. package/dist/app/session-shell/shell-host.d.ts +16 -17
  57. package/dist/app/session-shell/shell-host.js +18 -19
  58. package/dist/app/session-shell/shell-layout.d.ts +2 -2
  59. package/dist/app/session-shell/shell-prompt-suggestions.d.ts +26 -0
  60. package/dist/app/session-shell/shell-prompt-suggestions.js +48 -0
  61. package/dist/app/session-shell/suggestion-surface.d.ts +1 -6
  62. package/dist/app/session-shell/suggestion-surface.js +1 -1
  63. package/dist/app/session-shell/system-clipboard.d.ts +2 -14
  64. package/dist/app/session-shell/system-clipboard.js +2 -7
  65. package/dist/app/session-shell/transcript-document.d.ts +11 -8
  66. package/dist/app/session-shell/transcript-document.js +13 -14
  67. package/dist/app/session-shell/viewport-layout.d.ts +2 -2
  68. package/dist/app/session-shell/workflow-output.d.ts +5 -3
  69. package/dist/app/session-shell/workflow-output.js +13 -15
  70. package/dist/cli/package-messages.d.ts +0 -1
  71. package/dist/cli/package-messages.js +1 -1
  72. package/dist/cli/session-context.d.ts +1 -1
  73. package/dist/cli/uninstall.d.ts +3 -2
  74. package/dist/composition/owned-settings.d.ts +2 -1
  75. package/dist/composition/owned-settings.js +0 -3
  76. package/dist/composition/owned-ui.d.ts +1 -1
  77. package/dist/composition/owned-ui.js +27 -27
  78. package/dist/composition/reference-selection-options.d.ts +1 -1
  79. package/dist/composition/reference-selection-options.js +1 -1
  80. package/dist/composition/session-runtime-registry.d.ts +2 -1
  81. package/dist/composition/settings-route-host.js +3 -10
  82. package/dist/composition/settings-search-input.d.ts +2 -1
  83. package/dist/composition/startup-route.d.ts +2 -2
  84. package/dist/composition/startup-route.js +2 -2
  85. package/dist/contracts/owned-ui/extension-ui.d.ts +2 -1
  86. package/dist/contracts/owned-ui/index.d.ts +1 -0
  87. package/dist/contracts/owned-ui/session-presenters.d.ts +3 -0
  88. package/dist/contracts/owned-ui/shell-components.d.ts +543 -0
  89. package/dist/contracts/owned-ui/shell-components.js +1 -0
  90. package/dist/contracts/presentation/component.d.ts +17 -0
  91. package/dist/contracts/presentation/component.js +8 -0
  92. package/dist/contracts/presentation/index.d.ts +6 -15
  93. package/dist/contracts/presentation/index.js +2 -0
  94. package/dist/contracts/presentation/terminal.d.ts +290 -0
  95. package/dist/contracts/presentation/terminal.js +1 -0
  96. package/dist/contracts/presentation/theme.d.ts +46 -0
  97. package/dist/contracts/presentation/theme.js +1 -0
  98. package/dist/features/launch/development-launch.js +1 -1
  99. package/dist/features/launch/runtime-selection.d.ts +2 -2
  100. package/dist/features/launch/runtime-selection.js +2 -2
  101. package/dist/features/owned-ui/project-trust-prompt.d.ts +2 -2
  102. package/dist/features/owned-ui/project-trust-prompt.js +1 -1
  103. package/dist/features/owned-ui/release-note-state.d.ts +2 -1
  104. package/dist/features/owned-ui/settings-app.js +38 -219
  105. package/dist/features/owned-ui/settings-edits.d.ts +31 -0
  106. package/dist/features/owned-ui/settings-edits.js +139 -0
  107. package/dist/features/owned-ui/settings-scroll-rail.d.ts +29 -0
  108. package/dist/features/owned-ui/settings-scroll-rail.js +79 -0
  109. package/dist/features/owned-ui/settings-search-input.d.ts +2 -1
  110. package/dist/features/prompt-history/service.d.ts +3 -2
  111. package/dist/foundation/lifecycle/claim-gate.d.ts +2 -1
  112. package/dist/foundation/release/automatic-update.d.ts +5 -14
  113. package/dist/foundation/release/automatic-update.js +14 -14
  114. package/dist/foundation/release/bootstrap.js +4 -4
  115. package/dist/foundation/release/dependency-certification.d.ts +0 -1
  116. package/dist/foundation/release/dependency-certification.js +1 -1
  117. package/dist/foundation/release/early-accent.d.ts +2 -2
  118. package/dist/foundation/release/early-accent.js +1 -1
  119. package/dist/foundation/release/index.d.ts +2 -2
  120. package/dist/foundation/release/index.js +1 -1
  121. package/dist/foundation/release/latest-release.d.ts +3 -18
  122. package/dist/foundation/release/latest-release.js +10 -10
  123. package/dist/foundation/release/ordinary-launch-selection.d.ts +1 -1
  124. package/dist/foundation/release/ordinary-launch-selection.js +1 -1
  125. package/dist/foundation/release/release-gc.d.ts +3 -3
  126. package/dist/foundation/release/release-gc.js +4 -4
  127. package/dist/foundation/release/{cohort-state.d.ts → release-state.d.ts} +23 -23
  128. package/dist/foundation/release/{cohort-state.js → release-state.js} +8 -8
  129. package/dist/foundation/release/update-activation.js +2 -2
  130. package/dist/foundation/release/update-execution-lease.d.ts +2 -3
  131. package/dist/foundation/release/update-execution-lease.js +1 -1
  132. package/dist/foundation/release/update-launch.d.ts +2 -2
  133. package/dist/foundation/release/update.d.ts +0 -2
  134. package/dist/foundation/release/update.js +14 -14
  135. package/dist/foundation/startup/startup-budget.d.ts +5 -5
  136. package/dist/foundation/startup/startup-budget.js +2 -2
  137. package/dist/integrations/pi/components/editor-interaction.d.ts +4 -12
  138. package/dist/integrations/pi/components/index.d.ts +15 -9
  139. package/dist/integrations/pi/components/index.js +9 -5
  140. package/dist/integrations/pi/components/lazy-selectors.d.ts +2 -10
  141. package/dist/integrations/pi/components/lazy-selectors.js +1 -1
  142. package/dist/integrations/pi/components/modal-frame.d.ts +5 -22
  143. package/dist/integrations/pi/components/modal-frame.js +3 -23
  144. package/dist/integrations/pi/components/owned-editor-ux.d.ts +4 -3
  145. package/dist/integrations/pi/components/prompt-input-port.d.ts +2 -19
  146. package/dist/integrations/pi/components/resources/builtin-themes.d.ts +2 -1
  147. package/dist/integrations/pi/components/shell-editor-autocomplete.d.ts +3 -2
  148. package/dist/integrations/pi/components/shell-footer-status.d.ts +2 -2
  149. package/dist/integrations/pi/components/shell-footer-status.js +3 -2
  150. package/dist/integrations/pi/components/shell-presenters-info.d.ts +6 -5
  151. package/dist/integrations/pi/components/shell-presenters-info.js +2 -1
  152. package/dist/integrations/pi/components/shell-session-info-reference.d.ts +2 -1
  153. package/dist/integrations/pi/components/shell-shared-facade.d.ts +33 -227
  154. package/dist/integrations/pi/components/shell-shared-facade.js +8 -1
  155. package/dist/integrations/pi/components/skills-command.d.ts +1 -9
  156. package/dist/integrations/pi/components/skills-command.js +5 -5
  157. package/dist/integrations/pi/components/theme.d.ts +9 -2
  158. package/dist/integrations/pi/components/theme.js +17 -2
  159. package/dist/integrations/pi/components/thinking-selector-dialog.d.ts +2 -1
  160. package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.d.ts +2 -2
  161. package/dist/integrations/pi/engine/adapter.d.ts +3 -5
  162. package/dist/integrations/pi/engine/adapter.js +3 -12
  163. package/dist/integrations/pi/engine/changelog.d.ts +2 -2
  164. package/dist/integrations/pi/engine/changelog.js +3 -3
  165. package/dist/integrations/pi/engine/compaction-progress.d.ts +2 -3
  166. package/dist/integrations/pi/engine/compaction-progress.js +1 -1
  167. package/dist/integrations/pi/engine/conformance.d.ts +2 -1
  168. package/dist/integrations/pi/engine/default-model-setting.d.ts +0 -2
  169. package/dist/integrations/pi/engine/default-model-setting.js +1 -2
  170. package/dist/integrations/pi/engine/event-delivery.d.ts +2 -1
  171. package/dist/integrations/pi/engine/extension-ui-binding.d.ts +2 -1
  172. package/dist/integrations/pi/engine/host.js +2 -2
  173. package/dist/integrations/pi/engine/message-values.d.ts +0 -1
  174. package/dist/integrations/pi/engine/message-values.js +1 -1
  175. package/dist/integrations/pi/engine/pending-delivery.d.ts +0 -4
  176. package/dist/integrations/pi/engine/pending-delivery.js +3 -3
  177. package/dist/integrations/pi/engine/ports.d.ts +7 -1
  178. package/dist/integrations/pi/engine/ports.js +4 -0
  179. package/dist/integrations/pi/engine/project-trust-preflight.d.ts +2 -1
  180. package/dist/integrations/pi/engine/prompt-suggestions.d.ts +3 -2
  181. package/dist/integrations/pi/engine/provider-authentication.d.ts +1 -1
  182. package/dist/integrations/pi/engine/public-main-entry.d.ts +1 -5
  183. package/dist/integrations/pi/engine/public-main-entry.js +1 -1
  184. package/dist/integrations/pi/engine/repository-pr-rest.d.ts +1 -9
  185. package/dist/integrations/pi/engine/repository-pr-rest.js +2 -2
  186. package/dist/integrations/pi/engine/repository-pr.d.ts +1 -3
  187. package/dist/integrations/pi/engine/repository-pr.js +1 -1
  188. package/dist/integrations/pi/engine/resource-catalog.d.ts +2 -1
  189. package/dist/integrations/pi/engine/session-integration.d.ts +1 -1
  190. package/dist/integrations/pi/engine/session-runtime.d.ts +4 -3
  191. package/dist/integrations/pi/engine/settings-bridge.d.ts +0 -2
  192. package/dist/integrations/pi/engine/settings-bridge.js +1 -1
  193. package/dist/integrations/pi/engine/settings-port.d.ts +3 -2
  194. package/dist/integrations/pi/engine/transcript-projection.d.ts +2 -1
  195. package/dist/integrations/pi/engine/workflow-contexts.d.ts +1 -1
  196. package/dist/integrations/pi/engine/workflow-runner.d.ts +1 -1
  197. package/dist/integrations/pi/engine/workflow-support.d.ts +0 -6
  198. package/dist/integrations/pi/engine/workflow-support.js +4 -18
  199. package/dist/integrations/pi/engine/workflows.d.ts +5 -5
  200. package/dist/integrations/pi/session-presenters/components.d.ts +3 -0
  201. package/dist/integrations/pi/session-presenters/components.js +75 -0
  202. package/dist/integrations/pi/session-presenters/index.d.ts +1 -0
  203. package/dist/integrations/pi/session-presenters/index.js +1 -0
  204. package/dist/integrations/pi/session-presenters/presentation.d.ts +3 -0
  205. package/dist/integrations/pi/session-presenters/presentation.js +10 -0
  206. package/dist/integrations/pi/session-presenters/presenters.d.ts +2 -1
  207. package/dist/integrations/pi/session-presenters/presenters.js +3 -1
  208. package/dist/integrations/pi/tui-runtime/adapter.js +21 -30
  209. package/dist/integrations/pi/tui-runtime/contracts.d.ts +22 -166
  210. package/dist/integrations/pi/tui-runtime/damage-aware-terminal.d.ts +5 -40
  211. package/dist/integrations/pi/tui-runtime/index.d.ts +1 -0
  212. package/dist/integrations/pi/tui-runtime/index.js +1 -0
  213. package/dist/integrations/pi/tui-runtime/input-presentation-coordinator.d.ts +4 -6
  214. package/dist/integrations/pi/tui-runtime/overlay-geometry.d.ts +2 -8
  215. package/dist/integrations/pi/tui-runtime/overlay-geometry.js +3 -9
  216. package/dist/integrations/pi/tui-runtime/runtime-factory.d.ts +3 -0
  217. package/dist/integrations/pi/tui-runtime/runtime-factory.js +11 -0
  218. package/dist/ui/components/index.d.ts +2 -2
  219. package/dist/ui/components/index.js +1 -1
  220. package/dist/ui/components/selection-copy.d.ts +0 -1
  221. package/dist/ui/components/selection-copy.js +0 -12
  222. package/dist/ui/components/theme.d.ts +4 -19
  223. package/dist/ui/components/theme.js +6 -0
  224. package/dist/ui/settings/declarations.d.ts +2 -3
  225. package/dist/ui/settings/declarations.js +2 -3
  226. package/dist/ui/settings/early-accent.js +1 -1
  227. package/dist/ui/settings/index.d.ts +3 -5
  228. package/dist/ui/settings/index.js +2 -3
  229. package/dist/ui/settings/manager.d.ts +0 -4
  230. package/dist/ui/settings/manager.js +6 -62
  231. package/dist/ui/settings/resolution.d.ts +6 -18
  232. package/dist/ui/settings/resolution.js +4 -103
  233. package/dist/ui/settings/sections.d.ts +0 -4
  234. package/dist/ui/settings/sections.js +1 -1
  235. package/docs/architecture/boundaries.md +2 -2
  236. package/docs/architecture/internal-naming.md +2 -0
  237. package/docs/architecture/project-structure.md +4 -2
  238. package/docs/validation.md +1 -1
  239. package/package.json +3 -4
  240. package/dist/integrations/pi/components/components.d.ts +0 -4
  241. package/dist/integrations/pi/components/components.js +0 -48
  242. package/dist/integrations/pi/components/conformance.d.ts +0 -18
  243. package/dist/integrations/pi/components/conformance.js +0 -70
  244. package/dist/integrations/pi/components/shell-components.d.ts +0 -7
  245. package/dist/integrations/pi/components/shell-components.js +0 -7
  246. package/dist/integrations/pi/components/upstream/theme/theme-controller.d.ts +0 -33
  247. package/dist/integrations/pi/components/upstream/theme/theme-controller.js +0 -114
  248. package/dist/ui/settings/migrations.d.ts +0 -19
  249. package/dist/ui/settings/migrations.js +0 -225
  250. package/dist/ui/settings/progress-palette.generated.d.ts +0 -139
  251. package/dist/ui/settings/progress-palette.generated.js +0 -139
  252. /package/dist/{foundation/release → contracts/presentation}/progress-palette.generated.d.ts +0 -0
  253. /package/dist/{foundation/release → contracts/presentation}/progress-palette.generated.js +0 -0
@@ -198,14 +198,13 @@ export class PiEngineAdapter {
198
198
  get settings() { return this.#ports.settings; }
199
199
  get catalog() { return this.#ports.catalog; }
200
200
  get extensions() { return this.#ports.extensions; }
201
+ /** Pinned Pi's changelog since the profile's last seen version and extension package updates; the host announces each once per process. */
202
+ get announcements() { return this.#ports.announcements; }
201
203
  /** The Pi objects behind pinned selectors and renderers, for the session presenters owner only. */
202
204
  presentationSource() { return this.#ports.presentation; }
203
205
  setWorkflowInteractionHost(interaction) {
204
206
  this.#workflowInteraction = interaction;
205
207
  }
206
- #resolveTranscriptImage(assetId) {
207
- return this.#projection.assets.resolve(assetId);
208
- }
209
208
  // Rationale: the startup check's newer release becomes pinned Pi's `Update Available` notice; it arrives
210
209
  // whenever the check resolves, so a late result is appended like Pi's own fire-and-forget version check.
211
210
  #announceReleaseUpdate(release) {
@@ -240,14 +239,6 @@ export class PiEngineAdapter {
240
239
  this.#emitView();
241
240
  return this.view();
242
241
  }
243
- /** Announce pinned Pi's changelog since the profile's last seen version; the host calls this once per process. */
244
- announceStartupChangelog() {
245
- return this.#engine.announceChangelog();
246
- }
247
- /** Probe extension packages for updates and announce them; the host calls this once per process. */
248
- announcePackageUpdates() {
249
- return this.#engine.announcePackageUpdates();
250
- }
251
242
  onEvent(listener) {
252
243
  return this.#delivery.subscribe(listener, this.#delivery.stamp({ type: "session-view", view: this.view() }));
253
244
  }
@@ -395,7 +386,7 @@ export class PiEngineAdapter {
395
386
  clearQueuedWorkflows: () => this.clearQueuedWorkflows(),
396
387
  setWorkflowInteractionHost: interaction => { this.setWorkflowInteractionHost(interaction); },
397
388
  announceReleaseUpdate: release => { this.#announceReleaseUpdate(release); },
398
- resolveTranscriptImage: assetId => this.#resolveTranscriptImage(assetId),
389
+ resolveTranscriptImage: assetId => this.#projection.assets.resolve(assetId),
399
390
  extensionRunner: () => this.#requireWorkflowSession().extensionRunner,
400
391
  });
401
392
  }
@@ -1,2 +1,2 @@
1
- export declare function readPinnedCommandChangelog(sinceVersion?: string): Promise<string>;
2
- export declare function formatPinnedCommandChangelog(content: string, sinceVersion?: string): string;
1
+ /** Pinned Pi's changelog since `sinceVersion` (all of it when absent), read from the owned data resource. */
2
+ export declare function readPinnedCommandChangelog(sinceVersion?: string, path?: URL): Promise<string>;
@@ -2,8 +2,8 @@ import { existsSync } from "node:fs";
2
2
  import { readFile } from "node:fs/promises";
3
3
  import { posix } from "node:path";
4
4
  const REPOSITORY = "https://github.com/earendil-works/pi";
5
- export async function readPinnedCommandChangelog(sinceVersion) {
6
- const path = new URL("./resources/changelog.json", import.meta.url);
5
+ /** Pinned Pi's changelog since `sinceVersion` (all of it when absent), read from the owned data resource. */
6
+ export async function readPinnedCommandChangelog(sinceVersion, path = new URL("./resources/changelog.json", import.meta.url)) {
7
7
  if (!existsSync(path))
8
8
  return sinceVersion === undefined ? "No changelog entries found." : "";
9
9
  try {
@@ -19,7 +19,7 @@ export async function readPinnedCommandChangelog(sinceVersion) {
19
19
  return sinceVersion === undefined ? "No changelog entries found." : "";
20
20
  }
21
21
  }
22
- export function formatPinnedCommandChangelog(content, sinceVersion) {
22
+ function formatPinnedCommandChangelog(content, sinceVersion) {
23
23
  // Provenance: behavior follows Pi 0.84.2 utils/changelog.ts at 914cf1472e715297caa30db4b9535d534a9eb718.
24
24
  // Runtime reads only the owned data resource; maintenance tooling verifies its pinned provenance.
25
25
  let releases = content.split(/(?=^## )/m).flatMap((section) => {
@@ -1,7 +1,5 @@
1
- /** Expected summary size for a first compaction, when no previous summary on the branch can serve as the estimate. */
2
- export declare const DEFAULT_EXPECTED_COMPACTION_SUMMARY_CHARS = 4000;
3
1
  /** The public session surface compaction progress reads: the agent's stream function and the branch entries. */
4
- export interface CompactionProgressSession {
2
+ interface CompactionProgressSession {
5
3
  readonly agent?: {
6
4
  streamFunction?: unknown;
7
5
  } | undefined;
@@ -22,3 +20,4 @@ export interface CompactionProgressObserver {
22
20
  * when the session exposes no callable public stream function.
23
21
  */
24
22
  export declare function observeCompactionProgress(session: CompactionProgressSession, onProgress: (percent: number) => void): CompactionProgressObserver | null;
23
+ export {};
@@ -1,5 +1,5 @@
1
1
  /** Expected summary size for a first compaction, when no previous summary on the branch can serve as the estimate. */
2
- export const DEFAULT_EXPECTED_COMPACTION_SUMMARY_CHARS = 4000;
2
+ const DEFAULT_EXPECTED_COMPACTION_SUMMARY_CHARS = 4000;
3
3
  /** Character-based estimates stay below terminal stream completion. */
4
4
  const MAX_STREAMING_PERCENT = 99;
5
5
  const COMPLETE_PERCENT = 100;
@@ -20,7 +20,7 @@ export declare class PiCapabilityCompatibilityError extends Error {
20
20
  readonly operation: string;
21
21
  constructor(packageVersion: string, capability: string, operation: string, detail: string);
22
22
  }
23
- export interface PiUpgradeConformanceReport {
23
+ interface PiUpgradeConformanceReport {
24
24
  readonly schema: "pi-engine-conformance-v1";
25
25
  readonly packageName: "@earendil-works/pi-coding-agent";
26
26
  readonly packageVersion: string;
@@ -37,3 +37,4 @@ export declare class PiUpgradeConformanceError extends Error {
37
37
  }
38
38
  export declare function runPiUpgradeConformance(): Promise<PiUpgradeConformanceReport>;
39
39
  export declare function validatePiCapabilityResults(packageVersion: string, results: readonly PiCapabilityConformanceResult[]): void;
40
+ export {};
@@ -5,8 +5,6 @@ interface DefaultModelChoice {
5
5
  readonly label: string;
6
6
  readonly name: string;
7
7
  }
8
- export declare const DEFAULT_MODEL_SETTING_KEY = "defaultModel";
9
- export declare const SUPPLEMENTAL_SETTING_KEYS: readonly ["defaultModel"];
10
8
  export declare function defaultModelDescriptor(settings: SettingsManager, models: readonly DefaultModelChoice[]): AgentSettingDescriptor;
11
9
  export declare function writeDefaultModel(settings: SettingsManager, models: readonly DefaultModelChoice[], value: unknown): Promise<AgentSettingChangeOutcome>;
12
10
  export {};
@@ -1,5 +1,4 @@
1
- export const DEFAULT_MODEL_SETTING_KEY = "defaultModel";
2
- export const SUPPLEMENTAL_SETTING_KEYS = [DEFAULT_MODEL_SETTING_KEY];
1
+ const DEFAULT_MODEL_SETTING_KEY = "defaultModel";
3
2
  const UNSET = "not set";
4
3
  function read(settings) {
5
4
  const provider = settings.getDefaultProvider();
@@ -24,7 +24,7 @@ export type PiEmittedEvent = Omit<Extract<OwnedUiEvent, {
24
24
  type: "diagnostic";
25
25
  }>, "sessionId" | "sequence">;
26
26
  /** A command outcome held back during an overload so its command can still settle after recovery. */
27
- export interface ReservedCommandOutcome {
27
+ interface ReservedCommandOutcome {
28
28
  readonly outcome: Extract<OwnedUiEvent, {
29
29
  type: "command-outcome";
30
30
  }>["outcome"];
@@ -98,3 +98,4 @@ export declare class PiEventDelivery {
98
98
  /** Resolves once every queued event has been delivered or invalidated. */
99
99
  settle(): Promise<void>;
100
100
  }
101
+ export {};
@@ -1,7 +1,7 @@
1
1
  import type { AgentSession } from "../startup-public.js";
2
2
  import { type OwnedUiDiagnostics, type OwnedUiVisualExtensionSupport } from "../../../contracts/owned-ui/index.js";
3
3
  export type OwnedPiVisualExtensionSupport = OwnedUiVisualExtensionSupport;
4
- export interface PiExtensionUiBindingPorts {
4
+ interface PiExtensionUiBindingPorts {
5
5
  session(): AgentSession | undefined;
6
6
  diagnostic(severity: OwnedUiDiagnostics["severity"], code: string, message: string, recoverable: boolean): void;
7
7
  emitView(): void;
@@ -24,3 +24,4 @@ export declare class PiExtensionUiBinding {
24
24
  /** Bind the attached bridge to the current session, reporting failures as diagnostics. */
25
25
  rebind(): Promise<void>;
26
26
  }
27
+ export {};
@@ -141,7 +141,7 @@ class ProcessPiEngineHost {
141
141
  return;
142
142
  this.#announced = true;
143
143
  if (this.#options.announceStartupChangelog !== false)
144
- await adapter.announceStartupChangelog();
145
- void adapter.announcePackageUpdates();
144
+ await adapter.announcements.startupChangelog();
145
+ void adapter.announcements.packageUpdates();
146
146
  }
147
147
  }
@@ -10,7 +10,6 @@ export declare function retainCompletedArguments(current: OwnedUiTranscriptBlock
10
10
  * need re-renders it for nothing.
11
11
  */
12
12
  export declare function sameBlockContent(left: OwnedUiTranscriptBlock, right: OwnedUiTranscriptBlock): boolean;
13
- export declare function sameValue(left: unknown, right: unknown): boolean;
14
13
  export declare function textFromContent(content: unknown): string;
15
14
  export declare function assistantContent(content: readonly unknown[]): readonly Record<string, unknown>[];
16
15
  export declare function contentImageCount(content: unknown): number;
@@ -35,7 +35,7 @@ export function sameBlockContent(left, right) {
35
35
  && sameValue(left.payload, right.payload)
36
36
  && sameValue(left.imageReferences ?? [], right.imageReferences ?? []);
37
37
  }
38
- export function sameValue(left, right) {
38
+ function sameValue(left, right) {
39
39
  if (left === right)
40
40
  return true;
41
41
  if (typeof left !== typeof right || left === null || right === null)
@@ -1,8 +1,4 @@
1
1
  import type { OwnedUiEvent } from "../../../contracts/owned-ui/index.js";
2
- export declare const MAX_PENDING_EVENTS = 1024;
3
- export declare const MAX_PENDING_EVENT_BYTES: number;
4
- /** Actual shell semantics: only live complete block state has no independent side effect. */
5
- export declare function replaceableEventKey(event: OwnedUiEvent): string | null;
6
2
  /** Intrusive FIFO + segment index: replacement unlinks in O(1), never changes source ordering. */
7
3
  export declare class PendingEngineDelivery {
8
4
  #private;
@@ -1,7 +1,7 @@
1
- export const MAX_PENDING_EVENTS = 1024;
2
- export const MAX_PENDING_EVENT_BYTES = 8 * 1024 * 1024;
1
+ const MAX_PENDING_EVENTS = 1024;
2
+ const MAX_PENDING_EVENT_BYTES = 8 * 1024 * 1024;
3
3
  /** Actual shell semantics: only live complete block state has no independent side effect. */
4
- export function replaceableEventKey(event) {
4
+ function replaceableEventKey(event) {
5
5
  switch (event.type) {
6
6
  case "transcript-block": return event.block.status === "live" && !(typeof event.block.payload === "object" && event.block.payload !== null && "isError" in event.block.payload && event.block.payload.isError === true) ? event.block.id : null;
7
7
  case "session-view": // Invariant: may clear compaction work, replace editor/session state, or preempt presentation.
@@ -24,6 +24,11 @@ export interface PiSessionPresentationSource {
24
24
  pinnedSettingsModels(): Pick<PiPinnedSettingsSnapshot, "currentModel" | "availableDefaultModels">;
25
25
  applyPinnedSettingValue(callback: PiPinnedSettingsCallback, value: unknown): Promise<PiWorkflowResult>;
26
26
  }
27
+ /** Startup announcements the host makes once per process: pinned Pi's changelog and extension package updates. */
28
+ export interface PiEngineAnnouncements {
29
+ startupChangelog(): Promise<void>;
30
+ packageUpdates(): Promise<void>;
31
+ }
27
32
  export interface PiEngineAdapterPorts {
28
33
  readonly identity: OwnedUiSessionIdentityPort;
29
34
  readonly session: OwnedUiSessionPort;
@@ -32,12 +37,13 @@ export interface PiEngineAdapterPorts {
32
37
  readonly catalog: OwnedUiSessionCatalogPort;
33
38
  readonly extensions: OwnedUiExtensionPort;
34
39
  readonly presentation: PiSessionPresentationSource;
40
+ readonly announcements: PiEngineAnnouncements;
35
41
  }
36
42
  /** The adapter's collaborators and its own session operations, which every port member reaches at call time. */
37
43
  export interface EnginePortParts {
38
44
  readonly sessionId: string;
39
45
  readonly agentDir: string;
40
- readonly engine: Pick<PiEngineRuntime, "cwd" | "generation" | "bindingGeneration" | "currentSessionResumeMetadata" | "currentSessionFile" | "session">;
46
+ readonly engine: Pick<PiEngineRuntime, "cwd" | "generation" | "bindingGeneration" | "currentSessionResumeMetadata" | "currentSessionFile" | "session" | "announceChangelog" | "announcePackageUpdates">;
41
47
  readonly contexts: PiWorkflowContexts;
42
48
  readonly workflows: PiWorkflowRunner;
43
49
  readonly settings: PiEngineSettings;
@@ -65,6 +65,10 @@ export function createEnginePorts(parts) {
65
65
  bindClipboardWriter: writer => workflows.bindClipboardWriter(writer),
66
66
  announceReleaseUpdate: release => { parts.announceReleaseUpdate(release); },
67
67
  },
68
+ announcements: {
69
+ startupChangelog: () => engine.announceChangelog(),
70
+ packageUpdates: () => engine.announcePackageUpdates(),
71
+ },
68
72
  presentation: {
69
73
  pinnedModelSelectorContext: () => contexts.pinnedModelSelectorContext(),
70
74
  pinnedSessionSelectorContext: () => contexts.pinnedSessionSelectorContext(),
@@ -1,4 +1,4 @@
1
- export type PiProjectTrustChoiceId = "trust" | "trust-parent" | "trust-session" | "deny" | "deny-session";
1
+ type PiProjectTrustChoiceId = "trust" | "trust-parent" | "trust-session" | "deny" | "deny-session";
2
2
  export interface PiProjectTrustPreflightRequest {
3
3
  readonly cwd: string;
4
4
  readonly defaultDecision: "ask" | "always" | "never";
@@ -24,3 +24,4 @@ export interface ResolvePiProjectTrustPreflightOptions {
24
24
  * result exists.
25
25
  */
26
26
  export declare function resolvePiProjectTrustPreflight(options: ResolvePiProjectTrustPreflightOptions): Promise<PiProjectTrustPreflightResult>;
27
+ export {};
@@ -1,13 +1,13 @@
1
1
  import type { AgentSession, AgentSessionRuntime } from "../startup-public.js";
2
2
  import { type OwnedUiModelInfo, type OwnedUiPromptSuggestionGeneratorPort, type OwnedUiPromptSuggestionReasoning, type OwnedUiPromptSuggestionRequest, type OwnedUiPromptSuggestionResult } from "../../../contracts/owned-ui/index.js";
3
3
  /** The run position a suggestion request must still match to be answered. */
4
- export interface PiPromptSuggestionIdentity {
4
+ interface PiPromptSuggestionIdentity {
5
5
  readonly sessionId: string;
6
6
  readonly sessionGeneration: number;
7
7
  readonly runSequence: number;
8
8
  readonly responseSequence: number;
9
9
  }
10
- export interface PiPromptSuggestionPorts {
10
+ interface PiPromptSuggestionPorts {
11
11
  session(): AgentSession | undefined;
12
12
  runtime(): AgentSessionRuntime | undefined;
13
13
  activeModel(): OwnedUiModelInfo | null;
@@ -28,3 +28,4 @@ export declare class PiPromptSuggestions implements OwnedUiPromptSuggestionGener
28
28
  reasoningPolicy(): OwnedUiPromptSuggestionReasoning;
29
29
  generate(request: OwnedUiPromptSuggestionRequest): Promise<OwnedUiPromptSuggestionResult>;
30
30
  }
31
+ export {};
@@ -4,7 +4,7 @@ import type { OwnedUiModelInfo } from "../../../contracts/owned-ui/index.js";
4
4
  import type { PiWorkflowInteractionHost, PiWorkflowRequest, PiWorkflowResult } from "./workflows.js";
5
5
  type PiSessionApi = AgentSession;
6
6
  type PiRuntimeApi = AgentSessionRuntime;
7
- export interface PiProviderAuthenticationPorts {
7
+ interface PiProviderAuthenticationPorts {
8
8
  runtime(): PiRuntimeApi | undefined;
9
9
  requireSession(): PiSessionApi;
10
10
  disposed(): boolean;
@@ -1,5 +1 @@
1
- export interface PublicMainEntryDependencies {
2
- readonly main?: (arguments_: string[]) => Promise<void>;
3
- readonly stderr?: (message: string) => void;
4
- }
5
- export declare function runPublicMainEntry(arguments_: readonly string[], dependencies?: PublicMainEntryDependencies): Promise<number>;
1
+ export {};
@@ -2,7 +2,7 @@ import { realpathSync } from "node:fs";
2
2
  import { resolve } from "node:path";
3
3
  import { fileURLToPath } from "node:url";
4
4
  import { main as runPublicMain } from "@earendil-works/pi-coding-agent";
5
- export async function runPublicMainEntry(arguments_, dependencies = {}) {
5
+ async function runPublicMainEntry(arguments_, dependencies = {}) {
6
6
  try {
7
7
  await (dependencies.main ?? runPublicMain)([...arguments_]);
8
8
  return 0;
@@ -2,20 +2,12 @@ interface PiPullRequestIdentity {
2
2
  readonly number: number;
3
3
  readonly url: string;
4
4
  }
5
- export interface PiGitHubRepositoryIdentity {
6
- readonly owner: string;
7
- readonly repository: string;
8
- }
9
5
  type PiGitHubFetch = (input: string | URL, init?: RequestInit) => Promise<Response>;
10
6
  type PiCommandReader = (cwd: string, signal: AbortSignal) => Promise<string | null>;
11
- export interface PiPullRequestRestDependencies {
7
+ interface PiPullRequestRestDependencies {
12
8
  readonly readOriginUrl?: PiCommandReader;
13
9
  readonly fetch?: PiGitHubFetch;
14
10
  }
15
11
  /** Discover one exact branch pull request through GitHub's read-only REST API. */
16
12
  export declare function readPullRequestFromGitHub(cwd: string, branch: string, signal: AbortSignal, environment?: NodeJS.ProcessEnv, dependencies?: PiPullRequestRestDependencies): Promise<PiPullRequestIdentity | null>;
17
- /** Parse a supported GitHub origin URL without accepting credentials or non-GitHub hosts. */
18
- export declare function parseGitHubRepositoryRemote(remote: string): PiGitHubRepositoryIdentity | null;
19
- /** Validate a GitHub REST pull list as one exact branch association. */
20
- export declare function parseGitHubPullRequests(value: unknown, expectedRepository: PiGitHubRepositoryIdentity, branch: string): PiPullRequestIdentity | null;
21
13
  export {};
@@ -50,7 +50,7 @@ export async function readPullRequestFromGitHub(cwd, branch, signal, environment
50
50
  }
51
51
  }
52
52
  /** Parse a supported GitHub origin URL without accepting credentials or non-GitHub hosts. */
53
- export function parseGitHubRepositoryRemote(remote) {
53
+ function parseGitHubRepositoryRemote(remote) {
54
54
  const value = remote.trim();
55
55
  if (value.length === 0 || /[\r\n]/u.test(value))
56
56
  return null;
@@ -76,7 +76,7 @@ export function parseGitHubRepositoryRemote(remote) {
76
76
  }
77
77
  }
78
78
  /** Validate a GitHub REST pull list as one exact branch association. */
79
- export function parseGitHubPullRequests(value, expectedRepository, branch) {
79
+ function parseGitHubPullRequests(value, expectedRepository, branch) {
80
80
  if (!Array.isArray(value))
81
81
  return null;
82
82
  const fullName = `${expectedRepository.owner}/${expectedRepository.repository}`;
@@ -5,12 +5,10 @@ export interface PiPullRequestIdentity {
5
5
  export type PiPullRequestProbe = (cwd: string, branch: string, signal: AbortSignal) => Promise<PiPullRequestIdentity | null>;
6
6
  type PiCommandReader = (cwd: string, signal: AbortSignal) => Promise<string | null>;
7
7
  type PiPullRequestRestProbe = (cwd: string, branch: string, signal: AbortSignal, environment: NodeJS.ProcessEnv) => Promise<PiPullRequestIdentity | null>;
8
- export interface PiPullRequestDiscoveryDependencies {
8
+ interface PiPullRequestDiscoveryDependencies {
9
9
  readonly executeGh?: PiCommandReader;
10
10
  readonly restProbe?: PiPullRequestRestProbe;
11
11
  }
12
12
  /** Read an exact branch's open or merged PR, preferring GitHub CLI before the REST fallback. */
13
13
  export declare function readPullRequest(cwd: string, branch: string, signal: AbortSignal, environment?: NodeJS.ProcessEnv, dependencies?: PiPullRequestDiscoveryDependencies): Promise<PiPullRequestIdentity | null>;
14
- /** Parse and validate the normalized payload emitted by `gh pr view`. */
15
- export declare function parsePullRequest(stdout: string, branch: string): PiPullRequestIdentity | null;
16
14
  export {};
@@ -20,7 +20,7 @@ export async function readPullRequest(cwd, branch, signal, environment = process
20
20
  return (dependencies.restProbe ?? readPullRequestFromRest)(cwd, branch, signal, environment);
21
21
  }
22
22
  /** Parse and validate the normalized payload emitted by `gh pr view`. */
23
- export function parsePullRequest(stdout, branch) {
23
+ function parsePullRequest(stdout, branch) {
24
24
  let value;
25
25
  try {
26
26
  value = JSON.parse(stdout);
@@ -5,7 +5,7 @@ import { type PiProductMode, type PiWorkflowAutocompleteCommand } from "./workfl
5
5
  export type OwnedPiResourceSummary = OwnedUiResourceSummary;
6
6
  export type OwnedPiExtensionSourceSummary = OwnedUiExtensionSourceSummary;
7
7
  export type OwnedPiExtensionResourceSummary = OwnedUiExtensionResourceSummary;
8
- export interface PiResourceCatalogPorts {
8
+ interface PiResourceCatalogPorts {
9
9
  session(): AgentSession | undefined;
10
10
  runtime(): AgentSessionRuntime | undefined;
11
11
  }
@@ -29,3 +29,4 @@ export declare function collectionResult(value: unknown, key: string): {
29
29
  values: readonly unknown[];
30
30
  diagnostics: readonly string[];
31
31
  };
32
+ export {};
@@ -35,7 +35,7 @@ export type PiSessionCommand = {
35
35
  readonly excludeFromContext: boolean;
36
36
  readonly onChunk?: (chunk: string) => void;
37
37
  };
38
- export type PiSessionCommandOutcome = "completed" | "rejected" | "failed" | "cancelled";
38
+ type PiSessionCommandOutcome = "completed" | "rejected" | "failed" | "cancelled";
39
39
  export interface PiSessionCommandResult {
40
40
  readonly outcome: PiSessionCommandOutcome;
41
41
  readonly value?: unknown;
@@ -20,13 +20,13 @@ export interface PiEngineRuntimeFactoryInput {
20
20
  }
21
21
  export type PiEngineRuntimeFactory = (input: PiEngineRuntimeFactoryInput) => Promise<AgentSessionRuntime>;
22
22
  export type PiEnginePackageUpdateProbe = (settingsManager: AgentSessionServices["settingsManager"]) => Promise<readonly string[]>;
23
- export interface PiRepositoryContextSelection {
23
+ interface PiRepositoryContextSelection {
24
24
  readonly cwd: string;
25
25
  readonly branch: string;
26
26
  }
27
27
  export type PiRepositoryContextReader = (sessionId: string, sessionFile: string, signal: AbortSignal) => Promise<PiRepositoryContextSelection | null>;
28
- export type PiGitBranchReader = (cwd: string, signal: AbortSignal) => Promise<string | null>;
29
- export interface PiEngineRuntimeOptions {
28
+ type PiGitBranchReader = (cwd: string, signal: AbortSignal) => Promise<string | null>;
29
+ interface PiEngineRuntimeOptions {
30
30
  readonly cwd: string;
31
31
  readonly agentDir: string;
32
32
  readonly sessionId: string;
@@ -106,3 +106,4 @@ export declare class PiEngineRuntime {
106
106
  */
107
107
  announceChangelog(): Promise<void>;
108
108
  }
109
+ export {};
@@ -120,6 +120,4 @@ export declare class PiSettingsBridge implements AgentSettingsPort {
120
120
  writeSettingNow(key: string, value: AgentJsonValue): Promise<AgentSettingChangeOutcome>;
121
121
  flush(): Promise<void>;
122
122
  }
123
- /** The engine keys overrides as `provider/modelId`; the model id may itself contain slashes. */
124
- export declare function splitModelKey(key: string): [provider: string, modelId: string];
125
123
  export {};
@@ -462,7 +462,7 @@ function modelThinkingLevels(settings) {
462
462
  });
463
463
  }
464
464
  /** The engine keys overrides as `provider/modelId`; the model id may itself contain slashes. */
465
- export function splitModelKey(key) {
465
+ function splitModelKey(key) {
466
466
  const at = key.indexOf("/");
467
467
  return [key.slice(0, at), key.slice(at + 1)];
468
468
  }
@@ -4,12 +4,12 @@ import type { AgentSession, AgentSessionRuntime } from "../startup-public.js";
4
4
  import type { OwnedUiThinkingLevel } from "../../../contracts/owned-ui/index.js";
5
5
  import type { AgentSettingOwner } from "../../../contracts/agent-engine/index.js";
6
6
  import { type PiPinnedSettingsCallback, type PiPinnedSettingsSnapshot, type PiWorkflowResult } from "./workflows.js";
7
- export interface PiEngineSettingsOptions {
7
+ interface PiEngineSettingsOptions {
8
8
  /** Themes installed on this machine, when the component adapter that owns the theme unit supplies them. */
9
9
  readonly availableThemes: (() => readonly string[]) | null;
10
10
  readonly productMode: "bare" | "comparison";
11
11
  }
12
- export interface PiEngineSettingsPorts {
12
+ interface PiEngineSettingsPorts {
13
13
  runtime(): AgentSessionRuntime | undefined;
14
14
  /** The bound session, or a thrown "not running" error before one exists. */
15
15
  requireSession(): AgentSession;
@@ -44,3 +44,4 @@ export declare class PiEngineSettings {
44
44
  applyPinnedSettingValue(callback: PiPinnedSettingsCallback, value: unknown): Promise<PiWorkflowResult>;
45
45
  applyPinnedSetting(selection: string, selectedValue?: unknown, hasSelectedValue?: boolean): Promise<PiWorkflowResult>;
46
46
  }
47
+ export {};
@@ -1,6 +1,6 @@
1
1
  import { TranscriptImageAssets } from "./transcript-image-assets.js";
2
2
  import { type OwnedUiTranscriptBlock, type OwnedUiTranscriptImageReference } from "../../../contracts/owned-ui/index.js";
3
- export interface PiTranscriptProjectionPorts {
3
+ interface PiTranscriptProjectionPorts {
4
4
  /** Pinned Pi's current retry attempt, which words an aborted declaration's failure text. */
5
5
  retryAttempt(): number;
6
6
  /** Called once per stored block change, in order, so the adapter can deliver it. */
@@ -37,3 +37,4 @@ export declare class PiTranscriptProjection {
37
37
  upsert(block: OwnedUiTranscriptBlock): void;
38
38
  nextRevision(id: string): number;
39
39
  }
40
+ export {};
@@ -3,7 +3,7 @@ import type { OwnedUiModelInfo } from "../../../contracts/owned-ui/index.js";
3
3
  import type { PiAuthenticationProviderOption, PiModelsContext, PiModelsRefreshResult, PiProjectTrustContext, PiProjectTrustUpdate, PiScopedModelsContext, PiScopedModelsRefreshResult, PiSessionSelectorContext, PiTreeSelectorContext, PiWorkflowOption } from "./workflows.js";
4
4
  type PiSessionApi = AgentSession;
5
5
  type PiRuntimeApi = AgentSessionRuntime;
6
- export interface PiWorkflowContextPorts {
6
+ interface PiWorkflowContextPorts {
7
7
  /** The working directory the runtime settled on; it can change when a session is resumed elsewhere. */
8
8
  cwd(): string;
9
9
  session(): PiSessionApi | undefined;
@@ -4,7 +4,7 @@ import type { OwnedUiModelInfo, OwnedUiSnapshot, OwnedUiThinkingLevel } from "..
4
4
  import type { PiBashWorkflowResult, PiWorkflowHost, PiWorkflowInteractionHost, PiWorkflowRequest, PiWorkflowResult } from "./workflows.js";
5
5
  type PiSessionApi = AgentSession;
6
6
  type PiRuntimeApi = AgentSessionRuntime;
7
- export interface PiWorkflowRunnerOptions {
7
+ interface PiWorkflowRunnerOptions {
8
8
  readonly agentDir: string;
9
9
  readonly host: PiWorkflowHost;
10
10
  readonly contexts: PiWorkflowContexts;
@@ -7,10 +7,6 @@ export declare function pinnedSessionInfoPresentation(value: unknown, sessionNam
7
7
  readonly mode: unknown;
8
8
  readonly status: unknown;
9
9
  }): PiSessionInfoPresentation;
10
- /** The engine reports warming as a mode plus, once it has acted, the decision that produced the state. */
11
- export declare function pinnedCacheWarming(mode: unknown, status: unknown): PiSessionInfoPresentation["cacheWarming"];
12
- export declare function pinnedUsageCostBreakdown(entries: readonly unknown[]): PiSessionInfoPresentation["usageBreakdown"];
13
- export declare function pinnedCacheWaste(entries: readonly unknown[], modelRuntime: PiServicesApi["modelRuntime"]): PiSessionInfoPresentation["cacheWaste"];
14
10
  export declare function defaultWorkflowHost(): PiWorkflowHost;
15
11
  export declare function workflowLoginNotification(event: unknown): PiWorkflowLoginNotification | undefined;
16
12
  export declare function workflowResult(command: PiWorkflowRequest["command"], outcome: PiWorkflowResult["outcome"], message: string, detail?: string, messageKind?: PiWorkflowResult["messageKind"], messages?: readonly PiWorkflowMessage[]): PiWorkflowResult;
@@ -33,7 +29,6 @@ export declare function withRadiusShareTrailingEntry(jsonl: string, state: {
33
29
  readonly tools?: readonly unknown[];
34
30
  }, id: string): string;
35
31
  export declare function workflowOptions(value: unknown, idKey: string, labelKey: string): readonly PiWorkflowOption[];
36
- export declare function sessionInfoOptions(value: readonly unknown[]): readonly PiWorkflowOption[];
37
32
  export declare function pathArgument(value: string): string | undefined;
38
33
  export declare function pinnedHotkeySummary(): string;
39
34
  export declare function scopedModelRecords(modelRuntime: PiServicesApi["modelRuntime"]): readonly {
@@ -44,7 +39,6 @@ export declare function scopedModelReference(value: unknown): string | undefined
44
39
  export declare function resolveConfiguredModelIds(patterns: readonly string[], models: readonly {
45
40
  readonly descriptor: PiScopedModelDescriptor;
46
41
  }[]): readonly string[];
47
- export declare function wildcardMatcher(pattern: string): RegExp;
48
42
  export declare function isUnknownModel(value: unknown): boolean;
49
43
  export declare function findExactWorkflowModel<T>(reference: string, models: readonly T[]): T | undefined;
50
44
  export {};
@@ -80,7 +80,7 @@ export function pinnedSessionInfoPresentation(value, sessionName, entries, model
80
80
  };
81
81
  }
82
82
  /** The engine reports warming as a mode plus, once it has acted, the decision that produced the state. */
83
- export function pinnedCacheWarming(mode, status) {
83
+ function pinnedCacheWarming(mode, status) {
84
84
  const resolved = stringValue(mode) ?? "off";
85
85
  if (!isRecord(status))
86
86
  return { mode: resolved };
@@ -110,7 +110,7 @@ export function pinnedCacheWarming(mode, status) {
110
110
  },
111
111
  };
112
112
  }
113
- export function pinnedUsageCostBreakdown(entries) {
113
+ function pinnedUsageCostBreakdown(entries) {
114
114
  const totals = new Map();
115
115
  for (const entry of entries) {
116
116
  if (!isRecord(entry))
@@ -147,7 +147,7 @@ export function pinnedUsageCostBreakdown(entries) {
147
147
  .filter(entry => entry.cost > 0 || entry.tokens > 0)
148
148
  .sort((a, b) => b.cost - a.cost);
149
149
  }
150
- export function pinnedCacheWaste(entries, modelRuntime) {
150
+ function pinnedCacheWaste(entries, modelRuntime) {
151
151
  let previous;
152
152
  const totals = { missedTokens: 0, missedCost: 0, missCount: 0 };
153
153
  for (const entry of entries) {
@@ -325,20 +325,6 @@ export function workflowOptions(value, idKey, labelKey) {
325
325
  return [{ id, label: stringProperty(item, labelKey) ?? id }];
326
326
  });
327
327
  }
328
- export function sessionInfoOptions(value) {
329
- return value.filter(isRecord).flatMap(info => {
330
- const path = stringProperty(info, "path");
331
- if (!path)
332
- return [];
333
- const modified = info.modified instanceof Date ? info.modified.toISOString() : stringProperty(info, "modified") ?? "unknown time";
334
- const messageCount = typeof info.messageCount === "number" ? info.messageCount : 0;
335
- return [{
336
- id: path,
337
- label: stringProperty(info, "name") ?? stringProperty(info, "firstMessage") ?? stringProperty(info, "id") ?? path,
338
- description: `${messageCount} messages · ${modified}`,
339
- }];
340
- });
341
- }
342
328
  export function pathArgument(value) {
343
329
  if (!value)
344
330
  return undefined;
@@ -390,7 +376,7 @@ export function resolveConfiguredModelIds(patterns, models) {
390
376
  }
391
377
  return resolved;
392
378
  }
393
- export function wildcardMatcher(pattern) {
379
+ function wildcardMatcher(pattern) {
394
380
  let source = "";
395
381
  for (const character of pattern) {
396
382
  if (character === "*")
@@ -1,5 +1,5 @@
1
1
  import type { SessionInfo } from "../startup-public.js";
2
- import { type OwnedUiAuthenticationProviderOption, type OwnedUiAuthenticationProviderStatus, type OwnedUiBashWorkflowResult, type OwnedUiCacheWarmingPresentation, type OwnedUiHiddenWorkflowCommandName, type OwnedUiModelsCommandName, type OwnedUiModelsContext, type OwnedUiModelsRefreshResult, type OwnedUiProjectTrustContext, type OwnedUiProjectTrustUpdate, type OwnedUiScopedModelDescriptor, type OwnedUiScopedModelsContext, type OwnedUiScopedModelsRefreshResult, type OwnedUiSessionInfoPresentation, type OwnedUiSessionProductMode, type OwnedUiSessionResumeMetadata, type OwnedUiSessionSettingsSnapshot, type OwnedUiWorkflowAutocompleteCommand, type OwnedUiWorkflowCommandName, type OwnedUiWorkflowInteractionHost, type OwnedUiWorkflowInteractionRequest, type OwnedUiWorkflowLoginNotification, type OwnedUiWorkflowLoginStart, type OwnedUiWorkflowMessage, type OwnedUiWorkflowMessageKind, type OwnedUiWorkflowOption, type OwnedUiWorkflowOutcome, type OwnedUiWorkflowPresentation, type OwnedUiWorkflowRequest, type OwnedUiWorkflowResult, type OwnedUiWorkflowRoute } from "../../../contracts/owned-ui/index.js";
2
+ import { type OwnedUiAuthenticationProviderOption, type OwnedUiAuthenticationProviderStatus, type OwnedUiBashWorkflowResult, type OwnedUiHiddenWorkflowCommandName, type OwnedUiModelsCommandName, type OwnedUiModelsContext, type OwnedUiModelsRefreshResult, type OwnedUiProjectTrustContext, type OwnedUiProjectTrustUpdate, type OwnedUiScopedModelDescriptor, type OwnedUiScopedModelsContext, type OwnedUiScopedModelsRefreshResult, type OwnedUiSessionInfoPresentation, type OwnedUiSessionProductMode, type OwnedUiSessionResumeMetadata, type OwnedUiSessionSettingsSnapshot, type OwnedUiWorkflowAutocompleteCommand, type OwnedUiWorkflowCommandName, type OwnedUiWorkflowInteractionHost, type OwnedUiWorkflowInteractionRequest, type OwnedUiWorkflowLoginNotification, type OwnedUiWorkflowLoginStart, type OwnedUiWorkflowMessage, type OwnedUiWorkflowMessageKind, type OwnedUiWorkflowOption, type OwnedUiWorkflowOutcome, type OwnedUiWorkflowPresentation, type OwnedUiWorkflowRequest, type OwnedUiWorkflowResult, type OwnedUiWorkflowRoute } from "../../../contracts/owned-ui/index.js";
3
3
  export declare const PINNED_PI_WORKFLOW_COMMAND_NAMES: readonly ["settings", "model", "tree", "thinking", "scoped-models", "export", "import", "share", "copy", "name", "session", "changelog", "hotkeys", "fork", "clone", "trust", "login", "logout", "new", "compact", "resume", "reload", "quit"];
4
4
  export declare const PINNED_PI_HIDDEN_COMMAND_NAMES: readonly ["debug", "arminsayshi", "dementedelves"];
5
5
  /**
@@ -12,8 +12,8 @@ export declare const PINNED_PI_DECLINED_COMMAND_NAMES: readonly ["bug"];
12
12
  export type PiWorkflowCommandName = OwnedUiWorkflowCommandName;
13
13
  export type PiHiddenWorkflowCommandName = OwnedUiHiddenWorkflowCommandName;
14
14
  export declare const OWNED_MODELS_COMMAND_NAME: "models";
15
- export type OwnedModelsCommandName = OwnedUiModelsCommandName;
16
- export type OwnedWorkflowCommandName = Exclude<PiWorkflowCommandName, "model" | "scoped-models"> | OwnedModelsCommandName;
15
+ type OwnedModelsCommandName = OwnedUiModelsCommandName;
16
+ type OwnedWorkflowCommandName = Exclude<PiWorkflowCommandName, "model" | "scoped-models"> | OwnedModelsCommandName;
17
17
  /** Bare A1's advertised catalog: `models` replaces the pinned pair and is followed by `thinking`. */
18
18
  export declare const OWNED_WORKFLOW_COMMAND_NAMES: readonly OwnedWorkflowCommandName[];
19
19
  export type PiProductMode = OwnedUiSessionProductMode;
@@ -33,7 +33,6 @@ export type PiAuthenticationProviderOption = OwnedUiAuthenticationProviderOption
33
33
  export type PiWorkflowRequest = OwnedUiWorkflowRequest;
34
34
  export type PiWorkflowOutcome = OwnedUiWorkflowOutcome;
35
35
  export type PiSessionInfoPresentation = OwnedUiSessionInfoPresentation;
36
- export type PiCacheWarmingPresentation = OwnedUiCacheWarmingPresentation;
37
36
  export type PiWorkflowPresentation = OwnedUiWorkflowPresentation;
38
37
  export type PiWorkflowMessageKind = OwnedUiWorkflowMessageKind;
39
38
  export type PiWorkflowMessage = OwnedUiWorkflowMessage;
@@ -75,10 +74,11 @@ export interface PiTreeSelectorContext {
75
74
  * Progress a session listing reports. `partialSessions` carries what the pinned manager has
76
75
  * loaded so far, so the selector can show results before the listing finishes.
77
76
  */
78
- export type PiSessionListProgress = (loaded: number, total: number, partialSessions?: readonly SessionInfo[]) => void;
77
+ type PiSessionListProgress = (loaded: number, total: number, partialSessions?: readonly SessionInfo[]) => void;
79
78
  export interface PiSessionSelectorContext {
80
79
  readonly currentSessionFilePath: string | undefined;
81
80
  readonly loadCurrentSessions: (onProgress?: PiSessionListProgress) => Promise<SessionInfo[]>;
82
81
  readonly loadAllSessions: (onProgress?: PiSessionListProgress) => Promise<SessionInfo[]>;
83
82
  readonly renameSession: (sessionFilePath: string, nextName: string | undefined) => Promise<void>;
84
83
  }
84
+ export {};