@unson/brainbase-mcp 0.21.2 → 0.22.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 (37) hide show
  1. package/dist/local-web-fetch-bridge.js +1 -1
  2. package/dist/local-web-host.d.ts +59 -0
  3. package/dist/local-web-host.js +171 -4
  4. package/dist/meeting-minutes-http.d.ts +22 -0
  5. package/dist/meeting-minutes-http.js +252 -0
  6. package/dist/meeting-minutes-lineage-adapters.d.ts +157 -0
  7. package/dist/meeting-minutes-lineage-adapters.js +410 -0
  8. package/dist/meeting-minutes-lineage-http.d.ts +20 -0
  9. package/dist/meeting-minutes-lineage-http.js +221 -0
  10. package/dist/meeting-minutes-lineage-lifecycle.d.ts +58 -0
  11. package/dist/meeting-minutes-lineage-lifecycle.js +146 -0
  12. package/dist/meeting-minutes-lineage.d.ts +307 -0
  13. package/dist/meeting-minutes-lineage.js +1030 -0
  14. package/dist/meeting-minutes-storage-controller.d.ts +182 -0
  15. package/dist/meeting-minutes-storage-controller.js +366 -0
  16. package/dist/meeting-minutes-storage-http.d.ts +25 -0
  17. package/dist/meeting-minutes-storage-http.js +312 -0
  18. package/dist/meeting-minutes-storage.d.ts +169 -0
  19. package/dist/meeting-minutes-storage.js +402 -0
  20. package/dist/meeting-minutes.d.ts +223 -0
  21. package/dist/meeting-minutes.js +1172 -0
  22. package/package.json +46 -3
  23. package/ui/brainbase-tokens.css +35 -35
  24. package/ui/local-web-shell.css +20 -17
  25. package/ui/local-web-shell.js +34 -1
  26. package/ui/meeting-minutes-lineage-http.js +247 -0
  27. package/ui/meeting-minutes-lineage.css +177 -0
  28. package/ui/meeting-minutes-lineage.js +485 -0
  29. package/ui/meeting-minutes-storage.css +170 -0
  30. package/ui/meeting-minutes-storage.js +388 -0
  31. package/ui/meeting-minutes.css +215 -0
  32. package/ui/meeting-minutes.js +622 -0
  33. package/ui/world/world-district.js +119 -11
  34. package/ui/world/world-placement.js +103 -0
  35. package/ui/world/world-view.css +38 -0
  36. package/ui/world/world-view.js +65 -2
  37. package/ui/world/world-work-rail.js +34 -0
@@ -0,0 +1,307 @@
1
+ /**
2
+ * The minutes lineage ledger stores references and lifecycle events only.
3
+ * Meeting body content, judgment state, Task state, and execution receipts
4
+ * remain owned by their existing providers.
5
+ */
6
+ export declare const MEETING_MINUTES_LINEAGE_CONTRACT_VERSION: "0.1.0";
7
+ export declare const MEETING_MINUTES_LINEAGE_CATALOG_VERSION: 1;
8
+ export declare const MEETING_MINUTES_LINEAGE_SIDECAR: "evidence/meeting-minutes-lineage.json";
9
+ export type MinutesLineageCandidateKind = 'judgment' | 'task';
10
+ export type MinutesLineageEpistemicStatus = 'confirmed' | 'inferred';
11
+ export type MinutesLineageConfirmationStatus = 'unconfirmed' | 'confirmed';
12
+ export type MinutesLineageAdoptionStatus = 'not_adopted' | 'adopted';
13
+ export type MinutesLineageExecutionStatus = 'unrecorded' | 'actual';
14
+ export type MinutesLineageResultStatus = 'unrecorded' | 'accepted';
15
+ export type MinutesLineageReviewStatus = 'clear' | 'review_required';
16
+ export interface MinutesLineageAccess {
17
+ readonly principal: string;
18
+ readonly [key: string]: unknown;
19
+ }
20
+ export interface MinutesLineageActor {
21
+ readonly type: 'person' | 'agent' | 'service' | 'system';
22
+ readonly id: string;
23
+ }
24
+ /**
25
+ * A source-owned, exact minutes reference. `contentDigest: null` preserves a
26
+ * source that did not record a digest; the lineage layer never calculates a
27
+ * replacement digest and labels it as source evidence.
28
+ */
29
+ export interface MinutesVersionReference {
30
+ readonly meetingId: string;
31
+ readonly minutesId: string;
32
+ readonly versionId: string;
33
+ readonly contentDigest: string | null;
34
+ readonly locator: unknown;
35
+ readonly provenance: MinutesProvenance;
36
+ }
37
+ export interface MinutesProvenance {
38
+ readonly providerKind: string;
39
+ readonly providerId: string;
40
+ readonly revision?: string;
41
+ readonly digest?: string;
42
+ }
43
+ export interface MinutesVersionRead {
44
+ readonly reference: MinutesVersionReference;
45
+ }
46
+ /** The native minutes owner must enforce its current ACL before returning. */
47
+ export interface MinutesVersionPort {
48
+ readExact(reference: MinutesVersionReference, access: MinutesLineageAccess): Promise<MinutesVersionRead | null>;
49
+ }
50
+ export interface JudgmentTargetReference {
51
+ readonly kind: 'judgment';
52
+ readonly id: string;
53
+ readonly revision: string;
54
+ readonly digest: string;
55
+ }
56
+ export interface TaskTargetReference {
57
+ readonly kind: 'task';
58
+ readonly id: string;
59
+ readonly version: number;
60
+ readonly digest?: string;
61
+ }
62
+ export type MinutesLineageTargetReference = JudgmentTargetReference | TaskTargetReference;
63
+ export interface AdoptionReference {
64
+ readonly kind: 'judgment_adoption' | 'task_adoption';
65
+ readonly id: string;
66
+ readonly revision: string;
67
+ readonly digest: string;
68
+ }
69
+ export interface JudgmentAdoptionResult {
70
+ readonly target: JudgmentTargetReference;
71
+ readonly adoption: AdoptionReference;
72
+ }
73
+ export interface TaskAdoptionResult {
74
+ readonly target: TaskTargetReference;
75
+ readonly adoption: AdoptionReference;
76
+ }
77
+ export interface JudgmentLineagePort {
78
+ /** Adapt the existing Knowledge promotion or learning adoption service. */
79
+ adopt(input: {
80
+ readonly candidate: MinutesLineageCandidate;
81
+ readonly idempotencyKey: string;
82
+ readonly actor: MinutesLineageActor;
83
+ readonly access: MinutesLineageAccess;
84
+ }): Promise<JudgmentAdoptionResult>;
85
+ /** Re-read the exact target with the provider's current ACL. */
86
+ readExact(target: JudgmentTargetReference, access: MinutesLineageAccess): Promise<unknown | null>;
87
+ }
88
+ export interface TaskLineagePort {
89
+ /** Adapt the existing Canonical Task service. */
90
+ create(input: {
91
+ readonly candidate: MinutesLineageCandidate;
92
+ readonly idempotencyKey: string;
93
+ readonly actor: MinutesLineageActor;
94
+ readonly access: MinutesLineageAccess;
95
+ }): Promise<TaskAdoptionResult>;
96
+ /** Re-read the exact Task version with the provider's current ACL. */
97
+ readExact(target: TaskTargetReference, access: MinutesLineageAccess): Promise<unknown | null>;
98
+ }
99
+ export interface ExecutionReceiptReference {
100
+ readonly id: string;
101
+ readonly digest: string;
102
+ }
103
+ export interface ExecutionReceiptRead {
104
+ readonly reference: ExecutionReceiptReference;
105
+ readonly runId: string;
106
+ readonly target: MinutesLineageTargetReference;
107
+ }
108
+ export interface ExecutionReceiptPort {
109
+ read(reference: ExecutionReceiptReference, access: MinutesLineageAccess): Promise<ExecutionReceiptRead | null>;
110
+ }
111
+ export interface ResultReference {
112
+ readonly id: string;
113
+ readonly digest: string;
114
+ }
115
+ export interface ResultRead {
116
+ readonly reference: ResultReference;
117
+ readonly target: MinutesLineageTargetReference;
118
+ }
119
+ export interface ResultPort {
120
+ read(reference: ResultReference, access: MinutesLineageAccess): Promise<ResultRead | null>;
121
+ }
122
+ export interface MinutesLineageStoreOptions {
123
+ readonly dataDir: string;
124
+ readonly minutes: MinutesVersionPort;
125
+ readonly judgment?: JudgmentLineagePort;
126
+ readonly task?: TaskLineagePort;
127
+ readonly receipt?: ExecutionReceiptPort;
128
+ readonly result?: ResultPort;
129
+ readonly now?: () => string;
130
+ }
131
+ export interface CreateMinutesLineageCandidateRequest {
132
+ readonly id: string;
133
+ readonly idempotencyKey: string;
134
+ readonly actor: MinutesLineageActor;
135
+ readonly evidence: MinutesVersionReference;
136
+ readonly kind: MinutesLineageCandidateKind;
137
+ readonly proposal: unknown;
138
+ readonly epistemicStatus: MinutesLineageEpistemicStatus;
139
+ readonly access: MinutesLineageAccess;
140
+ }
141
+ export interface MinutesLineageCandidate {
142
+ readonly version: typeof MEETING_MINUTES_LINEAGE_CATALOG_VERSION;
143
+ readonly id: string;
144
+ readonly idempotencyKey: string;
145
+ readonly requestDigest: string;
146
+ readonly actor: MinutesLineageActor;
147
+ readonly evidence: MinutesVersionReference;
148
+ readonly evidenceDigest: string;
149
+ readonly kind: MinutesLineageCandidateKind;
150
+ readonly proposal: unknown;
151
+ readonly proposalDigest: string;
152
+ readonly epistemicStatus: MinutesLineageEpistemicStatus;
153
+ readonly createdAt: string;
154
+ readonly digest: string;
155
+ }
156
+ export interface ConfirmMinutesLineageCandidateRequest {
157
+ readonly id: string;
158
+ readonly idempotencyKey: string;
159
+ readonly candidateId: string;
160
+ readonly actor: MinutesLineageActor;
161
+ readonly evidenceDigest: string;
162
+ readonly access: MinutesLineageAccess;
163
+ }
164
+ export interface MinutesLineageConfirmation {
165
+ readonly version: typeof MEETING_MINUTES_LINEAGE_CATALOG_VERSION;
166
+ readonly id: string;
167
+ readonly idempotencyKey: string;
168
+ readonly requestDigest: string;
169
+ readonly candidateId: string;
170
+ readonly candidateDigest: string;
171
+ readonly actor: MinutesLineageActor;
172
+ readonly evidenceDigest: string;
173
+ readonly confirmedAt: string;
174
+ readonly digest: string;
175
+ }
176
+ export interface AdoptMinutesLineageRequest {
177
+ readonly id: string;
178
+ readonly idempotencyKey: string;
179
+ readonly candidateId: string;
180
+ readonly actor: MinutesLineageActor;
181
+ readonly access: MinutesLineageAccess;
182
+ }
183
+ export interface MinutesLineageAdoption {
184
+ readonly version: typeof MEETING_MINUTES_LINEAGE_CATALOG_VERSION;
185
+ readonly id: string;
186
+ readonly idempotencyKey: string;
187
+ readonly requestDigest: string;
188
+ readonly candidateId: string;
189
+ readonly candidateDigest: string;
190
+ readonly kind: MinutesLineageCandidateKind;
191
+ readonly target: MinutesLineageTargetReference;
192
+ readonly adoption: AdoptionReference;
193
+ readonly actor: MinutesLineageActor;
194
+ readonly adoptedAt: string;
195
+ readonly digest: string;
196
+ }
197
+ export interface RecordMinutesLineageExecutionRequest {
198
+ readonly id: string;
199
+ readonly idempotencyKey: string;
200
+ readonly candidateId: string;
201
+ readonly receiptRef: ExecutionReceiptReference;
202
+ readonly actor: MinutesLineageActor;
203
+ readonly access: MinutesLineageAccess;
204
+ }
205
+ export interface MinutesLineageExecution {
206
+ readonly version: typeof MEETING_MINUTES_LINEAGE_CATALOG_VERSION;
207
+ readonly id: string;
208
+ readonly idempotencyKey: string;
209
+ readonly requestDigest: string;
210
+ readonly candidateId: string;
211
+ readonly adoptionId: string;
212
+ readonly target: MinutesLineageTargetReference;
213
+ readonly receiptRef: ExecutionReceiptReference;
214
+ readonly runId: string;
215
+ readonly actor: MinutesLineageActor;
216
+ readonly executedAt: string;
217
+ readonly digest: string;
218
+ }
219
+ export interface AcceptMinutesLineageResultRequest {
220
+ readonly id: string;
221
+ readonly idempotencyKey: string;
222
+ readonly executionId: string;
223
+ readonly resultRef: ResultReference;
224
+ readonly actor: MinutesLineageActor;
225
+ readonly access: MinutesLineageAccess;
226
+ }
227
+ export interface MinutesLineageResult {
228
+ readonly version: typeof MEETING_MINUTES_LINEAGE_CATALOG_VERSION;
229
+ readonly id: string;
230
+ readonly idempotencyKey: string;
231
+ readonly requestDigest: string;
232
+ readonly executionId: string;
233
+ readonly resultRef: ResultReference;
234
+ readonly target: MinutesLineageTargetReference;
235
+ readonly actor: MinutesLineageActor;
236
+ readonly acceptedAt: string;
237
+ readonly digest: string;
238
+ }
239
+ export interface MarkMinutesLineageCorrectionRequest {
240
+ readonly id: string;
241
+ readonly idempotencyKey: string;
242
+ readonly previousVersion: MinutesVersionReference;
243
+ readonly replacementVersion: MinutesVersionReference;
244
+ readonly actor: MinutesLineageActor;
245
+ readonly reason: string;
246
+ readonly access: MinutesLineageAccess;
247
+ }
248
+ export interface MinutesLineageCorrection {
249
+ readonly version: typeof MEETING_MINUTES_LINEAGE_CATALOG_VERSION;
250
+ readonly id: string;
251
+ readonly idempotencyKey: string;
252
+ readonly requestDigest: string;
253
+ readonly previousVersion: MinutesVersionReference;
254
+ readonly replacementVersion: MinutesVersionReference;
255
+ readonly affectedCandidateIds: readonly string[];
256
+ readonly actor: MinutesLineageActor;
257
+ readonly reason: string;
258
+ readonly correctedAt: string;
259
+ readonly digest: string;
260
+ }
261
+ export interface MinutesLineageCandidateView {
262
+ readonly candidate: MinutesLineageCandidate;
263
+ readonly confirmation?: MinutesLineageConfirmation;
264
+ readonly adoption?: MinutesLineageAdoption;
265
+ readonly execution?: MinutesLineageExecution;
266
+ readonly result?: MinutesLineageResult;
267
+ readonly confirmationStatus: MinutesLineageConfirmationStatus;
268
+ readonly adoptionStatus: MinutesLineageAdoptionStatus;
269
+ readonly executionStatus: MinutesLineageExecutionStatus;
270
+ readonly resultStatus: MinutesLineageResultStatus;
271
+ readonly reviewStatus: MinutesLineageReviewStatus;
272
+ readonly targetStatus?: LineageTargetStatus;
273
+ }
274
+ export interface LineageTargetStatus {
275
+ readonly status: 'available' | 'unavailable' | 'denied';
276
+ readonly reason?: string;
277
+ }
278
+ export interface MinutesLineageByMinutesVersionView {
279
+ readonly evidence: MinutesVersionReference;
280
+ readonly candidates: readonly MinutesLineageCandidateView[];
281
+ readonly corrections: readonly MinutesLineageCorrection[];
282
+ }
283
+ export interface MinutesLineageByTargetView {
284
+ readonly target: MinutesLineageTargetReference;
285
+ readonly adoptions: readonly MinutesLineageAdoption[];
286
+ readonly candidates: readonly MinutesLineageCandidateView[];
287
+ readonly sourceStatuses: Readonly<Record<string, LineageTargetStatus>>;
288
+ }
289
+ export interface MinutesLineageStore {
290
+ createCandidate(request: CreateMinutesLineageCandidateRequest): Promise<MinutesLineageCandidate>;
291
+ readCandidate(id: string, access: MinutesLineageAccess): Promise<MinutesLineageCandidate | null>;
292
+ confirmCandidate(request: ConfirmMinutesLineageCandidateRequest): Promise<MinutesLineageConfirmation>;
293
+ adoptJudgment(request: AdoptMinutesLineageRequest): Promise<MinutesLineageAdoption>;
294
+ adoptTask(request: AdoptMinutesLineageRequest): Promise<MinutesLineageAdoption>;
295
+ recordExecution(request: RecordMinutesLineageExecutionRequest): Promise<MinutesLineageExecution>;
296
+ acceptResult(request: AcceptMinutesLineageResultRequest): Promise<MinutesLineageResult>;
297
+ markCorrection(request: MarkMinutesLineageCorrectionRequest): Promise<MinutesLineageCorrection>;
298
+ readByMinutesVersion(reference: MinutesVersionReference, access: MinutesLineageAccess): Promise<MinutesLineageByMinutesVersionView>;
299
+ readByTarget(target: MinutesLineageTargetReference, access: MinutesLineageAccess): Promise<MinutesLineageByTargetView>;
300
+ }
301
+ export type MeetingMinutesLineageErrorCode = 'invalid_input' | 'not_found' | 'authorization_denied' | 'source_unavailable' | 'source_not_found' | 'target_unavailable' | 'provider_unavailable' | 'integrity_mismatch' | 'revision_conflict' | 'corrupt_record' | 'readback_mismatch';
302
+ export declare class MeetingMinutesLineageError extends Error {
303
+ readonly code: MeetingMinutesLineageErrorCode;
304
+ constructor(code: MeetingMinutesLineageErrorCode, message: string);
305
+ }
306
+ export declare function createMeetingMinutesLineageStore(options: MinutesLineageStoreOptions): MinutesLineageStore;
307
+ export declare function initializeMeetingMinutesLineageStore(dataDir: string): Promise<void>;