@remnic/core 1.1.15 → 1.1.17

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 (44) hide show
  1. package/dist/access-cli.js +2 -2
  2. package/dist/access-http.d.ts +1 -1
  3. package/dist/access-http.js +5 -5
  4. package/dist/access-mcp.d.ts +1 -1
  5. package/dist/access-mcp.js +4 -4
  6. package/dist/access-schema.d.ts +17 -3
  7. package/dist/access-schema.js +3 -1
  8. package/dist/{access-service-BCMine1s.d.ts → access-service-DZXc7qwR.d.ts} +11 -1
  9. package/dist/access-service.d.ts +1 -1
  10. package/dist/access-service.js +2 -2
  11. package/dist/{chunk-VWFIQOTJ.js → chunk-66H2DZYB.js} +8 -1
  12. package/dist/chunk-66H2DZYB.js.map +1 -0
  13. package/dist/{chunk-BNATB54A.js → chunk-BYACCC5C.js} +3 -3
  14. package/dist/{chunk-ZYRMKWVW.js → chunk-CDQNR7SV.js} +4 -4
  15. package/dist/{chunk-HJ2WMBFB.js → chunk-GCR4JFKK.js} +15 -4
  16. package/dist/chunk-GCR4JFKK.js.map +1 -0
  17. package/dist/{chunk-GSP6ZKOY.js → chunk-HMZYQPT5.js} +85 -19
  18. package/dist/chunk-HMZYQPT5.js.map +1 -0
  19. package/dist/{chunk-5D2G67ZQ.js → chunk-VLQWOGYM.js} +29 -3
  20. package/dist/chunk-VLQWOGYM.js.map +1 -0
  21. package/dist/{cli-B71zQ6XK.d.ts → cli-kVwab1_L.d.ts} +1 -1
  22. package/dist/cli.d.ts +2 -2
  23. package/dist/cli.js +6 -6
  24. package/dist/index.d.ts +4 -4
  25. package/dist/index.js +8 -6
  26. package/dist/index.js.map +1 -1
  27. package/dist/mcp-memory-inspector-app.d.ts +1 -1
  28. package/dist/offline-sync.d.ts +10 -1
  29. package/dist/offline-sync.js +3 -1
  30. package/package.json +1 -1
  31. package/src/access-http.test.ts +73 -0
  32. package/src/access-http.ts +15 -0
  33. package/src/access-schema.ts +12 -0
  34. package/src/access-service-namespace.test.ts +64 -1
  35. package/src/access-service.ts +44 -0
  36. package/src/index.ts +1 -0
  37. package/src/offline-sync.test.ts +174 -0
  38. package/src/offline-sync.ts +110 -18
  39. package/dist/chunk-5D2G67ZQ.js.map +0 -1
  40. package/dist/chunk-GSP6ZKOY.js.map +0 -1
  41. package/dist/chunk-HJ2WMBFB.js.map +0 -1
  42. package/dist/chunk-VWFIQOTJ.js.map +0 -1
  43. /package/dist/{chunk-BNATB54A.js.map → chunk-BYACCC5C.js.map} +0 -0
  44. /package/dist/{chunk-ZYRMKWVW.js.map → chunk-CDQNR7SV.js.map} +0 -0
@@ -135,7 +135,7 @@ import "./chunk-PVGDJXVK.js";
135
135
  import "./chunk-NGAVDO7E.js";
136
136
  import {
137
137
  EngramAccessService
138
- } from "./chunk-5D2G67ZQ.js";
138
+ } from "./chunk-VLQWOGYM.js";
139
139
  import "./chunk-ZKSK55RC.js";
140
140
  import "./chunk-WELDCG6C.js";
141
141
  import "./chunk-ZYVPLJ4T.js";
@@ -149,7 +149,7 @@ import "./chunk-MGKYQQYF.js";
149
149
  import "./chunk-GL6I6MEQ.js";
150
150
  import "./chunk-3APJ5EVB.js";
151
151
  import "./chunk-5UM2VJ6D.js";
152
- import "./chunk-GSP6ZKOY.js";
152
+ import "./chunk-HMZYQPT5.js";
153
153
  import "./chunk-65HQPW6O.js";
154
154
  import "./chunk-EIR5VLIH.js";
155
155
  import "./chunk-PCUKNJAZ.js";
@@ -1,5 +1,5 @@
1
1
  import { IncomingMessage } from 'node:http';
2
- import { E as EngramAccessService } from './access-service-BCMine1s.js';
2
+ import { E as EngramAccessService } from './access-service-DZXc7qwR.js';
3
3
  import { ResolvedIdentity } from './adapters/types.js';
4
4
  import { AdapterRegistry } from './adapters/registry.js';
5
5
  import './storage.js';
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  EngramAccessHttpServer
3
- } from "./chunk-HJ2WMBFB.js";
3
+ } from "./chunk-GCR4JFKK.js";
4
4
  import "./chunk-SEDEKFYQ.js";
5
5
  import "./chunk-6FC5EGNV.js";
6
6
  import "./chunk-3Y4P7RXM.js";
@@ -8,10 +8,10 @@ import "./chunk-6LVVDPJ4.js";
8
8
  import "./chunk-7MNMYOFP.js";
9
9
  import "./chunk-FKFMOY3N.js";
10
10
  import "./chunk-FAJ7FZYM.js";
11
- import "./chunk-BNATB54A.js";
11
+ import "./chunk-BYACCC5C.js";
12
12
  import "./chunk-C5BCH4ZS.js";
13
13
  import "./chunk-IQT3XTKW.js";
14
- import "./chunk-5D2G67ZQ.js";
14
+ import "./chunk-VLQWOGYM.js";
15
15
  import "./chunk-ZKSK55RC.js";
16
16
  import "./chunk-WELDCG6C.js";
17
17
  import "./chunk-ZYVPLJ4T.js";
@@ -25,7 +25,7 @@ import "./chunk-MGKYQQYF.js";
25
25
  import "./chunk-GL6I6MEQ.js";
26
26
  import "./chunk-3APJ5EVB.js";
27
27
  import "./chunk-5UM2VJ6D.js";
28
- import "./chunk-GSP6ZKOY.js";
28
+ import "./chunk-HMZYQPT5.js";
29
29
  import "./chunk-65HQPW6O.js";
30
30
  import "./chunk-EIR5VLIH.js";
31
31
  import "./chunk-PCUKNJAZ.js";
@@ -71,7 +71,7 @@ import "./chunk-TVVEYCNW.js";
71
71
  import "./chunk-RFYAYKTD.js";
72
72
  import "./chunk-LBLXEFWK.js";
73
73
  import "./chunk-XKECPATV.js";
74
- import "./chunk-VWFIQOTJ.js";
74
+ import "./chunk-66H2DZYB.js";
75
75
  import "./chunk-QA2ZAPBU.js";
76
76
  import "./chunk-WEHSQBFR.js";
77
77
  import "./chunk-KNKUID7G.js";
@@ -1,5 +1,5 @@
1
1
  import { Readable, Writable } from 'node:stream';
2
- import { E as EngramAccessService } from './access-service-BCMine1s.js';
2
+ import { E as EngramAccessService } from './access-service-DZXc7qwR.js';
3
3
  import './storage.js';
4
4
  import './page-versioning.js';
5
5
  import './consolidation-operator.js';
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  EngramMcpServer
3
- } from "./chunk-BNATB54A.js";
3
+ } from "./chunk-BYACCC5C.js";
4
4
  import "./chunk-C5BCH4ZS.js";
5
5
  import "./chunk-IQT3XTKW.js";
6
- import "./chunk-5D2G67ZQ.js";
6
+ import "./chunk-VLQWOGYM.js";
7
7
  import "./chunk-ZKSK55RC.js";
8
8
  import "./chunk-WELDCG6C.js";
9
9
  import "./chunk-ZYVPLJ4T.js";
@@ -17,7 +17,7 @@ import "./chunk-MGKYQQYF.js";
17
17
  import "./chunk-GL6I6MEQ.js";
18
18
  import "./chunk-3APJ5EVB.js";
19
19
  import "./chunk-5UM2VJ6D.js";
20
- import "./chunk-GSP6ZKOY.js";
20
+ import "./chunk-HMZYQPT5.js";
21
21
  import "./chunk-65HQPW6O.js";
22
22
  import "./chunk-EIR5VLIH.js";
23
23
  import "./chunk-PCUKNJAZ.js";
@@ -63,7 +63,7 @@ import "./chunk-TVVEYCNW.js";
63
63
  import "./chunk-RFYAYKTD.js";
64
64
  import "./chunk-LBLXEFWK.js";
65
65
  import "./chunk-XKECPATV.js";
66
- import "./chunk-VWFIQOTJ.js";
66
+ import "./chunk-66H2DZYB.js";
67
67
  import "./chunk-QA2ZAPBU.js";
68
68
  import "./chunk-WEHSQBFR.js";
69
69
  import "./chunk-KNKUID7G.js";
@@ -575,6 +575,19 @@ declare const offlineSyncApplyRequestSchema: z.ZodEffects<z.ZodObject<{
575
575
  namespace?: string | undefined;
576
576
  changeset?: unknown;
577
577
  }>;
578
+ declare const offlineSyncFilesRequestSchema: z.ZodObject<{
579
+ namespace: z.ZodOptional<z.ZodString>;
580
+ includeTranscripts: z.ZodOptional<z.ZodBoolean>;
581
+ paths: z.ZodArray<z.ZodString, "many">;
582
+ }, "strip", z.ZodTypeAny, {
583
+ paths: string[];
584
+ namespace?: string | undefined;
585
+ includeTranscripts?: boolean | undefined;
586
+ }, {
587
+ paths: string[];
588
+ namespace?: string | undefined;
589
+ includeTranscripts?: boolean | undefined;
590
+ }>;
578
591
  declare const actionConfidenceRequestSchema: z.ZodObject<{
579
592
  intendedAction: z.ZodEffects<z.ZodNullable<z.ZodOptional<z.ZodString>>, string | undefined, string | null | undefined>;
580
593
  confidence: z.ZodEffects<z.ZodNullable<z.ZodOptional<z.ZodNumber>>, number | undefined, number | null | undefined>;
@@ -743,9 +756,10 @@ type CapsuleExportRequest = z.infer<typeof capsuleExportRequestSchema>;
743
756
  type CapsuleImportRequest = z.infer<typeof capsuleImportRequestSchema>;
744
757
  type CapsuleListRequest = z.infer<typeof capsuleListRequestSchema>;
745
758
  type OfflineSyncApplyRequest = z.infer<typeof offlineSyncApplyRequestSchema>;
759
+ type OfflineSyncFilesRequest = z.infer<typeof offlineSyncFilesRequestSchema>;
746
760
  type ActionConfidenceRequest = z.infer<typeof actionConfidenceRequestSchema>;
747
- type SchemaName = "recall" | "recallExplain" | "setCodingContext" | "observe" | "memoryStore" | "suggestionSubmit" | "reviewDisposition" | "trustZonePromote" | "trustZoneDemoSeed" | "lcmSearch" | "lcmCompactionFlush" | "lcmCompactionRecord" | "daySummary" | "capsuleExport" | "capsuleImport" | "capsuleList" | "offlineSyncApply" | "actionConfidence";
748
- type SchemaTypeFor<N extends SchemaName> = N extends "recall" ? RecallRequest : N extends "recallExplain" ? RecallExplainRequest : N extends "setCodingContext" ? SetCodingContextRequest : N extends "observe" ? ObserveRequest : N extends "memoryStore" ? MemoryStoreRequest : N extends "suggestionSubmit" ? SuggestionSubmitRequest : N extends "reviewDisposition" ? ReviewDispositionRequest : N extends "trustZonePromote" ? TrustZonePromoteRequest : N extends "trustZoneDemoSeed" ? TrustZoneDemoSeedRequest : N extends "lcmSearch" ? LcmSearchRequest : N extends "lcmCompactionFlush" ? LcmCompactionFlushRequest : N extends "lcmCompactionRecord" ? LcmCompactionRecordRequest : N extends "daySummary" ? DaySummaryRequest : N extends "capsuleExport" ? CapsuleExportRequest : N extends "capsuleImport" ? CapsuleImportRequest : N extends "capsuleList" ? CapsuleListRequest : N extends "offlineSyncApply" ? OfflineSyncApplyRequest : N extends "actionConfidence" ? ActionConfidenceRequest : never;
761
+ type SchemaName = "recall" | "recallExplain" | "setCodingContext" | "observe" | "memoryStore" | "suggestionSubmit" | "reviewDisposition" | "trustZonePromote" | "trustZoneDemoSeed" | "lcmSearch" | "lcmCompactionFlush" | "lcmCompactionRecord" | "daySummary" | "capsuleExport" | "capsuleImport" | "capsuleList" | "offlineSyncFiles" | "offlineSyncApply" | "actionConfidence";
762
+ type SchemaTypeFor<N extends SchemaName> = N extends "recall" ? RecallRequest : N extends "recallExplain" ? RecallExplainRequest : N extends "setCodingContext" ? SetCodingContextRequest : N extends "observe" ? ObserveRequest : N extends "memoryStore" ? MemoryStoreRequest : N extends "suggestionSubmit" ? SuggestionSubmitRequest : N extends "reviewDisposition" ? ReviewDispositionRequest : N extends "trustZonePromote" ? TrustZonePromoteRequest : N extends "trustZoneDemoSeed" ? TrustZoneDemoSeedRequest : N extends "lcmSearch" ? LcmSearchRequest : N extends "lcmCompactionFlush" ? LcmCompactionFlushRequest : N extends "lcmCompactionRecord" ? LcmCompactionRecordRequest : N extends "daySummary" ? DaySummaryRequest : N extends "capsuleExport" ? CapsuleExportRequest : N extends "capsuleImport" ? CapsuleImportRequest : N extends "capsuleList" ? CapsuleListRequest : N extends "offlineSyncFiles" ? OfflineSyncFilesRequest : N extends "offlineSyncApply" ? OfflineSyncApplyRequest : N extends "actionConfidence" ? ActionConfidenceRequest : never;
749
763
  /**
750
764
  * Validate a request body against the named schema.
751
765
  * Returns `{ success: true, data }` on pass or
@@ -759,4 +773,4 @@ declare function validateRequest<T = unknown>(schemaName: SchemaName, body: unkn
759
773
  error: SchemaValidationError;
760
774
  };
761
775
 
762
- export { type ActionConfidenceRequest, type CapsuleExportRequest, type CapsuleImportRequest, type CapsuleListRequest, type DaySummaryRequest, type LcmCompactionFlushRequest, type LcmCompactionRecordRequest, type LcmSearchRequest, type MemoryStoreRequest, type ObserveRequest, type OfflineSyncApplyRequest, type RecallExplainRequest, type RecallRequest, type ReviewDispositionRequest, type SchemaName, type SchemaTypeFor, type SchemaValidationError, type SetCodingContextRequest, type SuggestionSubmitRequest, type TrustZoneDemoSeedRequest, type TrustZonePromoteRequest, actionConfidenceRequestSchema, capsuleExportRequestSchema, capsuleImportRequestSchema, capsuleListRequestSchema, codingContextSchema, daySummaryRequestSchema, formatZodError, lcmCompactionFlushRequestSchema, lcmCompactionRecordRequestSchema, lcmSearchRequestSchema, memoryStoreRequestSchema, observeRequestSchema, offlineSyncApplyRequestSchema, recallDisclosureSchema, recallExplainRequestSchema, recallRequestSchema, reviewDispositionRequestSchema, setCodingContextRequestSchema, suggestionSubmitRequestSchema, tagMatchSchema, trustZoneDemoSeedRequestSchema, trustZonePromoteRequestSchema, validateRequest };
776
+ export { type ActionConfidenceRequest, type CapsuleExportRequest, type CapsuleImportRequest, type CapsuleListRequest, type DaySummaryRequest, type LcmCompactionFlushRequest, type LcmCompactionRecordRequest, type LcmSearchRequest, type MemoryStoreRequest, type ObserveRequest, type OfflineSyncApplyRequest, type OfflineSyncFilesRequest, type RecallExplainRequest, type RecallRequest, type ReviewDispositionRequest, type SchemaName, type SchemaTypeFor, type SchemaValidationError, type SetCodingContextRequest, type SuggestionSubmitRequest, type TrustZoneDemoSeedRequest, type TrustZonePromoteRequest, actionConfidenceRequestSchema, capsuleExportRequestSchema, capsuleImportRequestSchema, capsuleListRequestSchema, codingContextSchema, daySummaryRequestSchema, formatZodError, lcmCompactionFlushRequestSchema, lcmCompactionRecordRequestSchema, lcmSearchRequestSchema, memoryStoreRequestSchema, observeRequestSchema, offlineSyncApplyRequestSchema, offlineSyncFilesRequestSchema, recallDisclosureSchema, recallExplainRequestSchema, recallRequestSchema, reviewDispositionRequestSchema, setCodingContextRequestSchema, suggestionSubmitRequestSchema, tagMatchSchema, trustZoneDemoSeedRequestSchema, trustZonePromoteRequestSchema, validateRequest };
@@ -12,6 +12,7 @@ import {
12
12
  memoryStoreRequestSchema,
13
13
  observeRequestSchema,
14
14
  offlineSyncApplyRequestSchema,
15
+ offlineSyncFilesRequestSchema,
15
16
  recallDisclosureSchema,
16
17
  recallExplainRequestSchema,
17
18
  recallRequestSchema,
@@ -22,7 +23,7 @@ import {
22
23
  trustZoneDemoSeedRequestSchema,
23
24
  trustZonePromoteRequestSchema,
24
25
  validateRequest
25
- } from "./chunk-VWFIQOTJ.js";
26
+ } from "./chunk-66H2DZYB.js";
26
27
  import "./chunk-QA2ZAPBU.js";
27
28
  import "./chunk-WEHSQBFR.js";
28
29
  import "./chunk-KNKUID7G.js";
@@ -51,6 +52,7 @@ export {
51
52
  memoryStoreRequestSchema,
52
53
  observeRequestSchema,
53
54
  offlineSyncApplyRequestSchema,
55
+ offlineSyncFilesRequestSchema,
54
56
  recallDisclosureSchema,
55
57
  recallExplainRequestSchema,
56
58
  recallRequestSchema,
@@ -680,6 +680,12 @@ interface EngramAccessOfflineSyncSnapshotRequest {
680
680
  includeTranscripts?: boolean;
681
681
  includeContent?: boolean;
682
682
  }
683
+ interface EngramAccessOfflineSyncFilesRequest {
684
+ namespace?: string;
685
+ principal?: string;
686
+ includeTranscripts?: boolean;
687
+ paths: string[];
688
+ }
683
689
  interface EngramAccessOfflineSyncApplyRequest {
684
690
  namespace?: string;
685
691
  principal?: string;
@@ -688,6 +694,9 @@ interface EngramAccessOfflineSyncApplyRequest {
688
694
  interface EngramAccessOfflineSyncSnapshotResponse extends OfflineSyncSnapshot {
689
695
  namespace: string;
690
696
  }
697
+ interface EngramAccessOfflineSyncFilesResponse extends OfflineSyncSnapshot {
698
+ namespace: string;
699
+ }
691
700
  interface EngramAccessOfflineSyncApplyResponse extends OfflineSyncApplyChangesetResult {
692
701
  namespace: string;
693
702
  }
@@ -1535,6 +1544,7 @@ declare class EngramAccessService {
1535
1544
  principal?: string;
1536
1545
  }): Promise<EngramAccessCapsuleListResponse>;
1537
1546
  offlineSyncSnapshot(options?: EngramAccessOfflineSyncSnapshotRequest): Promise<EngramAccessOfflineSyncSnapshotResponse>;
1547
+ offlineSyncFiles(options: EngramAccessOfflineSyncFilesRequest): Promise<EngramAccessOfflineSyncFilesResponse>;
1538
1548
  offlineSyncApply(options: EngramAccessOfflineSyncApplyRequest): Promise<EngramAccessOfflineSyncApplyResponse>;
1539
1549
  /**
1540
1550
  * Return per-phase Dreams telemetry for the last N hours (default 24).
@@ -1559,4 +1569,4 @@ declare class EngramAccessService {
1559
1569
  }): Promise<DreamsRunResult>;
1560
1570
  }
1561
1571
 
1562
- export { type EngramAccessReviewDispositionResponse as $, type EngramAccessLcmCompactionFlushResponse as A, type EngramAccessLcmCompactionRecordRequest as B, type EngramAccessLcmCompactionRecordResponse as C, type EngramAccessLcmSearchRequest as D, EngramAccessService as E, type EngramAccessLcmSearchResponse as F, type EngramAccessLcmStatusResponse as G, type EngramAccessMaintenanceResponse as H, type EngramAccessMemoryBrowseRequest as I, type EngramAccessMemoryBrowseResponse as J, type EngramAccessMemoryRecord as K, type EngramAccessMemoryResponse as L, type EngramAccessMemoryStoreRequest as M, type EngramAccessMemorySummary as N, type EngramAccessObserveMessage as O, type PeerInteractionLogEntry as P, type EngramAccessObserveRequest as Q, type EngramAccessObserveResponse as R, type EngramAccessOfflineSyncApplyRequest as S, type EngramAccessOfflineSyncApplyResponse as T, type EngramAccessOfflineSyncSnapshotRequest as U, type EngramAccessOfflineSyncSnapshotResponse as V, type EngramAccessQualityResponse as W, type EngramAccessRecallExplainRequest as X, type EngramAccessRecallExplainResponse as Y, type EngramAccessRecallRequest as Z, type EngramAccessReviewDispositionRequest as _, type EngramAccessRecallResponse as a, type EngramAccessReviewQueueResponse as a0, type EngramAccessSetCodingContextRequest as a1, type EngramAccessSuggestionSubmitRequest as a2, type EngramAccessTimelineResponse as a3, type EngramAccessTrustZoneBrowseRequest as a4, type EngramAccessTrustZoneBrowseResponse as a5, type EngramAccessTrustZoneDemoSeedRequest as a6, type EngramAccessTrustZoneDemoSeedResponse as a7, type EngramAccessTrustZonePromoteRequest as a8, type EngramAccessTrustZonePromoteResponse as a9, type EngramAccessTrustZoneRecordSummary as aa, type EngramAccessTrustZoneStatusResponse as ab, type EngramAccessWriteEnvelope as ac, type EngramAccessWriteResponse as ad, shapeMemorySummary as ae, type Peer as b, type PeerProfile as c, EngramAccessInputError as d, PEER_ID_MAX_LENGTH as e, PEER_ID_PATTERN as f, type PeerKind as g, type PeerProfileFieldProvenance as h, type ProcedureStatsConfigSnapshot as i, type ProcedureStatsRecent as j, type ProcedureStatsReport as k, type ProcedureStatusCounts as l, computeProcedureStats as m, formatProcedureStatsText as n, ENGRAM_ACCESS_WRITE_SCHEMA_VERSION as o, type EngramAccessActionConfidenceRequest as p, type EngramAccessActionConfidenceResponse as q, type EngramAccessBriefingRequest as r, type EngramAccessBriefingResponse as s, type EngramAccessCapsuleListResponse as t, type EngramAccessDaySummaryRequest as u, type EngramAccessEntityListResponse as v, type EngramAccessEntityResponse as w, type EngramAccessEntitySummary as x, type EngramAccessHealthResponse as y, type EngramAccessLcmCompactionFlushRequest as z };
1572
+ export { type EngramAccessRecallRequest as $, type EngramAccessLcmCompactionFlushResponse as A, type EngramAccessLcmCompactionRecordRequest as B, type EngramAccessLcmCompactionRecordResponse as C, type EngramAccessLcmSearchRequest as D, EngramAccessService as E, type EngramAccessLcmSearchResponse as F, type EngramAccessLcmStatusResponse as G, type EngramAccessMaintenanceResponse as H, type EngramAccessMemoryBrowseRequest as I, type EngramAccessMemoryBrowseResponse as J, type EngramAccessMemoryRecord as K, type EngramAccessMemoryResponse as L, type EngramAccessMemoryStoreRequest as M, type EngramAccessMemorySummary as N, type EngramAccessObserveMessage as O, type PeerInteractionLogEntry as P, type EngramAccessObserveRequest as Q, type EngramAccessObserveResponse as R, type EngramAccessOfflineSyncApplyRequest as S, type EngramAccessOfflineSyncApplyResponse as T, type EngramAccessOfflineSyncFilesRequest as U, type EngramAccessOfflineSyncFilesResponse as V, type EngramAccessOfflineSyncSnapshotRequest as W, type EngramAccessOfflineSyncSnapshotResponse as X, type EngramAccessQualityResponse as Y, type EngramAccessRecallExplainRequest as Z, type EngramAccessRecallExplainResponse as _, type EngramAccessRecallResponse as a, type EngramAccessReviewDispositionRequest as a0, type EngramAccessReviewDispositionResponse as a1, type EngramAccessReviewQueueResponse as a2, type EngramAccessSetCodingContextRequest as a3, type EngramAccessSuggestionSubmitRequest as a4, type EngramAccessTimelineResponse as a5, type EngramAccessTrustZoneBrowseRequest as a6, type EngramAccessTrustZoneBrowseResponse as a7, type EngramAccessTrustZoneDemoSeedRequest as a8, type EngramAccessTrustZoneDemoSeedResponse as a9, type EngramAccessTrustZonePromoteRequest as aa, type EngramAccessTrustZonePromoteResponse as ab, type EngramAccessTrustZoneRecordSummary as ac, type EngramAccessTrustZoneStatusResponse as ad, type EngramAccessWriteEnvelope as ae, type EngramAccessWriteResponse as af, shapeMemorySummary as ag, type Peer as b, type PeerProfile as c, EngramAccessInputError as d, PEER_ID_MAX_LENGTH as e, PEER_ID_PATTERN as f, type PeerKind as g, type PeerProfileFieldProvenance as h, type ProcedureStatsConfigSnapshot as i, type ProcedureStatsRecent as j, type ProcedureStatsReport as k, type ProcedureStatusCounts as l, computeProcedureStats as m, formatProcedureStatsText as n, ENGRAM_ACCESS_WRITE_SCHEMA_VERSION as o, type EngramAccessActionConfidenceRequest as p, type EngramAccessActionConfidenceResponse as q, type EngramAccessBriefingRequest as r, type EngramAccessBriefingResponse as s, type EngramAccessCapsuleListResponse as t, type EngramAccessDaySummaryRequest as u, type EngramAccessEntityListResponse as v, type EngramAccessEntityResponse as w, type EngramAccessEntitySummary as x, type EngramAccessHealthResponse as y, type EngramAccessLcmCompactionFlushRequest as z };
@@ -1,5 +1,5 @@
1
1
  import './storage.js';
2
- export { o as ENGRAM_ACCESS_WRITE_SCHEMA_VERSION, p as EngramAccessActionConfidenceRequest, q as EngramAccessActionConfidenceResponse, r as EngramAccessBriefingRequest, s as EngramAccessBriefingResponse, t as EngramAccessCapsuleListResponse, u as EngramAccessDaySummaryRequest, v as EngramAccessEntityListResponse, w as EngramAccessEntityResponse, x as EngramAccessEntitySummary, y as EngramAccessHealthResponse, d as EngramAccessInputError, z as EngramAccessLcmCompactionFlushRequest, A as EngramAccessLcmCompactionFlushResponse, B as EngramAccessLcmCompactionRecordRequest, C as EngramAccessLcmCompactionRecordResponse, D as EngramAccessLcmSearchRequest, F as EngramAccessLcmSearchResponse, G as EngramAccessLcmStatusResponse, H as EngramAccessMaintenanceResponse, I as EngramAccessMemoryBrowseRequest, J as EngramAccessMemoryBrowseResponse, K as EngramAccessMemoryRecord, L as EngramAccessMemoryResponse, M as EngramAccessMemoryStoreRequest, N as EngramAccessMemorySummary, O as EngramAccessObserveMessage, Q as EngramAccessObserveRequest, R as EngramAccessObserveResponse, S as EngramAccessOfflineSyncApplyRequest, T as EngramAccessOfflineSyncApplyResponse, U as EngramAccessOfflineSyncSnapshotRequest, V as EngramAccessOfflineSyncSnapshotResponse, W as EngramAccessQualityResponse, X as EngramAccessRecallExplainRequest, Y as EngramAccessRecallExplainResponse, Z as EngramAccessRecallRequest, a as EngramAccessRecallResponse, _ as EngramAccessReviewDispositionRequest, $ as EngramAccessReviewDispositionResponse, a0 as EngramAccessReviewQueueResponse, E as EngramAccessService, a1 as EngramAccessSetCodingContextRequest, a2 as EngramAccessSuggestionSubmitRequest, a3 as EngramAccessTimelineResponse, a4 as EngramAccessTrustZoneBrowseRequest, a5 as EngramAccessTrustZoneBrowseResponse, a6 as EngramAccessTrustZoneDemoSeedRequest, a7 as EngramAccessTrustZoneDemoSeedResponse, a8 as EngramAccessTrustZonePromoteRequest, a9 as EngramAccessTrustZonePromoteResponse, aa as EngramAccessTrustZoneRecordSummary, ab as EngramAccessTrustZoneStatusResponse, ac as EngramAccessWriteEnvelope, ad as EngramAccessWriteResponse, ae as shapeMemorySummary } from './access-service-BCMine1s.js';
2
+ export { o as ENGRAM_ACCESS_WRITE_SCHEMA_VERSION, p as EngramAccessActionConfidenceRequest, q as EngramAccessActionConfidenceResponse, r as EngramAccessBriefingRequest, s as EngramAccessBriefingResponse, t as EngramAccessCapsuleListResponse, u as EngramAccessDaySummaryRequest, v as EngramAccessEntityListResponse, w as EngramAccessEntityResponse, x as EngramAccessEntitySummary, y as EngramAccessHealthResponse, d as EngramAccessInputError, z as EngramAccessLcmCompactionFlushRequest, A as EngramAccessLcmCompactionFlushResponse, B as EngramAccessLcmCompactionRecordRequest, C as EngramAccessLcmCompactionRecordResponse, D as EngramAccessLcmSearchRequest, F as EngramAccessLcmSearchResponse, G as EngramAccessLcmStatusResponse, H as EngramAccessMaintenanceResponse, I as EngramAccessMemoryBrowseRequest, J as EngramAccessMemoryBrowseResponse, K as EngramAccessMemoryRecord, L as EngramAccessMemoryResponse, M as EngramAccessMemoryStoreRequest, N as EngramAccessMemorySummary, O as EngramAccessObserveMessage, Q as EngramAccessObserveRequest, R as EngramAccessObserveResponse, S as EngramAccessOfflineSyncApplyRequest, T as EngramAccessOfflineSyncApplyResponse, U as EngramAccessOfflineSyncFilesRequest, V as EngramAccessOfflineSyncFilesResponse, W as EngramAccessOfflineSyncSnapshotRequest, X as EngramAccessOfflineSyncSnapshotResponse, Y as EngramAccessQualityResponse, Z as EngramAccessRecallExplainRequest, _ as EngramAccessRecallExplainResponse, $ as EngramAccessRecallRequest, a as EngramAccessRecallResponse, a0 as EngramAccessReviewDispositionRequest, a1 as EngramAccessReviewDispositionResponse, a2 as EngramAccessReviewQueueResponse, E as EngramAccessService, a3 as EngramAccessSetCodingContextRequest, a4 as EngramAccessSuggestionSubmitRequest, a5 as EngramAccessTimelineResponse, a6 as EngramAccessTrustZoneBrowseRequest, a7 as EngramAccessTrustZoneBrowseResponse, a8 as EngramAccessTrustZoneDemoSeedRequest, a9 as EngramAccessTrustZoneDemoSeedResponse, aa as EngramAccessTrustZonePromoteRequest, ab as EngramAccessTrustZonePromoteResponse, ac as EngramAccessTrustZoneRecordSummary, ad as EngramAccessTrustZoneStatusResponse, ae as EngramAccessWriteEnvelope, af as EngramAccessWriteResponse, ag as shapeMemorySummary } from './access-service-DZXc7qwR.js';
3
3
  import './recall-explain-renderer.js';
4
4
  import './types.js';
5
5
  import './recall-audit-anomaly.js';
@@ -3,7 +3,7 @@ import {
3
3
  EngramAccessInputError,
4
4
  EngramAccessService,
5
5
  shapeMemorySummary
6
- } from "./chunk-5D2G67ZQ.js";
6
+ } from "./chunk-VLQWOGYM.js";
7
7
  import "./chunk-ZKSK55RC.js";
8
8
  import "./chunk-WELDCG6C.js";
9
9
  import "./chunk-ZYVPLJ4T.js";
@@ -17,7 +17,7 @@ import "./chunk-MGKYQQYF.js";
17
17
  import "./chunk-GL6I6MEQ.js";
18
18
  import "./chunk-3APJ5EVB.js";
19
19
  import "./chunk-5UM2VJ6D.js";
20
- import "./chunk-GSP6ZKOY.js";
20
+ import "./chunk-HMZYQPT5.js";
21
21
  import "./chunk-65HQPW6O.js";
22
22
  import "./chunk-EIR5VLIH.js";
23
23
  import "./chunk-PCUKNJAZ.js";
@@ -253,6 +253,11 @@ var offlineSyncApplyRequestSchema = z.object({
253
253
  message: "changeset is required",
254
254
  path: ["changeset"]
255
255
  });
256
+ var offlineSyncFilesRequestSchema = z.object({
257
+ namespace: namespaceSchema,
258
+ includeTranscripts: z.boolean().optional(),
259
+ paths: z.array(z.string().trim().min(1, "path must be non-empty").max(4096)).max(5e3, "paths must contain 5000 or fewer entries")
260
+ });
256
261
  var nullableOptional = (schema) => schema.optional().nullable().transform((value) => value ?? void 0);
257
262
  var actionConfidenceRuleSchema = z.object({
258
263
  kind: z.enum(ACTION_CONFIDENCE_RULE_KINDS),
@@ -300,6 +305,7 @@ var schemas = {
300
305
  capsuleExport: capsuleExportRequestSchema,
301
306
  capsuleImport: capsuleImportRequestSchema,
302
307
  capsuleList: capsuleListRequestSchema,
308
+ offlineSyncFiles: offlineSyncFilesRequestSchema,
303
309
  offlineSyncApply: offlineSyncApplyRequestSchema,
304
310
  actionConfidence: actionConfidenceRequestSchema
305
311
  };
@@ -344,7 +350,8 @@ export {
344
350
  capsuleImportRequestSchema,
345
351
  capsuleListRequestSchema,
346
352
  offlineSyncApplyRequestSchema,
353
+ offlineSyncFilesRequestSchema,
347
354
  actionConfidenceRequestSchema,
348
355
  validateRequest
349
356
  };
350
- //# sourceMappingURL=chunk-VWFIQOTJ.js.map
357
+ //# sourceMappingURL=chunk-66H2DZYB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/access-schema.ts"],"sourcesContent":["// Request/response schema validation for the Remnic HTTP API.\n// Uses zod for runtime validation — returns structured 400 errors with\n// field-level detail so consumers get clear feedback on malformed requests.\n\nimport { z } from \"zod\";\nimport {\n ACTION_CONFIDENCE_CONTEXT_READINESS,\n ACTION_CONFIDENCE_RISK_CATEGORIES,\n ACTION_CONFIDENCE_RULE_KINDS,\n} from \"./action-confidence.js\";\nimport { isValidCapsuleSince } from \"./transfer/capsule-export.js\";\nimport { CAPSULE_ID_PATTERN } from \"./transfer/types.js\";\n\n// ---------------------------------------------------------------------------\n// Error formatting\n// ---------------------------------------------------------------------------\n\nexport interface SchemaValidationError {\n error: string;\n code: \"validation_error\";\n details: Array<{ field: string; message: string }>;\n}\n\nexport function formatZodError(error: z.ZodError): SchemaValidationError {\n return {\n error: \"request validation failed\",\n code: \"validation_error\",\n details: error.issues.map((issue) => ({\n field: issue.path.join(\".\") || \"(root)\",\n message: issue.message,\n })),\n };\n}\n\n// ---------------------------------------------------------------------------\n// Shared fields\n// ---------------------------------------------------------------------------\n\nconst namespaceSchema = z.string().trim().max(256).optional();\nconst sessionKeySchema = z.string().trim().min(1).max(512).optional();\nconst idempotencyKeySchema = z.string().trim().min(1).max(256).optional();\nconst dryRunSchema = z.boolean().optional();\nconst schemaVersionSchema = z.number().int().optional();\n\n// ---------------------------------------------------------------------------\n// Recall\n// ---------------------------------------------------------------------------\n\n/**\n * Coding-agent context (issue #569). Optional payload that connectors may\n * ship with a recall request so the project/branch namespace overlay\n * applies to that recall. All fields are validated per CLAUDE.md #51 —\n * empty-string projectId / rootPath is rejected, not silently accepted.\n */\nexport const codingContextSchema = z\n .object({\n projectId: z.string().trim().min(1, \"codingContext.projectId is required\").max(128),\n branch: z.string().trim().max(256).nullable(),\n rootPath: z.string().trim().min(1, \"codingContext.rootPath is required\").max(1024),\n defaultBranch: z.string().trim().max(256).nullable(),\n })\n .nullable();\n\n/**\n * Recall disclosure depth (issue #677). Mirrors the `RecallDisclosure`\n * type in `types.ts` — keep these in sync. Default-application happens\n * inside `EngramAccessService.recall()`; the schema only accepts/rejects.\n * Invalid values throw a structured 400 instead of silently defaulting,\n * per CLAUDE.md rule 51.\n */\nexport const recallDisclosureSchema = z.enum([\"chunk\", \"section\", \"raw\"]);\n\n/**\n * Tag-match semantics (issue #689). `any` (default when `tags` is provided\n * and `tagMatch` is omitted) admits a result when it carries at least one\n * of the filter tags. `all` requires every filter tag to be present.\n * Schema rejects unknown values up front — never silently defaults\n * (CLAUDE.md rule 51).\n */\nexport const tagMatchSchema = z.enum([\"any\", \"all\"]);\n\nexport const recallRequestSchema = z.object({\n query: z.string().min(1, \"query is required\"),\n sessionKey: sessionKeySchema,\n namespace: namespaceSchema,\n topK: z.number().int().min(0).max(200).optional(),\n mode: z.enum([\"auto\", \"no_recall\", \"minimal\", \"full\", \"graph_mode\"]).optional(),\n includeDebug: z.boolean().optional(),\n idempotencyKey: idempotencyKeySchema,\n disclosure: recallDisclosureSchema.optional(),\n codingContext: codingContextSchema.optional(),\n /** Working directory for auto git-context resolution (issue #569). */\n cwd: z.string().trim().min(1, \"cwd must be non-empty when provided\").max(2048).optional(),\n /**\n * Arbitrary project tag for non-git-based project scoping (issue #569).\n * Creates a coding context with `projectId: \"tag:<projectTag>\"`.\n */\n projectTag: z.string().trim().min(1, \"projectTag must be non-empty when provided\").max(256).optional(),\n /**\n * Historical recall pin (issue #680). ISO 8601 timestamp. The\n * schema only enforces the basic shape; the access service runs\n * `Date.parse` and emits a structured 400 on malformed input\n * (CLAUDE.md rule 51).\n */\n asOf: z.string().trim().min(1, \"asOf must be a non-empty ISO 8601 timestamp\").max(64).optional(),\n /**\n * Free-form recall tag filter (issue #689). When provided, recall results\n * whose frontmatter `tags` do not match the filter are removed before the\n * response is returned. Comparison is case-sensitive exact match.\n */\n tags: z.array(z.string().trim().min(1).max(256)).max(50).optional(),\n /**\n * Match mode for `tags` (issue #689). Defaults to `\"any\"` when `tags` is\n * provided and `tagMatch` is omitted. Ignored when `tags` is absent.\n */\n tagMatch: tagMatchSchema.optional(),\n /**\n * Include graph edges below `graphTraversalConfidenceFloor` for diagnostic\n * recall traversal (issue #681). Defaults to false.\n */\n includeLowConfidence: z.boolean().optional(),\n});\n\nexport const recallExplainRequestSchema = z.object({\n sessionKey: sessionKeySchema,\n namespace: namespaceSchema,\n});\n\n/**\n * Standalone \"set coding context\" request. Used by the HTTP endpoint\n * `POST /engram/v1/coding-context` and the MCP `remnic.set_coding_context`\n * tool (PR 7). `codingContext: null` clears the attached context.\n */\nexport const setCodingContextRequestSchema = z.object({\n sessionKey: z.string().trim().min(1, \"sessionKey is required\").max(512),\n codingContext: codingContextSchema,\n});\n\n// ---------------------------------------------------------------------------\n// Observe\n// ---------------------------------------------------------------------------\n\nconst messageSchema = z.object({\n role: z.enum([\"user\", \"assistant\"]),\n content: z.string().min(1, \"message content must be non-empty\"),\n sourceFormat: z\n .enum([\"openai\", \"anthropic\", \"openclaw\", \"pi\", \"lossless-claw\", \"remnic\"])\n .nullable()\n .optional(),\n rawContent: z.unknown().nullable().optional(),\n parts: z\n .array(\n z.object({\n ordinal: z.number().int().min(0).nullable().optional(),\n kind: z.enum([\n \"text\",\n \"tool_call\",\n \"tool_result\",\n \"patch\",\n \"file_read\",\n \"file_write\",\n \"step_start\",\n \"step_finish\",\n \"snapshot\",\n \"retry\",\n ]),\n payload: z.record(z.string(), z.unknown()),\n toolName: z.string().nullable().optional(),\n tool_name: z.string().nullable().optional(),\n filePath: z.string().nullable().optional(),\n file_path: z.string().nullable().optional(),\n createdAt: z.string().nullable().optional(),\n created_at: z.string().nullable().optional(),\n }),\n )\n .nullable()\n .optional(),\n});\n\nexport const observeRequestSchema = z.object({\n sessionKey: z.string().trim().min(1, \"sessionKey is required\").max(512),\n messages: z.array(messageSchema).min(1, \"messages must be a non-empty array\"),\n namespace: namespaceSchema,\n skipExtraction: z.boolean().optional(),\n /** Working directory for auto git-context resolution (issue #569). */\n cwd: z.string().trim().min(1, \"cwd must be non-empty when provided\").max(2048).optional(),\n /**\n * Arbitrary project tag for non-git-based project scoping (issue #569).\n * Creates a coding context with `projectId: \"tag:<projectTag>\"`.\n */\n projectTag: z.string().trim().min(1, \"projectTag must be non-empty when provided\").max(256).optional(),\n});\n\n// ---------------------------------------------------------------------------\n// Memory store / suggestion submit\n// ---------------------------------------------------------------------------\n\nconst writeContentSchema = z.string().min(1, \"content is required\").max(50000);\nconst categorySchema = z\n .enum([\n \"fact\", \"preference\", \"correction\", \"entity\", \"decision\",\n \"relationship\", \"principle\", \"commitment\", \"moment\", \"skill\", \"rule\", \"procedure\",\n \"reasoning_trace\",\n ])\n .optional();\nconst confidenceSchema = z.number().min(0).max(1).optional();\nconst tagsSchema = z.array(z.string().max(256)).max(50).optional();\nconst entityRefSchema = z.string().trim().max(512).optional();\nconst ttlSchema = z.string().trim().max(128).optional();\nconst sourceReasonSchema = z.string().trim().max(2000).optional();\n\nexport const memoryStoreRequestSchema = z.object({\n schemaVersion: schemaVersionSchema,\n idempotencyKey: idempotencyKeySchema,\n dryRun: dryRunSchema,\n sessionKey: sessionKeySchema,\n content: writeContentSchema,\n category: categorySchema,\n confidence: confidenceSchema,\n namespace: namespaceSchema,\n tags: tagsSchema,\n entityRef: entityRefSchema,\n ttl: ttlSchema,\n sourceReason: sourceReasonSchema,\n});\n\nexport const suggestionSubmitRequestSchema = memoryStoreRequestSchema;\n\n// ---------------------------------------------------------------------------\n// Review disposition\n// ---------------------------------------------------------------------------\n\nexport const reviewDispositionRequestSchema = z.object({\n memoryId: z.string().trim().min(1, \"memoryId is required\"),\n status: z.enum([\n \"active\", \"pending_review\", \"quarantined\", \"rejected\", \"superseded\", \"archived\",\n ]),\n reasonCode: z.string().trim().min(1, \"reasonCode is required\"),\n namespace: namespaceSchema,\n});\n\n// ---------------------------------------------------------------------------\n// Trust-zone promote\n// ---------------------------------------------------------------------------\n\nexport const trustZonePromoteRequestSchema = z.object({\n recordId: z.string().trim().min(1, \"recordId is required\"),\n targetZone: z.enum([\"working\", \"trusted\"], {\n errorMap: () => ({ message: \"targetZone must be 'working' or 'trusted'\" }),\n }),\n promotionReason: z.string().trim().min(1, \"promotionReason is required\"),\n recordedAt: z.string().trim().optional(),\n summary: z.string().trim().max(5000).optional(),\n dryRun: dryRunSchema,\n namespace: namespaceSchema,\n});\n\n// ---------------------------------------------------------------------------\n// Trust-zone demo-seed\n// ---------------------------------------------------------------------------\n\nexport const trustZoneDemoSeedRequestSchema = z.object({\n scenario: z.string().trim().max(256).optional(),\n recordedAt: z.string().trim().optional(),\n dryRun: dryRunSchema,\n namespace: namespaceSchema,\n});\n\n// ---------------------------------------------------------------------------\n// LCM search\n// ---------------------------------------------------------------------------\n\nexport const lcmSearchRequestSchema = z.object({\n query: z.string().min(1, \"query is required\"),\n sessionKey: sessionKeySchema,\n namespace: namespaceSchema,\n limit: z.number().int().min(1).max(100).optional(),\n});\n\nexport const lcmCompactionFlushRequestSchema = z.object({\n sessionKey: z.string().trim().min(1, \"sessionKey is required\").max(512),\n namespace: namespaceSchema,\n});\n\nexport const lcmCompactionRecordRequestSchema = z.object({\n sessionKey: z.string().trim().min(1, \"sessionKey is required\").max(512),\n namespace: namespaceSchema,\n tokensBefore: z.number().int().min(0, \"tokensBefore must be a non-negative integer\"),\n tokensAfter: z.number().int().min(0, \"tokensAfter must be a non-negative integer\"),\n});\n\n// ---------------------------------------------------------------------------\n// Day summary\n// ---------------------------------------------------------------------------\n\nexport const daySummaryRequestSchema = z.object({\n memories: z.string().max(100000).optional(),\n sessionKey: sessionKeySchema,\n namespace: namespaceSchema,\n});\n\n// ---------------------------------------------------------------------------\n// Capsule export\n// ---------------------------------------------------------------------------\n\nconst capsuleTopLevelSegmentSchema = z\n .string()\n .trim()\n .min(1)\n .max(128)\n .refine(\n (value) => !value.includes(\"/\") && !value.includes(\"\\\\\"),\n \"must be a top-level directory name without path separators\",\n );\n\nconst capsulePeerIdSchema = z\n .string()\n .trim()\n .min(1)\n .max(256)\n .refine(\n (value) => value !== \".\" && value !== \"..\" && !value.includes(\"/\") && !value.includes(\"\\\\\"),\n \"must be a plain peer id without path separators\",\n );\n\nconst capsuleIsoSinceSchema = z\n .string()\n .trim()\n .min(1, \"since must be a non-empty ISO 8601 timestamp\")\n .max(128)\n .refine(\n isValidCapsuleSince,\n \"since must be a valid ISO 8601 timestamp with no calendar overflow\",\n );\n\nexport const capsuleExportRequestSchema = z\n .object({\n name: z\n .string()\n .trim()\n .min(1, \"name is required\")\n .max(64, \"name must be 64 characters or fewer\")\n .regex(\n CAPSULE_ID_PATTERN,\n \"name must be alphanumeric with single dashes (no spaces, no leading/trailing dashes)\",\n ),\n namespace: namespaceSchema,\n since: capsuleIsoSinceSchema.optional(),\n includeKinds: z.array(capsuleTopLevelSegmentSchema).max(50).optional(),\n peerIds: z.array(capsulePeerIdSchema).max(100).optional(),\n includeTranscripts: z.boolean().optional(),\n encrypt: z.boolean().optional(),\n });\n\nexport const capsuleImportRequestSchema = z\n .object({\n archivePath: z.string().trim().min(1, \"archivePath is required\").max(4096),\n namespace: namespaceSchema,\n mode: z.enum([\"skip\", \"overwrite\", \"fork\"]).optional(),\n });\n\nexport const capsuleListRequestSchema = z\n .object({\n namespace: namespaceSchema,\n });\n\n// ---------------------------------------------------------------------------\n// Offline sync\n// ---------------------------------------------------------------------------\n\nexport const offlineSyncApplyRequestSchema = z\n .object({\n namespace: namespaceSchema,\n changeset: z.unknown(),\n })\n .refine((value) => value.changeset !== undefined && value.changeset !== null, {\n message: \"changeset is required\",\n path: [\"changeset\"],\n });\n\nexport const offlineSyncFilesRequestSchema = z.object({\n namespace: namespaceSchema,\n includeTranscripts: z.boolean().optional(),\n paths: z\n .array(z.string().trim().min(1, \"path must be non-empty\").max(4096))\n .max(5000, \"paths must contain 5000 or fewer entries\"),\n});\n\n// ---------------------------------------------------------------------------\n// Action confidence\n// ---------------------------------------------------------------------------\n\nconst nullableOptional = <T extends z.ZodTypeAny>(schema: T) =>\n schema.optional().nullable().transform((value) => value ?? undefined);\n\nconst actionConfidenceRuleSchema = z\n .object({\n kind: z.enum(ACTION_CONFIDENCE_RULE_KINDS),\n description: nullableOptional(z.string().trim().min(1).max(2000)),\n matched: nullableOptional(z.boolean()),\n })\n .strict();\n\nconst actionConfidenceMemorySchema = z\n .object({\n source: nullableOptional(z.string().trim().min(1).max(256)),\n created: nullableOptional(z.string().trim().min(1).max(128)),\n updated: nullableOptional(z.string().trim().min(1).max(128)),\n scope: nullableOptional(z.string().trim().min(1).max(512)),\n userContextScopes: nullableOptional(z.array(z.string().trim().min(1).max(128)).max(50)),\n retrievalReason: nullableOptional(z.string().trim().min(1).max(2000)),\n confidence: nullableOptional(z.number().min(0).max(1)),\n stale: nullableOptional(z.boolean()),\n corrected: nullableOptional(z.boolean()),\n correctionState: nullableOptional(z.enum([\"none\", \"correction\", \"superseded\", \"disputed\", \"forgotten\"])),\n safeToUse: nullableOptional(z.boolean()),\n safety: nullableOptional(z.enum([\"safe\", \"requires-review\", \"blocked\"])),\n safetyReasons: nullableOptional(z.array(z.string().trim().min(1).max(1000)).max(50)),\n })\n .strict();\n\nexport const actionConfidenceRequestSchema = z\n .object({\n intendedAction: nullableOptional(z.string().trim().min(1).max(1000)),\n confidence: nullableOptional(z.number().min(0).max(1)),\n risk: nullableOptional(z.enum(ACTION_CONFIDENCE_RISK_CATEGORIES)),\n contextReadiness: nullableOptional(z.enum(ACTION_CONFIDENCE_CONTEXT_READINESS)),\n currentContextScopes: nullableOptional(z.array(z.string().trim().min(1).max(128)).max(50)),\n userRules: nullableOptional(z.array(actionConfidenceRuleSchema).max(100)),\n retrievedMemories: nullableOptional(z.array(actionConfidenceMemorySchema).max(200)),\n })\n .strict();\n\n// ---------------------------------------------------------------------------\n// Inferred types\n// ---------------------------------------------------------------------------\n\nexport type RecallRequest = z.infer<typeof recallRequestSchema>;\nexport type RecallExplainRequest = z.infer<typeof recallExplainRequestSchema>;\nexport type SetCodingContextRequest = z.infer<typeof setCodingContextRequestSchema>;\nexport type ObserveRequest = z.infer<typeof observeRequestSchema>;\nexport type MemoryStoreRequest = z.infer<typeof memoryStoreRequestSchema>;\nexport type SuggestionSubmitRequest = z.infer<typeof suggestionSubmitRequestSchema>;\nexport type ReviewDispositionRequest = z.infer<typeof reviewDispositionRequestSchema>;\nexport type TrustZonePromoteRequest = z.infer<typeof trustZonePromoteRequestSchema>;\nexport type TrustZoneDemoSeedRequest = z.infer<typeof trustZoneDemoSeedRequestSchema>;\nexport type LcmSearchRequest = z.infer<typeof lcmSearchRequestSchema>;\nexport type LcmCompactionFlushRequest = z.infer<typeof lcmCompactionFlushRequestSchema>;\nexport type LcmCompactionRecordRequest = z.infer<typeof lcmCompactionRecordRequestSchema>;\nexport type DaySummaryRequest = z.infer<typeof daySummaryRequestSchema>;\nexport type CapsuleExportRequest = z.infer<typeof capsuleExportRequestSchema>;\nexport type CapsuleImportRequest = z.infer<typeof capsuleImportRequestSchema>;\nexport type CapsuleListRequest = z.infer<typeof capsuleListRequestSchema>;\nexport type OfflineSyncApplyRequest = z.infer<typeof offlineSyncApplyRequestSchema>;\nexport type OfflineSyncFilesRequest = z.infer<typeof offlineSyncFilesRequestSchema>;\nexport type ActionConfidenceRequest = z.infer<typeof actionConfidenceRequestSchema>;\n\n// ---------------------------------------------------------------------------\n// Validation helper\n// ---------------------------------------------------------------------------\n\nexport type SchemaName =\n | \"recall\"\n | \"recallExplain\"\n | \"setCodingContext\"\n | \"observe\"\n | \"memoryStore\"\n | \"suggestionSubmit\"\n | \"reviewDisposition\"\n | \"trustZonePromote\"\n | \"trustZoneDemoSeed\"\n | \"lcmSearch\"\n | \"lcmCompactionFlush\"\n | \"lcmCompactionRecord\"\n | \"daySummary\"\n | \"capsuleExport\"\n | \"capsuleImport\"\n | \"capsuleList\"\n | \"offlineSyncFiles\"\n | \"offlineSyncApply\"\n | \"actionConfidence\";\n\nexport type SchemaTypeFor<N extends SchemaName> =\n N extends \"recall\" ? RecallRequest\n : N extends \"recallExplain\" ? RecallExplainRequest\n : N extends \"setCodingContext\" ? SetCodingContextRequest\n : N extends \"observe\" ? ObserveRequest\n : N extends \"memoryStore\" ? MemoryStoreRequest\n : N extends \"suggestionSubmit\" ? SuggestionSubmitRequest\n : N extends \"reviewDisposition\" ? ReviewDispositionRequest\n : N extends \"trustZonePromote\" ? TrustZonePromoteRequest\n : N extends \"trustZoneDemoSeed\" ? TrustZoneDemoSeedRequest\n : N extends \"lcmSearch\" ? LcmSearchRequest\n : N extends \"lcmCompactionFlush\" ? LcmCompactionFlushRequest\n : N extends \"lcmCompactionRecord\" ? LcmCompactionRecordRequest\n : N extends \"daySummary\" ? DaySummaryRequest\n : N extends \"capsuleExport\" ? CapsuleExportRequest\n : N extends \"capsuleImport\" ? CapsuleImportRequest\n : N extends \"capsuleList\" ? CapsuleListRequest\n : N extends \"offlineSyncFiles\" ? OfflineSyncFilesRequest\n : N extends \"offlineSyncApply\" ? OfflineSyncApplyRequest\n : N extends \"actionConfidence\" ? ActionConfidenceRequest\n : never;\n\nconst schemas: Record<SchemaName, z.ZodTypeAny> = {\n recall: recallRequestSchema,\n recallExplain: recallExplainRequestSchema,\n setCodingContext: setCodingContextRequestSchema,\n observe: observeRequestSchema,\n memoryStore: memoryStoreRequestSchema,\n suggestionSubmit: suggestionSubmitRequestSchema,\n reviewDisposition: reviewDispositionRequestSchema,\n trustZonePromote: trustZonePromoteRequestSchema,\n trustZoneDemoSeed: trustZoneDemoSeedRequestSchema,\n lcmSearch: lcmSearchRequestSchema,\n lcmCompactionFlush: lcmCompactionFlushRequestSchema,\n lcmCompactionRecord: lcmCompactionRecordRequestSchema,\n daySummary: daySummaryRequestSchema,\n capsuleExport: capsuleExportRequestSchema,\n capsuleImport: capsuleImportRequestSchema,\n capsuleList: capsuleListRequestSchema,\n offlineSyncFiles: offlineSyncFilesRequestSchema,\n offlineSyncApply: offlineSyncApplyRequestSchema,\n actionConfidence: actionConfidenceRequestSchema,\n};\n\n/**\n * Validate a request body against the named schema.\n * Returns `{ success: true, data }` on pass or\n * `{ success: false, error }` on failure with field-level detail.\n */\nexport function validateRequest<T = unknown>(\n schemaName: SchemaName,\n body: unknown,\n): { success: true; data: T } | { success: false; error: SchemaValidationError } {\n const schema = schemas[schemaName];\n if (!schema) {\n return {\n success: false,\n error: {\n error: `unknown schema: ${schemaName}`,\n code: \"validation_error\",\n details: [],\n },\n };\n }\n const result = schema.safeParse(body);\n if (result.success) {\n return { success: true, data: result.data as T };\n }\n return { success: false, error: formatZodError(result.error) };\n}\n"],"mappings":"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","names":[]}
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-IQT3XTKW.js";
12
12
  import {
13
13
  EngramAccessInputError
14
- } from "./chunk-5D2G67ZQ.js";
14
+ } from "./chunk-VLQWOGYM.js";
15
15
  import {
16
16
  validateBriefingFormat
17
17
  } from "./chunk-V7WH7DEM.js";
@@ -23,7 +23,7 @@ import {
23
23
  } from "./chunk-XIG5PDM7.js";
24
24
  import {
25
25
  validateRequest
26
- } from "./chunk-VWFIQOTJ.js";
26
+ } from "./chunk-66H2DZYB.js";
27
27
 
28
28
  // src/access-mcp.ts
29
29
  import { readFile } from "fs/promises";
@@ -2797,4 +2797,4 @@ ${body}`;
2797
2797
  export {
2798
2798
  EngramMcpServer
2799
2799
  };
2800
- //# sourceMappingURL=chunk-BNATB54A.js.map
2800
+ //# sourceMappingURL=chunk-BYACCC5C.js.map
@@ -196,13 +196,13 @@ import {
196
196
  } from "./chunk-NGAVDO7E.js";
197
197
  import {
198
198
  EngramAccessHttpServer
199
- } from "./chunk-HJ2WMBFB.js";
199
+ } from "./chunk-GCR4JFKK.js";
200
200
  import {
201
201
  EngramMcpServer
202
- } from "./chunk-BNATB54A.js";
202
+ } from "./chunk-BYACCC5C.js";
203
203
  import {
204
204
  EngramAccessService
205
- } from "./chunk-5D2G67ZQ.js";
205
+ } from "./chunk-VLQWOGYM.js";
206
206
  import {
207
207
  WorkStorage
208
208
  } from "./chunk-WELDCG6C.js";
@@ -6755,4 +6755,4 @@ export {
6755
6755
  resolveMemoryDirForNamespace,
6756
6756
  registerCli
6757
6757
  };
6758
- //# sourceMappingURL=chunk-ZYRMKWVW.js.map
6758
+ //# sourceMappingURL=chunk-CDQNR7SV.js.map
@@ -3,10 +3,10 @@ import {
3
3
  } from "./chunk-6FC5EGNV.js";
4
4
  import {
5
5
  EngramMcpServer
6
- } from "./chunk-BNATB54A.js";
6
+ } from "./chunk-BYACCC5C.js";
7
7
  import {
8
8
  EngramAccessInputError
9
- } from "./chunk-5D2G67ZQ.js";
9
+ } from "./chunk-VLQWOGYM.js";
10
10
  import {
11
11
  isTrustZoneName
12
12
  } from "./chunk-QDZ2RLEC.js";
@@ -24,7 +24,7 @@ import {
24
24
  } from "./chunk-2ODBA7MQ.js";
25
25
  import {
26
26
  validateRequest
27
- } from "./chunk-VWFIQOTJ.js";
27
+ } from "./chunk-66H2DZYB.js";
28
28
 
29
29
  // src/access-http.ts
30
30
  import { createServer } from "http";
@@ -485,6 +485,17 @@ var EngramAccessHttpServer = class {
485
485
  this.respondJson(res, 200, result);
486
486
  return;
487
487
  }
488
+ if (req.method === "POST" && (pathname === "/engram/v1/offline-sync/files" || pathname === "/remnic/v1/offline-sync/files")) {
489
+ const body = await this.readValidatedBody(req, "offlineSyncFiles");
490
+ const result = await this.service.offlineSyncFiles({
491
+ namespace: this.resolveNamespace(req, body.namespace),
492
+ principal: this.resolveRequestPrincipal(req),
493
+ includeTranscripts: body.includeTranscripts,
494
+ paths: body.paths
495
+ });
496
+ this.respondJson(res, 200, result);
497
+ return;
498
+ }
488
499
  if (req.method === "POST" && (pathname === "/engram/v1/offline-sync/apply" || pathname === "/remnic/v1/offline-sync/apply")) {
489
500
  const body = await this.readValidatedBody(req, "offlineSyncApply");
490
501
  this.ensureWriteRateLimitAvailable();
@@ -1526,4 +1537,4 @@ var EngramAccessHttpServer = class {
1526
1537
  export {
1527
1538
  EngramAccessHttpServer
1528
1539
  };
1529
- //# sourceMappingURL=chunk-HJ2WMBFB.js.map
1540
+ //# sourceMappingURL=chunk-GCR4JFKK.js.map