atabey 0.0.14 → 0.0.16

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 (159) hide show
  1. package/LICENSE +672 -21
  2. package/PRIVACY.md +8 -14
  3. package/README.md +183 -25
  4. package/bin/cli.js +72 -5
  5. package/dist/framework-mcp/src/index.js +145 -13
  6. package/dist/framework-mcp/src/index.js.map +1 -1
  7. package/dist/framework-mcp/src/tools/control_plane/registry.d.ts +1 -1
  8. package/dist/framework-mcp/src/tools/control_plane/registry.js +52 -4
  9. package/dist/framework-mcp/src/tools/control_plane/registry.js.map +1 -1
  10. package/dist/framework-mcp/src/tools/definitions.js +1 -1
  11. package/dist/framework-mcp/src/tools/file_system/read_file.js +5 -0
  12. package/dist/framework-mcp/src/tools/file_system/read_file.js.map +1 -1
  13. package/dist/framework-mcp/src/tools/messaging/approve_operation.d.ts +10 -8
  14. package/dist/framework-mcp/src/tools/messaging/approve_operation.js +12 -12
  15. package/dist/framework-mcp/src/tools/messaging/approve_operation.js.map +1 -1
  16. package/dist/framework-mcp/src/tools/messaging/ask_human.d.ts +8 -8
  17. package/dist/framework-mcp/src/tools/messaging/ask_human.js +8 -8
  18. package/dist/framework-mcp/src/tools/messaging/send_message.js +19 -3
  19. package/dist/framework-mcp/src/tools/messaging/send_message.js.map +1 -1
  20. package/dist/framework-mcp/src/tools/observability/check_ports.d.ts +1 -0
  21. package/dist/framework-mcp/src/tools/observability/check_ports.js +21 -7
  22. package/dist/framework-mcp/src/tools/observability/check_ports.js.map +1 -1
  23. package/dist/framework-mcp/src/tools/schemas.d.ts +4 -4
  24. package/dist/framework-mcp/src/tools/search/grep_search.js +11 -4
  25. package/dist/framework-mcp/src/tools/search/grep_search.js.map +1 -1
  26. package/dist/framework-mcp/src/tools/search/list_dir.js +3 -0
  27. package/dist/framework-mcp/src/tools/search/list_dir.js.map +1 -1
  28. package/dist/framework-mcp/src/tools/shell/run_command.js +185 -93
  29. package/dist/framework-mcp/src/tools/shell/run_command.js.map +1 -1
  30. package/dist/framework-mcp/src/utils/auth.d.ts +26 -2
  31. package/dist/framework-mcp/src/utils/auth.js +74 -7
  32. package/dist/framework-mcp/src/utils/auth.js.map +1 -1
  33. package/dist/framework-mcp/src/utils/compliance.js +45 -13
  34. package/dist/framework-mcp/src/utils/compliance.js.map +1 -1
  35. package/dist/framework-mcp/src/utils/discipline.d.ts +1 -0
  36. package/dist/framework-mcp/src/utils/discipline.js +42 -3
  37. package/dist/framework-mcp/src/utils/discipline.js.map +1 -1
  38. package/dist/framework-mcp/src/utils/human-in-loop.d.ts +35 -2
  39. package/dist/framework-mcp/src/utils/human-in-loop.js +114 -10
  40. package/dist/framework-mcp/src/utils/human-in-loop.js.map +1 -1
  41. package/dist/framework-mcp/src/utils/loop-detector.js +3 -3
  42. package/dist/framework-mcp/src/utils/loop-detector.js.map +1 -1
  43. package/dist/framework-mcp/src/utils/permissions.d.ts +67 -3
  44. package/dist/framework-mcp/src/utils/permissions.js +179 -43
  45. package/dist/framework-mcp/src/utils/permissions.js.map +1 -1
  46. package/dist/framework-mcp/src/utils/prompt-injection.d.ts +20 -0
  47. package/dist/framework-mcp/src/utils/prompt-injection.js +64 -0
  48. package/dist/framework-mcp/src/utils/prompt-injection.js.map +1 -0
  49. package/dist/framework-mcp/src/utils/quality.js +4 -3
  50. package/dist/framework-mcp/src/utils/quality.js.map +1 -1
  51. package/dist/framework-mcp/src/utils/silent-router.d.ts +4 -2
  52. package/dist/framework-mcp/src/utils/silent-router.js +35 -9
  53. package/dist/framework-mcp/src/utils/silent-router.js.map +1 -1
  54. package/dist/framework-mcp/tests/tools/file_system/permissions.test.js +174 -71
  55. package/dist/framework-mcp/tests/tools/file_system/permissions.test.js.map +1 -1
  56. package/dist/framework-mcp/tests/tools/messaging/send_message.test.js +36 -30
  57. package/dist/framework-mcp/tests/tools/messaging/send_message.test.js.map +1 -1
  58. package/dist/framework-mcp/tests/tools/observability/check_ports.test.js +26 -12
  59. package/dist/framework-mcp/tests/tools/observability/check_ports.test.js.map +1 -1
  60. package/dist/framework-mcp/tests/tools/shell/run_command.test.js +38 -15
  61. package/dist/framework-mcp/tests/tools/shell/run_command.test.js.map +1 -1
  62. package/dist/framework-mcp/tests/utils/human-in-loop.test.js +152 -4
  63. package/dist/framework-mcp/tests/utils/human-in-loop.test.js.map +1 -1
  64. package/dist/framework-mcp/tests/utils/loop-detector.test.js +0 -2
  65. package/dist/framework-mcp/tests/utils/loop-detector.test.js.map +1 -1
  66. package/dist/framework-mcp/tests/utils/prompt-injection.test.d.ts +1 -0
  67. package/dist/framework-mcp/tests/utils/prompt-injection.test.js +43 -0
  68. package/dist/framework-mcp/tests/utils/prompt-injection.test.js.map +1 -0
  69. package/dist/src/cli/commands/dashboard.js +167 -2
  70. package/dist/src/cli/commands/dashboard.js.map +1 -1
  71. package/dist/src/cli/commands/init/scaffold-standards.js +1 -1
  72. package/dist/src/cli/commands/init/scaffold-standards.js.map +1 -1
  73. package/dist/src/cli/commands/init.js +14 -7
  74. package/dist/src/cli/commands/init.js.map +1 -1
  75. package/dist/src/cli/commands/log.js +8 -5
  76. package/dist/src/cli/commands/log.js.map +1 -1
  77. package/dist/src/cli/commands/mcp.js +3 -1
  78. package/dist/src/cli/commands/mcp.js.map +1 -1
  79. package/dist/src/cli/commands/orchestrate.d.ts +4 -4
  80. package/dist/src/cli/commands/orchestrate.js +14 -2
  81. package/dist/src/cli/commands/orchestrate.js.map +1 -1
  82. package/dist/src/cli/commands/script.js +8 -1
  83. package/dist/src/cli/commands/script.js.map +1 -1
  84. package/dist/src/cli/commands/status.js +21 -1
  85. package/dist/src/cli/commands/status.js.map +1 -1
  86. package/dist/src/cli/utils/memory.js +6 -5
  87. package/dist/src/cli/utils/memory.js.map +1 -1
  88. package/dist/src/cli/utils/schemas.d.ts +2 -2
  89. package/dist/src/contracts/tasks.d.ts +4 -4
  90. package/dist/src/modules/contracts/api.d.ts +6 -6
  91. package/dist/src/modules/engines/agent-executor.js +41 -20
  92. package/dist/src/modules/engines/agent-executor.js.map +1 -1
  93. package/dist/src/modules/engines/agent-loop.d.ts +5 -5
  94. package/dist/src/modules/engines/agent-loop.js +5 -5
  95. package/dist/src/modules/engines/evaluation-engine.d.ts +9 -2
  96. package/dist/src/modules/engines/evaluation-engine.js +77 -9
  97. package/dist/src/modules/engines/evaluation-engine.js.map +1 -1
  98. package/dist/src/modules/engines/quality-gate.js +4 -2
  99. package/dist/src/modules/engines/quality-gate.js.map +1 -1
  100. package/dist/src/modules/engines/risk-engine.d.ts +17 -1
  101. package/dist/src/modules/engines/risk-engine.js +98 -3
  102. package/dist/src/modules/engines/risk-engine.js.map +1 -1
  103. package/dist/src/modules/engines/routing-engine.d.ts +26 -1
  104. package/dist/src/modules/engines/routing-engine.js +97 -1
  105. package/dist/src/modules/engines/routing-engine.js.map +1 -1
  106. package/dist/src/modules/providers/shared.js +2 -3
  107. package/dist/src/modules/providers/shared.js.map +1 -1
  108. package/dist/src/shared/pii.js +1 -1
  109. package/dist/src/shared/pii.js.map +1 -1
  110. package/dist/src/shared/storage.d.ts +60 -0
  111. package/dist/src/shared/storage.js +77 -3
  112. package/dist/src/shared/storage.js.map +1 -1
  113. package/dist/tests/cli/commands/dashboard-coverage.test.js +3 -1
  114. package/dist/tests/cli/commands/dashboard-coverage.test.js.map +1 -1
  115. package/dist/tests/modules/engines/agent-executor.test.js +1 -1
  116. package/dist/tests/modules/engines/agent-executor.test.js.map +1 -1
  117. package/dist/tests/modules/engines/evaluation-engine.test.js +2 -2
  118. package/dist/tests/modules/engines/evaluation-engine.test.js.map +1 -1
  119. package/dist/tests/status-cost.test.js +2 -0
  120. package/dist/tests/status-cost.test.js.map +1 -1
  121. package/dist/tests/storage-operations.test.js +31 -4
  122. package/dist/tests/storage-operations.test.js.map +1 -1
  123. package/dist/vitest.config.js +6 -4
  124. package/dist/vitest.config.js.map +1 -1
  125. package/framework-mcp/README.md +18 -32
  126. package/framework-mcp/dist/dashboard/assets/index-B-Eu7_J9.js +1260 -0
  127. package/framework-mcp/dist/dashboard/index.html +1 -1
  128. package/framework-mcp/dist/framework-mcp/src/index.js +145 -13
  129. package/framework-mcp/dist/framework-mcp/src/tools/control_plane/registry.js +52 -4
  130. package/framework-mcp/dist/framework-mcp/src/tools/definitions.js +1 -1
  131. package/framework-mcp/dist/framework-mcp/src/tools/file_system/read_file.js +5 -0
  132. package/framework-mcp/dist/framework-mcp/src/tools/messaging/approve_operation.js +12 -12
  133. package/framework-mcp/dist/framework-mcp/src/tools/messaging/ask_human.js +8 -8
  134. package/framework-mcp/dist/framework-mcp/src/tools/messaging/send_message.js +19 -3
  135. package/framework-mcp/dist/framework-mcp/src/tools/observability/check_ports.js +21 -7
  136. package/framework-mcp/dist/framework-mcp/src/tools/search/grep_search.js +11 -4
  137. package/framework-mcp/dist/framework-mcp/src/tools/search/list_dir.js +3 -0
  138. package/framework-mcp/dist/framework-mcp/src/tools/shell/run_command.js +185 -93
  139. package/framework-mcp/dist/framework-mcp/src/utils/auth.js +74 -7
  140. package/framework-mcp/dist/framework-mcp/src/utils/compliance.js +45 -13
  141. package/framework-mcp/dist/framework-mcp/src/utils/discipline.js +42 -3
  142. package/framework-mcp/dist/framework-mcp/src/utils/human-in-loop.js +114 -10
  143. package/framework-mcp/dist/framework-mcp/src/utils/loop-detector.js +3 -3
  144. package/framework-mcp/dist/framework-mcp/src/utils/permissions.js +179 -43
  145. package/framework-mcp/dist/framework-mcp/src/utils/prompt-injection.js +63 -0
  146. package/framework-mcp/dist/framework-mcp/src/utils/quality.js +4 -3
  147. package/framework-mcp/dist/framework-mcp/src/utils/silent-router.js +35 -9
  148. package/framework-mcp/dist/src/cli/utils/memory.js +6 -5
  149. package/framework-mcp/dist/src/modules/engines/evaluation-engine.js +170 -0
  150. package/framework-mcp/dist/src/modules/engines/quality-gate.js +4 -2
  151. package/framework-mcp/dist/src/modules/engines/risk-engine.js +98 -3
  152. package/framework-mcp/dist/src/modules/engines/routing-engine.js +97 -1
  153. package/framework-mcp/dist/src/modules/providers/shared.js +2 -3
  154. package/framework-mcp/dist/src/shared/pii.js +1 -1
  155. package/framework-mcp/dist/src/shared/storage.js +77 -3
  156. package/framework-mcp/package.json +21 -18
  157. package/mcp.json +3 -2
  158. package/package.json +4 -5
  159. package/framework-mcp/dist/dashboard/assets/index-B2mYld0c.js +0 -1221
@@ -2,6 +2,8 @@ import ts from "typescript";
2
2
  import fs from "fs";
3
3
  import path from "path";
4
4
  import { resolveFrameworkDir } from "./security.js";
5
+ import { resolveActiveAgent } from "./permissions.js";
6
+ import { createApprovalRequest, getApprovalStatus } from "./human-in-loop.js";
5
7
  /**
6
8
  * Enterprise Compliance Guardrail
7
9
  * Checks content against corporate standards using AST analysis before allowing file mutations.
@@ -57,7 +59,7 @@ export function verifyCorporateCompliance(content, filePath) {
57
59
  filePath.includes("shared/fs.ts") ||
58
60
  filePath.includes("shared/lock.ts") ||
59
61
  filePath.includes("quality-gate.ts") ||
60
- filePath.includes("providers/shared.ts");
62
+ filePath.includes("shell/run_command.ts");
61
63
  if (!isExempt) {
62
64
  errors.push(`[ERROR] Corporate Compliance Breach: Direct 'child_process' usage is forbidden at line ${sourceFile.getLineAndCharacterOfPosition(node.getStart()).line + 1}. Use secure framework APIs.`);
63
65
  }
@@ -85,7 +87,10 @@ export function verifyCorporateCompliance(content, filePath) {
85
87
  // Lock files, core atomic fs wrapper, and mcp configs are exempt
86
88
  const args = node.arguments;
87
89
  const firstArgText = args.length > 0 ? args[0].getText(sourceFile).toLowerCase() : "";
88
- const isExemptFile = filePath.includes("shared/fs.ts") || filePath.includes("src/cli/commands/mcp.ts");
90
+ const isExemptFile = filePath.includes("shared/fs.ts") ||
91
+ filePath.includes("src/cli/commands/mcp.ts") ||
92
+ filePath.includes("utils/compliance.ts") ||
93
+ filePath.includes("tools/messaging/send_message.ts");
89
94
  if (!firstArgText.includes("lock") && !isExemptFile) {
90
95
  errors.push(`[ERROR] Corporate Compliance Breach: Raw 'fs.${prop.name.text}' mutation detected at line ${sourceFile.getLineAndCharacterOfPosition(node.getStart()).line + 1}. Use atomic utilities instead.`);
91
96
  }
@@ -204,7 +209,9 @@ export async function verifyRiskAndAwaitApproval(projectRoot, content, filePath)
204
209
  const statePath = path.join(absoluteFrameworkPath, "memory", "state.json");
205
210
  const messagesDir = path.join(absoluteFrameworkPath, "messages");
206
211
  const managerMsgPath = path.join(messagesDir, "manager.json");
207
- let activeAgent = null;
212
+ const activeAgent = resolveActiveAgent(absoluteFrameworkPath);
213
+ if (!activeAgent)
214
+ throw new Error(`Security Exception: High-risk operation blocked. ${assessment.reason}.`);
208
215
  let traceId = "UNKNOWN";
209
216
  if (fs.existsSync(statePath)) {
210
217
  try {
@@ -214,21 +221,25 @@ export async function verifyRiskAndAwaitApproval(projectRoot, content, filePath)
214
221
  }
215
222
  catch { /* ignore */ }
216
223
  }
224
+ // Check if already approved via human-in-loop
225
+ const existingStatus = getApprovalStatus(traceId);
226
+ if (existingStatus?.status === "APPROVED") {
227
+ return;
228
+ }
229
+ if (existingStatus?.status === "REJECTED" || existingStatus?.status === "EXPIRED") {
230
+ throw new Error(`Security Exception: High-risk operation was ${existingStatus.status}.`);
231
+ }
232
+ // Register in human-in-loop if not already present
233
+ if (!existingStatus) {
234
+ createApprovalRequest(traceId, "file_mutation", activeAgent, 80, assessment.reason || "High-risk operation detected", { filePath });
235
+ }
217
236
  let statusData = {};
218
237
  if (fs.existsSync(statusPath)) {
219
238
  try {
220
239
  statusData = JSON.parse(fs.readFileSync(statusPath, "utf8"));
221
- for (const [agentName, info] of Object.entries(statusData)) {
222
- if (info.state === "EXECUTING") {
223
- activeAgent = agentName.startsWith("@") ? agentName : `@${agentName}`;
224
- break;
225
- }
226
- }
227
240
  }
228
241
  catch { /* ignore */ }
229
242
  }
230
- if (!activeAgent)
231
- throw new Error(`Security Exception: High-risk operation blocked. ${assessment.reason}.`);
232
243
  const statusKey = activeAgent.replace("@", "");
233
244
  const originalTask = statusData[statusKey]?.task || "Executing task";
234
245
  statusData[statusKey] = {
@@ -253,12 +264,16 @@ export async function verifyRiskAndAwaitApproval(projectRoot, content, filePath)
253
264
  requiresApproval: true,
254
265
  action: `MUTATION:${filePath}`
255
266
  };
267
+ // Append to managerMsgPath for backward compatibility / legacy alerts
256
268
  try {
257
269
  fs.appendFileSync(managerMsgPath, JSON.stringify(alertMsg) + "\n");
258
270
  }
259
271
  catch (err) {
260
272
  statusData[statusKey] = { state: "EXECUTING", task: originalTask };
261
- fs.writeFileSync(statusPath, JSON.stringify(statusData, null, 2));
273
+ try {
274
+ fs.writeFileSync(statusPath, JSON.stringify(statusData, null, 2));
275
+ }
276
+ catch { /* ignore */ }
262
277
  throw new Error("Security Exception: Failed to queue approval request.", { cause: err });
263
278
  }
264
279
  const pollIntervalMs = 500;
@@ -266,6 +281,20 @@ export async function verifyRiskAndAwaitApproval(projectRoot, content, filePath)
266
281
  const start = Date.now();
267
282
  while (Date.now() - start < timeoutMs) {
268
283
  await new Promise(resolve => setTimeout(resolve, pollIntervalMs));
284
+ // Check if approved via human-in-loop (e.g. approve_operation tool call)
285
+ const checkStatus = getApprovalStatus(traceId);
286
+ if (checkStatus?.status === "APPROVED") {
287
+ statusData[statusKey] = { state: "EXECUTING", task: originalTask };
288
+ try {
289
+ fs.writeFileSync(statusPath, JSON.stringify(statusData, null, 2));
290
+ }
291
+ catch { /* ignore */ }
292
+ return;
293
+ }
294
+ else if (checkStatus?.status === "REJECTED" || checkStatus?.status === "EXPIRED") {
295
+ throw new Error(`Security Exception: High-risk operation was explicitly ${checkStatus.status}.`);
296
+ }
297
+ // Check legacy managerMsgPath approval
269
298
  if (fs.existsSync(managerMsgPath)) {
270
299
  try {
271
300
  const lines = fs.readFileSync(managerMsgPath, "utf8").trim().split("\n");
@@ -276,7 +305,10 @@ export async function verifyRiskAndAwaitApproval(projectRoot, content, filePath)
276
305
  if (parsed.traceId === traceId && parsed.category === "ALERT" && parsed.action === `MUTATION:${filePath}`) {
277
306
  if (parsed.status === "APPROVED") {
278
307
  statusData[statusKey] = { state: "EXECUTING", task: originalTask };
279
- fs.writeFileSync(statusPath, JSON.stringify(statusData, null, 2));
308
+ try {
309
+ fs.writeFileSync(statusPath, JSON.stringify(statusData, null, 2));
310
+ }
311
+ catch { /* ignore */ }
280
312
  return;
281
313
  }
282
314
  else if (parsed.status === "PROCESSED" || parsed.status === "DENIED") {
@@ -1 +1 @@
1
- {"version":3,"file":"compliance.js","sourceRoot":"","sources":["../../../../framework-mcp/src/utils/compliance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compliance.js","sourceRoot":"","sources":["../../../../framework-mcp/src/utils/compliance.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,7 @@ declare const CONFIG: {
32
32
  export declare function enforceDiscipline(agent: string, toolName: string, args: Record<string, unknown>): Promise<string | null>;
33
33
  /**
34
34
  * Validate tool response content before returning to AI.
35
+ * Blocks: oversized responses, binary data, and prompt injection attempts.
35
36
  * Returns error message if blocked, null if allowed.
36
37
  */
37
38
  export declare function validateResponse(toolName: string, result: {
@@ -156,8 +156,41 @@ export async function enforceDiscipline(agent, toolName, args) {
156
156
  });
157
157
  return null;
158
158
  }
159
+ // ─── Prompt Injection Patterns ─────────────────────────────────────────────
160
+ // Common adversarial patterns that attempt to override agent instructions.
161
+ // These are checked in tool responses to prevent exfiltrated injection payloads
162
+ // (e.g. from malicious file content, API responses, or external user input)
163
+ // from reaching the AI and overriding the system prompt.
164
+ const PROMPT_INJECTION_PATTERNS = [
165
+ { pattern: /ignore\s+(previous|prior|above|all)\s+instructions?/i, label: "ignore-instructions" },
166
+ { pattern: /disregard\s+(previous|prior|above|all)\s+instructions?/i, label: "disregard-instructions" },
167
+ { pattern: /forget\s+(everything|all|prior|previous)/i, label: "forget-prior" },
168
+ { pattern: /you\s+are\s+now\s+(a|an)\s+/i, label: "persona-override" },
169
+ { pattern: /\bsystem\s*:\s*(you|your|ignore|forget|act)/i, label: "system-prompt-inject" },
170
+ { pattern: /\bnew\s+instructions?\s*:/i, label: "new-instructions" },
171
+ { pattern: /\bact\s+as\s+(if\s+you\s+are|a|an)\s+/i, label: "act-as-override" },
172
+ { pattern: /\boverride\s+(safety|rules|guidelines|instructions)/i, label: "safety-override" },
173
+ { pattern: /\bdo\s+not\s+follow\s+(your|the|any)\s+(rules|instructions)/i, label: "rule-bypass" },
174
+ { pattern: /\bdeveloper\s+mode\s+(enabled|activated|on)/i, label: "developer-mode" },
175
+ { pattern: /\bjailbreak/i, label: "jailbreak" },
176
+ { pattern: /<\|.*?\|>/, label: "token-boundary-inject" },
177
+ { pattern: /\[INST\]|\[\/?SYS\]|<<SYS>>/, label: "llm-template-inject" },
178
+ ];
179
+ /**
180
+ * Scans a text block for known prompt injection patterns.
181
+ * Returns the matched pattern label if injection is detected, null otherwise.
182
+ */
183
+ function scanForPromptInjection(text) {
184
+ for (const { pattern, label } of PROMPT_INJECTION_PATTERNS) {
185
+ if (pattern.test(text)) {
186
+ return label;
187
+ }
188
+ }
189
+ return null;
190
+ }
159
191
  /**
160
192
  * Validate tool response content before returning to AI.
193
+ * Blocks: oversized responses, binary data, and prompt injection attempts.
161
194
  * Returns error message if blocked, null if allowed.
162
195
  */
163
196
  export function validateResponse(toolName, result) {
@@ -166,15 +199,21 @@ export function validateResponse(toolName, result) {
166
199
  for (const block of result.content) {
167
200
  if (block.type !== "text" || !block.text)
168
201
  continue;
169
- // Check response size
202
+ // 1. Check response size
170
203
  if (block.text.length > CONFIG.MAX_RESPONSE_SIZE) {
171
204
  return `[DISCIPLINE] Response too large (${(block.text.length / 1024).toFixed(1)}KB, max: ${(CONFIG.MAX_RESPONSE_SIZE / 1024).toFixed(1)}KB).`;
172
205
  }
173
- // Block binary/gibberish content in text responses
206
+ // 2. Block binary/gibberish content in text responses
174
207
  const nonPrintable = (block.text.match(/[^\x20-\x7E\n\r\t]/g) || []).length;
175
208
  if (nonPrintable > block.text.length * 0.3) {
176
209
  return `[DISCIPLINE] Response contains too much binary data (${nonPrintable} non-printable chars). Blocked.`;
177
210
  }
211
+ // 3. Prompt injection detection — scan for adversarial override patterns
212
+ // that may have been embedded in file content, API responses, or user input.
213
+ const injectionLabel = scanForPromptInjection(block.text);
214
+ if (injectionLabel) {
215
+ return `[DISCIPLINE] Prompt injection pattern detected in "${toolName}" response (pattern: ${injectionLabel}). Response blocked to protect agent integrity.`;
216
+ }
178
217
  }
179
218
  return null;
180
219
  }
@@ -202,7 +241,7 @@ export function getDisciplineStats(agent) {
202
241
  */
203
242
  export function getAllDisciplineStats() {
204
243
  const stats = {};
205
- for (const [agent, _discipline] of agentDiscipline) {
244
+ for (const [agent] of agentDiscipline) {
206
245
  stats[agent] = getDisciplineStats(agent);
207
246
  }
208
247
  return stats;
@@ -1 +1 @@
1
- {"version":3,"file":"discipline.js","sourceRoot":"","sources":["../../../../framework-mcp/src/utils/discipline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discipline.js","sourceRoot":"","sources":["../../../../framework-mcp/src/utils/discipline.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,28 @@ declare const CONFIG: {
28
28
  AUTO_APPROVE_LOW_RISK: boolean;
29
29
  /** Approval timeout in seconds */
30
30
  APPROVAL_TIMEOUT_SECONDS: number;
31
+ /**
32
+ * Minimum risk score requiring Lead/Admin approval (legacy compat).
33
+ * Superseded by ROLE_RISK_MAP below — kept for backward compatibility with env var.
34
+ */
35
+ RBAC_HIGH_RISK_THRESHOLD: number;
31
36
  };
37
+ export type UserRole = "junior" | "developer" | "lead" | "admin";
38
+ /**
39
+ * Maximum risk score each role is allowed to approve.
40
+ * A role can approve any operation with riskScore <= its max.
41
+ * Override via MCP_RBAC_ROLE_* env vars.
42
+ *
43
+ * junior → cannot approve anything (max = -1)
44
+ * developer → can approve MEDIUM risk (0–59)
45
+ * lead → can approve HIGH risk (0–79)
46
+ * admin → can approve any risk (0–100)
47
+ */
48
+ export declare const ROLE_RISK_MAP: Record<UserRole, number>;
49
+ /**
50
+ * Returns the minimum role required to approve an operation at the given risk score.
51
+ */
52
+ export declare function getMinimumRoleForScore(riskScore: number): UserRole;
32
53
  export type RiskLevel = "LOW" | "MEDIUM" | "HIGH";
33
54
  export interface ApprovalRequest {
34
55
  traceId: string;
@@ -41,6 +62,7 @@ export interface ApprovalRequest {
41
62
  createdAt: number;
42
63
  expiresAt: number;
43
64
  status: "PENDING" | "APPROVED" | "REJECTED" | "EXPIRED";
65
+ passcode?: string;
44
66
  }
45
67
  /**
46
68
  * Determine risk level from risk score.
@@ -72,15 +94,26 @@ export declare function checkRiskGate(traceId: string, toolName: string, agent:
72
94
  export declare function getApprovalStatus(traceId: string): ApprovalRequest | null;
73
95
  /**
74
96
  * Approve a pending operation.
97
+ *
98
+ * RBAC enforcement (AI Governance layer):
99
+ * - Role is read from process.env.MCP_USER_ROLE ONLY.
100
+ * - The userRole parameter is accepted for API compatibility but completely IGNORED.
101
+ * This prevents AI agents (Claude Code, Gemini, Cursor) from escalating privilege
102
+ * by passing {userRole: "admin"} in the tool call arguments.
103
+ * - The passcode printed to stderr is the second factor — AI cannot read stderr.
75
104
  */
76
- export declare function approveOperation(traceId: string): {
105
+ export declare function approveOperation(traceId: string, passcode?: string, _userRoleIgnored?: string): {
77
106
  success: boolean;
78
107
  message: string;
79
108
  };
80
109
  /**
81
110
  * Reject a pending operation.
111
+ *
112
+ * RBAC: junior-role users cannot reject HIGH/CRITICAL operations.
113
+ * This prevents rogue or misconfigured recon agents from killing
114
+ * manager-delegated critical operations.
82
115
  */
83
- export declare function rejectOperation(traceId: string): {
116
+ export declare function rejectOperation(traceId: string, _userRoleIgnored?: string): {
84
117
  success: boolean;
85
118
  message: string;
86
119
  };
@@ -31,7 +31,49 @@ const CONFIG = {
31
31
  AUTO_APPROVE_LOW_RISK: process.env.MCP_AUTO_APPROVE_LOW_RISK !== "false",
32
32
  /** Approval timeout in seconds */
33
33
  APPROVAL_TIMEOUT_SECONDS: parseInt(process.env.MCP_APPROVAL_TIMEOUT || "300", 10), // 5 min
34
+ /**
35
+ * Minimum risk score requiring Lead/Admin approval (legacy compat).
36
+ * Superseded by ROLE_RISK_MAP below — kept for backward compatibility with env var.
37
+ */
38
+ RBAC_HIGH_RISK_THRESHOLD: parseInt(process.env.MCP_RBAC_HIGH_RISK_THRESHOLD || "80", 10),
34
39
  };
40
+ /**
41
+ * Maximum risk score each role is allowed to approve.
42
+ * A role can approve any operation with riskScore <= its max.
43
+ * Override via MCP_RBAC_ROLE_* env vars.
44
+ *
45
+ * junior → cannot approve anything (max = -1)
46
+ * developer → can approve MEDIUM risk (0–59)
47
+ * lead → can approve HIGH risk (0–79)
48
+ * admin → can approve any risk (0–100)
49
+ */
50
+ export const ROLE_RISK_MAP = {
51
+ admin: parseInt(process.env.MCP_RBAC_ROLE_ADMIN || "100", 10),
52
+ lead: parseInt(process.env.MCP_RBAC_ROLE_LEAD || "79", 10),
53
+ developer: parseInt(process.env.MCP_RBAC_ROLE_DEVELOPER || "59", 10),
54
+ junior: parseInt(process.env.MCP_RBAC_ROLE_JUNIOR || "-1", 10), // cannot approve
55
+ };
56
+ /**
57
+ * Returns the minimum role required to approve an operation at the given risk score.
58
+ */
59
+ export function getMinimumRoleForScore(riskScore) {
60
+ if (riskScore <= ROLE_RISK_MAP.developer)
61
+ return "developer";
62
+ if (riskScore <= ROLE_RISK_MAP.lead)
63
+ return "lead";
64
+ return "admin";
65
+ }
66
+ /**
67
+ * Reads the active user role from environment only.
68
+ * AI-supplied userRole arguments are NOT trusted.
69
+ */
70
+ function getActiveUserRole() {
71
+ const envRole = process.env.MCP_USER_ROLE?.trim().toLowerCase();
72
+ if (envRole === "admin" || envRole === "lead" || envRole === "developer" || envRole === "junior") {
73
+ return envRole;
74
+ }
75
+ return "junior"; // safest default
76
+ }
35
77
  // ─── Active Approval Requests ─────────────────────────────────────
36
78
  const activeApprovals = new Map();
37
79
  /**
@@ -44,12 +86,25 @@ export function getRiskLevel(score) {
44
86
  return "MEDIUM";
45
87
  return "LOW";
46
88
  }
89
+ /**
90
+ * Create an approval request for a high-risk operation.
91
+ * Returns the approval request and a message for the AI/developer.
92
+ */
93
+ function generatePasscode() {
94
+ const chars = "ABCDEFGHJKLMNPQRSTUVWXYZ23456789";
95
+ let code = "";
96
+ for (let i = 0; i < 5; i++) {
97
+ code += chars.charAt(Math.floor(Math.random() * chars.length));
98
+ }
99
+ return code;
100
+ }
47
101
  /**
48
102
  * Create an approval request for a high-risk operation.
49
103
  * Returns the approval request and a message for the AI/developer.
50
104
  */
51
105
  export function createApprovalRequest(traceId, toolName, agent, riskScore, reason, args) {
52
106
  const now = Date.now();
107
+ const passcode = generatePasscode();
53
108
  const request = {
54
109
  traceId,
55
110
  toolName,
@@ -61,8 +116,11 @@ export function createApprovalRequest(traceId, toolName, agent, riskScore, reaso
61
116
  createdAt: now,
62
117
  expiresAt: now + CONFIG.APPROVAL_TIMEOUT_SECONDS * 1000,
63
118
  status: "PENDING",
119
+ passcode,
64
120
  };
65
121
  activeApprovals.set(traceId, request);
122
+ // Print passcode to stderr so the human developer sees it but AI cannot access it
123
+ process.stderr.write(`\n[ATABEY SECURITY GATES] APPROVAL PASSCODE FOR TRACE ${traceId}: ${passcode}\n\n`);
66
124
  // Create a Hermes approval message
67
125
  AtabeyStorage.saveMessage({
68
126
  from: asAgentID(agent),
@@ -92,14 +150,14 @@ export function createApprovalRequest(traceId, toolName, agent, riskScore, reaso
92
150
  ` Trace ID: ${traceId}`,
93
151
  "",
94
152
  "─── IN-CHAT APPROVAL ────────────────────────────────────────",
95
- "Ask your AI assistant to call the approve_operation tool:",
153
+ "This is a high-risk operation. To prevent autonomous bypass,",
154
+ "Atabey has printed a 5-character PASSCODE to your terminal's stderr.",
96
155
  "",
97
- ` To approve: approve_operation { "action": "approve", "traceId": "${traceId}" }`,
98
- ` To reject: approve_operation { "action": "reject", "traceId": "${traceId}" }`,
99
- " To list: approve_operation { \"action\": \"list\" }",
156
+ "Ask the user for the passcode, then call the approve_operation tool:",
157
+ ` approve_operation { "action": "approve", "traceId": "${traceId}", "passcode": "<passcode_from_user>" }`,
100
158
  "─────────────────────────────────────────────────────────────",
101
159
  "",
102
- `Alternative: atabey hitl answer "${traceId}:approve" in your terminal.`,
160
+ `Alternative: Run 'atabey approve ${traceId}' in your local terminal.`,
103
161
  ].join("\n");
104
162
  return { request, message };
105
163
  }
@@ -147,8 +205,16 @@ export function getApprovalStatus(traceId) {
147
205
  }
148
206
  /**
149
207
  * Approve a pending operation.
208
+ *
209
+ * RBAC enforcement (AI Governance layer):
210
+ * - Role is read from process.env.MCP_USER_ROLE ONLY.
211
+ * - The userRole parameter is accepted for API compatibility but completely IGNORED.
212
+ * This prevents AI agents (Claude Code, Gemini, Cursor) from escalating privilege
213
+ * by passing {userRole: "admin"} in the tool call arguments.
214
+ * - The passcode printed to stderr is the second factor — AI cannot read stderr.
150
215
  */
151
- export function approveOperation(traceId) {
216
+ export function approveOperation(traceId, passcode, _userRoleIgnored // kept for API compat — value is intentionally ignored
217
+ ) {
152
218
  const request = activeApprovals.get(traceId);
153
219
  if (!request) {
154
220
  return { success: false, message: `No pending approval found for trace: ${traceId}` };
@@ -156,6 +222,29 @@ export function approveOperation(traceId) {
156
222
  if (request.status !== "PENDING") {
157
223
  return { success: false, message: `Approval for ${traceId} is already ${request.status}` };
158
224
  }
225
+ // ── RBAC Check ──────────────────────────────────────────────────────────
226
+ // Role is read exclusively from the environment — not from the tool argument.
227
+ // This ensures Claude Code, Gemini CLI, Cursor, or any MCP client cannot
228
+ // escalate privilege by injecting a role in the tool args.
229
+ const role = getActiveUserRole();
230
+ const maxApprovable = ROLE_RISK_MAP[role];
231
+ if (request.riskScore <= maxApprovable) {
232
+ // Role is allowed — proceed to passcode check
233
+ }
234
+ else {
235
+ const requiredRole = getMinimumRoleForScore(request.riskScore);
236
+ return {
237
+ success: false,
238
+ message: `[RBAC] Approval denied: Risk score ${request.riskScore}/100 requires at least '${requiredRole}' role. ` +
239
+ `Current role: '${role}' (max approvable: ${maxApprovable}). ` +
240
+ "Set MCP_USER_ROLE env var to a role with sufficient authority."
241
+ };
242
+ }
243
+ // ── End RBAC Check ──────────────────────────────────────────────────────
244
+ // Passcode second-factor (printed to stderr — AI cannot intercept)
245
+ if (request.passcode && (!passcode || passcode.trim().toUpperCase() !== request.passcode)) {
246
+ return { success: false, message: "Invalid or missing approval passcode. Verify the passcode printed to stderr." };
247
+ }
159
248
  request.status = "APPROVED";
160
249
  // Update Hermes message status
161
250
  const messages = AtabeyStorage.getPendingMessages();
@@ -165,12 +254,17 @@ export function approveOperation(traceId) {
165
254
  AtabeyStorage.updateMessageStatus(msg.id, "APPROVED");
166
255
  }
167
256
  }
168
- return { success: true, message: `Operation ${traceId} approved. You may retry.` };
257
+ return { success: true, message: `Operation ${traceId} approved by '${role}'. You may retry.` };
169
258
  }
170
259
  /**
171
260
  * Reject a pending operation.
261
+ *
262
+ * RBAC: junior-role users cannot reject HIGH/CRITICAL operations.
263
+ * This prevents rogue or misconfigured recon agents from killing
264
+ * manager-delegated critical operations.
172
265
  */
173
- export function rejectOperation(traceId) {
266
+ export function rejectOperation(traceId, _userRoleIgnored // kept for API compat — value intentionally ignored
267
+ ) {
174
268
  const request = activeApprovals.get(traceId);
175
269
  if (!request) {
176
270
  return { success: false, message: `No pending approval found for trace: ${traceId}` };
@@ -178,6 +272,16 @@ export function rejectOperation(traceId) {
178
272
  if (request.status !== "PENDING") {
179
273
  return { success: false, message: `Approval for ${traceId} is already ${request.status}` };
180
274
  }
275
+ // RBAC: reject also requires minimum role for HIGH+ operations
276
+ const role = getActiveUserRole();
277
+ const canReject = !(role === "junior" && request.riskScore >= CONFIG.HIGH_RISK_THRESHOLD);
278
+ if (!canReject) {
279
+ return {
280
+ success: false,
281
+ message: `[RBAC] Reject denied: Risk score ${request.riskScore}/100 operations cannot be rejected by '${role}'. ` +
282
+ "Minimum role required to reject is 'developer'. Set MCP_USER_ROLE env var."
283
+ };
284
+ }
181
285
  request.status = "REJECTED";
182
286
  // Update Hermes message status
183
287
  const messages = AtabeyStorage.getPendingMessages();
@@ -187,7 +291,7 @@ export function rejectOperation(traceId) {
187
291
  AtabeyStorage.updateMessageStatus(msg.id, "REJECTED");
188
292
  }
189
293
  }
190
- return { success: true, message: `Operation ${traceId} rejected.` };
294
+ return { success: true, message: `Operation ${traceId} rejected by '${role}'.` };
191
295
  }
192
296
  /**
193
297
  * Get all pending approval requests.
@@ -196,7 +300,7 @@ export function getPendingApprovals() {
196
300
  const now = Date.now();
197
301
  const pending = [];
198
302
  // Clean expired
199
- for (const [traceId, request] of activeApprovals) {
303
+ for (const [, request] of activeApprovals) {
200
304
  if (request.status === "PENDING" && now > request.expiresAt) {
201
305
  request.status = "EXPIRED";
202
306
  }
@@ -1 +1 @@
1
- {"version":3,"file":"human-in-loop.js","sourceRoot":"","sources":["../../../../framework-mcp/src/utils/human-in-loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"human-in-loop.js","sourceRoot":"","sources":["../../../../framework-mcp/src/utils/human-in-loop.ts"],"names":[],"mappings":"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"}