@parmana/sdk 1.1.0

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 (190) hide show
  1. package/README.md +284 -0
  2. package/dist/client/AuditApi.d.ts +18 -0
  3. package/dist/client/AuditApi.d.ts.map +1 -0
  4. package/dist/client/AuditApi.js +25 -0
  5. package/dist/client/AuditApi.js.map +1 -0
  6. package/dist/client/ExecutionApi.d.ts +39 -0
  7. package/dist/client/ExecutionApi.d.ts.map +1 -0
  8. package/dist/client/ExecutionApi.js +58 -0
  9. package/dist/client/ExecutionApi.js.map +1 -0
  10. package/dist/client/HealthApi.d.ts +22 -0
  11. package/dist/client/HealthApi.d.ts.map +1 -0
  12. package/dist/client/HealthApi.js +24 -0
  13. package/dist/client/HealthApi.js.map +1 -0
  14. package/dist/client/ParmanaClient.d.ts +154 -0
  15. package/dist/client/ParmanaClient.d.ts.map +1 -0
  16. package/dist/client/ParmanaClient.js +223 -0
  17. package/dist/client/ParmanaClient.js.map +1 -0
  18. package/dist/client/PolicyApi.d.ts +53 -0
  19. package/dist/client/PolicyApi.d.ts.map +1 -0
  20. package/dist/client/PolicyApi.js +48 -0
  21. package/dist/client/PolicyApi.js.map +1 -0
  22. package/dist/client/ReceiptApi.d.ts +29 -0
  23. package/dist/client/ReceiptApi.d.ts.map +1 -0
  24. package/dist/client/ReceiptApi.js +38 -0
  25. package/dist/client/ReceiptApi.js.map +1 -0
  26. package/dist/client/RefusalApi.d.ts +25 -0
  27. package/dist/client/RefusalApi.d.ts.map +1 -0
  28. package/dist/client/RefusalApi.js +38 -0
  29. package/dist/client/RefusalApi.js.map +1 -0
  30. package/dist/client/ReplayApi.d.ts +21 -0
  31. package/dist/client/ReplayApi.d.ts.map +1 -0
  32. package/dist/client/ReplayApi.js +30 -0
  33. package/dist/client/ReplayApi.js.map +1 -0
  34. package/dist/client/TransactionApi.d.ts +43 -0
  35. package/dist/client/TransactionApi.d.ts.map +1 -0
  36. package/dist/client/TransactionApi.js +62 -0
  37. package/dist/client/TransactionApi.js.map +1 -0
  38. package/dist/client/TrustRecordApi.d.ts +19 -0
  39. package/dist/client/TrustRecordApi.d.ts.map +1 -0
  40. package/dist/client/TrustRecordApi.js +25 -0
  41. package/dist/client/TrustRecordApi.js.map +1 -0
  42. package/dist/client/VerificationApi.d.ts +27 -0
  43. package/dist/client/VerificationApi.d.ts.map +1 -0
  44. package/dist/client/VerificationApi.js +42 -0
  45. package/dist/client/VerificationApi.js.map +1 -0
  46. package/dist/config/Configuration.d.ts +66 -0
  47. package/dist/config/Configuration.d.ts.map +1 -0
  48. package/dist/config/Configuration.js +17 -0
  49. package/dist/config/Configuration.js.map +1 -0
  50. package/dist/config/RetryPolicy.d.ts +66 -0
  51. package/dist/config/RetryPolicy.d.ts.map +1 -0
  52. package/dist/config/RetryPolicy.js +27 -0
  53. package/dist/config/RetryPolicy.js.map +1 -0
  54. package/dist/config/Transport.d.ts +80 -0
  55. package/dist/config/Transport.d.ts.map +1 -0
  56. package/dist/config/Transport.js +17 -0
  57. package/dist/config/Transport.js.map +1 -0
  58. package/dist/errors/AuthenticationError.d.ts +12 -0
  59. package/dist/errors/AuthenticationError.d.ts.map +1 -0
  60. package/dist/errors/AuthenticationError.js +21 -0
  61. package/dist/errors/AuthenticationError.js.map +1 -0
  62. package/dist/errors/AuthorizationError.d.ts +31 -0
  63. package/dist/errors/AuthorizationError.d.ts.map +1 -0
  64. package/dist/errors/AuthorizationError.js +42 -0
  65. package/dist/errors/AuthorizationError.js.map +1 -0
  66. package/dist/errors/ConfigurationError.d.ts +11 -0
  67. package/dist/errors/ConfigurationError.d.ts.map +1 -0
  68. package/dist/errors/ConfigurationError.js +20 -0
  69. package/dist/errors/ConfigurationError.js.map +1 -0
  70. package/dist/errors/ConflictError.d.ts +14 -0
  71. package/dist/errors/ConflictError.d.ts.map +1 -0
  72. package/dist/errors/ConflictError.js +23 -0
  73. package/dist/errors/ConflictError.js.map +1 -0
  74. package/dist/errors/ExecutionRejectedError.d.ts +11 -0
  75. package/dist/errors/ExecutionRejectedError.d.ts.map +1 -0
  76. package/dist/errors/ExecutionRejectedError.js +20 -0
  77. package/dist/errors/ExecutionRejectedError.js.map +1 -0
  78. package/dist/errors/InternalServerError.d.ts +11 -0
  79. package/dist/errors/InternalServerError.d.ts.map +1 -0
  80. package/dist/errors/InternalServerError.js +20 -0
  81. package/dist/errors/InternalServerError.js.map +1 -0
  82. package/dist/errors/NetworkError.d.ts +11 -0
  83. package/dist/errors/NetworkError.d.ts.map +1 -0
  84. package/dist/errors/NetworkError.js +20 -0
  85. package/dist/errors/NetworkError.js.map +1 -0
  86. package/dist/errors/NotFoundError.d.ts +13 -0
  87. package/dist/errors/NotFoundError.d.ts.map +1 -0
  88. package/dist/errors/NotFoundError.js +22 -0
  89. package/dist/errors/NotFoundError.js.map +1 -0
  90. package/dist/errors/ParmanaError.d.ts +57 -0
  91. package/dist/errors/ParmanaError.d.ts.map +1 -0
  92. package/dist/errors/ParmanaError.js +60 -0
  93. package/dist/errors/ParmanaError.js.map +1 -0
  94. package/dist/errors/RateLimitError.d.ts +24 -0
  95. package/dist/errors/RateLimitError.d.ts.map +1 -0
  96. package/dist/errors/RateLimitError.js +35 -0
  97. package/dist/errors/RateLimitError.js.map +1 -0
  98. package/dist/errors/ReplayError.d.ts +11 -0
  99. package/dist/errors/ReplayError.d.ts.map +1 -0
  100. package/dist/errors/ReplayError.js +20 -0
  101. package/dist/errors/ReplayError.js.map +1 -0
  102. package/dist/errors/TimeoutError.d.ts +11 -0
  103. package/dist/errors/TimeoutError.d.ts.map +1 -0
  104. package/dist/errors/TimeoutError.js +20 -0
  105. package/dist/errors/TimeoutError.js.map +1 -0
  106. package/dist/errors/ValidationError.d.ts +11 -0
  107. package/dist/errors/ValidationError.d.ts.map +1 -0
  108. package/dist/errors/ValidationError.js +20 -0
  109. package/dist/errors/ValidationError.js.map +1 -0
  110. package/dist/errors/VerificationError.d.ts +11 -0
  111. package/dist/errors/VerificationError.d.ts.map +1 -0
  112. package/dist/errors/VerificationError.js +20 -0
  113. package/dist/errors/VerificationError.js.map +1 -0
  114. package/dist/index.d.ts +41 -0
  115. package/dist/index.d.ts.map +1 -0
  116. package/dist/index.js +56 -0
  117. package/dist/index.js.map +1 -0
  118. package/dist/models/audit-event.d.ts +15 -0
  119. package/dist/models/audit-event.d.ts.map +1 -0
  120. package/dist/models/audit-event.js +2 -0
  121. package/dist/models/audit-event.js.map +1 -0
  122. package/dist/models/authority.d.ts +14 -0
  123. package/dist/models/authority.d.ts.map +1 -0
  124. package/dist/models/authority.js +8 -0
  125. package/dist/models/authority.js.map +1 -0
  126. package/dist/models/authorization.d.ts +13 -0
  127. package/dist/models/authorization.d.ts.map +1 -0
  128. package/dist/models/authorization.js +7 -0
  129. package/dist/models/authorization.js.map +1 -0
  130. package/dist/models/business-transaction.d.ts +25 -0
  131. package/dist/models/business-transaction.d.ts.map +1 -0
  132. package/dist/models/business-transaction.js +2 -0
  133. package/dist/models/business-transaction.js.map +1 -0
  134. package/dist/models/execution.d.ts +36 -0
  135. package/dist/models/execution.d.ts.map +1 -0
  136. package/dist/models/execution.js +2 -0
  137. package/dist/models/execution.js.map +1 -0
  138. package/dist/models/index.d.ts +15 -0
  139. package/dist/models/index.d.ts.map +1 -0
  140. package/dist/models/index.js +15 -0
  141. package/dist/models/index.js.map +1 -0
  142. package/dist/models/intent.d.ts +14 -0
  143. package/dist/models/intent.d.ts.map +1 -0
  144. package/dist/models/intent.js +7 -0
  145. package/dist/models/intent.js.map +1 -0
  146. package/dist/models/override.d.ts +9 -0
  147. package/dist/models/override.d.ts.map +1 -0
  148. package/dist/models/override.js +2 -0
  149. package/dist/models/override.js.map +1 -0
  150. package/dist/models/policy.d.ts +11 -0
  151. package/dist/models/policy.d.ts.map +1 -0
  152. package/dist/models/policy.js +7 -0
  153. package/dist/models/policy.js.map +1 -0
  154. package/dist/models/receipt.d.ts +10 -0
  155. package/dist/models/receipt.d.ts.map +1 -0
  156. package/dist/models/receipt.js +2 -0
  157. package/dist/models/receipt.js.map +1 -0
  158. package/dist/models/refusal-record.d.ts +51 -0
  159. package/dist/models/refusal-record.d.ts.map +1 -0
  160. package/dist/models/refusal-record.js +2 -0
  161. package/dist/models/refusal-record.js.map +1 -0
  162. package/dist/models/replay-result.d.ts +6 -0
  163. package/dist/models/replay-result.d.ts.map +1 -0
  164. package/dist/models/replay-result.js +2 -0
  165. package/dist/models/replay-result.js.map +1 -0
  166. package/dist/models/signature.d.ts +16 -0
  167. package/dist/models/signature.d.ts.map +1 -0
  168. package/dist/models/signature.js +10 -0
  169. package/dist/models/signature.js.map +1 -0
  170. package/dist/models/trust-record.d.ts +20 -0
  171. package/dist/models/trust-record.d.ts.map +1 -0
  172. package/dist/models/trust-record.js +2 -0
  173. package/dist/models/trust-record.js.map +1 -0
  174. package/dist/models/verification.d.ts +10 -0
  175. package/dist/models/verification.d.ts.map +1 -0
  176. package/dist/models/verification.js +2 -0
  177. package/dist/models/verification.js.map +1 -0
  178. package/dist/transport/HttpTransport.d.ts +25 -0
  179. package/dist/transport/HttpTransport.d.ts.map +1 -0
  180. package/dist/transport/HttpTransport.js +193 -0
  181. package/dist/transport/HttpTransport.js.map +1 -0
  182. package/dist/transport/mapHttpErrorResponse.d.ts +52 -0
  183. package/dist/transport/mapHttpErrorResponse.d.ts.map +1 -0
  184. package/dist/transport/mapHttpErrorResponse.js +134 -0
  185. package/dist/transport/mapHttpErrorResponse.js.map +1 -0
  186. package/dist/version.d.ts +7 -0
  187. package/dist/version.d.ts.map +1 -0
  188. package/dist/version.js +7 -0
  189. package/dist/version.js.map +1 -0
  190. package/package.json +57 -0
package/README.md ADDED
@@ -0,0 +1,284 @@
1
+ # Parmana TypeScript SDK
2
+
3
+ The official TypeScript SDK for **Parmana**.
4
+
5
+ Parmana ensures that only Parmana-approved actions are executed.
6
+
7
+ Parmana is an **Execution Trust Infrastructure** for AI systems.
8
+
9
+ It ensures that autonomous systems execute **only policy-compliant actions** and produces cryptographically verifiable evidence for every execution.
10
+
11
+ ---
12
+
13
+ # Why Parmana?
14
+
15
+ Modern AI systems can make decisions autonomously, but organizations need assurance that those decisions comply with business policies before execution.
16
+
17
+ Parmana provides that assurance.
18
+
19
+ Using Parmana, organizations can:
20
+
21
+ - Execute only policy-compliant actions
22
+ - Produce verifiable execution evidence
23
+ - Build an auditable authorization-to-execution trust chain
24
+ - Independently verify every execution
25
+ - Support governance and regulatory compliance
26
+
27
+ ---
28
+
29
+ # Core Principle
30
+
31
+ Parmana does not execute business actions.
32
+
33
+ Parmana authorizes execution.
34
+
35
+ Only Parmana-approved actions are executed.
36
+
37
+ ---
38
+
39
+ # Architecture
40
+
41
+ ```
42
+ Application
43
+
44
+
45
+ Parmana TypeScript SDK
46
+
47
+
48
+ Parmana Runtime
49
+
50
+
51
+ Execution Trust Infrastructure
52
+
53
+
54
+ Execution Trust Record
55
+
56
+
57
+ Independent Verification
58
+ ```
59
+
60
+ ---
61
+
62
+ # Installation
63
+
64
+ ```bash
65
+ npm install @parmana/typescript-sdk
66
+ ```
67
+
68
+ ---
69
+
70
+ # Quick Start
71
+
72
+ ```typescript
73
+ import {
74
+ ParmanaClient,
75
+ HttpTransport,
76
+ } from "@parmana/typescript-sdk";
77
+
78
+ const client = new ParmanaClient({
79
+ endpoint: "https://runtime.example.com",
80
+
81
+ transport: new HttpTransport({
82
+ endpoint: "https://runtime.example.com",
83
+ }),
84
+ });
85
+ ```
86
+
87
+ ---
88
+
89
+ # Runtime Health
90
+
91
+ ```typescript
92
+ const health =
93
+ await client.health();
94
+ ```
95
+
96
+ ---
97
+
98
+ # Execute
99
+
100
+ ```typescript
101
+ const trustRecord =
102
+ await client.execute(
103
+ transaction,
104
+ );
105
+ ```
106
+
107
+ The Runtime:
108
+
109
+ 1. Loads the requested policy.
110
+ 2. Evaluates policy deterministically.
111
+ 3. Produces a Decision.
112
+ 4. Enforces execution approval.
113
+ 5. Executes the Runtime Pipeline.
114
+ 6. Produces an Execution Trust Record.
115
+
116
+ ---
117
+
118
+ # Verify
119
+
120
+ ```typescript
121
+ const verification =
122
+ await client.getLatestVerification(
123
+ trustRecord.businessTransactionId,
124
+ );
125
+ ```
126
+
127
+ Verification independently validates the Execution Trust Record.
128
+
129
+ ---
130
+
131
+ # Replay
132
+
133
+ ```typescript
134
+ const replay =
135
+ await client.replay(
136
+ trustRecord.businessTransactionId,
137
+ );
138
+ ```
139
+
140
+ Replay deterministically re-executes the recorded execution.
141
+
142
+ ---
143
+
144
+ # Validate Policy
145
+
146
+ ```typescript
147
+ const result =
148
+ await client.validatePolicy(
149
+ policy,
150
+ );
151
+ ```
152
+
153
+ Policy validation checks that a policy is structurally valid before deployment.
154
+
155
+ ---
156
+
157
+ # SDK Architecture
158
+
159
+ ```
160
+ ParmanaClient
161
+
162
+ ├── HealthApi
163
+ ├── ExecutionApi
164
+ ├── VerificationApi
165
+ ├── ReplayApi
166
+ ├── ReceiptApi
167
+ ├── TransactionApi
168
+ ├── TrustRecordApi
169
+ └── PolicyApi
170
+ ```
171
+
172
+ The client is intentionally small.
173
+
174
+ Each API encapsulates a single Parmana capability.
175
+
176
+ ---
177
+
178
+ # Canonical Domain Model
179
+
180
+ The SDK re-exports the canonical Parmana domain model from `@parmana/shared`.
181
+
182
+ Core artifacts include:
183
+
184
+ - Authority
185
+ - Authorization
186
+ - Intent
187
+ - PolicyReference
188
+ - BusinessTransaction
189
+ - Decision
190
+ - Execution
191
+ - ExecutionEvidence
192
+ - ExecutionTrustRecord
193
+ - Verification
194
+ - Receipt
195
+ - Override
196
+
197
+ The SDK does not redefine these models.
198
+
199
+ ---
200
+
201
+ # Error Handling
202
+
203
+ All SDK exceptions inherit from:
204
+
205
+ ```typescript
206
+ ParmanaError
207
+ ```
208
+
209
+ Common errors include:
210
+
211
+ - ConfigurationError
212
+ - ValidationError
213
+ - ExecutionRejectedError
214
+ - VerificationError
215
+ - ReplayError
216
+ - NetworkError
217
+ - TimeoutError
218
+ - InternalServerError
219
+
220
+ ---
221
+
222
+ # Configuration
223
+
224
+ ```typescript
225
+ const configuration = {
226
+ endpoint: "...",
227
+ transport: ...,
228
+ };
229
+ ```
230
+
231
+ The SDK configuration controls communication with the Parmana Runtime.
232
+
233
+ It does not control policy evaluation or runtime behavior.
234
+
235
+ No route in the Parmana API enforces authentication or authorization today; every request is accepted from any caller who can reach the port (see docs/CLAIMS.md, "API-layer authentication and authorization"). The SDK configuration has no credentials field for that reason — do not build a client that assumes one.
236
+
237
+ ---
238
+
239
+ # Examples
240
+
241
+ See the `examples/` directory.
242
+
243
+ - Runtime Health
244
+ - Execute
245
+ - Verify
246
+ - Replay
247
+ - Policy Validation
248
+
249
+ ---
250
+
251
+ # Documentation
252
+
253
+ The complete SDK documentation is available in:
254
+
255
+ ```
256
+ docs/sdk/
257
+ ```
258
+
259
+ Including:
260
+
261
+ - SDK Architecture
262
+ - SDK Specification
263
+ - Error Model
264
+ - Configuration
265
+ - Versioning
266
+ - Conformance
267
+
268
+ ---
269
+
270
+ # License
271
+
272
+ Apache License 2.0
273
+
274
+ ---
275
+
276
+ # About Parmana
277
+
278
+ Parmana is an Execution Trust Infrastructure for autonomous and AI systems.
279
+
280
+ It establishes a cryptographically verifiable trust chain linking:
281
+
282
+ Authority → Authorization → Intent → Policy → Decision → Execution → Evidence → Verification
283
+
284
+ This enables organizations to confidently deploy AI in high-impact workflows while maintaining governance, auditability, and independent verification.
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Parmana Audit Event API.
3
+ */
4
+ import type { AuditEvent, Signature } from "../models/index.js";
5
+ import type { Transport } from "../config/Transport.js";
6
+ export declare class AuditApi {
7
+ private readonly transport;
8
+ constructor(transport: Transport);
9
+ /**
10
+ * Verifies a signed caller-authentication audit event's signature.
11
+ * Maps to POST /audit/verify -- takes the event
12
+ * and its stored signature directly, not a lookup by id. No caller
13
+ * authentication is required by this route, mirroring
14
+ * RefusalApi.verify()'s independent third-party verifiability.
15
+ */
16
+ verify(event: AuditEvent, signature: Signature): Promise<boolean>;
17
+ }
18
+ //# sourceMappingURL=AuditApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuditApi.d.ts","sourceRoot":"","sources":["../../src/client/AuditApi.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,SAAS,EACV,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EACV,SAAS,EACV,MAAM,wBAAwB,CAAC;AAEhC,qBAAa,QAAQ;IAEjB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,SAAS;IAGvC;;;;;;OAMG;IACU,MAAM,CACjB,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,OAAO,CAAC;CAUpB"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Parmana Audit Event API.
3
+ */
4
+ export class AuditApi {
5
+ transport;
6
+ constructor(transport) {
7
+ this.transport = transport;
8
+ }
9
+ /**
10
+ * Verifies a signed caller-authentication audit event's signature.
11
+ * Maps to POST /audit/verify -- takes the event
12
+ * and its stored signature directly, not a lookup by id. No caller
13
+ * authentication is required by this route, mirroring
14
+ * RefusalApi.verify()'s independent third-party verifiability.
15
+ */
16
+ async verify(event, signature) {
17
+ const response = await this.transport.send({
18
+ method: "POST",
19
+ path: "/audit/verify",
20
+ body: { event, signature },
21
+ });
22
+ return response.body.valid;
23
+ }
24
+ }
25
+ //# sourceMappingURL=AuditApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuditApi.js","sourceRoot":"","sources":["../../src/client/AuditApi.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,MAAM,OAAO,QAAQ;IAEA;IADnB,YACmB,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IACpC,CAAC;IAEJ;;;;;;OAMG;IACI,KAAK,CAAC,MAAM,CACjB,KAAiB,EACjB,SAAoB;QAEpB,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAqB;YAC5C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;SAC3B,CAAC,CAAC;QAEL,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;IAC7B,CAAC;CACF"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Parmana Execution API.
3
+ *
4
+ * Execute Business Transactions through the Parmana Runtime.
5
+ */
6
+ import type { BusinessTransaction, ExecutionTrustRecord } from "../models/index.js";
7
+ import type { Transport } from "../config/Transport.js";
8
+ /**
9
+ * Execution API.
10
+ *
11
+ * Responsibilities
12
+ * ----------------
13
+ * - Runtime health check
14
+ * - Execute Business Transactions
15
+ *
16
+ * This API does NOT:
17
+ * - verify trust records
18
+ * - replay executions
19
+ * - generate receipts
20
+ * - validate policies
21
+ */
22
+ export declare class ExecutionApi {
23
+ private readonly transport;
24
+ constructor(transport: Transport);
25
+ /**
26
+ * Returns the Runtime health status.
27
+ */
28
+ health(): Promise<unknown>;
29
+ /**
30
+ * Returns the Runtime name, version, and API version. Requires caller
31
+ * authentication, unlike GET /health.
32
+ */
33
+ version(): Promise<unknown>;
34
+ /**
35
+ * Execute a Business Transaction.
36
+ */
37
+ execute(transaction: BusinessTransaction): Promise<ExecutionTrustRecord>;
38
+ }
39
+ //# sourceMappingURL=ExecutionApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExecutionApi.d.ts","sourceRoot":"","sources":["../../src/client/ExecutionApi.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EACV,SAAS,EACV,MAAM,wBAAwB,CAAC;AAEhC;;;;;;;;;;;;;GAaG;AACH,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,SAAS;IAGvC;;OAEG;IACU,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAUvC;;;OAGG;IACU,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAUxC;;OAEG;IACU,OAAO,CAClB,WAAW,EAAE,mBAAmB,GAC/B,OAAO,CAAC,oBAAoB,CAAC;CAUjC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Parmana Execution API.
3
+ *
4
+ * Execute Business Transactions through the Parmana Runtime.
5
+ */
6
+ /**
7
+ * Execution API.
8
+ *
9
+ * Responsibilities
10
+ * ----------------
11
+ * - Runtime health check
12
+ * - Execute Business Transactions
13
+ *
14
+ * This API does NOT:
15
+ * - verify trust records
16
+ * - replay executions
17
+ * - generate receipts
18
+ * - validate policies
19
+ */
20
+ export class ExecutionApi {
21
+ transport;
22
+ constructor(transport) {
23
+ this.transport = transport;
24
+ }
25
+ /**
26
+ * Returns the Runtime health status.
27
+ */
28
+ async health() {
29
+ const response = await this.transport.send({
30
+ method: "GET",
31
+ path: "/health",
32
+ });
33
+ return response.body;
34
+ }
35
+ /**
36
+ * Returns the Runtime name, version, and API version. Requires caller
37
+ * authentication, unlike GET /health.
38
+ */
39
+ async version() {
40
+ const response = await this.transport.send({
41
+ method: "GET",
42
+ path: "/version",
43
+ });
44
+ return response.body;
45
+ }
46
+ /**
47
+ * Execute a Business Transaction.
48
+ */
49
+ async execute(transaction) {
50
+ const response = await this.transport.send({
51
+ method: "POST",
52
+ path: "/execute",
53
+ body: transaction,
54
+ });
55
+ return response.body;
56
+ }
57
+ }
58
+ //# sourceMappingURL=ExecutionApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExecutionApi.js","sourceRoot":"","sources":["../../src/client/ExecutionApi.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,YAAY;IAEJ;IADnB,YACmB,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IACpC,CAAC;IAEJ;;OAEG;IACI,KAAK,CAAC,MAAM;QACjB,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YACxB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;QAEL,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,OAAO;QAClB,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YACxB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,UAAU;SACjB,CAAC,CAAC;QAEL,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,OAAO,CAClB,WAAgC;QAEhC,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAuB;YAC9C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,WAAW;SAClB,CAAC,CAAC;QAEL,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;CACF"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Parmana SDK
3
+ *
4
+ * Health API.
5
+ *
6
+ * Performs Runtime health checks.
7
+ */
8
+ import type { Transport } from "../config/Transport.js";
9
+ export interface HealthStatus {
10
+ readonly status: string;
11
+ readonly version?: string;
12
+ readonly timestamp?: string;
13
+ }
14
+ export declare class HealthApi {
15
+ private readonly transport;
16
+ constructor(transport: Transport);
17
+ /**
18
+ * Returns Runtime health.
19
+ */
20
+ health(): Promise<HealthStatus>;
21
+ }
22
+ //# sourceMappingURL=HealthApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HealthApi.d.ts","sourceRoot":"","sources":["../../src/client/HealthApi.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAE1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,qBAAa,SAAS;IAElB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,SAAS;IAGvC;;OAEG;IACU,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;CAS7C"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Parmana SDK
3
+ *
4
+ * Health API.
5
+ *
6
+ * Performs Runtime health checks.
7
+ */
8
+ export class HealthApi {
9
+ transport;
10
+ constructor(transport) {
11
+ this.transport = transport;
12
+ }
13
+ /**
14
+ * Returns Runtime health.
15
+ */
16
+ async health() {
17
+ const response = await this.transport.send({
18
+ path: "/health",
19
+ method: "GET",
20
+ });
21
+ return response.body;
22
+ }
23
+ }
24
+ //# sourceMappingURL=HealthApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HealthApi.js","sourceRoot":"","sources":["../../src/client/HealthApi.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAYH,MAAM,OAAO,SAAS;IAED;IADnB,YACmB,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IACpC,CAAC;IAEJ;;OAEG;IACI,KAAK,CAAC,MAAM;QACjB,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAe;YACtC,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QAEL,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;CACF"}
@@ -0,0 +1,154 @@
1
+ /**
2
+ * Parmana SDK
3
+ *
4
+ * Canonical SDK client.
5
+ *
6
+ * ParmanaClient is the primary entry point for interacting
7
+ * with the Parmana Runtime.
8
+ *
9
+ * Responsibilities:
10
+ * - Hold immutable SDK configuration.
11
+ * - Compose SDK APIs.
12
+ * - Delegate SDK operations.
13
+ *
14
+ * ParmanaClient does NOT:
15
+ * - evaluate policy
16
+ * - authorize execution
17
+ * - execute business logic
18
+ * - verify trust records
19
+ * - replay executions
20
+ * - communicate directly with the Runtime
21
+ */
22
+ import type { AuditEvent, BusinessTransaction, ExecutionTrustRecord, Receipt, RefusalRecord, Signature, Verification } from "../models/index.js";
23
+ import type { ReplayResult } from "../models/replay-result.js";
24
+ import type { Configuration } from "../config/Configuration.js";
25
+ import type { Policy } from "@parmana/policy";
26
+ import { type HealthStatus } from "./HealthApi.js";
27
+ import { type PolicyValidationResult } from "./PolicyApi.js";
28
+ /**
29
+ * Canonical Parmana SDK client.
30
+ */
31
+ export declare class ParmanaClient {
32
+ /**
33
+ * Immutable SDK configuration.
34
+ */
35
+ readonly configuration: Configuration;
36
+ /**
37
+ * Configured transport.
38
+ */
39
+ private readonly transport;
40
+ /**
41
+ * Runtime Health API.
42
+ */
43
+ private readonly healthApi;
44
+ /**
45
+ * Runtime Execution API.
46
+ */
47
+ private readonly executionApi;
48
+ /**
49
+ * Runtime Verification API.
50
+ */
51
+ private readonly verificationApi;
52
+ /**
53
+ * Runtime Replay API.
54
+ */
55
+ private readonly replayApi;
56
+ /**
57
+ * Runtime Receipt API.
58
+ */
59
+ private readonly receiptApi;
60
+ /**
61
+ * Runtime Transaction API.
62
+ */
63
+ private readonly transactionApi;
64
+ /**
65
+ * Runtime Trust Record API.
66
+ */
67
+ private readonly trustRecordApi;
68
+ /**
69
+ * Runtime Policy API.
70
+ */
71
+ private readonly policyApi;
72
+ /**
73
+ * Runtime Refusal Record API.
74
+ */
75
+ private readonly refusalApi;
76
+ /**
77
+ * Runtime Audit Event API.
78
+ */
79
+ private readonly auditApi;
80
+ /**
81
+ * Creates a Parmana SDK client.
82
+ */
83
+ constructor(configuration: Configuration);
84
+ /**
85
+ * Returns the configured Runtime endpoint.
86
+ */
87
+ endpoint(): string;
88
+ /**
89
+ * Performs a Runtime health check.
90
+ */
91
+ health(): Promise<HealthStatus>;
92
+ /**
93
+ * Returns the Runtime name, version, and API version.
94
+ */
95
+ version(): Promise<unknown>;
96
+ /**
97
+ * Executes a Business Transaction.
98
+ */
99
+ execute(transaction: BusinessTransaction): Promise<ExecutionTrustRecord>;
100
+ /**
101
+ * Runs a fresh verification of an Execution Trust Record, appending a
102
+ * new Verification to its history. Distinct from
103
+ * getLatestVerification(), which reads the most recent one without
104
+ * re-verifying.
105
+ */
106
+ verify(businessTransactionId: string): Promise<Verification>;
107
+ /**
108
+ * Returns the latest Verification.
109
+ */
110
+ getLatestVerification(businessTransactionId: string): Promise<Verification>;
111
+ /**
112
+ * Performs deterministic replay.
113
+ */
114
+ replay(businessTransactionId: string): Promise<ReplayResult>;
115
+ /**
116
+ * Generates an execution receipt.
117
+ */
118
+ receipt(businessTransactionId: string): Promise<Receipt>;
119
+ /**
120
+ * Creates (executes) a Business Transaction via POST /transactions,
121
+ * a second, independent entry point into the identical execution
122
+ * pipeline as execute() (POST /execute). See TransactionApi.create.
123
+ */
124
+ createTransaction(transaction: BusinessTransaction): Promise<ExecutionTrustRecord>;
125
+ /**
126
+ * Retrieves a Business Transaction.
127
+ */
128
+ transaction(businessTransactionId: string): Promise<BusinessTransaction>;
129
+ /**
130
+ * Lists Business Transactions.
131
+ */
132
+ transactions(page?: number, pageSize?: number): Promise<BusinessTransaction[]>;
133
+ /**
134
+ * Retrieves an Execution Trust Record.
135
+ */
136
+ trustRecord(businessTransactionId: string): Promise<ExecutionTrustRecord>;
137
+ /**
138
+ * Validates a policy definition.
139
+ */
140
+ validatePolicy(policy: Policy): Promise<PolicyValidationResult>;
141
+ /**
142
+ * Retrieves a Refusal Record by Business Transaction ID.
143
+ */
144
+ refusalRecord(businessTransactionId: string): Promise<RefusalRecord>;
145
+ /**
146
+ * Verifies a Refusal Record's signature.
147
+ */
148
+ verifyRefusalRecord(record: RefusalRecord): Promise<boolean>;
149
+ /**
150
+ * Verifies a signed caller-authentication audit event's signature.
151
+ */
152
+ verifyAuditEvent(event: AuditEvent, signature: Signature): Promise<boolean>;
153
+ }
154
+ //# sourceMappingURL=ParmanaClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParmanaClient.d.ts","sourceRoot":"","sources":["../../src/client/ParmanaClient.ts"],"names":[],"mappings":"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"}