@remnic/core 9.3.667 → 9.3.669

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.
@@ -23,8 +23,8 @@ import {
23
23
  upsertHermesConfig,
24
24
  validateMarketplaceManifest,
25
25
  writeMarketplaceManifest
26
- } from "../chunk-7V36WCUW.js";
27
- import "../chunk-G56P5RLD.js";
26
+ } from "../chunk-BTLNC5YM.js";
27
+ import "../chunk-UG274TNV.js";
28
28
  import {
29
29
  runCodexMaterialize
30
30
  } from "../chunk-AARDBQTA.js";
package/dist/index.js CHANGED
@@ -43,7 +43,7 @@ import {
43
43
  saveRegistry,
44
44
  validateMarketplaceManifest,
45
45
  writeMarketplaceManifest
46
- } from "./chunk-7V36WCUW.js";
46
+ } from "./chunk-BTLNC5YM.js";
47
47
  import "./chunk-V5OCT34X.js";
48
48
  import {
49
49
  executeResolution,
@@ -72,7 +72,7 @@ import {
72
72
  resolveConnectorFromToken,
73
73
  revokeToken,
74
74
  saveTokenStore
75
- } from "./chunk-G56P5RLD.js";
75
+ } from "./chunk-UG274TNV.js";
76
76
  import {
77
77
  runGraphRecall
78
78
  } from "./chunk-DGVM5SFL.js";
package/dist/tokens.js CHANGED
@@ -9,7 +9,7 @@ import {
9
9
  resolveConnectorFromToken,
10
10
  revokeToken,
11
11
  saveTokenStore
12
- } from "./chunk-G56P5RLD.js";
12
+ } from "./chunk-UG274TNV.js";
13
13
  import "./chunk-JUC24CTX.js";
14
14
  import "./chunk-PZ5AY32C.js";
15
15
  export {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remnic/core",
3
- "version": "9.3.667",
3
+ "version": "9.3.669",
4
4
  "description": "Framework-agnostic Remnic memory engine — orchestrator, storage, extraction, search, trust zones",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -154,6 +154,26 @@ test("loadRegistry does not overwrite malformed registry.json", async (t) => {
154
154
  );
155
155
  });
156
156
 
157
+ test("BUILTIN catalog includes the omp (oh-my-pi) connector", async (t) => {
158
+ const sandbox = makeSandbox(t);
159
+
160
+ await withEnv(
161
+ {
162
+ HOME: sandbox.home,
163
+ USERPROFILE: sandbox.home,
164
+ XDG_CONFIG_HOME: sandbox.xdgConfigHome,
165
+ },
166
+ () => {
167
+ const registry = loadRegistry();
168
+ const omp = registry.connectors.find((connector) => connector.id === "omp");
169
+
170
+ assert.ok(omp, "omp connector should be present in the built-in catalog");
171
+ assert.equal(omp?.requiresToken, true);
172
+ assert.match(omp?.homepage ?? "", /omp\.sh/);
173
+ },
174
+ );
175
+ });
176
+
157
177
  test("loadRegistry filters custom connectors with invalid IDs", async (t) => {
158
178
  const sandbox = makeSandbox(t);
159
179
 
@@ -415,6 +415,33 @@ const BUILTIN_CONNECTORS: ConnectorManifest[] = [
415
415
  tags: ["official", "ai", "pi", "coding-agent"],
416
416
  requiresToken: true,
417
417
  },
418
+ {
419
+ id: "omp",
420
+ name: "Oh My Pi (omp)",
421
+ version: "1.0.0",
422
+ description:
423
+ "Oh My Pi (omp) — Pi-fork coding agent; native extension for recall, observe, MCP tools, and compaction coordination",
424
+ capabilities: {
425
+ observe: true,
426
+ recall: true,
427
+ store: true,
428
+ search: true,
429
+ entities: true,
430
+ realtimeSync: true,
431
+ batch: true,
432
+ maxBudgetChars: 32000,
433
+ connectionType: "http",
434
+ },
435
+ configSchema: {
436
+ remnicDaemonUrl: "URL of the Remnic daemon (default: http://127.0.0.1:4318)",
437
+ namespace: "Optional namespace",
438
+ installExtension: "Install the omp extension into ~/.omp/agent/extensions/remnic (default: true)",
439
+ },
440
+ homepage: "https://omp.sh",
441
+ author: "Remnic",
442
+ tags: ["official", "ai", "omp", "pi", "coding-agent"],
443
+ requiresToken: true,
444
+ },
418
445
  {
419
446
  id: "replit",
420
447
  name: "Replit Agent",
@@ -194,3 +194,17 @@ test("token writes invalidate the cached valid-token list", async () => {
194
194
  await rm(dir, { recursive: true, force: true });
195
195
  }
196
196
  });
197
+
198
+ test("generateToken uses a recognizable prefix for the omp connector", async () => {
199
+ const { dir, tokensPath } = await makeTempTokenPath();
200
+ try {
201
+ const entry = generateToken("omp", tokensPath);
202
+ assert.equal(entry.connector, "omp");
203
+ assert.ok(
204
+ entry.token.startsWith("remnic_op_"),
205
+ `expected remnic_op_ prefix, got ${entry.token}`,
206
+ );
207
+ } finally {
208
+ await rm(dir, { recursive: true, force: true });
209
+ }
210
+ });
package/src/tokens.ts CHANGED
@@ -27,6 +27,7 @@ const TOKEN_PREFIXES: Record<string, string> = {
27
27
  "codex": "remnic_cx_",
28
28
  "hermes": "remnic_hm_",
29
29
  "pi": "remnic_pi_",
30
+ "omp": "remnic_op_",
30
31
  "replit": "remnic_rl_",
31
32
  "cursor": "remnic_cu_",
32
33
  "cline": "remnic_cl_",