@brainervirus/workit-codex 8.11.0 → 8.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.codex-plugin/plugin.json +1 -1
- package/dist/launch-mcp.js +72 -73
- package/dist/{workit-hook-gtdf2ra8.js → workit-hook-n81rx47z.js} +315 -199
- package/dist/workit-hook.js +1 -1
- package/package.json +3 -3
- package/skills/workit-fanout/references/brief.md +23 -8
- package/skills/workit-fanout/references/orchestration.md +9 -4
package/dist/launch-mcp.js
CHANGED
|
@@ -16061,6 +16061,63 @@ function acquireFileLockSync(targetPath, options) {
|
|
|
16061
16061
|
}
|
|
16062
16062
|
}
|
|
16063
16063
|
}
|
|
16064
|
+
// packages/workit-core/src/core/logger.ts
|
|
16065
|
+
import os from "node:os";
|
|
16066
|
+
var REDACTED = "[REDACTED]";
|
|
16067
|
+
var SECRET_VALUE = /\b(?:Bearer|Basic|Digest|Token)\s+\S+/gi;
|
|
16068
|
+
var KEY_EQ_VALUE = /\b([A-Za-z0-9_-]*(?:token|secret|password|passwd|apikey|api[_-]?key|authorization|credential|bearer)[A-Za-z0-9_-]*)([:=]\s*).+/gi;
|
|
16069
|
+
var URL_QUERY = /(https?:\/\/[^?#\s]+)\?[^#\s]*/g;
|
|
16070
|
+
var SENSITIVE_WORDS = new Set([
|
|
16071
|
+
"token",
|
|
16072
|
+
"secret",
|
|
16073
|
+
"password",
|
|
16074
|
+
"passwd",
|
|
16075
|
+
"authorization",
|
|
16076
|
+
"credential",
|
|
16077
|
+
"credentials",
|
|
16078
|
+
"cookie",
|
|
16079
|
+
"api",
|
|
16080
|
+
"apikey",
|
|
16081
|
+
"apitoken",
|
|
16082
|
+
"accesstoken",
|
|
16083
|
+
"clientsecret",
|
|
16084
|
+
"refreshtoken",
|
|
16085
|
+
"key",
|
|
16086
|
+
"bearer",
|
|
16087
|
+
"prompt",
|
|
16088
|
+
"message",
|
|
16089
|
+
"messages",
|
|
16090
|
+
"content",
|
|
16091
|
+
"body",
|
|
16092
|
+
"args",
|
|
16093
|
+
"argument",
|
|
16094
|
+
"result",
|
|
16095
|
+
"results",
|
|
16096
|
+
"output",
|
|
16097
|
+
"issue",
|
|
16098
|
+
"description",
|
|
16099
|
+
"summary",
|
|
16100
|
+
"payload",
|
|
16101
|
+
"script",
|
|
16102
|
+
"command",
|
|
16103
|
+
"text",
|
|
16104
|
+
"query"
|
|
16105
|
+
]);
|
|
16106
|
+
var STACK_WORDS = new Set(["stack", "stacktrace", "trace"]);
|
|
16107
|
+
var escapeRegExp = (value) => value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
16108
|
+
var homePattern = new RegExp(`${escapeRegExp(os.homedir())}(?=[/\\\\]|$)|\\$HOME(?=[/\\\\]|$)`, "g");
|
|
16109
|
+
var applyPatterns = (value) => {
|
|
16110
|
+
let out = value;
|
|
16111
|
+
out = out.replace(SECRET_VALUE, REDACTED);
|
|
16112
|
+
out = out.replace(KEY_EQ_VALUE, "$1$2[REDACTED]");
|
|
16113
|
+
out = out.replace(URL_QUERY, "$1?[REDACTED]");
|
|
16114
|
+
out = out.replace(homePattern, "~");
|
|
16115
|
+
if (process.platform === "win32")
|
|
16116
|
+
out = out.replace(/\\/g, "/");
|
|
16117
|
+
return out;
|
|
16118
|
+
};
|
|
16119
|
+
var redactSecrets = (value) => applyPatterns(value);
|
|
16120
|
+
|
|
16064
16121
|
// packages/workit-core/src/store/paths.ts
|
|
16065
16122
|
import { spawnSync } from "node:child_process";
|
|
16066
16123
|
import { createHash as createHash2 } from "node:crypto";
|
|
@@ -18849,7 +18906,7 @@ function loadCheckConfig(cwd) {
|
|
|
18849
18906
|
gates[gate] = names;
|
|
18850
18907
|
}
|
|
18851
18908
|
}
|
|
18852
|
-
return { source: CHECKS_FILE, root, checks, gates, error: null };
|
|
18909
|
+
return { source: CHECKS_FILE, root, checks, gates, error: null, resources: parsed.resources };
|
|
18853
18910
|
}
|
|
18854
18911
|
var sameArgv = (left, right) => left.length === right.length && left.every((item, index) => item === right[index]);
|
|
18855
18912
|
function matchesNamedCheck(config, name, argv, cwd) {
|
|
@@ -18891,7 +18948,7 @@ function checkCommand(args, version, onPath = workitAvailable()) {
|
|
|
18891
18948
|
import { spawnSync as spawnSync4 } from "node:child_process";
|
|
18892
18949
|
import { createHash as createHash5 } from "node:crypto";
|
|
18893
18950
|
import fs9 from "node:fs";
|
|
18894
|
-
import
|
|
18951
|
+
import os2 from "node:os";
|
|
18895
18952
|
import path8 from "node:path";
|
|
18896
18953
|
var MAX_BUFFER = 256 * 1024 * 1024;
|
|
18897
18954
|
var GIT_TIMEOUTS = { local: 20000, worktree: 120000, network: 15000 };
|
|
@@ -18939,7 +18996,7 @@ function worktreeTree(cwd, options = {}) {
|
|
|
18939
18996
|
return null;
|
|
18940
18997
|
const cap = options.maxUntrackedBytes ?? MAX_UNTRACKED_BYTES;
|
|
18941
18998
|
const timeoutMs = options.timeoutMs ?? GIT_TIMEOUTS.worktree;
|
|
18942
|
-
const scratch = fs9.mkdtempSync(path8.join(
|
|
18999
|
+
const scratch = fs9.mkdtempSync(path8.join(os2.tmpdir(), "workit-tree-"));
|
|
18943
19000
|
try {
|
|
18944
19001
|
const tempIndex = path8.join(scratch, "index");
|
|
18945
19002
|
if (fs9.existsSync(indexPath))
|
|
@@ -19093,7 +19150,7 @@ import {
|
|
|
19093
19150
|
readdirSync as readdirSync2,
|
|
19094
19151
|
writeFileSync as writeFileSync2
|
|
19095
19152
|
} from "node:fs";
|
|
19096
|
-
import
|
|
19153
|
+
import os3 from "node:os";
|
|
19097
19154
|
import path9 from "node:path";
|
|
19098
19155
|
|
|
19099
19156
|
// packages/workit-core/src/core/boundary.ts
|
|
@@ -19153,7 +19210,7 @@ var mergePreset = (preset, input = {}, current = {
|
|
|
19153
19210
|
protected: preset === "custom" ? input.protectedNames ?? current.branchPolicy.protected : [...defs.protected]
|
|
19154
19211
|
};
|
|
19155
19212
|
};
|
|
19156
|
-
var resolveConfigDir = () => process.env.WORKFLOW_TOOLKIT_CONFIG ?? process.env.WORKFLOW_TOOLKIT_CONFIG_DIR ?? path9.join(process.env.XDG_CONFIG_HOME || path9.join(
|
|
19213
|
+
var resolveConfigDir = () => process.env.WORKFLOW_TOOLKIT_CONFIG ?? process.env.WORKFLOW_TOOLKIT_CONFIG_DIR ?? path9.join(process.env.XDG_CONFIG_HOME || path9.join(os3.homedir(), ".config"), "workit");
|
|
19157
19214
|
var migratedDir = null;
|
|
19158
19215
|
var migrationFailed = false;
|
|
19159
19216
|
var ensureConfigDir = (dir = resolveConfigDir()) => {
|
|
@@ -19163,7 +19220,7 @@ var ensureConfigDir = (dir = resolveConfigDir()) => {
|
|
|
19163
19220
|
migratedDir = dir;
|
|
19164
19221
|
return dir;
|
|
19165
19222
|
}
|
|
19166
|
-
const legacy = path9.join(process.env.XDG_CONFIG_HOME || path9.join(
|
|
19223
|
+
const legacy = path9.join(process.env.XDG_CONFIG_HOME || path9.join(os3.homedir(), ".config"), "workflow-toolkit");
|
|
19167
19224
|
if (!existsSync3(legacy)) {
|
|
19168
19225
|
migratedDir = dir;
|
|
19169
19226
|
return dir;
|
|
@@ -19437,6 +19494,7 @@ var workspaceConfigSchema = object({
|
|
|
19437
19494
|
autoApprove: union([boolean2(), array(nonBlank)]).optional(),
|
|
19438
19495
|
defaultEndpoint: unknown().optional(),
|
|
19439
19496
|
verification: _enum(["self", "independent"]).optional(),
|
|
19497
|
+
trailers: boolean2().optional(),
|
|
19440
19498
|
autonomy: object(Object.fromEntries(["push", "pr", "merge", "release", "rerun"].map((kind) => [
|
|
19441
19499
|
kind,
|
|
19442
19500
|
union([boolean2(), literal("verified")]).optional()
|
|
@@ -19718,8 +19776,8 @@ var resolveRuntimeWorkspaceVcs = (cwd) => resolveRuntimeWorkspaceCandidate(cwd,
|
|
|
19718
19776
|
var runtimeWorkspaceIndexSchema = object({
|
|
19719
19777
|
workspaces: array(object({ name: nonBlank, glob: nonBlank }).passthrough()).optional()
|
|
19720
19778
|
}).passthrough();
|
|
19721
|
-
var matchRuntimeWorkspace = (cwd) => {
|
|
19722
|
-
const file = path10.join(
|
|
19779
|
+
var matchRuntimeWorkspace = (cwd, dir = configDir()) => {
|
|
19780
|
+
const file = path10.join(dir, "workspaces.json");
|
|
19723
19781
|
let raw;
|
|
19724
19782
|
try {
|
|
19725
19783
|
raw = readFileSync3(file, "utf8");
|
|
@@ -19748,7 +19806,7 @@ var matchRuntimeWorkspace = (cwd) => {
|
|
|
19748
19806
|
const matches = matchingEntries(cwd, entries ?? []);
|
|
19749
19807
|
const workspaceName = process.env.WORKFLOW_WORKSPACE_NAME?.trim() || undefined;
|
|
19750
19808
|
const selected = selectWorkspaceMatch(matches, cwd, workspaceName);
|
|
19751
|
-
return selected ? { file, selected } : null;
|
|
19809
|
+
return selected ? { file, selected, matches } : null;
|
|
19752
19810
|
};
|
|
19753
19811
|
var resolveRuntimeReleaseTracks = (cwd) => {
|
|
19754
19812
|
const matched = matchRuntimeWorkspace(cwd);
|
|
@@ -20077,7 +20135,7 @@ var git3 = (cwd, args) => {
|
|
|
20077
20135
|
return run.status === 0 ? (run.stdout ?? "").trim() : null;
|
|
20078
20136
|
};
|
|
20079
20137
|
var recordedBaseKey = (branch) => `branch.${branch}.workitBase`;
|
|
20080
|
-
var
|
|
20138
|
+
var escapeRegExp2 = (text) => text.replace(/[.*+?^${}()|[\]\\]/gu, "\\$&");
|
|
20081
20139
|
var reflog = (cwd, ref) => (git3(cwd, ["log", "-g", "--date=unix", "--format=%H%x09%gd%x09%gs", ref, "--"]) ?? "").split(`
|
|
20082
20140
|
`).map((line) => {
|
|
20083
20141
|
const [sha = "", selector = "", ...subject] = line.split("\t");
|
|
@@ -20109,7 +20167,7 @@ function gitTrackProbe(cwd) {
|
|
|
20109
20167
|
const created = own.at(-1);
|
|
20110
20168
|
if (!created || created.subject !== "branch: Created from HEAD")
|
|
20111
20169
|
return null;
|
|
20112
|
-
const pattern = new RegExp(`^checkout: moving from (\\S+) to ${
|
|
20170
|
+
const pattern = new RegExp(`^checkout: moving from (\\S+) to ${escapeRegExp2(branch)}$`, "u");
|
|
20113
20171
|
const entry = reflog(cwd, "HEAD").findLast((item) => item.time >= created.time && item.sha === created.sha && pattern.test(item.subject));
|
|
20114
20172
|
return entry ? pattern.exec(entry.subject)?.[1] ?? null : null;
|
|
20115
20173
|
},
|
|
@@ -22549,13 +22607,13 @@ var judgeInputSummary = (raw) => {
|
|
|
22549
22607
|
};
|
|
22550
22608
|
|
|
22551
22609
|
// packages/workit-core/src/autonomy.ts
|
|
22552
|
-
import
|
|
22610
|
+
import os4 from "node:os";
|
|
22553
22611
|
import path15 from "node:path";
|
|
22554
22612
|
var accountHome = () => {
|
|
22555
22613
|
try {
|
|
22556
|
-
return
|
|
22614
|
+
return os4.userInfo().homedir;
|
|
22557
22615
|
} catch {
|
|
22558
|
-
return
|
|
22616
|
+
return os4.homedir();
|
|
22559
22617
|
}
|
|
22560
22618
|
};
|
|
22561
22619
|
var grantsHome = { resolve: accountHome };
|
|
@@ -27783,65 +27841,6 @@ class StdioServerTransport {
|
|
|
27783
27841
|
|
|
27784
27842
|
// packages/workit-mcp/src/server.ts
|
|
27785
27843
|
import { fileURLToPath as fileURLToPath2 } from "node:url";
|
|
27786
|
-
|
|
27787
|
-
// packages/workit-core/src/core/logger.ts
|
|
27788
|
-
import os4 from "node:os";
|
|
27789
|
-
var REDACTED = "[REDACTED]";
|
|
27790
|
-
var SECRET_VALUE = /\b(?:Bearer|Basic|Digest|Token)\s+\S+/gi;
|
|
27791
|
-
var KEY_EQ_VALUE = /\b([A-Za-z0-9_-]*(?:token|secret|password|passwd|apikey|api[_-]?key|authorization|credential|bearer)[A-Za-z0-9_-]*)([:=]\s*).+/gi;
|
|
27792
|
-
var URL_QUERY = /(https?:\/\/[^?#\s]+)\?[^#\s]*/g;
|
|
27793
|
-
var SENSITIVE_WORDS = new Set([
|
|
27794
|
-
"token",
|
|
27795
|
-
"secret",
|
|
27796
|
-
"password",
|
|
27797
|
-
"passwd",
|
|
27798
|
-
"authorization",
|
|
27799
|
-
"credential",
|
|
27800
|
-
"credentials",
|
|
27801
|
-
"cookie",
|
|
27802
|
-
"api",
|
|
27803
|
-
"apikey",
|
|
27804
|
-
"apitoken",
|
|
27805
|
-
"accesstoken",
|
|
27806
|
-
"clientsecret",
|
|
27807
|
-
"refreshtoken",
|
|
27808
|
-
"key",
|
|
27809
|
-
"bearer",
|
|
27810
|
-
"prompt",
|
|
27811
|
-
"message",
|
|
27812
|
-
"messages",
|
|
27813
|
-
"content",
|
|
27814
|
-
"body",
|
|
27815
|
-
"args",
|
|
27816
|
-
"argument",
|
|
27817
|
-
"result",
|
|
27818
|
-
"results",
|
|
27819
|
-
"output",
|
|
27820
|
-
"issue",
|
|
27821
|
-
"description",
|
|
27822
|
-
"summary",
|
|
27823
|
-
"payload",
|
|
27824
|
-
"script",
|
|
27825
|
-
"command",
|
|
27826
|
-
"text",
|
|
27827
|
-
"query"
|
|
27828
|
-
]);
|
|
27829
|
-
var STACK_WORDS = new Set(["stack", "stacktrace", "trace"]);
|
|
27830
|
-
var escapeRegExp2 = (value) => value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
27831
|
-
var homePattern = new RegExp(`${escapeRegExp2(os4.homedir())}(?=[/\\\\]|$)|\\$HOME(?=[/\\\\]|$)`, "g");
|
|
27832
|
-
var applyPatterns = (value) => {
|
|
27833
|
-
let out = value;
|
|
27834
|
-
out = out.replace(SECRET_VALUE, REDACTED);
|
|
27835
|
-
out = out.replace(KEY_EQ_VALUE, "$1$2[REDACTED]");
|
|
27836
|
-
out = out.replace(URL_QUERY, "$1?[REDACTED]");
|
|
27837
|
-
out = out.replace(homePattern, "~");
|
|
27838
|
-
if (process.platform === "win32")
|
|
27839
|
-
out = out.replace(/\\/g, "/");
|
|
27840
|
-
return out;
|
|
27841
|
-
};
|
|
27842
|
-
var redactSecrets = (value) => applyPatterns(value);
|
|
27843
|
-
|
|
27844
|
-
// packages/workit-mcp/src/server.ts
|
|
27845
27844
|
class McpCapabilityUnavailableError extends Error {
|
|
27846
27845
|
capability;
|
|
27847
27846
|
constructor(capability) {
|