@timurproko/a1 0.2.5 → 0.2.6-dev.727

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 (148) hide show
  1. package/bin/cli.js +13 -2
  2. package/bin/ui.js +13 -0
  3. package/dist/app/session-shell/prompt-suggestion-controller.d.ts +5 -4
  4. package/dist/app/session-shell/prompt-suggestion-controller.js +148 -58
  5. package/dist/app/session-shell/session-shell-root.d.ts +5 -1
  6. package/dist/app/session-shell/session-shell-root.js +13 -6
  7. package/dist/app/session-shell/session-shell.js +132 -51
  8. package/dist/app/session-shell/session-viewport-controller.js +33 -21
  9. package/dist/cli/dispatch.js +5 -3
  10. package/dist/cli/session-context.d.ts +5 -1
  11. package/dist/cli/session-context.js +25 -8
  12. package/dist/composition/owned-ui.d.ts +3 -0
  13. package/dist/composition/owned-ui.js +66 -6
  14. package/dist/composition/settings-route-host.js +4 -3
  15. package/dist/contracts/owned-ui/index.d.ts +4 -2
  16. package/dist/contracts/owned-ui/index.js +1 -1
  17. package/dist/contracts/owned-ui/model.d.ts +4 -0
  18. package/dist/contracts/owned-ui/suggestion-diagnostics.d.ts +5 -1
  19. package/dist/contracts/owned-ui/suggestion-diagnostics.js +3 -1
  20. package/dist/contracts/owned-ui/validation.js +7 -0
  21. package/dist/features/launch/index.d.ts +1 -1
  22. package/dist/features/launch/session-context.d.ts +17 -2
  23. package/dist/features/launch/session-context.js +9 -5
  24. package/dist/features/owned-ui/reference-routes.d.ts +1 -1
  25. package/dist/features/owned-ui/reference-routes.js +1 -1
  26. package/dist/features/owned-ui/settings-app.js +21 -39
  27. package/dist/features/prompt-suggestions/diagnostics.js +4 -1
  28. package/dist/foundation/lifecycle/index.d.ts +2 -2
  29. package/dist/foundation/lifecycle/index.js +1 -1
  30. package/dist/foundation/lifecycle/session-repository-context.d.ts +19 -2
  31. package/dist/foundation/lifecycle/session-repository-context.js +434 -66
  32. package/dist/foundation/process-containment/index.d.ts +1 -0
  33. package/dist/foundation/process-containment/index.js +1 -0
  34. package/dist/foundation/process-containment/native-process-inspector.d.ts +3 -0
  35. package/dist/foundation/process-containment/native-process-inspector.js +21 -0
  36. package/dist/foundation/release/progress-palette.generated.d.ts +2 -2
  37. package/dist/foundation/release/progress-palette.generated.js +2 -2
  38. package/dist/foundation/startup/startup-descriptor.js +2 -2
  39. package/dist/integrations/pi/components/components.js +2 -2
  40. package/dist/integrations/pi/components/index.d.ts +2 -2
  41. package/dist/integrations/pi/components/index.js +1 -1
  42. package/dist/integrations/pi/components/lazy-selectors.d.ts +42 -0
  43. package/dist/integrations/pi/components/lazy-selectors.js +32 -0
  44. package/dist/integrations/pi/components/modal-frame.js +3 -4
  45. package/dist/integrations/pi/components/models-dialog.js +5 -5
  46. package/dist/integrations/pi/components/prompt-input-port.d.ts +1 -0
  47. package/dist/integrations/pi/components/resources/builtin-themes.d.ts +2 -2
  48. package/dist/integrations/pi/components/resources/builtin-themes.js +2 -2
  49. package/dist/integrations/pi/components/share-operation-dialog.js +3 -3
  50. package/dist/integrations/pi/components/shell-editor-autocomplete.js +8 -7
  51. package/dist/integrations/pi/components/shell-extension-ui.d.ts +2 -0
  52. package/dist/integrations/pi/components/shell-extension-ui.js +20 -10
  53. package/dist/integrations/pi/components/shell-hotkey-sections.js +2 -2
  54. package/dist/integrations/pi/components/shell-presenters-info.js +10 -10
  55. package/dist/integrations/pi/components/shell-presenters-transcript.js +10 -10
  56. package/dist/integrations/pi/components/shell-selectors-dialogs.js +5 -6
  57. package/dist/integrations/pi/components/shell-shared-facade.js +1 -1
  58. package/dist/integrations/pi/components/skills-dialog.js +3 -3
  59. package/dist/integrations/pi/components/submitted-prompt-adapter.js +2 -3
  60. package/dist/integrations/pi/components/theme.d.ts +9 -0
  61. package/dist/integrations/pi/components/theme.js +30 -0
  62. package/dist/integrations/pi/components/tool-result-adapter.js +6 -1
  63. package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.d.ts +1 -1
  64. package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.js +1 -1
  65. package/dist/integrations/pi/components/upstream/assets/earendil-image.json +2 -2
  66. package/dist/integrations/pi/components/upstream/components/countdown-timer.d.ts +1 -1
  67. package/dist/integrations/pi/components/upstream/components/earendil-announcement.js +1 -1
  68. package/dist/integrations/pi/components/upstream/components/extension-editor.d.ts +1 -1
  69. package/dist/integrations/pi/components/upstream/components/extension-editor.js +6 -6
  70. package/dist/integrations/pi/components/upstream/components/extension-input.js +4 -4
  71. package/dist/integrations/pi/components/upstream/components/extension-selector.js +4 -4
  72. package/dist/integrations/pi/components/upstream/components/mermaid.js +1 -1
  73. package/dist/integrations/pi/components/upstream/components/owned-editor.d.ts +5 -5
  74. package/dist/integrations/pi/components/upstream/components/owned-editor.js +8 -5
  75. package/dist/integrations/pi/components/upstream/components/pi-logo.js +1 -1
  76. package/dist/integrations/pi/components/upstream/components/scoped-models-selector.d.ts +1 -1
  77. package/dist/integrations/pi/components/upstream/components/scoped-models-selector.js +3 -3
  78. package/dist/integrations/pi/components/upstream/components/session-footer.js +1 -1
  79. package/dist/integrations/pi/components/upstream/components/session-selector-search.js +1 -1
  80. package/dist/integrations/pi/components/upstream/components/session-selector.js +14 -20
  81. package/dist/integrations/pi/components/upstream/components/skill-invocation-message.d.ts +3 -2
  82. package/dist/integrations/pi/components/upstream/components/skill-invocation-message.js +6 -3
  83. package/dist/integrations/pi/components/upstream/components/status-indicator.d.ts +1 -1
  84. package/dist/integrations/pi/components/upstream/components/status-indicator.js +1 -1
  85. package/dist/integrations/pi/components/upstream/components/themed-text.d.ts +1 -1
  86. package/dist/integrations/pi/components/upstream/components/themed-text.js +1 -1
  87. package/dist/integrations/pi/components/upstream/components/thinking-selector.d.ts +1 -1
  88. package/dist/integrations/pi/components/upstream/components/thinking-selector.js +2 -2
  89. package/dist/integrations/pi/components/upstream/components/tool-execution.d.ts +4 -0
  90. package/dist/integrations/pi/components/upstream/components/tool-execution.js +11 -1
  91. package/dist/integrations/pi/components/upstream/components/tree-selector.d.ts +2 -2
  92. package/dist/integrations/pi/components/upstream/components/tree-selector.js +27 -18
  93. package/dist/integrations/pi/components/upstream/components/trust-selector.js +1 -1
  94. package/dist/integrations/pi/components/upstream/external-editor.js +1 -1
  95. package/dist/integrations/pi/components/upstream/history/editor-core.d.ts +4 -4
  96. package/dist/integrations/pi/components/upstream/history/editor-core.js +11 -7
  97. package/dist/integrations/pi/components/upstream/history/kill-ring.d.ts +1 -1
  98. package/dist/integrations/pi/components/upstream/history/kill-ring.js +1 -1
  99. package/dist/integrations/pi/components/upstream/history/printable-key.js +1 -1
  100. package/dist/integrations/pi/components/upstream/history/text-helpers.js +1 -1
  101. package/dist/integrations/pi/components/upstream/history/undo-stack.d.ts +1 -1
  102. package/dist/integrations/pi/components/upstream/history/undo-stack.js +1 -1
  103. package/dist/integrations/pi/components/upstream/history/word-navigation.js +1 -1
  104. package/dist/integrations/pi/components/upstream/model-search.d.ts +1 -1
  105. package/dist/integrations/pi/components/upstream/program-status-reporter.d.ts +31 -0
  106. package/dist/integrations/pi/components/upstream/program-status-reporter.js +89 -0
  107. package/dist/integrations/pi/components/upstream/theme/system-theme.d.ts +1 -1
  108. package/dist/integrations/pi/components/upstream/theme/system-theme.js +1 -1
  109. package/dist/integrations/pi/components/upstream/theme/theme-controller.d.ts +1 -1
  110. package/dist/integrations/pi/components/upstream/theme/theme.d.ts +18 -1
  111. package/dist/integrations/pi/components/upstream/theme/theme.js +207 -10
  112. package/dist/integrations/pi/engine/pi-settings-metadata.json +1 -1
  113. package/dist/integrations/pi/engine/resources/changelog.json +4 -4
  114. package/dist/integrations/pi/engine/session-events.js +10 -2
  115. package/dist/integrations/pi/engine/transcript-projection.js +2 -1
  116. package/dist/integrations/pi/startup-public.js +306 -290
  117. package/dist/integrations/pi/startup-public.manifest.json +289 -265
  118. package/dist/integrations/pi/tui-runtime/adapter.d.ts +8 -1
  119. package/dist/integrations/pi/tui-runtime/adapter.js +31 -1
  120. package/dist/integrations/pi/tui-runtime/contracts.d.ts +3 -1
  121. package/dist/integrations/pi/tui-runtime/damage-aware-terminal.d.ts +1 -1
  122. package/dist/integrations/pi/tui-runtime/damage-aware-terminal.js +1 -1
  123. package/dist/native/darwin-arm64/manifest.json +1 -1
  124. package/dist/native/linux-x64/manifest.json +1 -1
  125. package/dist/native/win32-x64/manifest.json +2 -2
  126. package/dist/native/win32-x64/process-guardian.exe +0 -0
  127. package/dist/product-identity.d.ts +2 -2
  128. package/dist/product-identity.js +2 -2
  129. package/dist/product-identity.json +3 -1
  130. package/dist/runtime-payload-inventory.json +3092 -2878
  131. package/dist/ui/components/prompt-input.d.ts +2 -0
  132. package/dist/ui/components/prompt-input.js +5 -1
  133. package/dist/ui/components/text-selection.d.ts +1 -1
  134. package/dist/ui/components/text-selection.js +3 -1
  135. package/dist/ui/components/theme.d.ts +2 -0
  136. package/dist/ui/components/transcript-viewport.d.ts +6 -4
  137. package/dist/ui/components/transcript-viewport.js +94 -16
  138. package/dist/ui/components/value-menu.d.ts +2 -0
  139. package/dist/ui/components/value-menu.js +13 -8
  140. package/dist/ui/settings/declarations.d.ts +26 -14
  141. package/dist/ui/settings/declarations.js +24 -11
  142. package/dist/ui/settings/migrations.js +16 -0
  143. package/docs/architecture/project-structure.md +4 -3
  144. package/docs/architecture/prompt-suggestions.md +14 -10
  145. package/docs/local-worktree-cleanup.md +23 -9
  146. package/docs/manual-owned-ui-checkpoint.md +1 -1
  147. package/docs/openspec-archive-automation.md +20 -19
  148. package/package.json +3 -3
@@ -1,4 +1,4 @@
1
- import { type WheelScrollLines } from "@earendil-works/pi-tui";
1
+ import { type ProgramStatus, type WheelScrollLines } from "@earendil-works/pi-tui";
2
2
  import type { PiTuiComponentPort, PiTuiInputListener, PiTuiOverlayHandle, PiTuiOverlayOptions, PiTuiPreInputListener, PiTuiRuntimeAdapterOptions, PiTuiRuntimeState, PiTuiScrollState, PiTuiStopOptions, PiTuiViewport } from "./contracts.js";
3
3
  export type PiTuiRuntimeErrorStage = "construction" | "start" | "input-drain" | "restoration";
4
4
  /** Identifies the Pi TUI lifecycle stage that failed while preserving the original cause. */
@@ -39,6 +39,12 @@ export declare class PiTuiRuntimeAdapter {
39
39
  */
40
40
  freezePresentation(): void;
41
41
  get presentationFrozen(): boolean;
42
+ /**
43
+ * Keeps asynchronous replacement-surface construction atomic at the terminal. Renderers may
44
+ * compose while held, but their writes are dropped until the final forced repaint on release.
45
+ */
46
+ beginPresentationHold(): () => void;
47
+ get presentationHeld(): boolean;
42
48
  addPreInputListener(listener: PiTuiPreInputListener): () => void;
43
49
  addInputListener(listener: PiTuiInputListener): () => void;
44
50
  switchMode(mode: "regular" | "fullscreen"): boolean;
@@ -48,6 +54,7 @@ export declare class PiTuiRuntimeAdapter {
48
54
  setWheelScrollLines(lines: WheelScrollLines): void;
49
55
  getClearOnShrink(): boolean;
50
56
  setTerminalProgress(active: boolean): void;
57
+ setProgramStatus(status: ProgramStatus): void;
51
58
  setTitle(title: string): void;
52
59
  /** Shows a bounded fullscreen acknowledgement without changing root layout geometry. */
53
60
  showFlash(message: string, durationMs?: number): void;
@@ -118,6 +118,7 @@ export class PiTuiRuntimeAdapter {
118
118
  #rootDisposed = false;
119
119
  #terminalProgress = false;
120
120
  #presentationFrozen = false;
121
+ #presentationHolds = new Set();
121
122
  constructor(options) {
122
123
  this.#root = options.root;
123
124
  this.#overlayGeometry = options.onOverlayGeometry === undefined ? undefined : new OverlayGeometryTracker(options.onOverlayGeometry);
@@ -128,7 +129,7 @@ export class PiTuiRuntimeAdapter {
128
129
  // Invariant: the pinned renderer's frames pass through this gate, while writeControl and
129
130
  // the stop sequence reach the terminal directly. Freezing drops frames without touching
130
131
  // the renderer, so a scheduled repaint cannot land on top of the quit outro.
131
- const gatedTerminal = frozenGateTerminal(this.#terminal, () => this.#presentationFrozen);
132
+ const gatedTerminal = frozenGateTerminal(this.#terminal, () => this.#presentationFrozen || this.#presentationHolds.size > 0);
132
133
  const tracedTerminal = options.inputDiagnostics === undefined
133
134
  ? gatedTerminal
134
135
  : diagnosticTerminal(gatedTerminal, phase => this.#traceRuntimePhase(phase));
@@ -320,6 +321,24 @@ export class PiTuiRuntimeAdapter {
320
321
  get presentationFrozen() {
321
322
  return this.#presentationFrozen;
322
323
  }
324
+ /**
325
+ * Keeps asynchronous replacement-surface construction atomic at the terminal. Renderers may
326
+ * compose while held, but their writes are dropped until the final forced repaint on release.
327
+ */
328
+ beginPresentationHold() {
329
+ this.#assertRunning("presentation hold");
330
+ const token = Symbol("presentation-hold");
331
+ this.#presentationHolds.add(token);
332
+ return () => {
333
+ if (!this.#presentationHolds.delete(token) || this.#presentationHolds.size > 0)
334
+ return;
335
+ if (this.active && !this.#presentationFrozen)
336
+ this.#tui.requestRender(true);
337
+ };
338
+ }
339
+ get presentationHeld() {
340
+ return this.#presentationHolds.size > 0;
341
+ }
323
342
  addPreInputListener(listener) {
324
343
  if (this.#preInputListeners.has(listener))
325
344
  throw new TypeError("Pi TUI pre-input listener is already registered");
@@ -396,6 +415,9 @@ export class PiTuiRuntimeAdapter {
396
415
  this.#terminal.setProgress(active);
397
416
  this.#terminalProgress = active;
398
417
  }
418
+ setProgramStatus(status) {
419
+ this.#terminal.setProgramStatus?.(status);
420
+ }
399
421
  setTitle(title) {
400
422
  this.#terminal.setTitle(title);
401
423
  }
@@ -427,6 +449,7 @@ export class PiTuiRuntimeAdapter {
427
449
  return this.#stopPromise;
428
450
  if (this.#state === "idle") {
429
451
  this.#state = "stopped";
452
+ this.#presentationHolds.clear();
430
453
  this.#clearTerminalProgress();
431
454
  this.#preInputListeners.clear();
432
455
  this.#disposeRoot();
@@ -462,6 +485,7 @@ export class PiTuiRuntimeAdapter {
462
485
  // Invariant: the gate opens only for the synchronous stop sequence, so no render
463
486
  // scheduled during the outro can slip in before the alternate screen is left.
464
487
  this.#presentationFrozen = false;
488
+ this.#presentationHolds.clear();
465
489
  this.#tui.stop(stopOptions);
466
490
  }
467
491
  catch (error) {
@@ -599,6 +623,7 @@ export class PiTuiRuntimeAdapter {
599
623
  }
600
624
  #restoreAfterFailedStart() {
601
625
  this.#presentationFrozen = false;
626
+ this.#presentationHolds.clear();
602
627
  try {
603
628
  this.#tui.stop();
604
629
  }
@@ -615,6 +640,7 @@ export class PiTuiRuntimeAdapter {
615
640
  }
616
641
  #bestEffortTerminalRestore() {
617
642
  this.#presentationFrozen = false;
643
+ this.#presentationHolds.clear();
618
644
  this.#clearTerminalProgress();
619
645
  try {
620
646
  if (this.mode === "fullscreen")
@@ -681,6 +707,7 @@ function coordinatedInputTerminal(terminal, coordinator, setSink, frameMouse) {
681
707
  clearScreen: () => terminal.clearScreen(),
682
708
  setTitle: title => terminal.setTitle(title),
683
709
  setProgress: active => terminal.setProgress(active),
710
+ setProgramStatus: status => terminal.setProgramStatus?.(status),
684
711
  };
685
712
  }
686
713
  function diagnosticTerminal(terminal, trace) {
@@ -708,6 +735,7 @@ function diagnosticTerminal(terminal, trace) {
708
735
  clearScreen: () => terminal.clearScreen(),
709
736
  setTitle: title => terminal.setTitle(title),
710
737
  setProgress: active => terminal.setProgress(active),
738
+ setProgramStatus: status => terminal.setProgramStatus?.(status),
711
739
  };
712
740
  }
713
741
  function frozenGateTerminal(terminal, frozen) {
@@ -734,6 +762,7 @@ function frozenGateTerminal(terminal, frozen) {
734
762
  terminal.clearScreen(); },
735
763
  setTitle: title => terminal.setTitle(title),
736
764
  setProgress: active => terminal.setProgress(active),
765
+ setProgramStatus: status => terminal.setProgramStatus?.(status),
737
766
  };
738
767
  }
739
768
  function preInputTerminal(terminal, route, frameMouse) {
@@ -765,6 +794,7 @@ function preInputTerminal(terminal, route, frameMouse) {
765
794
  clearScreen: () => terminal.clearScreen(),
766
795
  setTitle: title => terminal.setTitle(title),
767
796
  setProgress: active => terminal.setProgress(active),
797
+ setProgramStatus: status => terminal.setProgramStatus?.(status),
768
798
  };
769
799
  }
770
800
  function toOverlayOptions(options) {
@@ -1,5 +1,5 @@
1
1
  import type { PresentationComponentPort, PresentationPointerSurface } from "../../../contracts/presentation/index.js";
2
- import type { WheelScrollLines } from "@earendil-works/pi-tui";
2
+ import type { ProgramStatus, WheelScrollLines } from "@earendil-works/pi-tui";
3
3
  import type { PiTuiInputCoordinationDecision, PiTuiInputCoordinationScheduler, PiTuiInputSurfaceKind } from "./input-presentation-coordinator.js";
4
4
  export type PiTuiRuntimeState = "idle" | "running" | "stopping" | "stopped" | "failed";
5
5
  export interface PiTuiViewport {
@@ -32,6 +32,8 @@ export interface PiTuiTerminalPort {
32
32
  clearScreen(): void;
33
33
  setTitle(title: string): void;
34
34
  setProgress(active: boolean): void;
35
+ /** Optional for neutral test/decorator ports; the Pi-facing adapter always supplies it. */
36
+ setProgramStatus?(status: ProgramStatus): void;
35
37
  }
36
38
  export type PiTuiSizeValue = number | `${number}%`;
37
39
  export type PiTuiOverlayAnchor = "center" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "top-center" | "bottom-center" | "left-center" | "right-center";
@@ -1,5 +1,5 @@
1
1
  import type { PiTuiTerminalPort } from "./contracts.js";
2
- export declare const PINNED_PI_TUI_DAMAGE_GRAMMAR = "@earendil-works/pi-tui@1.0.4:tui-alt-screen-one-write-v1";
2
+ export declare const PINNED_PI_TUI_DAMAGE_GRAMMAR = "@earendil-works/pi-tui@1.1.0:tui-alt-screen-one-write-v1";
3
3
  export interface PiTuiDamageFrameDescriptor {
4
4
  readonly frameId: number;
5
5
  readonly width: number;
@@ -1,4 +1,4 @@
1
- export const PINNED_PI_TUI_DAMAGE_GRAMMAR = "@earendil-works/pi-tui@1.0.4:tui-alt-screen-one-write-v1";
1
+ export const PINNED_PI_TUI_DAMAGE_GRAMMAR = "@earendil-works/pi-tui@1.1.0:tui-alt-screen-one-write-v1";
2
2
  const BEGIN_SYNCHRONIZED_OUTPUT = "\u001b[?2026h";
3
3
  const END_SYNCHRONIZED_OUTPUT = "\u001b[?2026l";
4
4
  const ROW_MARKER = /\u001b\[(\d+);1H\u001b\[2K/gu;
@@ -5,7 +5,7 @@
5
5
  "platform": "darwin",
6
6
  "architecture": "arm64",
7
7
  "capability": "supported",
8
- "builtAt": "2026-10-07T15:54:44.546Z",
8
+ "builtAt": "2026-10-09T06:37:13.333Z",
9
9
  "artifact": {
10
10
  "filename": "process-guardian",
11
11
  "sha256": "51b0b2dc1c9ae577f2586c4217066929278726c2c15308d9144eb6f538e118ff",
@@ -5,7 +5,7 @@
5
5
  "platform": "linux",
6
6
  "architecture": "x64",
7
7
  "capability": "supported",
8
- "builtAt": "2026-10-07T15:54:41.381Z",
8
+ "builtAt": "2026-10-09T06:37:02.979Z",
9
9
  "artifact": {
10
10
  "filename": "process-guardian",
11
11
  "sha256": "ef62679e83bc1fad3d38f9f21675d9256f08d20e67fd4791571032115ca1b0e9",
@@ -5,10 +5,10 @@
5
5
  "platform": "win32",
6
6
  "architecture": "x64",
7
7
  "capability": "supported",
8
- "builtAt": "2026-10-07T15:55:19.867Z",
8
+ "builtAt": "2026-10-09T06:37:43.630Z",
9
9
  "artifact": {
10
10
  "filename": "process-guardian.exe",
11
- "sha256": "0c34b684eab04e6d34b7feb5d1f5668f036e55da0af02b3b23516470bc9a4130",
11
+ "sha256": "63c2b95f4d07de25f9b25da06e7386f681474967118bf034ef4b02f0259cc9a3",
12
12
  "size": 288256
13
13
  },
14
14
  "provenance": {
@@ -1,6 +1,6 @@
1
- declare const ENVIRONMENT_KEYS: readonly ["clipboardDiagnostics", "configDir", "dataDir", "databasePath", "developmentInstanceId", "developmentRoot", "endpoint", "exitNoticePath", "paneId", "probeTrace", "processGuardianPath", "prFooterPreview", "profileHome", "runtimeDir", "skipVersionCheck", "startupTrace", "suggestionDiagnostics", "terminalSessionId"];
1
+ declare const ENVIRONMENT_KEYS: readonly ["clipboardDiagnostics", "configDir", "dataDir", "databasePath", "developmentInstanceId", "developmentRoot", "endpoint", "exitNoticePath", "paneId", "probeTrace", "processGuardianPath", "prFooterPreview", "profileHome", "runtimeDir", "sessionRuntimeId", "skipVersionCheck", "startupTrace", "suggestionDiagnostics", "terminalSessionId"];
2
2
  declare const FILESYSTEM_KEYS: readonly ["slug", "windowsDirectory", "unixDirectory", "temporaryPrefix"];
3
- declare const STATE_KEYS: readonly ["windowsControlDirectory", "unixControlDirectory", "developmentDirectory", "piAgentProfile", "piVanillaProfile", "sessionRepositoryDirectory"];
3
+ declare const STATE_KEYS: readonly ["windowsControlDirectory", "unixControlDirectory", "developmentDirectory", "piAgentProfile", "piVanillaProfile", "sessionRepositoryDirectory", "sessionWorktreeClaimDirectory"];
4
4
  declare const ENDPOINT_KEYS: readonly ["windowsPipeStem", "unixSocketFilename", "metadataFilename", "supervisorLogFilename", "databaseFilename"];
5
5
  declare const MANIFEST_KEYS: readonly ["releaseFilename", "packageFilename"];
6
6
  declare const PROTOCOL_KEYS: readonly ["namespace", "controlEnvelope", "supervisorSchema", "nativeHostSchema", "structuredAgentSchema", "controlStoreSchema", "promptHistorySchema", "releaseCohortSchema", "updateJournalSchema"];
@@ -1,10 +1,10 @@
1
1
  import rawIdentity from "./product-identity.json" with { type: "json" };
2
2
  const ENVIRONMENT_KEYS = [
3
3
  "clipboardDiagnostics", "configDir", "dataDir", "databasePath", "developmentInstanceId", "developmentRoot", "endpoint", "exitNoticePath",
4
- "paneId", "probeTrace", "processGuardianPath", "prFooterPreview", "profileHome", "runtimeDir", "skipVersionCheck", "startupTrace", "suggestionDiagnostics", "terminalSessionId",
4
+ "paneId", "probeTrace", "processGuardianPath", "prFooterPreview", "profileHome", "runtimeDir", "sessionRuntimeId", "skipVersionCheck", "startupTrace", "suggestionDiagnostics", "terminalSessionId",
5
5
  ];
6
6
  const FILESYSTEM_KEYS = ["slug", "windowsDirectory", "unixDirectory", "temporaryPrefix"];
7
- const STATE_KEYS = ["windowsControlDirectory", "unixControlDirectory", "developmentDirectory", "piAgentProfile", "piVanillaProfile", "sessionRepositoryDirectory"];
7
+ const STATE_KEYS = ["windowsControlDirectory", "unixControlDirectory", "developmentDirectory", "piAgentProfile", "piVanillaProfile", "sessionRepositoryDirectory", "sessionWorktreeClaimDirectory"];
8
8
  const ENDPOINT_KEYS = ["windowsPipeStem", "unixSocketFilename", "metadataFilename", "supervisorLogFilename", "databaseFilename"];
9
9
  const MANIFEST_KEYS = ["releaseFilename", "packageFilename"];
10
10
  const PROTOCOL_KEYS = ["namespace", "controlEnvelope", "supervisorSchema", "nativeHostSchema", "structuredAgentSchema", "controlStoreSchema", "promptHistorySchema", "releaseCohortSchema", "updateJournalSchema"];
@@ -24,6 +24,7 @@
24
24
  "prFooterPreview": "A1_PR_FOOTER_PREVIEW",
25
25
  "profileHome": "A1_PROFILE_HOME",
26
26
  "runtimeDir": "A1_RUNTIME_DIR",
27
+ "sessionRuntimeId": "A1_SESSION_RUNTIME_ID",
27
28
  "skipVersionCheck": "A1_SKIP_VERSION_CHECK",
28
29
  "startupTrace": "A1_STARTUP_TRACE",
29
30
  "suggestionDiagnostics": "A1_SUGGESTION_DIAGNOSTICS",
@@ -35,7 +36,8 @@
35
36
  "developmentDirectory": "a1-development",
36
37
  "piAgentProfile": ".a1/agent",
37
38
  "piVanillaProfile": ".pi/agent",
38
- "sessionRepositoryDirectory": "session-repositories"
39
+ "sessionRepositoryDirectory": "session-repositories",
40
+ "sessionWorktreeClaimDirectory": "session-worktree-claims"
39
41
  },
40
42
  "endpoint": {
41
43
  "windowsPipeStem": "a1",