@damian87/omp 0.17.0 → 0.20.0
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/.github/dependabot.yml +42 -0
- package/.github/skills/code-review/SKILL.md +5 -1
- package/.github/skills/debug/SKILL.md +1 -1
- package/.github/skills/qa-browse/SKILL.md +125 -0
- package/.github/skills/ralplan/SKILL.md +4 -1
- package/.github/skills/tdd/SKILL.md +21 -6
- package/.github/skills/ultraqa/SKILL.md +1 -1
- package/.github/skills/verify/SKILL.md +1 -1
- package/.github/workflows/ci.yml +67 -0
- package/.github/workflows/security.yml +157 -0
- package/README.md +2 -0
- package/dist/src/cli.js +99 -10
- 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 +1 -1
- package/dist/src/copilot/paths.js.map +1 -1
- package/dist/src/copilot/setup.d.ts +13 -1
- package/dist/src/copilot/setup.js +104 -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/env/init.js +1 -1
- package/dist/src/env/init.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/dist/src/memory-review/transcript.js +1 -1
- package/dist/src/memory-review/transcript.js.map +1 -1
- package/docs/security-pipeline.md +101 -0
- package/package.json +13 -6
- package/plugin.json +1 -1
- package/scripts/lib/memory-review-trigger.mjs +18 -8
- package/scripts/skills-safety-scan.mjs +231 -0
|
@@ -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;
|
|
@@ -21,7 +21,7 @@ export function resolveCopilotPaths(options = {}) {
|
|
|
21
21
|
pluginRoot,
|
|
22
22
|
stateDir,
|
|
23
23
|
hooksLogPath: join(stateDir, "hooks.log"),
|
|
24
|
-
userScope: join(homedir(), ".copilot"),
|
|
24
|
+
userScope: resolve(options.copilotHome ?? process.env.COPILOT_HOME ?? join(homedir(), ".copilot")),
|
|
25
25
|
projectScopeSkills: join(projectRoot, ".github", "skills"),
|
|
26
26
|
projectScopeAgents: join(projectRoot, ".github", "agents"),
|
|
27
27
|
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,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa;QACvC,CAAC,CAAC,yBAAyB,CAAC,OAAO,CAAC,aAAa,CAAC;QAClD,CAAC,CAAC,WAAW,CAAC;IAChB,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,13 @@ export interface SetupResult {
|
|
|
16
20
|
actions: SetupAction[];
|
|
17
21
|
paths: CopilotPaths;
|
|
18
22
|
}
|
|
23
|
+
/** Install just the user-level hooks (the piece copilot won't load from the
|
|
24
|
+
* plugin dir). Used by `omp update` to refresh hooks after a self-update without
|
|
25
|
+
* scaffolding the current project's .github (skills/agents ship via the
|
|
26
|
+
* marketplace plugin). Idempotent. */
|
|
27
|
+
export declare function installUserHooks(options?: SetupOptions): {
|
|
28
|
+
actions: SetupAction[];
|
|
29
|
+
paths: CopilotPaths;
|
|
30
|
+
};
|
|
19
31
|
export declare function runSetup(options?: SetupOptions): SetupResult;
|
|
20
32
|
export declare function formatSetup(result: SetupResult): string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { copyFileSync, existsSync, mkdirSync, readdirSync, writeFileSync } from "node:fs";
|
|
1
|
+
import { copyFileSync, existsSync, mkdirSync, readFileSync, readdirSync, renameSync, writeFileSync } from "node:fs";
|
|
2
2
|
import { dirname, join, relative } from "node:path";
|
|
3
3
|
import { resolveCopilotPaths } from "./paths.js";
|
|
4
4
|
const COPILOT_INSTRUCTIONS_TEMPLATE = `# oh-my-copilot
|
|
@@ -29,7 +29,15 @@ next attempt. Prefer bounded summaries for large logs. Oversized postToolUse out
|
|
|
29
29
|
minimized before it re-enters model context, with raw output preserved on disk and savings
|
|
30
30
|
recorded in the cost ledger. Budget gates and retry-cost guidance are not current live behavior.
|
|
31
31
|
`;
|
|
32
|
-
function
|
|
32
|
+
function filesEqual(a, b) {
|
|
33
|
+
try {
|
|
34
|
+
return readFileSync(a, "utf8") === readFileSync(b, "utf8");
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
function copyDirRecursive(source, target, actions, dryRun, force) {
|
|
33
41
|
if (!existsSync(source)) {
|
|
34
42
|
actions.push({ source, target, kind: "skip-source-missing" });
|
|
35
43
|
return;
|
|
@@ -40,11 +48,25 @@ function copyDirRecursive(source, target, actions, dryRun) {
|
|
|
40
48
|
const sPath = join(source, entry.name);
|
|
41
49
|
const tPath = join(target, entry.name);
|
|
42
50
|
if (entry.isDirectory()) {
|
|
43
|
-
copyDirRecursive(sPath, tPath, actions, dryRun);
|
|
51
|
+
copyDirRecursive(sPath, tPath, actions, dryRun, force);
|
|
44
52
|
}
|
|
45
53
|
else if (entry.isFile()) {
|
|
46
54
|
if (existsSync(tPath)) {
|
|
47
|
-
|
|
55
|
+
// Identical → always skip. Differs → skip unless forced (the CLI offers
|
|
56
|
+
// an override prompt), so updated bundled skills can actually propagate.
|
|
57
|
+
if (filesEqual(sPath, tPath)) {
|
|
58
|
+
actions.push({ source: sPath, target: tPath, kind: "skip-exists" });
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
if (!force) {
|
|
62
|
+
actions.push({ source: sPath, target: tPath, kind: "skip-changed" });
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
if (!dryRun) {
|
|
66
|
+
mkdirSync(dirname(tPath), { recursive: true });
|
|
67
|
+
copyFileSync(sPath, tPath);
|
|
68
|
+
}
|
|
69
|
+
actions.push({ source: sPath, target: tPath, kind: "update" });
|
|
48
70
|
continue;
|
|
49
71
|
}
|
|
50
72
|
if (!dryRun) {
|
|
@@ -75,21 +97,93 @@ function ensureDir(target, actions, dryRun) {
|
|
|
75
97
|
mkdirSync(target, { recursive: true });
|
|
76
98
|
actions.push({ source: "(dir)", target, kind: "create" });
|
|
77
99
|
}
|
|
100
|
+
// Copilot only loads hooks from user (`~/.copilot/hooks/*.json`) or project
|
|
101
|
+
// (`.github/hooks/*.json`) locations — NOT from a plugin's own hooks/hooks.json.
|
|
102
|
+
// So omp's lifecycle hooks (sessionEnd → memory-review, cost ledger, etc.) never
|
|
103
|
+
// fire until we install them into one of those locations (this is how Orca's
|
|
104
|
+
// orca.json works). The file is machine-local (absolute node script paths), so
|
|
105
|
+
// it always goes to the user location regardless of skills/agents scope.
|
|
106
|
+
const HOOK_FILE_NAME = "omp.json";
|
|
107
|
+
/** Pin the plugin root for a hook command. The bundled hooks.json resolves its
|
|
108
|
+
* script dir from `${COPILOT_PLUGIN_ROOT:-…}`, but copilot does NOT set that var
|
|
109
|
+
* for user/project hook files (only for plugin-context hooks). We `export` the
|
|
110
|
+
* vars as a SEPARATE statement first: an assignment prefix on the same simple
|
|
111
|
+
* command (`VAR=x node "${VAR:-…}"`) is NOT visible to that command's own
|
|
112
|
+
* parameter expansion, so it must be exported before the command runs. */
|
|
113
|
+
function pinPluginRoot(bash, pluginRoot) {
|
|
114
|
+
const esc = pluginRoot.replace(/'/g, "'\\''");
|
|
115
|
+
return `export COPILOT_PLUGIN_ROOT='${esc}' OMP_PLUGIN_ROOT='${esc}'; ${bash}`;
|
|
116
|
+
}
|
|
117
|
+
function installHooks(paths, dryRun, actions) {
|
|
118
|
+
const source = paths.hooksManifest;
|
|
119
|
+
if (!existsSync(source)) {
|
|
120
|
+
actions.push({ source, target: HOOK_FILE_NAME, kind: "skip-source-missing" });
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
let manifest;
|
|
124
|
+
try {
|
|
125
|
+
manifest = JSON.parse(readFileSync(source, "utf8"));
|
|
126
|
+
}
|
|
127
|
+
catch {
|
|
128
|
+
// Present but unparseable — surface it rather than masking as "missing".
|
|
129
|
+
actions.push({ source, target: HOOK_FILE_NAME, kind: "skip-source-invalid" });
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
const hooks = manifest.hooks;
|
|
133
|
+
if (!hooks || typeof hooks !== "object") {
|
|
134
|
+
actions.push({ source, target: HOOK_FILE_NAME, kind: "skip-source-invalid" });
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
// Rewrite every command's bash to pin the absolute plugin root.
|
|
138
|
+
for (const handlers of Object.values(hooks)) {
|
|
139
|
+
if (!Array.isArray(handlers))
|
|
140
|
+
continue;
|
|
141
|
+
for (const handler of handlers) {
|
|
142
|
+
if (handler && typeof handler === "object" && typeof handler.bash === "string") {
|
|
143
|
+
const h = handler;
|
|
144
|
+
h.bash = pinPluginRoot(h.bash, paths.pluginRoot);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
const target = join(paths.userScope, "hooks", HOOK_FILE_NAME);
|
|
149
|
+
// Managed, generated file — refresh on every setup so updated script paths /
|
|
150
|
+
// new events propagate (unlike copied skills, which we never clobber).
|
|
151
|
+
const kind = existsSync(target) ? "update" : "create";
|
|
152
|
+
if (!dryRun) {
|
|
153
|
+
mkdirSync(dirname(target), { recursive: true });
|
|
154
|
+
const tmp = `${target}.tmp.${process.pid}.${Date.now()}`;
|
|
155
|
+
writeFileSync(tmp, `${JSON.stringify(manifest, null, 2)}\n`, "utf8");
|
|
156
|
+
renameSync(tmp, target);
|
|
157
|
+
}
|
|
158
|
+
actions.push({ source, target, kind });
|
|
159
|
+
}
|
|
160
|
+
/** Install just the user-level hooks (the piece copilot won't load from the
|
|
161
|
+
* plugin dir). Used by `omp update` to refresh hooks after a self-update without
|
|
162
|
+
* scaffolding the current project's .github (skills/agents ship via the
|
|
163
|
+
* marketplace plugin). Idempotent. */
|
|
164
|
+
export function installUserHooks(options = {}) {
|
|
165
|
+
const paths = resolveCopilotPaths(options);
|
|
166
|
+
const actions = [];
|
|
167
|
+
installHooks(paths, Boolean(options.dryRun), actions);
|
|
168
|
+
return { actions, paths };
|
|
169
|
+
}
|
|
78
170
|
export function runSetup(options = {}) {
|
|
79
171
|
const paths = resolveCopilotPaths(options);
|
|
80
172
|
const dryRun = Boolean(options.dryRun);
|
|
173
|
+
const force = Boolean(options.force);
|
|
81
174
|
const scope = options.scope ?? "project";
|
|
82
175
|
const actions = [];
|
|
83
176
|
const bundleSkills = join(paths.pluginRoot, ".github", "skills");
|
|
84
177
|
if (relative(bundleSkills, paths.projectScopeSkills) !== "") {
|
|
85
|
-
copyDirRecursive(bundleSkills, paths.projectScopeSkills, actions, dryRun);
|
|
178
|
+
copyDirRecursive(bundleSkills, paths.projectScopeSkills, actions, dryRun, force);
|
|
86
179
|
}
|
|
87
180
|
const bundleAgents = join(paths.pluginRoot, ".github", "agents");
|
|
88
181
|
if (relative(bundleAgents, paths.projectScopeAgents) !== "") {
|
|
89
|
-
copyDirRecursive(bundleAgents, paths.projectScopeAgents, actions, dryRun);
|
|
182
|
+
copyDirRecursive(bundleAgents, paths.projectScopeAgents, actions, dryRun, force);
|
|
90
183
|
}
|
|
91
184
|
ensureFile(paths.copilotInstructions, COPILOT_INSTRUCTIONS_TEMPLATE, actions, dryRun);
|
|
92
185
|
ensureDir(paths.stateDir, actions, dryRun);
|
|
186
|
+
installHooks(paths, dryRun, actions);
|
|
93
187
|
return { ok: true, dryRun, scope, actions, paths };
|
|
94
188
|
}
|
|
95
189
|
export function formatSetup(result) {
|
|
@@ -98,6 +192,10 @@ export function formatSetup(result) {
|
|
|
98
192
|
for (const action of result.actions) {
|
|
99
193
|
lines.push(` [${action.kind}] ${action.target}`);
|
|
100
194
|
}
|
|
195
|
+
const changed = result.actions.filter((a) => a.kind === "skip-changed").length;
|
|
196
|
+
if (changed > 0) {
|
|
197
|
+
lines.push(`${changed} bundled file(s) differ from your local copies — re-run with --force to override.`);
|
|
198
|
+
}
|
|
101
199
|
return lines.join("\n");
|
|
102
200
|
}
|
|
103
201
|
//# sourceMappingURL=setup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/copilot/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/copilot/setup.ts"],"names":[],"mappings":"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"}
|