@llblab/pi-kit 0.37.0 → 0.38.0

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 (152) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +3 -3
  3. package/node_modules/@llblab/pi-state-flow/AGENTS.md +7 -3
  4. package/node_modules/@llblab/pi-state-flow/BACKLOG.md +679 -2
  5. package/node_modules/@llblab/pi-state-flow/CHANGELOG.md +17 -0
  6. package/node_modules/@llblab/pi-state-flow/README.md +30 -14
  7. package/node_modules/@llblab/pi-state-flow/api/modules.ts +11 -0
  8. package/node_modules/@llblab/pi-state-flow/dist/api/modules.d.ts +3 -0
  9. package/node_modules/@llblab/pi-state-flow/dist/api/modules.js +3 -0
  10. package/node_modules/@llblab/pi-state-flow/dist/lib/acquisition.d.ts +7 -4
  11. package/node_modules/@llblab/pi-state-flow/dist/lib/acquisition.js +77 -36
  12. package/node_modules/@llblab/pi-state-flow/dist/lib/artifact.d.ts +2 -0
  13. package/node_modules/@llblab/pi-state-flow/dist/lib/artifact.js +26 -27
  14. package/node_modules/@llblab/pi-state-flow/dist/lib/config.d.ts +3 -0
  15. package/node_modules/@llblab/pi-state-flow/dist/lib/config.js +13 -1
  16. package/node_modules/@llblab/pi-state-flow/dist/lib/context.d.ts +27 -21
  17. package/node_modules/@llblab/pi-state-flow/dist/lib/context.js +144 -46
  18. package/node_modules/@llblab/pi-state-flow/dist/lib/continuation.js +14 -18
  19. package/node_modules/@llblab/pi-state-flow/dist/lib/durable.d.ts +6 -0
  20. package/node_modules/@llblab/pi-state-flow/dist/lib/durable.js +60 -50
  21. package/node_modules/@llblab/pi-state-flow/dist/lib/extension.js +1049 -310
  22. package/node_modules/@llblab/pi-state-flow/dist/lib/history.d.ts +4 -4
  23. package/node_modules/@llblab/pi-state-flow/dist/lib/history.js +15 -3
  24. package/node_modules/@llblab/pi-state-flow/dist/lib/json.d.ts +2 -0
  25. package/node_modules/@llblab/pi-state-flow/dist/lib/json.js +2 -1
  26. package/node_modules/@llblab/pi-state-flow/dist/lib/memory.d.ts +3 -1
  27. package/node_modules/@llblab/pi-state-flow/dist/lib/memory.js +7 -7
  28. package/node_modules/@llblab/pi-state-flow/dist/lib/migration.d.ts +29 -0
  29. package/node_modules/@llblab/pi-state-flow/dist/lib/migration.js +186 -0
  30. package/node_modules/@llblab/pi-state-flow/dist/lib/model-interface.d.ts +17 -0
  31. package/node_modules/@llblab/pi-state-flow/dist/lib/model-interface.js +158 -0
  32. package/node_modules/@llblab/pi-state-flow/dist/lib/module-registry.d.ts +21 -0
  33. package/node_modules/@llblab/pi-state-flow/dist/lib/module-registry.js +108 -0
  34. package/node_modules/@llblab/pi-state-flow/dist/lib/operation.js +3 -2
  35. package/node_modules/@llblab/pi-state-flow/dist/lib/ownership.d.ts +4 -4
  36. package/node_modules/@llblab/pi-state-flow/dist/lib/ownership.js +5 -5
  37. package/node_modules/@llblab/pi-state-flow/dist/lib/planes.d.ts +29 -0
  38. package/node_modules/@llblab/pi-state-flow/dist/lib/planes.js +84 -0
  39. package/node_modules/@llblab/pi-state-flow/dist/lib/protocol.d.ts +6 -3
  40. package/node_modules/@llblab/pi-state-flow/dist/lib/protocol.js +33 -16
  41. package/node_modules/@llblab/pi-state-flow/dist/lib/query.d.ts +21 -4
  42. package/node_modules/@llblab/pi-state-flow/dist/lib/query.js +53 -13
  43. package/node_modules/@llblab/pi-state-flow/dist/lib/recovery.js +5 -2
  44. package/node_modules/@llblab/pi-state-flow/dist/lib/rehydration.d.ts +3 -0
  45. package/node_modules/@llblab/pi-state-flow/dist/lib/rehydration.js +10 -1
  46. package/node_modules/@llblab/pi-state-flow/dist/lib/runtime.d.ts +84 -5
  47. package/node_modules/@llblab/pi-state-flow/dist/lib/runtime.js +570 -20
  48. package/node_modules/@llblab/pi-state-flow/dist/lib/selection.d.ts +10 -0
  49. package/node_modules/@llblab/pi-state-flow/dist/lib/selection.js +32 -0
  50. package/node_modules/@llblab/pi-state-flow/dist/lib/semantic-module.d.ts +79 -0
  51. package/node_modules/@llblab/pi-state-flow/dist/lib/semantic-module.js +187 -0
  52. package/node_modules/@llblab/pi-state-flow/dist/lib/session.d.ts +98 -1
  53. package/node_modules/@llblab/pi-state-flow/dist/lib/session.js +398 -3
  54. package/node_modules/@llblab/pi-state-flow/dist/lib/skills.d.ts +7 -2
  55. package/node_modules/@llblab/pi-state-flow/dist/lib/skills.js +55 -3
  56. package/node_modules/@llblab/pi-state-flow/dist/lib/snapshot.d.ts +67 -14
  57. package/node_modules/@llblab/pi-state-flow/dist/lib/snapshot.js +129 -9
  58. package/node_modules/@llblab/pi-state-flow/dist/lib/state.d.ts +26 -14
  59. package/node_modules/@llblab/pi-state-flow/dist/lib/state.js +61 -19
  60. package/node_modules/@llblab/pi-state-flow/dist/lib/status.d.ts +14 -9
  61. package/node_modules/@llblab/pi-state-flow/dist/lib/status.js +59 -22
  62. package/node_modules/@llblab/pi-state-flow/dist/lib/storage.d.ts +111 -10
  63. package/node_modules/@llblab/pi-state-flow/dist/lib/storage.js +728 -11
  64. package/node_modules/@llblab/pi-state-flow/dist/lib/telegram.d.ts +10 -7
  65. package/node_modules/@llblab/pi-state-flow/dist/lib/telegram.js +50 -14
  66. package/node_modules/@llblab/pi-state-flow/dist/lib/temporal.d.ts +40 -4
  67. package/node_modules/@llblab/pi-state-flow/dist/lib/temporal.js +247 -43
  68. package/node_modules/@llblab/pi-state-flow/dist/lib/transition.d.ts +41 -8
  69. package/node_modules/@llblab/pi-state-flow/dist/lib/transition.js +132 -39
  70. package/node_modules/@llblab/pi-state-flow/dist/package.json +6 -1
  71. package/node_modules/@llblab/pi-state-flow/dist/skills/state-flow-guide/SKILL.md +28 -16
  72. package/node_modules/@llblab/pi-state-flow/dist/skills/state-flow-memory/SKILL.md +12 -8
  73. package/node_modules/@llblab/pi-state-flow/docs/README.md +9 -0
  74. package/node_modules/@llblab/pi-state-flow/docs/architecture.md +76 -43
  75. package/node_modules/@llblab/pi-state-flow/docs/compatibility.md +9 -1
  76. package/node_modules/@llblab/pi-state-flow/docs/fork-contract.md +6 -0
  77. package/node_modules/@llblab/pi-state-flow/docs/lazy-state.md +23 -19
  78. package/node_modules/@llblab/pi-state-flow/docs/protocol-composition-decision.md +66 -0
  79. package/node_modules/@llblab/pi-state-flow/docs/public-module-contract.md +73 -0
  80. package/node_modules/@llblab/pi-state-flow/docs/scope-selection-contract.md +814 -0
  81. package/node_modules/@llblab/pi-state-flow/docs/semantic-compatibility-decision.md +212 -0
  82. package/node_modules/@llblab/pi-state-flow/docs/semantic-extensibility-decision.md +75 -0
  83. package/node_modules/@llblab/pi-state-flow/docs/semantic-handoff-contract.md +174 -0
  84. package/node_modules/@llblab/pi-state-flow/docs/semantic-memory-evaluation.md +166 -0
  85. package/node_modules/@llblab/pi-state-flow/docs/semantic-module-contract.md +84 -0
  86. package/node_modules/@llblab/pi-state-flow/docs/single-scope-interface-contract.md +201 -0
  87. package/node_modules/@llblab/pi-state-flow/docs/temporal-acceptance.md +22 -1
  88. package/node_modules/@llblab/pi-state-flow/docs/usage.md +32 -18
  89. package/node_modules/@llblab/pi-state-flow/lib/acquisition.ts +68 -31
  90. package/node_modules/@llblab/pi-state-flow/lib/artifact.ts +21 -22
  91. package/node_modules/@llblab/pi-state-flow/lib/config.ts +14 -1
  92. package/node_modules/@llblab/pi-state-flow/lib/context.ts +142 -46
  93. package/node_modules/@llblab/pi-state-flow/lib/continuation.ts +14 -17
  94. package/node_modules/@llblab/pi-state-flow/lib/durable.ts +53 -44
  95. package/node_modules/@llblab/pi-state-flow/lib/extension.ts +897 -297
  96. package/node_modules/@llblab/pi-state-flow/lib/history.ts +16 -7
  97. package/node_modules/@llblab/pi-state-flow/lib/json.ts +2 -1
  98. package/node_modules/@llblab/pi-state-flow/lib/memory.ts +10 -9
  99. package/node_modules/@llblab/pi-state-flow/lib/migration.ts +189 -0
  100. package/node_modules/@llblab/pi-state-flow/lib/model-interface.ts +136 -0
  101. package/node_modules/@llblab/pi-state-flow/lib/module-registry.ts +119 -0
  102. package/node_modules/@llblab/pi-state-flow/lib/operation.ts +3 -2
  103. package/node_modules/@llblab/pi-state-flow/lib/ownership.ts +6 -6
  104. package/node_modules/@llblab/pi-state-flow/lib/planes.ts +98 -0
  105. package/node_modules/@llblab/pi-state-flow/lib/protocol.ts +37 -16
  106. package/node_modules/@llblab/pi-state-flow/lib/query.ts +59 -18
  107. package/node_modules/@llblab/pi-state-flow/lib/recovery.ts +5 -2
  108. package/node_modules/@llblab/pi-state-flow/lib/rehydration.ts +10 -1
  109. package/node_modules/@llblab/pi-state-flow/lib/runtime.ts +574 -21
  110. package/node_modules/@llblab/pi-state-flow/lib/selection.ts +39 -0
  111. package/node_modules/@llblab/pi-state-flow/lib/semantic-module.ts +239 -0
  112. package/node_modules/@llblab/pi-state-flow/lib/session.ts +387 -3
  113. package/node_modules/@llblab/pi-state-flow/lib/skills.ts +45 -4
  114. package/node_modules/@llblab/pi-state-flow/lib/snapshot.ts +156 -16
  115. package/node_modules/@llblab/pi-state-flow/lib/state.ts +69 -28
  116. package/node_modules/@llblab/pi-state-flow/lib/status.ts +65 -31
  117. package/node_modules/@llblab/pi-state-flow/lib/storage.ts +770 -18
  118. package/node_modules/@llblab/pi-state-flow/lib/telegram.ts +58 -20
  119. package/node_modules/@llblab/pi-state-flow/lib/temporal.ts +267 -50
  120. package/node_modules/@llblab/pi-state-flow/lib/transition.ts +184 -52
  121. package/node_modules/@llblab/pi-state-flow/package.json +6 -1
  122. package/node_modules/@llblab/pi-state-flow/skills/state-flow-guide/SKILL.md +28 -16
  123. package/node_modules/@llblab/pi-state-flow/skills/state-flow-memory/SKILL.md +12 -8
  124. package/node_modules/@llblab/pi-telegram/AGENTS.md +1 -1
  125. package/node_modules/@llblab/pi-telegram/BACKLOG.md +8 -10
  126. package/node_modules/@llblab/pi-telegram/CHANGELOG.md +10 -0
  127. package/node_modules/@llblab/pi-telegram/dist/lib/outbound-buttons.js +20 -18
  128. package/node_modules/@llblab/pi-telegram/dist/lib/outbound-markup.d.ts +6 -6
  129. package/node_modules/@llblab/pi-telegram/dist/lib/outbound-markup.js +23 -65
  130. package/node_modules/@llblab/pi-telegram/dist/lib/outbound.js +3 -3
  131. package/node_modules/@llblab/pi-telegram/dist/lib/prompts.d.ts +1 -1
  132. package/node_modules/@llblab/pi-telegram/dist/lib/prompts.js +1 -1
  133. package/node_modules/@llblab/pi-telegram/dist/lib/runtime.d.ts +1 -0
  134. package/node_modules/@llblab/pi-telegram/dist/lib/runtime.js +1 -0
  135. package/node_modules/@llblab/pi-telegram/dist/lib/telegram-api.d.ts +4 -2
  136. package/node_modules/@llblab/pi-telegram/dist/lib/telegram-api.js +24 -13
  137. package/node_modules/@llblab/pi-telegram/dist/package.json +1 -1
  138. package/node_modules/@llblab/pi-telegram/dist/skills/telegram-bridge/SKILL.md +5 -5
  139. package/node_modules/@llblab/pi-telegram/docs/architecture.md +5 -5
  140. package/node_modules/@llblab/pi-telegram/docs/compact-matrix-literal.md +1 -1
  141. package/node_modules/@llblab/pi-telegram/docs/generative-apps.md +1 -1
  142. package/node_modules/@llblab/pi-telegram/docs/outbound.md +8 -8
  143. package/node_modules/@llblab/pi-telegram/docs/public-api.md +2 -2
  144. package/node_modules/@llblab/pi-telegram/lib/outbound-buttons.ts +17 -15
  145. package/node_modules/@llblab/pi-telegram/lib/outbound-markup.ts +28 -68
  146. package/node_modules/@llblab/pi-telegram/lib/outbound.ts +3 -3
  147. package/node_modules/@llblab/pi-telegram/lib/prompts.ts +1 -1
  148. package/node_modules/@llblab/pi-telegram/lib/runtime.ts +2 -1
  149. package/node_modules/@llblab/pi-telegram/lib/telegram-api.ts +25 -12
  150. package/node_modules/@llblab/pi-telegram/package.json +1 -1
  151. package/node_modules/@llblab/pi-telegram/skills/telegram-bridge/SKILL.md +5 -5
  152. package/package.json +3 -3
@@ -1,10 +1,11 @@
1
1
  import { type SessionAddress } from "./durable.ts";
2
2
  import { type ArtifactProvenance, type ArtifactProvenanceRegistry } from "./artifact.ts";
3
- import { publishTemporalStateToFiles } from "./storage.ts";
3
+ import { publishTemporalStateToFiles, type SelectedFilePublication, type SelectedSessionAcquisitionRequest, type SelectedForkCopyRequest, type SelectedModuleAdditions, type SelectedProvenanceUpdates } from "./storage.ts";
4
4
  import { type AcceptedTransition, type RecentTransitionWindow } from "./history.ts";
5
- import { type RetainedPiCheckpoint, type Snapshot, type StateFlowMode } from "./snapshot.ts";
6
- import { type MaterializedState, type SemanticState, type ScopedSemanticStates, type ScopedStates, type StateScope } from "./state.ts";
7
- import { type TemporalState } from "./temporal.ts";
5
+ import { type RetainedPiCheckpoint, type SelectedRetainedPiCheckpoint, type Snapshot, type StateFlowMode, type PrivateAcquisition } from "./snapshot.ts";
6
+ import { type MaterializedState, type SemanticState, type ScopedSemanticStates, type ScopedStates, type ScopeStateValues, type StateScope } from "./state.ts";
7
+ import { type TemporalState, type SelectedTemporalState } from "./temporal.ts";
8
+ import { type ScopeSelection } from "./selection.ts";
8
9
  export type RuntimePublication = ReturnType<typeof publishTemporalStateToFiles>;
9
10
  export interface RuntimePatchTransaction {
10
11
  readonly states: ScopedSemanticStates;
@@ -12,6 +13,20 @@ export interface RuntimePatchTransaction {
12
13
  readonly provenance: Record<StateScope, ArtifactProvenanceRegistry>;
13
14
  publish(snapshot: Snapshot, accepted?: AcceptedTransition, provenance?: Partial<Record<StateScope, Record<string, ArtifactProvenance>>>): RuntimePublication;
14
15
  }
16
+ export interface SelectedRuntimePatchTransaction {
17
+ readonly selection: ScopeSelection;
18
+ readonly states: ScopeStateValues;
19
+ readonly modules?: SelectedModuleAdditions;
20
+ readonly snapshot: Snapshot;
21
+ readonly causalBasis: string;
22
+ readonly provenance: SelectedProvenanceUpdates;
23
+ publish(snapshot: Snapshot, accepted?: AcceptedTransition, provenance?: SelectedProvenanceUpdates, moduleAdditions?: SelectedModuleAdditions): SelectedFilePublication;
24
+ }
25
+ export interface SelectedLifecycleInspection {
26
+ readonly selection: ScopeSelection;
27
+ readonly privateAcquisition: PrivateAcquisition;
28
+ readonly snapshot: Snapshot;
29
+ }
15
30
  /** Child policy recorded by the native fork; memory always comes from the parent's current files. */
16
31
  export interface ForkLifecycle {
17
32
  mode: StateFlowMode;
@@ -24,10 +39,18 @@ export declare class SharedScopeRemovalConflictError extends Error {
24
39
  }
25
40
  /** Cached branch-selected temporal state and publication basis; excludes Pi event policy. */
26
41
  export declare class TemporalRuntime {
27
- view: TemporalState | undefined;
42
+ private memory;
43
+ /** Compatibility access to the legacy cache only; selected memory never masquerades as three owners. */
44
+ get view(): TemporalState | undefined;
45
+ set view(value: TemporalState | undefined);
28
46
  private base;
29
47
  private semanticRevision;
30
48
  private savedRuntime;
49
+ /** Backend choice survives cache clearing but grants no origin, private acquisition or publication authority. */
50
+ private selectedBackendChosen;
51
+ private selectedOriginAccepted;
52
+ private observedSessionAuthority;
53
+ private observedPrivateSemantics;
31
54
  private transaction;
32
55
  private provenanceByScope;
33
56
  /** Shared scopes whose wholly absent live basis was accepted after one stale-target refusal. */
@@ -39,6 +62,37 @@ export declare class TemporalRuntime {
39
62
  constructor(cwd: string, session: string | SessionAddress, root: string, sessionKey?: string, historyLimit?: number);
40
63
  get sessionId(): string;
41
64
  get sessionKey(): string;
65
+ private rememberSessionAuthority;
66
+ private assertLegacyAdmission;
67
+ /** Only owned durable acceptance calls this; returned receipts and read-only candidates are not installers. */
68
+ private installSelected;
69
+ private clearLegacyBasis;
70
+ private installObserved;
71
+ private observationGuard;
72
+ private selectedReadCache;
73
+ /** Detached read-only selected values; never accepted run fields or a publication/acquisition basis. */
74
+ observedSelectedView(): SelectedTemporalState | undefined;
75
+ /** Explicit shared inspection before acquisition; missing owners stay unavailable rather than becoming empty streams. */
76
+ refreshSelectedShared(selection: ScopeSelection, revalidateNativePolicy: () => void, signal?: AbortSignal): Promise<boolean>;
77
+ /** Header-only disposition data; never semantic observation, acceptance, or acquisition permission. */
78
+ inspectSelectedLifecycle(selection: ScopeSelection, revalidateNativePolicy: () => void, signal?: AbortSignal): Promise<SelectedLifecycleInspection | undefined>;
79
+ /** Native bookmarks never decide whether current canonical authority exists. */
80
+ hasSelectedCurrentAuthority(selection: ScopeSelection, revalidateNativePolicy: () => void, signal?: AbortSignal): Promise<boolean>;
81
+ /** Fenced inactive restoration/operator inspection: source proof only, without conversion or durable acceptance. */
82
+ refreshSelectedCurrent(selection: ScopeSelection, revalidateNativePolicy: () => void, signal?: AbortSignal): Promise<Snapshot>;
83
+ /** Detached accepted selected values only, never a file receipt or publication capability. */
84
+ selectedView(): SelectedTemporalState | undefined;
85
+ /** Accepted run fields only; local policy and pending native prompts remain the adapter's responsibility. */
86
+ selectedSnapshot(): Snapshot;
87
+ /** Native bookkeeping may change mode, never invent accepted run fields or a semantic boundary. */
88
+ retainedSelectedCheckpoint(mode?: StateFlowMode): SelectedRetainedPiCheckpoint;
89
+ /** Read-only cache identity lease; no source acquisition, storage receipt or publication authority. */
90
+ captureSelectedReadBasis(): () => void;
91
+ /** Exact present owners for the existing selected staging engine; no defaulted disabled scopes. */
92
+ selectedStates(offset?: number): {
93
+ selection: ScopeSelection;
94
+ states: ScopeStateValues;
95
+ };
42
96
  /** Runtime-owned artifact compilation evidence for one scope; never model-visible state. */
43
97
  artifactProvenance(scope: StateScope): ArtifactProvenanceRegistry;
44
98
  /** Read canonical shared memory without creating, migrating, or publishing storage. */
@@ -78,8 +132,33 @@ export declare class TemporalRuntime {
78
132
  private publicationCandidate;
79
133
  /** Stage and accept synchronously inside an awaited lock; expose neither selection nor raw storage operations. */
80
134
  withPatchTransaction<T>(action: (transaction: RuntimePatchTransaction) => T, signal?: AbortSignal): Promise<T>;
135
+ /** Authored under exclusion against validated live selected values; use the existing selected staging/commit engine. */
136
+ withSelectedPatchTransaction<T>(action: (transaction: SelectedRuntimePatchTransaction) => T, revalidateNativePolicy: () => void, signal?: AbortSignal, capturedTargets?: readonly StateScope[]): Promise<T>;
137
+ /** Mode-only Passive persistence: exact accepted sources, no current-origin adoption or caller-authored run fields. */
138
+ persistSelectedPassive(revalidateNativePolicy: () => void, signal?: AbortSignal): Promise<SelectedFilePublication>;
139
+ /** Precomputed replay remains tied to its accepted cache; changed selected shared targets conflict before publication. */
140
+ publishSelected(snapshot: Snapshot, accepted: AcceptedTransition | undefined, revalidateNativePolicy: () => void, options?: {
141
+ provenance?: SelectedProvenanceUpdates;
142
+ moduleAdditions?: SelectedModuleAdditions;
143
+ signal?: AbortSignal;
144
+ }): Promise<SelectedFilePublication>;
145
+ private withSelectedPublicationTransaction;
146
+ private assertSelectedReplayTargets;
81
147
  /** Activate current owned memory; the caller must authorize a wholly absent private origin after waiting. */
82
148
  withStartTransaction<T>(action: (current: Snapshot | undefined, publish: (snapshot: Snapshot) => RuntimePublication) => T, signal?: AbortSignal, allowCreateOrigin?: boolean): Promise<T>;
149
+ /** New-session shared-only acceptance; caller rechecks native origin authority after waiting. */
150
+ withSelectedSharedOriginTransaction<T>(selection: ScopeSelection, snapshot: Snapshot, action: (publish: () => SelectedFilePublication) => T, signal?: AbortSignal, allowCreateOrigin?: boolean): Promise<T>;
151
+ /** Child-owned deferred marker only; no parent locator or parent memory is acquired here. */
152
+ withSelectedDeferredForkTransaction<T>(selection: ScopeSelection, lifecycle: ForkLifecycle, action: (publish: () => SelectedFilePublication) => T, signal?: AbortSignal, allowDeferFork?: boolean, modeAtPublication?: () => StateFlowMode): Promise<T>;
153
+ /** Explicit first private acquisition, never deferred-parent recovery or repair of lost acquired state. */
154
+ withSelectedSessionAcquisitionTransaction<T>(request: SelectedSessionAcquisitionRequest, action: (publish: () => SelectedFilePublication) => T, signal?: AbortSignal, allowAcquirePrivate?: boolean): Promise<T>;
155
+ /** Stage first lifecycle/semantic authoring into one origin acceptance, never an empty publication followed by a patch. */
156
+ withSelectedFirstPatchTransaction<T>(selection: ScopeSelection, snapshot: Snapshot, action: (transaction: SelectedRuntimePatchTransaction) => T, revalidateNativePolicy: () => void, signal?: AbortSignal, allowCreateOrigin?: boolean): Promise<T>;
157
+ /** Same-session current acceptance/authoring; native policy checks are synchronous under exclusion. */
158
+ withSelectedCurrentTransaction<T>(selection: ScopeSelection, action: (current: Snapshot, publish: (snapshot?: Snapshot) => SelectedFilePublication, transaction: SelectedRuntimePatchTransaction) => T, revalidateNativePolicy: () => void, signal?: AbortSignal): Promise<T>;
159
+ /** Prepare may read persisted native identity outside exclusion; recheck must use in-memory native policy only. */
160
+ withSelectedForkCopyTransaction<T>(request: SelectedForkCopyRequest, action: (publish: () => SelectedFilePublication) => T, revalidateDirectParent: (source: Readonly<SessionAddress>, phase: "prepare" | "recheck") => void, signal?: AbortSignal): Promise<T>;
161
+ private withSelectedOriginAcceptance;
83
162
  /** Copy the parent's current session memory into an unoccupied child; the caller rechecks native selection after waiting. */
84
163
  withForkTransaction<T>(source: SessionAddress, lifecycle: ForkLifecycle, action: (selected: Snapshot, publish: (snapshot: Snapshot) => RuntimePublication) => T, signal?: AbortSignal): Promise<T>;
85
164
  private prepareForkCandidate;