@praxis.guard/auditor-cli 0.0.62 → 0.0.64

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 (203) hide show
  1. package/README.md +19 -0
  2. package/dist/adapters/claude-code/adapter.d.ts +3 -1
  3. package/dist/adapters/claude-code/adapter.d.ts.map +1 -1
  4. package/dist/adapters/claude-code/adapter.js +68 -0
  5. package/dist/adapters/claude-code/adapter.js.map +1 -1
  6. package/dist/adapters/claude-desktop.d.ts +2 -1
  7. package/dist/adapters/claude-desktop.d.ts.map +1 -1
  8. package/dist/adapters/claude-desktop.js +24 -0
  9. package/dist/adapters/claude-desktop.js.map +1 -1
  10. package/dist/adapters/codex.d.ts +3 -1
  11. package/dist/adapters/codex.d.ts.map +1 -1
  12. package/dist/adapters/codex.js +7 -1
  13. package/dist/adapters/codex.js.map +1 -1
  14. package/dist/adapters/copilot-cli/adapter.d.ts +3 -1
  15. package/dist/adapters/copilot-cli/adapter.d.ts.map +1 -1
  16. package/dist/adapters/copilot-cli/adapter.js +57 -1
  17. package/dist/adapters/copilot-cli/adapter.js.map +1 -1
  18. package/dist/adapters/copilot-cli/config.d.ts +6 -0
  19. package/dist/adapters/copilot-cli/config.d.ts.map +1 -1
  20. package/dist/adapters/copilot-cli/config.js +23 -0
  21. package/dist/adapters/copilot-cli/config.js.map +1 -1
  22. package/dist/adapters/cursor.d.ts +4 -1
  23. package/dist/adapters/cursor.d.ts.map +1 -1
  24. package/dist/adapters/cursor.js +15 -1
  25. package/dist/adapters/cursor.js.map +1 -1
  26. package/dist/adapters/remove-helpers.d.ts +23 -0
  27. package/dist/adapters/remove-helpers.d.ts.map +1 -0
  28. package/dist/adapters/remove-helpers.js +40 -0
  29. package/dist/adapters/remove-helpers.js.map +1 -0
  30. package/dist/adapters/select-targets.d.ts +10 -0
  31. package/dist/adapters/select-targets.d.ts.map +1 -1
  32. package/dist/adapters/select-targets.js +23 -1
  33. package/dist/adapters/select-targets.js.map +1 -1
  34. package/dist/adapters/types.d.ts +29 -0
  35. package/dist/adapters/types.d.ts.map +1 -1
  36. package/dist/adapters/vscode.d.ts +2 -1
  37. package/dist/adapters/vscode.d.ts.map +1 -1
  38. package/dist/adapters/vscode.js +38 -6
  39. package/dist/adapters/vscode.js.map +1 -1
  40. package/dist/approval/mcp-flow-create.d.ts +3 -0
  41. package/dist/approval/mcp-flow-create.d.ts.map +1 -0
  42. package/dist/approval/mcp-flow-create.js +76 -0
  43. package/dist/approval/mcp-flow-create.js.map +1 -0
  44. package/dist/approval/mcp-flow-existing.d.ts +14 -0
  45. package/dist/approval/mcp-flow-existing.d.ts.map +1 -0
  46. package/dist/approval/mcp-flow-existing.js +43 -0
  47. package/dist/approval/mcp-flow-existing.js.map +1 -0
  48. package/dist/approval/mcp-flow-outcome.d.ts +5 -0
  49. package/dist/approval/mcp-flow-outcome.d.ts.map +1 -0
  50. package/dist/approval/mcp-flow-outcome.js +19 -0
  51. package/dist/approval/mcp-flow-outcome.js.map +1 -0
  52. package/dist/approval/mcp-flow-pending.d.ts +7 -0
  53. package/dist/approval/mcp-flow-pending.d.ts.map +1 -0
  54. package/dist/approval/mcp-flow-pending.js +25 -0
  55. package/dist/approval/mcp-flow-pending.js.map +1 -0
  56. package/dist/approval/mcp-flow-redeem.d.ts +13 -0
  57. package/dist/approval/mcp-flow-redeem.d.ts.map +1 -0
  58. package/dist/approval/mcp-flow-redeem.js +20 -0
  59. package/dist/approval/mcp-flow-redeem.js.map +1 -0
  60. package/dist/approval/mcp-flow.d.ts +6 -28
  61. package/dist/approval/mcp-flow.d.ts.map +1 -1
  62. package/dist/approval/mcp-flow.js +21 -129
  63. package/dist/approval/mcp-flow.js.map +1 -1
  64. package/dist/approval/mcp-flow.types.d.ts +42 -0
  65. package/dist/approval/mcp-flow.types.d.ts.map +1 -0
  66. package/dist/approval/mcp-flow.types.js +2 -0
  67. package/dist/approval/mcp-flow.types.js.map +1 -0
  68. package/dist/cli/cursor-config/environment-config.d.ts +8 -0
  69. package/dist/cli/cursor-config/environment-config.d.ts.map +1 -1
  70. package/dist/cli/cursor-config/environment-config.js +45 -1
  71. package/dist/cli/cursor-config/environment-config.js.map +1 -1
  72. package/dist/cli/cursor-config/hooks-config.d.ts +13 -0
  73. package/dist/cli/cursor-config/hooks-config.d.ts.map +1 -1
  74. package/dist/cli/cursor-config/hooks-config.js +64 -0
  75. package/dist/cli/cursor-config/hooks-config.js.map +1 -1
  76. package/dist/cli/cursor-config/index.d.ts +3 -3
  77. package/dist/cli/cursor-config/index.d.ts.map +1 -1
  78. package/dist/cli/cursor-config/index.js +3 -3
  79. package/dist/cli/cursor-config/index.js.map +1 -1
  80. package/dist/cli/cursor-config/json-io.d.ts +2 -0
  81. package/dist/cli/cursor-config/json-io.d.ts.map +1 -1
  82. package/dist/cli/cursor-config/json-io.js +5 -1
  83. package/dist/cli/cursor-config/json-io.js.map +1 -1
  84. package/dist/cli/cursor-config/mcp-config.d.ts +5 -0
  85. package/dist/cli/cursor-config/mcp-config.d.ts.map +1 -1
  86. package/dist/cli/cursor-config/mcp-config.js +37 -0
  87. package/dist/cli/cursor-config/mcp-config.js.map +1 -1
  88. package/dist/cli/cursor-config.d.ts +1 -1
  89. package/dist/cli/cursor-config.d.ts.map +1 -1
  90. package/dist/cli/cursor-config.js +1 -1
  91. package/dist/cli/cursor-config.js.map +1 -1
  92. package/dist/cli/dispatch-uninstall.d.ts +6 -0
  93. package/dist/cli/dispatch-uninstall.d.ts.map +1 -0
  94. package/dist/cli/dispatch-uninstall.js +10 -0
  95. package/dist/cli/dispatch-uninstall.js.map +1 -0
  96. package/dist/cli/doctor-adapter-lines.d.ts +4 -0
  97. package/dist/cli/doctor-adapter-lines.d.ts.map +1 -0
  98. package/dist/cli/doctor-adapter-lines.js +47 -0
  99. package/dist/cli/doctor-adapter-lines.js.map +1 -0
  100. package/dist/cli/doctor-notifications.d.ts +5 -0
  101. package/dist/cli/doctor-notifications.d.ts.map +1 -0
  102. package/dist/cli/doctor-notifications.js +10 -0
  103. package/dist/cli/doctor-notifications.js.map +1 -0
  104. package/dist/cli/doctor-remote.d.ts +3 -0
  105. package/dist/cli/doctor-remote.d.ts.map +1 -0
  106. package/dist/cli/doctor-remote.js +48 -0
  107. package/dist/cli/doctor-remote.js.map +1 -0
  108. package/dist/cli/doctor.d.ts +1 -22
  109. package/dist/cli/doctor.d.ts.map +1 -1
  110. package/dist/cli/doctor.js +46 -142
  111. package/dist/cli/doctor.js.map +1 -1
  112. package/dist/cli/help.d.ts.map +1 -1
  113. package/dist/cli/help.js +3 -0
  114. package/dist/cli/help.js.map +1 -1
  115. package/dist/cli/main.d.ts.map +1 -1
  116. package/dist/cli/main.js +12 -0
  117. package/dist/cli/main.js.map +1 -1
  118. package/dist/cli/setup-gateway.d.ts +13 -0
  119. package/dist/cli/setup-gateway.d.ts.map +1 -1
  120. package/dist/cli/setup-gateway.js +24 -0
  121. package/dist/cli/setup-gateway.js.map +1 -1
  122. package/dist/cli/uninstall-all.d.ts +24 -0
  123. package/dist/cli/uninstall-all.d.ts.map +1 -0
  124. package/dist/cli/uninstall-all.js +249 -0
  125. package/dist/cli/uninstall-all.js.map +1 -0
  126. package/dist/codex/config-hooks.d.ts +7 -0
  127. package/dist/codex/config-hooks.d.ts.map +1 -1
  128. package/dist/codex/config-hooks.js +28 -0
  129. package/dist/codex/config-hooks.js.map +1 -1
  130. package/dist/codex/config-io.d.ts +1 -0
  131. package/dist/codex/config-io.d.ts.map +1 -1
  132. package/dist/codex/config-io.js +4 -1
  133. package/dist/codex/config-io.js.map +1 -1
  134. package/dist/codex/config-toml.d.ts +7 -0
  135. package/dist/codex/config-toml.d.ts.map +1 -1
  136. package/dist/codex/config-toml.js +50 -0
  137. package/dist/codex/config-toml.js.map +1 -1
  138. package/dist/codex/config.d.ts +2 -0
  139. package/dist/codex/config.d.ts.map +1 -1
  140. package/dist/codex/config.js +52 -3
  141. package/dist/codex/config.js.map +1 -1
  142. package/dist/mcp/evaluate-guard-approval.d.ts +47 -0
  143. package/dist/mcp/evaluate-guard-approval.d.ts.map +1 -0
  144. package/dist/mcp/evaluate-guard-approval.js +80 -0
  145. package/dist/mcp/evaluate-guard-approval.js.map +1 -0
  146. package/dist/mcp/evaluate-guard-policy.d.ts +3 -0
  147. package/dist/mcp/evaluate-guard-policy.d.ts.map +1 -0
  148. package/dist/mcp/evaluate-guard-policy.js +6 -0
  149. package/dist/mcp/evaluate-guard-policy.js.map +1 -0
  150. package/dist/mcp/evaluate-guard-proposal.d.ts +16 -0
  151. package/dist/mcp/evaluate-guard-proposal.d.ts.map +1 -0
  152. package/dist/mcp/evaluate-guard-proposal.js +57 -0
  153. package/dist/mcp/evaluate-guard-proposal.js.map +1 -0
  154. package/dist/mcp/evaluate-guard-run.d.ts +23 -0
  155. package/dist/mcp/evaluate-guard-run.d.ts.map +1 -0
  156. package/dist/mcp/evaluate-guard-run.js +75 -0
  157. package/dist/mcp/evaluate-guard-run.js.map +1 -0
  158. package/dist/mcp/evaluate-guard-telemetry.d.ts +22 -0
  159. package/dist/mcp/evaluate-guard-telemetry.d.ts.map +1 -0
  160. package/dist/mcp/evaluate-guard-telemetry.js +38 -0
  161. package/dist/mcp/evaluate-guard-telemetry.js.map +1 -0
  162. package/dist/mcp/evaluate-guard-tier.d.ts +18 -0
  163. package/dist/mcp/evaluate-guard-tier.d.ts.map +1 -0
  164. package/dist/mcp/evaluate-guard-tier.js +42 -0
  165. package/dist/mcp/evaluate-guard-tier.js.map +1 -0
  166. package/dist/mcp/evaluate-guard.d.ts +2 -5
  167. package/dist/mcp/evaluate-guard.d.ts.map +1 -1
  168. package/dist/mcp/evaluate-guard.js +18 -195
  169. package/dist/mcp/evaluate-guard.js.map +1 -1
  170. package/dist/mcp/gateway-call-handler.d.ts +9 -0
  171. package/dist/mcp/gateway-call-handler.d.ts.map +1 -0
  172. package/dist/mcp/gateway-call-handler.js +61 -0
  173. package/dist/mcp/gateway-call-handler.js.map +1 -0
  174. package/dist/mcp/gateway-call-results.d.ts +5 -0
  175. package/dist/mcp/gateway-call-results.d.ts.map +1 -0
  176. package/dist/mcp/gateway-call-results.js +14 -0
  177. package/dist/mcp/gateway-call-results.js.map +1 -0
  178. package/dist/mcp/gateway-connection-lib.d.ts +54 -0
  179. package/dist/mcp/gateway-connection-lib.d.ts.map +1 -0
  180. package/dist/mcp/gateway-connection-lib.js +39 -0
  181. package/dist/mcp/gateway-connection-lib.js.map +1 -0
  182. package/dist/mcp/gateway-connection.d.ts +16 -0
  183. package/dist/mcp/gateway-connection.d.ts.map +1 -0
  184. package/dist/mcp/gateway-connection.js +54 -0
  185. package/dist/mcp/gateway-connection.js.map +1 -0
  186. package/dist/mcp/gateway-log.d.ts +5 -0
  187. package/dist/mcp/gateway-log.d.ts.map +1 -0
  188. package/dist/mcp/gateway-log.js +9 -0
  189. package/dist/mcp/gateway-log.js.map +1 -0
  190. package/dist/mcp/gateway.d.ts +2 -20
  191. package/dist/mcp/gateway.d.ts.map +1 -1
  192. package/dist/mcp/gateway.js +18 -186
  193. package/dist/mcp/gateway.js.map +1 -1
  194. package/dist/policies.v1.json +6 -0
  195. package/native/darwin-amd64/praxis-guard-daemon +0 -0
  196. package/native/darwin-amd64/praxis-guard-hook +0 -0
  197. package/native/darwin-arm64/praxis-guard-daemon +0 -0
  198. package/native/darwin-arm64/praxis-guard-hook +0 -0
  199. package/native/linux-amd64/praxis-guard-daemon +0 -0
  200. package/native/linux-amd64/praxis-guard-hook +0 -0
  201. package/native/linux-arm64/praxis-guard-daemon +0 -0
  202. package/native/linux-arm64/praxis-guard-hook +0 -0
  203. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-flow.d.ts","sourceRoot":"","sources":["../../src/approval/mcp-flow.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AASnF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAC1B;IACE,IAAI,EAAE,kBAAkB,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB,GACD;IACE,IAAI,EAAE,yBAAyB,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,GACD;IAAE,IAAI,EAAE,qBAAqB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAMrD,wBAAsB,qBAAqB,CAAC,KAAK,EAAE;IACjD,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,YAAY,EAAE,OAAO,GAAG,KAAK,CAAC;IAC9B,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,oBAAoB,CAAC,EAAE,+BAA+B,GAAG,IAAI,CAAC;CAC/D,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA4J9B;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAE/D;AAED,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
1
+ {"version":3,"file":"mcp-flow.d.ts","sourceRoot":"","sources":["../../src/approval/mcp-flow.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAGjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAElF,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAElF,KAAK,mBAAmB,GAAG;IACzB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,YAAY,EAAE,OAAO,GAAG,KAAK,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,oBAAoB,CAAC,EAAE,+BAA+B,GAAG,IAAI,CAAC;CAC/D,CAAC;AAEF,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAoCnG;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAE/D;AAED,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
@@ -1,152 +1,44 @@
1
- import { DEFAULT_APP_URL } from "../config/default-endpoints.js";
2
1
  import { getInstallId } from "../cli/install-id.js";
3
- import { isReliableWorkspaceRoot, resolveGuardStorageRoot, } from "../bridge/guard-storage-root.js";
4
- import { recordRequestBinding } from "../bridge/request-binding-write.js";
5
- import { writePendingApprovalIndex } from "../bridge/pending-approval-index.js";
2
+ import { resolveGuardStorageRoot } from "../bridge/guard-storage-root.js";
6
3
  import { resolveShellApprovalHash } from "./argv-fingerprint.js";
7
- import { createApprovalRequest, getApprovalRequest, pollUntilApproved, } from "./client.js";
8
- import { redeemApprovalAndRecordBridge } from "./redeem.js";
9
- import { verifyApprovalGrant } from "./grant.js";
10
- function defaultAppUrl() {
11
- return process.env.PRAXIS_APP_URL?.trim() || DEFAULT_APP_URL;
12
- }
4
+ import { createMutateApproval } from "./mcp-flow-create.js";
5
+ import { resolveExistingMutateApproval } from "./mcp-flow-existing.js";
13
6
  export async function resolveMutateApproval(input) {
14
- const installId = getInstallId();
15
7
  const storageRoot = resolveGuardStorageRoot(input.storageRoot);
16
8
  const requestId = input.approval?.request_id?.trim() || null;
17
9
  const grant = input.approval?.grant?.trim() || null;
18
10
  try {
19
11
  if (requestId) {
20
- if (grant) {
21
- const claims = verifyApprovalGrant(grant);
22
- if (!claims || claims.request_id !== requestId) {
23
- return { kind: "backend_unavailable", message: "invalid_grant" };
24
- }
25
- }
26
- const row = grant ? null : await getApprovalRequest(requestId);
27
- const status = grant ? "approved" : row?.status;
28
- if (status === "pending" && input.waitMs && input.waitMs > 0) {
29
- await pollUntilApproved(requestId, { timeoutMs: input.waitMs });
30
- }
31
- else if (status === "pending") {
32
- return {
33
- kind: "require_approval",
34
- request_id: requestId,
35
- open_url: row?.open_url ?? `${defaultAppUrl().replace(/\/$/, "")}/app/approvals/${requestId}`,
36
- expires_at: row?.expires_at ?? new Date(Date.now() + 30 * 60 * 1000).toISOString(),
37
- };
38
- }
39
- if (status === "denied") {
40
- return { kind: "backend_unavailable", message: "approval_denied" };
41
- }
42
- const redeem = await redeemApprovalAndRecordBridge({
43
- request_id: requestId,
44
- argv: input.argv,
45
- kind: input.proposalKind,
46
- storageRoot,
12
+ return resolveExistingMutateApproval({
13
+ requestId,
47
14
  grant,
48
- environment: input.environment,
49
- session_id: input.sessionId,
50
- approval_fingerprint: input.approval_fingerprint,
51
- });
52
- if (!redeem.ticketRecorded) {
53
- return {
54
- kind: "credential_not_recorded",
55
- request_id: requestId,
56
- message: "Approval redeemed but no execution ticket was written for hooks. Check workspace permissions under .praxis/guard/tickets.",
57
- };
58
- }
59
- return {
60
- kind: "allow",
61
- redeemed: redeem.redeemed,
62
- approved_by: redeem.approved_by,
63
- bridgeRecorded: false,
64
- ticketRecorded: redeem.ticketRecorded,
65
- request_id: requestId,
66
- };
67
- }
68
- if (!isReliableWorkspaceRoot(storageRoot)) {
69
- return {
70
- kind: "backend_unavailable",
71
- message: "Cannot bind approval to a workspace root. Set proposal.cwd or context.workspace_root to the repo root where hooks run (must contain .git, .praxis, or .cursor/hooks.json).",
72
- };
73
- }
74
- const created = await createApprovalRequest({
75
- kind: input.proposalKind,
76
- tier: "MUTATE",
77
- argv: [...input.argv],
78
- install_id: installId,
79
- session_id: input.sessionId ?? null,
80
- environment: input.environment ?? null,
81
- raw_display: input.rawDisplay ?? input.argv.join(" "),
82
- event_id: input.eventId,
83
- policy_revision: input.policyRevision,
84
- reasons: input.reasons,
85
- tool_input_sha256: input.tool_input_sha256 ?? null,
86
- approval_scope: "exact",
87
- });
88
- recordRequestBinding({
89
- request_id: created.request_id,
90
- storage_root: storageRoot,
91
- argv: input.argv,
92
- kind: input.proposalKind,
93
- expires_at: created.expires_at,
94
- approval_fingerprint: input.approval_fingerprint,
95
- });
96
- if (input.waitMs && input.waitMs > 0) {
97
- await pollUntilApproved(created.request_id, { timeoutMs: input.waitMs });
98
- const redeem = await redeemApprovalAndRecordBridge({
99
- request_id: created.request_id,
100
15
  argv: input.argv,
101
- kind: input.proposalKind,
16
+ proposalKind: input.proposalKind,
102
17
  storageRoot,
18
+ sessionId: input.sessionId,
103
19
  environment: input.environment,
104
- session_id: input.sessionId,
20
+ waitMs: input.waitMs,
105
21
  approval_fingerprint: input.approval_fingerprint,
106
22
  });
107
- if (!redeem.ticketRecorded) {
108
- return {
109
- kind: "credential_not_recorded",
110
- request_id: created.request_id,
111
- message: "Approval redeemed but no execution ticket was written for hooks. Check workspace permissions under .praxis/guard/tickets.",
112
- };
113
- }
114
- return {
115
- kind: "allow",
116
- redeemed: redeem.redeemed,
117
- approved_by: redeem.approved_by,
118
- bridgeRecorded: false,
119
- ticketRecorded: redeem.ticketRecorded,
120
- request_id: created.request_id,
121
- };
122
23
  }
123
- const hash = resolveShellApprovalHash({
124
- kind: input.proposalKind,
24
+ return createMutateApproval({
125
25
  argv: input.argv,
26
+ proposalKind: input.proposalKind,
27
+ storageRoot,
28
+ installId: getInstallId(),
29
+ rawDisplay: input.rawDisplay,
30
+ eventId: input.eventId,
31
+ policyRevision: input.policyRevision,
32
+ reasons: input.reasons,
33
+ sessionId: input.sessionId,
34
+ environment: input.environment,
35
+ waitMs: input.waitMs,
36
+ tool_input_sha256: input.tool_input_sha256,
126
37
  approval_fingerprint: input.approval_fingerprint,
127
38
  });
128
- await writePendingApprovalIndex({
129
- request_id: created.request_id,
130
- argv_sha256: hash,
131
- argv: [...input.argv],
132
- install_id: installId,
133
- open_url: created.open_url,
134
- expires_at: created.expires_at,
135
- event_id: input.eventId,
136
- tool_input_sha256: input.tool_input_sha256 ?? null,
137
- kind: input.proposalKind,
138
- created_at: new Date().toISOString(),
139
- }, { storageRoot });
140
- return {
141
- kind: "require_approval",
142
- request_id: created.request_id,
143
- open_url: created.open_url,
144
- expires_at: created.expires_at,
145
- };
146
39
  }
147
40
  catch (e) {
148
- const msg = e instanceof Error ? e.message : String(e);
149
- return { kind: "backend_unavailable", message: msg };
41
+ return { kind: "backend_unavailable", message: e instanceof Error ? e.message : String(e) };
150
42
  }
151
43
  }
152
44
  export function argvFingerprint(argv) {
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-flow.js","sourceRoot":"","sources":["../../src/approval/mcp-flow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-flow.js","sourceRoot":"","sources":["../../src/approval/mcp-flow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AAqBvE,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,KAA0B;IACpE,MAAM,WAAW,GAAG,uBAAuB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;IAC7D,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;IACpD,IAAI,CAAC;QACH,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,6BAA6B,CAAC;gBACnC,SAAS;gBACT,KAAK;gBACL,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,WAAW;gBACX,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;aACjD,CAAC,CAAC;QACL,CAAC;QACD,OAAO,oBAAoB,CAAC;YAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,WAAW;YACX,SAAS,EAAE,YAAY,EAAE;YACzB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;YAC1C,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;SACjD,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9F,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAuB;IACrD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
@@ -0,0 +1,42 @@
1
+ import type { ShellApprovalFingerprintPayload } from "../shell/analyze-command.js";
2
+ export type McpApprovalContext = {
3
+ request_id?: string | null;
4
+ grant?: string | null;
5
+ };
6
+ export type McpApprovalOutcome = {
7
+ kind: "require_approval";
8
+ request_id: string;
9
+ open_url: string;
10
+ expires_at: string;
11
+ } | {
12
+ kind: "allow";
13
+ redeemed: boolean;
14
+ approved_by: string | null;
15
+ bridgeRecorded: boolean;
16
+ ticketRecorded: boolean;
17
+ request_id: string;
18
+ } | {
19
+ kind: "credential_not_recorded";
20
+ request_id: string;
21
+ message: string;
22
+ } | {
23
+ kind: "backend_unavailable";
24
+ message: string;
25
+ };
26
+ export type CreateMutateApprovalInput = {
27
+ argv: string[];
28
+ proposalKind: "shell" | "mcp";
29
+ storageRoot: string;
30
+ installId: string;
31
+ rawDisplay?: string;
32
+ eventId: string;
33
+ policyRevision: number | null;
34
+ reasons: unknown[];
35
+ sessionId?: string | null;
36
+ environment?: string | null;
37
+ waitMs?: number | null;
38
+ tool_input_sha256?: string | null;
39
+ approval?: McpApprovalContext | null;
40
+ approval_fingerprint?: ShellApprovalFingerprintPayload | null;
41
+ };
42
+ //# sourceMappingURL=mcp-flow.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-flow.types.d.ts","sourceRoot":"","sources":["../../src/approval/mcp-flow.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAEnF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAC1B;IACE,IAAI,EAAE,kBAAkB,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB,GACD;IACE,IAAI,EAAE,yBAAyB,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,GACD;IAAE,IAAI,EAAE,qBAAqB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAErD,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,YAAY,EAAE,OAAO,GAAG,KAAK,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACrC,oBAAoB,CAAC,EAAE,+BAA+B,GAAG,IAAI,CAAC;CAC/D,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mcp-flow.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-flow.types.js","sourceRoot":"","sources":["../../src/approval/mcp-flow.types.ts"],"names":[],"mappings":""}
@@ -4,4 +4,12 @@ export declare function detectInstallCommand(projectDir: string): string;
4
4
  export declare function hasConfiguredEnvironment(config: JsonMap | null): boolean;
5
5
  export declare function upsertEnvironmentConfig(projectDir: string, dryRun?: boolean): Promise<SetupResult>;
6
6
  export declare function readEnvironmentConfigured(projectDir: string): Promise<boolean>;
7
+ /**
8
+ * Remove the Praxis-written `install` command from a Cloud Agents
9
+ * `.cursor/environment.json`. Only strips the key when its value is the command
10
+ * setup would have written for this project (or a legacy guard-mcp/auditor-cli
11
+ * variant), so a user's own install command is preserved. Deletes the file when
12
+ * it is left empty.
13
+ */
14
+ export declare function removeEnvironmentConfig(projectDir: string, dryRun?: boolean): Promise<SetupResult>;
7
15
  //# sourceMappingURL=environment-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"environment-config.d.ts","sourceRoot":"","sources":["../../../src/cli/cursor-config/environment-config.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAmBvD,wBAAgB,iCAAiC,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAYnF;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAiB/D;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAExE;AAED,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,MAAM,EAClB,MAAM,UAAQ,GACb,OAAO,CAAC,WAAW,CAAC,CAyCtB;AAED,wBAAsB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGpF"}
1
+ {"version":3,"file":"environment-config.d.ts","sourceRoot":"","sources":["../../../src/cli/cursor-config/environment-config.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAmBvD,wBAAgB,iCAAiC,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAYnF;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAiB/D;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAExE;AAED,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,MAAM,EAClB,MAAM,UAAQ,GACb,OAAO,CAAC,WAAW,CAAC,CAyCtB;AAED,wBAAsB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGpF;AAED;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,MAAM,EAClB,MAAM,UAAQ,GACb,OAAO,CAAC,WAAW,CAAC,CAmCtB"}
@@ -1,6 +1,6 @@
1
1
  import fs from "node:fs";
2
2
  import path from "node:path";
3
- import { cloneJsonMap, readJson, writeJson } from "./json-io.js";
3
+ import { cloneJsonMap, readJson, removeFile, writeJson } from "./json-io.js";
4
4
  import { resolveEnvironmentJsonPath } from "./paths.js";
5
5
  function detectPackageManager(projectDir) {
6
6
  try {
@@ -97,4 +97,48 @@ export async function readEnvironmentConfigured(projectDir) {
97
97
  const config = await readJson(resolveEnvironmentJsonPath(projectDir));
98
98
  return hasConfiguredEnvironment(config);
99
99
  }
100
+ /**
101
+ * Remove the Praxis-written `install` command from a Cloud Agents
102
+ * `.cursor/environment.json`. Only strips the key when its value is the command
103
+ * setup would have written for this project (or a legacy guard-mcp/auditor-cli
104
+ * variant), so a user's own install command is preserved. Deletes the file when
105
+ * it is left empty.
106
+ */
107
+ export async function removeEnvironmentConfig(projectDir, dryRun = false) {
108
+ const envPath = resolveEnvironmentJsonPath(projectDir);
109
+ const existing = await readJson(envPath);
110
+ if (!existing) {
111
+ return { path: envPath, changed: false, message: "no environment.json to remove" };
112
+ }
113
+ const beforeJson = JSON.stringify(existing);
114
+ const config = cloneJsonMap(existing);
115
+ const install = config.install;
116
+ const expected = detectInstallCommand(projectDir);
117
+ const isPraxisInstall = typeof install === "string" &&
118
+ (install === expected ||
119
+ install.includes("guard-mcp") ||
120
+ install.includes("auditor-cli") ||
121
+ install.includes("auditor-policy"));
122
+ if (isPraxisInstall)
123
+ delete config.install;
124
+ const isEmpty = Object.keys(config).length === 0;
125
+ const changed = beforeJson !== JSON.stringify(config);
126
+ if (changed && !dryRun) {
127
+ if (isEmpty)
128
+ await removeFile(envPath);
129
+ else
130
+ await writeJson(envPath, config);
131
+ }
132
+ return {
133
+ path: envPath,
134
+ changed,
135
+ message: changed
136
+ ? dryRun
137
+ ? "would remove Praxis cloud install from environment.json"
138
+ : isEmpty
139
+ ? "removed environment.json"
140
+ : "removed Praxis cloud install from environment.json"
141
+ : "no Praxis cloud install to remove",
142
+ };
143
+ }
100
144
  //# sourceMappingURL=environment-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"environment-config.js","sourceRoot":"","sources":["../../../src/cli/cursor-config/environment-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"environment-config.js","sourceRoot":"","sources":["../../../src/cli/cursor-config/environment-config.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,19 @@ export declare function hasConfiguredHook(config: JsonMap | null): boolean;
3
3
  export declare function hasConfiguredBeforeMcpHook(config: JsonMap | null): boolean;
4
4
  export declare function upsertHookConfig(opts: UpsertHookConfigOptions): Promise<SetupResult>;
5
5
  export declare function hasAnyPraxisHookEntry(config: JsonMap | null): boolean;
6
+ /**
7
+ * Remove Praxis hook entries (current, native, and legacy variants) from a
8
+ * Cursor hooks.json. Strips matching beforeShellExecution / beforeMCPExecution
9
+ * entries, prunes emptied arrays, and prunes the `hooks` object if empty. The
10
+ * file itself is left in place (it is shared with the user's own hooks) — a
11
+ * residual `{ "version": 1 }` is inert.
12
+ */
13
+ export declare function removeHookConfig(opts: {
14
+ scope: "global" | "project";
15
+ projectDir?: string;
16
+ explicitPath?: string;
17
+ dryRun?: boolean;
18
+ }): Promise<SetupResult>;
6
19
  export declare function readHooksStatusAt(hooksPath: string): Promise<{
7
20
  shell: boolean;
8
21
  mcp: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"hooks-config.d.ts","sourceRoot":"","sources":["../../../src/cli/cursor-config/hooks-config.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AA0BhF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAajE;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAa1E;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC,CA0E1F;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAErE;AAED,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAClE,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;CACd,CAAC,CAMD;AAED,wBAAsB,yBAAyB,IAAI,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,CAAC,CAE3F;AAED,wBAAsB,0BAA0B,CAC9C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,CAAC,CAE3C;AAED,gEAAgE;AAChE,wBAAsB,kBAAkB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG/E;AAED,gEAAgE;AAChE,wBAAsB,2BAA2B,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGxF;AAED,wBAAsB,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAS5F"}
1
+ {"version":3,"file":"hooks-config.d.ts","sourceRoot":"","sources":["../../../src/cli/cursor-config/hooks-config.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AA0BhF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAajE;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAa1E;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC,CA0E1F;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAErE;AA8BD;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,KAAK,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG,OAAO,CAAC,WAAW,CAAC,CA8BvB;AAED,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAClE,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;CACd,CAAC,CAMD;AAED,wBAAsB,yBAAyB,IAAI,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,CAAC,CAE3F;AAED,wBAAsB,0BAA0B,CAC9C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,CAAC,CAE3C;AAED,gEAAgE;AAChE,wBAAsB,kBAAkB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG/E;AAED,gEAAgE;AAChE,wBAAsB,2BAA2B,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGxF;AAED,wBAAsB,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAS5F"}
@@ -120,6 +120,70 @@ export async function upsertHookConfig(opts) {
120
120
  export function hasAnyPraxisHookEntry(config) {
121
121
  return hasConfiguredHook(config) || hasConfiguredBeforeMcpHook(config);
122
122
  }
123
+ function isPraxisShellHookEntry(entry) {
124
+ if (!entry || typeof entry !== "object")
125
+ return false;
126
+ const command = entry.command;
127
+ return (command === HOOK_COMMAND_SHELL ||
128
+ isNativeHookCommand(command, "before-shell") ||
129
+ isLegacyShellHookCommand(command));
130
+ }
131
+ function isPraxisMcpHookEntry(entry) {
132
+ if (!entry || typeof entry !== "object")
133
+ return false;
134
+ const command = entry.command;
135
+ return (command === HOOK_COMMAND_MCP ||
136
+ isNativeHookCommand(command, "before-mcp") ||
137
+ isLegacyMcpHookCommand(command));
138
+ }
139
+ /** Drop entries matching `isOurs` from `hooks[key]`; delete the key when emptied. */
140
+ function stripHookArray(hooks, key, isOurs) {
141
+ if (!Array.isArray(hooks[key]))
142
+ return;
143
+ const filtered = hooks[key].filter((entry) => !isOurs(entry));
144
+ if (filtered.length === 0)
145
+ delete hooks[key];
146
+ else
147
+ hooks[key] = filtered;
148
+ }
149
+ /**
150
+ * Remove Praxis hook entries (current, native, and legacy variants) from a
151
+ * Cursor hooks.json. Strips matching beforeShellExecution / beforeMCPExecution
152
+ * entries, prunes emptied arrays, and prunes the `hooks` object if empty. The
153
+ * file itself is left in place (it is shared with the user's own hooks) — a
154
+ * residual `{ "version": 1 }` is inert.
155
+ */
156
+ export async function removeHookConfig(opts) {
157
+ const dryRun = opts.dryRun ?? false;
158
+ const hooksPath = resolveHooksConfigPath(opts);
159
+ const existing = await readJson(hooksPath);
160
+ if (!existing) {
161
+ return { path: hooksPath, changed: false, message: "no hooks config to remove" };
162
+ }
163
+ const beforeJson = JSON.stringify(existing);
164
+ const config = cloneJsonMap(existing);
165
+ const hooks = config.hooks && typeof config.hooks === "object" && !Array.isArray(config.hooks)
166
+ ? config.hooks
167
+ : null;
168
+ if (hooks) {
169
+ stripHookArray(hooks, "beforeShellExecution", isPraxisShellHookEntry);
170
+ stripHookArray(hooks, "beforeMCPExecution", isPraxisMcpHookEntry);
171
+ if (Object.keys(hooks).length === 0)
172
+ delete config.hooks;
173
+ }
174
+ const changed = beforeJson !== JSON.stringify(config);
175
+ if (changed && !dryRun)
176
+ await writeJson(hooksPath, config);
177
+ return {
178
+ path: hooksPath,
179
+ changed,
180
+ message: changed
181
+ ? dryRun
182
+ ? "would remove hooks config"
183
+ : "removed hooks config"
184
+ : "no hooks config to remove",
185
+ };
186
+ }
123
187
  export async function readHooksStatusAt(hooksPath) {
124
188
  const config = await readJson(hooksPath).catch(() => null);
125
189
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"hooks-config.js","sourceRoot":"","sources":["../../../src/cli/cursor-config/hooks-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks-config.js","sourceRoot":"","sources":["../../../src/cli/cursor-config/hooks-config.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ export type { HookConfigScope, JsonMap, SetupResult, UpsertHookConfigOptions, }
2
2
  export { referencesGuardMcp, scanHooksForLegacyGuardMcp, scanMcpForLegacyGuardMcp } from "./legacy-guard-mcp.js";
3
3
  export { readJson } from "./json-io.js";
4
4
  export { resolveEnvironmentJsonPath, resolveHooksConfigPath, resolveProjectHooksPath, resolveUserHooksPath, resolveUserMcpConfigPath, } from "./paths.js";
5
- export { duplicatePraxisHooksWarning, hasConfiguredBeforeMcpHook, hasConfiguredHook, hasAnyPraxisHookEntry, readBeforeMcpHookConfigured, readGlobalHooksConfigured, readHookConfigured, readHooksStatusAt, readProjectHooksConfigured, upsertHookConfig, } from "./hooks-config.js";
6
- export { hasConfiguredMcpServer, readMcpConfigured, upsertMcpConfig } from "./mcp-config.js";
7
- export { detectInstallCommand, detectMonorepoGuardInstallCommand, hasConfiguredEnvironment, readEnvironmentConfigured, upsertEnvironmentConfig, } from "./environment-config.js";
5
+ export { duplicatePraxisHooksWarning, hasConfiguredBeforeMcpHook, hasConfiguredHook, hasAnyPraxisHookEntry, readBeforeMcpHookConfigured, readGlobalHooksConfigured, readHookConfigured, readHooksStatusAt, readProjectHooksConfigured, removeHookConfig, upsertHookConfig, } from "./hooks-config.js";
6
+ export { hasConfiguredMcpServer, readMcpConfigured, removeMcpConfig, upsertMcpConfig, } from "./mcp-config.js";
7
+ export { detectInstallCommand, detectMonorepoGuardInstallCommand, hasConfiguredEnvironment, readEnvironmentConfigured, removeEnvironmentConfig, upsertEnvironmentConfig, } from "./environment-config.js";
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/cursor-config/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,eAAe,EACf,OAAO,EACP,WAAW,EACX,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEjH,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,iBAAiB,EACjB,qBAAqB,EACrB,2BAA2B,EAC3B,yBAAyB,EACzB,kBAAkB,EAClB,iBAAiB,EACjB,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAE7F,OAAO,EACL,oBAAoB,EACpB,iCAAiC,EACjC,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/cursor-config/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,eAAe,EACf,OAAO,EACP,WAAW,EACX,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEjH,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,iBAAiB,EACjB,qBAAqB,EACrB,2BAA2B,EAC3B,yBAAyB,EACzB,kBAAkB,EAClB,iBAAiB,EACjB,0BAA0B,EAC1B,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,oBAAoB,EACpB,iCAAiC,EACjC,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  export { referencesGuardMcp, scanHooksForLegacyGuardMcp, scanMcpForLegacyGuardMcp } from "./legacy-guard-mcp.js";
2
2
  export { readJson } from "./json-io.js";
3
3
  export { resolveEnvironmentJsonPath, resolveHooksConfigPath, resolveProjectHooksPath, resolveUserHooksPath, resolveUserMcpConfigPath, } from "./paths.js";
4
- export { duplicatePraxisHooksWarning, hasConfiguredBeforeMcpHook, hasConfiguredHook, hasAnyPraxisHookEntry, readBeforeMcpHookConfigured, readGlobalHooksConfigured, readHookConfigured, readHooksStatusAt, readProjectHooksConfigured, upsertHookConfig, } from "./hooks-config.js";
5
- export { hasConfiguredMcpServer, readMcpConfigured, upsertMcpConfig } from "./mcp-config.js";
6
- export { detectInstallCommand, detectMonorepoGuardInstallCommand, hasConfiguredEnvironment, readEnvironmentConfigured, upsertEnvironmentConfig, } from "./environment-config.js";
4
+ export { duplicatePraxisHooksWarning, hasConfiguredBeforeMcpHook, hasConfiguredHook, hasAnyPraxisHookEntry, readBeforeMcpHookConfigured, readGlobalHooksConfigured, readHookConfigured, readHooksStatusAt, readProjectHooksConfigured, removeHookConfig, upsertHookConfig, } from "./hooks-config.js";
5
+ export { hasConfiguredMcpServer, readMcpConfigured, removeMcpConfig, upsertMcpConfig, } from "./mcp-config.js";
6
+ export { detectInstallCommand, detectMonorepoGuardInstallCommand, hasConfiguredEnvironment, readEnvironmentConfigured, removeEnvironmentConfig, upsertEnvironmentConfig, } from "./environment-config.js";
7
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/cursor-config/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEjH,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,iBAAiB,EACjB,qBAAqB,EACrB,2BAA2B,EAC3B,yBAAyB,EACzB,kBAAkB,EAClB,iBAAiB,EACjB,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAE7F,OAAO,EACL,oBAAoB,EACpB,iCAAiC,EACjC,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/cursor-config/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEjH,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,iBAAiB,EACjB,qBAAqB,EACrB,2BAA2B,EAC3B,yBAAyB,EACzB,kBAAkB,EAClB,iBAAiB,EACjB,0BAA0B,EAC1B,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,oBAAoB,EACpB,iCAAiC,EACjC,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC"}
@@ -2,4 +2,6 @@ import type { JsonMap } from "./types.js";
2
2
  export declare function readJson(pathname: string): Promise<JsonMap | null>;
3
3
  export declare function writeJson(pathname: string, data: JsonMap): Promise<void>;
4
4
  export declare function cloneJsonMap(existing: JsonMap | null): JsonMap;
5
+ /** Force-remove a file if present; never throws on ENOENT. */
6
+ export declare function removeFile(pathname: string): Promise<void>;
5
7
  //# sourceMappingURL=json-io.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"json-io.d.ts","sourceRoot":"","sources":["../../../src/cli/cursor-config/json-io.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAmBxE;AAED,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAG9E;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAG9D"}
1
+ {"version":3,"file":"json-io.d.ts","sourceRoot":"","sources":["../../../src/cli/cursor-config/json-io.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAmBxE;AAED,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAG9E;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAG9D;AAED,8DAA8D;AAC9D,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhE"}
@@ -1,4 +1,4 @@
1
- import { mkdir, readFile, writeFile } from "node:fs/promises";
1
+ import { mkdir, readFile, rm, writeFile } from "node:fs/promises";
2
2
  import path from "node:path";
3
3
  export async function readJson(pathname) {
4
4
  try {
@@ -29,4 +29,8 @@ export function cloneJsonMap(existing) {
29
29
  return {};
30
30
  return JSON.parse(JSON.stringify(existing));
31
31
  }
32
+ /** Force-remove a file if present; never throws on ENOENT. */
33
+ export async function removeFile(pathname) {
34
+ await rm(pathname, { force: true });
35
+ }
32
36
  //# sourceMappingURL=json-io.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"json-io.js","sourceRoot":"","sources":["../../../src/cli/cursor-config/json-io.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,QAAgB;IAC7C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,MAAiB,CAAC;IAC3B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvD,IAAK,CAA2B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAChE,MAAM,IAAI,KAAK,CACb;YACE,mBAAmB,QAAQ,KAAK,GAAG,EAAE;YACrC,sCAAsC;YACtC,6DAA6D;SAC9D,CAAC,IAAI,CAAC,GAAG,CAAC,CACZ,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAgB,EAAE,IAAa;IAC7D,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,MAAM,SAAS,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAAwB;IACnD,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IACzB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAY,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"json-io.js","sourceRoot":"","sources":["../../../src/cli/cursor-config/json-io.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,QAAgB;IAC7C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,MAAiB,CAAC;IAC3B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvD,IAAK,CAA2B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAChE,MAAM,IAAI,KAAK,CACb;YACE,mBAAmB,QAAQ,KAAK,GAAG,EAAE;YACrC,sCAAsC;YACtC,6DAA6D;SAC9D,CAAC,IAAI,CAAC,GAAG,CAAC,CACZ,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAgB,EAAE,IAAa;IAC7D,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,MAAM,SAAS,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAAwB;IACnD,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IACzB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAY,CAAC;AACzD,CAAC;AAED,8DAA8D;AAC9D,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC/C,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACtC,CAAC"}
@@ -2,4 +2,9 @@ import type { JsonMap, SetupResult } from "./types.js";
2
2
  export declare function hasConfiguredMcpServer(config: JsonMap | null): boolean;
3
3
  export declare function upsertMcpConfig(explicitPath?: string, dryRun?: boolean, nativeDaemon?: boolean): Promise<SetupResult>;
4
4
  export declare function readMcpConfigured(explicitPath?: string): Promise<boolean>;
5
+ /**
6
+ * Remove the Praxis MCP server (and any legacy guard-mcp variants) from
7
+ * ~/.cursor/mcp.json. Prunes the mcpServers object if it becomes empty.
8
+ */
9
+ export declare function removeMcpConfig(explicitPath?: string, dryRun?: boolean): Promise<SetupResult>;
5
10
  //# sourceMappingURL=mcp-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-config.d.ts","sourceRoot":"","sources":["../../../src/cli/cursor-config/mcp-config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEvD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAQtE;AAcD,wBAAsB,eAAe,CACnC,YAAY,CAAC,EAAE,MAAM,EACrB,MAAM,UAAQ,EACd,YAAY,UAAQ,GACnB,OAAO,CAAC,WAAW,CAAC,CAoCtB;AAED,wBAAsB,iBAAiB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG/E"}
1
+ {"version":3,"file":"mcp-config.d.ts","sourceRoot":"","sources":["../../../src/cli/cursor-config/mcp-config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEvD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAQtE;AAcD,wBAAsB,eAAe,CACnC,YAAY,CAAC,EAAE,MAAM,EACrB,MAAM,UAAQ,EACd,YAAY,UAAQ,GACnB,OAAO,CAAC,WAAW,CAAC,CAoCtB;AAED,wBAAsB,iBAAiB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG/E;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,MAAM,UAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAgCjG"}