oh-my-copilot 4.13.66 → 4.13.68
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/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/bridge/cli.cjs +116 -23
- package/dist/__tests__/plugin-setup-deps.test.js +15 -0
- package/dist/__tests__/plugin-setup-deps.test.js.map +1 -1
- package/dist/__tests__/skills.test.js +22 -4
- package/dist/__tests__/skills.test.js.map +1 -1
- package/dist/cli/__tests__/launch.test.js +54 -1
- package/dist/cli/__tests__/launch.test.js.map +1 -1
- package/dist/cli/launch.d.ts.map +1 -1
- package/dist/cli/launch.js +6 -2
- package/dist/cli/launch.js.map +1 -1
- package/dist/hooks/persistent-mode/__tests__/oversize-tool-result-redirect.test.d.ts +2 -0
- package/dist/hooks/persistent-mode/__tests__/oversize-tool-result-redirect.test.d.ts.map +1 -0
- package/dist/hooks/persistent-mode/__tests__/oversize-tool-result-redirect.test.js +193 -0
- package/dist/hooks/persistent-mode/__tests__/oversize-tool-result-redirect.test.js.map +1 -0
- package/dist/hooks/persistent-mode/index.d.ts +1 -1
- package/dist/hooks/persistent-mode/index.d.ts.map +1 -1
- package/dist/hooks/persistent-mode/index.js +67 -47
- package/dist/hooks/persistent-mode/index.js.map +1 -1
- package/dist/hooks/todo-continuation/index.d.ts +12 -0
- package/dist/hooks/todo-continuation/index.d.ts.map +1 -1
- package/dist/hooks/todo-continuation/index.js +104 -1
- package/dist/hooks/todo-continuation/index.js.map +1 -1
- package/dist/skills/__tests__/omc-doctor-skill.test.js +20 -0
- package/dist/skills/__tests__/omc-doctor-skill.test.js.map +1 -1
- package/docs/copilot-instructions.md +1 -1
- package/package.json +1 -1
- package/scripts/plugin-setup.mjs +14 -0
- package/skills/cancel/SKILL.md +1 -0
- package/skills/omc-doctor/SKILL.md +21 -2
- package/skills/omc-setup/phases/02-configure.md +15 -0
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
{
|
|
11
11
|
"name": "oh-my-copilot",
|
|
12
12
|
"description": "Copilot CLI native multi-agent orchestration with intelligent model routing, 18 agent variants, and 32 powerful skills. Zero learning curve. Maximum power.",
|
|
13
|
-
"version": "4.13.
|
|
13
|
+
"version": "4.13.68",
|
|
14
14
|
"author": {
|
|
15
15
|
"name": "Robin Norberg",
|
|
16
16
|
"email": "github@platypus.se"
|
|
@@ -27,5 +27,5 @@
|
|
|
27
27
|
]
|
|
28
28
|
}
|
|
29
29
|
],
|
|
30
|
-
"version": "4.13.
|
|
30
|
+
"version": "4.13.68"
|
|
31
31
|
}
|
package/bridge/cli.cjs
CHANGED
|
@@ -19852,6 +19852,7 @@ __export(todo_continuation_exports, {
|
|
|
19852
19852
|
isAuthenticationError: () => isAuthenticationError,
|
|
19853
19853
|
isContextLimitStop: () => isContextLimitStop,
|
|
19854
19854
|
isExplicitCancelCommand: () => isExplicitCancelCommand,
|
|
19855
|
+
isOversizeToolResultRedirectStop: () => isOversizeToolResultRedirectStop,
|
|
19855
19856
|
isRateLimitStop: () => isRateLimitStop,
|
|
19856
19857
|
isScheduledWakeupStop: () => isScheduledWakeupStop,
|
|
19857
19858
|
isTaskIncomplete: () => isTaskIncomplete,
|
|
@@ -19883,6 +19884,78 @@ function getStopReasonFields(context) {
|
|
|
19883
19884
|
context.reason
|
|
19884
19885
|
].filter((value) => typeof value === "string" && value.trim().length > 0).map((value) => value.toLowerCase().replace(/[\s-]+/g, "_"));
|
|
19885
19886
|
}
|
|
19887
|
+
function stringifyContextValue(value) {
|
|
19888
|
+
if (typeof value === "string") {
|
|
19889
|
+
return value;
|
|
19890
|
+
}
|
|
19891
|
+
if (value == null) {
|
|
19892
|
+
return "";
|
|
19893
|
+
}
|
|
19894
|
+
try {
|
|
19895
|
+
return JSON.stringify(value);
|
|
19896
|
+
} catch {
|
|
19897
|
+
return String(value);
|
|
19898
|
+
}
|
|
19899
|
+
}
|
|
19900
|
+
function appendBoundedText(parts, value) {
|
|
19901
|
+
const text = stringifyContextValue(value);
|
|
19902
|
+
if (!text) return;
|
|
19903
|
+
parts.push(text.length > STOP_CONTEXT_VALUE_MAX_CHARS ? text.slice(-STOP_CONTEXT_VALUE_MAX_CHARS) : text);
|
|
19904
|
+
}
|
|
19905
|
+
function readStopTranscriptTail(transcriptPath) {
|
|
19906
|
+
const size = (0, import_fs40.statSync)(transcriptPath).size;
|
|
19907
|
+
if (size <= STOP_CONTEXT_TAIL_BYTES) {
|
|
19908
|
+
return (0, import_fs40.readFileSync)(transcriptPath, "utf-8");
|
|
19909
|
+
}
|
|
19910
|
+
const fd = (0, import_fs40.openSync)(transcriptPath, "r");
|
|
19911
|
+
try {
|
|
19912
|
+
const offset = size - STOP_CONTEXT_TAIL_BYTES;
|
|
19913
|
+
const buf = Buffer.allocUnsafe(STOP_CONTEXT_TAIL_BYTES);
|
|
19914
|
+
const bytesRead = (0, import_fs40.readSync)(fd, buf, 0, STOP_CONTEXT_TAIL_BYTES, offset);
|
|
19915
|
+
return buf.subarray(0, bytesRead).toString("utf-8");
|
|
19916
|
+
} finally {
|
|
19917
|
+
(0, import_fs40.closeSync)(fd);
|
|
19918
|
+
}
|
|
19919
|
+
}
|
|
19920
|
+
function extractLatestTranscriptEventText(transcriptTail) {
|
|
19921
|
+
const lines = transcriptTail.split("\n").map((line) => line.trim()).filter(Boolean);
|
|
19922
|
+
for (let index = lines.length - 1; index >= 0; index -= 1) {
|
|
19923
|
+
const line = lines[index];
|
|
19924
|
+
try {
|
|
19925
|
+
const parsed = JSON.parse(line);
|
|
19926
|
+
const text = stringifyContextValue(parsed);
|
|
19927
|
+
if (text) return text;
|
|
19928
|
+
} catch {
|
|
19929
|
+
if (line) return line;
|
|
19930
|
+
}
|
|
19931
|
+
}
|
|
19932
|
+
return "";
|
|
19933
|
+
}
|
|
19934
|
+
function getOversizeStopEvidence(context) {
|
|
19935
|
+
if (!context) return "";
|
|
19936
|
+
const parts = [];
|
|
19937
|
+
appendBoundedText(parts, context.message);
|
|
19938
|
+
appendBoundedText(parts, context.output);
|
|
19939
|
+
appendBoundedText(parts, context.response);
|
|
19940
|
+
appendBoundedText(parts, context.text);
|
|
19941
|
+
appendBoundedText(parts, context.content);
|
|
19942
|
+
appendBoundedText(parts, context.tool_input ?? context.toolInput);
|
|
19943
|
+
const transcriptPath = context.transcript_path ?? context.transcriptPath;
|
|
19944
|
+
if (transcriptPath && (0, import_fs40.existsSync)(transcriptPath)) {
|
|
19945
|
+
try {
|
|
19946
|
+
appendBoundedText(parts, extractLatestTranscriptEventText(readStopTranscriptTail(transcriptPath)));
|
|
19947
|
+
} catch {
|
|
19948
|
+
}
|
|
19949
|
+
}
|
|
19950
|
+
return parts.join("\n");
|
|
19951
|
+
}
|
|
19952
|
+
function isOversizeToolResultRedirectStop(context) {
|
|
19953
|
+
const evidence = getOversizeStopEvidence(context);
|
|
19954
|
+
if (!evidence) return false;
|
|
19955
|
+
const hasToolResultPointer = TOOL_RESULT_FILE_POINTER_PATTERN.test(evidence);
|
|
19956
|
+
if (!hasToolResultPointer) return false;
|
|
19957
|
+
return TOOL_RESULT_REDIRECT_MARKER_PATTERNS.some((pattern) => pattern.test(evidence));
|
|
19958
|
+
}
|
|
19886
19959
|
function isUserAbort(context) {
|
|
19887
19960
|
if (!context) return false;
|
|
19888
19961
|
if (context.user_requested || context.userRequested) return true;
|
|
@@ -20144,7 +20217,7 @@ function getNextPendingTodo(result) {
|
|
|
20144
20217
|
}
|
|
20145
20218
|
return result.todos.find((t) => t.status === "pending") ?? null;
|
|
20146
20219
|
}
|
|
20147
|
-
var import_fs40, import_path48, AUTHENTICATION_ERROR_PATTERNS;
|
|
20220
|
+
var import_fs40, import_path48, STOP_CONTEXT_TAIL_BYTES, STOP_CONTEXT_VALUE_MAX_CHARS, TOOL_RESULT_FILE_POINTER_PATTERN, TOOL_RESULT_REDIRECT_MARKER_PATTERNS, AUTHENTICATION_ERROR_PATTERNS;
|
|
20148
20221
|
var init_todo_continuation = __esm({
|
|
20149
20222
|
"src/hooks/todo-continuation/index.ts"() {
|
|
20150
20223
|
"use strict";
|
|
@@ -20152,6 +20225,15 @@ var init_todo_continuation = __esm({
|
|
|
20152
20225
|
import_path48 = require("path");
|
|
20153
20226
|
init_worktree_paths();
|
|
20154
20227
|
init_config_dir();
|
|
20228
|
+
STOP_CONTEXT_TAIL_BYTES = 32 * 1024;
|
|
20229
|
+
STOP_CONTEXT_VALUE_MAX_CHARS = 8 * 1024;
|
|
20230
|
+
TOOL_RESULT_FILE_POINTER_PATTERN = /(?:^|[\s"'`(\[{<])(?:\.{0,2}\/)?tool-results\/[A-Za-z0-9._-]+\.txt(?:$|[\s"'`)\]}>:,.])/i;
|
|
20231
|
+
TOOL_RESULT_REDIRECT_MARKER_PATTERNS = [
|
|
20232
|
+
/\btool[_ -]?result\b.{0,160}\b(?:too large|oversi[sz]e[dt]?|exceeds?|exceeded|truncated|redirect(?:ed)?|saved|written)\b/i,
|
|
20233
|
+
/\b(?:too large|oversi[sz]e[dt]?|exceeds?|exceeded|truncated|redirect(?:ed)?|saved|written)\b.{0,160}\btool[_ -]?result\b/i,
|
|
20234
|
+
/\b(?:output|response|result)\b.{0,160}\b(?:redirect(?:ed)?|saved|written)\b.{0,160}\btool-results\/[A-Za-z0-9._-]+\.txt\b/i,
|
|
20235
|
+
/\bfull (?:tool )?(?:output|result|response)\b.{0,160}\btool-results\/[A-Za-z0-9._-]+\.txt\b/i
|
|
20236
|
+
];
|
|
20155
20237
|
AUTHENTICATION_ERROR_PATTERNS = [
|
|
20156
20238
|
"authentication_error",
|
|
20157
20239
|
"authentication_failed",
|
|
@@ -25421,7 +25503,7 @@ async function checkRalphLoop(sessionId, directory, cancelInProgress) {
|
|
|
25421
25503
|
writeRalphState(workingDir, state, sessionId);
|
|
25422
25504
|
return {
|
|
25423
25505
|
shouldBlock: true,
|
|
25424
|
-
message: `[RALPH - HARD LIMIT] Reached hard max iterations (${hardMax}). Mode auto-disabled. Restart with /oh-my-
|
|
25506
|
+
message: `[RALPH - HARD LIMIT] Reached hard max iterations (${hardMax}). Mode auto-disabled. Restart with /oh-my-claudecode:ralph if needed.`,
|
|
25425
25507
|
mode: "ralph",
|
|
25426
25508
|
metadata: { iteration: state.iteration, maxIterations: state.max_iterations }
|
|
25427
25509
|
};
|
|
@@ -25456,7 +25538,7 @@ CRITICAL INSTRUCTIONS:
|
|
|
25456
25538
|
1. Review your progress and the original task
|
|
25457
25539
|
${prdInstruction}
|
|
25458
25540
|
3. Continue from where you left off
|
|
25459
|
-
4. When FULLY complete (after ${state.critic_mode === "codex" ? "Codex critic" : state.critic_mode === "critic" ? "Critic" : "Architect"} verification), run \`/oh-my-
|
|
25541
|
+
4. When FULLY complete (after ${state.critic_mode === "codex" ? "Codex critic" : state.critic_mode === "critic" ? "Critic" : "Architect"} verification), run \`/oh-my-claudecode:cancel\` to cleanly exit and clean up state files. If cancel fails, retry with \`/oh-my-claudecode:cancel --force\`.
|
|
25460
25542
|
5. Do NOT stop until the task is truly done
|
|
25461
25543
|
|
|
25462
25544
|
${newState.prompt ? `Original task: ${truncatePromptForEcho(newState.prompt)}` : ""}
|
|
@@ -25579,7 +25661,7 @@ async function checkTeamPipeline(sessionId, directory, cancelInProgress) {
|
|
|
25579
25661
|
|
|
25580
25662
|
The team pipeline is active in phase "${phase}". Continue working on the team workflow.
|
|
25581
25663
|
Do not stop until the pipeline reaches a terminal state (complete/failed/cancelled).
|
|
25582
|
-
When done, run \`/oh-my-
|
|
25664
|
+
When done, run \`/oh-my-claudecode:cancel\` to cleanly exit.
|
|
25583
25665
|
|
|
25584
25666
|
</team-pipeline-continuation>
|
|
25585
25667
|
|
|
@@ -25769,7 +25851,7 @@ async function checkRalplan(sessionId, directory, cancelInProgress) {
|
|
|
25769
25851
|
|
|
25770
25852
|
The ralplan consensus workflow is active. Continue the Planner/Architect/Critic loop.
|
|
25771
25853
|
Do not stop until consensus is reached or the workflow completes.
|
|
25772
|
-
When done, run \`/oh-my-
|
|
25854
|
+
When done, run \`/oh-my-claudecode:cancel\` to cleanly exit.
|
|
25773
25855
|
|
|
25774
25856
|
</ralplan-continuation>
|
|
25775
25857
|
|
|
@@ -25811,7 +25893,7 @@ async function checkUltrawork(sessionId, directory, _hasIncompleteTodos, cancelI
|
|
|
25811
25893
|
deactivateUltrawork(workingDir, sessionId);
|
|
25812
25894
|
return {
|
|
25813
25895
|
shouldBlock: true,
|
|
25814
|
-
message: "[ULTRAWORK - HARD LIMIT] Reached hard max iterations (" + hardMax + "). Mode auto-disabled. Restart with /oh-my-
|
|
25896
|
+
message: "[ULTRAWORK - HARD LIMIT] Reached hard max iterations (" + hardMax + "). Mode auto-disabled. Restart with /oh-my-claudecode:ultrawork if needed.",
|
|
25815
25897
|
mode: "ultrawork",
|
|
25816
25898
|
metadata: { reinforcementCount: state.reinforcement_count }
|
|
25817
25899
|
};
|
|
@@ -25832,6 +25914,14 @@ async function checkUltrawork(sessionId, directory, _hasIncompleteTodos, cancelI
|
|
|
25832
25914
|
}
|
|
25833
25915
|
async function checkPersistentModes(sessionId, directory, stopContext) {
|
|
25834
25916
|
const workingDir = resolveToWorktreeRoot(directory);
|
|
25917
|
+
if (process.env.DISABLE_OMC === "1" || process.env.DISABLE_OMC === "true" || process.env.OMC_TEAM_WORKER) {
|
|
25918
|
+
return { shouldBlock: false, message: "", mode: "none" };
|
|
25919
|
+
}
|
|
25920
|
+
const skipHooks = (process.env.OMC_SKIP_HOOKS ?? "").split(",").map((s) => s.trim()).filter(Boolean);
|
|
25921
|
+
if (skipHooks.includes("persistent-mode") || skipHooks.includes("stop-continuation")) {
|
|
25922
|
+
return { shouldBlock: false, message: "", mode: "none" };
|
|
25923
|
+
}
|
|
25924
|
+
await reconcileTerminalWorkflowSlots(workingDir, sessionId);
|
|
25835
25925
|
if (isCriticalContextStop(stopContext)) {
|
|
25836
25926
|
return {
|
|
25837
25927
|
shouldBlock: false,
|
|
@@ -25882,14 +25972,24 @@ async function checkPersistentModes(sessionId, directory, stopContext) {
|
|
|
25882
25972
|
mode: "none"
|
|
25883
25973
|
};
|
|
25884
25974
|
}
|
|
25885
|
-
if (
|
|
25886
|
-
|
|
25887
|
-
|
|
25888
|
-
|
|
25889
|
-
|
|
25890
|
-
|
|
25975
|
+
if (isOversizeToolResultRedirectStop(stopContext)) {
|
|
25976
|
+
const redirectStopCount = readStopBreaker(
|
|
25977
|
+
workingDir,
|
|
25978
|
+
"oversize-tool-result-redirect",
|
|
25979
|
+
sessionId,
|
|
25980
|
+
OVERSIZE_TOOL_RESULT_REDIRECT_STOP_TTL_MS
|
|
25981
|
+
) + 1;
|
|
25982
|
+
writeStopBreaker(workingDir, "oversize-tool-result-redirect", redirectStopCount, sessionId);
|
|
25983
|
+
if (redirectStopCount <= OVERSIZE_TOOL_RESULT_REDIRECT_STOP_MAX) {
|
|
25984
|
+
return {
|
|
25985
|
+
shouldBlock: false,
|
|
25986
|
+
message: "",
|
|
25987
|
+
mode: "none"
|
|
25988
|
+
};
|
|
25989
|
+
}
|
|
25990
|
+
} else {
|
|
25991
|
+
writeStopBreaker(workingDir, "oversize-tool-result-redirect", 0, sessionId);
|
|
25891
25992
|
}
|
|
25892
|
-
await reconcileTerminalWorkflowSlots(workingDir, sessionId);
|
|
25893
25993
|
if (hasPendingOwnedAsyncWork(workingDir, sessionId)) {
|
|
25894
25994
|
return {
|
|
25895
25995
|
shouldBlock: false,
|
|
@@ -25897,15 +25997,6 @@ async function checkPersistentModes(sessionId, directory, stopContext) {
|
|
|
25897
25997
|
mode: "none"
|
|
25898
25998
|
};
|
|
25899
25999
|
}
|
|
25900
|
-
try {
|
|
25901
|
-
const { readSkillActiveStateNormalized: readSkillActiveStateNormalized2, pruneExpiredWorkflowSkillTombstones: pruneExpiredWorkflowSkillTombstones2, writeSkillActiveStateCopies: writeSkillActiveStateCopies2 } = await Promise.resolve().then(() => (init_skill_state(), skill_state_exports));
|
|
25902
|
-
const current = readSkillActiveStateNormalized2(workingDir, sessionId);
|
|
25903
|
-
const pruned = pruneExpiredWorkflowSkillTombstones2(current);
|
|
25904
|
-
if (pruned !== current) {
|
|
25905
|
-
writeSkillActiveStateCopies2(workingDir, pruned, sessionId);
|
|
25906
|
-
}
|
|
25907
|
-
} catch {
|
|
25908
|
-
}
|
|
25909
26000
|
const todoResult = await checkIncompleteTodos(sessionId, workingDir, stopContext);
|
|
25910
26001
|
const hasIncompleteTodos = todoResult.count > 0;
|
|
25911
26002
|
const tombstonedWorkflowModes = /* @__PURE__ */ new Set();
|
|
@@ -26006,7 +26097,7 @@ function createHookOutput(result) {
|
|
|
26006
26097
|
message: result.message || void 0
|
|
26007
26098
|
};
|
|
26008
26099
|
}
|
|
26009
|
-
var import_fs49, import_path56, CANCEL_SIGNAL_TTL_MS2, STALE_STATE_THRESHOLD_MS, PENDING_ASYNC_STATE_STALE_MS, TERMINAL_WORKFLOW_SLOT_MODES, TERMINAL_WORKFLOW_PHASES, todoContinuationAttempts, TRANSCRIPT_TAIL_BYTES, CRITICAL_CONTEXT_STOP_PERCENT, RALPLAN_TERMINAL_PHASES, REVIEWER_TASK_TOOL_NAMES, REVIEWER_COMMAND_TOOL_NAMES, AWAITING_CONFIRMATION_TTL_MS, TEAM_PIPELINE_STOP_BLOCKER_MAX, TEAM_PIPELINE_STOP_BLOCKER_TTL_MS, RALPLAN_STOP_BLOCKER_MAX, RALPLAN_STOP_BLOCKER_TTL_MS, RALPLAN_ACTIVE_AGENT_RECENCY_WINDOW_MS;
|
|
26100
|
+
var import_fs49, import_path56, CANCEL_SIGNAL_TTL_MS2, STALE_STATE_THRESHOLD_MS, PENDING_ASYNC_STATE_STALE_MS, OVERSIZE_TOOL_RESULT_REDIRECT_STOP_MAX, OVERSIZE_TOOL_RESULT_REDIRECT_STOP_TTL_MS, TERMINAL_WORKFLOW_SLOT_MODES, TERMINAL_WORKFLOW_PHASES, todoContinuationAttempts, TRANSCRIPT_TAIL_BYTES, CRITICAL_CONTEXT_STOP_PERCENT, RALPLAN_TERMINAL_PHASES, REVIEWER_TASK_TOOL_NAMES, REVIEWER_COMMAND_TOOL_NAMES, AWAITING_CONFIRMATION_TTL_MS, TEAM_PIPELINE_STOP_BLOCKER_MAX, TEAM_PIPELINE_STOP_BLOCKER_TTL_MS, RALPLAN_STOP_BLOCKER_MAX, RALPLAN_STOP_BLOCKER_TTL_MS, RALPLAN_ACTIVE_AGENT_RECENCY_WINDOW_MS;
|
|
26010
26101
|
var init_persistent_mode = __esm({
|
|
26011
26102
|
"src/hooks/persistent-mode/index.ts"() {
|
|
26012
26103
|
"use strict";
|
|
@@ -26031,6 +26122,8 @@ var init_persistent_mode = __esm({
|
|
|
26031
26122
|
CANCEL_SIGNAL_TTL_MS2 = 3e4;
|
|
26032
26123
|
STALE_STATE_THRESHOLD_MS = 2 * 60 * 60 * 1e3;
|
|
26033
26124
|
PENDING_ASYNC_STATE_STALE_MS = 24 * 60 * 60 * 1e3;
|
|
26125
|
+
OVERSIZE_TOOL_RESULT_REDIRECT_STOP_MAX = 3;
|
|
26126
|
+
OVERSIZE_TOOL_RESULT_REDIRECT_STOP_TTL_MS = 5 * 60 * 1e3;
|
|
26034
26127
|
TERMINAL_WORKFLOW_SLOT_MODES = /* @__PURE__ */ new Set(["autopilot", "ralph", "ralplan"]);
|
|
26035
26128
|
TERMINAL_WORKFLOW_PHASES = /* @__PURE__ */ new Set([
|
|
26036
26129
|
"complete",
|
|
@@ -61,4 +61,19 @@ describe('package.json prepare script removal', () => {
|
|
|
61
61
|
expect(pkg.scripts.prepublishOnly).toContain('npm run build');
|
|
62
62
|
});
|
|
63
63
|
});
|
|
64
|
+
describe('plugin-setup.mjs Ralph Ruby dependency guidance (issue #2969)', () => {
|
|
65
|
+
const scriptContent = existsSync(PLUGIN_SETUP_PATH)
|
|
66
|
+
? readFileSync(PLUGIN_SETUP_PATH, 'utf-8')
|
|
67
|
+
: '';
|
|
68
|
+
it('checks for Ruby during plugin setup before Ralph workflows fail later', () => {
|
|
69
|
+
expect(scriptContent).toContain('checkRalphRubyDependency');
|
|
70
|
+
expect(scriptContent).toContain("execFileSync('ruby', ['--version']");
|
|
71
|
+
expect(scriptContent).toContain('Ruby was not found on PATH');
|
|
72
|
+
});
|
|
73
|
+
it('prints actionable install guidance for fresh Ubuntu users', () => {
|
|
74
|
+
expect(scriptContent).toContain('Ralph workflows require Ruby');
|
|
75
|
+
expect(scriptContent).toContain('sudo apt update && sudo apt install ruby-full');
|
|
76
|
+
expect(scriptContent).toContain('restart Claude Code');
|
|
77
|
+
});
|
|
78
|
+
});
|
|
64
79
|
//# sourceMappingURL=plugin-setup-deps.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-setup-deps.test.js","sourceRoot":"","sources":["../../src/__tests__/plugin-setup-deps.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin-setup-deps.test.js","sourceRoot":"","sources":["../../src/__tests__/plugin-setup-deps.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACjD,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;AAE5E;;;;;;GAMG;AACH,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;IACxD,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC5B,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,UAAU,CAAC,iBAAiB,CAAC;QACjD,CAAC,CAAC,YAAY,CAAC,iBAAiB,EAAE,OAAO,CAAC;QAC1C,CAAC,CAAC,EAAE,CAAC;IAEP,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,qEAAqE,CAAC,CAAC;IACvG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,yCAAyC,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,2EAA2E;QAC3E,MAAM,cAAc,GAAG,aAAa,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;QACvE,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,0EAA0E;QAC1E,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,sCAAsC,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,2EAA2E;QAC3E,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,gCAAgC,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;IACnD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IACnD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAEvD,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,sEAAsE;QACtE,8EAA8E;QAC9E,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,sEAAsE;QACtE,8DAA8D;QAC9D,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAGH,QAAQ,CAAC,+DAA+D,EAAE,GAAG,EAAE;IAC7E,MAAM,aAAa,GAAG,UAAU,CAAC,iBAAiB,CAAC;QACjD,CAAC,CAAC,YAAY,CAAC,iBAAiB,EAAE,OAAO,CAAC;QAC1C,CAAC,CAAC,EAAE,CAAC;IAEP,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;QAC/E,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;QAC5D,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,oCAAoC,CAAC,CAAC;QACtE,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;QAChE,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,+CAA+C,CAAC,CAAC;QACjF,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -37,9 +37,10 @@ describe('Builtin Skills', () => {
|
|
|
37
37
|
clearSkillsCache();
|
|
38
38
|
});
|
|
39
39
|
describe('createBuiltinSkills()', () => {
|
|
40
|
-
it('should return correct number of skills (
|
|
40
|
+
it('should return correct number of skills (54 canonical + aliases)', () => {
|
|
41
41
|
const skills = createBuiltinSkills();
|
|
42
|
-
|
|
42
|
+
// 54 entries: 53 canonical OMC skills + 1 cancel-ralph alias added in #2967
|
|
43
|
+
expect(skills).toHaveLength(54);
|
|
43
44
|
});
|
|
44
45
|
it('should return an array of BuiltinSkill objects', () => {
|
|
45
46
|
const skills = createBuiltinSkills();
|
|
@@ -87,6 +88,7 @@ describe('Builtin Skills', () => {
|
|
|
87
88
|
'autoresearch',
|
|
88
89
|
'autopilot',
|
|
89
90
|
'cancel',
|
|
91
|
+
'cancel-ralph',
|
|
90
92
|
'cccg',
|
|
91
93
|
'configure-notifications',
|
|
92
94
|
'critique',
|
|
@@ -146,6 +148,21 @@ describe('Builtin Skills', () => {
|
|
|
146
148
|
const uniqueNames = new Set(skillNames);
|
|
147
149
|
expect(uniqueNames.size).toBe(skillNames.length);
|
|
148
150
|
});
|
|
151
|
+
it('exposes cancel-ralph as a deprecated alias for canonical cancel', () => {
|
|
152
|
+
const cancel = getBuiltinSkill('cancel');
|
|
153
|
+
const cancelRalph = getBuiltinSkill('cancel-ralph');
|
|
154
|
+
expect(cancel).toBeDefined();
|
|
155
|
+
expect(cancel.aliasOf).toBeUndefined();
|
|
156
|
+
expect(cancel.aliases).toContain('cancel-ralph');
|
|
157
|
+
expect(cancelRalph).toBeDefined();
|
|
158
|
+
expect(cancelRalph.aliasOf).toBe('cancel');
|
|
159
|
+
expect(cancelRalph.deprecatedAlias).toBe(true);
|
|
160
|
+
expect(cancelRalph.deprecationMessage).toContain('Use "cancel" instead');
|
|
161
|
+
expect(cancelRalph.template).toBe(cancel.template);
|
|
162
|
+
expect(listBuiltinSkillNames()).toContain('cancel');
|
|
163
|
+
expect(listBuiltinSkillNames()).not.toContain('cancel-ralph');
|
|
164
|
+
expect(listBuiltinSkillNames({ includeAliases: true })).toContain('cancel-ralph');
|
|
165
|
+
});
|
|
149
166
|
it('exposes learner as a deprecated alias for canonical skillify', () => {
|
|
150
167
|
const skillify = getBuiltinSkill('skillify');
|
|
151
168
|
const learner = getBuiltinSkill('learner');
|
|
@@ -620,8 +637,8 @@ describe('Builtin Skills', () => {
|
|
|
620
637
|
});
|
|
621
638
|
it('should include aliases when explicitly requested', () => {
|
|
622
639
|
const names = listBuiltinSkillNames({ includeAliases: true });
|
|
623
|
-
// swarm alias removed in #1131, psm
|
|
624
|
-
expect(names).toHaveLength(
|
|
640
|
+
// swarm alias removed in #1131; cancel-ralph (upstream #2967), psm, and learner aliases still exist
|
|
641
|
+
expect(names).toHaveLength(54);
|
|
625
642
|
expect(names).toContain('ai-slop-cleaner');
|
|
626
643
|
expect(names).toContain('autoresearch');
|
|
627
644
|
expect(names).toContain('self-improve');
|
|
@@ -629,6 +646,7 @@ describe('Builtin Skills', () => {
|
|
|
629
646
|
expect(names).toContain('visual-verdict');
|
|
630
647
|
expect(names).toContain('wiki');
|
|
631
648
|
expect(names).not.toContain('swarm');
|
|
649
|
+
expect(names).toContain('cancel-ralph');
|
|
632
650
|
expect(names).toContain('psm');
|
|
633
651
|
expect(names).toContain('learner');
|
|
634
652
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.test.js","sourceRoot":"","sources":["../../src/__tests__/skills.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skills.test.js","sourceRoot":"","sources":["../../src/__tests__/skills.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { describe, expect, it, vi, beforeEach, afterEach } from 'vitest';
|
|
9
9
|
import { execFileSync } from 'child_process';
|
|
10
|
-
import { existsSync, mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
|
|
10
|
+
import { existsSync, lstatSync, mkdirSync, mkdtempSync, readFileSync, readlinkSync, rmSync, writeFileSync } from 'node:fs';
|
|
11
11
|
import { tmpdir } from 'node:os';
|
|
12
12
|
import { join } from 'node:path';
|
|
13
13
|
vi.mock('child_process', async (importOriginal) => {
|
|
@@ -693,6 +693,59 @@ describe('prepareOmcLaunchConfigDir / launchCommand OMC companion loading', () =
|
|
|
693
693
|
expect(existsSync(join(runtimeDir, 'themes'))).toBe(true);
|
|
694
694
|
expect(readFileSync(join(runtimeDir, 'themes', 'custom-theme.json'), 'utf-8')).toBe('{"name":"custom"}');
|
|
695
695
|
});
|
|
696
|
+
it.skipIf(process.platform === 'win32')('mirrors Linux credential file as a symlink without copying credential content', () => {
|
|
697
|
+
const configDir = join(tempRoot, '.copilot-cred');
|
|
698
|
+
mkdirSync(configDir, { recursive: true });
|
|
699
|
+
const credentialsPath = join(configDir, '.credentials.json');
|
|
700
|
+
const credentialContent = '{"accessToken":"test-only-token"}';
|
|
701
|
+
const logSpy = vi.spyOn(console, 'log').mockImplementation(() => undefined);
|
|
702
|
+
const warnSpy = vi.spyOn(console, 'warn').mockImplementation(() => undefined);
|
|
703
|
+
const errorSpy = vi.spyOn(console, 'error').mockImplementation(() => undefined);
|
|
704
|
+
writeFileSync(join(configDir, 'copilot-instructions-omc.md'), '<!-- OMC:START -->\n# OMC\n<!-- OMC:END -->\n');
|
|
705
|
+
writeFileSync(credentialsPath, credentialContent);
|
|
706
|
+
try {
|
|
707
|
+
const runtimeDir = prepareOmcLaunchConfigDir(configDir);
|
|
708
|
+
const runtimeCredentialsPath = join(runtimeDir, '.credentials.json');
|
|
709
|
+
expect(existsSync(runtimeCredentialsPath)).toBe(true);
|
|
710
|
+
expect(lstatSync(runtimeCredentialsPath).isSymbolicLink()).toBe(true);
|
|
711
|
+
expect(readlinkSync(runtimeCredentialsPath)).toBe(credentialsPath);
|
|
712
|
+
const consoleOutput = [...logSpy.mock.calls, ...warnSpy.mock.calls, ...errorSpy.mock.calls].flat().join('\n');
|
|
713
|
+
expect(consoleOutput).not.toContain(credentialContent);
|
|
714
|
+
}
|
|
715
|
+
finally {
|
|
716
|
+
logSpy.mockRestore();
|
|
717
|
+
warnSpy.mockRestore();
|
|
718
|
+
errorSpy.mockRestore();
|
|
719
|
+
}
|
|
720
|
+
});
|
|
721
|
+
it.skipIf(process.platform === 'win32')('does not copy credential content when credential symlink creation fails', async () => {
|
|
722
|
+
vi.resetModules();
|
|
723
|
+
const actualFs = await vi.importActual('node:fs');
|
|
724
|
+
const copyFileSyncSpy = vi.fn(actualFs.copyFileSync);
|
|
725
|
+
vi.doMock('fs', () => ({
|
|
726
|
+
...actualFs,
|
|
727
|
+
copyFileSync: copyFileSyncSpy,
|
|
728
|
+
symlinkSync: vi.fn(() => {
|
|
729
|
+
throw new Error('symlink unavailable');
|
|
730
|
+
}),
|
|
731
|
+
}));
|
|
732
|
+
try {
|
|
733
|
+
const { prepareOmcLaunchConfigDir: prepareWithFailedSymlink } = await import('../launch.js');
|
|
734
|
+
const configDir = join(tempRoot, '.copilot-cred-symlink');
|
|
735
|
+
mkdirSync(configDir, { recursive: true });
|
|
736
|
+
const credentialsPath = join(configDir, '.credentials.json');
|
|
737
|
+
writeFileSync(join(configDir, 'copilot-instructions-omc.md'), '<!-- OMC:START -->\n# OMC\n<!-- OMC:END -->\n');
|
|
738
|
+
writeFileSync(credentialsPath, '{"accessToken":"test-only-token"}');
|
|
739
|
+
const runtimeDir = prepareWithFailedSymlink(configDir);
|
|
740
|
+
const runtimeCredentialsPath = join(runtimeDir, '.credentials.json');
|
|
741
|
+
expect(existsSync(runtimeCredentialsPath)).toBe(false);
|
|
742
|
+
expect(copyFileSyncSpy).not.toHaveBeenCalledWith(credentialsPath, runtimeCredentialsPath);
|
|
743
|
+
}
|
|
744
|
+
finally {
|
|
745
|
+
vi.doUnmock('fs');
|
|
746
|
+
vi.resetModules();
|
|
747
|
+
}
|
|
748
|
+
});
|
|
696
749
|
it('preserves runtime .claude.json across runtime config dir rebuilds', () => {
|
|
697
750
|
const configDir = join(tempRoot, '.copilot');
|
|
698
751
|
mkdirSync(configDir, { recursive: true });
|