@damian87/omp 0.19.0 → 0.20.1
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.
- package/README.md +3 -0
- package/dist/src/cli.js +113 -11
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/models.d.ts +21 -0
- package/dist/src/commands/models.js +80 -0
- package/dist/src/commands/models.js.map +1 -0
- package/dist/src/commands/registry.js +2 -1
- package/dist/src/commands/registry.js.map +1 -1
- package/dist/src/copilot/doctor.d.ts +13 -0
- package/dist/src/copilot/doctor.js +43 -0
- package/dist/src/copilot/doctor.js.map +1 -1
- package/dist/src/copilot/models.d.ts +49 -0
- package/dist/src/copilot/models.js +67 -0
- package/dist/src/copilot/models.js.map +1 -0
- package/dist/src/copilot/paths.d.ts +3 -0
- package/dist/src/copilot/paths.js +8 -2
- package/dist/src/copilot/paths.js.map +1 -1
- package/dist/src/copilot/setup.d.ts +16 -1
- package/dist/src/copilot/setup.js +109 -6
- package/dist/src/copilot/setup.js.map +1 -1
- package/dist/src/council/engine.js +1 -5
- package/dist/src/council/engine.js.map +1 -1
- package/dist/src/council/persona.d.ts +14 -0
- package/dist/src/council/persona.js +45 -0
- package/dist/src/council/persona.js.map +1 -0
- package/dist/src/council/types.d.ts +8 -0
- package/dist/src/council/types.js +10 -1
- package/dist/src/council/types.js.map +1 -1
- package/dist/src/memory-review/config.d.ts +7 -0
- package/dist/src/memory-review/config.js +29 -0
- package/dist/src/memory-review/config.js.map +1 -1
- package/dist/src/memory-review/enable.d.ts +25 -0
- package/dist/src/memory-review/enable.js +106 -0
- package/dist/src/memory-review/enable.js.map +1 -0
- package/dist/src/memory-review/index.js +10 -0
- package/dist/src/memory-review/index.js.map +1 -1
- package/package.json +1 -1
- package/plugin.json +1 -1
- package/scripts/lib/memory-review-trigger.mjs +18 -8
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { CouncilSpawn } from "../council/types.js";
|
|
2
|
+
import { type ProbeModelsOptions, type ProbeStatus } from "../copilot/models.js";
|
|
3
|
+
import type { CommandModule } from "./types.js";
|
|
4
|
+
export type ModelSource = "config" | "candidate" | "built-in";
|
|
5
|
+
export interface ModelReportRow {
|
|
6
|
+
slug: string;
|
|
7
|
+
status: ProbeStatus;
|
|
8
|
+
source: ModelSource;
|
|
9
|
+
}
|
|
10
|
+
/** Candidate slugs with a source tag. config/candidate win over built-in. */
|
|
11
|
+
export declare function buildCandidates(opts: {
|
|
12
|
+
configured?: string;
|
|
13
|
+
candidates?: string[];
|
|
14
|
+
}): Map<string, ModelSource>;
|
|
15
|
+
/** Probe every candidate and return rows sorted available → unavailable → unknown. */
|
|
16
|
+
export declare function collectModelReport(spawn: CouncilSpawn, sources: Map<string, ModelSource>, opts?: {
|
|
17
|
+
timeoutMs?: number;
|
|
18
|
+
onProbe?: ProbeModelsOptions["onProbe"];
|
|
19
|
+
}): Promise<ModelReportRow[]>;
|
|
20
|
+
export declare function formatModelReport(rows: ModelReportRow[]): string;
|
|
21
|
+
export declare const modelsCommand: CommandModule;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { DEFAULT_MEMBERS } from "../council/config.js";
|
|
2
|
+
import { DEFAULT_PROBE_TIMEOUT_MS, KNOWN_MODEL_SLUGS, probeModels, } from "../copilot/models.js";
|
|
3
|
+
import { readMemoryConfig } from "../memory-review/config.js";
|
|
4
|
+
import { createReviewSpawn } from "../memory-review/spawn.js";
|
|
5
|
+
/** Candidate slugs with a source tag. config/candidate win over built-in. */
|
|
6
|
+
export function buildCandidates(opts) {
|
|
7
|
+
const map = new Map();
|
|
8
|
+
for (const m of KNOWN_MODEL_SLUGS)
|
|
9
|
+
if (!map.has(m))
|
|
10
|
+
map.set(m, "built-in");
|
|
11
|
+
for (const m of DEFAULT_MEMBERS.map((d) => d.model))
|
|
12
|
+
if (!map.has(m))
|
|
13
|
+
map.set(m, "built-in");
|
|
14
|
+
if (opts.configured)
|
|
15
|
+
map.set(opts.configured, "config");
|
|
16
|
+
for (const m of opts.candidates ?? [])
|
|
17
|
+
map.set(m, "candidate");
|
|
18
|
+
return map;
|
|
19
|
+
}
|
|
20
|
+
const STATUS_ORDER = { available: 0, unavailable: 1, unknown: 2 };
|
|
21
|
+
const STATUS_MARK = { available: "✓", unavailable: "✗", unknown: "?" };
|
|
22
|
+
const STATUS_NOTE = {
|
|
23
|
+
available: "",
|
|
24
|
+
unavailable: " — not available on your plan",
|
|
25
|
+
unknown: " — probe failed/unverified",
|
|
26
|
+
};
|
|
27
|
+
/** Probe every candidate and return rows sorted available → unavailable → unknown. */
|
|
28
|
+
export async function collectModelReport(spawn, sources, opts = {}) {
|
|
29
|
+
const probed = await probeModels(spawn, [...sources.keys()], {
|
|
30
|
+
timeoutMs: opts.timeoutMs ?? DEFAULT_PROBE_TIMEOUT_MS,
|
|
31
|
+
onProbe: opts.onProbe,
|
|
32
|
+
});
|
|
33
|
+
const rows = probed.map((r) => ({
|
|
34
|
+
slug: r.model,
|
|
35
|
+
status: r.status,
|
|
36
|
+
source: sources.get(r.model) ?? "built-in",
|
|
37
|
+
}));
|
|
38
|
+
rows.sort((a, b) => STATUS_ORDER[a.status] - STATUS_ORDER[b.status] || a.slug.localeCompare(b.slug));
|
|
39
|
+
return rows;
|
|
40
|
+
}
|
|
41
|
+
export function formatModelReport(rows) {
|
|
42
|
+
const body = rows
|
|
43
|
+
.map((r) => ` ${STATUS_MARK[r.status]} ${r.slug} (${r.source})${STATUS_NOTE[r.status]}`)
|
|
44
|
+
.join("\n");
|
|
45
|
+
return `Model availability (probed; ✓ usable, ✗ not on your plan, ? unverified):\n${body}`;
|
|
46
|
+
}
|
|
47
|
+
function parseCandidates(argv) {
|
|
48
|
+
const i = argv.indexOf("--candidates");
|
|
49
|
+
if (i === -1 || i + 1 >= argv.length)
|
|
50
|
+
return [];
|
|
51
|
+
return argv[i + 1].split(",").map((s) => s.trim()).filter(Boolean);
|
|
52
|
+
}
|
|
53
|
+
export const modelsCommand = {
|
|
54
|
+
name: "models",
|
|
55
|
+
summary: "probe which Copilot models are available: models [--candidates a,b,c] [--json]",
|
|
56
|
+
async run(argv, context) {
|
|
57
|
+
const homeDir = process.env.OMP_HOME_OVERRIDE || undefined;
|
|
58
|
+
const configured = readMemoryConfig(context.cwd, { homeDir }).memoryReviewModel;
|
|
59
|
+
const sources = buildCandidates({ configured, candidates: parseCandidates(argv) });
|
|
60
|
+
// Probing is slow (copilot's headless -p ~12s each), so show live progress on
|
|
61
|
+
// stderr when attached to a terminal — never on stdout (keeps --json/report clean).
|
|
62
|
+
const showProgress = process.stderr.isTTY && !context.json;
|
|
63
|
+
if (showProgress) {
|
|
64
|
+
const secs = Math.round(DEFAULT_PROBE_TIMEOUT_MS / 1000);
|
|
65
|
+
process.stderr.write(`Probing ${sources.size} model(s) — up to ~${secs}s each (copilot's headless mode is slow)…\n`);
|
|
66
|
+
}
|
|
67
|
+
const rows = await collectModelReport(createReviewSpawn(), sources, {
|
|
68
|
+
onProbe: showProgress
|
|
69
|
+
? (r, done, total) => {
|
|
70
|
+
const mark = r.status === "available" ? "✓" : r.status === "unavailable" ? "✗" : "?";
|
|
71
|
+
process.stderr.write(` [${done}/${total}] ${mark} ${r.model}\n`);
|
|
72
|
+
}
|
|
73
|
+
: undefined,
|
|
74
|
+
});
|
|
75
|
+
return context.json
|
|
76
|
+
? { ok: true, output: { models: rows } }
|
|
77
|
+
: { ok: true, message: formatModelReport(rows) };
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/commands/models.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/commands/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/commands/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,QAAQ,GAAoB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;AAElE,MAAM,UAAU,qBAAqB,CAAC,IAAwB;IAC5D,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9F,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AACtF,CAAC"}
|
|
@@ -14,6 +14,19 @@ export interface DoctorOptions extends ResolveCopilotPathsOptions {
|
|
|
14
14
|
skipCopilot?: boolean;
|
|
15
15
|
copilotBin?: string;
|
|
16
16
|
checkHooks?: boolean;
|
|
17
|
+
/** Run slow, network-dependent probes (e.g. the memory-review model). Opt-in
|
|
18
|
+
* via `omp doctor --deep` so the default doctor stays fast. */
|
|
19
|
+
deepCheck?: boolean;
|
|
17
20
|
}
|
|
21
|
+
/** Pure classifier for a memory-review model probe (kept separate so it's
|
|
22
|
+
* testable without spawning copilot). Mirrors copilot/models.probeModel: a
|
|
23
|
+
* working model is proven by captured stdout, because `copilot -p` often prints
|
|
24
|
+
* its reply but doesn't exit (so spawnSync reports a SIGTERM/timeout, not 0). */
|
|
25
|
+
export declare function classifyMemoryReviewProbe(slug: string, outcome: {
|
|
26
|
+
status: number | null;
|
|
27
|
+
stdout: string;
|
|
28
|
+
stderr: string;
|
|
29
|
+
errorCode?: string;
|
|
30
|
+
}): DoctorCheck;
|
|
18
31
|
export declare function runDoctor(options?: DoctorOptions): DoctorReport;
|
|
19
32
|
export declare function formatDoctor(report: DoctorReport): string;
|
|
@@ -3,6 +3,8 @@ import { join } from "node:path";
|
|
|
3
3
|
import { spawnSync } from "node:child_process";
|
|
4
4
|
import { tmpdir } from "node:os";
|
|
5
5
|
import { resolveCopilotPaths } from "./paths.js";
|
|
6
|
+
import { UNAVAILABLE_SIGNATURE } from "../council/types.js";
|
|
7
|
+
import { readMemoryConfig } from "../memory-review/config.js";
|
|
6
8
|
function checkNodeVersion() {
|
|
7
9
|
const major = Number(process.version.replace(/^v/, "").split(".")[0]);
|
|
8
10
|
if (Number.isFinite(major) && major >= 20) {
|
|
@@ -290,6 +292,44 @@ function checkCopilotCli(bin) {
|
|
|
290
292
|
return { name: "copilot-cli", status: "fail", detail: `${bin} not found on PATH` };
|
|
291
293
|
}
|
|
292
294
|
}
|
|
295
|
+
/** Pure classifier for a memory-review model probe (kept separate so it's
|
|
296
|
+
* testable without spawning copilot). Mirrors copilot/models.probeModel: a
|
|
297
|
+
* working model is proven by captured stdout, because `copilot -p` often prints
|
|
298
|
+
* its reply but doesn't exit (so spawnSync reports a SIGTERM/timeout, not 0). */
|
|
299
|
+
export function classifyMemoryReviewProbe(slug, outcome) {
|
|
300
|
+
const name = "memory-review-model";
|
|
301
|
+
if (outcome.stdout.trim().length > 0 || outcome.status === 0) {
|
|
302
|
+
return { name, status: "pass", detail: `${slug} ok` };
|
|
303
|
+
}
|
|
304
|
+
if (UNAVAILABLE_SIGNATURE.test(outcome.stderr)) {
|
|
305
|
+
return {
|
|
306
|
+
name,
|
|
307
|
+
status: "warn",
|
|
308
|
+
detail: `model '${slug}' not available — run: omp config set memory-review-model <slug>`,
|
|
309
|
+
};
|
|
310
|
+
}
|
|
311
|
+
if (outcome.errorCode === "ENOENT") {
|
|
312
|
+
return { name, status: "warn", detail: "copilot not found on PATH" };
|
|
313
|
+
}
|
|
314
|
+
return { name, status: "warn", detail: `probe failed (exit=${outcome.status ?? "timeout"})` };
|
|
315
|
+
}
|
|
316
|
+
function checkMemoryReviewModel(cwd, bin) {
|
|
317
|
+
const cfg = readMemoryConfig(cwd ?? process.cwd());
|
|
318
|
+
if (cfg.memoryMode !== "on") {
|
|
319
|
+
return { name: "memory-review-model", status: "pass", detail: "memory-mode off (skipped)" };
|
|
320
|
+
}
|
|
321
|
+
const slug = cfg.memoryReviewModel;
|
|
322
|
+
const result = spawnSync(bin, ["--model", slug, "-p", "Reply with: ok"], {
|
|
323
|
+
encoding: "utf8",
|
|
324
|
+
timeout: 15000,
|
|
325
|
+
});
|
|
326
|
+
return classifyMemoryReviewProbe(slug, {
|
|
327
|
+
status: result.status,
|
|
328
|
+
stdout: result.stdout ?? "",
|
|
329
|
+
stderr: result.stderr ?? "",
|
|
330
|
+
errorCode: result.error?.code,
|
|
331
|
+
});
|
|
332
|
+
}
|
|
293
333
|
export function runDoctor(options = {}) {
|
|
294
334
|
const paths = resolveCopilotPaths(options);
|
|
295
335
|
const checks = [
|
|
@@ -304,6 +344,9 @@ export function runDoctor(options = {}) {
|
|
|
304
344
|
}
|
|
305
345
|
if (!options.skipCopilot) {
|
|
306
346
|
checks.push(checkCopilotCli(options.copilotBin ?? "copilot"));
|
|
347
|
+
if (options.deepCheck) {
|
|
348
|
+
checks.push(checkMemoryReviewModel(options.cwd, options.copilotBin ?? "copilot"));
|
|
349
|
+
}
|
|
307
350
|
}
|
|
308
351
|
const ok = checks.every((c) => c.status !== "fail");
|
|
309
352
|
return { ok, checks, paths };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/copilot/doctor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/copilot/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { CouncilSpawn } from "../council/types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Model-availability probing for Copilot. There is no headless way to ENUMERATE
|
|
4
|
+
* models (copilot has no list-models command; `/model` is TUI-only; the
|
|
5
|
+
* api.githubcopilot.com/models endpoint is plan-gated and wrong under BYOK), so
|
|
6
|
+
* discovery is done by PROBING candidate slugs — which tests the only thing that
|
|
7
|
+
* matters: "will `--model <slug>` actually run?". That works under BYOK too.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Curated candidate slugs to probe by default. Last updated: 2026-06-25 —
|
|
11
|
+
* verified against live Copilot CLI v1.0.65 via `omp models`. Copilot has no
|
|
12
|
+
* model-listing API, so this is hand-maintained; keep it small. NOTE: these are
|
|
13
|
+
* the `--model` slugs (headless), which are NOT always the same set the
|
|
14
|
+
* interactive `/model` picker shows — some picker-only models (e.g.
|
|
15
|
+
* MAI-Code-1-Flash) are rejected by `--model`, so they are intentionally absent.
|
|
16
|
+
* `--candidates` and the configured model cover anything missing here.
|
|
17
|
+
*/
|
|
18
|
+
export declare const KNOWN_MODEL_SLUGS: readonly string[];
|
|
19
|
+
export type ProbeStatus = "available" | "unavailable" | "unknown";
|
|
20
|
+
export interface ProbeResult {
|
|
21
|
+
model: string;
|
|
22
|
+
status: ProbeStatus;
|
|
23
|
+
}
|
|
24
|
+
/** Default probe timeout. copilot's headless `-p` mode frequently prints its
|
|
25
|
+
* answer but does NOT exit promptly, so a working model is detected by captured
|
|
26
|
+
* stdout (below) rather than a clean exit — the timeout just bounds the wait. */
|
|
27
|
+
export declare const DEFAULT_PROBE_TIMEOUT_MS = 12000;
|
|
28
|
+
/**
|
|
29
|
+
* Probe one model with a trivial prompt and classify:
|
|
30
|
+
* - the entitlement signature on stderr → `unavailable` (fast, reliable),
|
|
31
|
+
* - any captured stdout OR a clean exit → `available` (the model answered;
|
|
32
|
+
* we accept stdout even on timeout because `copilot -p` often hangs after
|
|
33
|
+
* replying instead of exiting),
|
|
34
|
+
* - otherwise (no output: timeout/crash/spawn error) → `unknown` (can't prove
|
|
35
|
+
* it's bad — "slow/broken != not entitled").
|
|
36
|
+
*/
|
|
37
|
+
export declare function probeModel(spawn: CouncilSpawn, model: string, timeoutMs?: number): Promise<ProbeResult>;
|
|
38
|
+
/**
|
|
39
|
+
* Probe several models concurrently. De-dupes slugs first. NOTE: parallels
|
|
40
|
+
* council's probeRoster (engine.ts) which probes CouncilMemberSpec[]; kept
|
|
41
|
+
* separate because the input/return shapes differ — unify if a 3rd caller appears.
|
|
42
|
+
*/
|
|
43
|
+
export interface ProbeModelsOptions {
|
|
44
|
+
maxConcurrency?: number;
|
|
45
|
+
timeoutMs?: number;
|
|
46
|
+
/** Fired as each probe resolves (for progress UIs). done counts up to total. */
|
|
47
|
+
onProbe?: (result: ProbeResult, done: number, total: number) => void;
|
|
48
|
+
}
|
|
49
|
+
export declare function probeModels(spawn: CouncilSpawn, slugs: string[], opts?: ProbeModelsOptions): Promise<ProbeResult[]>;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { runWithConcurrency } from "../council/engine.js";
|
|
2
|
+
import { isModelUnavailable } from "../council/types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Model-availability probing for Copilot. There is no headless way to ENUMERATE
|
|
5
|
+
* models (copilot has no list-models command; `/model` is TUI-only; the
|
|
6
|
+
* api.githubcopilot.com/models endpoint is plan-gated and wrong under BYOK), so
|
|
7
|
+
* discovery is done by PROBING candidate slugs — which tests the only thing that
|
|
8
|
+
* matters: "will `--model <slug>` actually run?". That works under BYOK too.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Curated candidate slugs to probe by default. Last updated: 2026-06-25 —
|
|
12
|
+
* verified against live Copilot CLI v1.0.65 via `omp models`. Copilot has no
|
|
13
|
+
* model-listing API, so this is hand-maintained; keep it small. NOTE: these are
|
|
14
|
+
* the `--model` slugs (headless), which are NOT always the same set the
|
|
15
|
+
* interactive `/model` picker shows — some picker-only models (e.g.
|
|
16
|
+
* MAI-Code-1-Flash) are rejected by `--model`, so they are intentionally absent.
|
|
17
|
+
* `--candidates` and the configured model cover anything missing here.
|
|
18
|
+
*/
|
|
19
|
+
export const KNOWN_MODEL_SLUGS = [
|
|
20
|
+
"gpt-5-mini", // cheap, included (no premium request) — the default review model
|
|
21
|
+
"gpt-5.4-mini",
|
|
22
|
+
"gpt-5.4",
|
|
23
|
+
"claude-haiku-4.5",
|
|
24
|
+
"claude-sonnet-4.6",
|
|
25
|
+
"claude-sonnet-4.5",
|
|
26
|
+
"gemini-3.5-flash",
|
|
27
|
+
];
|
|
28
|
+
/** Default probe timeout. copilot's headless `-p` mode frequently prints its
|
|
29
|
+
* answer but does NOT exit promptly, so a working model is detected by captured
|
|
30
|
+
* stdout (below) rather than a clean exit — the timeout just bounds the wait. */
|
|
31
|
+
export const DEFAULT_PROBE_TIMEOUT_MS = 12000;
|
|
32
|
+
/**
|
|
33
|
+
* Probe one model with a trivial prompt and classify:
|
|
34
|
+
* - the entitlement signature on stderr → `unavailable` (fast, reliable),
|
|
35
|
+
* - any captured stdout OR a clean exit → `available` (the model answered;
|
|
36
|
+
* we accept stdout even on timeout because `copilot -p` often hangs after
|
|
37
|
+
* replying instead of exiting),
|
|
38
|
+
* - otherwise (no output: timeout/crash/spawn error) → `unknown` (can't prove
|
|
39
|
+
* it's bad — "slow/broken != not entitled").
|
|
40
|
+
*/
|
|
41
|
+
export async function probeModel(spawn, model, timeoutMs = DEFAULT_PROBE_TIMEOUT_MS) {
|
|
42
|
+
let res;
|
|
43
|
+
try {
|
|
44
|
+
res = await spawn({ model, prompt: "Reply with: ok", timeoutMs });
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return { model, status: "unknown" };
|
|
48
|
+
}
|
|
49
|
+
if (isModelUnavailable(res))
|
|
50
|
+
return { model, status: "unavailable" };
|
|
51
|
+
if (res.stdout.trim().length > 0)
|
|
52
|
+
return { model, status: "available" };
|
|
53
|
+
if (res.exitCode === 0 && !res.timedOut)
|
|
54
|
+
return { model, status: "available" };
|
|
55
|
+
return { model, status: "unknown" };
|
|
56
|
+
}
|
|
57
|
+
export async function probeModels(spawn, slugs, opts = {}) {
|
|
58
|
+
const distinct = Array.from(new Set(slugs));
|
|
59
|
+
let done = 0;
|
|
60
|
+
return runWithConcurrency(distinct, opts.maxConcurrency ?? 4, async (model) => {
|
|
61
|
+
const result = await probeModel(spawn, model, opts.timeoutMs);
|
|
62
|
+
done += 1;
|
|
63
|
+
opts.onProbe?.(result, done, distinct.length);
|
|
64
|
+
return result;
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/copilot/models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGzD;;;;;;GAMG;AAEH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAsB;IAClD,YAAY,EAAE,kEAAkE;IAChF,cAAc;IACd,SAAS;IACT,kBAAkB;IAClB,mBAAmB;IACnB,mBAAmB;IACnB,kBAAkB;CACnB,CAAC;AASF;;kFAEkF;AAClF,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAE9C;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,KAAmB,EACnB,KAAa,EACb,YAAoB,wBAAwB;IAE5C,IAAI,GAAG,CAAC;IACR,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACtC,CAAC;IACD,IAAI,kBAAkB,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IACrE,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IACxE,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ;QAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAC/E,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACtC,CAAC;AAcD,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,KAAmB,EACnB,KAAe,EACf,OAA2B,EAAE;IAE7B,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5C,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,OAAO,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QAC5E,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9D,IAAI,IAAI,CAAC,CAAC;QACV,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC9C,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -16,6 +16,9 @@ export interface ResolveCopilotPathsOptions {
|
|
|
16
16
|
projectRoot?: string;
|
|
17
17
|
pluginRoot?: string;
|
|
18
18
|
importMetaUrl?: string;
|
|
19
|
+
/** Override the copilot home dir (defaults to $COPILOT_HOME, then ~/.copilot).
|
|
20
|
+
* Used by tests and to honor copilot's own COPILOT_HOME relocation. */
|
|
21
|
+
copilotHome?: string;
|
|
19
22
|
}
|
|
20
23
|
export declare function resolveCopilotPaths(options?: ResolveCopilotPathsOptions): CopilotPaths;
|
|
21
24
|
export declare function ensureStateDir(paths: CopilotPaths): void;
|
|
@@ -5,9 +5,15 @@ import { packageRootFromImportMeta, resolveProjectPaths } from "../project.js";
|
|
|
5
5
|
export function resolveCopilotPaths(options = {}) {
|
|
6
6
|
const proj = resolveProjectPaths({ cwd: options.cwd, packageRoot: options.projectRoot });
|
|
7
7
|
const projectRoot = proj.packageRoot;
|
|
8
|
+
// pluginRoot is where omp's bundle lives (hooks/, .github/skills, scripts/) —
|
|
9
|
+
// the omp PACKAGE, not the caller's cwd project. Default to THIS module's own
|
|
10
|
+
// package root so callers that don't pass importMetaUrl (bare launch, `omp
|
|
11
|
+
// update`) still locate the bundled hooks/skills. Without this, packageRoot
|
|
12
|
+
// fell back to the cwd project (no hooks.json there) and hook install silently
|
|
13
|
+
// no-op'd — the real cause of "omp update / bare omp installs no hooks".
|
|
8
14
|
const packageRoot = options.importMetaUrl
|
|
9
15
|
? packageRootFromImportMeta(options.importMetaUrl)
|
|
10
|
-
:
|
|
16
|
+
: packageRootFromImportMeta(import.meta.url);
|
|
11
17
|
const envPluginRoot = process.env.OMP_PLUGIN_ROOT ?? process.env.OMC_PLUGIN_ROOT;
|
|
12
18
|
const pluginRoot = options.pluginRoot
|
|
13
19
|
? resolve(options.pluginRoot)
|
|
@@ -21,7 +27,7 @@ export function resolveCopilotPaths(options = {}) {
|
|
|
21
27
|
pluginRoot,
|
|
22
28
|
stateDir,
|
|
23
29
|
hooksLogPath: join(stateDir, "hooks.log"),
|
|
24
|
-
userScope: join(homedir(), ".copilot"),
|
|
30
|
+
userScope: resolve(options.copilotHome ?? process.env.COPILOT_HOME ?? join(homedir(), ".copilot")),
|
|
25
31
|
projectScopeSkills: join(projectRoot, ".github", "skills"),
|
|
26
32
|
projectScopeAgents: join(projectRoot, ".github", "agents"),
|
|
27
33
|
copilotInstructions: join(projectRoot, ".github", "copilot-instructions.md"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../src/copilot/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../src/copilot/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AA0B/E,MAAM,UAAU,mBAAmB,CAAC,UAAsC,EAAE;IAC1E,MAAM,IAAI,GAAG,mBAAmB,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACzF,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACrC,8EAA8E;IAC9E,8EAA8E;IAC9E,2EAA2E;IAC3E,4EAA4E;IAC5E,+EAA+E;IAC/E,yEAAyE;IACzE,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa;QACvC,CAAC,CAAC,yBAAyB,CAAC,OAAO,CAAC,aAAa,CAAC;QAClD,CAAC,CAAC,yBAAyB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IACjF,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU;QACnC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;QAC7B,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;YACxB,CAAC,CAAC,WAAW,CAAC;IAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACpD,OAAO;QACL,WAAW;QACX,WAAW;QACX,UAAU;QACV,QAAQ;QACR,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC;QACzC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC;QAClG,kBAAkB,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC;QAC1D,kBAAkB,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC;QAC1D,mBAAmB,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,yBAAyB,CAAC;QAC5E,aAAa,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,YAAY,CAAC;QACtD,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC;KACxC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAmB;IAChD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;QAAE,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAClF,CAAC"}
|
|
@@ -2,8 +2,12 @@ import { type CopilotPaths, type ResolveCopilotPathsOptions } from "./paths.js";
|
|
|
2
2
|
export interface SetupOptions extends ResolveCopilotPathsOptions {
|
|
3
3
|
dryRun?: boolean;
|
|
4
4
|
scope?: "project" | "user";
|
|
5
|
+
/** Overwrite bundled skills/agents that exist but differ from the bundle.
|
|
6
|
+
* Without it, changed files are reported as "skip-changed" (the CLI offers an
|
|
7
|
+
* interactive override); identical files are always skipped. */
|
|
8
|
+
force?: boolean;
|
|
5
9
|
}
|
|
6
|
-
export type SetupActionKind = "copy" | "create" | "skip-exists" | "skip-source-missing";
|
|
10
|
+
export type SetupActionKind = "copy" | "create" | "update" | "skip-exists" | "skip-changed" | "skip-source-missing" | "skip-source-invalid";
|
|
7
11
|
export interface SetupAction {
|
|
8
12
|
source: string;
|
|
9
13
|
target: string;
|
|
@@ -16,5 +20,16 @@ export interface SetupResult {
|
|
|
16
20
|
actions: SetupAction[];
|
|
17
21
|
paths: CopilotPaths;
|
|
18
22
|
}
|
|
23
|
+
/** Absolute path of the user-level hook file omp installs/refreshes. Lets callers
|
|
24
|
+
* (e.g. bare-launch first-run setup) cheaply check "are hooks installed?". */
|
|
25
|
+
export declare function userHookPath(options?: SetupOptions): string;
|
|
26
|
+
/** Install just the user-level hooks (the piece copilot won't load from the
|
|
27
|
+
* plugin dir). Used by `omp update` to refresh hooks after a self-update without
|
|
28
|
+
* scaffolding the current project's .github (skills/agents ship via the
|
|
29
|
+
* marketplace plugin). Idempotent. */
|
|
30
|
+
export declare function installUserHooks(options?: SetupOptions): {
|
|
31
|
+
actions: SetupAction[];
|
|
32
|
+
paths: CopilotPaths;
|
|
33
|
+
};
|
|
19
34
|
export declare function runSetup(options?: SetupOptions): SetupResult;
|
|
20
35
|
export declare function formatSetup(result: SetupResult): string;
|