@remnic/core 9.3.614 → 9.3.615

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 (46) hide show
  1. package/dist/access-cli.js +3 -3
  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 +14 -2
  7. package/dist/access-schema.js +1 -1
  8. package/dist/{access-service-DGG_2xPK.d.ts → access-service-CBNEKjzN.d.ts} +70 -5
  9. package/dist/access-service.d.ts +1 -1
  10. package/dist/access-service.js +2 -2
  11. package/dist/{chunk-B6FDZPCF.js → chunk-5OHHEORR.js} +50 -15
  12. package/dist/chunk-5OHHEORR.js.map +1 -0
  13. package/dist/{chunk-T5XWMMU2.js → chunk-EXUAP5LH.js} +2 -2
  14. package/dist/{chunk-EUML3N6B.js → chunk-IMA6GU4Y.js} +3 -3
  15. package/dist/chunk-IMA6GU4Y.js.map +1 -0
  16. package/dist/{chunk-7YQFWOF7.js → chunk-KGLPJROV.js} +4 -4
  17. package/dist/{chunk-VPGUMLBA.js → chunk-NM5NQYJE.js} +16 -16
  18. package/dist/chunk-NM5NQYJE.js.map +1 -0
  19. package/dist/{chunk-QEMCQFDW.js → chunk-WD2W4234.js} +8 -2
  20. package/dist/chunk-WD2W4234.js.map +1 -0
  21. package/dist/{chunk-ADNZVFXG.js → chunk-ZK32E74R.js} +142 -31
  22. package/dist/chunk-ZK32E74R.js.map +1 -0
  23. package/dist/{cli-DWeu7eTY.d.ts → cli-Cw729yLf.d.ts} +1 -1
  24. package/dist/cli.d.ts +2 -2
  25. package/dist/cli.js +6 -6
  26. package/dist/explicit-capture.d.ts +10 -0
  27. package/dist/explicit-capture.js +1 -1
  28. package/dist/index.d.ts +2 -2
  29. package/dist/index.js +7 -7
  30. package/dist/mcp-memory-inspector-app.d.ts +1 -1
  31. package/dist/orchestrator.js +2 -2
  32. package/package.json +1 -1
  33. package/src/access-http.ts +21 -10
  34. package/src/access-mcp.test.ts +109 -0
  35. package/src/access-mcp.ts +46 -2
  36. package/src/access-schema.ts +11 -0
  37. package/src/access-service-coding-write.test.ts +478 -0
  38. package/src/access-service.ts +237 -32
  39. package/src/explicit-capture.ts +19 -2
  40. package/dist/chunk-ADNZVFXG.js.map +0 -1
  41. package/dist/chunk-B6FDZPCF.js.map +0 -1
  42. package/dist/chunk-EUML3N6B.js.map +0 -1
  43. package/dist/chunk-QEMCQFDW.js.map +0 -1
  44. package/dist/chunk-VPGUMLBA.js.map +0 -1
  45. /package/dist/{chunk-T5XWMMU2.js.map → chunk-EXUAP5LH.js.map} +0 -0
  46. /package/dist/{chunk-7YQFWOF7.js.map → chunk-KGLPJROV.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Orchestrator
3
- } from "./chunk-T5XWMMU2.js";
3
+ } from "./chunk-EXUAP5LH.js";
4
4
  import "./chunk-5RIRL3XL.js";
5
5
  import "./chunk-4HFJQCJZ.js";
6
6
  import "./chunk-6BDVBBBY.js";
@@ -140,7 +140,7 @@ import "./chunk-PVGDJXVK.js";
140
140
  import "./chunk-OADWQ5CR.js";
141
141
  import {
142
142
  EngramAccessService
143
- } from "./chunk-ADNZVFXG.js";
143
+ } from "./chunk-ZK32E74R.js";
144
144
  import "./chunk-GDASG7NC.js";
145
145
  import "./chunk-GDB4J2H3.js";
146
146
  import "./chunk-DGNQRNLL.js";
@@ -161,7 +161,7 @@ import "./chunk-EI6V5UXY.js";
161
161
  import "./chunk-QY7YA7OL.js";
162
162
  import "./chunk-NNVTUXEB.js";
163
163
  import "./chunk-QDW3E4RD.js";
164
- import "./chunk-EUML3N6B.js";
164
+ import "./chunk-IMA6GU4Y.js";
165
165
  import "./chunk-ODPLEWB6.js";
166
166
  import "./chunk-XL7FK7PJ.js";
167
167
  import "./chunk-2LSZVONP.js";
@@ -1,5 +1,5 @@
1
1
  import { IncomingMessage } from 'node:http';
2
- import { E as EngramAccessService } from './access-service-DGG_2xPK.js';
2
+ import { E as EngramAccessService } from './access-service-CBNEKjzN.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-VPGUMLBA.js";
3
+ } from "./chunk-NM5NQYJE.js";
4
4
  import "./chunk-SEDEKFYQ.js";
5
5
  import "./chunk-2QSZNTDO.js";
6
6
  import "./chunk-RSUYKGGZ.js";
@@ -8,10 +8,10 @@ import "./chunk-42NQ7AVG.js";
8
8
  import "./chunk-TMSXWOBZ.js";
9
9
  import "./chunk-J64TK33U.js";
10
10
  import "./chunk-7RXCMVFQ.js";
11
- import "./chunk-B6FDZPCF.js";
11
+ import "./chunk-5OHHEORR.js";
12
12
  import "./chunk-6L46YAEZ.js";
13
13
  import "./chunk-D24OXEPB.js";
14
- import "./chunk-ADNZVFXG.js";
14
+ import "./chunk-ZK32E74R.js";
15
15
  import "./chunk-GDASG7NC.js";
16
16
  import "./chunk-GDB4J2H3.js";
17
17
  import "./chunk-DGNQRNLL.js";
@@ -32,7 +32,7 @@ import "./chunk-EI6V5UXY.js";
32
32
  import "./chunk-QY7YA7OL.js";
33
33
  import "./chunk-NNVTUXEB.js";
34
34
  import "./chunk-QDW3E4RD.js";
35
- import "./chunk-EUML3N6B.js";
35
+ import "./chunk-IMA6GU4Y.js";
36
36
  import "./chunk-ODPLEWB6.js";
37
37
  import "./chunk-XL7FK7PJ.js";
38
38
  import "./chunk-2LSZVONP.js";
@@ -68,7 +68,7 @@ import "./chunk-TVVEYCNW.js";
68
68
  import "./chunk-RFYAYKTD.js";
69
69
  import "./chunk-LBLXEFWK.js";
70
70
  import "./chunk-VFUEZZBS.js";
71
- import "./chunk-QEMCQFDW.js";
71
+ import "./chunk-WD2W4234.js";
72
72
  import "./chunk-VDX2J7OX.js";
73
73
  import "./chunk-WEHSQBFR.js";
74
74
  import "./chunk-DQEMWVMT.js";
@@ -1,5 +1,5 @@
1
1
  import { Readable, Writable } from 'node:stream';
2
- import { E as EngramAccessService } from './access-service-DGG_2xPK.js';
2
+ import { E as EngramAccessService } from './access-service-CBNEKjzN.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-B6FDZPCF.js";
3
+ } from "./chunk-5OHHEORR.js";
4
4
  import "./chunk-6L46YAEZ.js";
5
5
  import "./chunk-D24OXEPB.js";
6
- import "./chunk-ADNZVFXG.js";
6
+ import "./chunk-ZK32E74R.js";
7
7
  import "./chunk-GDASG7NC.js";
8
8
  import "./chunk-GDB4J2H3.js";
9
9
  import "./chunk-DGNQRNLL.js";
@@ -24,7 +24,7 @@ import "./chunk-EI6V5UXY.js";
24
24
  import "./chunk-QY7YA7OL.js";
25
25
  import "./chunk-NNVTUXEB.js";
26
26
  import "./chunk-QDW3E4RD.js";
27
- import "./chunk-EUML3N6B.js";
27
+ import "./chunk-IMA6GU4Y.js";
28
28
  import "./chunk-ODPLEWB6.js";
29
29
  import "./chunk-XL7FK7PJ.js";
30
30
  import "./chunk-2LSZVONP.js";
@@ -60,7 +60,7 @@ import "./chunk-TVVEYCNW.js";
60
60
  import "./chunk-RFYAYKTD.js";
61
61
  import "./chunk-LBLXEFWK.js";
62
62
  import "./chunk-VFUEZZBS.js";
63
- import "./chunk-QEMCQFDW.js";
63
+ import "./chunk-WD2W4234.js";
64
64
  import "./chunk-VDX2J7OX.js";
65
65
  import "./chunk-WEHSQBFR.js";
66
66
  import "./chunk-DQEMWVMT.js";
@@ -111,8 +111,8 @@ declare const recallRequestSchema: z.ZodObject<{
111
111
  mode?: "no_recall" | "minimal" | "full" | "graph_mode" | "auto" | undefined;
112
112
  cwd?: string | undefined;
113
113
  includeLowConfidence?: boolean | undefined;
114
- disclosure?: "chunk" | "section" | "raw" | undefined;
115
114
  idempotencyKey?: string | undefined;
115
+ disclosure?: "chunk" | "section" | "raw" | undefined;
116
116
  asOf?: string | undefined;
117
117
  includeDebug?: boolean | undefined;
118
118
  codingContext?: {
@@ -132,8 +132,8 @@ declare const recallRequestSchema: z.ZodObject<{
132
132
  mode?: "no_recall" | "minimal" | "full" | "graph_mode" | "auto" | undefined;
133
133
  cwd?: string | undefined;
134
134
  includeLowConfidence?: boolean | undefined;
135
- disclosure?: "chunk" | "section" | "raw" | undefined;
136
135
  idempotencyKey?: string | undefined;
136
+ disclosure?: "chunk" | "section" | "raw" | undefined;
137
137
  asOf?: string | undefined;
138
138
  includeDebug?: boolean | undefined;
139
139
  codingContext?: {
@@ -361,6 +361,8 @@ declare const memoryStoreRequestSchema: z.ZodObject<{
361
361
  entityRef: z.ZodOptional<z.ZodString>;
362
362
  ttl: z.ZodOptional<z.ZodString>;
363
363
  sourceReason: z.ZodOptional<z.ZodString>;
364
+ cwd: z.ZodOptional<z.ZodString>;
365
+ projectTag: z.ZodOptional<z.ZodString>;
364
366
  }, "strip", z.ZodTypeAny, {
365
367
  content: string;
366
368
  schemaVersion?: number | undefined;
@@ -373,7 +375,9 @@ declare const memoryStoreRequestSchema: z.ZodObject<{
373
375
  entityRef?: string | undefined;
374
376
  ttl?: string | undefined;
375
377
  sourceReason?: string | undefined;
378
+ cwd?: string | undefined;
376
379
  idempotencyKey?: string | undefined;
380
+ projectTag?: string | undefined;
377
381
  }, {
378
382
  content: string;
379
383
  schemaVersion?: number | undefined;
@@ -386,7 +390,9 @@ declare const memoryStoreRequestSchema: z.ZodObject<{
386
390
  entityRef?: string | undefined;
387
391
  ttl?: string | undefined;
388
392
  sourceReason?: string | undefined;
393
+ cwd?: string | undefined;
389
394
  idempotencyKey?: string | undefined;
395
+ projectTag?: string | undefined;
390
396
  }>;
391
397
  declare const suggestionSubmitRequestSchema: z.ZodObject<{
392
398
  schemaVersion: z.ZodOptional<z.ZodNumber>;
@@ -401,6 +407,8 @@ declare const suggestionSubmitRequestSchema: z.ZodObject<{
401
407
  entityRef: z.ZodOptional<z.ZodString>;
402
408
  ttl: z.ZodOptional<z.ZodString>;
403
409
  sourceReason: z.ZodOptional<z.ZodString>;
410
+ cwd: z.ZodOptional<z.ZodString>;
411
+ projectTag: z.ZodOptional<z.ZodString>;
404
412
  }, "strip", z.ZodTypeAny, {
405
413
  content: string;
406
414
  schemaVersion?: number | undefined;
@@ -413,7 +421,9 @@ declare const suggestionSubmitRequestSchema: z.ZodObject<{
413
421
  entityRef?: string | undefined;
414
422
  ttl?: string | undefined;
415
423
  sourceReason?: string | undefined;
424
+ cwd?: string | undefined;
416
425
  idempotencyKey?: string | undefined;
426
+ projectTag?: string | undefined;
417
427
  }, {
418
428
  content: string;
419
429
  schemaVersion?: number | undefined;
@@ -426,7 +436,9 @@ declare const suggestionSubmitRequestSchema: z.ZodObject<{
426
436
  entityRef?: string | undefined;
427
437
  ttl?: string | undefined;
428
438
  sourceReason?: string | undefined;
439
+ cwd?: string | undefined;
429
440
  idempotencyKey?: string | undefined;
441
+ projectTag?: string | undefined;
430
442
  }>;
431
443
  declare const reviewDispositionRequestSchema: z.ZodObject<{
432
444
  memoryId: z.ZodString;
@@ -25,7 +25,7 @@ import {
25
25
  trustZoneDemoSeedRequestSchema,
26
26
  trustZonePromoteRequestSchema,
27
27
  validateRequest
28
- } from "./chunk-QEMCQFDW.js";
28
+ } from "./chunk-WD2W4234.js";
29
29
  import "./chunk-VDX2J7OX.js";
30
30
  import "./chunk-WEHSQBFR.js";
31
31
  import "./chunk-DQEMWVMT.js";
@@ -644,9 +644,18 @@ interface EngramAccessWriteEnvelope {
644
644
  */
645
645
  authenticatedPrincipal?: string;
646
646
  }
647
- interface EngramAccessMemoryStoreRequest extends EngramAccessWriteEnvelope, ExplicitCaptureInput {
647
+ /**
648
+ * Optional git/project context for project-scoped writes (#1434). When no
649
+ * explicit `namespace` is supplied, these route the write to the same project
650
+ * namespace recall/observe resolve from `cwd`/`projectTag` (rule 42 symmetry).
651
+ */
652
+ interface CodingScopedWriteInput {
653
+ cwd?: string;
654
+ projectTag?: string;
648
655
  }
649
- interface EngramAccessSuggestionSubmitRequest extends EngramAccessWriteEnvelope, ExplicitCaptureInput {
656
+ interface EngramAccessMemoryStoreRequest extends EngramAccessWriteEnvelope, ExplicitCaptureInput, CodingScopedWriteInput {
657
+ }
658
+ interface EngramAccessSuggestionSubmitRequest extends EngramAccessWriteEnvelope, ExplicitCaptureInput, CodingScopedWriteInput {
650
659
  }
651
660
  interface EngramAccessWriteResponse {
652
661
  schemaVersion: 1;
@@ -774,6 +783,47 @@ declare class EngramAccessService {
774
783
  private resolveRecallNamespace;
775
784
  private resolveRequestPrincipal;
776
785
  private resolveWritableNamespace;
786
+ /**
787
+ * Resolve a coding context from `cwd`/`projectTag` WITHOUT persisting it to
788
+ * any session — the read-only half of `maybeAttachCodingContext`. Returns
789
+ * null when project scoping is off or nothing resolves. `projectTag` takes
790
+ * priority over `cwd` (matching `maybeAttachCodingContext`).
791
+ */
792
+ private resolveCodingContextFromOptions;
793
+ /**
794
+ * Resolve the write namespace for explicit-write tools (memory_store /
795
+ * suggestion_submit), project-scoping the write the same way recall does so a
796
+ * memory stored with a client-injected `cwd`/`projectTag` is discoverable by
797
+ * project-scoped recall (#1434, rule 42).
798
+ *
799
+ * Precedence:
800
+ * - An explicit `namespace` always wins and is authorized strictly via
801
+ * `resolveWritableNamespace` → `canWriteNamespace`. A coding-overlay
802
+ * namespace string (`<base>-project-*`) is NOT a writable target via the
803
+ * explicit field — project scoping is requested with `cwd`/`projectTag`,
804
+ * never by naming the derived namespace — so there is no way to bypass the
805
+ * policy allow-list by guessing/forging an overlay name (Codex review).
806
+ * - With NO coding overlay, the write stays on `config.defaultNamespace` —
807
+ * exactly the pre-#1434 behavior, so an unqualified write is NOT silently
808
+ * moved to a principal self namespace (Codex review).
809
+ * - WITH a coding overlay, the base is the principal self namespace
810
+ * (`defaultNamespaceForPrincipal`, write-checked) — the SAME base recall,
811
+ * observe, and the orchestrator buffer-flush write path overlay onto
812
+ * (rule 42 / Cursor) — so a project-scoped store lands exactly where
813
+ * project-scoped recall searches. The overlay namespace is always REBUILT
814
+ * from the authenticated principal's base, never accepted as a caller
815
+ * string, so a caller can never reach another principal's subtree.
816
+ *
817
+ * Read-only: this NEVER mutates session coding context, so the idempotency
818
+ * peeks and dryRun preflights that call it stay side-effect free (Codex
819
+ * review). It prefers the per-call `cwd`/`projectTag` (the project explicitly
820
+ * identified for this write), else the session's existing context. The HTTP
821
+ * surface lets the peek and the write each resolve independently; the peek's
822
+ * namespace only gates rate-limiting (memory_store/suggestion_submit run their
823
+ * own idempotency check), so a benign session-context change between the two
824
+ * never fails a write — there is no namespace to "pin".
825
+ */
826
+ private resolveCodingScopedWriteNamespace;
777
827
  private objectiveStateStoreLocationForNamespace;
778
828
  private resolveReadableNamespace;
779
829
  private buildRecallDebug;
@@ -831,6 +881,17 @@ declare class EngramAccessService {
831
881
  * being in a repo is a normal runtime state.
832
882
  */
833
883
  private maybeAttachCodingContext;
884
+ /**
885
+ * Seed the session's coding binding AFTER a committed, project-scoped explicit
886
+ * write (memory_store / suggestion_submit), mirroring the recall path's
887
+ * `maybeAttachCodingContext` so a later bare recall/write on the same session
888
+ * is scoped to the same project. Called only from the post-persist path, so it
889
+ * never fires on dryRun, replay/conflict, or quota-rejected requests. Skips
890
+ * when an explicit `namespace` was supplied — that write bypassed the coding
891
+ * overlay, so binding the session to a project it never wrote to would make
892
+ * later bare recalls miss (Codex review).
893
+ */
894
+ private attachCodingContextAfterScopedWrite;
834
895
  recall(request: EngramAccessRecallRequest): Promise<EngramAccessRecallResponse>;
835
896
  private executeRecall;
836
897
  recallExplain(request?: EngramAccessRecallExplainRequest): Promise<EngramAccessRecallExplainResponse>;
@@ -889,9 +950,13 @@ declare class EngramAccessService {
889
950
  recall?: EngramAccessRecallResponse;
890
951
  }>;
891
952
  private xrayQueue;
892
- memoryStore(request: EngramAccessMemoryStoreRequest): Promise<EngramAccessWriteResponse>;
953
+ memoryStore(request: EngramAccessMemoryStoreRequest, hooks?: {
954
+ enforceWriteQuota?: () => void | Promise<void>;
955
+ }): Promise<EngramAccessWriteResponse>;
893
956
  peekMemoryStoreIdempotency(request: EngramAccessMemoryStoreRequest): Promise<EngramAccessIdempotencyStatus>;
894
- suggestionSubmit(request: EngramAccessSuggestionSubmitRequest): Promise<EngramAccessWriteResponse>;
957
+ suggestionSubmit(request: EngramAccessSuggestionSubmitRequest, hooks?: {
958
+ enforceWriteQuota?: () => void | Promise<void>;
959
+ }): Promise<EngramAccessWriteResponse>;
895
960
  peekSuggestionSubmitIdempotency(request: EngramAccessSuggestionSubmitRequest): Promise<EngramAccessIdempotencyStatus>;
896
961
  private validateWriteCandidate;
897
962
  memoryGet(memoryId: string, namespace?: string, principal?: string): Promise<EngramAccessMemoryResponse>;
@@ -1489,4 +1554,4 @@ declare class EngramAccessService {
1489
1554
  }): Promise<DreamsRunResult>;
1490
1555
  }
1491
1556
 
1492
- export { type EngramAccessReviewDispositionResponse as $, type EngramAccessMemoryBrowseRequest as A, type EngramAccessMemoryBrowseResponse as B, type EngramAccessMemoryRecord as C, type EngramAccessMemoryResponse as D, EngramAccessService as E, type EngramAccessMemoryStoreRequest as F, type EngramAccessMemorySummary as G, type EngramAccessObserveMessage as H, type EngramAccessObserveRequest as I, type EngramAccessObserveResponse as J, type EngramAccessOfflineSyncApplyFileContentRequest as K, type EngramAccessOfflineSyncApplyFileContentResponse as L, type EngramAccessOfflineSyncApplyRequest as M, type EngramAccessOfflineSyncApplyResponse as N, type EngramAccessOfflineSyncFileContentRequest as O, type ProcedureStatsConfigSnapshot as P, type EngramAccessOfflineSyncFileContentResponse as Q, type EngramAccessOfflineSyncFilesRequest as R, type EngramAccessOfflineSyncFilesResponse as S, type EngramAccessOfflineSyncSnapshotRequest as T, type EngramAccessOfflineSyncSnapshotResponse as U, type EngramAccessOfflineSyncSnapshotStreamResponse 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, EngramAccessInputError as b, type ProcedureStatsRecent as c, type ProcedureStatsReport as d, type ProcedureStatusCounts as e, computeProcedureStats as f, formatProcedureStatsText as g, ENGRAM_ACCESS_WRITE_SCHEMA_VERSION as h, type EngramAccessActionConfidenceRequest as i, type EngramAccessActionConfidenceResponse as j, type EngramAccessBriefingRequest as k, type EngramAccessBriefingResponse as l, type EngramAccessCapsuleListResponse as m, type EngramAccessDaySummaryRequest as n, type EngramAccessEntityListResponse as o, type EngramAccessEntityResponse as p, type EngramAccessEntitySummary as q, type EngramAccessHealthResponse as r, type EngramAccessLcmCompactionFlushRequest as s, type EngramAccessLcmCompactionFlushResponse as t, type EngramAccessLcmCompactionRecordRequest as u, type EngramAccessLcmCompactionRecordResponse as v, type EngramAccessLcmSearchRequest as w, type EngramAccessLcmSearchResponse as x, type EngramAccessLcmStatusResponse as y, type EngramAccessMaintenanceResponse as z };
1557
+ export { type EngramAccessReviewDispositionRequest as $, type EngramAccessMemoryBrowseRequest as A, type EngramAccessMemoryBrowseResponse as B, type CodingScopedWriteInput as C, type EngramAccessMemoryRecord as D, EngramAccessService as E, type EngramAccessMemoryResponse as F, type EngramAccessMemoryStoreRequest as G, type EngramAccessMemorySummary as H, type EngramAccessObserveMessage as I, type EngramAccessObserveRequest as J, type EngramAccessObserveResponse as K, type EngramAccessOfflineSyncApplyFileContentRequest as L, type EngramAccessOfflineSyncApplyFileContentResponse as M, type EngramAccessOfflineSyncApplyRequest as N, type EngramAccessOfflineSyncApplyResponse as O, type ProcedureStatsConfigSnapshot as P, type EngramAccessOfflineSyncFileContentRequest as Q, type EngramAccessOfflineSyncFileContentResponse as R, type EngramAccessOfflineSyncFilesRequest as S, type EngramAccessOfflineSyncFilesResponse as T, type EngramAccessOfflineSyncSnapshotRequest as U, type EngramAccessOfflineSyncSnapshotResponse as V, type EngramAccessOfflineSyncSnapshotStreamResponse as W, type EngramAccessQualityResponse as X, type EngramAccessRecallExplainRequest as Y, type EngramAccessRecallExplainResponse as Z, type EngramAccessRecallRequest as _, type EngramAccessRecallResponse as a, type EngramAccessReviewDispositionResponse as a0, type EngramAccessReviewQueueResponse as a1, type EngramAccessSetCodingContextRequest as a2, type EngramAccessSuggestionSubmitRequest as a3, type EngramAccessTimelineResponse as a4, type EngramAccessTrustZoneBrowseRequest as a5, type EngramAccessTrustZoneBrowseResponse as a6, type EngramAccessTrustZoneDemoSeedRequest as a7, type EngramAccessTrustZoneDemoSeedResponse as a8, type EngramAccessTrustZonePromoteRequest as a9, type EngramAccessTrustZonePromoteResponse as aa, type EngramAccessTrustZoneRecordSummary as ab, type EngramAccessTrustZoneStatusResponse as ac, type EngramAccessWriteEnvelope as ad, type EngramAccessWriteResponse as ae, shapeMemorySummary as af, EngramAccessInputError as b, type ProcedureStatsRecent as c, type ProcedureStatsReport as d, type ProcedureStatusCounts as e, computeProcedureStats as f, formatProcedureStatsText as g, ENGRAM_ACCESS_WRITE_SCHEMA_VERSION as h, type EngramAccessActionConfidenceRequest as i, type EngramAccessActionConfidenceResponse as j, type EngramAccessBriefingRequest as k, type EngramAccessBriefingResponse as l, type EngramAccessCapsuleListResponse as m, type EngramAccessDaySummaryRequest as n, type EngramAccessEntityListResponse as o, type EngramAccessEntityResponse as p, type EngramAccessEntitySummary as q, type EngramAccessHealthResponse as r, type EngramAccessLcmCompactionFlushRequest as s, type EngramAccessLcmCompactionFlushResponse as t, type EngramAccessLcmCompactionRecordRequest as u, type EngramAccessLcmCompactionRecordResponse as v, type EngramAccessLcmSearchRequest as w, type EngramAccessLcmSearchResponse as x, type EngramAccessLcmStatusResponse as y, type EngramAccessMaintenanceResponse as z };
@@ -1,6 +1,6 @@
1
1
  import './storage.js';
2
2
  import './types-B1VHaf2w.js';
3
- export { h as ENGRAM_ACCESS_WRITE_SCHEMA_VERSION, i as EngramAccessActionConfidenceRequest, j as EngramAccessActionConfidenceResponse, k as EngramAccessBriefingRequest, l as EngramAccessBriefingResponse, m as EngramAccessCapsuleListResponse, n as EngramAccessDaySummaryRequest, o as EngramAccessEntityListResponse, p as EngramAccessEntityResponse, q as EngramAccessEntitySummary, r as EngramAccessHealthResponse, b as EngramAccessInputError, s as EngramAccessLcmCompactionFlushRequest, t as EngramAccessLcmCompactionFlushResponse, u as EngramAccessLcmCompactionRecordRequest, v as EngramAccessLcmCompactionRecordResponse, w as EngramAccessLcmSearchRequest, x as EngramAccessLcmSearchResponse, y as EngramAccessLcmStatusResponse, z as EngramAccessMaintenanceResponse, A as EngramAccessMemoryBrowseRequest, B as EngramAccessMemoryBrowseResponse, C as EngramAccessMemoryRecord, D as EngramAccessMemoryResponse, F as EngramAccessMemoryStoreRequest, G as EngramAccessMemorySummary, H as EngramAccessObserveMessage, I as EngramAccessObserveRequest, J as EngramAccessObserveResponse, K as EngramAccessOfflineSyncApplyFileContentRequest, L as EngramAccessOfflineSyncApplyFileContentResponse, M as EngramAccessOfflineSyncApplyRequest, N as EngramAccessOfflineSyncApplyResponse, O as EngramAccessOfflineSyncFileContentRequest, Q as EngramAccessOfflineSyncFileContentResponse, R as EngramAccessOfflineSyncFilesRequest, S as EngramAccessOfflineSyncFilesResponse, T as EngramAccessOfflineSyncSnapshotRequest, U as EngramAccessOfflineSyncSnapshotResponse, V as EngramAccessOfflineSyncSnapshotStreamResponse, 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-DGG_2xPK.js';
3
+ export { C as CodingScopedWriteInput, h as ENGRAM_ACCESS_WRITE_SCHEMA_VERSION, i as EngramAccessActionConfidenceRequest, j as EngramAccessActionConfidenceResponse, k as EngramAccessBriefingRequest, l as EngramAccessBriefingResponse, m as EngramAccessCapsuleListResponse, n as EngramAccessDaySummaryRequest, o as EngramAccessEntityListResponse, p as EngramAccessEntityResponse, q as EngramAccessEntitySummary, r as EngramAccessHealthResponse, b as EngramAccessInputError, s as EngramAccessLcmCompactionFlushRequest, t as EngramAccessLcmCompactionFlushResponse, u as EngramAccessLcmCompactionRecordRequest, v as EngramAccessLcmCompactionRecordResponse, w as EngramAccessLcmSearchRequest, x as EngramAccessLcmSearchResponse, y as EngramAccessLcmStatusResponse, z as EngramAccessMaintenanceResponse, A as EngramAccessMemoryBrowseRequest, B as EngramAccessMemoryBrowseResponse, D as EngramAccessMemoryRecord, F as EngramAccessMemoryResponse, G as EngramAccessMemoryStoreRequest, H as EngramAccessMemorySummary, I as EngramAccessObserveMessage, J as EngramAccessObserveRequest, K as EngramAccessObserveResponse, L as EngramAccessOfflineSyncApplyFileContentRequest, M as EngramAccessOfflineSyncApplyFileContentResponse, N as EngramAccessOfflineSyncApplyRequest, O as EngramAccessOfflineSyncApplyResponse, Q as EngramAccessOfflineSyncFileContentRequest, R as EngramAccessOfflineSyncFileContentResponse, S as EngramAccessOfflineSyncFilesRequest, T as EngramAccessOfflineSyncFilesResponse, U as EngramAccessOfflineSyncSnapshotRequest, V as EngramAccessOfflineSyncSnapshotResponse, W as EngramAccessOfflineSyncSnapshotStreamResponse, X as EngramAccessQualityResponse, Y as EngramAccessRecallExplainRequest, Z as EngramAccessRecallExplainResponse, _ as EngramAccessRecallRequest, a as EngramAccessRecallResponse, $ as EngramAccessReviewDispositionRequest, a0 as EngramAccessReviewDispositionResponse, a1 as EngramAccessReviewQueueResponse, E as EngramAccessService, a2 as EngramAccessSetCodingContextRequest, a3 as EngramAccessSuggestionSubmitRequest, a4 as EngramAccessTimelineResponse, a5 as EngramAccessTrustZoneBrowseRequest, a6 as EngramAccessTrustZoneBrowseResponse, a7 as EngramAccessTrustZoneDemoSeedRequest, a8 as EngramAccessTrustZoneDemoSeedResponse, a9 as EngramAccessTrustZonePromoteRequest, aa as EngramAccessTrustZonePromoteResponse, ab as EngramAccessTrustZoneRecordSummary, ac as EngramAccessTrustZoneStatusResponse, ad as EngramAccessWriteEnvelope, ae as EngramAccessWriteResponse, af as shapeMemorySummary } from './access-service-CBNEKjzN.js';
4
4
  import './recall-explain-renderer.js';
5
5
  import './types.js';
6
6
  import './recall-audit-anomaly.js';
@@ -3,7 +3,7 @@ import {
3
3
  EngramAccessInputError,
4
4
  EngramAccessService,
5
5
  shapeMemorySummary
6
- } from "./chunk-ADNZVFXG.js";
6
+ } from "./chunk-ZK32E74R.js";
7
7
  import "./chunk-GDASG7NC.js";
8
8
  import "./chunk-GDB4J2H3.js";
9
9
  import "./chunk-DGNQRNLL.js";
@@ -24,7 +24,7 @@ import "./chunk-EI6V5UXY.js";
24
24
  import "./chunk-QY7YA7OL.js";
25
25
  import "./chunk-NNVTUXEB.js";
26
26
  import "./chunk-QDW3E4RD.js";
27
- import "./chunk-EUML3N6B.js";
27
+ import "./chunk-IMA6GU4Y.js";
28
28
  import "./chunk-ODPLEWB6.js";
29
29
  import "./chunk-XL7FK7PJ.js";
30
30
  import "./chunk-2LSZVONP.js";
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-D24OXEPB.js";
12
12
  import {
13
13
  EngramAccessInputError
14
- } from "./chunk-ADNZVFXG.js";
14
+ } from "./chunk-ZK32E74R.js";
15
15
  import {
16
16
  projectTagProjectId
17
17
  } from "./chunk-EDQVAMQI.js";
@@ -26,7 +26,7 @@ import {
26
26
  } from "./chunk-JUC24CTX.js";
27
27
  import {
28
28
  validateRequest
29
- } from "./chunk-QEMCQFDW.js";
29
+ } from "./chunk-WD2W4234.js";
30
30
 
31
31
  // src/access-mcp.ts
32
32
  import { readFile } from "fs/promises";
@@ -64,7 +64,9 @@ var STRICT_MCP_SCHEMA_KEYS = {
64
64
  "tags",
65
65
  "entityRef",
66
66
  "ttl",
67
- "sourceReason"
67
+ "sourceReason",
68
+ "cwd",
69
+ "projectTag"
68
70
  ],
69
71
  suggestionSubmit: [
70
72
  "schemaVersion",
@@ -78,7 +80,9 @@ var STRICT_MCP_SCHEMA_KEYS = {
78
80
  "tags",
79
81
  "entityRef",
80
82
  "ttl",
81
- "sourceReason"
83
+ "sourceReason",
84
+ "cwd",
85
+ "projectTag"
82
86
  ],
83
87
  capsuleExport: [
84
88
  "name",
@@ -87,10 +91,32 @@ var STRICT_MCP_SCHEMA_KEYS = {
87
91
  "includeKinds",
88
92
  "peerIds",
89
93
  "includeTranscripts",
90
- "encrypt"
94
+ "encrypt",
95
+ "cwd",
96
+ "projectTag"
91
97
  ],
92
- capsuleImport: ["archivePath", "namespace", "mode", "passphrase"],
93
- capsuleList: ["namespace"]
98
+ capsuleImport: ["archivePath", "namespace", "mode", "passphrase", "cwd", "projectTag"],
99
+ capsuleList: ["namespace", "cwd", "projectTag"]
100
+ };
101
+ var MCP_GIT_CONTEXT_SCHEMA_PROPS_SCOPED = {
102
+ cwd: {
103
+ type: "string",
104
+ description: "Optional working directory. When no explicit namespace is given, resolves the project namespace this write is stored in (mirrors recall/observe)."
105
+ },
106
+ projectTag: {
107
+ type: "string",
108
+ description: "Optional project tag for non-git project scoping. When no explicit namespace is given, routes this write to the tagged project namespace."
109
+ }
110
+ };
111
+ var MCP_GIT_CONTEXT_SCHEMA_PROPS_IGNORED = {
112
+ cwd: {
113
+ type: "string",
114
+ description: "Accepted for MCP client compatibility (git-context auto-injection); ignored by this tool."
115
+ },
116
+ projectTag: {
117
+ type: "string",
118
+ description: "Accepted for MCP client compatibility; ignored by this tool."
119
+ }
94
120
  };
95
121
  function parseMcpRequest(schemaName, args) {
96
122
  const allowedKeys = STRICT_MCP_SCHEMA_KEYS[schemaName];
@@ -490,7 +516,8 @@ var EngramMcpServer = class {
490
516
  description: "Optional peer id allow-list for the peers/ subtree."
491
517
  },
492
518
  includeTranscripts: { type: "boolean" },
493
- encrypt: { type: "boolean" }
519
+ encrypt: { type: "boolean" },
520
+ ...MCP_GIT_CONTEXT_SCHEMA_PROPS_IGNORED
494
521
  },
495
522
  required: ["name"],
496
523
  additionalProperties: false
@@ -515,7 +542,8 @@ var EngramMcpServer = class {
515
542
  passphrase: {
516
543
  type: "string",
517
544
  description: "Passphrase for encrypted capsule archives."
518
- }
545
+ },
546
+ ...MCP_GIT_CONTEXT_SCHEMA_PROPS_IGNORED
519
547
  },
520
548
  required: ["archivePath"],
521
549
  additionalProperties: false
@@ -527,7 +555,8 @@ var EngramMcpServer = class {
527
555
  inputSchema: {
528
556
  type: "object",
529
557
  properties: {
530
- namespace: { type: "string" }
558
+ namespace: { type: "string" },
559
+ ...MCP_GIT_CONTEXT_SCHEMA_PROPS_IGNORED
531
560
  },
532
561
  additionalProperties: false
533
562
  }
@@ -628,7 +657,8 @@ var EngramMcpServer = class {
628
657
  tags: { type: "array", items: { type: "string" } },
629
658
  entityRef: { type: "string" },
630
659
  ttl: { type: "string" },
631
- sourceReason: { type: "string" }
660
+ sourceReason: { type: "string" },
661
+ ...MCP_GIT_CONTEXT_SCHEMA_PROPS_SCOPED
632
662
  },
633
663
  required: ["content"],
634
664
  additionalProperties: false
@@ -651,7 +681,8 @@ var EngramMcpServer = class {
651
681
  tags: { type: "array", items: { type: "string" } },
652
682
  entityRef: { type: "string" },
653
683
  ttl: { type: "string" },
654
- sourceReason: { type: "string" }
684
+ sourceReason: { type: "string" },
685
+ ...MCP_GIT_CONTEXT_SCHEMA_PROPS_SCOPED
655
686
  },
656
687
  required: ["content"],
657
688
  additionalProperties: false
@@ -2246,7 +2277,9 @@ ${body}`;
2246
2277
  tags: body.tags,
2247
2278
  entityRef: body.entityRef,
2248
2279
  ttl: body.ttl,
2249
- sourceReason: body.sourceReason
2280
+ sourceReason: body.sourceReason,
2281
+ cwd: body.cwd,
2282
+ projectTag: body.projectTag
2250
2283
  });
2251
2284
  }
2252
2285
  case "engram.suggestion_submit": {
@@ -2264,7 +2297,9 @@ ${body}`;
2264
2297
  tags: body.tags,
2265
2298
  entityRef: body.entityRef,
2266
2299
  ttl: body.ttl,
2267
- sourceReason: body.sourceReason
2300
+ sourceReason: body.sourceReason,
2301
+ cwd: body.cwd,
2302
+ projectTag: body.projectTag
2268
2303
  });
2269
2304
  }
2270
2305
  case "engram.entity_get":
@@ -2868,4 +2903,4 @@ ${body}`;
2868
2903
  export {
2869
2904
  EngramMcpServer
2870
2905
  };
2871
- //# sourceMappingURL=chunk-B6FDZPCF.js.map
2906
+ //# sourceMappingURL=chunk-5OHHEORR.js.map