@maadb/core 0.13.0 → 0.15.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 (97) hide show
  1. package/README.md +23 -12
  2. package/dist/architect.d.ts.map +1 -1
  3. package/dist/architect.js +6 -0
  4. package/dist/architect.js.map +1 -1
  5. package/dist/cli/commands/history-mode.d.ts +3 -0
  6. package/dist/cli/commands/history-mode.d.ts.map +1 -0
  7. package/dist/cli/commands/history-mode.js +18 -0
  8. package/dist/cli/commands/history-mode.js.map +1 -0
  9. package/dist/cli/index.js +6 -0
  10. package/dist/cli/index.js.map +1 -1
  11. package/dist/engine/audit.d.ts.map +1 -1
  12. package/dist/engine/audit.js +11 -4
  13. package/dist/engine/audit.js.map +1 -1
  14. package/dist/engine/context.d.ts +6 -3
  15. package/dist/engine/context.d.ts.map +1 -1
  16. package/dist/engine/context.js +10 -5
  17. package/dist/engine/context.js.map +1 -1
  18. package/dist/engine/index.d.ts +33 -13
  19. package/dist/engine/index.d.ts.map +1 -1
  20. package/dist/engine/index.js +54 -13
  21. package/dist/engine/index.js.map +1 -1
  22. package/dist/engine/journal.d.ts +14 -1
  23. package/dist/engine/journal.d.ts.map +1 -1
  24. package/dist/engine/journal.js +63 -4
  25. package/dist/engine/journal.js.map +1 -1
  26. package/dist/engine/repairs.js +4 -0
  27. package/dist/engine/repairs.js.map +1 -1
  28. package/dist/engine/types.d.ts +11 -0
  29. package/dist/engine/types.d.ts.map +1 -1
  30. package/dist/engine/types.js.map +1 -1
  31. package/dist/engine/writes.d.ts.map +1 -1
  32. package/dist/engine/writes.js +16 -6
  33. package/dist/engine/writes.js.map +1 -1
  34. package/dist/errors.d.ts +1 -1
  35. package/dist/errors.d.ts.map +1 -1
  36. package/dist/errors.js.map +1 -1
  37. package/dist/git/index.d.ts +1 -1
  38. package/dist/git/index.d.ts.map +1 -1
  39. package/dist/git/index.js +8 -4
  40. package/dist/git/index.js.map +1 -1
  41. package/dist/history/config.d.ts +18 -0
  42. package/dist/history/config.d.ts.map +1 -0
  43. package/dist/history/config.js +109 -0
  44. package/dist/history/config.js.map +1 -0
  45. package/dist/history/controller.d.ts +31 -0
  46. package/dist/history/controller.d.ts.map +1 -0
  47. package/dist/history/controller.js +316 -0
  48. package/dist/history/controller.js.map +1 -0
  49. package/dist/history/types.d.ts +58 -0
  50. package/dist/history/types.d.ts.map +1 -0
  51. package/dist/history/types.js +5 -0
  52. package/dist/history/types.js.map +1 -0
  53. package/dist/instance/config.d.ts +12 -2
  54. package/dist/instance/config.d.ts.map +1 -1
  55. package/dist/instance/config.js +49 -4
  56. package/dist/instance/config.js.map +1 -1
  57. package/dist/instance/pool.d.ts +3 -3
  58. package/dist/instance/pool.d.ts.map +1 -1
  59. package/dist/instance/pool.js +29 -11
  60. package/dist/instance/pool.js.map +1 -1
  61. package/dist/instructions/manifest.d.ts.map +1 -1
  62. package/dist/instructions/manifest.js +4 -0
  63. package/dist/instructions/manifest.js.map +1 -1
  64. package/dist/maad-md.d.ts.map +1 -1
  65. package/dist/maad-md.js +2 -0
  66. package/dist/maad-md.js.map +1 -1
  67. package/dist/mcp/kinds.d.ts.map +1 -1
  68. package/dist/mcp/kinds.js +1 -0
  69. package/dist/mcp/kinds.js.map +1 -1
  70. package/dist/mcp/roles.d.ts.map +1 -1
  71. package/dist/mcp/roles.js +1 -0
  72. package/dist/mcp/roles.js.map +1 -1
  73. package/dist/mcp/server.d.ts.map +1 -1
  74. package/dist/mcp/server.js +2 -0
  75. package/dist/mcp/server.js.map +1 -1
  76. package/dist/mcp/tools/backup.d.ts.map +1 -1
  77. package/dist/mcp/tools/backup.js +7 -1
  78. package/dist/mcp/tools/backup.js.map +1 -1
  79. package/dist/mcp/tools/history-mode.d.ts +27 -0
  80. package/dist/mcp/tools/history-mode.d.ts.map +1 -0
  81. package/dist/mcp/tools/history-mode.js +71 -0
  82. package/dist/mcp/tools/history-mode.js.map +1 -0
  83. package/dist/mcp/tools/maintain.d.ts.map +1 -1
  84. package/dist/mcp/tools/maintain.js +5 -2
  85. package/dist/mcp/tools/maintain.js.map +1 -1
  86. package/dist/skill-files.d.ts.map +1 -1
  87. package/dist/skill-files.js +8 -0
  88. package/dist/skill-files.js.map +1 -1
  89. package/dist/skills/corpus-explorer.d.ts +2 -0
  90. package/dist/skills/corpus-explorer.d.ts.map +1 -0
  91. package/dist/skills/corpus-explorer.js +220 -0
  92. package/dist/skills/corpus-explorer.js.map +1 -0
  93. package/dist/skills/graph-ontology.d.ts +2 -0
  94. package/dist/skills/graph-ontology.d.ts.map +1 -0
  95. package/dist/skills/graph-ontology.js +252 -0
  96. package/dist/skills/graph-ontology.js.map +1 -0
  97. package/package.json +3 -3
@@ -0,0 +1,31 @@
1
+ import type { CommitOptions, CommitOutcome, GitLayer } from '../git/index.js';
2
+ import type { OperationJournal } from '../engine/journal.js';
3
+ import type { HistoryFlushResult, HistoryFlushTrigger, HistoryHealthState, HistoryRuntime, ResolvedHistoryConfig } from './types.js';
4
+ export declare class HistoryController implements HistoryRuntime {
5
+ readonly config: ResolvedHistoryConfig;
6
+ private readonly gitLayer;
7
+ private readonly journal;
8
+ private pending;
9
+ private timer;
10
+ private flushTail;
11
+ private lastSuccessfulFlush;
12
+ private lastFlushError;
13
+ private closed;
14
+ private serialize;
15
+ constructor(config: ResolvedHistoryConfig, gitLayer: GitLayer | null, journal: OperationJournal, serialize?: <T>(op: string, fn: () => Promise<T>) => Promise<T>);
16
+ bindSerializer(serialize: <T>(op: string, fn: () => Promise<T>) => Promise<T>): void;
17
+ recover(): Promise<HistoryFlushResult | null>;
18
+ commit(options: CommitOptions): Promise<CommitOutcome>;
19
+ flush(trigger: HistoryFlushTrigger): Promise<HistoryFlushResult>;
20
+ health(): HistoryHealthState;
21
+ close(): Promise<void>;
22
+ private flushNow;
23
+ private commitGit;
24
+ private ensureSnapshotTag;
25
+ private hydrateJournalPending;
26
+ private pendingWriteCount;
27
+ private noteFailure;
28
+ private armTimer;
29
+ private clearTimer;
30
+ }
31
+ //# sourceMappingURL=controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/history/controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE9E,OAAO,KAAK,EAAgB,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAwCpB,qBAAa,iBAAkB,YAAW,cAAc;IACtD,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IAEvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,mBAAmB,CAAuB;IAClD,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAsD;gBAGrE,MAAM,EAAE,qBAAqB,EAC7B,QAAQ,EAAE,QAAQ,GAAG,IAAI,EACzB,OAAO,EAAE,gBAAgB,EACzB,SAAS,GAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAA2B;IAQ1F,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAI9E,OAAO,IAAI,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAe7C,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAqC5D,KAAK,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAqBhE,MAAM,IAAI,kBAAkB;IAYtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAyBd,QAAQ;YAqFR,SAAS;YAWT,iBAAiB;IAgB/B,OAAO,CAAC,qBAAqB;IAoB7B,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,UAAU;CAKnB"}
@@ -0,0 +1,316 @@
1
+ import { commitSha, docId, docType } from '../types.js';
2
+ const CLOSE_TIMEOUT_MS = 5_000;
3
+ function unique(values) {
4
+ return [...new Set(values)];
5
+ }
6
+ function snapshotTagName(now = new Date()) {
7
+ return `maad-snapshot-${now.toISOString().replace(/[:.]/g, '-').replace('T', '-').replace('Z', '')}`;
8
+ }
9
+ function recoveredCommit(entries) {
10
+ const first = entries[0];
11
+ return {
12
+ action: first.op,
13
+ docId: docId(first.docId),
14
+ docType: docType('unknown'),
15
+ detail: `recovery:${entries.length}`,
16
+ summary: `Recovered ${entries.length} indexed write${entries.length === 1 ? '' : 's'}`,
17
+ files: unique(entries.flatMap(entry => entry.files ?? [entry.filePath])),
18
+ };
19
+ }
20
+ function combinePending(pending) {
21
+ const first = pending[0].options;
22
+ const logicalWrites = unique(pending.flatMap(item => item.journalIds)).length || pending.length;
23
+ return {
24
+ ...first,
25
+ detail: pending.length === 1 ? first.detail : `batch:${logicalWrites}`,
26
+ summary: pending.length === 1 ? first.summary : `Flushed ${logicalWrites} pending writes`,
27
+ files: unique(pending.flatMap(item => item.options.files)),
28
+ };
29
+ }
30
+ export class HistoryController {
31
+ config;
32
+ gitLayer;
33
+ journal;
34
+ pending = [];
35
+ timer = null;
36
+ flushTail = Promise.resolve();
37
+ lastSuccessfulFlush = null;
38
+ lastFlushError = null;
39
+ closed = false;
40
+ serialize;
41
+ constructor(config, gitLayer, journal, serialize = async (_op, fn) => fn()) {
42
+ this.config = config;
43
+ this.gitLayer = gitLayer;
44
+ this.journal = journal;
45
+ this.serialize = serialize;
46
+ }
47
+ bindSerializer(serialize) {
48
+ this.serialize = serialize;
49
+ }
50
+ async recover() {
51
+ const indexed = this.journal.getIndexedPending();
52
+ if (indexed.length === 0)
53
+ return null;
54
+ if (this.config.effectiveMode === 'feed') {
55
+ this.journal.completeMany(indexed.map(entry => entry.id));
56
+ this.lastSuccessfulFlush = new Date().toISOString();
57
+ return { trigger: 'recovery', pendingWrites: 0, outcome: { status: 'noop' } };
58
+ }
59
+ if (this.config.effectiveMode === 'read')
60
+ return null;
61
+ this.hydrateJournalPending(indexed);
62
+ return this.serialize('history:recovery', () => this.flush('recovery'));
63
+ }
64
+ async commit(options) {
65
+ if (this.config.effectiveMode === 'read') {
66
+ return { status: 'failed', code: 'PROJECT_READ_ONLY', message: 'Project history_mode is read' };
67
+ }
68
+ const entries = this.journal.findIndexedByFiles(options.files);
69
+ const journalIds = entries.map(entry => entry.id);
70
+ this.journal.bindCommit(journalIds, options);
71
+ if (this.config.effectiveMode === 'feed') {
72
+ this.journal.completeMany(journalIds);
73
+ this.lastSuccessfulFlush = new Date().toISOString();
74
+ this.lastFlushError = null;
75
+ return { status: 'noop' };
76
+ }
77
+ if (this.config.effectiveMode === 'audit') {
78
+ const outcome = await this.commitGit(options);
79
+ if (outcome.status !== 'failed') {
80
+ this.journal.completeMany(journalIds);
81
+ this.lastSuccessfulFlush = new Date().toISOString();
82
+ this.lastFlushError = null;
83
+ }
84
+ else {
85
+ this.pending.push({ options, journalIds });
86
+ }
87
+ return outcome;
88
+ }
89
+ this.pending.push({ options, journalIds });
90
+ this.armTimer();
91
+ const threshold = this.config.options.max_writes;
92
+ if (threshold !== undefined && this.pendingWriteCount() >= threshold) {
93
+ return (await this.flush('threshold')).outcome;
94
+ }
95
+ return { status: 'noop' };
96
+ }
97
+ flush(trigger) {
98
+ let resolveResult;
99
+ const result = new Promise(resolve => { resolveResult = resolve; });
100
+ this.flushTail = this.flushTail
101
+ .catch(() => undefined)
102
+ .then(async () => {
103
+ try {
104
+ resolveResult(await this.flushNow(trigger));
105
+ }
106
+ catch (error) {
107
+ const outcome = {
108
+ status: 'failed',
109
+ code: 'HISTORY_FLUSH_FAILED',
110
+ message: error instanceof Error ? error.message : String(error),
111
+ };
112
+ this.noteFailure(trigger, outcome);
113
+ resolveResult({ trigger, pendingWrites: this.pendingWriteCount(), outcome });
114
+ }
115
+ });
116
+ return result;
117
+ }
118
+ health() {
119
+ return {
120
+ effectiveMode: this.config.effectiveMode,
121
+ configuredMode: this.config.configuredMode,
122
+ modeSource: this.config.modeSource,
123
+ pendingWrites: this.pendingWriteCount(),
124
+ lastSuccessfulFlush: this.lastSuccessfulFlush,
125
+ lastFlushError: this.lastFlushError,
126
+ advisories: [...this.config.advisories],
127
+ };
128
+ }
129
+ async close() {
130
+ if (this.closed)
131
+ return;
132
+ this.closed = true;
133
+ this.clearTimer();
134
+ if (this.config.effectiveMode === 'feed' || this.config.effectiveMode === 'read')
135
+ return;
136
+ let timeout = null;
137
+ await Promise.race([
138
+ this.serialize('history:shutdown', () => this.flush('shutdown')).then(() => undefined),
139
+ new Promise(resolve => {
140
+ timeout = setTimeout(() => {
141
+ this.lastFlushError = {
142
+ at: new Date().toISOString(),
143
+ code: 'HISTORY_FLUSH_TIMEOUT',
144
+ message: `History shutdown flush exceeded ${CLOSE_TIMEOUT_MS}ms`,
145
+ trigger: 'shutdown',
146
+ };
147
+ resolve();
148
+ }, CLOSE_TIMEOUT_MS);
149
+ timeout.unref?.();
150
+ }),
151
+ ]);
152
+ if (timeout)
153
+ clearTimeout(timeout);
154
+ }
155
+ async flushNow(trigger) {
156
+ this.clearTimer();
157
+ if (this.config.effectiveMode === 'feed' || this.config.effectiveMode === 'read') {
158
+ const indexed = this.journal.getIndexedPending();
159
+ if (this.config.effectiveMode === 'feed')
160
+ this.journal.completeMany(indexed.map(entry => entry.id));
161
+ this.lastSuccessfulFlush = new Date().toISOString();
162
+ return { trigger, pendingWrites: this.pendingWriteCount(), outcome: { status: 'noop' } };
163
+ }
164
+ this.hydrateJournalPending(this.journal.getIndexedPending());
165
+ if (this.pending.length === 0) {
166
+ this.lastSuccessfulFlush = new Date().toISOString();
167
+ return { trigger, pendingWrites: 0, outcome: { status: 'noop' } };
168
+ }
169
+ const boundaryEntry = this.journal.getIndexedPending()
170
+ .find(entry => entry.gitBoundarySha && entry.snapshotTag);
171
+ if (this.config.effectiveMode === 'snapshot' && boundaryEntry?.gitBoundarySha && boundaryEntry.snapshotTag) {
172
+ const boundaryIds = this.journal.getIndexedPending()
173
+ .filter(entry => entry.gitBoundarySha === boundaryEntry.gitBoundarySha && entry.snapshotTag === boundaryEntry.snapshotTag)
174
+ .map(entry => entry.id);
175
+ const boundaryIdSet = new Set(boundaryIds);
176
+ const outcome = { status: 'committed', sha: commitSha(boundaryEntry.gitBoundarySha) };
177
+ try {
178
+ await this.ensureSnapshotTag(boundaryEntry.snapshotTag, boundaryEntry.gitBoundarySha);
179
+ }
180
+ catch (error) {
181
+ const failed = {
182
+ status: 'failed',
183
+ code: 'GIT_TAG_FAILED',
184
+ message: `snapshot tag failed: ${error instanceof Error ? error.message : String(error)}`,
185
+ };
186
+ this.noteFailure(trigger, failed);
187
+ this.armTimer();
188
+ return { trigger, pendingWrites: this.pendingWriteCount(), outcome: failed };
189
+ }
190
+ this.journal.completeMany(boundaryIds);
191
+ this.pending = this.pending.flatMap(item => {
192
+ const remaining = item.journalIds.filter(id => !boundaryIdSet.has(id));
193
+ return remaining.length === 0 ? [] : [{ ...item, journalIds: remaining }];
194
+ });
195
+ this.lastSuccessfulFlush = new Date().toISOString();
196
+ this.lastFlushError = null;
197
+ if (this.pending.length > 0)
198
+ return this.flushNow(trigger);
199
+ return { trigger, pendingWrites: this.pendingWriteCount(), outcome };
200
+ }
201
+ const flushing = this.pending;
202
+ this.pending = [];
203
+ const journalIds = unique(flushing.flatMap(item => item.journalIds));
204
+ let outcome;
205
+ outcome = await this.commitGit(combinePending(flushing));
206
+ if (outcome.status === 'failed') {
207
+ this.pending.unshift(...flushing);
208
+ this.noteFailure(trigger, outcome);
209
+ this.armTimer();
210
+ return { trigger, pendingWrites: this.pendingWriteCount(), outcome };
211
+ }
212
+ if (this.config.effectiveMode === 'snapshot' && outcome.status === 'committed') {
213
+ const tag = snapshotTagName();
214
+ this.journal.recordSnapshotBoundary(journalIds, outcome.sha, tag);
215
+ try {
216
+ await this.ensureSnapshotTag(tag, outcome.sha);
217
+ }
218
+ catch (error) {
219
+ const failed = {
220
+ status: 'failed',
221
+ code: 'GIT_TAG_FAILED',
222
+ message: `snapshot tag failed: ${error instanceof Error ? error.message : String(error)}`,
223
+ };
224
+ this.pending.unshift(...flushing);
225
+ this.noteFailure(trigger, failed);
226
+ this.armTimer();
227
+ return { trigger, pendingWrites: this.pendingWriteCount(), outcome: failed };
228
+ }
229
+ }
230
+ this.journal.completeMany(journalIds);
231
+ this.lastSuccessfulFlush = new Date().toISOString();
232
+ this.lastFlushError = null;
233
+ if (this.pending.length > 0)
234
+ this.armTimer();
235
+ return { trigger, pendingWrites: this.pendingWriteCount(), outcome };
236
+ }
237
+ async commitGit(options) {
238
+ if (!this.gitLayer) {
239
+ return {
240
+ status: 'failed',
241
+ code: 'GIT_NOT_INITIALIZED',
242
+ message: `history_mode ${this.config.effectiveMode} requires Git`,
243
+ };
244
+ }
245
+ return this.gitLayer.commit(options);
246
+ }
247
+ async ensureSnapshotTag(tag, sha) {
248
+ const existing = await this.gitLayer.listTagsByPrefix(tag);
249
+ const exact = existing.find(candidate => candidate.tag === tag);
250
+ if (exact) {
251
+ if (exact.sha === sha)
252
+ return;
253
+ throw new Error(`snapshot tag ${tag} already points at ${exact.sha || 'a non-commit object'}`);
254
+ }
255
+ try {
256
+ await this.gitLayer.addAnnotatedTag(tag, `MAADB history snapshot at ${sha}`, sha);
257
+ }
258
+ catch (error) {
259
+ const after = await this.gitLayer.listTagsByPrefix(tag);
260
+ if (after.some(candidate => candidate.tag === tag && candidate.sha === sha))
261
+ return;
262
+ throw error;
263
+ }
264
+ }
265
+ hydrateJournalPending(entries) {
266
+ const queuedIds = new Set(this.pending.flatMap(item => item.journalIds));
267
+ const missing = entries.filter(entry => !queuedIds.has(entry.id));
268
+ if (missing.length === 0)
269
+ return;
270
+ const groups = new Map();
271
+ for (const entry of missing) {
272
+ const key = entry.commit ? JSON.stringify(entry.commit) : '__recovery__';
273
+ const group = groups.get(key) ?? [];
274
+ group.push(entry);
275
+ groups.set(key, group);
276
+ }
277
+ for (const group of groups.values()) {
278
+ this.pending.push({
279
+ options: group[0]?.commit ?? recoveredCommit(group),
280
+ journalIds: group.map(entry => entry.id),
281
+ });
282
+ }
283
+ }
284
+ pendingWriteCount() {
285
+ const journalCount = this.journal.getIndexedPending().length;
286
+ const unjournaled = this.pending.filter(item => item.journalIds.length === 0).length;
287
+ return journalCount + unjournaled;
288
+ }
289
+ noteFailure(trigger, outcome) {
290
+ this.lastFlushError = {
291
+ at: new Date().toISOString(),
292
+ code: outcome.code,
293
+ message: outcome.message,
294
+ trigger,
295
+ };
296
+ }
297
+ armTimer() {
298
+ if (this.closed || this.timer || this.pendingWriteCount() === 0)
299
+ return;
300
+ const delay = this.config.options.max_delay_ms;
301
+ if (delay === undefined)
302
+ return;
303
+ this.timer = setTimeout(() => {
304
+ this.timer = null;
305
+ void this.serialize('history:timer', () => this.flush('timer'));
306
+ }, delay);
307
+ this.timer.unref?.();
308
+ }
309
+ clearTimer() {
310
+ if (!this.timer)
311
+ return;
312
+ clearTimeout(this.timer);
313
+ this.timer = null;
314
+ }
315
+ }
316
+ //# sourceMappingURL=controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/history/controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import type { CommitOptions, CommitOutcome } from '../git/index.js';
2
+ export declare const HISTORY_MODES: readonly ["audit", "feed", "read", "batch", "snapshot"];
3
+ export type HistoryMode = (typeof HISTORY_MODES)[number];
4
+ /** How the effective mode was selected for a project. */
5
+ export type HistoryModeSource = 'project' | 'environment' | 'inferred';
6
+ /** Public `history_options` shape from instance.yaml. */
7
+ export interface HistoryOptions {
8
+ max_writes?: number;
9
+ max_delay_ms?: number;
10
+ }
11
+ export interface HistoryAdvisory {
12
+ code: 'HISTORY_MODE_INFERRED';
13
+ message: string;
14
+ }
15
+ /** Fully resolved history configuration passed from the pool to the engine. */
16
+ export interface ResolvedHistoryConfig {
17
+ effectiveMode: HistoryMode;
18
+ /** The project-level `history_mode`, excluding environment defaults. */
19
+ configuredMode: HistoryMode | null;
20
+ modeSource: HistoryModeSource;
21
+ options: HistoryOptions;
22
+ advisories: HistoryAdvisory[];
23
+ }
24
+ export type HistoryFlushTrigger = 'threshold' | 'timer' | 'explicit' | 'shutdown' | 'recovery' | 'snapshot';
25
+ export interface HistoryFlushError {
26
+ at: string;
27
+ code: string;
28
+ message: string;
29
+ trigger: HistoryFlushTrigger;
30
+ }
31
+ /** Stable history portion of engine health. */
32
+ export interface HistoryHealthState {
33
+ effectiveMode: HistoryMode;
34
+ configuredMode: HistoryMode | null;
35
+ modeSource: HistoryModeSource;
36
+ pendingWrites: number;
37
+ lastSuccessfulFlush: string | null;
38
+ lastFlushError: HistoryFlushError | null;
39
+ advisories: HistoryAdvisory[];
40
+ }
41
+ export interface HistoryFlushResult {
42
+ trigger: HistoryFlushTrigger;
43
+ pendingWrites: number;
44
+ outcome: CommitOutcome;
45
+ }
46
+ /**
47
+ * Engine-facing seam implemented by the history runtime. Keeping this on the
48
+ * context lets write paths delegate commit policy without knowing whether the
49
+ * effective mode commits immediately, batches, or disables Git.
50
+ */
51
+ export interface HistoryRuntime {
52
+ readonly config: ResolvedHistoryConfig;
53
+ commit(options: CommitOptions): Promise<CommitOutcome>;
54
+ flush(trigger: HistoryFlushTrigger): Promise<HistoryFlushResult>;
55
+ health(): HistoryHealthState;
56
+ close(): Promise<void>;
57
+ }
58
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/history/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEpE,eAAO,MAAM,aAAa,yDAA0D,CAAC;AAErF,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,yDAAyD;AACzD,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,aAAa,GAAG,UAAU,CAAC;AAEvE,yDAAyD;AACzD,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,uBAAuB,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,+EAA+E;AAC/E,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,WAAW,CAAC;IAC3B,wEAAwE;IACxE,cAAc,EAAE,WAAW,GAAG,IAAI,CAAC;IACnC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,OAAO,EAAE,cAAc,CAAC;IACxB,UAAU,EAAE,eAAe,EAAE,CAAC;CAC/B;AAED,MAAM,MAAM,mBAAmB,GAC3B,WAAW,GACX,OAAO,GACP,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,CAAC;AAEf,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,mBAAmB,CAAC;CAC9B;AAED,+CAA+C;AAC/C,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,WAAW,CAAC;IAC3B,cAAc,EAAE,WAAW,GAAG,IAAI,CAAC;IACnC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,cAAc,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACzC,UAAU,EAAE,eAAe,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,mBAAmB,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,aAAa,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IACvC,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACvD,KAAK,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACjE,MAAM,IAAI,kBAAkB,CAAC;IAC7B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
@@ -0,0 +1,5 @@
1
+ // ============================================================================
2
+ // History Modes - shared configuration and runtime contracts
3
+ // ============================================================================
4
+ export const HISTORY_MODES = ['audit', 'feed', 'read', 'batch', 'snapshot'];
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/history/types.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,6DAA6D;AAC7D,+EAA+E;AAI/E,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAU,CAAC"}
@@ -1,10 +1,18 @@
1
1
  import { type Result } from '../errors.js';
2
2
  import { type Role } from '../mcp/roles.js';
3
+ import type { HistoryAdvisory, HistoryMode, HistoryModeSource, HistoryOptions, ResolvedHistoryConfig } from '../history/types.js';
3
4
  export interface ProjectConfig {
4
5
  name: string;
5
6
  path: string;
6
7
  role: Role;
7
8
  description?: string;
9
+ /** Effective mode after project/env/inference precedence. */
10
+ historyMode?: HistoryMode;
11
+ /** Project-level mode only; null when env/default inference selected it. */
12
+ configuredHistoryMode?: HistoryMode | null;
13
+ historyModeSource?: HistoryModeSource;
14
+ historyOptions?: HistoryOptions;
15
+ historyAdvisories?: HistoryAdvisory[];
8
16
  }
9
17
  export interface InstanceConfig {
10
18
  name: string;
@@ -12,8 +20,10 @@ export interface InstanceConfig {
12
20
  source: 'file' | 'synthetic';
13
21
  configPath?: string;
14
22
  }
15
- export declare function loadInstance(configPath: string): Promise<Result<InstanceConfig>>;
16
- export declare function validateInstance(data: Record<string, unknown>, configPath?: string): Result<InstanceConfig>;
23
+ export declare function loadInstance(configPath: string, env?: NodeJS.ProcessEnv): Promise<Result<InstanceConfig>>;
24
+ export declare function validateInstance(data: Record<string, unknown>, configPath?: string, env?: NodeJS.ProcessEnv): Result<InstanceConfig>;
17
25
  export declare function synthesizeLegacyInstance(projectPath: string, role: Role): InstanceConfig;
26
+ export declare function applyResolvedHistory(project: ProjectConfig, history: ResolvedHistoryConfig): void;
27
+ export declare function projectHistoryConfig(project: ProjectConfig, env?: NodeJS.ProcessEnv): Result<ResolvedHistoryConfig>;
18
28
  export declare function getProject(instance: InstanceConfig, name: string): ProjectConfig | undefined;
19
29
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/instance/config.ts"],"names":[],"mappings":"AAYA,OAAO,EAAiC,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAa,KAAK,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAID,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CA4BtF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,CAuD3G;AAKD,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,cAAc,CAQxF;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAE5F"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/instance/config.ts"],"names":[],"mappings":"AAYA,OAAO,EAAiC,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAa,KAAK,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,4EAA4E;IAC5E,qBAAqB,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3C,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,iBAAiB,CAAC,EAAE,eAAe,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAID,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAClB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CA4BjC;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,UAAU,CAAC,EAAE,MAAM,EACnB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAAC,cAAc,CAAC,CA6DxB;AAKD,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,IAAI,GACT,cAAc,CAahB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAMjG;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,aAAa,EACtB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAAC,qBAAqB,CAAC,CAuC/B;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAE5F"}
@@ -11,8 +11,9 @@ import path from 'node:path';
11
11
  import { parseMatter } from '../parser/matter.js';
12
12
  import { ok, err, singleErr, maadError } from '../errors.js';
13
13
  import { parseRole } from '../mcp/roles.js';
14
+ import { resolveHistoryConfig } from '../history/config.js';
14
15
  const VALID_PROJECT_NAME = /^[a-z][a-z0-9_-]*$/;
15
- export async function loadInstance(configPath) {
16
+ export async function loadInstance(configPath, env = process.env) {
16
17
  const resolved = path.resolve(configPath);
17
18
  if (!existsSync(resolved)) {
18
19
  return singleErr('INSTANCE_CONFIG_NOT_FOUND', `Instance config not found: ${resolved}`);
@@ -38,9 +39,9 @@ export async function loadInstance(configPath) {
38
39
  const message = e instanceof Error ? e.message : 'Unknown parse error';
39
40
  return singleErr('PARSE_ERROR', `Failed to parse instance YAML: ${message}`);
40
41
  }
41
- return validateInstance(data, resolved);
42
+ return validateInstance(data, resolved, env);
42
43
  }
43
- export function validateInstance(data, configPath) {
44
+ export function validateInstance(data, configPath, env = process.env) {
44
45
  const errors = [];
45
46
  const configDir = configPath ? path.dirname(configPath) : process.cwd();
46
47
  if (typeof data.name !== 'string' || data.name.length === 0) {
@@ -80,6 +81,12 @@ export function validateInstance(data, configPath) {
80
81
  const project = { name: pname, path: absPath, role };
81
82
  if (typeof raw.description === 'string')
82
83
  project.description = raw.description;
84
+ const history = resolveHistoryConfig(raw, absPath, env, where);
85
+ if (!history.ok) {
86
+ errors.push(...history.errors);
87
+ continue;
88
+ }
89
+ applyResolvedHistory(project, history.value);
83
90
  projects.push(project);
84
91
  }
85
92
  if (errors.length > 0)
@@ -95,12 +102,50 @@ export function validateInstance(data, configPath) {
95
102
  export function synthesizeLegacyInstance(projectPath, role) {
96
103
  const absPath = path.resolve(projectPath);
97
104
  const basename = path.basename(absPath).toLowerCase().replace(/[^a-z0-9_-]/g, '-') || 'default';
105
+ const project = { name: 'default', path: absPath, role };
106
+ const history = resolveHistoryConfig({}, absPath, process.env, 'projects[0]');
107
+ // Keep this legacy helper non-throwing. EnginePool re-resolves and returns a
108
+ // Result error if an invalid environment default prevented resolution here.
109
+ if (history.ok)
110
+ applyResolvedHistory(project, history.value);
98
111
  return {
99
112
  name: `${basename}-legacy`,
100
- projects: [{ name: 'default', path: absPath, role }],
113
+ projects: [project],
101
114
  source: 'synthetic',
102
115
  };
103
116
  }
117
+ export function applyResolvedHistory(project, history) {
118
+ project.historyMode = history.effectiveMode;
119
+ project.configuredHistoryMode = history.configuredMode;
120
+ project.historyModeSource = history.modeSource;
121
+ project.historyOptions = { ...history.options };
122
+ project.historyAdvisories = [...history.advisories];
123
+ }
124
+ export function projectHistoryConfig(project, env = process.env) {
125
+ if (project.historyMode !== undefined
126
+ && project.configuredHistoryMode !== undefined
127
+ && project.historyModeSource !== undefined
128
+ && project.historyOptions !== undefined
129
+ && project.historyAdvisories !== undefined) {
130
+ if ((project.historyMode === 'audit' || project.historyMode === 'batch' || project.historyMode === 'snapshot')
131
+ && !existsSync(path.join(project.path, '.git'))) {
132
+ return singleErr('GIT_NOT_INITIALIZED', `history_mode ${project.historyMode} requires a Git repository at the project root`, undefined, { historyMode: project.historyMode, modeSource: project.historyModeSource });
133
+ }
134
+ return ok({
135
+ effectiveMode: project.historyMode,
136
+ configuredMode: project.configuredHistoryMode,
137
+ modeSource: project.historyModeSource,
138
+ options: { ...project.historyOptions },
139
+ advisories: [...project.historyAdvisories],
140
+ });
141
+ }
142
+ return resolveHistoryConfig({
143
+ ...(project.configuredHistoryMode !== undefined && project.configuredHistoryMode !== null
144
+ ? { history_mode: project.configuredHistoryMode }
145
+ : {}),
146
+ ...(project.historyOptions !== undefined ? { history_options: project.historyOptions } : {}),
147
+ }, project.path, env, `project "${project.name}"`);
148
+ }
104
149
  export function getProject(instance, name) {
105
150
  return instance.projects.find((p) => p.name === name);
106
151
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/instance/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/instance/config.ts"],"names":[],"mappings":"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"}
@@ -135,9 +135,9 @@ export declare class EnginePool {
135
135
  * Must be called between `tryBeginReload` and `endReload` — does not manage
136
136
  * the reload slot itself.
137
137
  *
138
- * Mutations (same name, different path or role) fail the whole reload with
139
- * INSTANCE_MUTATION_UNSUPPORTED — no partial apply. The 0.9.0 eviction
140
- * policy unlocks safe in-place project mutations.
138
+ * Mutations (same name, different path, role, effective history mode, or
139
+ * history thresholds) fail the whole reload with
140
+ * INSTANCE_MUTATION_UNSUPPORTED — no partial apply.
141
141
  */
142
142
  applyDiff(newInstance: InstanceConfig): Promise<Result<InstanceDiff>>;
143
143
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../src/instance/pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../src/instance/pool.ts"],"names":[],"mappings":"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"}