@llblab/pi-kit 0.18.1 → 0.19.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 (139) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +4 -2
  3. package/node_modules/@llblab/pi-state-flow/AGENTS.md +35 -37
  4. package/node_modules/@llblab/pi-state-flow/BACKLOG.md +5 -3
  5. package/node_modules/@llblab/pi-state-flow/CHANGELOG.md +19 -1
  6. package/node_modules/@llblab/pi-state-flow/README.md +102 -48
  7. package/node_modules/@llblab/pi-state-flow/dist/index.d.ts +6 -9
  8. package/node_modules/@llblab/pi-state-flow/dist/index.js +6 -9
  9. package/node_modules/@llblab/pi-state-flow/dist/lib/acquisition.d.ts +2 -2
  10. package/node_modules/@llblab/pi-state-flow/dist/lib/acquisition.js +21 -8
  11. package/node_modules/@llblab/pi-state-flow/dist/lib/artifact.d.ts +40 -24
  12. package/node_modules/@llblab/pi-state-flow/dist/lib/artifact.js +93 -63
  13. package/node_modules/@llblab/pi-state-flow/dist/lib/compaction.d.ts +4 -3
  14. package/node_modules/@llblab/pi-state-flow/dist/lib/compaction.js +9 -9
  15. package/node_modules/@llblab/pi-state-flow/dist/lib/config.d.ts +1 -1
  16. package/node_modules/@llblab/pi-state-flow/dist/lib/config.js +6 -5
  17. package/node_modules/@llblab/pi-state-flow/dist/lib/context.d.ts +8 -7
  18. package/node_modules/@llblab/pi-state-flow/dist/lib/context.js +56 -58
  19. package/node_modules/@llblab/pi-state-flow/dist/lib/continuation.js +12 -24
  20. package/node_modules/@llblab/pi-state-flow/dist/lib/durable.d.ts +7 -18
  21. package/node_modules/@llblab/pi-state-flow/dist/lib/durable.js +47 -78
  22. package/node_modules/@llblab/pi-state-flow/dist/lib/extension.d.ts +4 -6
  23. package/node_modules/@llblab/pi-state-flow/dist/lib/extension.js +241 -437
  24. package/node_modules/@llblab/pi-state-flow/dist/lib/git.d.ts +2 -72
  25. package/node_modules/@llblab/pi-state-flow/dist/lib/git.js +120 -499
  26. package/node_modules/@llblab/pi-state-flow/dist/lib/history.d.ts +2 -1
  27. package/node_modules/@llblab/pi-state-flow/dist/lib/history.js +4 -3
  28. package/node_modules/@llblab/pi-state-flow/dist/lib/json.d.ts +3 -0
  29. package/node_modules/@llblab/pi-state-flow/dist/lib/json.js +43 -22
  30. package/node_modules/@llblab/pi-state-flow/dist/lib/logging.d.ts +1 -5
  31. package/node_modules/@llblab/pi-state-flow/dist/lib/logging.js +0 -2
  32. package/node_modules/@llblab/pi-state-flow/dist/lib/memory.d.ts +1 -14
  33. package/node_modules/@llblab/pi-state-flow/dist/lib/memory.js +5 -37
  34. package/node_modules/@llblab/pi-state-flow/dist/lib/protocol.d.ts +1 -2
  35. package/node_modules/@llblab/pi-state-flow/dist/lib/protocol.js +13 -32
  36. package/node_modules/@llblab/pi-state-flow/dist/lib/query.d.ts +6 -6
  37. package/node_modules/@llblab/pi-state-flow/dist/lib/query.js +25 -21
  38. package/node_modules/@llblab/pi-state-flow/dist/lib/recovery.d.ts +3 -3
  39. package/node_modules/@llblab/pi-state-flow/dist/lib/recovery.js +15 -12
  40. package/node_modules/@llblab/pi-state-flow/dist/lib/rehydration.d.ts +2 -4
  41. package/node_modules/@llblab/pi-state-flow/dist/lib/rehydration.js +5 -1
  42. package/node_modules/@llblab/pi-state-flow/dist/lib/runtime.d.ts +26 -88
  43. package/node_modules/@llblab/pi-state-flow/dist/lib/runtime.js +159 -255
  44. package/node_modules/@llblab/pi-state-flow/dist/lib/skills.d.ts +0 -3
  45. package/node_modules/@llblab/pi-state-flow/dist/lib/skills.js +1 -47
  46. package/node_modules/@llblab/pi-state-flow/dist/lib/snapshot.d.ts +16 -33
  47. package/node_modules/@llblab/pi-state-flow/dist/lib/snapshot.js +48 -137
  48. package/node_modules/@llblab/pi-state-flow/dist/lib/state.d.ts +16 -11
  49. package/node_modules/@llblab/pi-state-flow/dist/lib/state.js +13 -14
  50. package/node_modules/@llblab/pi-state-flow/dist/lib/status.d.ts +1 -9
  51. package/node_modules/@llblab/pi-state-flow/dist/lib/status.js +15 -43
  52. package/node_modules/@llblab/pi-state-flow/dist/lib/storage.d.ts +5 -9
  53. package/node_modules/@llblab/pi-state-flow/dist/lib/storage.js +13 -45
  54. package/node_modules/@llblab/pi-state-flow/dist/lib/telegram.js +1 -1
  55. package/node_modules/@llblab/pi-state-flow/dist/lib/temporal.d.ts +15 -7
  56. package/node_modules/@llblab/pi-state-flow/dist/lib/temporal.js +104 -24
  57. package/node_modules/@llblab/pi-state-flow/dist/lib/transition.d.ts +0 -2
  58. package/node_modules/@llblab/pi-state-flow/dist/lib/transition.js +11 -14
  59. package/node_modules/@llblab/pi-state-flow/dist/package.json +9 -6
  60. package/node_modules/@llblab/pi-state-flow/dist/skills/state-flow-guide/SKILL.md +11 -17
  61. package/node_modules/@llblab/pi-state-flow/dist/skills/state-flow-memory/SKILL.md +8 -8
  62. package/node_modules/@llblab/pi-state-flow/docs/README.md +2 -2
  63. package/node_modules/@llblab/pi-state-flow/docs/architecture.md +64 -67
  64. package/node_modules/@llblab/pi-state-flow/docs/compatibility.md +24 -6
  65. package/node_modules/@llblab/pi-state-flow/docs/filesystem-recovery.md +12 -15
  66. package/node_modules/@llblab/pi-state-flow/docs/fork-contract.md +22 -27
  67. package/node_modules/@llblab/pi-state-flow/docs/lazy-state.md +25 -41
  68. package/node_modules/@llblab/pi-state-flow/docs/performance.md +38 -421
  69. package/node_modules/@llblab/pi-state-flow/docs/temporal-acceptance.md +33 -46
  70. package/node_modules/@llblab/pi-state-flow/docs/usage.md +37 -61
  71. package/node_modules/@llblab/pi-state-flow/index.ts +7 -71
  72. package/node_modules/@llblab/pi-state-flow/lib/acquisition.ts +26 -11
  73. package/node_modules/@llblab/pi-state-flow/lib/artifact.ts +116 -88
  74. package/node_modules/@llblab/pi-state-flow/lib/compaction.ts +12 -10
  75. package/node_modules/@llblab/pi-state-flow/lib/config.ts +6 -6
  76. package/node_modules/@llblab/pi-state-flow/lib/context.ts +52 -59
  77. package/node_modules/@llblab/pi-state-flow/lib/continuation.ts +11 -20
  78. package/node_modules/@llblab/pi-state-flow/lib/durable.ts +44 -86
  79. package/node_modules/@llblab/pi-state-flow/lib/extension.ts +237 -460
  80. package/node_modules/@llblab/pi-state-flow/lib/git.ts +110 -552
  81. package/node_modules/@llblab/pi-state-flow/lib/history.ts +4 -3
  82. package/node_modules/@llblab/pi-state-flow/lib/json.ts +39 -23
  83. package/node_modules/@llblab/pi-state-flow/lib/logging.ts +1 -7
  84. package/node_modules/@llblab/pi-state-flow/lib/memory.ts +5 -44
  85. package/node_modules/@llblab/pi-state-flow/lib/protocol.ts +14 -25
  86. package/node_modules/@llblab/pi-state-flow/lib/query.ts +26 -22
  87. package/node_modules/@llblab/pi-state-flow/lib/recovery.ts +17 -11
  88. package/node_modules/@llblab/pi-state-flow/lib/rehydration.ts +7 -5
  89. package/node_modules/@llblab/pi-state-flow/lib/runtime.ts +154 -254
  90. package/node_modules/@llblab/pi-state-flow/lib/skills.ts +1 -49
  91. package/node_modules/@llblab/pi-state-flow/lib/snapshot.ts +58 -142
  92. package/node_modules/@llblab/pi-state-flow/lib/state.ts +27 -19
  93. package/node_modules/@llblab/pi-state-flow/lib/status.ts +16 -54
  94. package/node_modules/@llblab/pi-state-flow/lib/storage.ts +12 -40
  95. package/node_modules/@llblab/pi-state-flow/lib/telegram.ts +1 -1
  96. package/node_modules/@llblab/pi-state-flow/lib/temporal.ts +104 -22
  97. package/node_modules/@llblab/pi-state-flow/lib/transition.ts +16 -26
  98. package/node_modules/@llblab/pi-state-flow/package.json +9 -6
  99. package/node_modules/@llblab/pi-state-flow/skills/state-flow-guide/SKILL.md +11 -17
  100. package/node_modules/@llblab/pi-state-flow/skills/state-flow-memory/SKILL.md +8 -8
  101. package/node_modules/@llblab/pi-telegram/CHANGELOG.md +7 -0
  102. package/node_modules/@llblab/pi-telegram/README.md +1 -2
  103. package/node_modules/@llblab/pi-telegram/dist/lib/bindings.d.ts +1 -3
  104. package/node_modules/@llblab/pi-telegram/dist/lib/bindings.js +1 -6
  105. package/node_modules/@llblab/pi-telegram/dist/lib/commands.d.ts +1 -4
  106. package/node_modules/@llblab/pi-telegram/dist/lib/commands.js +13 -33
  107. package/node_modules/@llblab/pi-telegram/dist/lib/extension.js +1 -4
  108. package/node_modules/@llblab/pi-telegram/dist/lib/menu-queue.d.ts +1 -0
  109. package/node_modules/@llblab/pi-telegram/dist/lib/menu-queue.js +72 -1
  110. package/node_modules/@llblab/pi-telegram/dist/lib/queue.d.ts +7 -0
  111. package/node_modules/@llblab/pi-telegram/dist/lib/queue.js +27 -0
  112. package/node_modules/@llblab/pi-telegram/dist/lib/replies.d.ts +3 -0
  113. package/node_modules/@llblab/pi-telegram/dist/lib/replies.js +17 -0
  114. package/node_modules/@llblab/pi-telegram/dist/lib/sync.js +8 -1
  115. package/node_modules/@llblab/pi-telegram/dist/package.json +1 -1
  116. package/node_modules/@llblab/pi-telegram/docs/architecture.md +2 -0
  117. package/node_modules/@llblab/pi-telegram/docs/multi-instance-bus.md +1 -1
  118. package/node_modules/@llblab/pi-telegram/docs/public-api.md +1 -1
  119. package/node_modules/@llblab/pi-telegram/lib/bindings.ts +0 -10
  120. package/node_modules/@llblab/pi-telegram/lib/commands.ts +18 -41
  121. package/node_modules/@llblab/pi-telegram/lib/extension.ts +1 -8
  122. package/node_modules/@llblab/pi-telegram/lib/menu-queue.ts +126 -1
  123. package/node_modules/@llblab/pi-telegram/lib/queue.ts +46 -0
  124. package/node_modules/@llblab/pi-telegram/lib/replies.ts +19 -0
  125. package/node_modules/@llblab/pi-telegram/lib/sync.ts +8 -1
  126. package/node_modules/@llblab/pi-telegram/package.json +1 -1
  127. package/package.json +3 -3
  128. package/node_modules/@llblab/pi-state-flow/dist/lib/discovery.d.ts +0 -21
  129. package/node_modules/@llblab/pi-state-flow/dist/lib/discovery.js +0 -125
  130. package/node_modules/@llblab/pi-state-flow/dist/lib/maintenance.d.ts +0 -36
  131. package/node_modules/@llblab/pi-state-flow/dist/lib/maintenance.js +0 -98
  132. package/node_modules/@llblab/pi-state-flow/dist/lib/migration.d.ts +0 -13
  133. package/node_modules/@llblab/pi-state-flow/dist/lib/migration.js +0 -167
  134. package/node_modules/@llblab/pi-state-flow/dist/lib/publication.d.ts +0 -86
  135. package/node_modules/@llblab/pi-state-flow/dist/lib/publication.js +0 -437
  136. package/node_modules/@llblab/pi-state-flow/lib/discovery.ts +0 -133
  137. package/node_modules/@llblab/pi-state-flow/lib/maintenance.ts +0 -147
  138. package/node_modules/@llblab/pi-state-flow/lib/migration.ts +0 -171
  139. package/node_modules/@llblab/pi-state-flow/lib/publication.ts +0 -458
@@ -1,132 +1,69 @@
1
1
  import { type SessionAddress } from "./durable.ts";
2
2
  import { type ArtifactProvenance, type ArtifactProvenanceRegistry } from "./artifact.ts";
3
- import { publishTemporalStateToGit } from "./git.ts";
3
+ import { publishTemporalStateToFiles } from "./storage.ts";
4
4
  import { type AcceptedTransition, type RecentTransitionWindow } from "./history.ts";
5
- import { type Snapshot } from "./snapshot.ts";
5
+ import { type RetainedBoundaryCheckpoint, type RetainedPiCheckpoint, type Snapshot } from "./snapshot.ts";
6
6
  import { type MaterializedState, type ScopedStates, type StateScope } from "./state.ts";
7
- import { type ScopeStream, type TemporalState } from "./temporal.ts";
8
- export type RuntimePublication = ReturnType<typeof publishTemporalStateToGit> & {
9
- revision?: string;
10
- };
7
+ import { type TemporalState } from "./temporal.ts";
8
+ export type RuntimePublication = ReturnType<typeof publishTemporalStateToFiles>;
11
9
  /** A targeted removed scope was deliberately adopted as empty before refusing the stale semantic patch. */
12
10
  export declare class SharedScopeRemovalConflictError extends Error {
13
11
  readonly scopes: readonly StateScope[];
14
12
  constructor(scopes: readonly StateScope[]);
15
13
  }
16
- export declare class MissingSessionRuntimeError extends Error {
17
- constructor();
18
- }
19
- /** Immutable target validation is independent of acquiring the live publication basis. */
20
- export declare function inspectRuntimeRevision(cwd: string, sessionId: string, root: string, revision: string, sessionKey?: string): {
21
- runtime: {
22
- document: import("./snapshot.ts").SessionRuntime;
23
- revision: string;
24
- };
25
- resolved: {
26
- snapshot: Snapshot;
27
- lineage: import("./temporal.ts").TransitionBoundary[];
28
- publicationTarget: string;
29
- artifacts: ArtifactProvenanceRegistry;
30
- };
31
- view: {
32
- lineage: import("./temporal.ts").TransitionBoundary[];
33
- scopes: {
34
- global: ScopeStream;
35
- cwd: ScopeStream;
36
- session: ScopeStream;
37
- };
38
- };
39
- provenance: Record<StateScope, ArtifactProvenanceRegistry>;
40
- };
41
- /** Validate one supported immutable target before any live migration/publication. */
42
- export declare function inspectSnapshotRevision(cwd: string, sessionId: string, root: string, revision: string, _legacySnapshot?: Snapshot, sessionKey?: string): {
43
- snapshot: import("./snapshot.ts").StateFlowSnapshot;
44
- file: {
45
- runtime: import("./snapshot.ts").SessionRuntime;
46
- view: {
47
- scopes: Record<StateScope, ScopeStream>;
48
- lineage: import("./temporal.ts").TransitionBoundary[];
49
- };
50
- provenance: Record<StateScope, ArtifactProvenanceRegistry>;
51
- base: {
52
- files: import("./durable.ts").DurableFileBase[];
53
- };
54
- revision: `file:${string}`;
55
- };
56
- temporal?: undefined;
57
- } | {
58
- file?: undefined;
59
- snapshot: import("./snapshot.ts").StateFlowSnapshot;
60
- temporal: {
61
- runtime: {
62
- document: import("./snapshot.ts").SessionRuntime;
63
- revision: string;
64
- };
65
- resolved: {
66
- snapshot: Snapshot;
67
- lineage: import("./temporal.ts").TransitionBoundary[];
68
- publicationTarget: string;
69
- artifacts: ArtifactProvenanceRegistry;
70
- };
71
- view: {
72
- lineage: import("./temporal.ts").TransitionBoundary[];
73
- scopes: {
74
- global: ScopeStream;
75
- cwd: ScopeStream;
76
- session: ScopeStream;
77
- };
78
- };
79
- provenance: Record<StateScope, ArtifactProvenanceRegistry>;
80
- };
81
- };
82
14
  /** Cached branch-selected temporal state and publication basis; excludes Pi event policy. */
83
15
  export declare class TemporalRuntime {
84
16
  view: TemporalState | undefined;
85
17
  private base;
86
18
  private semanticRevision;
87
19
  private savedRuntime;
88
- private backend;
20
+ private restoredOriginPending;
89
21
  private provenanceByScope;
90
22
  /** Shared scopes whose wholly absent live basis was accepted after one stale-target refusal. */
91
23
  private readonly absentSharedScopes;
92
24
  readonly cwd: string;
93
25
  private readonly session;
94
26
  readonly root: string;
95
- constructor(cwd: string, session: string | SessionAddress, root: string, sessionKey?: string);
27
+ readonly historyLimit: number;
28
+ constructor(cwd: string, session: string | SessionAddress, root: string, sessionKey?: string, historyLimit?: number);
96
29
  get sessionId(): string;
97
30
  get sessionKey(): string;
98
- /** Runtime-owned artifact freshness evidence for one scope; never model-visible state. */
31
+ /** Runtime-owned artifact compilation evidence for one scope; never model-visible state. */
99
32
  artifactProvenance(scope: StateScope): ArtifactProvenanceRegistry;
100
33
  /** Read canonical shared memory without creating, migrating, or publishing storage. */
101
34
  loadPassive(): boolean;
102
- /** Explicit start owns directory/repository creation; reads never call this. */
35
+ /** Select canonical file acceptance even when Git is available; backup remains a later concern. */
36
+ prepareCanonical(): void;
37
+ /** Canonical preparation is the default; Git backup is a later independent concern. */
103
38
  prepare(): void;
104
- /** Explicit start migrates a predecessor envelope even when passive restore already populated the cache. */
105
- migrateLegacyStorage(): void;
106
- /** Explicit start can upgrade a proven file cohort; failed adoption leaves the cache in file mode. */
107
- promote(snapshot: Snapshot): RuntimePublication | undefined;
108
39
  read(offset?: number, scope?: StateScope): MaterializedState;
109
40
  states(): ScopedStates;
110
41
  causalBasis(): string;
42
+ /** Encode Pi lifecycle state against the current retained semantic boundary. */
43
+ retainedCheckpoint(snapshot: Snapshot): RetainedPiCheckpoint;
44
+ usesCanonicalFiles(): boolean;
111
45
  recent(): RecentTransitionWindow;
112
- /** Validate selection without installing state; only a matching immutable Git inspection is reusable. */
113
- prepareRestore(revision: string, legacySnapshot?: Snapshot): {
46
+ /** Prepare a retained session boundary from current canonical files; shared scopes remain live. */
47
+ prepareBoundaryRestore(checkpoint: RetainedBoundaryCheckpoint): {
114
48
  snapshot: Snapshot;
115
49
  restore: () => Snapshot;
116
50
  };
117
- /** Copy only a proven source session stream; shared streams come from the child's fresh live basis. */
118
- prepareFork(source: SessionAddress, revision: string): {
51
+ /** Restore and canonically accept one retained boundary as a single lifecycle operation. */
52
+ restoreBoundary(checkpoint: RetainedBoundaryCheckpoint): {
53
+ snapshot: Snapshot;
54
+ publication: RuntimePublication;
55
+ };
56
+ /** Copy one retained source-session boundary over the child's current shared scopes. */
57
+ prepareBoundaryFork(source: SessionAddress, checkpoint: RetainedBoundaryCheckpoint): {
119
58
  snapshot: Snapshot;
120
59
  fork: () => {
121
60
  snapshot: Snapshot;
122
61
  publication: RuntimePublication;
123
62
  };
124
63
  };
125
- restore(revision: string, legacySnapshot?: Snapshot): Snapshot;
126
- private restoreInspected;
127
64
  initialize(snapshot: Snapshot, allowCreateCwd: boolean, expectedShared?: Pick<ScopedStates, "global" | "cwd">, newSessionOrigin?: boolean): RuntimePublication | undefined;
128
65
  private initializeOrigin;
129
- /** Initial copy owns only the new session files, without pruning or rewriting shared provenance. */
66
+ /** Copy the private origin and apply configured retention folding, preserving live shared values/provenance. */
130
67
  private publishForkOrigin;
131
68
  /**
132
69
  * Reconcile untouched shared-scope drift against the current proven live basis.
@@ -137,8 +74,9 @@ export declare class TemporalRuntime {
137
74
  * session or runtime files also fails closed under the existing race rule.
138
75
  */
139
76
  private reconcileSharedDrift;
77
+ /** Canonically accept a prepared retained-boundary origin before lifecycle-only persistence. */
78
+ acceptRestoredOrigin(snapshot: Snapshot): RuntimePublication;
140
79
  publish(snapshot: Snapshot, semantic?: boolean, accepted?: AcceptedTransition, options?: {
141
- pushRemote?: boolean;
142
80
  provenance?: Partial<Record<StateScope, Record<string, ArtifactProvenance>>>;
143
81
  }): RuntimePublication | undefined;
144
82
  }