@brainervirus/workit-mcp 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.
Files changed (2) hide show
  1. package/dist/index.js +72 -71
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -18436,6 +18436,63 @@ function acquireFileLockSync(targetPath, options) {
18436
18436
  }
18437
18437
  }
18438
18438
  }
18439
+ // packages/workit-core/src/core/logger.ts
18440
+ import os from "node:os";
18441
+ var REDACTED = "[REDACTED]";
18442
+ var SECRET_VALUE = /\b(?:Bearer|Basic|Digest|Token)\s+\S+/gi;
18443
+ 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;
18444
+ var URL_QUERY = /(https?:\/\/[^?#\s]+)\?[^#\s]*/g;
18445
+ var SENSITIVE_WORDS = new Set([
18446
+ "token",
18447
+ "secret",
18448
+ "password",
18449
+ "passwd",
18450
+ "authorization",
18451
+ "credential",
18452
+ "credentials",
18453
+ "cookie",
18454
+ "api",
18455
+ "apikey",
18456
+ "apitoken",
18457
+ "accesstoken",
18458
+ "clientsecret",
18459
+ "refreshtoken",
18460
+ "key",
18461
+ "bearer",
18462
+ "prompt",
18463
+ "message",
18464
+ "messages",
18465
+ "content",
18466
+ "body",
18467
+ "args",
18468
+ "argument",
18469
+ "result",
18470
+ "results",
18471
+ "output",
18472
+ "issue",
18473
+ "description",
18474
+ "summary",
18475
+ "payload",
18476
+ "script",
18477
+ "command",
18478
+ "text",
18479
+ "query"
18480
+ ]);
18481
+ var STACK_WORDS = new Set(["stack", "stacktrace", "trace"]);
18482
+ var escapeRegExp = (value) => value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
18483
+ var homePattern = new RegExp(`${escapeRegExp(os.homedir())}(?=[/\\\\]|$)|\\$HOME(?=[/\\\\]|$)`, "g");
18484
+ var applyPatterns = (value) => {
18485
+ let out = value;
18486
+ out = out.replace(SECRET_VALUE, REDACTED);
18487
+ out = out.replace(KEY_EQ_VALUE, "$1$2[REDACTED]");
18488
+ out = out.replace(URL_QUERY, "$1?[REDACTED]");
18489
+ out = out.replace(homePattern, "~");
18490
+ if (process.platform === "win32")
18491
+ out = out.replace(/\\/g, "/");
18492
+ return out;
18493
+ };
18494
+ var redactSecrets = (value) => applyPatterns(value);
18495
+
18439
18496
  // packages/workit-core/src/store/paths.ts
18440
18497
  import { spawnSync } from "node:child_process";
18441
18498
  import { createHash as createHash2 } from "node:crypto";
@@ -21224,7 +21281,7 @@ function loadCheckConfig(cwd) {
21224
21281
  gates[gate] = names;
21225
21282
  }
21226
21283
  }
21227
- return { source: CHECKS_FILE, root, checks, gates, error: null };
21284
+ return { source: CHECKS_FILE, root, checks, gates, error: null, resources: parsed.resources };
21228
21285
  }
21229
21286
  var sameArgv = (left, right) => left.length === right.length && left.every((item, index) => item === right[index]);
21230
21287
  function matchesNamedCheck(config, name, argv, cwd) {
@@ -21266,7 +21323,7 @@ function checkCommand(args, version, onPath = workitAvailable()) {
21266
21323
  import { spawnSync as spawnSync4 } from "node:child_process";
21267
21324
  import { createHash as createHash5 } from "node:crypto";
21268
21325
  import fs9 from "node:fs";
21269
- import os from "node:os";
21326
+ import os2 from "node:os";
21270
21327
  import path8 from "node:path";
21271
21328
  var MAX_BUFFER = 256 * 1024 * 1024;
21272
21329
  var GIT_TIMEOUTS = { local: 20000, worktree: 120000, network: 15000 };
@@ -21314,7 +21371,7 @@ function worktreeTree(cwd, options = {}) {
21314
21371
  return null;
21315
21372
  const cap = options.maxUntrackedBytes ?? MAX_UNTRACKED_BYTES;
21316
21373
  const timeoutMs = options.timeoutMs ?? GIT_TIMEOUTS.worktree;
21317
- const scratch = fs9.mkdtempSync(path8.join(os.tmpdir(), "workit-tree-"));
21374
+ const scratch = fs9.mkdtempSync(path8.join(os2.tmpdir(), "workit-tree-"));
21318
21375
  try {
21319
21376
  const tempIndex = path8.join(scratch, "index");
21320
21377
  if (fs9.existsSync(indexPath))
@@ -21468,7 +21525,7 @@ import {
21468
21525
  readdirSync as readdirSync2,
21469
21526
  writeFileSync as writeFileSync2
21470
21527
  } from "node:fs";
21471
- import os2 from "node:os";
21528
+ import os3 from "node:os";
21472
21529
  import path9 from "node:path";
21473
21530
 
21474
21531
  // packages/workit-core/src/core/boundary.ts
@@ -21528,7 +21585,7 @@ var mergePreset = (preset, input = {}, current = {
21528
21585
  protected: preset === "custom" ? input.protectedNames ?? current.branchPolicy.protected : [...defs.protected]
21529
21586
  };
21530
21587
  };
21531
- var resolveConfigDir = () => process.env.WORKFLOW_TOOLKIT_CONFIG ?? process.env.WORKFLOW_TOOLKIT_CONFIG_DIR ?? path9.join(process.env.XDG_CONFIG_HOME || path9.join(os2.homedir(), ".config"), "workit");
21588
+ 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");
21532
21589
  var migratedDir = null;
21533
21590
  var migrationFailed = false;
21534
21591
  var ensureConfigDir = (dir = resolveConfigDir()) => {
@@ -21538,7 +21595,7 @@ var ensureConfigDir = (dir = resolveConfigDir()) => {
21538
21595
  migratedDir = dir;
21539
21596
  return dir;
21540
21597
  }
21541
- const legacy = path9.join(process.env.XDG_CONFIG_HOME || path9.join(os2.homedir(), ".config"), "workflow-toolkit");
21598
+ const legacy = path9.join(process.env.XDG_CONFIG_HOME || path9.join(os3.homedir(), ".config"), "workflow-toolkit");
21542
21599
  if (!existsSync3(legacy)) {
21543
21600
  migratedDir = dir;
21544
21601
  return dir;
@@ -21812,6 +21869,7 @@ var workspaceConfigSchema = object2({
21812
21869
  autoApprove: union([boolean2(), array(nonBlank)]).optional(),
21813
21870
  defaultEndpoint: unknown().optional(),
21814
21871
  verification: _enum(["self", "independent"]).optional(),
21872
+ trailers: boolean2().optional(),
21815
21873
  autonomy: object2(Object.fromEntries(["push", "pr", "merge", "release", "rerun"].map((kind) => [
21816
21874
  kind,
21817
21875
  union([boolean2(), literal("verified")]).optional()
@@ -22093,8 +22151,8 @@ var resolveRuntimeWorkspaceVcs = (cwd) => resolveRuntimeWorkspaceCandidate(cwd,
22093
22151
  var runtimeWorkspaceIndexSchema = object2({
22094
22152
  workspaces: array(object2({ name: nonBlank, glob: nonBlank }).passthrough()).optional()
22095
22153
  }).passthrough();
22096
- var matchRuntimeWorkspace = (cwd) => {
22097
- const file = path10.join(configDir(), "workspaces.json");
22154
+ var matchRuntimeWorkspace = (cwd, dir = configDir()) => {
22155
+ const file = path10.join(dir, "workspaces.json");
22098
22156
  let raw;
22099
22157
  try {
22100
22158
  raw = readFileSync3(file, "utf8");
@@ -22123,7 +22181,7 @@ var matchRuntimeWorkspace = (cwd) => {
22123
22181
  const matches = matchingEntries(cwd, entries ?? []);
22124
22182
  const workspaceName = process.env.WORKFLOW_WORKSPACE_NAME?.trim() || undefined;
22125
22183
  const selected = selectWorkspaceMatch(matches, cwd, workspaceName);
22126
- return selected ? { file, selected } : null;
22184
+ return selected ? { file, selected, matches } : null;
22127
22185
  };
22128
22186
  var resolveRuntimeReleaseTracks = (cwd) => {
22129
22187
  const matched = matchRuntimeWorkspace(cwd);
@@ -22452,7 +22510,7 @@ var git3 = (cwd, args) => {
22452
22510
  return run.status === 0 ? (run.stdout ?? "").trim() : null;
22453
22511
  };
22454
22512
  var recordedBaseKey = (branch) => `branch.${branch}.workitBase`;
22455
- var escapeRegExp = (text) => text.replace(/[.*+?^${}()|[\]\\]/gu, "\\$&");
22513
+ var escapeRegExp2 = (text) => text.replace(/[.*+?^${}()|[\]\\]/gu, "\\$&");
22456
22514
  var reflog = (cwd, ref) => (git3(cwd, ["log", "-g", "--date=unix", "--format=%H%x09%gd%x09%gs", ref, "--"]) ?? "").split(`
22457
22515
  `).map((line) => {
22458
22516
  const [sha = "", selector = "", ...subject] = line.split("\t");
@@ -22484,7 +22542,7 @@ function gitTrackProbe(cwd) {
22484
22542
  const created = own.at(-1);
22485
22543
  if (!created || created.subject !== "branch: Created from HEAD")
22486
22544
  return null;
22487
- const pattern = new RegExp(`^checkout: moving from (\\S+) to ${escapeRegExp(branch)}$`, "u");
22545
+ const pattern = new RegExp(`^checkout: moving from (\\S+) to ${escapeRegExp2(branch)}$`, "u");
22488
22546
  const entry = reflog(cwd, "HEAD").findLast((item) => item.time >= created.time && item.sha === created.sha && pattern.test(item.subject));
22489
22547
  return entry ? pattern.exec(entry.subject)?.[1] ?? null : null;
22490
22548
  },
@@ -24924,13 +24982,13 @@ var judgeInputSummary = (raw) => {
24924
24982
  };
24925
24983
 
24926
24984
  // packages/workit-core/src/autonomy.ts
24927
- import os3 from "node:os";
24985
+ import os4 from "node:os";
24928
24986
  import path15 from "node:path";
24929
24987
  var accountHome = () => {
24930
24988
  try {
24931
- return os3.userInfo().homedir;
24989
+ return os4.userInfo().homedir;
24932
24990
  } catch {
24933
- return os3.homedir();
24991
+ return os4.homedir();
24934
24992
  }
24935
24993
  };
24936
24994
  var grantsHome = { resolve: accountHome };
@@ -27769,63 +27827,6 @@ function run2(root, executable, args, env = {}) {
27769
27827
  };
27770
27828
  }
27771
27829
 
27772
- // packages/workit-core/src/core/logger.ts
27773
- import os4 from "node:os";
27774
- var REDACTED = "[REDACTED]";
27775
- var SECRET_VALUE = /\b(?:Bearer|Basic|Digest|Token)\s+\S+/gi;
27776
- 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;
27777
- var URL_QUERY = /(https?:\/\/[^?#\s]+)\?[^#\s]*/g;
27778
- var SENSITIVE_WORDS = new Set([
27779
- "token",
27780
- "secret",
27781
- "password",
27782
- "passwd",
27783
- "authorization",
27784
- "credential",
27785
- "credentials",
27786
- "cookie",
27787
- "api",
27788
- "apikey",
27789
- "apitoken",
27790
- "accesstoken",
27791
- "clientsecret",
27792
- "refreshtoken",
27793
- "key",
27794
- "bearer",
27795
- "prompt",
27796
- "message",
27797
- "messages",
27798
- "content",
27799
- "body",
27800
- "args",
27801
- "argument",
27802
- "result",
27803
- "results",
27804
- "output",
27805
- "issue",
27806
- "description",
27807
- "summary",
27808
- "payload",
27809
- "script",
27810
- "command",
27811
- "text",
27812
- "query"
27813
- ]);
27814
- var STACK_WORDS = new Set(["stack", "stacktrace", "trace"]);
27815
- var escapeRegExp2 = (value) => value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
27816
- var homePattern = new RegExp(`${escapeRegExp2(os4.homedir())}(?=[/\\\\]|$)|\\$HOME(?=[/\\\\]|$)`, "g");
27817
- var applyPatterns = (value) => {
27818
- let out = value;
27819
- out = out.replace(SECRET_VALUE, REDACTED);
27820
- out = out.replace(KEY_EQ_VALUE, "$1$2[REDACTED]");
27821
- out = out.replace(URL_QUERY, "$1?[REDACTED]");
27822
- out = out.replace(homePattern, "~");
27823
- if (process.platform === "win32")
27824
- out = out.replace(/\\/g, "/");
27825
- return out;
27826
- };
27827
- var redactSecrets = (value) => applyPatterns(value);
27828
-
27829
27830
  // packages/workit-mcp/src/server.ts
27830
27831
  class McpCapabilityUnavailableError extends Error {
27831
27832
  capability;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brainervirus/workit-mcp",
3
- "version": "8.11.0",
3
+ "version": "8.12.1",
4
4
  "private": false,
5
5
  "description": "Workit shared MCP transport for the eight task and policy operation families",
6
6
  "keywords": [
@@ -42,7 +42,7 @@
42
42
  "build": "bun scripts/build.ts"
43
43
  },
44
44
  "dependencies": {
45
- "@brainervirus/workit-core": "^8.11.0",
45
+ "@brainervirus/workit-core": "^8.12.1",
46
46
  "@modelcontextprotocol/sdk": "1.32.0",
47
47
  "zod": "4.6.5"
48
48
  },