@switchboard-mcp/core 0.1.1 → 0.1.3

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 (59) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1 -1
  3. package/dist/audit/audit-log.d.ts +8 -1
  4. package/dist/audit/audit-log.d.ts.map +1 -1
  5. package/dist/audit/audit-log.js +13 -4
  6. package/dist/audit/audit-log.js.map +1 -1
  7. package/dist/audit/repo-audit.d.ts +37 -0
  8. package/dist/audit/repo-audit.d.ts.map +1 -0
  9. package/dist/audit/repo-audit.js +261 -0
  10. package/dist/audit/repo-audit.js.map +1 -0
  11. package/dist/authority/authority-map.d.ts +112 -0
  12. package/dist/authority/authority-map.d.ts.map +1 -0
  13. package/dist/authority/authority-map.js +296 -0
  14. package/dist/authority/authority-map.js.map +1 -0
  15. package/dist/authority/authority-status.d.ts +24 -0
  16. package/dist/authority/authority-status.d.ts.map +1 -0
  17. package/dist/authority/authority-status.js +76 -0
  18. package/dist/authority/authority-status.js.map +1 -0
  19. package/dist/config/load-config.d.ts.map +1 -1
  20. package/dist/config/load-config.js +2 -1
  21. package/dist/config/load-config.js.map +1 -1
  22. package/dist/import/import-plan.d.ts +78 -3
  23. package/dist/import/import-plan.d.ts.map +1 -1
  24. package/dist/import/import-plan.js +609 -20
  25. package/dist/import/import-plan.js.map +1 -1
  26. package/dist/index.d.ts +5 -0
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +5 -0
  29. package/dist/index.js.map +1 -1
  30. package/dist/mandates/mandates.d.ts +91 -5
  31. package/dist/mandates/mandates.d.ts.map +1 -1
  32. package/dist/mandates/mandates.js +78 -3
  33. package/dist/mandates/mandates.js.map +1 -1
  34. package/dist/manifest/route-diff.d.ts +44 -0
  35. package/dist/manifest/route-diff.d.ts.map +1 -0
  36. package/dist/manifest/route-diff.js +95 -0
  37. package/dist/manifest/route-diff.js.map +1 -0
  38. package/dist/next-actions/next-actions.d.ts +12 -0
  39. package/dist/next-actions/next-actions.d.ts.map +1 -0
  40. package/dist/next-actions/next-actions.js +40 -0
  41. package/dist/next-actions/next-actions.js.map +1 -0
  42. package/dist/providers/provider-add.js +1 -1
  43. package/dist/providers/provider-add.js.map +1 -1
  44. package/dist/providers/provider-templates.d.ts.map +1 -1
  45. package/dist/providers/provider-templates.js +125 -3
  46. package/dist/providers/provider-templates.js.map +1 -1
  47. package/dist/scan/scan.d.ts +7 -0
  48. package/dist/scan/scan.d.ts.map +1 -1
  49. package/dist/scan/scan.js +106 -2
  50. package/dist/scan/scan.js.map +1 -1
  51. package/dist/schemas/config.d.ts +40 -8
  52. package/dist/schemas/config.d.ts.map +1 -1
  53. package/dist/schemas/config.js +15 -1
  54. package/dist/schemas/config.js.map +1 -1
  55. package/dist/secrets/secrets.d.ts +29 -0
  56. package/dist/secrets/secrets.d.ts.map +1 -1
  57. package/dist/secrets/secrets.js +81 -0
  58. package/dist/secrets/secrets.js.map +1 -1
  59. package/package.json +5 -5
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Wilson Overfield
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -6,4 +6,4 @@ logs, and secret references.
6
6
 
7
7
  Most users should install and run `@switchboard-mcp/cli`.
8
8
 
9
- Project docs: https://github.com/woverfield/switchboard
9
+ Project docs: https://github.com/wkoverfield/switchboard
@@ -1,5 +1,5 @@
1
1
  import type { PathResolutionOptions } from "../config/paths.js";
2
- export type AuditAction = "profile_test" | "tool_call" | "approval_elicitation";
2
+ export type AuditAction = "profile_test" | "tool_call" | "approval_elicitation" | "command_run";
3
3
  export type AuditStatus = "ok" | "error";
4
4
  export interface AuditLogEntry {
5
5
  version: 1;
@@ -19,6 +19,13 @@ export interface AuditLogEntry {
19
19
  approvalGateId?: string;
20
20
  approvalGatePattern?: string;
21
21
  approvalDecision?: "approved" | "denied" | "declined" | "cancelled" | "failed";
22
+ command?: string;
23
+ args?: string[];
24
+ cwd?: string;
25
+ envKeys?: string[];
26
+ exitCode?: number | null;
27
+ stdoutSnippet?: string;
28
+ stderrSnippet?: string;
22
29
  durationMs?: number;
23
30
  error?: string;
24
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"audit-log.d.ts","sourceRoot":"","sources":["../../src/audit/audit-log.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhE,MAAM,MAAM,WAAW,GAAG,cAAc,GAAG,WAAW,GAAG,sBAAsB,CAAC;AAChF,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,OAAO,CAAC;AAEzC,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,CAAC,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzE;AAED,MAAM,WAAW,uBAAwB,SAAQ,qBAAqB;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC;AAED,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,qBAA0B,GAClC,MAAM,CAQR;AAED,wBAAgB,sBAAsB,CACpC,OAAO,GAAE,uBAA4B,GACpC,WAAW,CAmBb;AAED,eAAO,MAAM,eAAe,EAAE,WAI7B,CAAC;AAEF,wBAAsB,YAAY,CAChC,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,WAAW,CAAC,EACnD,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,wBAAsB,mBAAmB,CACvC,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,aAAa,EAAE,CAAC,CA2B1B"}
1
+ {"version":3,"file":"audit-log.d.ts","sourceRoot":"","sources":["../../src/audit/audit-log.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhE,MAAM,MAAM,WAAW,GACnB,cAAc,GACd,WAAW,GACX,sBAAsB,GACtB,aAAa,CAAC;AAClB,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,OAAO,CAAC;AAEzC,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,CAAC,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC/E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzE;AAED,MAAM,WAAW,uBAAwB,SAAQ,qBAAqB;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC;AAED,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,qBAA0B,GAClC,MAAM,CAQR;AAED,wBAAgB,sBAAsB,CACpC,OAAO,GAAE,uBAA4B,GACpC,WAAW,CAmBb;AAED,eAAO,MAAM,eAAe,EAAE,WAI7B,CAAC;AAEF,wBAAsB,YAAY,CAChC,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,WAAW,CAAC,EACnD,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,wBAAsB,mBAAmB,CACvC,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,aAAa,EAAE,CAAC,CA2B1B"}
@@ -62,10 +62,19 @@ export async function readAuditLogEntries(options = {}) {
62
62
  return entries.slice(Math.max(entries.length - options.limit, 0));
63
63
  }
64
64
  function redactAuditEntry(entry) {
65
- if (!entry.error) {
66
- return entry;
67
- }
68
- return { ...entry, error: redactSecretLikeText(entry.error) };
65
+ return {
66
+ ...entry,
67
+ ...(entry.args
68
+ ? { args: entry.args.map((arg) => redactSecretLikeText(arg)) }
69
+ : {}),
70
+ ...(entry.error ? { error: redactSecretLikeText(entry.error) } : {}),
71
+ ...(entry.stdoutSnippet
72
+ ? { stdoutSnippet: redactSecretLikeText(entry.stdoutSnippet) }
73
+ : {}),
74
+ ...(entry.stderrSnippet
75
+ ? { stderrSnippet: redactSecretLikeText(entry.stderrSnippet) }
76
+ : {})
77
+ };
69
78
  }
70
79
  function redactSecretLikeText(value) {
71
80
  return value
@@ -1 +1 @@
1
- {"version":3,"file":"audit-log.js","sourceRoot":"","sources":["../../src/audit/audit-log.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audit-log.js","sourceRoot":"","sources":["../../src/audit/audit-log.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import type { RecommendedNextAction } from "../next-actions/next-actions.js";
2
+ import type { SwitchboardScanResult } from "../scan/scan.js";
3
+ export declare const repoAuditSchemaVersion = "switchboard.repo-audit.v1";
4
+ export type RepoAuditStatus = "ready" | "needs-attention" | "unsafe" | "invalid";
5
+ export type RepoAuditCheckStatus = "pass" | "warn" | "fail";
6
+ export interface RepoAuditCheck {
7
+ id: string;
8
+ title: string;
9
+ status: RepoAuditCheckStatus;
10
+ summary: string;
11
+ evidence: string[];
12
+ nextActions: string[];
13
+ }
14
+ export interface RepoAuditFindingSummary {
15
+ bypasses: number;
16
+ risks: number;
17
+ warnings: number;
18
+ directClientServers: number;
19
+ switchboardProfiles: number;
20
+ critical: number;
21
+ high: number;
22
+ medium: number;
23
+ info: number;
24
+ }
25
+ export interface RepoAuditResult {
26
+ schemaVersion: typeof repoAuditSchemaVersion;
27
+ status: RepoAuditStatus;
28
+ summary: string;
29
+ repo: SwitchboardScanResult["repo"];
30
+ authorityStatus: SwitchboardScanResult["authorityStatus"];
31
+ findingSummary: RepoAuditFindingSummary;
32
+ checks: RepoAuditCheck[];
33
+ recommendedNextAction: RecommendedNextAction;
34
+ nextActions: string[];
35
+ }
36
+ export declare function createRepoAudit(scan: SwitchboardScanResult): RepoAuditResult;
37
+ //# sourceMappingURL=repo-audit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-audit.d.ts","sourceRoot":"","sources":["../../src/audit/repo-audit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE7D,eAAO,MAAM,sBAAsB,8BAA8B,CAAC;AAElE,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,iBAAiB,GAAG,QAAQ,GAAG,SAAS,CAAC;AACjF,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE5D,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,oBAAoB,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,OAAO,sBAAsB,CAAC;IAC7C,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACpC,eAAe,EAAE,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;IAC1D,cAAc,EAAE,uBAAuB,CAAC;IACxC,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,qBAAqB,GAAG,eAAe,CA+B5E"}
@@ -0,0 +1,261 @@
1
+ export const repoAuditSchemaVersion = "switchboard.repo-audit.v1";
2
+ export function createRepoAudit(scan) {
3
+ const checks = [
4
+ authorityCheck(scan),
5
+ bypassCheck(scan),
6
+ secretAndProviderCheck(scan),
7
+ unknownMcpCommandCheck(scan),
8
+ clientScopeConflictCheck(scan),
9
+ configuredSurfaceBloatCheck(scan),
10
+ clientInstallCheck(scan),
11
+ mandateReadinessCheck(scan)
12
+ ];
13
+ const status = auditStatus(scan.authorityStatus.status, checks);
14
+ return {
15
+ schemaVersion: repoAuditSchemaVersion,
16
+ status,
17
+ summary: auditSummary(status),
18
+ repo: scan.repo,
19
+ authorityStatus: scan.authorityStatus,
20
+ findingSummary: findingSummary(scan),
21
+ checks,
22
+ recommendedNextAction: scan.recommendedNextAction,
23
+ nextActions: [
24
+ ...new Set([
25
+ ...(scan.recommendedNextAction.primary
26
+ ? [scan.recommendedNextAction.primary.command]
27
+ : []),
28
+ ...scan.nextActions,
29
+ ...checks.flatMap((check) => check.nextActions)
30
+ ])
31
+ ]
32
+ };
33
+ }
34
+ function unknownMcpCommandCheck(scan) {
35
+ const unknown = scan.bypassFindings.filter((finding) => finding.command && !isKnownMcpLaunchCommand(finding.command));
36
+ return {
37
+ id: "unknown-mcp-commands",
38
+ title: "Unknown MCP commands",
39
+ status: unknown.length > 0 ? "warn" : "pass",
40
+ summary: unknown.length > 0
41
+ ? `${unknown.length} direct MCP server(s) use commands Switchboard does not recognize yet.`
42
+ : "No unknown direct MCP launch commands detected.",
43
+ evidence: unknown
44
+ .slice(0, 6)
45
+ .map((finding) => `${finding.client}:${finding.serverName} ${finding.command}`),
46
+ nextActions: unknown.length > 0 ? ["switchboard import --dry-run"] : []
47
+ };
48
+ }
49
+ function clientScopeConflictCheck(scan) {
50
+ const withDirectServers = scan.clients.filter((client) => client.otherServerNames.length > 0);
51
+ const staleOrMissingWithDirect = withDirectServers.filter((client) => client.status !== "installed");
52
+ return {
53
+ id: "client-scope-conflicts",
54
+ title: "Client scope conflicts",
55
+ status: staleOrMissingWithDirect.length > 0
56
+ ? "fail"
57
+ : withDirectServers.length > 0
58
+ ? "warn"
59
+ : "pass",
60
+ summary: staleOrMissingWithDirect.length > 0
61
+ ? "Project client config has direct MCP servers while Switchboard is missing or stale."
62
+ : withDirectServers.length > 0
63
+ ? "Project client config has direct MCP servers alongside Switchboard; keep intentional routes visible as accepted risk."
64
+ : "No project client scope conflicts detected. Global/user client config is not audited in this V1 check.",
65
+ evidence: withDirectServers.flatMap((client) => client.otherServerNames.map((server) => `${client.client}:${server} project-direct`)),
66
+ nextActions: staleOrMissingWithDirect.length > 0
67
+ ? ["switchboard import --dry-run", "switchboard import --write --cleanup-client"]
68
+ : withDirectServers.length > 0
69
+ ? ["switchboard import --dry-run"]
70
+ : []
71
+ };
72
+ }
73
+ function configuredSurfaceBloatCheck(scan) {
74
+ const directServerCount = scan.clients.reduce((sum, client) => sum + client.otherServerNames.length, 0);
75
+ const profileCount = scan.switchboard.profileNames.length;
76
+ const totalConfiguredSurface = directServerCount + profileCount;
77
+ const status = totalConfiguredSurface >= 12 || directServerCount >= 6
78
+ ? "warn"
79
+ : "pass";
80
+ return {
81
+ id: "configured-surface-bloat",
82
+ title: "Configured tool surface bloat",
83
+ status,
84
+ summary: status === "warn"
85
+ ? `${totalConfiguredSurface} configured profile/direct MCP surface(s) may expose too much tool context by default.`
86
+ : "Configured profile/direct MCP surface count is modest.",
87
+ evidence: [
88
+ `switchboard profiles: ${profileCount}`,
89
+ `direct client MCP servers: ${directServerCount}`
90
+ ],
91
+ nextActions: status === "warn"
92
+ ? [
93
+ "Use switchboard mandate create --from <preset> before launching agents.",
94
+ "Use switchboard authority draft --profile <name> --json to narrow unknown tool surfaces."
95
+ ]
96
+ : []
97
+ };
98
+ }
99
+ function authorityCheck(scan) {
100
+ const status = scan.authorityStatus.status === "controlled"
101
+ ? "pass"
102
+ : scan.authorityStatus.status === "invalid" ||
103
+ scan.authorityStatus.status === "bypass-present"
104
+ ? "fail"
105
+ : "warn";
106
+ return {
107
+ id: "authority-status",
108
+ title: "Authority status",
109
+ status,
110
+ summary: scan.authorityStatus.summary,
111
+ evidence: [
112
+ `status: ${scan.authorityStatus.status}`,
113
+ ...scan.authorityStatus.findings.slice(0, 6)
114
+ ],
115
+ nextActions: commandShapeAction(scan.authorityStatus.recommendedAction)
116
+ };
117
+ }
118
+ function bypassCheck(scan) {
119
+ const unaccepted = scan.bypassFindings.filter((finding) => finding.status !== "accepted");
120
+ const accepted = scan.bypassFindings.length - unaccepted.length;
121
+ return {
122
+ id: "direct-mcp-bypasses",
123
+ title: "Direct MCP bypasses",
124
+ status: unaccepted.length > 0 ? "fail" : accepted > 0 ? "warn" : "pass",
125
+ summary: unaccepted.length > 0
126
+ ? `${unaccepted.length} direct MCP route(s) can bypass Switchboard.`
127
+ : accepted > 0
128
+ ? `${accepted} direct MCP route(s) are accepted risk and remain visible.`
129
+ : "No direct MCP bypasses detected in supported project clients.",
130
+ evidence: scan.bypassFindings
131
+ .slice(0, 6)
132
+ .map((finding) => `${finding.client}:${finding.serverName} ${finding.severity} ${finding.status}`),
133
+ nextActions: unaccepted.length > 0 ? ["switchboard import --write --cleanup-client"] : []
134
+ };
135
+ }
136
+ function secretAndProviderCheck(scan) {
137
+ const riskyProviders = scan.providers.filter((provider) => provider.environment === "prod" ||
138
+ provider.envVars.some((name) => /(SECRET|TOKEN|KEY|PASSWORD|PRIVATE|SERVICE_ROLE|ADMIN|ROOT)/i.test(name)));
139
+ const highRisks = scan.riskFindings.filter((finding) => finding.severity === "critical" || finding.severity === "high");
140
+ return {
141
+ id: "provider-secret-hints",
142
+ title: "Provider and secret hints",
143
+ status: highRisks.length > 0
144
+ ? "fail"
145
+ : riskyProviders.length > 0 || scan.riskFindings.length > 0
146
+ ? "warn"
147
+ : "pass",
148
+ summary: riskyProviders.length > 0 || scan.riskFindings.length > 0
149
+ ? "Provider/env hints need review before agents receive tool access."
150
+ : "No production or secret-looking provider hints detected.",
151
+ evidence: [
152
+ ...riskyProviders.map((provider) => {
153
+ const env = provider.environment === "unknown" ? "" : ` ${provider.environment}`;
154
+ const vars = provider.envVars.length > 0 ? ` ${provider.envVars.join(",")}` : "";
155
+ return `${provider.provider}${env}${vars}`;
156
+ }),
157
+ ...scan.riskFindings
158
+ .slice(0, 6)
159
+ .map((finding) => `${finding.severity}:${finding.kind}`)
160
+ ].slice(0, 8),
161
+ nextActions: riskyProviders.length > 0 || scan.riskFindings.length > 0
162
+ ? ["switchboard import --dry-run", "switchboard doctor"]
163
+ : []
164
+ };
165
+ }
166
+ function clientInstallCheck(scan) {
167
+ const missingOrInvalid = scan.clients.filter((client) => client.status !== "installed");
168
+ return {
169
+ id: "client-routing",
170
+ title: "Client routing",
171
+ status: missingOrInvalid.length > 0 ? "warn" : "pass",
172
+ summary: missingOrInvalid.length > 0
173
+ ? `${missingOrInvalid.length} supported project client(s) do not route through Switchboard.`
174
+ : "Supported project clients route through Switchboard.",
175
+ evidence: scan.clients.map((client) => `${client.client}: ${client.status} (${client.message})`),
176
+ nextActions: missingOrInvalid.map((client) => `switchboard install ${client.client} --write`)
177
+ };
178
+ }
179
+ function mandateReadinessCheck(scan) {
180
+ const hasProfiles = scan.switchboard.profileNames.length > 0;
181
+ const hasMandateSuggestion = scan.suggestions.some((suggestion) => suggestion.kind === "mandate");
182
+ return {
183
+ id: "mandate-readiness",
184
+ title: "Mandate readiness",
185
+ status: hasMandateSuggestion ? "pass" : hasProfiles ? "warn" : "warn",
186
+ summary: hasMandateSuggestion
187
+ ? "A preset-backed mandate can be created from the configured profiles."
188
+ : hasProfiles
189
+ ? "Profiles exist, but no preset-backed mandate suggestion was detected."
190
+ : "No Switchboard profiles are configured yet.",
191
+ evidence: [
192
+ ...scan.switchboard.profileNames.map((profile) => `profile: ${profile}`),
193
+ ...scan.suggestions
194
+ .filter((suggestion) => suggestion.kind === "mandate")
195
+ .map((suggestion) => `mandate: ${suggestion.command}`)
196
+ ],
197
+ nextActions: hasMandateSuggestion
198
+ ? scan.suggestions
199
+ .filter((suggestion) => suggestion.kind === "mandate")
200
+ .map((suggestion) => suggestion.command)
201
+ : scan.suggestions
202
+ .filter((suggestion) => suggestion.kind === "provider-profile")
203
+ .map((suggestion) => suggestion.command)
204
+ };
205
+ }
206
+ function findingSummary(scan) {
207
+ const severities = [...scan.bypassFindings, ...scan.riskFindings].map((finding) => finding.severity);
208
+ return {
209
+ bypasses: scan.bypassFindings.length,
210
+ risks: scan.riskFindings.length,
211
+ warnings: scan.warnings.length,
212
+ directClientServers: scan.clients.reduce((sum, client) => sum + client.otherServerNames.length, 0),
213
+ switchboardProfiles: scan.switchboard.profileNames.length,
214
+ critical: severities.filter((severity) => severity === "critical").length,
215
+ high: severities.filter((severity) => severity === "high").length,
216
+ medium: severities.filter((severity) => severity === "medium").length,
217
+ info: severities.filter((severity) => severity === "info").length
218
+ };
219
+ }
220
+ function isKnownMcpLaunchCommand(command) {
221
+ const base = command.split(/[\\/]/).pop() ?? command;
222
+ return new Set([
223
+ "docker",
224
+ "node",
225
+ "npx",
226
+ "npm",
227
+ "pnpm",
228
+ "python",
229
+ "python3",
230
+ "uvx",
231
+ "switchboard"
232
+ ]).has(base);
233
+ }
234
+ function auditStatus(authorityStatus, checks) {
235
+ if (authorityStatus === "invalid") {
236
+ return "invalid";
237
+ }
238
+ if (checks.some((check) => check.status === "fail")) {
239
+ return "unsafe";
240
+ }
241
+ if (checks.some((check) => check.status === "warn")) {
242
+ return "needs-attention";
243
+ }
244
+ return "ready";
245
+ }
246
+ function auditSummary(status) {
247
+ switch (status) {
248
+ case "ready":
249
+ return "Detected agent tool access is routed through Switchboard with no blocking findings.";
250
+ case "needs-attention":
251
+ return "Switchboard can assess this repo, but setup or accepted risk still needs attention.";
252
+ case "unsafe":
253
+ return "Direct or high-risk agent tool access should be fixed before giving agents this repo.";
254
+ case "invalid":
255
+ return "Switchboard cannot audit this repo until config parsing errors are fixed.";
256
+ }
257
+ }
258
+ function commandShapeAction(command) {
259
+ return command ? [[command.command, ...command.args].join(" ")] : [];
260
+ }
261
+ //# sourceMappingURL=repo-audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-audit.js","sourceRoot":"","sources":["../../src/audit/repo-audit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,112 @@
1
+ import * as z from "zod";
2
+ import { type MandateToolPolicy } from "../mandates/mandates.js";
3
+ export declare const authorityMapDraftSchemaVersion: "switchboard.authority-map-draft.v1";
4
+ export type AuthorityMapGroup = "allowed" | "approvalRequired" | "denied" | "review";
5
+ export interface AuthorityMapToolEntry {
6
+ toolName: string;
7
+ reason: string;
8
+ matchedHeuristic: string;
9
+ confidence: number;
10
+ }
11
+ export interface AuthorityMapDraft {
12
+ schemaVersion: typeof authorityMapDraftSchemaVersion;
13
+ profileName: string;
14
+ namespace: string;
15
+ generatedAt: string;
16
+ source: {
17
+ kind: "profile-tools";
18
+ toolCount: number;
19
+ };
20
+ groups: Record<AuthorityMapGroup, AuthorityMapToolEntry[]>;
21
+ counts: Record<AuthorityMapGroup, number> & {
22
+ tools: number;
23
+ };
24
+ suggestedMandatePolicy: MandateToolPolicy;
25
+ needsHumanReview: boolean;
26
+ warnings: string[];
27
+ nextActions: string[];
28
+ }
29
+ export interface DraftAuthorityMapOptions {
30
+ profileName: string;
31
+ namespace: string;
32
+ toolNames: string[];
33
+ generatedAt?: Date;
34
+ }
35
+ export interface AuthorityMapCheckResult {
36
+ ok: boolean;
37
+ schemaVersion: "switchboard.authority-map-check.v1";
38
+ mapSchemaVersion: typeof authorityMapDraftSchemaVersion;
39
+ profileName: string;
40
+ namespace: string;
41
+ counts: AuthorityMapDraft["counts"];
42
+ warnings: string[];
43
+ errors: string[];
44
+ needsHumanReview: boolean;
45
+ nextActions: string[];
46
+ }
47
+ export declare const authorityMapDraftSchema: z.ZodObject<{
48
+ schemaVersion: z.ZodLiteral<"switchboard.authority-map-draft.v1">;
49
+ profileName: z.ZodString;
50
+ namespace: z.ZodString;
51
+ generatedAt: z.ZodString;
52
+ source: z.ZodObject<{
53
+ kind: z.ZodLiteral<"profile-tools">;
54
+ toolCount: z.ZodNumber;
55
+ }, z.core.$strip>;
56
+ groups: z.ZodObject<{
57
+ allowed: z.ZodDefault<z.ZodArray<z.ZodObject<{
58
+ toolName: z.ZodString;
59
+ reason: z.ZodString;
60
+ matchedHeuristic: z.ZodString;
61
+ confidence: z.ZodNumber;
62
+ }, z.core.$strip>>>;
63
+ approvalRequired: z.ZodDefault<z.ZodArray<z.ZodObject<{
64
+ toolName: z.ZodString;
65
+ reason: z.ZodString;
66
+ matchedHeuristic: z.ZodString;
67
+ confidence: z.ZodNumber;
68
+ }, z.core.$strip>>>;
69
+ denied: z.ZodDefault<z.ZodArray<z.ZodObject<{
70
+ toolName: z.ZodString;
71
+ reason: z.ZodString;
72
+ matchedHeuristic: z.ZodString;
73
+ confidence: z.ZodNumber;
74
+ }, z.core.$strip>>>;
75
+ review: z.ZodDefault<z.ZodArray<z.ZodObject<{
76
+ toolName: z.ZodString;
77
+ reason: z.ZodString;
78
+ matchedHeuristic: z.ZodString;
79
+ confidence: z.ZodNumber;
80
+ }, z.core.$strip>>>;
81
+ }, z.core.$strip>;
82
+ counts: z.ZodOptional<z.ZodObject<{
83
+ tools: z.ZodNumber;
84
+ allowed: z.ZodNumber;
85
+ approvalRequired: z.ZodNumber;
86
+ denied: z.ZodNumber;
87
+ review: z.ZodNumber;
88
+ }, z.core.$strip>>;
89
+ suggestedMandatePolicy: z.ZodObject<{
90
+ allowedTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
91
+ deniedTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
92
+ approvalGates: z.ZodOptional<z.ZodArray<z.ZodObject<{
93
+ id: z.ZodString;
94
+ toolPattern: z.ZodString;
95
+ reason: z.ZodOptional<z.ZodString>;
96
+ risk: z.ZodOptional<z.ZodEnum<{
97
+ low: "low";
98
+ medium: "medium";
99
+ high: "high";
100
+ critical: "critical";
101
+ }>>;
102
+ labels: z.ZodOptional<z.ZodArray<z.ZodString>>;
103
+ }, z.core.$strip>>>;
104
+ }, z.core.$strip>;
105
+ needsHumanReview: z.ZodDefault<z.ZodBoolean>;
106
+ warnings: z.ZodDefault<z.ZodArray<z.ZodString>>;
107
+ nextActions: z.ZodDefault<z.ZodArray<z.ZodString>>;
108
+ }, z.core.$strip>;
109
+ export declare function draftAuthorityMap(options: DraftAuthorityMapOptions): AuthorityMapDraft;
110
+ export declare function parseAuthorityMapDraft(content: string): AuthorityMapDraft;
111
+ export declare function checkAuthorityMapDraft(draft: AuthorityMapDraft): AuthorityMapCheckResult;
112
+ //# sourceMappingURL=authority-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authority-map.d.ts","sourceRoot":"","sources":["../../src/authority/authority-map.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,yBAAyB,CAAC;AAEjC,eAAO,MAAM,8BAA8B,EACzC,oCAA6C,CAAC;AAEhD,MAAM,MAAM,iBAAiB,GACzB,SAAS,GACT,kBAAkB,GAClB,QAAQ,GACR,QAAQ,CAAC;AAEb,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,OAAO,8BAA8B,CAAC;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE;QACN,IAAI,EAAE,eAAe,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC,iBAAiB,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAC3D,MAAM,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,sBAAsB,EAAE,iBAAiB,CAAC;IAC1C,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,OAAO,CAAC;IACZ,aAAa,EAAE,oCAAoC,CAAC;IACpD,gBAAgB,EAAE,OAAO,8BAA8B,CAAC;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACpC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AASD,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgClC,CAAC;AASH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,wBAAwB,GAChC,iBAAiB,CA0CnB;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAuBzE;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,iBAAiB,GACvB,uBAAuB,CAwEzB"}