loopforge 3.0.0 → 3.2.1

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 (178) hide show
  1. package/README.md +128 -145
  2. package/dist/audit.d.ts +50 -0
  3. package/dist/audit.d.ts.map +1 -0
  4. package/dist/audit.js +158 -0
  5. package/dist/audit.js.map +1 -0
  6. package/dist/canonical-state.d.ts +28 -20
  7. package/dist/canonical-state.d.ts.map +1 -1
  8. package/dist/canonical-state.js +82 -173
  9. package/dist/canonical-state.js.map +1 -1
  10. package/dist/cli.d.ts.map +1 -1
  11. package/dist/cli.js +25 -16
  12. package/dist/cli.js.map +1 -1
  13. package/dist/cognitive-governance.d.ts +25 -33
  14. package/dist/cognitive-governance.d.ts.map +1 -1
  15. package/dist/cognitive-governance.js +38 -138
  16. package/dist/cognitive-governance.js.map +1 -1
  17. package/dist/enforcement-gate.d.ts +76 -0
  18. package/dist/enforcement-gate.d.ts.map +1 -0
  19. package/dist/enforcement-gate.js +1071 -0
  20. package/dist/enforcement-gate.js.map +1 -0
  21. package/dist/engine.d.ts +99 -0
  22. package/dist/engine.d.ts.map +1 -0
  23. package/dist/engine.js +839 -0
  24. package/dist/engine.js.map +1 -0
  25. package/dist/evidence-claims.d.ts +50 -0
  26. package/dist/evidence-claims.d.ts.map +1 -0
  27. package/dist/evidence-claims.js +134 -0
  28. package/dist/evidence-claims.js.map +1 -0
  29. package/dist/evidence-provider.d.ts +21 -23
  30. package/dist/evidence-provider.d.ts.map +1 -1
  31. package/dist/evidence-provider.js +74 -34
  32. package/dist/evidence-provider.js.map +1 -1
  33. package/dist/generate-schema.js +1 -84
  34. package/dist/generate-schema.js.map +1 -1
  35. package/dist/index.d.ts +19 -22
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +16 -15
  38. package/dist/index.js.map +1 -1
  39. package/dist/loop-compiler.d.ts +41 -3
  40. package/dist/loop-compiler.d.ts.map +1 -1
  41. package/dist/loop-compiler.js +632 -273
  42. package/dist/loop-compiler.js.map +1 -1
  43. package/dist/loop-extras-parser.d.ts +2 -2
  44. package/dist/loop-extras-parser.d.ts.map +1 -1
  45. package/dist/loop-extras-parser.js +2 -2
  46. package/dist/loop-extras-parser.js.map +1 -1
  47. package/dist/loop-projection.d.ts +26 -0
  48. package/dist/loop-projection.d.ts.map +1 -0
  49. package/dist/loop-projection.js +142 -0
  50. package/dist/loop-projection.js.map +1 -0
  51. package/dist/loop-store.d.ts +112 -24
  52. package/dist/loop-store.d.ts.map +1 -1
  53. package/dist/loop-store.js +365 -218
  54. package/dist/loop-store.js.map +1 -1
  55. package/dist/mcp/round-lifecycle.d.ts +216 -0
  56. package/dist/mcp/round-lifecycle.d.ts.map +1 -0
  57. package/dist/mcp/round-lifecycle.js +926 -0
  58. package/dist/mcp/round-lifecycle.js.map +1 -0
  59. package/dist/mcp/server.d.ts +2 -1
  60. package/dist/mcp/server.d.ts.map +1 -1
  61. package/dist/mcp/server.js +28 -42
  62. package/dist/mcp/server.js.map +1 -1
  63. package/dist/mcp/session.d.ts +53 -101
  64. package/dist/mcp/session.d.ts.map +1 -1
  65. package/dist/mcp/session.js +306 -1105
  66. package/dist/mcp/session.js.map +1 -1
  67. package/dist/mcp/tools.d.ts +13 -16
  68. package/dist/mcp/tools.d.ts.map +1 -1
  69. package/dist/mcp/tools.js +479 -413
  70. package/dist/mcp/tools.js.map +1 -1
  71. package/dist/policy-metrics.d.ts +12 -17
  72. package/dist/policy-metrics.d.ts.map +1 -1
  73. package/dist/policy-metrics.js +95 -161
  74. package/dist/policy-metrics.js.map +1 -1
  75. package/dist/policy.d.ts +44 -35
  76. package/dist/policy.d.ts.map +1 -1
  77. package/dist/policy.js +31 -115
  78. package/dist/policy.js.map +1 -1
  79. package/dist/prompt-assembler.d.ts +37 -6
  80. package/dist/prompt-assembler.d.ts.map +1 -1
  81. package/dist/prompt-assembler.js +389 -160
  82. package/dist/prompt-assembler.js.map +1 -1
  83. package/dist/prompt-policy.d.ts +1 -8
  84. package/dist/prompt-policy.d.ts.map +1 -1
  85. package/dist/prompt-policy.js +8 -26
  86. package/dist/prompt-policy.js.map +1 -1
  87. package/dist/protocol.d.ts +357 -229
  88. package/dist/protocol.d.ts.map +1 -1
  89. package/dist/protocol.js +139 -15
  90. package/dist/protocol.js.map +1 -1
  91. package/dist/replay.d.ts +5 -13
  92. package/dist/replay.d.ts.map +1 -1
  93. package/dist/replay.js +19 -55
  94. package/dist/replay.js.map +1 -1
  95. package/dist/round-coordinator.d.ts +20 -24
  96. package/dist/round-coordinator.d.ts.map +1 -1
  97. package/dist/round-coordinator.js +99 -92
  98. package/dist/round-coordinator.js.map +1 -1
  99. package/dist/round-driver.d.ts +14 -13
  100. package/dist/round-driver.d.ts.map +1 -1
  101. package/dist/round-driver.js +26 -14
  102. package/dist/round-driver.js.map +1 -1
  103. package/dist/round-transaction.d.ts +15 -18
  104. package/dist/round-transaction.d.ts.map +1 -1
  105. package/dist/round-transaction.js +38 -47
  106. package/dist/round-transaction.js.map +1 -1
  107. package/dist/self-eval.d.ts +53 -0
  108. package/dist/self-eval.d.ts.map +1 -0
  109. package/dist/self-eval.js +284 -0
  110. package/dist/self-eval.js.map +1 -0
  111. package/dist/storage.d.ts +9 -4
  112. package/dist/storage.d.ts.map +1 -1
  113. package/dist/storage.js +18 -6
  114. package/dist/storage.js.map +1 -1
  115. package/dist/token-utils.d.ts +15 -3
  116. package/dist/token-utils.d.ts.map +1 -1
  117. package/dist/token-utils.js +24 -5
  118. package/dist/token-utils.js.map +1 -1
  119. package/dist/verification-gate.d.ts +108 -0
  120. package/dist/verification-gate.d.ts.map +1 -0
  121. package/dist/verification-gate.js +971 -0
  122. package/dist/verification-gate.js.map +1 -0
  123. package/loop_policy.json +44 -15
  124. package/package.json +5 -10
  125. package/skills/perception/SKILL.md +182 -199
  126. package/dist/canonical-event-writer.d.ts +0 -20
  127. package/dist/canonical-event-writer.d.ts.map +0 -1
  128. package/dist/canonical-event-writer.js +0 -131
  129. package/dist/canonical-event-writer.js.map +0 -1
  130. package/dist/compiler-subgoals.d.ts +0 -7
  131. package/dist/compiler-subgoals.d.ts.map +0 -1
  132. package/dist/compiler-subgoals.js +0 -93
  133. package/dist/compiler-subgoals.js.map +0 -1
  134. package/dist/derive-id.d.ts +0 -12
  135. package/dist/derive-id.d.ts.map +0 -1
  136. package/dist/derive-id.js +0 -31
  137. package/dist/derive-id.js.map +0 -1
  138. package/dist/mcp/session-projection.d.ts +0 -5
  139. package/dist/mcp/session-projection.d.ts.map +0 -1
  140. package/dist/mcp/session-projection.js +0 -18
  141. package/dist/mcp/session-projection.js.map +0 -1
  142. package/dist/mcp/session-queue.d.ts +0 -3
  143. package/dist/mcp/session-queue.d.ts.map +0 -1
  144. package/dist/mcp/session-queue.js +0 -18
  145. package/dist/mcp/session-queue.js.map +0 -1
  146. package/dist/mcp/session-types.d.ts +0 -72
  147. package/dist/mcp/session-types.d.ts.map +0 -1
  148. package/dist/mcp/session-types.js +0 -2
  149. package/dist/mcp/session-types.js.map +0 -1
  150. package/dist/round-commit-store.d.ts +0 -12
  151. package/dist/round-commit-store.d.ts.map +0 -1
  152. package/dist/round-commit-store.js +0 -13
  153. package/dist/round-commit-store.js.map +0 -1
  154. package/dist/round-gate.d.ts +0 -31
  155. package/dist/round-gate.d.ts.map +0 -1
  156. package/dist/round-gate.js +0 -259
  157. package/dist/round-gate.js.map +0 -1
  158. package/dist/round-recovery.d.ts +0 -17
  159. package/dist/round-recovery.d.ts.map +0 -1
  160. package/dist/round-recovery.js +0 -117
  161. package/dist/round-recovery.js.map +0 -1
  162. package/dist/round-report.d.ts +0 -16
  163. package/dist/round-report.d.ts.map +0 -1
  164. package/dist/round-report.js +0 -401
  165. package/dist/round-report.js.map +0 -1
  166. package/dist/runtime-services.d.ts +0 -59
  167. package/dist/runtime-services.d.ts.map +0 -1
  168. package/dist/runtime-services.js +0 -460
  169. package/dist/runtime-services.js.map +0 -1
  170. package/dist/vault-format.d.ts +0 -4
  171. package/dist/vault-format.d.ts.map +0 -1
  172. package/dist/vault-format.js +0 -4
  173. package/dist/vault-format.js.map +0 -1
  174. package/dist/vault-types.d.ts +0 -24
  175. package/dist/vault-types.d.ts.map +0 -1
  176. package/dist/vault-types.js +0 -2
  177. package/dist/vault-types.js.map +0 -1
  178. package/loopforge-policy.json +0 -340
@@ -1,47 +1,129 @@
1
+ /** Typed per-loop persistence.
2
+ *
3
+ * Layout:
4
+ * .loopforge/loops/<sha256(loopId)>/session.json
5
+ * .loopforge/loops/<sha256(loopId)>/rounds/<round>.json
6
+ *
7
+ * Markdown state files are derived views. These JSON documents are the only
8
+ * durable transaction truth.
9
+ */
1
10
  import type { PromptArtifact } from "./protocol.js";
2
11
  import type { RoundTransactionSnapshot } from "./round-transaction.js";
3
- import type { VaultEntry } from "./vault-types.js";
4
- import { LOOP_STORE_FORMAT } from "./vault-format.js";
5
- export { LOOP_STORE_FORMAT } from "./vault-format.js";
12
+ /** Loose per-loop entry shape shared by session documents, round documents,
13
+ * and the flat list views (listEntries/queryLoopEntries). The single
14
+ * durable truth is the typed per-loop documents; entries are what the
15
+ * runtime writes into them. */
16
+ export interface VaultEntry {
17
+ id?: string;
18
+ task_id?: string;
19
+ version_tag?: string;
20
+ is_active?: boolean;
21
+ timestamp?: string;
22
+ user_intent?: string;
23
+ task_type?: string;
24
+ /** @deprecated Use `success` field instead. Kept for reading old vault data. */
25
+ quality_score?: number;
26
+ success?: boolean;
27
+ skill_used?: string;
28
+ loop_id?: string;
29
+ loop_lineage?: Record<string, unknown>;
30
+ loop_objective?: Record<string, unknown> | null;
31
+ execution_feedback?: string;
32
+ task?: string;
33
+ output_summary?: string;
34
+ constraint_violations?: string[];
35
+ tags?: string[];
36
+ full_prompt?: string;
37
+ [key: string]: unknown;
38
+ }
39
+ export declare const LOOP_STORE_SCHEMA_VERSION: 1;
40
+ /** v2.12: Storage corruption taxonomy. Only sequence gaps/duplicates are
41
+ * recoverable (manual file deletion etc.); structural corruption is not. */
42
+ export type StorageCorruptionKind = "invalid_json" | "invalid_format" | "sequence_gap" | "sequence_duplicate" | "sequence_cross_loop" | "sequence_invalid";
43
+ export type StorageCorruptionSeverity = "recoverable" | "corrupted";
44
+ /** v2.12: Typed corruption error carrying a severity class. Callers may
45
+ * recover from `recoverable` errors (record and continue) but must surface
46
+ * `corrupted` errors — the runtime never silently repairs storage. */
47
+ export declare class StorageCorruptionError extends Error {
48
+ readonly code: "storage_corruption";
49
+ readonly kind: StorageCorruptionKind;
50
+ readonly severity: StorageCorruptionSeverity;
51
+ constructor(kind: StorageCorruptionKind, message: string);
52
+ get recoverable(): boolean;
53
+ }
6
54
  export interface LoopSessionDocument {
7
- format: typeof LOOP_STORE_FORMAT;
55
+ schemaVersion: typeof LOOP_STORE_SCHEMA_VERSION;
8
56
  loopId: string;
9
57
  updatedAt: string;
10
58
  entry: VaultEntry;
11
59
  }
12
60
  export interface LoopRoundDocument {
13
- format: typeof LOOP_STORE_FORMAT;
61
+ schemaVersion: typeof LOOP_STORE_SCHEMA_VERSION;
14
62
  loopId: string;
15
63
  round: number;
64
+ /** v2.12: Monotonic round stamp distinguishing new-format loops (strict
65
+ * continuity checked) from legacy loops (no stamp → exempt). */
66
+ sequence?: number;
16
67
  updatedAt: string;
17
68
  lineage?: VaultEntry;
18
- roundEvent?: VaultEntry;
69
+ feedback?: VaultEntry;
19
70
  transaction?: RoundTransactionSnapshot;
20
71
  promptArtifact?: PromptArtifact;
21
72
  events: VaultEntry[];
22
73
  }
74
+ export interface LoopStoreMigrationResult {
75
+ source: string;
76
+ imported: number;
77
+ skipped: number;
78
+ alreadyMigrated: boolean;
79
+ }
23
80
  export interface LoopStore {
24
81
  withLock<T>(fn: () => T): T;
25
82
  listLoopIds(): string[];
26
- listEntries(loopId?: string): VaultEntry[];
27
- queryLoopEvents(loopId: string): VaultEntry[];
83
+ /** Flat entry view over the durable documents. v3.0.1: `sinceRound` skips
84
+ * round documents older than the given round (the session document is
85
+ * always included) — used by incremental compile hydration. */
86
+ listEntries(loopId?: string, opts?: {
87
+ sinceRound?: number;
88
+ }): VaultEntry[];
28
89
  appendEntry(entry: VaultEntry): void;
29
90
  appendEntries(entries: VaultEntry[]): number;
30
- replaceEntries(entries: VaultEntry[]): void;
31
91
  readSession(loopId: string): LoopSessionDocument | null;
32
92
  writeSession(loopId: string, document: LoopSessionDocument): void;
33
93
  readRound(loopId: string, round: number): LoopRoundDocument | null;
94
+ /** v2.12: Per-round sequence stamps for continuity checking. Backends
95
+ * without round documents return [] (legacy → exempt from checks). */
96
+ listRoundSequences(loopId: string): Array<{
97
+ round: number;
98
+ sequence?: number;
99
+ }>;
100
+ migrateLegacyVault(path?: string): LoopStoreMigrationResult;
34
101
  }
35
- export type StorageCorruptionKind = "invalid_json" | "invalid_format" | "sequence_gap" | "sequence_duplicate" | "sequence_cross_loop" | "sequence_invalid";
36
- export declare class StorageCorruptionError extends Error {
37
- readonly kind: StorageCorruptionKind;
38
- readonly path: string;
39
- readonly loopId?: string | undefined;
40
- readonly sequence?: number | undefined;
41
- readonly code: "storage_corruption";
42
- readonly recoverable: false;
43
- constructor(kind: StorageCorruptionKind, path: string, loopId?: string | undefined, sequence?: number | undefined, message?: string);
44
- }
102
+ /** Filter a loop's flat entry view with the legacy VaultBackend query
103
+ * options. Derived read-only view over the single durable truth (typed
104
+ * session/round documents) — never a separate write path. Feedback
105
+ * entries are excluded by default, mirroring the historical
106
+ * queryEntries({ feedbackOnly }) semantics. */
107
+ export declare function queryLoopEntries(store: LoopStore, loopId: string, opts?: {
108
+ prefix?: string;
109
+ feedbackOnly?: boolean;
110
+ /** v3.0.1: only entries from round documents >= this round. Passed
111
+ * through to listEntries so incremental hydration skips old docs. */
112
+ sinceRound?: number;
113
+ }): VaultEntry[];
114
+ /** v2.12: Ordered round sequence for a loop. Throws StorageCorruptionError
115
+ * on gaps (recoverable) or mixed-format corruption; returns [] for loops
116
+ * with no rounds. Consumed by audit (sequenceComplete) and resume. */
117
+ export declare function eventSequence(store: LoopStore, loopId: string): number[];
118
+ /** v2.12: Validate that a loop's round documents form a contiguous sequence
119
+ * from 1 to max. Legacy loops (no sequence stamps at all) are exempt.
120
+ * Mixed stamping is allowed only monotonically: rounds below the first
121
+ * stamped round are treated as legacy; once stamping begins it must not
122
+ * stop. Throws StorageCorruptionError on violation. */
123
+ export declare function checkRoundSequence(store: LoopStore, loopId: string): {
124
+ complete: boolean;
125
+ legacy: boolean;
126
+ };
45
127
  export declare class FileLoopStore implements LoopStore {
46
128
  readonly root: string;
47
129
  private lockDepth;
@@ -51,16 +133,22 @@ export declare class FileLoopStore implements LoopStore {
51
133
  readSession(loopId: string): LoopSessionDocument | null;
52
134
  writeSession(loopId: string, document: LoopSessionDocument): void;
53
135
  readRound(loopId: string, round: number): LoopRoundDocument | null;
54
- listEntries(loopId?: string): VaultEntry[];
55
- queryLoopEvents(loopId: string): VaultEntry[];
136
+ listRoundSequences(loopId: string): Array<{
137
+ round: number;
138
+ sequence?: number;
139
+ }>;
140
+ listEntries(loopId?: string, opts?: {
141
+ sinceRound?: number;
142
+ }): VaultEntry[];
56
143
  appendEntry(entry: VaultEntry): void;
57
144
  appendEntries(entries: VaultEntry[]): number;
58
- replaceEntries(entries: VaultEntry[]): void;
145
+ migrateLegacyVault(path?: string): LoopStoreMigrationResult;
59
146
  private writeEntry;
60
- private withEventSequence;
61
147
  private loopDir;
148
+ /** Read a JSON document, distinguishing missing from corrupt.
149
+ * ENOENT → null (missing); parse failure → StorageCorruptionError
150
+ * (corrupted) — the runtime never silently repairs storage. */
62
151
  private readJson;
63
- private assertSequence;
64
152
  private atomicWrite;
65
153
  }
66
154
  //# sourceMappingURL=loop-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loop-store.d.ts","sourceRoot":"","sources":["../src/loop-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loop-store.d.ts","sourceRoot":"","sources":["../src/loop-store.ts"],"names":[],"mappings":"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"}