@remnic/core 9.69.96 → 9.69.98

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 (136) hide show
  1. package/dist/access-admin-ops-surface.js +9 -9
  2. package/dist/access-authorization-probe.js +10 -10
  3. package/dist/access-boundary.js +9 -9
  4. package/dist/access-cli.js +34 -34
  5. package/dist/access-extraction-force-flush.js +9 -9
  6. package/dist/access-http-briefing.js +10 -10
  7. package/dist/access-http-query.js +9 -9
  8. package/dist/access-http.d.ts.map +1 -1
  9. package/dist/access-http.js +28 -28
  10. package/dist/access-identity-continuity-surface.js +9 -9
  11. package/dist/access-lcm-surface.js +9 -9
  12. package/dist/access-mcp.js +16 -16
  13. package/dist/access-namespace-preflight.js +9 -9
  14. package/dist/access-observe-write-category.js +6 -6
  15. package/dist/access-observe-write-surface.js +9 -9
  16. package/dist/access-offline-manifest.js +5 -5
  17. package/dist/access-operations-batch.js +10 -10
  18. package/dist/access-operations.js +15 -15
  19. package/dist/access-recall-concurrency.js +9 -9
  20. package/dist/access-recall-response.js +9 -9
  21. package/dist/access-recall-surface.js +9 -9
  22. package/dist/access-schema.js +5 -5
  23. package/dist/access-service.js +9 -9
  24. package/dist/access-surface-catalog.js +11 -11
  25. package/dist/active-recall.js +5 -5
  26. package/dist/adapters/claude-code.js +2 -2
  27. package/dist/adapters/codex.js +2 -2
  28. package/dist/adapters/hermes.js +2 -2
  29. package/dist/adapters/index.js +6 -6
  30. package/dist/adapters/registry.js +6 -6
  31. package/dist/adapters/replit.js +2 -2
  32. package/dist/adapters/types.d.ts +2 -0
  33. package/dist/adapters/types.d.ts.map +1 -1
  34. package/dist/adapters/types.js +1 -1
  35. package/dist/{chunk-F23U5YE7.js → chunk-2KB7TTAP.js} +12 -10
  36. package/dist/chunk-2KB7TTAP.js.map +1 -0
  37. package/dist/{chunk-J64TK33U.js → chunk-3JKYQBLC.js} +5 -4
  38. package/dist/{chunk-J64TK33U.js.map → chunk-3JKYQBLC.js.map} +1 -1
  39. package/dist/{chunk-MSAI3Q7D.js → chunk-3QH4NT72.js} +2 -2
  40. package/dist/{chunk-P62DSJUK.js → chunk-3RMJLDMS.js} +4 -4
  41. package/dist/{chunk-KNI4SGQE.js → chunk-3SNJMRC7.js} +7 -7
  42. package/dist/{chunk-WHIGRW7T.js → chunk-4HUMF74S.js} +2 -2
  43. package/dist/{chunk-U36GYZ2P.js → chunk-55NZVUNI.js} +2 -2
  44. package/dist/{chunk-UG5V3Z3R.js → chunk-6MWPIWPF.js} +3 -3
  45. package/dist/{chunk-OEBUAC3O.js → chunk-76GQBIVX.js} +2 -2
  46. package/dist/{chunk-RSUYKGGZ.js → chunk-7RKSJVOQ.js} +5 -4
  47. package/dist/{chunk-RSUYKGGZ.js.map → chunk-7RKSJVOQ.js.map} +1 -1
  48. package/dist/{chunk-4NSLQ7EU.js → chunk-ANPRNTPT.js} +3 -3
  49. package/dist/{chunk-4NSLQ7EU.js.map → chunk-ANPRNTPT.js.map} +1 -1
  50. package/dist/{chunk-6BG364RN.js → chunk-AWEHMKIO.js} +2 -2
  51. package/dist/{chunk-AF5PW35O.js → chunk-FQJ4YXJO.js} +2 -2
  52. package/dist/{chunk-42NQ7AVG.js → chunk-HCAGBFE7.js} +5 -4
  53. package/dist/{chunk-42NQ7AVG.js.map → chunk-HCAGBFE7.js.map} +1 -1
  54. package/dist/{chunk-KYOZ5E6V.js → chunk-HDOWMJKD.js} +2 -2
  55. package/dist/{chunk-ANGZWYL2.js → chunk-I7BRU753.js} +3 -3
  56. package/dist/{chunk-MZAH3CBT.js → chunk-IKWD4VP7.js} +2 -2
  57. package/dist/{chunk-HQCUUVG2.js → chunk-J3GJ23IP.js} +19 -12
  58. package/dist/chunk-J3GJ23IP.js.map +1 -0
  59. package/dist/{chunk-3BTHXB7Z.js → chunk-JAQXKNQV.js} +2 -2
  60. package/dist/{chunk-AXGJMDBS.js → chunk-KO4X4WRJ.js} +2 -2
  61. package/dist/{chunk-VOZNBQNL.js → chunk-LBU623X7.js} +2 -2
  62. package/dist/{chunk-5S7SNRSJ.js → chunk-N6GYEWFQ.js} +2 -2
  63. package/dist/{chunk-7RXCMVFQ.js → chunk-NJAIR57U.js} +1 -1
  64. package/dist/{chunk-7RXCMVFQ.js.map → chunk-NJAIR57U.js.map} +1 -1
  65. package/dist/{chunk-PH2V7EXZ.js → chunk-NWXGLTWN.js} +2 -2
  66. package/dist/{chunk-R5B3OWI4.js → chunk-OYQAYIGE.js} +7 -7
  67. package/dist/{chunk-A3K2KKSG.js → chunk-PYYQCHJC.js} +2 -2
  68. package/dist/{chunk-GXETU7AE.js → chunk-QVYXXOTR.js} +7 -7
  69. package/dist/{chunk-TMSXWOBZ.js → chunk-SI36RWC3.js} +5 -4
  70. package/dist/{chunk-TMSXWOBZ.js.map → chunk-SI36RWC3.js.map} +1 -1
  71. package/dist/{chunk-NSKXRTVZ.js → chunk-ST4IBSPL.js} +2 -2
  72. package/dist/{chunk-SMLKHXPF.js → chunk-UKWQSPUU.js} +2 -2
  73. package/dist/{chunk-IVEHY2VT.js → chunk-VQEOBVF2.js} +4 -4
  74. package/dist/{chunk-YHZWVDP7.js → chunk-YHDA3DSO.js} +2 -2
  75. package/dist/{chunk-C6HPNPNK.js → chunk-ZK4XGNJ3.js} +4 -4
  76. package/dist/{chunk-ZQTYWSO3.js → chunk-ZNEA255W.js} +2 -2
  77. package/dist/cli.js +32 -32
  78. package/dist/config.js +5 -5
  79. package/dist/deep-recall-http-glue.js +6 -6
  80. package/dist/external-wiki-access.js +10 -10
  81. package/dist/index.js +34 -34
  82. package/dist/memory-browse-operations.js +10 -10
  83. package/dist/offline-sync-changeset-generations.js +3 -3
  84. package/dist/offline-sync-embedding-generation.js +2 -2
  85. package/dist/offline-sync-exclude-globs.d.ts +1 -0
  86. package/dist/offline-sync-exclude-globs.d.ts.map +1 -1
  87. package/dist/offline-sync-exclude-globs.js +1 -1
  88. package/dist/offline-sync-snapshot-stream.js +5 -5
  89. package/dist/offline-sync.js +4 -4
  90. package/dist/operator-toolkit.js +6 -6
  91. package/dist/orchestrator.js +34 -34
  92. package/dist/recall-navigation-operations.js +10 -10
  93. package/dist/recall-navigation.js +9 -9
  94. package/dist/resume-bundles.js +6 -6
  95. package/dist/support-passport/index.js +12 -12
  96. package/package.json +2 -2
  97. package/src/access-http-adapter-namespace.test.ts +217 -0
  98. package/src/access-http.ts +8 -0
  99. package/src/adapters/claude-code.ts +4 -4
  100. package/src/adapters/codex.ts +3 -3
  101. package/src/adapters/grok-opencode.test.ts +2 -0
  102. package/src/adapters/grok.ts +3 -3
  103. package/src/adapters/hermes.ts +3 -3
  104. package/src/adapters/opencode.ts +3 -3
  105. package/src/adapters/replit.ts +3 -3
  106. package/src/adapters/types.ts +2 -0
  107. package/src/offline-sync-exclude-globs.ts +3 -2
  108. package/src/offline-sync.test.ts +12 -0
  109. package/dist/chunk-F23U5YE7.js.map +0 -1
  110. package/dist/chunk-HQCUUVG2.js.map +0 -1
  111. /package/dist/{chunk-MSAI3Q7D.js.map → chunk-3QH4NT72.js.map} +0 -0
  112. /package/dist/{chunk-P62DSJUK.js.map → chunk-3RMJLDMS.js.map} +0 -0
  113. /package/dist/{chunk-KNI4SGQE.js.map → chunk-3SNJMRC7.js.map} +0 -0
  114. /package/dist/{chunk-WHIGRW7T.js.map → chunk-4HUMF74S.js.map} +0 -0
  115. /package/dist/{chunk-U36GYZ2P.js.map → chunk-55NZVUNI.js.map} +0 -0
  116. /package/dist/{chunk-UG5V3Z3R.js.map → chunk-6MWPIWPF.js.map} +0 -0
  117. /package/dist/{chunk-OEBUAC3O.js.map → chunk-76GQBIVX.js.map} +0 -0
  118. /package/dist/{chunk-6BG364RN.js.map → chunk-AWEHMKIO.js.map} +0 -0
  119. /package/dist/{chunk-AF5PW35O.js.map → chunk-FQJ4YXJO.js.map} +0 -0
  120. /package/dist/{chunk-KYOZ5E6V.js.map → chunk-HDOWMJKD.js.map} +0 -0
  121. /package/dist/{chunk-ANGZWYL2.js.map → chunk-I7BRU753.js.map} +0 -0
  122. /package/dist/{chunk-MZAH3CBT.js.map → chunk-IKWD4VP7.js.map} +0 -0
  123. /package/dist/{chunk-3BTHXB7Z.js.map → chunk-JAQXKNQV.js.map} +0 -0
  124. /package/dist/{chunk-AXGJMDBS.js.map → chunk-KO4X4WRJ.js.map} +0 -0
  125. /package/dist/{chunk-VOZNBQNL.js.map → chunk-LBU623X7.js.map} +0 -0
  126. /package/dist/{chunk-5S7SNRSJ.js.map → chunk-N6GYEWFQ.js.map} +0 -0
  127. /package/dist/{chunk-PH2V7EXZ.js.map → chunk-NWXGLTWN.js.map} +0 -0
  128. /package/dist/{chunk-R5B3OWI4.js.map → chunk-OYQAYIGE.js.map} +0 -0
  129. /package/dist/{chunk-A3K2KKSG.js.map → chunk-PYYQCHJC.js.map} +0 -0
  130. /package/dist/{chunk-GXETU7AE.js.map → chunk-QVYXXOTR.js.map} +0 -0
  131. /package/dist/{chunk-NSKXRTVZ.js.map → chunk-ST4IBSPL.js.map} +0 -0
  132. /package/dist/{chunk-SMLKHXPF.js.map → chunk-UKWQSPUU.js.map} +0 -0
  133. /package/dist/{chunk-IVEHY2VT.js.map → chunk-VQEOBVF2.js.map} +0 -0
  134. /package/dist/{chunk-YHZWVDP7.js.map → chunk-YHDA3DSO.js.map} +0 -0
  135. /package/dist/{chunk-C6HPNPNK.js.map → chunk-ZK4XGNJ3.js.map} +0 -0
  136. /package/dist/{chunk-ZQTYWSO3.js.map → chunk-ZNEA255W.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/adapters/grok.ts","../src/adapters/opencode.ts","../src/adapters/registry.ts"],"sourcesContent":["import { headerValue, type AdapterContext, type EngramAdapter, type ResolvedIdentity } from \"./types.js\";\n\n/**\n * Grok adapter.\n *\n * Detection: Grok clients identify themselves with a clientInfo name\n * containing \"grok\" in the MCP initialize handshake, and send\n * User-Agent: grok/<version> on HTTP requests. The exact clientInfo\n * name is not yet stable across Grok surfaces (desktop app, CLI), so\n * detection uses a contains-match for forward compatibility.\n *\n * User-configured identification is also supported via headers:\n * \"headers\": { \"X-Engram-Client-Id\": \"grok\" }\n *\n * Principal overrides are intentionally handled only by the HTTP server's\n * trustPrincipalHeader gate. Adapters must not independently trust\n * X-Engram-Principal.\n */\nexport class GrokAdapter implements EngramAdapter {\n readonly id = \"grok\";\n\n matches(context: AdapterContext): boolean {\n // Primary: MCP clientInfo from initialize handshake\n const clientName = context.clientInfo?.name?.toLowerCase() ?? \"\";\n if (clientName.includes(\"grok\")) return true;\n\n // Fallback: User-Agent header (\"grok/<version>\")\n const ua = headerValue(context.headers, \"user-agent\");\n if (ua && ua.toLowerCase().startsWith(\"grok/\")) return true;\n\n // Fallback: user-configured client identifier header\n const clientId = headerValue(context.headers, \"x-engram-client-id\");\n if (clientId?.toLowerCase() === \"grok\") return true;\n\n return false;\n }\n\n resolveIdentity(context: AdapterContext): ResolvedIdentity {\n // MCP session ID (standard MCP header, server-assigned)\n const mcpSessionId = headerValue(context.headers, \"mcp-session-id\");\n\n // Namespace: explicit header > default\n const namespace = headerValue(context.headers, \"x-engram-namespace\")\n || \"grok\";\n\n return {\n namespace,\n principal: \"grok\",\n sessionKey: mcpSessionId ?? context.sessionKey,\n adapterId: this.id,\n };\n }\n}\n","import { headerValue, type AdapterContext, type EngramAdapter, type ResolvedIdentity } from \"./types.js\";\n\n/**\n * OpenCode adapter.\n *\n * Detection: OpenCode identifies itself as \"opencode\" in the MCP\n * clientInfo of its initialize handshake, and sends\n * User-Agent: opencode/<version> on HTTP requests.\n *\n * User-configured identification is also supported via headers in the\n * OpenCode MCP server config:\n * \"headers\": { \"X-Engram-Client-Id\": \"opencode\" }\n *\n * Principal overrides are intentionally handled only by the HTTP server's\n * trustPrincipalHeader gate. Adapters must not independently trust\n * X-Engram-Principal.\n */\nexport class OpenCodeAdapter implements EngramAdapter {\n readonly id = \"opencode\";\n\n matches(context: AdapterContext): boolean {\n // Primary: MCP clientInfo from initialize handshake\n const clientName = context.clientInfo?.name?.toLowerCase() ?? \"\";\n if (clientName.includes(\"opencode\")) return true;\n\n // Fallback: User-Agent header (\"opencode/<version>\")\n const ua = headerValue(context.headers, \"user-agent\");\n if (ua && ua.toLowerCase().startsWith(\"opencode/\")) return true;\n\n // Fallback: user-configured client identifier header\n const clientId = headerValue(context.headers, \"x-engram-client-id\");\n if (clientId?.toLowerCase() === \"opencode\") return true;\n\n return false;\n }\n\n resolveIdentity(context: AdapterContext): ResolvedIdentity {\n // MCP session ID (standard MCP header, server-assigned)\n const mcpSessionId = headerValue(context.headers, \"mcp-session-id\");\n\n // Namespace: explicit header > default\n const namespace = headerValue(context.headers, \"x-engram-namespace\")\n || \"opencode\";\n\n return {\n namespace,\n principal: \"opencode\",\n sessionKey: mcpSessionId ?? context.sessionKey,\n adapterId: this.id,\n };\n }\n}\n","import type { AdapterContext, EngramAdapter, ResolvedIdentity } from \"./types.js\";\nimport { ClaudeCodeAdapter } from \"./claude-code.js\";\nimport { CodexAdapter } from \"./codex.js\";\nimport { GrokAdapter } from \"./grok.js\";\nimport { OpenCodeAdapter } from \"./opencode.js\";\nimport { ReplitAdapter } from \"./replit.js\";\nimport { HermesAdapter } from \"./hermes.js\";\n\n/**\n * Adapter registry. Attempts to identify which external system is\n * connecting by checking each registered adapter in order. Falls back\n * to explicit namespace/principal from the request args.\n */\nexport class AdapterRegistry {\n private readonly adapters: EngramAdapter[];\n\n constructor(adapters?: EngramAdapter[]) {\n this.adapters = adapters ?? [\n new HermesAdapter(),\n new ReplitAdapter(),\n new CodexAdapter(),\n new ClaudeCodeAdapter(),\n new GrokAdapter(),\n new OpenCodeAdapter(),\n ];\n }\n\n /**\n * Try each adapter in order. Return the first match, or null if\n * no adapter recognizes the request context.\n */\n resolve(context: AdapterContext): ResolvedIdentity | null {\n for (const adapter of this.adapters) {\n if (adapter.matches(context)) {\n return adapter.resolveIdentity(context);\n }\n }\n const namespace = context.namespace?.trim();\n const principal = context.principal?.trim();\n if (namespace && principal) {\n return {\n namespace,\n principal,\n sessionKey: context.sessionKey,\n adapterId: \"explicit\",\n };\n }\n return null;\n }\n\n /** List registered adapter IDs */\n list(): string[] {\n return this.adapters.map((a) => a.id);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAkBO,IAAM,cAAN,MAA2C;AAAA,EACvC,KAAK;AAAA,EAEd,QAAQ,SAAkC;AAExC,UAAM,aAAa,QAAQ,YAAY,MAAM,YAAY,KAAK;AAC9D,QAAI,WAAW,SAAS,MAAM,EAAG,QAAO;AAGxC,UAAM,KAAK,YAAY,QAAQ,SAAS,YAAY;AACpD,QAAI,MAAM,GAAG,YAAY,EAAE,WAAW,OAAO,EAAG,QAAO;AAGvD,UAAM,WAAW,YAAY,QAAQ,SAAS,oBAAoB;AAClE,QAAI,UAAU,YAAY,MAAM,OAAQ,QAAO;AAE/C,WAAO;AAAA,EACT;AAAA,EAEA,gBAAgB,SAA2C;AAEzD,UAAM,eAAe,YAAY,QAAQ,SAAS,gBAAgB;AAGlE,UAAM,YAAY,YAAY,QAAQ,SAAS,oBAAoB,KAC9D;AAEL,WAAO;AAAA,MACL;AAAA,MACA,WAAW;AAAA,MACX,YAAY,gBAAgB,QAAQ;AAAA,MACpC,WAAW,KAAK;AAAA,IAClB;AAAA,EACF;AACF;;;ACnCO,IAAM,kBAAN,MAA+C;AAAA,EAC3C,KAAK;AAAA,EAEd,QAAQ,SAAkC;AAExC,UAAM,aAAa,QAAQ,YAAY,MAAM,YAAY,KAAK;AAC9D,QAAI,WAAW,SAAS,UAAU,EAAG,QAAO;AAG5C,UAAM,KAAK,YAAY,QAAQ,SAAS,YAAY;AACpD,QAAI,MAAM,GAAG,YAAY,EAAE,WAAW,WAAW,EAAG,QAAO;AAG3D,UAAM,WAAW,YAAY,QAAQ,SAAS,oBAAoB;AAClE,QAAI,UAAU,YAAY,MAAM,WAAY,QAAO;AAEnD,WAAO;AAAA,EACT;AAAA,EAEA,gBAAgB,SAA2C;AAEzD,UAAM,eAAe,YAAY,QAAQ,SAAS,gBAAgB;AAGlE,UAAM,YAAY,YAAY,QAAQ,SAAS,oBAAoB,KAC9D;AAEL,WAAO;AAAA,MACL;AAAA,MACA,WAAW;AAAA,MACX,YAAY,gBAAgB,QAAQ;AAAA,MACpC,WAAW,KAAK;AAAA,IAClB;AAAA,EACF;AACF;;;ACtCO,IAAM,kBAAN,MAAsB;AAAA,EACV;AAAA,EAEjB,YAAY,UAA4B;AACtC,SAAK,WAAW,YAAY;AAAA,MAC1B,IAAI,cAAc;AAAA,MAClB,IAAI,cAAc;AAAA,MAClB,IAAI,aAAa;AAAA,MACjB,IAAI,kBAAkB;AAAA,MACtB,IAAI,YAAY;AAAA,MAChB,IAAI,gBAAgB;AAAA,IACtB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,QAAQ,SAAkD;AACxD,eAAW,WAAW,KAAK,UAAU;AACnC,UAAI,QAAQ,QAAQ,OAAO,GAAG;AAC5B,eAAO,QAAQ,gBAAgB,OAAO;AAAA,MACxC;AAAA,IACF;AACA,UAAM,YAAY,QAAQ,WAAW,KAAK;AAC1C,UAAM,YAAY,QAAQ,WAAW,KAAK;AAC1C,QAAI,aAAa,WAAW;AAC1B,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA,YAAY,QAAQ;AAAA,QACpB,WAAW;AAAA,MACb;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,OAAiB;AACf,WAAO,KAAK,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE;AAAA,EACtC;AACF;","names":[]}