moflo 4.8.22 → 4.8.23

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 (93) hide show
  1. package/.claude/workflow-state.json +1 -1
  2. package/README.md +13 -0
  3. package/package.json +2 -2
  4. package/src/@claude-flow/cli/dist/src/commands/doctor.js +13 -1
  5. package/src/@claude-flow/cli/dist/src/commands/init.js +3 -8
  6. package/src/@claude-flow/cli/package.json +1 -1
  7. package/src/@claude-flow/guidance/dist/adversarial.d.ts +284 -0
  8. package/src/@claude-flow/guidance/dist/adversarial.js +572 -0
  9. package/src/@claude-flow/guidance/dist/analyzer.d.ts +530 -0
  10. package/src/@claude-flow/guidance/dist/analyzer.js +2518 -0
  11. package/src/@claude-flow/guidance/dist/artifacts.d.ts +283 -0
  12. package/src/@claude-flow/guidance/dist/artifacts.js +356 -0
  13. package/src/@claude-flow/guidance/dist/authority.d.ts +290 -0
  14. package/src/@claude-flow/guidance/dist/authority.js +558 -0
  15. package/src/@claude-flow/guidance/dist/capabilities.d.ts +209 -0
  16. package/src/@claude-flow/guidance/dist/capabilities.js +485 -0
  17. package/src/@claude-flow/guidance/dist/coherence.d.ts +233 -0
  18. package/src/@claude-flow/guidance/dist/coherence.js +372 -0
  19. package/src/@claude-flow/guidance/dist/compiler.d.ts +87 -0
  20. package/src/@claude-flow/guidance/dist/compiler.js +419 -0
  21. package/src/@claude-flow/guidance/dist/conformance-kit.d.ts +225 -0
  22. package/src/@claude-flow/guidance/dist/conformance-kit.js +629 -0
  23. package/src/@claude-flow/guidance/dist/continue-gate.d.ts +214 -0
  24. package/src/@claude-flow/guidance/dist/continue-gate.js +353 -0
  25. package/src/@claude-flow/guidance/dist/crypto-utils.d.ts +17 -0
  26. package/src/@claude-flow/guidance/dist/crypto-utils.js +24 -0
  27. package/src/@claude-flow/guidance/dist/evolution.d.ts +282 -0
  28. package/src/@claude-flow/guidance/dist/evolution.js +500 -0
  29. package/src/@claude-flow/guidance/dist/gates.d.ts +79 -0
  30. package/src/@claude-flow/guidance/dist/gates.js +302 -0
  31. package/src/@claude-flow/guidance/dist/gateway.d.ts +206 -0
  32. package/src/@claude-flow/guidance/dist/gateway.js +452 -0
  33. package/src/@claude-flow/guidance/dist/generators.d.ts +153 -0
  34. package/src/@claude-flow/guidance/dist/generators.js +682 -0
  35. package/src/@claude-flow/guidance/dist/headless.d.ts +177 -0
  36. package/src/@claude-flow/guidance/dist/headless.js +342 -0
  37. package/src/@claude-flow/guidance/dist/hooks.d.ts +109 -0
  38. package/src/@claude-flow/guidance/dist/hooks.js +347 -0
  39. package/src/@claude-flow/guidance/dist/index.d.ts +205 -0
  40. package/src/@claude-flow/guidance/dist/index.js +321 -0
  41. package/src/@claude-flow/guidance/dist/ledger.d.ts +162 -0
  42. package/src/@claude-flow/guidance/dist/ledger.js +375 -0
  43. package/src/@claude-flow/guidance/dist/manifest-validator.d.ts +289 -0
  44. package/src/@claude-flow/guidance/dist/manifest-validator.js +838 -0
  45. package/src/@claude-flow/guidance/dist/memory-gate.d.ts +222 -0
  46. package/src/@claude-flow/guidance/dist/memory-gate.js +382 -0
  47. package/src/@claude-flow/guidance/dist/meta-governance.d.ts +265 -0
  48. package/src/@claude-flow/guidance/dist/meta-governance.js +348 -0
  49. package/src/@claude-flow/guidance/dist/optimizer.d.ts +104 -0
  50. package/src/@claude-flow/guidance/dist/optimizer.js +329 -0
  51. package/src/@claude-flow/guidance/dist/persistence.d.ts +189 -0
  52. package/src/@claude-flow/guidance/dist/persistence.js +464 -0
  53. package/src/@claude-flow/guidance/dist/proof.d.ts +185 -0
  54. package/src/@claude-flow/guidance/dist/proof.js +238 -0
  55. package/src/@claude-flow/guidance/dist/retriever.d.ts +116 -0
  56. package/src/@claude-flow/guidance/dist/retriever.js +394 -0
  57. package/src/@claude-flow/guidance/dist/ruvbot-integration.d.ts +370 -0
  58. package/src/@claude-flow/guidance/dist/ruvbot-integration.js +738 -0
  59. package/src/@claude-flow/guidance/dist/temporal.d.ts +426 -0
  60. package/src/@claude-flow/guidance/dist/temporal.js +658 -0
  61. package/src/@claude-flow/guidance/dist/trust.d.ts +283 -0
  62. package/src/@claude-flow/guidance/dist/trust.js +473 -0
  63. package/src/@claude-flow/guidance/dist/truth-anchors.d.ts +276 -0
  64. package/src/@claude-flow/guidance/dist/truth-anchors.js +488 -0
  65. package/src/@claude-flow/guidance/dist/types.d.ts +378 -0
  66. package/src/@claude-flow/guidance/dist/types.js +10 -0
  67. package/src/@claude-flow/guidance/dist/uncertainty.d.ts +372 -0
  68. package/src/@claude-flow/guidance/dist/uncertainty.js +619 -0
  69. package/src/@claude-flow/guidance/dist/wasm-kernel.d.ts +48 -0
  70. package/src/@claude-flow/guidance/dist/wasm-kernel.js +158 -0
  71. package/src/@claude-flow/memory/dist/agent-memory-scope.test.js +7 -4
  72. package/src/@claude-flow/memory/dist/agentdb-backend.d.ts +0 -2
  73. package/src/@claude-flow/memory/dist/agentdb-backend.js +0 -2
  74. package/src/@claude-flow/memory/dist/auto-memory-bridge.test.js +12 -9
  75. package/src/@claude-flow/memory/dist/benchmark.test.js +1 -1
  76. package/src/@claude-flow/memory/dist/controller-registry.test.js +0 -43
  77. package/src/@claude-flow/memory/dist/database-provider.d.ts +2 -2
  78. package/src/@claude-flow/memory/dist/database-provider.js +3 -6
  79. package/src/@claude-flow/memory/dist/database-provider.test.js +3 -1
  80. package/src/@claude-flow/memory/dist/index.d.ts +0 -3
  81. package/src/@claude-flow/memory/dist/index.js +0 -3
  82. package/src/@claude-flow/memory/dist/sqljs-backend.d.ts +3 -4
  83. package/src/@claude-flow/memory/dist/sqljs-backend.js +4 -5
  84. package/src/@claude-flow/shared/dist/core/config/defaults.js +1 -1
  85. package/src/@claude-flow/shared/dist/core/config/loader.js +1 -1
  86. package/src/@claude-flow/shared/dist/core/config/schema.js +1 -1
  87. package/src/@claude-flow/shared/dist/events/event-store.js +19 -3
  88. package/src/@claude-flow/shared/dist/events/event-store.test.js +8 -4
  89. package/src/@claude-flow/shared/dist/hooks/executor.js +7 -4
  90. package/src/@claude-flow/shared/dist/hooks/safety/file-organization.js +1 -1
  91. package/src/@claude-flow/shared/dist/hooks/safety/git-commit.js +3 -3
  92. package/src/@claude-flow/shared/dist/hooks/verify-exports.test.js +6 -6
  93. package/src/@claude-flow/shared/dist/utils/secure-logger.js +1 -1
@@ -0,0 +1,276 @@
1
+ /**
2
+ * Truth Anchor System
3
+ *
4
+ * Immutable, externally-signed facts that anchor the system to reality
5
+ * beyond tool outputs and internal memory.
6
+ *
7
+ * A Truth Anchor is a fact that:
8
+ * - Is immutable once recorded (cannot be overwritten or decayed)
9
+ * - Is externally signed (by a human, hardware sensor, or external authority)
10
+ * - Supersedes any internal belief that contradicts it
11
+ * - Can be referenced but never mutated
12
+ * - Has a verifiable signature chain
13
+ *
14
+ * TruthAnchorStore:
15
+ * - Creates and signs new truth anchors with HMAC-SHA256
16
+ * - Append-only storage (anchors are never mutated after creation)
17
+ * - Retrieval by ID, time range, kind, attester, or tags
18
+ * - Signature verification for individual anchors or the full store
19
+ * - Supersession chain: new anchors can declare they supersede old ones
20
+ * - Export/import for persistence and transfer
21
+ * - Max 50,000 anchors with LRU eviction of expired ones only
22
+ *
23
+ * TruthResolver:
24
+ * - Resolves conflicts between internal beliefs and truth anchors
25
+ * - Memory conflict resolution (truth anchor always wins)
26
+ * - Decision conflict resolution (constrains proposed actions)
27
+ * - Topic-based ground truth retrieval with fuzzy tag matching
28
+ *
29
+ * @module @claude-flow/guidance/truth-anchors
30
+ */
31
+ /**
32
+ * The kind of external source that attested to a truth anchor.
33
+ */
34
+ export type TruthSourceKind = 'human-attestation' | 'hardware-signal' | 'regulatory-input' | 'external-observation' | 'signed-document' | 'consensus-result';
35
+ /**
36
+ * An immutable, externally-signed fact anchored to the system.
37
+ *
38
+ * Once created, a TruthAnchor is never mutated. It can only be
39
+ * superseded by a new anchor that references the old one.
40
+ */
41
+ export interface TruthAnchor {
42
+ /** Unique identifier (UUID v4) */
43
+ id: string;
44
+ /** The kind of external source that attested to this fact */
45
+ kind: TruthSourceKind;
46
+ /** The fact being asserted, in natural language */
47
+ claim: string;
48
+ /** Supporting data or evidence for the claim */
49
+ evidence: string;
50
+ /** Who or what signed this anchor (human ID, sensor ID, authority ID) */
51
+ attesterId: string;
52
+ /** HMAC-SHA256 signature over the canonical anchor content */
53
+ signature: string;
54
+ /** Unix timestamp (ms) when the anchor was created */
55
+ timestamp: number;
56
+ /** Unix timestamp (ms) when the fact became true */
57
+ validFrom: number;
58
+ /** Unix timestamp (ms) when the fact expires, or null for indefinite */
59
+ validUntil: number | null;
60
+ /** IDs of anchors that this anchor supersedes */
61
+ supersedes: string[];
62
+ /** Searchable tags for topic-based retrieval */
63
+ tags: string[];
64
+ /** Arbitrary metadata attached to the anchor */
65
+ metadata: Record<string, unknown>;
66
+ }
67
+ /**
68
+ * Configuration for the TruthAnchorStore.
69
+ */
70
+ export interface TruthAnchorConfig {
71
+ /** HMAC-SHA256 signing key */
72
+ signingKey: string;
73
+ /** Maximum number of anchors to retain (default 50,000) */
74
+ maxAnchors: number;
75
+ }
76
+ /**
77
+ * Parameters for creating a new truth anchor.
78
+ */
79
+ export interface AnchorParams {
80
+ kind: TruthSourceKind;
81
+ claim: string;
82
+ evidence: string;
83
+ attesterId: string;
84
+ validFrom?: number;
85
+ validUntil?: number | null;
86
+ supersedes?: string[];
87
+ tags?: string[];
88
+ metadata?: Record<string, unknown>;
89
+ }
90
+ /**
91
+ * Query options for filtering truth anchors.
92
+ */
93
+ export interface TruthAnchorQuery {
94
+ /** Filter by source kind */
95
+ kind?: TruthSourceKind;
96
+ /** Filter by attester ID */
97
+ attesterId?: string;
98
+ /** Filter by tags (anchor must have at least one matching tag) */
99
+ tags?: string[];
100
+ /** Only return anchors valid at this timestamp */
101
+ validAt?: number;
102
+ }
103
+ /**
104
+ * Result of verifying all anchors in the store.
105
+ */
106
+ export interface VerifyAllResult {
107
+ /** Number of anchors with valid signatures */
108
+ valid: number;
109
+ /** IDs of anchors with invalid signatures */
110
+ invalid: string[];
111
+ }
112
+ /**
113
+ * Result of resolving a conflict between an internal belief and truth anchors.
114
+ */
115
+ export interface ConflictResolution {
116
+ /** Whether a truth anchor overrides the internal belief */
117
+ truthWins: boolean;
118
+ /** The truth anchor that overrides, if any */
119
+ anchor?: TruthAnchor;
120
+ /** Human-readable explanation of the resolution */
121
+ reason: string;
122
+ }
123
+ /**
124
+ * Append-only store for truth anchors.
125
+ *
126
+ * Anchors are immutable once created. The store provides signing,
127
+ * verification, querying, supersession, and capacity management
128
+ * with LRU eviction of expired anchors only.
129
+ */
130
+ export declare class TruthAnchorStore {
131
+ private readonly config;
132
+ private readonly anchors;
133
+ private readonly indexById;
134
+ constructor(config?: Partial<TruthAnchorConfig>);
135
+ /**
136
+ * Create and sign a new truth anchor.
137
+ *
138
+ * The anchor is appended to the store and can never be mutated.
139
+ * If the store exceeds capacity, expired anchors are evicted
140
+ * starting from the oldest.
141
+ */
142
+ anchor(params: AnchorParams): TruthAnchor;
143
+ /**
144
+ * Retrieve a truth anchor by its ID.
145
+ *
146
+ * Returns undefined if the anchor does not exist.
147
+ */
148
+ get(id: string): TruthAnchor | undefined;
149
+ /**
150
+ * Get all anchors that are valid at the given timestamp.
151
+ *
152
+ * An anchor is active when:
153
+ * - `validFrom <= timestamp`
154
+ * - `validUntil` is null (indefinite) or `validUntil > timestamp`
155
+ *
156
+ * Defaults to the current time if no timestamp is provided.
157
+ */
158
+ getActive(timestamp?: number): TruthAnchor[];
159
+ /**
160
+ * Query anchors with optional filters.
161
+ *
162
+ * All provided filters are ANDed together. An anchor must match
163
+ * every specified filter to be included in the result.
164
+ */
165
+ query(opts: TruthAnchorQuery): TruthAnchor[];
166
+ /**
167
+ * Verify the HMAC-SHA256 signature of a single anchor.
168
+ *
169
+ * Recomputes the signature from the anchor's content and compares
170
+ * it to the stored signature. Returns true if they match.
171
+ */
172
+ verify(id: string): boolean;
173
+ /**
174
+ * Verify all anchors in the store.
175
+ *
176
+ * Returns a summary with the count of valid anchors and the
177
+ * IDs of any anchors whose signatures do not match.
178
+ */
179
+ verifyAll(): VerifyAllResult;
180
+ /**
181
+ * Create a new anchor that supersedes an existing one.
182
+ *
183
+ * The old anchor remains in the store (immutable) but the new
184
+ * anchor's `supersedes` array includes the old anchor's ID.
185
+ * This creates a verifiable supersession chain.
186
+ *
187
+ * Throws if the old anchor ID does not exist.
188
+ */
189
+ supersede(oldId: string, params: AnchorParams): TruthAnchor;
190
+ /**
191
+ * Resolve a claim against an internal belief.
192
+ *
193
+ * Searches for active truth anchors whose claim matches the
194
+ * provided claim text. If a matching truth anchor exists and
195
+ * is currently valid, it wins over the internal belief.
196
+ *
197
+ * Returns the truth anchor if it exists, otherwise returns
198
+ * undefined (meaning the internal belief stands).
199
+ */
200
+ resolve(claim: string, _internalBelief: string): TruthAnchor | undefined;
201
+ /**
202
+ * Export all anchors for persistence or transfer.
203
+ *
204
+ * Returns a shallow copy of the anchor array. The individual
205
+ * anchor objects are returned as-is since they are immutable.
206
+ */
207
+ exportAnchors(): TruthAnchor[];
208
+ /**
209
+ * Import anchors from an external source.
210
+ *
211
+ * Imported anchors are appended to the store. Duplicate IDs
212
+ * (anchors already in the store) are silently skipped.
213
+ * Capacity enforcement runs after import.
214
+ */
215
+ importAnchors(anchors: TruthAnchor[]): void;
216
+ /**
217
+ * Get the total number of anchors in the store.
218
+ */
219
+ get size(): number;
220
+ /**
221
+ * Enforce the maximum anchor capacity.
222
+ *
223
+ * Only expired anchors are evicted, starting from the oldest.
224
+ * If no expired anchors can be evicted and the store is still
225
+ * over capacity, the oldest expired anchors are removed first.
226
+ * Active (non-expired) anchors are never evicted.
227
+ */
228
+ private enforceCapacity;
229
+ }
230
+ /**
231
+ * Resolves conflicts between internal system beliefs and externally
232
+ * anchored truth.
233
+ *
234
+ * The fundamental principle: truth anchors always win. If a valid,
235
+ * active truth anchor contradicts an internal belief, the anchor
236
+ * takes precedence.
237
+ */
238
+ export declare class TruthResolver {
239
+ private readonly store;
240
+ constructor(store: TruthAnchorStore);
241
+ /**
242
+ * Check if any active truth anchor contradicts a memory value.
243
+ *
244
+ * Searches by namespace and key as tags, and by the memory value
245
+ * as a claim. If a truth anchor exists that covers the same topic,
246
+ * it wins over the internal memory.
247
+ */
248
+ resolveMemoryConflict(memoryKey: string, memoryValue: string, namespace: string): ConflictResolution;
249
+ /**
250
+ * Check if any active truth anchor constrains a proposed action.
251
+ *
252
+ * Searches for anchors whose claims or tags relate to the proposed
253
+ * action and its context. Returns a conflict resolution indicating
254
+ * whether the action is constrained.
255
+ */
256
+ resolveDecisionConflict(proposedAction: string, context: Record<string, unknown>): ConflictResolution;
257
+ /**
258
+ * Get all active truth anchors relevant to a topic.
259
+ *
260
+ * Uses fuzzy tag matching: a tag matches the topic if either
261
+ * the tag contains the topic or the topic contains the tag
262
+ * (case-insensitive). Also matches against the claim text.
263
+ */
264
+ getGroundTruth(topic: string): TruthAnchor[];
265
+ }
266
+ /**
267
+ * Create a TruthAnchorStore with the given configuration.
268
+ *
269
+ * @param config - Must include `signingKey`. `maxAnchors` defaults to 50,000.
270
+ */
271
+ export declare function createTruthAnchorStore(config?: Partial<TruthAnchorConfig>): TruthAnchorStore;
272
+ /**
273
+ * Create a TruthResolver backed by the given store.
274
+ */
275
+ export declare function createTruthResolver(store: TruthAnchorStore): TruthResolver;
276
+ //# sourceMappingURL=truth-anchors.d.ts.map