fdeops 5.1.23 → 5.1.24

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/bin/fde.js CHANGED
@@ -469,12 +469,12 @@ const SECRET_PATTERNS = [
469
469
  { name: 'AWS access key id', re: /\bAKIA[0-9A-Z]{16}\b/ },
470
470
  { name: 'GitHub token', re: /\bghp_[A-Za-z0-9]{20,}\b/ },
471
471
  { name: 'GitHub fine-grained token', re: /\bgithub_pat_[A-Za-z0-9_]{20,}\b/ },
472
- { name: 'OpenAI-style key', re: /\bsk-[A-Za-z0-9]{20,}\b/ },
472
+ { name: 'AI provider key', re: /\bsk-[A-Za-z0-9_-]{20,}\b/ },
473
473
  { name: 'Slack token', re: /\bxox[baprs]-[A-Za-z0-9-]{10,}\b/ },
474
474
  { name: 'PEM private key', re: /-----BEGIN (?:RSA |EC |OPENSSH )?PRIVATE KEY-----/ },
475
475
  { name: 'Bearer token', re: /\bBearer\s+[A-Za-z0-9._\-]{20,}\b/ },
476
476
  { name: 'database URL', re: /\b[a-z][a-z0-9+.-]*:\/\/[^/\s:]+:[^/\s@]+@/i },
477
- { name: 'api key assignment', re: /\b(?:api[_-]?key|secret|password)\s*=\s*\S{8,}/i },
477
+ { name: 'secret assignment', re: /\b(?:api[_-]?key|secret|password)[ \t]*=[ \t]*(?:"(?:\\.|[^"\\\r\n])+"?|'(?:\\.|[^'\\\r\n])+'?|[^\s"']+)/i },
478
478
  ]
479
479
 
480
480
  function findSecretHit(text) {
@@ -488,7 +488,8 @@ function refuseSecret(kind, hit) {
488
488
  console.error(
489
489
  `refused: ${kind} looks like a ${hit}.\n` +
490
490
  `Do not log credentials into engagement memory. Redact first, or pass --force if this is intentional.\n` +
491
- `If you already wrote one: fde log --undo (last write) or fde redact <term> --apply (buried)`
491
+ `If you already wrote one: fde log --undo (last write) or fde redact <term> --apply (buried).\n` +
492
+ `Neither erases Git history; rotate any exposed credential.`
492
493
  )
493
494
  }
494
495
 
@@ -2402,6 +2403,7 @@ function runDebrief(args, eng) {
2402
2403
  .map(t => `${counts[t]} ${counts[t] === 1 ? (t === 'next' ? 'next action' : t) : plural[t]}`)
2403
2404
  if (ctxLines.length) parts.push(`${ctxLines.length} context line${ctxLines.length === 1 ? '' : 's'}`)
2404
2405
  if (privateBlocks.length) parts.push(`${privateBlocks.length} sealed private note${privateBlocks.length === 1 ? '' : 's'}`)
2406
+ if (privateBlocks.length) console.log('Private notes are hidden from CLI views, not encrypted; plaintext remains in local files and, after saving, Git history.')
2405
2407
  const verb = dry ? 'debrief would route' : 'debrief routed'
2406
2408
  console.log(parts.length ? `${verb} → ${parts.join(', ')}` : 'debrief empty - nothing routed')
2407
2409
  }
@@ -12,7 +12,7 @@ const PATTERNS = [
12
12
  ['credential', /\b(?:AKIA[0-9A-Z]{16}|ghp_[A-Za-z0-9]{20,}|github_pat_[A-Za-z0-9_]{20,}|sk-[A-Za-z0-9_-]{20,}|xox[baprs]-[A-Za-z0-9-]{10,})\b/g],
13
13
  ['credential', /\b[a-z][a-z0-9+.-]*:\/\/[^/\s:]+:[^/\s@]+@[^\s<>"']+/gi],
14
14
  ['credential', /\bBearer\s+[A-Za-z0-9._-]{20,}/gi],
15
- ['credential', /\b(?:api[_-]?key|secret|password)\s*=\s*[^\s"']{8,}/gi],
15
+ ['credential', /\b(?:api[_-]?key|secret|password)[ \t]*=[ \t]*(?:"(?:\\.|[^"\\\r\n])+"?|'(?:\\.|[^'\\\r\n])+'?|[^\s"']+)/gi],
16
16
  ['email', /(?<![A-Za-z0-9._%+-])[A-Za-z0-9._%+-]{1,64}@[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?(?:\.[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?){1,10}/g],
17
17
  ['identifier', /\b\d{3}-\d{2}-\d{4}\b/g],
18
18
  // Deliberately conservative: international + notation or explicit US shape.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fdeops-ingest-mcp",
3
- "version": "5.1.23",
3
+ "version": "5.1.24",
4
4
  "private": true,
5
5
  "description": "Thin stdio MCP sink for FDEOps ingest (stage \u2192 propose \u2192 apply). Zero runtime dependencies.",
6
6
  "bin": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fdeops",
3
- "version": "5.1.23",
3
+ "version": "5.1.24",
4
4
  "description": "Skills for forward deployed engineers across strategy, architecture and engineering. Use individual tasks or @fde coordination; local customer memory supports continuity.",
5
5
  "bin": {
6
6
  "fdeops": "bin/install.js",
package/plugin.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
3
3
  "name": "fdeops",
4
- "version": "5.1.23",
4
+ "version": "5.1.24",
5
5
  "description": "Skills for forward deployed engineers across strategy, architecture and engineering. Use individual tasks or @fde coordination; local customer memory supports continuity.",
6
6
  "author": {
7
7
  "name": "Subash Natarajan",