@tiangong-ai/cli 0.0.46 → 0.0.48

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.
@@ -28,9 +28,9 @@ export function sanitizeResearchText(value, secrets = []) {
28
28
  }
29
29
  sanitized = sanitized
30
30
  .replace(/(["']?(?:access[_-]?token|api[_-]?key|apikey|auth|authorization|cookie|credential|password|secret|session(?:[_-]?id)?|token)["']?\s*:\s*["'])([^"']*)(["'])/gi, "$1[REDACTED]$3")
31
- .replace(/\b(Bearer|Basic)\s+[A-Za-z0-9._~+\/-]+=*/gi, "$1 [REDACTED]")
31
+ .replace(/\b((?:proxy-)?authorization)\s*:\s*((?:Bearer|Basic)\s+)?[^\s,;}"'<>\\]+/gi, "$1: $2[REDACTED]")
32
32
  .replace(/\b(access_token|api[_-]?key|apikey|auth|authorization|cookie|password|secret|session|token)\s*=\s*[^\s,;}&"'<>\\]+/gi, "$1=[REDACTED]")
33
- .replace(/\b(authorization|cookie|set-cookie|x-api-key|api-key)\s*:\s*[^\s,;}"'<>\\]+/gi, "$1: [REDACTED]");
33
+ .replace(/\b(cookie|set-cookie|x-api-key|api-key)\s*:\s*[^\s,;}"'<>\\]+/gi, "$1: [REDACTED]");
34
34
  return sanitizeUrls(sanitized);
35
35
  }
36
36
  export function configuredResearchSecrets(source) {
@@ -1 +1 @@
1
- {"version":3,"file":"sanitization.js","sourceRoot":"","sources":["../../../src/research/workspace/sanitization.ts"],"names":[],"mappings":"AAAA,MAAM,aAAa,GACjB,4JAA4J,CAAC;AAC/J,MAAM,mBAAmB,GACvB,wPAAwP,CAAC;AAC3P,MAAM,sBAAsB,GAC1B,2JAA2J,CAAC;AAE9J,MAAM,UAAU,qBAAqB,CAAC,KAAc,EAAE,UAA6B,EAAE;IACnF,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC3E,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3F,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,SAAS,GAA4B,EAAE,CAAC;IAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;QAC3E,SAAS,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;YACtC,CAAC,CAAC,IAAI,KAAK,IAAI;gBACb,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,YAAY;YAChB,CAAC,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,KAA8B,EAC9B,UAA6B,EAAE;IAE/B,OAAO,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAA4B,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAa,EAAE,UAA6B,EAAE;IACjF,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QACxF,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACzD,CAAC;IACD,SAAS,GAAG,SAAS;SAClB,OAAO,CACN,+JAA+J,EAC/J,gBAAgB,CACjB;SACA,OAAO,CAAC,4CAA4C,EAAE,eAAe,CAAC;SACtE,OAAO,CACN,sHAAsH,EACtH,eAAe,CAChB;SACA,OAAO,CACN,+EAA+E,EAC/E,gBAAgB,CACjB,CAAC;IACJ,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAAyB;IACjE,OAAO;QACL,GAAG,IAAI,GAAG,CACR,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;aACnB,MAAM,CACL,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAChB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,CAC7E;aACA,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAe,CAAC,CACvC;KACF,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAAY;IACrD,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC,SAAS,EAAE,EAAE;QAC7D,MAAM,OAAO,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9D,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACrF,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;YAC5B,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACjC,GAAG,CAAC,QAAQ,GAAG,UAAU,CAAC;gBAC1B,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC;gBAClB,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;YACD,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;gBAC/C,IAAI,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;oBAClC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;oBACxC,OAAO,GAAG,IAAI,CAAC;gBACjB,CAAC;YACH,CAAC;YACD,IAAI,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1C,GAAG,CAAC,IAAI,GAAG,UAAU,CAAC;gBACtB,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;YACD,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/E,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,SAAiB;IAC1C,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACzD,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAE,CAAC;QACpC,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,gBAAgB,IAAI,CAAC,CAAC;YACtB,SAAS;QACX,CAAC;QACD,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;gBACzB,gBAAgB,IAAI,CAAC,CAAC;gBACtB,SAAS;YACX,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/E,CAAC;QACD,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACpC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/E,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AAC3C,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,KAAa;IAC/C,OAAO,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"sanitization.js","sourceRoot":"","sources":["../../../src/research/workspace/sanitization.ts"],"names":[],"mappings":"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"}
@@ -1702,47 +1702,48 @@ export async function checkResearchSetupUpdates(workspace, environment = process
1702
1702
  export async function clearStaleSetupLock(workspace) {
1703
1703
  const root = requireAbsoluteWorkspace(resolve(workspace));
1704
1704
  const lockPath = workspacePaths(root).setupLock;
1705
- const info = await lstat(lockPath).catch(() => undefined);
1706
- if (!info)
1707
- return;
1708
- if (!info.isFile() || info.isSymbolicLink()) {
1709
- throw setupError({
1710
- code: "RESEARCH_SETUP_LOCK_INVALID",
1711
- step: "retry",
1712
- reason: "Setup lock is not a regular file.",
1713
- minimumAction: "Inspect the lock path manually; it will not be removed automatically.",
1714
- retryCommand: `tiangong-ai research setup status --workspace ${root} --json`,
1715
- exitCode: 3,
1716
- });
1717
- }
1718
- let payload;
1705
+ let release;
1719
1706
  try {
1720
- payload = JSON.parse(await readFile(lockPath, "utf8"));
1721
- }
1722
- catch {
1723
- payload = null;
1707
+ release = await acquireFileLock(lockPath, {
1708
+ operation: "research.setup.lock-recovery",
1709
+ acquiredAt: new Date().toISOString(),
1710
+ });
1724
1711
  }
1725
- if (isObject(payload) && payload.hostname === hostname() && typeof payload.pid === "number") {
1726
- try {
1727
- process.kill(payload.pid, 0);
1728
- throw setupError({
1729
- code: "RESEARCH_SETUP_LOCK_ACTIVE",
1730
- step: "retry",
1731
- reason: `Setup lock belongs to live process ${payload.pid}.`,
1732
- minimumAction: "Wait for the active setup process to finish; do not clear its lock.",
1733
- retryCommand: `tiangong-ai research setup status --workspace ${root} --json`,
1712
+ catch (error) {
1713
+ if (error instanceof CliError && error.code === "RESEARCH_WORKSPACE_LOCKED") {
1714
+ const details = isObject(error.details) ? error.details : {};
1715
+ if (details.ownerState === "alive") {
1716
+ throw new CliError("Setup is already running in another live process.", {
1717
+ code: "RESEARCH_SETUP_LOCK_ACTIVE",
1718
+ exitCode: 3,
1719
+ details: {
1720
+ ownerState: "alive",
1721
+ operation: typeof details.operation === "string" ? details.operation : null,
1722
+ acquiredAt: typeof details.acquiredAt === "string" ? details.acquiredAt : null,
1723
+ minimumAction: "Wait for the active setup operation to finish, then retry; do not delete lock state manually.",
1724
+ },
1725
+ });
1726
+ }
1727
+ throw new CliError("Setup lock ownership cannot yet be verified safely.", {
1728
+ code: "RESEARCH_SETUP_LOCK_UNVERIFIABLE",
1734
1729
  exitCode: 3,
1730
+ details: {
1731
+ ownerState: "unknown",
1732
+ retryAfterSeconds: typeof details.retryAfterSeconds === "number" ? details.retryAfterSeconds : null,
1733
+ minimumAction: "Wait for the reported lease interval and retry; do not delete lock state manually.",
1734
+ },
1735
1735
  });
1736
1736
  }
1737
- catch (error) {
1738
- if (error instanceof CliError)
1739
- throw error;
1740
- const code = error.code;
1741
- if (code !== "ESRCH")
1742
- throw error;
1743
- }
1737
+ throw new CliError("Setup lock state is unreadable or unsafe.", {
1738
+ code: "RESEARCH_SETUP_LOCK_INVALID",
1739
+ exitCode: 3,
1740
+ details: {
1741
+ ownerState: "unknown",
1742
+ minimumAction: "Inspect workspace filesystem permissions and lock-state integrity; do not delete lock state manually.",
1743
+ },
1744
+ });
1744
1745
  }
1745
- await rm(lockPath);
1746
+ await release();
1746
1747
  }
1747
1748
  function parseResearchSetupPlan(value) {
1748
1749
  if (!isObject(value) ||