| 113 | } |
| 114 | |
| 115 | function parseArgs(): CLIArgs { |
| 116 | const args = process.argv.slice(2); |
| 117 | const out: CLIArgs = { |
| 118 | configPath: join(homedir(), ".config/opencode/magic-context.jsonc"), |
| 119 | outDir: resolve(process.cwd(), "local-ignore/embedding-baseline"), |
| 120 | }; |
| 121 | for (let i = 0; i < args.length; i++) { |
| 122 | const arg = args[i]; |
| 123 | if (arg === "--config" && args[i + 1]) { |
| 124 | out.configPath = resolve(args[++i]); |
| 125 | } else if (arg === "--out" && args[i + 1]) { |
| 126 | out.outDir = resolve(args[++i]); |
| 127 | } else if (arg === "--tag" && args[i + 1]) { |
| 128 | out.tag = args[++i]; |
| 129 | } else if (arg === "--help" || arg === "-h") { |
| 130 | console.log( |
| 131 | "Usage: bun packages/plugin/scripts/embedding-baseline.ts " + |
| 132 | "[--config path/to/magic-context.jsonc] [--out dir] [--tag label]", |
| 133 | ); |
| 134 | process.exit(0); |
| 135 | } |
| 136 | } |
| 137 | return out; |
| 138 | } |
| 139 | |
| 140 | async function loadEmbeddingConfig(configPath: string): Promise<PluginEmbeddingConfig> { |
| 141 | if (!existsSync(configPath)) { |