jeopi-cli 16.2.15 → 16.2.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.
@@ -47,6 +47,8 @@ export interface PluginPackageJson {
47
47
  version: string;
48
48
  description?: string;
49
49
  jeopi?: PluginManifest;
50
+ /** Pre-rebrand manifest key, still honored for installed legacy plugins. */
51
+ omp?: PluginManifest;
50
52
  pi?: PluginManifest;
51
53
  }
52
54
  export type PluginSettingType = "string" | "number" | "boolean" | "enum";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "jeopi-cli",
4
- "version": "16.2.15",
4
+ "version": "16.2.17",
5
5
  "description": "Coding agent CLI with read, bash, edit, write tools and session management",
6
6
  "homepage": "https://github.com/akillness/jeopi",
7
7
  "author": "Can Boluk",
@@ -56,17 +56,17 @@
56
56
  "@agentclientprotocol/sdk": "0.25.0",
57
57
  "@babel/parser": "^7.29.7",
58
58
  "@mozilla/readability": "^0.6.0",
59
- "jeopi-hashline": "16.2.15",
60
- "jeopi-stats": "16.2.15",
61
- "jeopi-agent-core": "16.2.15",
62
- "jeopi-ai": "16.2.15",
63
- "jeopi-catalog": "16.2.15",
64
- "jeopi-mnemopi": "16.2.15",
65
- "jeopi-natives": "16.2.15",
66
- "jeopi-tui": "16.2.15",
67
- "jeopi-utils": "16.2.15",
68
- "jeopi-wire": "16.2.15",
69
- "jeopi-snapcompact": "16.2.15",
59
+ "jeopi-hashline": "16.2.17",
60
+ "jeopi-stats": "16.2.17",
61
+ "jeopi-agent-core": "16.2.17",
62
+ "jeopi-ai": "16.2.17",
63
+ "jeopi-catalog": "16.2.17",
64
+ "jeopi-mnemopi": "16.2.17",
65
+ "jeopi-natives": "16.2.17",
66
+ "jeopi-tui": "16.2.17",
67
+ "jeopi-utils": "16.2.17",
68
+ "jeopi-wire": "16.2.17",
69
+ "jeopi-snapcompact": "16.2.17",
70
70
  "@opentelemetry/api": "^1.9.1",
71
71
  "@opentelemetry/context-async-hooks": "^2.7.1",
72
72
  "@opentelemetry/exporter-trace-otlp-proto": "^0.218.0",
@@ -366,8 +366,12 @@ interface ExtensionManifest {
366
366
 
367
367
  async function readExtensionManifest(packageJsonPath: string): Promise<ExtensionManifest | null> {
368
368
  try {
369
- const pkg = (await Bun.file(packageJsonPath).json()) as { jeopi?: ExtensionManifest; pi?: ExtensionManifest };
370
- const manifest = pkg.jeopi ?? pkg.pi;
369
+ const pkg = (await Bun.file(packageJsonPath).json()) as {
370
+ jeopi?: ExtensionManifest;
371
+ omp?: ExtensionManifest;
372
+ pi?: ExtensionManifest;
373
+ };
374
+ const manifest = pkg.jeopi ?? pkg.omp ?? pkg.pi;
371
375
  if (manifest && typeof manifest === "object") {
372
376
  return manifest;
373
377
  }
@@ -75,7 +75,7 @@ export async function installPlugin(packageName: string): Promise<InstalledPlugi
75
75
  name: pkg.name,
76
76
  version: pkg.version,
77
77
  path: path.join(PLUGINS_DIR, "node_modules", actualName),
78
- manifest: pkg.omp || pkg.pi || { version: pkg.version },
78
+ manifest: pkg.jeopi || pkg.omp || pkg.pi || { version: pkg.version },
79
79
  enabledFeatures: null,
80
80
  enabled: true,
81
81
  };
@@ -120,7 +120,7 @@ export async function listPlugins(): Promise<InstalledPlugin[]> {
120
120
  name,
121
121
  version: pkg.version,
122
122
  path: pluginPath,
123
- manifest: pkg.omp || pkg.pi || { version: pkg.version },
123
+ manifest: pkg.jeopi || pkg.omp || pkg.pi || { version: pkg.version },
124
124
  enabledFeatures: null,
125
125
  enabled: true,
126
126
  });
@@ -292,6 +292,7 @@ export const BUNDLED_PI_REGISTRY_KEYS: ReadonlySet<string> = new Set([
292
292
  "@oh-my-pi/pi-coding-agent/cli/gallery-fixtures/types",
293
293
  "@oh-my-pi/pi-coding-agent/cli/gallery-fixtures/web",
294
294
  "@oh-my-pi/pi-coding-agent/cli/commands/init-xdg",
295
+ "@oh-my-pi/pi-coding-agent/cli/commands/migrate-legacy",
295
296
  "@oh-my-pi/pi-coding-agent/commands/acp",
296
297
  "@oh-my-pi/pi-coding-agent/commands/agents",
297
298
  "@oh-my-pi/pi-coding-agent/commands/auth-broker",
@@ -544,6 +545,7 @@ export const BUNDLED_PI_REGISTRY_KEYS: ReadonlySet<string> = new Set([
544
545
  "@oh-my-pi/pi-coding-agent/mcp/transports/http",
545
546
  "@oh-my-pi/pi-coding-agent/mcp/transports/sse",
546
547
  "@oh-my-pi/pi-coding-agent/mcp/transports/stdio",
548
+ "@oh-my-pi/pi-coding-agent/memories/okf",
547
549
  "@oh-my-pi/pi-coding-agent/memories/storage",
548
550
  "@oh-my-pi/pi-coding-agent/memory-backend/local-backend",
549
551
  "@oh-my-pi/pi-coding-agent/memory-backend/off-backend",
@@ -772,6 +774,7 @@ export const BUNDLED_PI_REGISTRY_KEYS: ReadonlySet<string> = new Set([
772
774
  "@oh-my-pi/pi-coding-agent/stt/wav",
773
775
  "@oh-my-pi/pi-coding-agent/task/agents",
774
776
  "@oh-my-pi/pi-coding-agent/task/commands",
777
+ "@oh-my-pi/pi-coding-agent/task/critic-gate",
775
778
  "@oh-my-pi/pi-coding-agent/task/discovery",
776
779
  "@oh-my-pi/pi-coding-agent/task/executor",
777
780
  "@oh-my-pi/pi-coding-agent/task/isolation-runner",
@@ -211,6 +211,7 @@ import * as bundledPiCodingAgentCliBenchCli from "jeopi-cli/cli/bench-cli";
211
211
  import * as bundledPiCodingAgentCliClassifyInstallTarget from "jeopi-cli/cli/classify-install-target";
212
212
  import * as bundledPiCodingAgentCliClaudeTraceCli from "jeopi-cli/cli/claude-trace-cli";
213
213
  import * as bundledPiCodingAgentCliCommandsInitXdg from "jeopi-cli/cli/commands/init-xdg";
214
+ import * as bundledPiCodingAgentCliCommandsMigrateLegacy from "jeopi-cli/cli/commands/migrate-legacy";
214
215
  import * as bundledPiCodingAgentCliCompletionGen from "jeopi-cli/cli/completion-gen";
215
216
  import * as bundledPiCodingAgentCliConfigCli from "jeopi-cli/cli/config-cli";
216
217
  import * as bundledPiCodingAgentCliDryBalanceCli from "jeopi-cli/cli/dry-balance-cli";
@@ -542,6 +543,7 @@ import * as bundledPiCodingAgentMcpTransportsSse from "jeopi-cli/mcp/transports/
542
543
  import * as bundledPiCodingAgentMcpTransportsStdio from "jeopi-cli/mcp/transports/stdio";
543
544
  import * as bundledPiCodingAgentMcpTypes from "jeopi-cli/mcp/types";
544
545
  import * as bundledPiCodingAgentMemories from "jeopi-cli/memories";
546
+ import * as bundledPiCodingAgentMemoriesOkf from "jeopi-cli/memories/okf";
545
547
  import * as bundledPiCodingAgentMemoriesStorage from "jeopi-cli/memories/storage";
546
548
  import * as bundledPiCodingAgentMemoryBackend from "jeopi-cli/memory-backend";
547
549
  import * as bundledPiCodingAgentMemoryBackendLocalBackend from "jeopi-cli/memory-backend/local-backend";
@@ -773,6 +775,7 @@ import * as bundledPiCodingAgentSttWav from "jeopi-cli/stt/wav";
773
775
  import * as bundledPiCodingAgentTask from "jeopi-cli/task";
774
776
  import * as bundledPiCodingAgentTaskAgents from "jeopi-cli/task/agents";
775
777
  import * as bundledPiCodingAgentTaskCommands from "jeopi-cli/task/commands";
778
+ import * as bundledPiCodingAgentTaskCriticGate from "jeopi-cli/task/critic-gate";
776
779
  import * as bundledPiCodingAgentTaskDiscovery from "jeopi-cli/task/discovery";
777
780
  import * as bundledPiCodingAgentTaskExecutor from "jeopi-cli/task/executor";
778
781
  import * as bundledPiCodingAgentTaskIsolationRunner from "jeopi-cli/task/isolation-runner";
@@ -1657,6 +1660,8 @@ export const BUNDLED_PI_REGISTRY: Readonly<Record<string, Readonly<Record<string
1657
1660
  "@oh-my-pi/pi-coding-agent/cli/commands/init-xdg": bundledPiCodingAgentCliCommandsInitXdg as unknown as Readonly<
1658
1661
  Record<string, unknown>
1659
1662
  >,
1663
+ "@oh-my-pi/pi-coding-agent/cli/commands/migrate-legacy":
1664
+ bundledPiCodingAgentCliCommandsMigrateLegacy as unknown as Readonly<Record<string, unknown>>,
1660
1665
  "@oh-my-pi/pi-coding-agent/commands/acp": bundledPiCodingAgentCommandsAcp as unknown as Readonly<
1661
1666
  Record<string, unknown>
1662
1667
  >,
@@ -2304,6 +2309,9 @@ export const BUNDLED_PI_REGISTRY: Readonly<Record<string, Readonly<Record<string
2304
2309
  "@oh-my-pi/pi-coding-agent/mcp/transports/stdio": bundledPiCodingAgentMcpTransportsStdio as unknown as Readonly<
2305
2310
  Record<string, unknown>
2306
2311
  >,
2312
+ "@oh-my-pi/pi-coding-agent/memories/okf": bundledPiCodingAgentMemoriesOkf as unknown as Readonly<
2313
+ Record<string, unknown>
2314
+ >,
2307
2315
  "@oh-my-pi/pi-coding-agent/memories/storage": bundledPiCodingAgentMemoriesStorage as unknown as Readonly<
2308
2316
  Record<string, unknown>
2309
2317
  >,
@@ -2834,6 +2842,9 @@ export const BUNDLED_PI_REGISTRY: Readonly<Record<string, Readonly<Record<string
2834
2842
  "@oh-my-pi/pi-coding-agent/task/commands": bundledPiCodingAgentTaskCommands as unknown as Readonly<
2835
2843
  Record<string, unknown>
2836
2844
  >,
2845
+ "@oh-my-pi/pi-coding-agent/task/critic-gate": bundledPiCodingAgentTaskCriticGate as unknown as Readonly<
2846
+ Record<string, unknown>
2847
+ >,
2837
2848
  "@oh-my-pi/pi-coding-agent/task/discovery": bundledPiCodingAgentTaskDiscovery as unknown as Readonly<
2838
2849
  Record<string, unknown>
2839
2850
  >,
@@ -117,9 +117,9 @@ async function collectPluginsAtRoot(
117
117
  throw err;
118
118
  }
119
119
 
120
- const manifest: PluginManifest | undefined = pluginPkg.jeopi || pluginPkg.pi;
120
+ const manifest: PluginManifest | undefined = pluginPkg.jeopi || pluginPkg.omp || pluginPkg.pi;
121
121
  if (!manifest) {
122
- // No jeopi/pi plugin manifest, skip
122
+ // No jeopi/omp/pi plugin manifest, skip
123
123
  continue;
124
124
  }
125
125
  manifest.version = pluginPkg.version;
@@ -241,13 +241,14 @@ function readDeclaredManifestEntries(dir: string): DeclaredManifestEntries {
241
241
  } catch {
242
242
  return { declared: false, files: [] };
243
243
  }
244
- let pkg: { jeopi?: { extensions?: unknown }; pi?: { extensions?: unknown } };
244
+ type ManifestExtensionEntries = { extensions?: unknown };
245
+ let pkg: { jeopi?: ManifestExtensionEntries; omp?: ManifestExtensionEntries; pi?: ManifestExtensionEntries };
245
246
  try {
246
- pkg = JSON.parse(raw) as { jeopi?: { extensions?: unknown }; pi?: { extensions?: unknown } };
247
+ pkg = JSON.parse(raw) as typeof pkg;
247
248
  } catch {
248
249
  return { declared: false, files: [] };
249
250
  }
250
- const declared = (pkg.jeopi ?? pkg.pi)?.extensions;
251
+ const declared = (pkg.jeopi ?? pkg.omp ?? pkg.pi)?.extensions;
251
252
  if (!Array.isArray(declared) || declared.length === 0) {
252
253
  return { declared: false, files: [] };
253
254
  }
@@ -526,7 +526,7 @@ export class PluginManager {
526
526
  }
527
527
  throw err;
528
528
  }
529
- const manifest: PluginManifest = pkg.jeopi || pkg.pi || { version: pkg.version };
529
+ const manifest: PluginManifest = pkg.jeopi || pkg.omp || pkg.pi || { version: pkg.version };
530
530
  manifest.version = pkg.version;
531
531
 
532
532
  // Resolve enabled features
@@ -652,7 +652,9 @@ export class PluginManager {
652
652
  if (isEnoent(err)) continue;
653
653
  throw err;
654
654
  }
655
- const manifest: PluginManifest = pluginPkg.jeopi || pluginPkg.pi || { version: pluginPkg.version };
655
+ const manifest: PluginManifest = pluginPkg.jeopi ||
656
+ pluginPkg.omp ||
657
+ pluginPkg.pi || { version: pluginPkg.version };
656
658
  manifest.version = pluginPkg.version;
657
659
 
658
660
  const runtimeState = config.plugins[name] || {
@@ -717,7 +719,7 @@ export class PluginManager {
717
719
 
718
720
  await fs.promises.symlink(absolutePath, linkPath);
719
721
 
720
- const manifest: PluginManifest = pkg.jeopi || pkg.pi || { version: pkg.version };
722
+ const manifest: PluginManifest = pkg.jeopi || pkg.omp || pkg.pi || { version: pkg.version };
721
723
  manifest.version = pkg.version;
722
724
 
723
725
  // Add to runtime config
@@ -930,15 +932,15 @@ export class PluginManager {
930
932
  }
931
933
  throw err;
932
934
  }
933
- const hasManifest = !!(pluginPkg.jeopi || pluginPkg.pi);
934
- const manifest: PluginManifest | undefined = pluginPkg.jeopi || pluginPkg.pi;
935
+ const hasManifest = !!(pluginPkg.jeopi || pluginPkg.omp || pluginPkg.pi);
936
+ const manifest: PluginManifest | undefined = pluginPkg.jeopi || pluginPkg.omp || pluginPkg.pi;
935
937
 
936
938
  checks.push({
937
939
  name: `plugin:${name}`,
938
940
  status: hasManifest ? "ok" : "warning",
939
941
  message: hasManifest
940
942
  ? `v${pluginPkg.version}${pluginPkg.description ? ` - ${pluginPkg.description}` : ""}`
941
- : `v${pluginPkg.version} - No omp/pi manifest (not a jeopi plugin)`,
943
+ : `v${pluginPkg.version} - No jeopi/omp/pi manifest (not a jeopi plugin)`,
942
944
  });
943
945
 
944
946
  // Check tools path exists if specified
@@ -56,6 +56,8 @@ export interface PluginPackageJson {
56
56
  version: string;
57
57
  description?: string;
58
58
  jeopi?: PluginManifest;
59
+ /** Pre-rebrand manifest key, still honored for installed legacy plugins. */
60
+ omp?: PluginManifest;
59
61
  pi?: PluginManifest;
60
62
  }
61
63
 
@@ -23,7 +23,7 @@ async function runProbeScenario(options: {
23
23
  const cacheRoot = path.join(tempRoot, "cache");
24
24
  const probeCountPath = path.join(tempRoot, "probe-count");
25
25
  await fs.mkdir(binDir, { recursive: true });
26
- await fs.mkdir(path.join(cacheRoot, "omp"), { recursive: true });
26
+ await fs.mkdir(path.join(cacheRoot, "jeopi"), { recursive: true });
27
27
  const lspciPath = path.join(binDir, "lspci");
28
28
  await Bun.write(
29
29
  lspciPath,