@xenosystem/acp-agent 0.1.1

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 (268) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +9 -0
  3. package/README.md +22 -0
  4. package/dist/acpAgentServer.d.ts +43 -0
  5. package/dist/acpAgentServer.d.ts.map +1 -0
  6. package/dist/acpAgentServer.js +450 -0
  7. package/dist/acpAgentServer.js.map +1 -0
  8. package/dist/adapters/adapterContractVersion.d.ts +24 -0
  9. package/dist/adapters/adapterContractVersion.d.ts.map +1 -0
  10. package/dist/adapters/adapterContractVersion.js +29 -0
  11. package/dist/adapters/adapterContractVersion.js.map +1 -0
  12. package/dist/adapters/adapterDiagnostics.d.ts +19 -0
  13. package/dist/adapters/adapterDiagnostics.d.ts.map +1 -0
  14. package/dist/adapters/adapterDiagnostics.js +18 -0
  15. package/dist/adapters/adapterDiagnostics.js.map +1 -0
  16. package/dist/adapters/adapterErrors.d.ts +19 -0
  17. package/dist/adapters/adapterErrors.d.ts.map +1 -0
  18. package/dist/adapters/adapterErrors.js +23 -0
  19. package/dist/adapters/adapterErrors.js.map +1 -0
  20. package/dist/adapters/adapterEventMapper.d.ts +22 -0
  21. package/dist/adapters/adapterEventMapper.d.ts.map +1 -0
  22. package/dist/adapters/adapterEventMapper.js +70 -0
  23. package/dist/adapters/adapterEventMapper.js.map +1 -0
  24. package/dist/adapters/adapterEventParser.d.ts +16 -0
  25. package/dist/adapters/adapterEventParser.d.ts.map +1 -0
  26. package/dist/adapters/adapterEventParser.js +95 -0
  27. package/dist/adapters/adapterEventParser.js.map +1 -0
  28. package/dist/adapters/adapterEventProtocol.d.ts +85 -0
  29. package/dist/adapters/adapterEventProtocol.d.ts.map +1 -0
  30. package/dist/adapters/adapterEventProtocol.js +74 -0
  31. package/dist/adapters/adapterEventProtocol.js.map +1 -0
  32. package/dist/adapters/adapterFailureTaxonomy.d.ts +19 -0
  33. package/dist/adapters/adapterFailureTaxonomy.d.ts.map +1 -0
  34. package/dist/adapters/adapterFailureTaxonomy.js +62 -0
  35. package/dist/adapters/adapterFailureTaxonomy.js.map +1 -0
  36. package/dist/adapters/adapterHarnessTypes.d.ts +103 -0
  37. package/dist/adapters/adapterHarnessTypes.d.ts.map +1 -0
  38. package/dist/adapters/adapterHarnessTypes.js +15 -0
  39. package/dist/adapters/adapterHarnessTypes.js.map +1 -0
  40. package/dist/adapters/adapterProcessHarness.d.ts +23 -0
  41. package/dist/adapters/adapterProcessHarness.d.ts.map +1 -0
  42. package/dist/adapters/adapterProcessHarness.js +235 -0
  43. package/dist/adapters/adapterProcessHarness.js.map +1 -0
  44. package/dist/adapters/providerContractTypes.d.ts +64 -0
  45. package/dist/adapters/providerContractTypes.d.ts.map +1 -0
  46. package/dist/adapters/providerContractTypes.js +79 -0
  47. package/dist/adapters/providerContractTypes.js.map +1 -0
  48. package/dist/adapters/testAdapterProvider.d.ts +19 -0
  49. package/dist/adapters/testAdapterProvider.d.ts.map +1 -0
  50. package/dist/adapters/testAdapterProvider.js +95 -0
  51. package/dist/adapters/testAdapterProvider.js.map +1 -0
  52. package/dist/cli.d.ts +16 -0
  53. package/dist/cli.d.ts.map +1 -0
  54. package/dist/cli.js +1059 -0
  55. package/dist/cli.js.map +1 -0
  56. package/dist/config/providerApprovalStore.d.ts +39 -0
  57. package/dist/config/providerApprovalStore.d.ts.map +1 -0
  58. package/dist/config/providerApprovalStore.js +87 -0
  59. package/dist/config/providerApprovalStore.js.map +1 -0
  60. package/dist/config/providerApprovalTypes.d.ts +30 -0
  61. package/dist/config/providerApprovalTypes.d.ts.map +1 -0
  62. package/dist/config/providerApprovalTypes.js +11 -0
  63. package/dist/config/providerApprovalTypes.js.map +1 -0
  64. package/dist/config/providerPolicyConfig.d.ts +31 -0
  65. package/dist/config/providerPolicyConfig.d.ts.map +1 -0
  66. package/dist/config/providerPolicyConfig.js +111 -0
  67. package/dist/config/providerPolicyConfig.js.map +1 -0
  68. package/dist/config/providerPolicyDiagnostics.d.ts +49 -0
  69. package/dist/config/providerPolicyDiagnostics.d.ts.map +1 -0
  70. package/dist/config/providerPolicyDiagnostics.js +76 -0
  71. package/dist/config/providerPolicyDiagnostics.js.map +1 -0
  72. package/dist/config/providerPolicyHash.d.ts +14 -0
  73. package/dist/config/providerPolicyHash.d.ts.map +1 -0
  74. package/dist/config/providerPolicyHash.js +65 -0
  75. package/dist/config/providerPolicyHash.js.map +1 -0
  76. package/dist/config/providerPolicySchema.d.ts +32 -0
  77. package/dist/config/providerPolicySchema.d.ts.map +1 -0
  78. package/dist/config/providerPolicySchema.js +130 -0
  79. package/dist/config/providerPolicySchema.js.map +1 -0
  80. package/dist/config/providerRunnability.d.ts +36 -0
  81. package/dist/config/providerRunnability.d.ts.map +1 -0
  82. package/dist/config/providerRunnability.js +72 -0
  83. package/dist/config/providerRunnability.js.map +1 -0
  84. package/dist/errors.d.ts +31 -0
  85. package/dist/errors.d.ts.map +1 -0
  86. package/dist/errors.js +45 -0
  87. package/dist/errors.js.map +1 -0
  88. package/dist/index.d.ts +79 -0
  89. package/dist/index.d.ts.map +1 -0
  90. package/dist/index.js +83 -0
  91. package/dist/index.js.map +1 -0
  92. package/dist/process/providerProcessAudit.d.ts +14 -0
  93. package/dist/process/providerProcessAudit.d.ts.map +1 -0
  94. package/dist/process/providerProcessAudit.js +27 -0
  95. package/dist/process/providerProcessAudit.js.map +1 -0
  96. package/dist/process/providerProcessDiagnostics.d.ts +30 -0
  97. package/dist/process/providerProcessDiagnostics.d.ts.map +1 -0
  98. package/dist/process/providerProcessDiagnostics.js +51 -0
  99. package/dist/process/providerProcessDiagnostics.js.map +1 -0
  100. package/dist/process/providerProcessEnvironment.d.ts +29 -0
  101. package/dist/process/providerProcessEnvironment.d.ts.map +1 -0
  102. package/dist/process/providerProcessEnvironment.js +37 -0
  103. package/dist/process/providerProcessEnvironment.js.map +1 -0
  104. package/dist/process/providerProcessErrors.d.ts +21 -0
  105. package/dist/process/providerProcessErrors.d.ts.map +1 -0
  106. package/dist/process/providerProcessErrors.js +25 -0
  107. package/dist/process/providerProcessErrors.js.map +1 -0
  108. package/dist/process/providerProcessOutput.d.ts +24 -0
  109. package/dist/process/providerProcessOutput.d.ts.map +1 -0
  110. package/dist/process/providerProcessOutput.js +52 -0
  111. package/dist/process/providerProcessOutput.js.map +1 -0
  112. package/dist/process/providerProcessSupervisor.d.ts +40 -0
  113. package/dist/process/providerProcessSupervisor.d.ts.map +1 -0
  114. package/dist/process/providerProcessSupervisor.js +305 -0
  115. package/dist/process/providerProcessSupervisor.js.map +1 -0
  116. package/dist/process/providerProcessTypes.d.ts +114 -0
  117. package/dist/process/providerProcessTypes.d.ts.map +1 -0
  118. package/dist/process/providerProcessTypes.js +30 -0
  119. package/dist/process/providerProcessTypes.js.map +1 -0
  120. package/dist/process/providerProcessValidation.d.ts +26 -0
  121. package/dist/process/providerProcessValidation.d.ts.map +1 -0
  122. package/dist/process/providerProcessValidation.js +112 -0
  123. package/dist/process/providerProcessValidation.js.map +1 -0
  124. package/dist/process/providerProcessWorkspace.d.ts +38 -0
  125. package/dist/process/providerProcessWorkspace.d.ts.map +1 -0
  126. package/dist/process/providerProcessWorkspace.js +86 -0
  127. package/dist/process/providerProcessWorkspace.js.map +1 -0
  128. package/dist/providers/claudeLocalProvider.d.ts +68 -0
  129. package/dist/providers/claudeLocalProvider.d.ts.map +1 -0
  130. package/dist/providers/claudeLocalProvider.js +217 -0
  131. package/dist/providers/claudeLocalProvider.js.map +1 -0
  132. package/dist/providers/claudeStreamJsonParser.d.ts +39 -0
  133. package/dist/providers/claudeStreamJsonParser.d.ts.map +1 -0
  134. package/dist/providers/claudeStreamJsonParser.js +180 -0
  135. package/dist/providers/claudeStreamJsonParser.js.map +1 -0
  136. package/dist/providers/codexExecJsonParser.d.ts +38 -0
  137. package/dist/providers/codexExecJsonParser.d.ts.map +1 -0
  138. package/dist/providers/codexExecJsonParser.js +245 -0
  139. package/dist/providers/codexExecJsonParser.js.map +1 -0
  140. package/dist/providers/codexLocalProvider.d.ts +46 -0
  141. package/dist/providers/codexLocalProvider.d.ts.map +1 -0
  142. package/dist/providers/codexLocalProvider.js +430 -0
  143. package/dist/providers/codexLocalProvider.js.map +1 -0
  144. package/dist/providers/codexModelCatalog.d.ts +13 -0
  145. package/dist/providers/codexModelCatalog.d.ts.map +1 -0
  146. package/dist/providers/codexModelCatalog.js +133 -0
  147. package/dist/providers/codexModelCatalog.js.map +1 -0
  148. package/dist/providers/fixtureProvider.d.ts +14 -0
  149. package/dist/providers/fixtureProvider.d.ts.map +1 -0
  150. package/dist/providers/fixtureProvider.js +160 -0
  151. package/dist/providers/fixtureProvider.js.map +1 -0
  152. package/dist/providers/providerDiscovery.d.ts +24 -0
  153. package/dist/providers/providerDiscovery.d.ts.map +1 -0
  154. package/dist/providers/providerDiscovery.js +128 -0
  155. package/dist/providers/providerDiscovery.js.map +1 -0
  156. package/dist/providers/providerErrors.d.ts +64 -0
  157. package/dist/providers/providerErrors.d.ts.map +1 -0
  158. package/dist/providers/providerErrors.js +101 -0
  159. package/dist/providers/providerErrors.js.map +1 -0
  160. package/dist/providers/providerEvents.d.ts +63 -0
  161. package/dist/providers/providerEvents.d.ts.map +1 -0
  162. package/dist/providers/providerEvents.js +86 -0
  163. package/dist/providers/providerEvents.js.map +1 -0
  164. package/dist/providers/providerRegistry.d.ts +31 -0
  165. package/dist/providers/providerRegistry.d.ts.map +1 -0
  166. package/dist/providers/providerRegistry.js +234 -0
  167. package/dist/providers/providerRegistry.js.map +1 -0
  168. package/dist/providers/providerSafety.d.ts +17 -0
  169. package/dist/providers/providerSafety.d.ts.map +1 -0
  170. package/dist/providers/providerSafety.js +36 -0
  171. package/dist/providers/providerSafety.js.map +1 -0
  172. package/dist/providers/providerTypes.d.ts +212 -0
  173. package/dist/providers/providerTypes.d.ts.map +1 -0
  174. package/dist/providers/providerTypes.js +15 -0
  175. package/dist/providers/providerTypes.js.map +1 -0
  176. package/dist/providers/xenoLocalProvider.d.ts +35 -0
  177. package/dist/providers/xenoLocalProvider.d.ts.map +1 -0
  178. package/dist/providers/xenoLocalProvider.js +159 -0
  179. package/dist/providers/xenoLocalProvider.js.map +1 -0
  180. package/dist/sandbox/providerSandbox.d.ts +35 -0
  181. package/dist/sandbox/providerSandbox.d.ts.map +1 -0
  182. package/dist/sandbox/providerSandbox.js +93 -0
  183. package/dist/sandbox/providerSandbox.js.map +1 -0
  184. package/dist/sandbox/providerSandboxAudit.d.ts +12 -0
  185. package/dist/sandbox/providerSandboxAudit.d.ts.map +1 -0
  186. package/dist/sandbox/providerSandboxAudit.js +25 -0
  187. package/dist/sandbox/providerSandboxAudit.js.map +1 -0
  188. package/dist/sandbox/providerSandboxDiagnostics.d.ts +13 -0
  189. package/dist/sandbox/providerSandboxDiagnostics.d.ts.map +1 -0
  190. package/dist/sandbox/providerSandboxDiagnostics.js +28 -0
  191. package/dist/sandbox/providerSandboxDiagnostics.js.map +1 -0
  192. package/dist/sandbox/providerSandboxTypes.d.ts +138 -0
  193. package/dist/sandbox/providerSandboxTypes.d.ts.map +1 -0
  194. package/dist/sandbox/providerSandboxTypes.js +17 -0
  195. package/dist/sandbox/providerSandboxTypes.js.map +1 -0
  196. package/dist/sandbox/sandboxCancellation.d.ts +6 -0
  197. package/dist/sandbox/sandboxCancellation.d.ts.map +1 -0
  198. package/dist/sandbox/sandboxCancellation.js +24 -0
  199. package/dist/sandbox/sandboxCancellation.js.map +1 -0
  200. package/dist/sandbox/sandboxErrors.d.ts +17 -0
  201. package/dist/sandbox/sandboxErrors.d.ts.map +1 -0
  202. package/dist/sandbox/sandboxErrors.js +21 -0
  203. package/dist/sandbox/sandboxErrors.js.map +1 -0
  204. package/dist/sandbox/sandboxFilesystem.d.ts +14 -0
  205. package/dist/sandbox/sandboxFilesystem.d.ts.map +1 -0
  206. package/dist/sandbox/sandboxFilesystem.js +51 -0
  207. package/dist/sandbox/sandboxFilesystem.js.map +1 -0
  208. package/dist/sandbox/sandboxNetwork.d.ts +14 -0
  209. package/dist/sandbox/sandboxNetwork.d.ts.map +1 -0
  210. package/dist/sandbox/sandboxNetwork.js +60 -0
  211. package/dist/sandbox/sandboxNetwork.js.map +1 -0
  212. package/dist/sandbox/sandboxSecrets.d.ts +17 -0
  213. package/dist/sandbox/sandboxSecrets.d.ts.map +1 -0
  214. package/dist/sandbox/sandboxSecrets.js +61 -0
  215. package/dist/sandbox/sandboxSecrets.js.map +1 -0
  216. package/dist/sandbox/sandboxTerminal.d.ts +14 -0
  217. package/dist/sandbox/sandboxTerminal.d.ts.map +1 -0
  218. package/dist/sandbox/sandboxTerminal.js +32 -0
  219. package/dist/sandbox/sandboxTerminal.js.map +1 -0
  220. package/dist/security/authPolicy.d.ts +31 -0
  221. package/dist/security/authPolicy.d.ts.map +1 -0
  222. package/dist/security/authPolicy.js +72 -0
  223. package/dist/security/authPolicy.js.map +1 -0
  224. package/dist/security/capabilityGate.d.ts +16 -0
  225. package/dist/security/capabilityGate.d.ts.map +1 -0
  226. package/dist/security/capabilityGate.js +101 -0
  227. package/dist/security/capabilityGate.js.map +1 -0
  228. package/dist/security/egressPolicy.d.ts +31 -0
  229. package/dist/security/egressPolicy.d.ts.map +1 -0
  230. package/dist/security/egressPolicy.js +120 -0
  231. package/dist/security/egressPolicy.js.map +1 -0
  232. package/dist/security/redaction.d.ts +16 -0
  233. package/dist/security/redaction.d.ts.map +1 -0
  234. package/dist/security/redaction.js +65 -0
  235. package/dist/security/redaction.js.map +1 -0
  236. package/dist/security/secretBinding.d.ts +34 -0
  237. package/dist/security/secretBinding.d.ts.map +1 -0
  238. package/dist/security/secretBinding.js +66 -0
  239. package/dist/security/secretBinding.js.map +1 -0
  240. package/dist/security/secretStore.d.ts +37 -0
  241. package/dist/security/secretStore.d.ts.map +1 -0
  242. package/dist/security/secretStore.js +55 -0
  243. package/dist/security/secretStore.js.map +1 -0
  244. package/dist/security/securityDiagnostics.d.ts +39 -0
  245. package/dist/security/securityDiagnostics.d.ts.map +1 -0
  246. package/dist/security/securityDiagnostics.js +36 -0
  247. package/dist/security/securityDiagnostics.js.map +1 -0
  248. package/dist/security/securityTypes.d.ts +77 -0
  249. package/dist/security/securityTypes.d.ts.map +1 -0
  250. package/dist/security/securityTypes.js +17 -0
  251. package/dist/security/securityTypes.js.map +1 -0
  252. package/dist/sessionStore.d.ts +33 -0
  253. package/dist/sessionStore.d.ts.map +1 -0
  254. package/dist/sessionStore.js +42 -0
  255. package/dist/sessionStore.js.map +1 -0
  256. package/dist/stdioJsonRpc.d.ts +43 -0
  257. package/dist/stdioJsonRpc.d.ts.map +1 -0
  258. package/dist/stdioJsonRpc.js +219 -0
  259. package/dist/stdioJsonRpc.js.map +1 -0
  260. package/dist/types.d.ts +78 -0
  261. package/dist/types.d.ts.map +1 -0
  262. package/dist/types.js +12 -0
  263. package/dist/types.js.map +1 -0
  264. package/dist/version.d.ts +7 -0
  265. package/dist/version.d.ts.map +1 -0
  266. package/dist/version.js +7 -0
  267. package/dist/version.js.map +1 -0
  268. package/package.json +55 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Local manual-approval store (XACP-007).
3
+ *
4
+ * SCOPED FILESYSTEM EXCEPTION: this is the ONE module in `@xenosystem/acp-agent` permitted to write
5
+ * to disk (a small local approvals.json) — and it is invoked only by the human-driven
6
+ * `providers approve/revoke` CLI commands, NEVER by the ACP agent runtime (the endpoint keeps
7
+ * its zero-I/O-during-ACP property). It stores only hashes + metadata; never secrets.
8
+ *
9
+ * The security scan allowlists fs-mutation in THIS file specifically (see security-scan.mjs).
10
+ */
11
+ import type { ProviderApprovalRecord } from "./providerApprovalTypes.js";
12
+ export interface ApprovalDecisionInput {
13
+ auth: "approved" | "not_applicable";
14
+ egress: "approved" | "not_applicable";
15
+ io: "approved" | "not_applicable";
16
+ runtime: "approved" | "not_applicable";
17
+ }
18
+ export declare function createApprovalRecord(opts: {
19
+ providerId: string;
20
+ providerDefinitionHash: string;
21
+ policyHash: string;
22
+ decisions: ApprovalDecisionInput;
23
+ approvedAt: string;
24
+ notes?: string;
25
+ }): ProviderApprovalRecord;
26
+ export declare class ProviderApprovalStore {
27
+ private readonly filePath;
28
+ private records;
29
+ /** True if the on-disk file was missing or corrupt at load time. */
30
+ repaired: boolean;
31
+ constructor(filePath: string);
32
+ private load;
33
+ list(): ProviderApprovalRecord[];
34
+ get(providerId: string): ProviderApprovalRecord | undefined;
35
+ approve(record: ProviderApprovalRecord): void;
36
+ revoke(providerId: string): boolean;
37
+ private save;
38
+ }
39
+ //# sourceMappingURL=providerApprovalStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providerApprovalStore.d.ts","sourceRoot":"","sources":["../../src/config/providerApprovalStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,KAAK,EAAE,sBAAsB,EAAqB,MAAM,4BAA4B,CAAC;AAE5F,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,UAAU,GAAG,gBAAgB,CAAC;IACpC,MAAM,EAAE,UAAU,GAAG,gBAAgB,CAAC;IACtC,EAAE,EAAE,UAAU,GAAG,gBAAgB,CAAC;IAClC,OAAO,EAAE,UAAU,GAAG,gBAAgB,CAAC;CACxC;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,qBAAqB,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,sBAAsB,CAiBzB;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,OAAO,CAA6C;IAC5D,oEAAoE;IACpE,QAAQ,UAAS;gBAEL,QAAQ,EAAE,MAAM;IAK5B,OAAO,CAAC,IAAI;IAsBZ,IAAI,IAAI,sBAAsB,EAAE;IAGhC,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS;IAI3D,OAAO,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI;IAK7C,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAMnC,OAAO,CAAC,IAAI;CAOb"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Local manual-approval store (XACP-007).
3
+ *
4
+ * SCOPED FILESYSTEM EXCEPTION: this is the ONE module in `@xenosystem/acp-agent` permitted to write
5
+ * to disk (a small local approvals.json) — and it is invoked only by the human-driven
6
+ * `providers approve/revoke` CLI commands, NEVER by the ACP agent runtime (the endpoint keeps
7
+ * its zero-I/O-during-ACP property). It stores only hashes + metadata; never secrets.
8
+ *
9
+ * The security scan allowlists fs-mutation in THIS file specifically (see security-scan.mjs).
10
+ */
11
+ import { createHash } from "node:crypto";
12
+ import { existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from "node:fs";
13
+ import { dirname } from "node:path";
14
+ export function createApprovalRecord(opts) {
15
+ const approvalId = "appr-" +
16
+ opts.providerId +
17
+ "-" +
18
+ createHash("sha256").update(opts.providerDefinitionHash + ":" + opts.policyHash).digest("hex").slice(0, 12);
19
+ return {
20
+ providerId: opts.providerId,
21
+ approvalId,
22
+ approvedAt: opts.approvedAt,
23
+ approvedBy: "local-user",
24
+ policyHash: opts.policyHash,
25
+ providerDefinitionHash: opts.providerDefinitionHash,
26
+ scope: "local",
27
+ decisions: { ...opts.decisions },
28
+ ...(opts.notes ? { notes: opts.notes } : {}),
29
+ };
30
+ }
31
+ export class ProviderApprovalStore {
32
+ filePath;
33
+ records = new Map();
34
+ /** True if the on-disk file was missing or corrupt at load time. */
35
+ repaired = false;
36
+ constructor(filePath) {
37
+ this.filePath = filePath;
38
+ this.load();
39
+ }
40
+ load() {
41
+ if (!existsSync(this.filePath)) {
42
+ this.repaired = false;
43
+ return;
44
+ }
45
+ try {
46
+ const parsed = JSON.parse(readFileSync(this.filePath, "utf8"));
47
+ if (!parsed || parsed.version !== 1 || !Array.isArray(parsed.approvals)) {
48
+ throw new Error("invalid approval store shape");
49
+ }
50
+ for (const r of parsed.approvals) {
51
+ if (r && typeof r.providerId === "string")
52
+ this.records.set(r.providerId, r);
53
+ }
54
+ this.repaired = false;
55
+ }
56
+ catch {
57
+ // Fail safe: start empty and flag for repair, WITHOUT writing during load (the ACP agent
58
+ // path must never mutate the filesystem). A subsequent `save()` overwrites cleanly.
59
+ this.repaired = true;
60
+ this.records.clear();
61
+ }
62
+ }
63
+ list() {
64
+ return [...this.records.values()];
65
+ }
66
+ get(providerId) {
67
+ return this.records.get(providerId);
68
+ }
69
+ approve(record) {
70
+ this.records.set(record.providerId, record);
71
+ this.save();
72
+ }
73
+ revoke(providerId) {
74
+ const had = this.records.delete(providerId);
75
+ if (had)
76
+ this.save();
77
+ return had;
78
+ }
79
+ save() {
80
+ const file = { version: 1, approvals: this.list() };
81
+ mkdirSync(dirname(this.filePath), { recursive: true });
82
+ const tmp = `${this.filePath}.tmp`;
83
+ writeFileSync(tmp, JSON.stringify(file, null, 2) + "\n", "utf8");
84
+ renameSync(tmp, this.filePath); // atomic replace
85
+ }
86
+ }
87
+ //# sourceMappingURL=providerApprovalStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providerApprovalStore.js","sourceRoot":"","sources":["../../src/config/providerApprovalStore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Manual approval record types (XACP-007).
3
+ *
4
+ * An approval ties a human's explicit local approval to a HASH of the provider definition and
5
+ * its policy. If either changes, the approval is stale. Records contain only hashes + metadata
6
+ * — never secret values, tokens, or credentials.
7
+ */
8
+ export type ApprovalDecision = "approved" | "not_applicable";
9
+ export interface ProviderApprovalRecord {
10
+ providerId: string;
11
+ approvalId: string;
12
+ approvedAt: string;
13
+ approvedBy: "local-user";
14
+ policyHash: string;
15
+ providerDefinitionHash: string;
16
+ scope: "local";
17
+ decisions: {
18
+ auth: ApprovalDecision;
19
+ egress: ApprovalDecision;
20
+ io: ApprovalDecision;
21
+ runtime: ApprovalDecision;
22
+ };
23
+ notes?: string;
24
+ }
25
+ export interface ApprovalStoreFile {
26
+ version: 1;
27
+ approvals: ProviderApprovalRecord[];
28
+ }
29
+ export declare function isApprovalCurrent(record: ProviderApprovalRecord, providerDefinitionHash: string, policyHash: string): boolean;
30
+ //# sourceMappingURL=providerApprovalTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providerApprovalTypes.d.ts","sourceRoot":"","sources":["../../src/config/providerApprovalTypes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,gBAAgB,CAAC;AAE7D,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,YAAY,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE;QACT,IAAI,EAAE,gBAAgB,CAAC;QACvB,MAAM,EAAE,gBAAgB,CAAC;QACzB,EAAE,EAAE,gBAAgB,CAAC;QACrB,OAAO,EAAE,gBAAgB,CAAC;KAC3B,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,CAAC,CAAC;IACX,SAAS,EAAE,sBAAsB,EAAE,CAAC;CACrC;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,sBAAsB,EAC9B,sBAAsB,EAAE,MAAM,EAC9B,UAAU,EAAE,MAAM,GACjB,OAAO,CAET"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Manual approval record types (XACP-007).
3
+ *
4
+ * An approval ties a human's explicit local approval to a HASH of the provider definition and
5
+ * its policy. If either changes, the approval is stale. Records contain only hashes + metadata
6
+ * — never secret values, tokens, or credentials.
7
+ */
8
+ export function isApprovalCurrent(record, providerDefinitionHash, policyHash) {
9
+ return record.providerDefinitionHash === providerDefinitionHash && record.policyHash === policyHash;
10
+ }
11
+ //# sourceMappingURL=providerApprovalTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providerApprovalTypes.js","sourceRoot":"","sources":["../../src/config/providerApprovalTypes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA0BH,MAAM,UAAU,iBAAiB,CAC/B,MAA8B,EAC9B,sBAA8B,EAC9B,UAAkB;IAElB,OAAO,MAAM,CAAC,sBAAsB,KAAK,sBAAsB,IAAI,MAAM,CAAC,UAAU,KAAK,UAAU,CAAC;AACtG,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Provider policy config loader (XACP-007).
3
+ *
4
+ * Resolves and parses a local provider policy config (JSONC), validates it strictly, and
5
+ * applies a policy entry onto a provider definition. Read-only: it never writes, never loads a
6
+ * secret, never reads `process.env` for auth, never calls the network. A missing config is safe
7
+ * and yields "fixture only".
8
+ */
9
+ import { type ProviderPolicyConfig, type ProviderPolicyEntry } from "./providerPolicySchema.js";
10
+ import type { ProviderDefinition } from "../providers/providerTypes.js";
11
+ export interface LoadPolicyConfigOptions {
12
+ path?: string;
13
+ cwd?: string;
14
+ }
15
+ export interface LoadedPolicyConfig {
16
+ ok: boolean;
17
+ config: ProviderPolicyConfig;
18
+ errors: string[];
19
+ source?: string;
20
+ }
21
+ /** Minimal JSONC comment stripper (string-aware). Zero-dependency. */
22
+ export declare function stripJsonc(input: string): string;
23
+ export declare function loadProviderPolicyConfig(opts?: LoadPolicyConfigOptions): LoadedPolicyConfig;
24
+ export declare function getPolicyEntry(config: ProviderPolicyConfig, id: string): ProviderPolicyEntry | undefined;
25
+ /**
26
+ * Merge a policy entry's posture onto a definition for evaluation. `enabled` (implementation
27
+ * status) ALWAYS comes from the definition — a config can never enable an unimplemented
28
+ * provider. Capabilities also stay from the definition.
29
+ */
30
+ export declare function applyPolicyToDefinition(def: ProviderDefinition, entry: ProviderPolicyEntry): ProviderDefinition;
31
+ //# sourceMappingURL=providerPolicyConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providerPolicyConfig.d.ts","sourceRoot":"","sources":["../../src/config/providerPolicyConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAExE,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,oBAAoB,CAAC;IAC7B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID,sEAAsE;AACtE,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAyChD;AAWD,wBAAgB,wBAAwB,CAAC,IAAI,GAAE,uBAA4B,GAAG,kBAAkB,CAsB/F;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,oBAAoB,EAAE,EAAE,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAExG;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,mBAAmB,GAAG,kBAAkB,CAS/G"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Provider policy config loader (XACP-007).
3
+ *
4
+ * Resolves and parses a local provider policy config (JSONC), validates it strictly, and
5
+ * applies a policy entry onto a provider definition. Read-only: it never writes, never loads a
6
+ * secret, never reads `process.env` for auth, never calls the network. A missing config is safe
7
+ * and yields "fixture only".
8
+ */
9
+ import { existsSync, readFileSync } from "node:fs";
10
+ import { join } from "node:path";
11
+ import { homedir } from "node:os";
12
+ import { validateProviderPolicyConfig, } from "./providerPolicySchema.js";
13
+ const EMPTY = { version: 1, providers: {} };
14
+ /** Minimal JSONC comment stripper (string-aware). Zero-dependency. */
15
+ export function stripJsonc(input) {
16
+ let out = "";
17
+ let i = 0;
18
+ const n = input.length;
19
+ let inStr = false;
20
+ let strCh = "";
21
+ while (i < n) {
22
+ const c = input[i];
23
+ const c2 = input[i + 1];
24
+ if (inStr) {
25
+ out += c;
26
+ if (c === "\\") {
27
+ out += input[i + 1] ?? "";
28
+ i += 2;
29
+ continue;
30
+ }
31
+ if (c === strCh)
32
+ inStr = false;
33
+ i++;
34
+ continue;
35
+ }
36
+ if (c === '"' || c === "'") {
37
+ inStr = true;
38
+ strCh = c;
39
+ out += c;
40
+ i++;
41
+ continue;
42
+ }
43
+ if (c === "/" && c2 === "/") {
44
+ while (i < n && input[i] !== "\n")
45
+ i++;
46
+ continue;
47
+ }
48
+ if (c === "/" && c2 === "*") {
49
+ i += 2;
50
+ while (i < n && !(input[i] === "*" && input[i + 1] === "/"))
51
+ i++;
52
+ i += 2;
53
+ continue;
54
+ }
55
+ out += c;
56
+ i++;
57
+ }
58
+ return out;
59
+ }
60
+ function candidatePaths(cwd) {
61
+ const out = [];
62
+ if (process.env.XENO_ACP_PROVIDERS_CONFIG)
63
+ out.push(process.env.XENO_ACP_PROVIDERS_CONFIG);
64
+ out.push(join(cwd, "xeno-acp.providers.jsonc"));
65
+ out.push(join(cwd, "xeno-acp.providers.json"));
66
+ out.push(join(homedir(), ".xeno", "acp", "providers.jsonc"));
67
+ return out;
68
+ }
69
+ export function loadProviderPolicyConfig(opts = {}) {
70
+ const cwd = opts.cwd ?? process.cwd();
71
+ const search = opts.path ? [opts.path] : candidatePaths(cwd);
72
+ let found;
73
+ for (const p of search) {
74
+ if (existsSync(p)) {
75
+ found = p;
76
+ break;
77
+ }
78
+ }
79
+ if (!found)
80
+ return { ok: true, config: EMPTY, errors: [] };
81
+ let raw;
82
+ try {
83
+ raw = JSON.parse(stripJsonc(readFileSync(found, "utf8")));
84
+ }
85
+ catch (err) {
86
+ return { ok: false, config: EMPTY, errors: [`failed to parse ${found}: ${err.message}`], source: found };
87
+ }
88
+ const result = validateProviderPolicyConfig(raw);
89
+ return result.ok
90
+ ? { ok: true, config: result.config, errors: [], source: found }
91
+ : { ok: false, config: EMPTY, errors: result.errors, source: found };
92
+ }
93
+ export function getPolicyEntry(config, id) {
94
+ return config.providers[id];
95
+ }
96
+ /**
97
+ * Merge a policy entry's posture onto a definition for evaluation. `enabled` (implementation
98
+ * status) ALWAYS comes from the definition — a config can never enable an unimplemented
99
+ * provider. Capabilities also stay from the definition.
100
+ */
101
+ export function applyPolicyToDefinition(def, entry) {
102
+ return {
103
+ ...def,
104
+ trustClass: entry.trustClass,
105
+ authPolicy: entry.auth,
106
+ egressPolicy: entry.egress,
107
+ ioAuthority: { ...entry.io },
108
+ // enabled and capabilities intentionally preserved from the definition.
109
+ };
110
+ }
111
+ //# sourceMappingURL=providerPolicyConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providerPolicyConfig.js","sourceRoot":"","sources":["../../src/config/providerPolicyConfig.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Redacted policy/review diagnostics for the `providers review/list/approvals` CLI commands.
3
+ * Shows secret-reference ids/labels, allowed hosts, hashes, and approval status — NEVER secret
4
+ * values, tokens, keys, cookies, or raw env.
5
+ */
6
+ import { type RunnabilityInput } from "./providerRunnability.js";
7
+ import type { ProviderDefinition } from "../providers/providerTypes.js";
8
+ export interface PolicyReview {
9
+ providerId: string;
10
+ displayName: string;
11
+ trustClass: string;
12
+ implemented: boolean;
13
+ status: string;
14
+ runnable: boolean;
15
+ defHash: string;
16
+ policyHash?: string;
17
+ auth?: {
18
+ requirement: string;
19
+ secretRefs: Array<{
20
+ id: string;
21
+ kind: string;
22
+ label: string;
23
+ required: boolean;
24
+ }>;
25
+ };
26
+ egress?: {
27
+ mode: string;
28
+ allowedHosts: string[];
29
+ blockedHosts: string[];
30
+ };
31
+ runtimeEnv?: {
32
+ forwardedKeys: string[];
33
+ blockedKeys: string[];
34
+ valuePolicy: string;
35
+ authHint: string;
36
+ };
37
+ ioAuthority: {
38
+ filesystem: string;
39
+ terminal: string;
40
+ };
41
+ approval?: {
42
+ approvalId: string;
43
+ approvedAt: string;
44
+ current: boolean;
45
+ };
46
+ riskSummary: string;
47
+ }
48
+ export declare function buildPolicyReview(def: ProviderDefinition, input?: RunnabilityInput): PolicyReview;
49
+ //# sourceMappingURL=providerPolicyDiagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providerPolicyDiagnostics.d.ts","sourceRoot":"","sources":["../../src/config/providerPolicyDiagnostics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAyB,KAAK,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAaxF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAExE,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,OAAO,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IAClH,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,EAAE,CAAC;QAAC,YAAY,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC1E,UAAU,CAAC,EAAE;QACX,aAAa,EAAE,MAAM,EAAE,CAAC;QACxB,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,WAAW,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD,QAAQ,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IACxE,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,kBAAkB,EAAE,KAAK,GAAE,gBAAqB,GAAG,YAAY,CAsCrG"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Redacted policy/review diagnostics for the `providers review/list/approvals` CLI commands.
3
+ * Shows secret-reference ids/labels, allowed hosts, hashes, and approval status — NEVER secret
4
+ * values, tokens, keys, cookies, or raw env.
5
+ */
6
+ import { summarizeAuthPolicy } from "../security/authPolicy.js";
7
+ import { summarizeEgressPolicy } from "../security/egressPolicy.js";
8
+ import { resolveProviderStatus } from "./providerRunnability.js";
9
+ import { isApprovalCurrent } from "./providerApprovalTypes.js";
10
+ import { applyPolicyToDefinition } from "./providerPolicyConfig.js";
11
+ import { CLAUDE_LOCAL_ENV_ALLOWLIST_KEYS, CLAUDE_LOCAL_ENV_BLOCKLIST_KEYS, CLAUDE_LOCAL_ID, } from "../providers/claudeLocalProvider.js";
12
+ import { CODEX_LOCAL_ENV_ALLOWLIST_KEYS, CODEX_LOCAL_ENV_BLOCKLIST_KEYS, CODEX_LOCAL_ID, } from "../providers/codexLocalProvider.js";
13
+ export function buildPolicyReview(def, input = {}) {
14
+ const merged = input.policyEntry ? applyPolicyToDefinition(def, input.policyEntry) : def;
15
+ const status = resolveProviderStatus(def, input);
16
+ const auth = merged.authPolicy ? summarizeAuthPolicy(merged.authPolicy) : undefined;
17
+ const egress = merged.egressPolicy ? summarizeEgressPolicy(merged.egressPolicy) : undefined;
18
+ const riskBits = [];
19
+ if (merged.authRequirement === "required" || merged.capabilities.requiresAuth)
20
+ riskBits.push("auth");
21
+ if (merged.networkRequirement === "required" || merged.capabilities.usesNetwork)
22
+ riskBits.push("network");
23
+ if (merged.capabilities.canWriteFiles)
24
+ riskBits.push("file-write");
25
+ if (merged.capabilities.canRunTerminal)
26
+ riskBits.push("terminal");
27
+ const riskSummary = riskBits.length ? `requires: ${riskBits.join(", ")}` : "no elevated requirements";
28
+ return {
29
+ providerId: def.id,
30
+ displayName: def.displayName,
31
+ trustClass: merged.trustClass,
32
+ implemented: def.enabled,
33
+ status: status.status,
34
+ runnable: status.runnable,
35
+ defHash: status.defHash,
36
+ ...(status.policyHash ? { policyHash: status.policyHash } : {}),
37
+ ...(auth ? { auth: { requirement: auth.requirement, secretRefs: auth.secretRefs } } : {}),
38
+ ...(egress ? { egress: { mode: egress.mode, allowedHosts: egress.allowedHosts, blockedHosts: egress.blockedHosts } } : {}),
39
+ ...runtimeEnvFor(def.id),
40
+ ioAuthority: { ...merged.ioAuthority },
41
+ ...(input.approval
42
+ ? {
43
+ approval: {
44
+ approvalId: input.approval.approvalId,
45
+ approvedAt: input.approval.approvedAt,
46
+ current: status.policyHash ? isApprovalCurrent(input.approval, status.defHash, status.policyHash) : false,
47
+ },
48
+ }
49
+ : {}),
50
+ riskSummary,
51
+ };
52
+ }
53
+ function runtimeEnvFor(providerId) {
54
+ if (providerId === CLAUDE_LOCAL_ID) {
55
+ return {
56
+ runtimeEnv: {
57
+ forwardedKeys: [...CLAUDE_LOCAL_ENV_ALLOWLIST_KEYS],
58
+ blockedKeys: [...CLAUDE_LOCAL_ENV_BLOCKLIST_KEYS],
59
+ valuePolicy: "key names only; values are never printed by review/check",
60
+ authHint: "Run the Claude CLI login/setup outside xeno-acp, then approve this provider policy.",
61
+ },
62
+ };
63
+ }
64
+ if (providerId === CODEX_LOCAL_ID) {
65
+ return {
66
+ runtimeEnv: {
67
+ forwardedKeys: [...CODEX_LOCAL_ENV_ALLOWLIST_KEYS],
68
+ blockedKeys: [...CODEX_LOCAL_ENV_BLOCKLIST_KEYS],
69
+ valuePolicy: "key names only; values are never printed by review/check",
70
+ authHint: "Run the Codex CLI login/setup outside xeno-acp, then approve this provider policy.",
71
+ },
72
+ };
73
+ }
74
+ return {};
75
+ }
76
+ //# sourceMappingURL=providerPolicyDiagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providerPolicyDiagnostics.js","sourceRoot":"","sources":["../../src/config/providerPolicyDiagnostics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Deterministic hashing of the SAFETY-RELEVANT fields of a provider definition and a provider
3
+ * policy. Used to tie an approval to an exact (definition, policy) pair so that any change
4
+ * makes the approval stale.
5
+ *
6
+ * Includes: ids, trust class, auth requirement, secret reference ids/kinds (NEVER values),
7
+ * egress mode/allowed+blocked hosts/flags, I/O authority, implementation status.
8
+ * Excludes: secret values (not represented at all), timestamps, display-only notes.
9
+ */
10
+ import type { ProviderDefinition } from "../providers/providerTypes.js";
11
+ import type { ProviderPolicyEntry } from "./providerPolicySchema.js";
12
+ export declare function hashProviderDefinition(def: ProviderDefinition): string;
13
+ export declare function hashProviderPolicy(entry: ProviderPolicyEntry): string;
14
+ //# sourceMappingURL=providerPolicyHash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providerPolicyHash.d.ts","sourceRoot":"","sources":["../../src/config/providerPolicyHash.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAcrE,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,CAgBtE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,CAwBrE"}