oh-my-githubcopilot 1.4.1 → 1.8.0-alpha.021bf87
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/.claude-plugin/plugin.json +36 -6
- package/.mcp.json +17 -0
- package/AGENTS.md +78 -9
- package/CHANGELOG.md +216 -1
- package/README.de.md +112 -26
- package/README.es.md +115 -29
- package/README.fr.md +114 -28
- package/README.it.md +114 -28
- package/README.ja.md +112 -26
- package/README.ko.md +112 -26
- package/README.md +96 -95
- package/README.pt.md +116 -30
- package/README.ru.md +116 -30
- package/README.tr.md +115 -29
- package/README.vi.md +116 -30
- package/README.zh.md +112 -26
- package/agents/analyst.agent.md +27 -0
- package/agents/architect.agent.md +24 -0
- package/agents/code-reviewer.agent.md +24 -0
- package/agents/critic.agent.md +24 -0
- package/agents/debugger.agent.md +24 -0
- package/agents/designer.agent.md +24 -0
- package/agents/document-specialist.agent.md +24 -0
- package/agents/executor.agent.md +27 -0
- package/agents/explorer.agent.md +23 -0
- package/agents/git-master.agent.md +24 -0
- package/agents/orchestrator.agent.md +26 -0
- package/agents/planner.agent.md +24 -0
- package/agents/qa-tester.agent.md +24 -0
- package/agents/researcher.agent.md +18 -0
- package/agents/reviewer.agent.md +23 -0
- package/agents/scientist.agent.md +20 -0
- package/agents/security-reviewer.agent.md +20 -0
- package/agents/simplifier.agent.md +20 -0
- package/agents/test-engineer.agent.md +20 -0
- package/agents/tester.agent.md +20 -0
- package/agents/tracer.agent.md +24 -0
- package/agents/verifier.agent.md +19 -0
- package/agents/writer.agent.md +24 -0
- package/bin/omp-statusline.mjs +179 -0
- package/bin/omp-statusline.mjs.map +7 -0
- package/bin/omp-statusline.sh +21 -0
- package/bin/omp.mjs +709 -16
- package/bin/omp.mjs.map +4 -4
- package/dist/hooks/hud-emitter.mjs +268 -82
- package/dist/hooks/hud-emitter.mjs.map +4 -4
- package/dist/hooks/keyword-detector.mjs +100 -23
- package/dist/hooks/keyword-detector.mjs.map +2 -2
- package/dist/hooks/model-router.mjs +1 -1
- package/dist/hooks/model-router.mjs.map +1 -1
- package/dist/hooks/stop-continuation.mjs +1 -1
- package/dist/hooks/stop-continuation.mjs.map +1 -1
- package/dist/hooks/token-tracker.mjs +2 -1
- package/dist/hooks/token-tracker.mjs.map +2 -2
- package/dist/mcp/server.mjs +85 -53
- package/dist/mcp/server.mjs.map +4 -4
- package/dist/skills/setup.mjs +39 -27
- package/dist/skills/setup.mjs.map +4 -4
- package/hooks/hooks.json +39 -45
- package/package.json +9 -4
- package/plugin.json +71 -0
- package/skills/ai-slop-cleaner/SKILL.md +137 -0
- package/skills/autopilot/SKILL.md +6 -0
- package/skills/configure-notifications/SKILL.md +6 -0
- package/skills/deep-interview/SKILL.md +6 -0
- package/skills/doctor/SKILL.md +188 -0
- package/skills/ecomode/SKILL.md +6 -0
- package/skills/graph-context/SKILL.md +119 -0
- package/skills/graph-provider/SKILL.md +6 -0
- package/skills/graphify/SKILL.md +6 -0
- package/skills/graphwiki/SKILL.md +6 -0
- package/skills/hud/SKILL.md +6 -0
- package/skills/improve-codebase-architecture/SKILL.md +214 -0
- package/skills/interactive-menu/SKILL.md +102 -0
- package/skills/interview/SKILL.md +203 -0
- package/skills/learner/SKILL.md +6 -0
- package/skills/mcp-setup/SKILL.md +6 -0
- package/skills/note/SKILL.md +6 -0
- package/skills/notifications/SKILL.md +190 -0
- package/skills/omp-doctor/SKILL.md +146 -0
- package/skills/omp-plan/SKILL.md +219 -2
- package/skills/omp-reference/SKILL.md +174 -0
- package/skills/omp-setup/SKILL.md +15 -1
- package/skills/pipeline/SKILL.md +6 -0
- package/skills/psm/SKILL.md +6 -0
- package/skills/ralph/SKILL.md +6 -0
- package/skills/ralplan/SKILL.md +148 -0
- package/skills/release/SKILL.md +6 -0
- package/skills/research/SKILL.md +149 -0
- package/skills/session/SKILL.md +220 -0
- package/skills/setup/SKILL.md +6 -0
- package/skills/skillify/SKILL.md +66 -0
- package/skills/spending/SKILL.md +6 -0
- package/skills/swarm/SKILL.md +6 -0
- package/skills/swe-bench/SKILL.md +6 -0
- package/skills/tdd/SKILL.md +246 -0
- package/skills/team/SKILL.md +6 -0
- package/skills/trace/SKILL.md +6 -0
- package/skills/ultrawork/SKILL.md +6 -0
- package/skills/wiki/SKILL.md +6 -0
- package/src/agents/analyst.md +0 -103
- package/src/agents/architect.md +0 -169
- package/src/agents/code-reviewer.md +0 -135
- package/src/agents/critic.md +0 -196
- package/src/agents/debugger.md +0 -132
- package/src/agents/designer.md +0 -103
- package/src/agents/document-specialist.md +0 -111
- package/src/agents/executor.md +0 -120
- package/src/agents/explorer.md +0 -98
- package/src/agents/git-master.md +0 -92
- package/src/agents/orchestrator.md +0 -125
- package/src/agents/planner.md +0 -106
- package/src/agents/qa-tester.md +0 -129
- package/src/agents/researcher.md +0 -102
- package/src/agents/reviewer.md +0 -100
- package/src/agents/scientist.md +0 -150
- package/src/agents/security-reviewer.md +0 -132
- package/src/agents/simplifier.md +0 -109
- package/src/agents/test-engineer.md +0 -124
- package/src/agents/tester.md +0 -102
- package/src/agents/tracer.md +0 -160
- package/src/agents/verifier.md +0 -100
- package/src/agents/writer.md +0 -96
package/dist/mcp/server.mjs
CHANGED
|
@@ -14138,11 +14138,20 @@ __export(agent_loader_exports, {
|
|
|
14138
14138
|
getAgent: () => getAgent,
|
|
14139
14139
|
loadAllAgents: () => loadAllAgents
|
|
14140
14140
|
});
|
|
14141
|
-
import { readFileSync, readdirSync } from "fs";
|
|
14141
|
+
import { existsSync, readFileSync, readdirSync } from "fs";
|
|
14142
14142
|
import { join } from "path";
|
|
14143
|
-
function
|
|
14143
|
+
function normalizeModelTier(modelTier, model) {
|
|
14144
|
+
if (modelTier === "high" || modelTier === "standard" || modelTier === "fast") {
|
|
14145
|
+
return modelTier;
|
|
14146
|
+
}
|
|
14147
|
+
if (!model) return "standard";
|
|
14148
|
+
if (/haiku|mini|nano|fast/i.test(model)) return "fast";
|
|
14149
|
+
if (/opus|pro|gpt-5\.5|sonnet-4-6/i.test(model)) return "high";
|
|
14150
|
+
return "standard";
|
|
14151
|
+
}
|
|
14152
|
+
function loadAgentFile(dir, filename) {
|
|
14144
14153
|
try {
|
|
14145
|
-
const filePath = join(
|
|
14154
|
+
const filePath = join(dir, filename);
|
|
14146
14155
|
const content = readFileSync(filePath, "utf-8");
|
|
14147
14156
|
const parsed = parseAgentFile(content);
|
|
14148
14157
|
if (!parsed) return null;
|
|
@@ -14150,7 +14159,7 @@ function loadAgentFile(filename) {
|
|
|
14150
14159
|
id: parsed.frontmatter.name,
|
|
14151
14160
|
name: parsed.frontmatter.name,
|
|
14152
14161
|
description: parsed.frontmatter.description || "",
|
|
14153
|
-
modelTier: parsed.frontmatter.model_tier
|
|
14162
|
+
modelTier: normalizeModelTier(parsed.frontmatter.model_tier, parsed.frontmatter.model),
|
|
14154
14163
|
tools: parsed.frontmatter.tools || [],
|
|
14155
14164
|
content: parsed.content
|
|
14156
14165
|
};
|
|
@@ -14161,13 +14170,17 @@ function loadAgentFile(filename) {
|
|
|
14161
14170
|
function loadAllAgents() {
|
|
14162
14171
|
if (cache) return cache;
|
|
14163
14172
|
cache = /* @__PURE__ */ new Map();
|
|
14164
|
-
|
|
14165
|
-
|
|
14166
|
-
|
|
14167
|
-
const
|
|
14168
|
-
|
|
14173
|
+
for (const dir of AGENTS_DIRS) {
|
|
14174
|
+
if (!existsSync(dir)) continue;
|
|
14175
|
+
try {
|
|
14176
|
+
const files = readdirSync(dir).filter((f) => f.endsWith(".agent.md"));
|
|
14177
|
+
for (const file2 of files) {
|
|
14178
|
+
const agent = loadAgentFile(dir, file2);
|
|
14179
|
+
if (agent) cache.set(agent.id, agent);
|
|
14180
|
+
}
|
|
14181
|
+
if (cache.size > 0) break;
|
|
14182
|
+
} catch {
|
|
14169
14183
|
}
|
|
14170
|
-
} catch {
|
|
14171
14184
|
}
|
|
14172
14185
|
return cache;
|
|
14173
14186
|
}
|
|
@@ -14178,12 +14191,15 @@ function getAgent(id) {
|
|
|
14178
14191
|
function clearCache() {
|
|
14179
14192
|
cache = null;
|
|
14180
14193
|
}
|
|
14181
|
-
var
|
|
14194
|
+
var AGENTS_DIRS, cache;
|
|
14182
14195
|
var init_agent_loader = __esm({
|
|
14183
14196
|
"src/utils/agent-loader.mts"() {
|
|
14184
14197
|
"use strict";
|
|
14185
14198
|
init_yaml_parser();
|
|
14186
|
-
|
|
14199
|
+
AGENTS_DIRS = [
|
|
14200
|
+
join(process.cwd(), "agents"),
|
|
14201
|
+
join(process.cwd(), "src", "agents")
|
|
14202
|
+
];
|
|
14187
14203
|
cache = null;
|
|
14188
14204
|
}
|
|
14189
14205
|
});
|
|
@@ -28224,58 +28240,71 @@ var StdioServerTransport = class {
|
|
|
28224
28240
|
};
|
|
28225
28241
|
|
|
28226
28242
|
// src/mcp/server.mts
|
|
28227
|
-
import Database from "better-sqlite3";
|
|
28228
28243
|
import { readFileSync as readFileSync2, mkdirSync } from "fs";
|
|
28229
28244
|
import { homedir } from "os";
|
|
28230
28245
|
import { join as join2, dirname } from "path";
|
|
28231
28246
|
import { randomUUID } from "crypto";
|
|
28247
|
+
|
|
28248
|
+
// src/mcp/db-loader.mts
|
|
28249
|
+
import { createRequire } from "module";
|
|
28250
|
+
var SqliteConstructor = null;
|
|
28251
|
+
try {
|
|
28252
|
+
SqliteConstructor = createRequire(import.meta.url)("better-sqlite3");
|
|
28253
|
+
} catch {
|
|
28254
|
+
}
|
|
28255
|
+
|
|
28256
|
+
// src/mcp/server.mts
|
|
28232
28257
|
function getDbPath() {
|
|
28233
28258
|
const envPath = process.env["OMP_STATE_DB"];
|
|
28234
28259
|
if (envPath) return envPath.replace("~", homedir());
|
|
28235
28260
|
return join2(homedir(), ".omp", "state", "omp.db");
|
|
28236
28261
|
}
|
|
28237
|
-
function ensureDbDir(
|
|
28238
|
-
mkdirSync(dirname(
|
|
28239
|
-
}
|
|
28240
|
-
var
|
|
28241
|
-
|
|
28242
|
-
|
|
28243
|
-
|
|
28244
|
-
|
|
28245
|
-
|
|
28246
|
-
|
|
28247
|
-
|
|
28248
|
-
|
|
28249
|
-
|
|
28250
|
-
|
|
28251
|
-
|
|
28252
|
-
|
|
28262
|
+
function ensureDbDir(dbPath) {
|
|
28263
|
+
mkdirSync(dirname(dbPath), { recursive: true });
|
|
28264
|
+
}
|
|
28265
|
+
var db = null;
|
|
28266
|
+
if (SqliteConstructor) {
|
|
28267
|
+
const dbPath = getDbPath();
|
|
28268
|
+
ensureDbDir(dbPath);
|
|
28269
|
+
db = new SqliteConstructor(dbPath);
|
|
28270
|
+
db.pragma("journal_mode = WAL");
|
|
28271
|
+
db.exec(`
|
|
28272
|
+
CREATE TABLE IF NOT EXISTS sessions (
|
|
28273
|
+
id TEXT PRIMARY KEY,
|
|
28274
|
+
worktree_id TEXT,
|
|
28275
|
+
state_json TEXT NOT NULL,
|
|
28276
|
+
created_at INTEGER NOT NULL,
|
|
28277
|
+
updated_at INTEGER NOT NULL
|
|
28278
|
+
);
|
|
28279
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_worktree ON sessions(worktree_id);
|
|
28280
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_updated ON sessions(updated_at);
|
|
28253
28281
|
|
|
28254
|
-
|
|
28255
|
-
|
|
28256
|
-
|
|
28257
|
-
|
|
28258
|
-
|
|
28259
|
-
|
|
28260
|
-
|
|
28261
|
-
|
|
28262
|
-
|
|
28263
|
-
|
|
28282
|
+
CREATE TABLE IF NOT EXISTS memory (
|
|
28283
|
+
key TEXT PRIMARY KEY,
|
|
28284
|
+
value TEXT NOT NULL,
|
|
28285
|
+
category TEXT,
|
|
28286
|
+
session_id TEXT,
|
|
28287
|
+
created_at INTEGER NOT NULL,
|
|
28288
|
+
updated_at INTEGER NOT NULL
|
|
28289
|
+
);
|
|
28290
|
+
CREATE INDEX IF NOT EXISTS idx_memory_category ON memory(category);
|
|
28291
|
+
CREATE INDEX IF NOT EXISTS idx_memory_session ON memory(session_id);
|
|
28264
28292
|
|
|
28265
|
-
|
|
28266
|
-
|
|
28267
|
-
|
|
28268
|
-
|
|
28269
|
-
|
|
28270
|
-
|
|
28271
|
-
|
|
28272
|
-
|
|
28273
|
-
|
|
28274
|
-
|
|
28275
|
-
|
|
28276
|
-
|
|
28277
|
-
|
|
28278
|
-
`);
|
|
28293
|
+
CREATE TABLE IF NOT EXISTS trace (
|
|
28294
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
28295
|
+
session_id TEXT NOT NULL,
|
|
28296
|
+
hook_id TEXT,
|
|
28297
|
+
agent_id TEXT,
|
|
28298
|
+
event_type TEXT NOT NULL,
|
|
28299
|
+
payload TEXT,
|
|
28300
|
+
duration_ms INTEGER,
|
|
28301
|
+
timestamp INTEGER NOT NULL
|
|
28302
|
+
);
|
|
28303
|
+
CREATE INDEX IF NOT EXISTS idx_trace_session ON trace(session_id);
|
|
28304
|
+
CREATE INDEX IF NOT EXISTS idx_trace_hook ON trace(hook_id);
|
|
28305
|
+
CREATE INDEX IF NOT EXISTS idx_trace_agent ON trace(agent_id);
|
|
28306
|
+
`);
|
|
28307
|
+
}
|
|
28279
28308
|
var TOOLS = [
|
|
28280
28309
|
// State tools
|
|
28281
28310
|
{
|
|
@@ -28397,12 +28426,14 @@ function handleListTools() {
|
|
|
28397
28426
|
async function handleCallTool(name, args) {
|
|
28398
28427
|
switch (name) {
|
|
28399
28428
|
case "omp_get_session_state": {
|
|
28429
|
+
if (!db) return { content: [{ type: "text", text: "null" }] };
|
|
28400
28430
|
const sessions = db.prepare("SELECT * FROM sessions ORDER BY updated_at DESC LIMIT 1").all();
|
|
28401
28431
|
return { content: [{ type: "text", text: JSON.stringify(sessions[0] || null, null, 2) }] };
|
|
28402
28432
|
}
|
|
28403
28433
|
case "omp_save_session": {
|
|
28404
28434
|
const sessionId = args.sessionId || randomUUID();
|
|
28405
28435
|
const stateJson = args.stateJson || JSON.stringify({});
|
|
28436
|
+
if (!db) return { content: [{ type: "text", text: JSON.stringify({ status: "ok", sessionId, note: "SQLite unavailable; state not persisted" }) }] };
|
|
28406
28437
|
const now = Date.now();
|
|
28407
28438
|
db.prepare(
|
|
28408
28439
|
"INSERT OR REPLACE INTO sessions (id, worktree_id, state_json, created_at, updated_at) VALUES (?, ?, ?, ?, ?)"
|
|
@@ -28410,6 +28441,7 @@ async function handleCallTool(name, args) {
|
|
|
28410
28441
|
return { content: [{ type: "text", text: JSON.stringify({ status: "ok", sessionId }) }] };
|
|
28411
28442
|
}
|
|
28412
28443
|
case "omp_list_sessions": {
|
|
28444
|
+
if (!db) return { content: [{ type: "text", text: "[]" }] };
|
|
28413
28445
|
const sessions = db.prepare("SELECT id, created_at, updated_at FROM sessions ORDER BY updated_at DESC").all();
|
|
28414
28446
|
return { content: [{ type: "text", text: JSON.stringify(sessions, null, 2) }] };
|
|
28415
28447
|
}
|