@skj1724/oh-my-opencode 3.18.12 → 3.18.14
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/dist/cli/index.js
CHANGED
|
@@ -53770,7 +53770,7 @@ var {
|
|
|
53770
53770
|
// package.json
|
|
53771
53771
|
var package_default = {
|
|
53772
53772
|
name: "@skj1724/oh-my-opencode",
|
|
53773
|
-
version: "3.18.
|
|
53773
|
+
version: "3.18.14",
|
|
53774
53774
|
description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
|
|
53775
53775
|
main: "./dist/index.js",
|
|
53776
53776
|
types: "dist/index.d.ts",
|
|
@@ -53838,7 +53838,7 @@ var package_default = {
|
|
|
53838
53838
|
"js-yaml": "^4.1.1",
|
|
53839
53839
|
"jsonc-parser": "^3.3.1",
|
|
53840
53840
|
picocolors: "^1.1.1",
|
|
53841
|
-
picomatch: "^4.0.
|
|
53841
|
+
picomatch: "^4.0.4",
|
|
53842
53842
|
"posthog-node": "5.28.11",
|
|
53843
53843
|
"vscode-jsonrpc": "^8.2.0"
|
|
53844
53844
|
},
|
|
@@ -74094,7 +74094,9 @@ var BuiltinCommandNameSchema = exports_external.enum([
|
|
|
74094
74094
|
"refactor",
|
|
74095
74095
|
"start-work",
|
|
74096
74096
|
"stop-continuation",
|
|
74097
|
-
"
|
|
74097
|
+
"handoff",
|
|
74098
|
+
"remove-ai-slops",
|
|
74099
|
+
"open-plan"
|
|
74098
74100
|
]);
|
|
74099
74101
|
// src/config/schema/dynamic-context-pruning.ts
|
|
74100
74102
|
var DynamicContextPruningConfigSchema = exports_external.object({
|
|
@@ -7,6 +7,8 @@ export declare const BuiltinCommandNameSchema: z.ZodEnum<{
|
|
|
7
7
|
refactor: "refactor";
|
|
8
8
|
"start-work": "start-work";
|
|
9
9
|
"stop-continuation": "stop-continuation";
|
|
10
|
+
handoff: "handoff";
|
|
10
11
|
"remove-ai-slops": "remove-ai-slops";
|
|
12
|
+
"open-plan": "open-plan";
|
|
11
13
|
}>;
|
|
12
14
|
export type BuiltinCommandName = z.infer<typeof BuiltinCommandNameSchema>;
|
|
@@ -24,7 +24,9 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
|
|
|
24
24
|
refactor: "refactor";
|
|
25
25
|
"start-work": "start-work";
|
|
26
26
|
"stop-continuation": "stop-continuation";
|
|
27
|
+
handoff: "handoff";
|
|
27
28
|
"remove-ai-slops": "remove-ai-slops";
|
|
29
|
+
"open-plan": "open-plan";
|
|
28
30
|
}>>>;
|
|
29
31
|
disabled_tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
30
32
|
mcp_env_allowlist: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import type { BuiltinCommandName } from "../../config/schema/commands";
|
|
2
|
+
export type { BuiltinCommandName };
|
|
1
3
|
import type { CommandDefinition } from "../claude-code-command-loader";
|
|
2
|
-
export type BuiltinCommandName = "init-deep" | "ralph-loop" | "cancel-ralph" | "ulw-loop" | "refactor" | "start-work" | "stop-continuation" | "handoff" | "remove-ai-slops" | "open-plan";
|
|
3
4
|
export interface BuiltinCommandConfig {
|
|
4
5
|
disabled_commands?: BuiltinCommandName[];
|
|
5
6
|
}
|
package/dist/index.js
CHANGED
|
@@ -3014,6 +3014,7 @@ function truncateDescription(description, maxLength = 120) {
|
|
|
3014
3014
|
var require_constants = __commonJS((exports, module) => {
|
|
3015
3015
|
var WIN_SLASH = "\\\\/";
|
|
3016
3016
|
var WIN_NO_SLASH = `[^${WIN_SLASH}]`;
|
|
3017
|
+
var DEFAULT_MAX_EXTGLOB_RECURSION = 0;
|
|
3017
3018
|
var DOT_LITERAL = "\\.";
|
|
3018
3019
|
var PLUS_LITERAL = "\\+";
|
|
3019
3020
|
var QMARK_LITERAL = "\\?";
|
|
@@ -3064,6 +3065,7 @@ var require_constants = __commonJS((exports, module) => {
|
|
|
3064
3065
|
SEP: "\\"
|
|
3065
3066
|
};
|
|
3066
3067
|
var POSIX_REGEX_SOURCE = {
|
|
3068
|
+
__proto__: null,
|
|
3067
3069
|
alnum: "a-zA-Z0-9",
|
|
3068
3070
|
alpha: "a-zA-Z",
|
|
3069
3071
|
ascii: "\\x00-\\x7F",
|
|
@@ -3080,6 +3082,7 @@ var require_constants = __commonJS((exports, module) => {
|
|
|
3080
3082
|
xdigit: "A-Fa-f0-9"
|
|
3081
3083
|
};
|
|
3082
3084
|
module.exports = {
|
|
3085
|
+
DEFAULT_MAX_EXTGLOB_RECURSION,
|
|
3083
3086
|
MAX_LENGTH: 1024 * 64,
|
|
3084
3087
|
POSIX_REGEX_SOURCE,
|
|
3085
3088
|
REGEX_BACKSLASH: /\\(?![*+?^${}(|)[\]])/g,
|
|
@@ -3557,6 +3560,213 @@ var require_parse = __commonJS((exports, module) => {
|
|
|
3557
3560
|
var syntaxError = (type2, char) => {
|
|
3558
3561
|
return `Missing ${type2}: "${char}" - use "\\\\${char}" to match literal characters`;
|
|
3559
3562
|
};
|
|
3563
|
+
var splitTopLevel = (input) => {
|
|
3564
|
+
const parts = [];
|
|
3565
|
+
let bracket = 0;
|
|
3566
|
+
let paren = 0;
|
|
3567
|
+
let quote = 0;
|
|
3568
|
+
let value = "";
|
|
3569
|
+
let escaped = false;
|
|
3570
|
+
for (const ch of input) {
|
|
3571
|
+
if (escaped === true) {
|
|
3572
|
+
value += ch;
|
|
3573
|
+
escaped = false;
|
|
3574
|
+
continue;
|
|
3575
|
+
}
|
|
3576
|
+
if (ch === "\\") {
|
|
3577
|
+
value += ch;
|
|
3578
|
+
escaped = true;
|
|
3579
|
+
continue;
|
|
3580
|
+
}
|
|
3581
|
+
if (ch === '"') {
|
|
3582
|
+
quote = quote === 1 ? 0 : 1;
|
|
3583
|
+
value += ch;
|
|
3584
|
+
continue;
|
|
3585
|
+
}
|
|
3586
|
+
if (quote === 0) {
|
|
3587
|
+
if (ch === "[") {
|
|
3588
|
+
bracket++;
|
|
3589
|
+
} else if (ch === "]" && bracket > 0) {
|
|
3590
|
+
bracket--;
|
|
3591
|
+
} else if (bracket === 0) {
|
|
3592
|
+
if (ch === "(") {
|
|
3593
|
+
paren++;
|
|
3594
|
+
} else if (ch === ")" && paren > 0) {
|
|
3595
|
+
paren--;
|
|
3596
|
+
} else if (ch === "|" && paren === 0) {
|
|
3597
|
+
parts.push(value);
|
|
3598
|
+
value = "";
|
|
3599
|
+
continue;
|
|
3600
|
+
}
|
|
3601
|
+
}
|
|
3602
|
+
}
|
|
3603
|
+
value += ch;
|
|
3604
|
+
}
|
|
3605
|
+
parts.push(value);
|
|
3606
|
+
return parts;
|
|
3607
|
+
};
|
|
3608
|
+
var isPlainBranch = (branch) => {
|
|
3609
|
+
let escaped = false;
|
|
3610
|
+
for (const ch of branch) {
|
|
3611
|
+
if (escaped === true) {
|
|
3612
|
+
escaped = false;
|
|
3613
|
+
continue;
|
|
3614
|
+
}
|
|
3615
|
+
if (ch === "\\") {
|
|
3616
|
+
escaped = true;
|
|
3617
|
+
continue;
|
|
3618
|
+
}
|
|
3619
|
+
if (/[?*+@!()[\]{}]/.test(ch)) {
|
|
3620
|
+
return false;
|
|
3621
|
+
}
|
|
3622
|
+
}
|
|
3623
|
+
return true;
|
|
3624
|
+
};
|
|
3625
|
+
var normalizeSimpleBranch = (branch) => {
|
|
3626
|
+
let value = branch.trim();
|
|
3627
|
+
let changed = true;
|
|
3628
|
+
while (changed === true) {
|
|
3629
|
+
changed = false;
|
|
3630
|
+
if (/^@\([^\\()[\]{}|]+\)$/.test(value)) {
|
|
3631
|
+
value = value.slice(2, -1);
|
|
3632
|
+
changed = true;
|
|
3633
|
+
}
|
|
3634
|
+
}
|
|
3635
|
+
if (!isPlainBranch(value)) {
|
|
3636
|
+
return;
|
|
3637
|
+
}
|
|
3638
|
+
return value.replace(/\\(.)/g, "$1");
|
|
3639
|
+
};
|
|
3640
|
+
var hasRepeatedCharPrefixOverlap = (branches) => {
|
|
3641
|
+
const values = branches.map(normalizeSimpleBranch).filter(Boolean);
|
|
3642
|
+
for (let i2 = 0;i2 < values.length; i2++) {
|
|
3643
|
+
for (let j = i2 + 1;j < values.length; j++) {
|
|
3644
|
+
const a = values[i2];
|
|
3645
|
+
const b = values[j];
|
|
3646
|
+
const char = a[0];
|
|
3647
|
+
if (!char || a !== char.repeat(a.length) || b !== char.repeat(b.length)) {
|
|
3648
|
+
continue;
|
|
3649
|
+
}
|
|
3650
|
+
if (a === b || a.startsWith(b) || b.startsWith(a)) {
|
|
3651
|
+
return true;
|
|
3652
|
+
}
|
|
3653
|
+
}
|
|
3654
|
+
}
|
|
3655
|
+
return false;
|
|
3656
|
+
};
|
|
3657
|
+
var parseRepeatedExtglob = (pattern, requireEnd = true) => {
|
|
3658
|
+
if (pattern[0] !== "+" && pattern[0] !== "*" || pattern[1] !== "(") {
|
|
3659
|
+
return;
|
|
3660
|
+
}
|
|
3661
|
+
let bracket = 0;
|
|
3662
|
+
let paren = 0;
|
|
3663
|
+
let quote = 0;
|
|
3664
|
+
let escaped = false;
|
|
3665
|
+
for (let i2 = 1;i2 < pattern.length; i2++) {
|
|
3666
|
+
const ch = pattern[i2];
|
|
3667
|
+
if (escaped === true) {
|
|
3668
|
+
escaped = false;
|
|
3669
|
+
continue;
|
|
3670
|
+
}
|
|
3671
|
+
if (ch === "\\") {
|
|
3672
|
+
escaped = true;
|
|
3673
|
+
continue;
|
|
3674
|
+
}
|
|
3675
|
+
if (ch === '"') {
|
|
3676
|
+
quote = quote === 1 ? 0 : 1;
|
|
3677
|
+
continue;
|
|
3678
|
+
}
|
|
3679
|
+
if (quote === 1) {
|
|
3680
|
+
continue;
|
|
3681
|
+
}
|
|
3682
|
+
if (ch === "[") {
|
|
3683
|
+
bracket++;
|
|
3684
|
+
continue;
|
|
3685
|
+
}
|
|
3686
|
+
if (ch === "]" && bracket > 0) {
|
|
3687
|
+
bracket--;
|
|
3688
|
+
continue;
|
|
3689
|
+
}
|
|
3690
|
+
if (bracket > 0) {
|
|
3691
|
+
continue;
|
|
3692
|
+
}
|
|
3693
|
+
if (ch === "(") {
|
|
3694
|
+
paren++;
|
|
3695
|
+
continue;
|
|
3696
|
+
}
|
|
3697
|
+
if (ch === ")") {
|
|
3698
|
+
paren--;
|
|
3699
|
+
if (paren === 0) {
|
|
3700
|
+
if (requireEnd === true && i2 !== pattern.length - 1) {
|
|
3701
|
+
return;
|
|
3702
|
+
}
|
|
3703
|
+
return {
|
|
3704
|
+
type: pattern[0],
|
|
3705
|
+
body: pattern.slice(2, i2),
|
|
3706
|
+
end: i2
|
|
3707
|
+
};
|
|
3708
|
+
}
|
|
3709
|
+
}
|
|
3710
|
+
}
|
|
3711
|
+
};
|
|
3712
|
+
var getStarExtglobSequenceOutput = (pattern) => {
|
|
3713
|
+
let index = 0;
|
|
3714
|
+
const chars = [];
|
|
3715
|
+
while (index < pattern.length) {
|
|
3716
|
+
const match = parseRepeatedExtglob(pattern.slice(index), false);
|
|
3717
|
+
if (!match || match.type !== "*") {
|
|
3718
|
+
return;
|
|
3719
|
+
}
|
|
3720
|
+
const branches = splitTopLevel(match.body).map((branch2) => branch2.trim());
|
|
3721
|
+
if (branches.length !== 1) {
|
|
3722
|
+
return;
|
|
3723
|
+
}
|
|
3724
|
+
const branch = normalizeSimpleBranch(branches[0]);
|
|
3725
|
+
if (!branch || branch.length !== 1) {
|
|
3726
|
+
return;
|
|
3727
|
+
}
|
|
3728
|
+
chars.push(branch);
|
|
3729
|
+
index += match.end + 1;
|
|
3730
|
+
}
|
|
3731
|
+
if (chars.length < 1) {
|
|
3732
|
+
return;
|
|
3733
|
+
}
|
|
3734
|
+
const source = chars.length === 1 ? utils.escapeRegex(chars[0]) : `[${chars.map((ch) => utils.escapeRegex(ch)).join("")}]`;
|
|
3735
|
+
return `${source}*`;
|
|
3736
|
+
};
|
|
3737
|
+
var repeatedExtglobRecursion = (pattern) => {
|
|
3738
|
+
let depth = 0;
|
|
3739
|
+
let value = pattern.trim();
|
|
3740
|
+
let match = parseRepeatedExtglob(value);
|
|
3741
|
+
while (match) {
|
|
3742
|
+
depth++;
|
|
3743
|
+
value = match.body.trim();
|
|
3744
|
+
match = parseRepeatedExtglob(value);
|
|
3745
|
+
}
|
|
3746
|
+
return depth;
|
|
3747
|
+
};
|
|
3748
|
+
var analyzeRepeatedExtglob = (body, options) => {
|
|
3749
|
+
if (options.maxExtglobRecursion === false) {
|
|
3750
|
+
return { risky: false };
|
|
3751
|
+
}
|
|
3752
|
+
const max = typeof options.maxExtglobRecursion === "number" ? options.maxExtglobRecursion : constants5.DEFAULT_MAX_EXTGLOB_RECURSION;
|
|
3753
|
+
const branches = splitTopLevel(body).map((branch) => branch.trim());
|
|
3754
|
+
if (branches.length > 1) {
|
|
3755
|
+
if (branches.some((branch) => branch === "") || branches.some((branch) => /^[*?]+$/.test(branch)) || hasRepeatedCharPrefixOverlap(branches)) {
|
|
3756
|
+
return { risky: true };
|
|
3757
|
+
}
|
|
3758
|
+
}
|
|
3759
|
+
for (const branch of branches) {
|
|
3760
|
+
const safeOutput = getStarExtglobSequenceOutput(branch);
|
|
3761
|
+
if (safeOutput) {
|
|
3762
|
+
return { risky: true, safeOutput };
|
|
3763
|
+
}
|
|
3764
|
+
if (repeatedExtglobRecursion(branch) > max) {
|
|
3765
|
+
return { risky: true };
|
|
3766
|
+
}
|
|
3767
|
+
}
|
|
3768
|
+
return { risky: false };
|
|
3769
|
+
};
|
|
3560
3770
|
var parse3 = (input, options) => {
|
|
3561
3771
|
if (typeof input !== "string") {
|
|
3562
3772
|
throw new TypeError("Expected a string");
|
|
@@ -3688,6 +3898,8 @@ var require_parse = __commonJS((exports, module) => {
|
|
|
3688
3898
|
token.prev = prev;
|
|
3689
3899
|
token.parens = state3.parens;
|
|
3690
3900
|
token.output = state3.output;
|
|
3901
|
+
token.startIndex = state3.index;
|
|
3902
|
+
token.tokensIndex = tokens.length;
|
|
3691
3903
|
const output = (opts.capture ? "(" : "") + token.open;
|
|
3692
3904
|
increment("parens");
|
|
3693
3905
|
push({ type: type2, value: value2, output: state3.output ? "" : ONE_CHAR });
|
|
@@ -3695,6 +3907,26 @@ var require_parse = __commonJS((exports, module) => {
|
|
|
3695
3907
|
extglobs.push(token);
|
|
3696
3908
|
};
|
|
3697
3909
|
const extglobClose = (token) => {
|
|
3910
|
+
const literal = input.slice(token.startIndex, state3.index + 1);
|
|
3911
|
+
const body = input.slice(token.startIndex + 2, state3.index);
|
|
3912
|
+
const analysis = analyzeRepeatedExtglob(body, opts);
|
|
3913
|
+
if ((token.type === "plus" || token.type === "star") && analysis.risky) {
|
|
3914
|
+
const safeOutput = analysis.safeOutput ? (token.output ? "" : ONE_CHAR) + (opts.capture ? `(${analysis.safeOutput})` : analysis.safeOutput) : undefined;
|
|
3915
|
+
const open = tokens[token.tokensIndex];
|
|
3916
|
+
open.type = "text";
|
|
3917
|
+
open.value = literal;
|
|
3918
|
+
open.output = safeOutput || utils.escapeRegex(literal);
|
|
3919
|
+
for (let i2 = token.tokensIndex + 1;i2 < tokens.length; i2++) {
|
|
3920
|
+
tokens[i2].value = "";
|
|
3921
|
+
tokens[i2].output = "";
|
|
3922
|
+
delete tokens[i2].suffix;
|
|
3923
|
+
}
|
|
3924
|
+
state3.output = token.output + open.output;
|
|
3925
|
+
state3.backtrack = true;
|
|
3926
|
+
push({ type: "paren", extglob: true, value, output: "" });
|
|
3927
|
+
decrement("parens");
|
|
3928
|
+
return;
|
|
3929
|
+
}
|
|
3698
3930
|
let output = token.close + (opts.capture ? ")" : "");
|
|
3699
3931
|
let rest;
|
|
3700
3932
|
if (token.type === "negate") {
|
|
@@ -81784,7 +82016,9 @@ var BuiltinCommandNameSchema = z12.enum([
|
|
|
81784
82016
|
"refactor",
|
|
81785
82017
|
"start-work",
|
|
81786
82018
|
"stop-continuation",
|
|
81787
|
-
"
|
|
82019
|
+
"handoff",
|
|
82020
|
+
"remove-ai-slops",
|
|
82021
|
+
"open-plan"
|
|
81788
82022
|
]);
|
|
81789
82023
|
// src/config/schema/dynamic-context-pruning.ts
|
|
81790
82024
|
import { z as z13 } from "zod";
|
|
@@ -130770,7 +131004,7 @@ class PostHog extends PostHogBackendClient {
|
|
|
130770
131004
|
// package.json
|
|
130771
131005
|
var package_default = {
|
|
130772
131006
|
name: "@skj1724/oh-my-opencode",
|
|
130773
|
-
version: "3.18.
|
|
131007
|
+
version: "3.18.14",
|
|
130774
131008
|
description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
|
|
130775
131009
|
main: "./dist/index.js",
|
|
130776
131010
|
types: "dist/index.d.ts",
|
|
@@ -130838,7 +131072,7 @@ var package_default = {
|
|
|
130838
131072
|
"js-yaml": "^4.1.1",
|
|
130839
131073
|
"jsonc-parser": "^3.3.1",
|
|
130840
131074
|
picocolors: "^1.1.1",
|
|
130841
|
-
picomatch: "^4.0.
|
|
131075
|
+
picomatch: "^4.0.4",
|
|
130842
131076
|
"posthog-node": "5.28.11",
|
|
130843
131077
|
"vscode-jsonrpc": "^8.2.0"
|
|
130844
131078
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skj1724/oh-my-opencode",
|
|
3
|
-
"version": "3.18.
|
|
3
|
+
"version": "3.18.14",
|
|
4
4
|
"description": "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
"js-yaml": "^4.1.1",
|
|
69
69
|
"jsonc-parser": "^3.3.1",
|
|
70
70
|
"picocolors": "^1.1.1",
|
|
71
|
-
"picomatch": "^4.0.
|
|
71
|
+
"picomatch": "^4.0.4",
|
|
72
72
|
"posthog-node": "5.28.11",
|
|
73
73
|
"vscode-jsonrpc": "^8.2.0"
|
|
74
74
|
},
|