@garydevenay/emporion 0.0.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 (102) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +173 -0
  3. package/dist/src/cli.d.ts +7 -0
  4. package/dist/src/cli.js +2101 -0
  5. package/dist/src/cli.js.map +1 -0
  6. package/dist/src/config.d.ts +2 -0
  7. package/dist/src/config.js +41 -0
  8. package/dist/src/config.js.map +1 -0
  9. package/dist/src/demo.d.ts +1 -0
  10. package/dist/src/demo.js +140 -0
  11. package/dist/src/demo.js.map +1 -0
  12. package/dist/src/did.d.ts +13 -0
  13. package/dist/src/did.js +155 -0
  14. package/dist/src/did.js.map +1 -0
  15. package/dist/src/errors.d.ts +23 -0
  16. package/dist/src/errors.js +25 -0
  17. package/dist/src/errors.js.map +1 -0
  18. package/dist/src/handshake.d.ts +9 -0
  19. package/dist/src/handshake.js +131 -0
  20. package/dist/src/handshake.js.map +1 -0
  21. package/dist/src/identity.d.ts +17 -0
  22. package/dist/src/identity.js +105 -0
  23. package/dist/src/identity.js.map +1 -0
  24. package/dist/src/index.d.ts +5 -0
  25. package/dist/src/index.js +5 -0
  26. package/dist/src/index.js.map +1 -0
  27. package/dist/src/logger.d.ts +11 -0
  28. package/dist/src/logger.js +41 -0
  29. package/dist/src/logger.js.map +1 -0
  30. package/dist/src/persistent-agent.d.ts +2 -0
  31. package/dist/src/persistent-agent.js +24 -0
  32. package/dist/src/persistent-agent.js.map +1 -0
  33. package/dist/src/protocol/company.d.ts +36 -0
  34. package/dist/src/protocol/company.js +211 -0
  35. package/dist/src/protocol/company.js.map +1 -0
  36. package/dist/src/protocol/contracts.d.ts +119 -0
  37. package/dist/src/protocol/contracts.js +404 -0
  38. package/dist/src/protocol/contracts.js.map +1 -0
  39. package/dist/src/protocol/credential-reference.d.ts +71 -0
  40. package/dist/src/protocol/credential-reference.js +136 -0
  41. package/dist/src/protocol/credential-reference.js.map +1 -0
  42. package/dist/src/protocol/dissemination.d.ts +47 -0
  43. package/dist/src/protocol/dissemination.js +111 -0
  44. package/dist/src/protocol/dissemination.js.map +1 -0
  45. package/dist/src/protocol/envelope.d.ts +71 -0
  46. package/dist/src/protocol/envelope.js +203 -0
  47. package/dist/src/protocol/envelope.js.map +1 -0
  48. package/dist/src/protocol/identity.d.ts +18 -0
  49. package/dist/src/protocol/identity.js +143 -0
  50. package/dist/src/protocol/identity.js.map +1 -0
  51. package/dist/src/protocol/index.d.ts +22 -0
  52. package/dist/src/protocol/index.js +12 -0
  53. package/dist/src/protocol/index.js.map +1 -0
  54. package/dist/src/protocol/market.d.ts +96 -0
  55. package/dist/src/protocol/market.js +293 -0
  56. package/dist/src/protocol/market.js.map +1 -0
  57. package/dist/src/protocol/messaging.d.ts +87 -0
  58. package/dist/src/protocol/messaging.js +296 -0
  59. package/dist/src/protocol/messaging.js.map +1 -0
  60. package/dist/src/protocol/repository.d.ts +87 -0
  61. package/dist/src/protocol/repository.js +651 -0
  62. package/dist/src/protocol/repository.js.map +1 -0
  63. package/dist/src/protocol/resolution.d.ts +86 -0
  64. package/dist/src/protocol/resolution.js +305 -0
  65. package/dist/src/protocol/resolution.js.map +1 -0
  66. package/dist/src/protocol/shared.d.ts +14 -0
  67. package/dist/src/protocol/shared.js +45 -0
  68. package/dist/src/protocol/shared.js.map +1 -0
  69. package/dist/src/protocol/versioning.d.ts +21 -0
  70. package/dist/src/protocol/versioning.js +69 -0
  71. package/dist/src/protocol/versioning.js.map +1 -0
  72. package/dist/src/storage.d.ts +36 -0
  73. package/dist/src/storage.js +156 -0
  74. package/dist/src/storage.js.map +1 -0
  75. package/dist/src/topics.d.ts +3 -0
  76. package/dist/src/topics.js +27 -0
  77. package/dist/src/topics.js.map +1 -0
  78. package/dist/src/transport.d.ts +114 -0
  79. package/dist/src/transport.js +291 -0
  80. package/dist/src/transport.js.map +1 -0
  81. package/dist/src/types.d.ts +95 -0
  82. package/dist/src/types.js +2 -0
  83. package/dist/src/types.js.map +1 -0
  84. package/dist/test/cli.test.d.ts +1 -0
  85. package/dist/test/cli.test.js +122 -0
  86. package/dist/test/cli.test.js.map +1 -0
  87. package/dist/test/economy.test.d.ts +1 -0
  88. package/dist/test/economy.test.js +661 -0
  89. package/dist/test/economy.test.js.map +1 -0
  90. package/dist/test/helpers.d.ts +12 -0
  91. package/dist/test/helpers.js +57 -0
  92. package/dist/test/helpers.js.map +1 -0
  93. package/dist/test/integration.test.d.ts +1 -0
  94. package/dist/test/integration.test.js +287 -0
  95. package/dist/test/integration.test.js.map +1 -0
  96. package/dist/test/protocol.test.d.ts +1 -0
  97. package/dist/test/protocol.test.js +448 -0
  98. package/dist/test/protocol.test.js.map +1 -0
  99. package/dist/test/unit.test.d.ts +1 -0
  100. package/dist/test/unit.test.js +87 -0
  101. package/dist/test/unit.test.js.map +1 -0
  102. package/package.json +60 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"company.js","sourceRoot":"","sources":["../../../src/protocol/company.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ import type { ProtocolEnvelope } from "./envelope.js";
2
+ import { type ProtocolJsonObject } from "./shared.js";
3
+ import type { AgreementState, BidState, ListingState, OfferState, RequestState } from "./market.js";
4
+ export type ContractOriginKind = "agreement" | "listing" | "request" | "offer" | "bid";
5
+ export type ProofMode = "artifact-verifiable" | "oracle-attested" | "counterparty-acceptance" | "hybrid";
6
+ export type ResolutionMode = "deterministic" | "oracle" | "mutual" | "hybrid";
7
+ export type SettlementAdapterType = "external-payment-ref" | "lightning-hold-invoice" | "bolt12-offer" | "dlc-outcome" | "company-reserve-lock";
8
+ export type SettlementAdapterNetwork = "bitcoin" | "testnet" | "signet" | "regtest" | "offchain" | "internal";
9
+ export interface OriginRef {
10
+ objectKind: ContractOriginKind;
11
+ objectId: string;
12
+ }
13
+ export interface ArtifactRef {
14
+ artifactId: string;
15
+ hash: string;
16
+ mediaType?: string;
17
+ uri?: string;
18
+ }
19
+ export interface VerifierRef {
20
+ verifierId: string;
21
+ verifierKind: "deterministic" | "oracle-service" | "human-review";
22
+ verifierDid?: string;
23
+ algorithm?: string;
24
+ endpointUri?: string;
25
+ }
26
+ export interface OracleQuorumPolicy {
27
+ oracleDids: string[];
28
+ quorum: number;
29
+ }
30
+ export interface ProofPolicy {
31
+ allowedModes: ProofMode[];
32
+ verifierRefs: VerifierRef[];
33
+ minArtifacts?: number;
34
+ requireCounterpartyAcceptance: boolean;
35
+ }
36
+ export interface SettlementAdapterRef {
37
+ adapterType: SettlementAdapterType;
38
+ adapterId: string;
39
+ network: SettlementAdapterNetwork;
40
+ artifactRefs: string[];
41
+ statusRef?: string;
42
+ }
43
+ export interface SettlementPolicy {
44
+ adapters: SettlementAdapterRef[];
45
+ releaseCondition: "milestone-accepted" | "contract-completed" | "oracle-ruled" | "manual";
46
+ }
47
+ export interface ResolutionPolicy {
48
+ mode: ResolutionMode;
49
+ deterministicVerifierIds: string[];
50
+ oracleQuorum?: OracleQuorumPolicy;
51
+ fallbackMode?: "deterministic" | "oracle" | "mutual";
52
+ }
53
+ export interface DeadlinePolicy {
54
+ contractExpiresAt?: string;
55
+ milestoneDeadlines: Record<string, string>;
56
+ gracePeriodHours?: number;
57
+ }
58
+ export interface DeliverableSchema {
59
+ kind: "generic" | "artifact" | "oracle-claim";
60
+ schemaUri?: string;
61
+ requiredArtifactKinds: string[];
62
+ }
63
+ export interface MilestoneDefinition {
64
+ milestoneId: string;
65
+ title: string;
66
+ description?: string;
67
+ deliverableSchema: DeliverableSchema;
68
+ proofPolicy: ProofPolicy;
69
+ settlementAdapters: SettlementAdapterRef[];
70
+ }
71
+ export interface ContractCreatedPayload {
72
+ originRef: OriginRef;
73
+ parties: string[];
74
+ sponsorDid?: string;
75
+ companyDid?: string;
76
+ scope: string;
77
+ milestones: MilestoneDefinition[];
78
+ deliverableSchema: DeliverableSchema;
79
+ proofPolicy: ProofPolicy;
80
+ resolutionPolicy: ResolutionPolicy;
81
+ settlementPolicy: SettlementPolicy;
82
+ deadlinePolicy: DeadlinePolicy;
83
+ }
84
+ export interface ContractMilestoneState extends MilestoneDefinition {
85
+ status: "pending" | "open" | "submitted" | "accepted" | "rejected";
86
+ evidenceBundleIds: string[];
87
+ oracleAttestationIds: string[];
88
+ acceptedBy?: string;
89
+ rejectedBy?: string;
90
+ rejectionReason?: string;
91
+ submittedBy?: string;
92
+ }
93
+ export interface ContractState {
94
+ objectId: string;
95
+ contractId: string;
96
+ originRef: OriginRef;
97
+ parties: string[];
98
+ sponsorDid?: string;
99
+ companyDid?: string;
100
+ scope: string;
101
+ deliverableSchema: DeliverableSchema;
102
+ proofPolicy: ProofPolicy;
103
+ resolutionPolicy: ResolutionPolicy;
104
+ settlementPolicy: SettlementPolicy;
105
+ deadlinePolicy: DeadlinePolicy;
106
+ milestones: Record<string, ContractMilestoneState>;
107
+ status: "active" | "paused" | "completed" | "canceled" | "disputed";
108
+ latestEventId: string;
109
+ eventIds: string[];
110
+ }
111
+ export type ContractEventKind = "contract.created" | "contract.milestone-opened" | "contract.milestone-submitted" | "contract.milestone-accepted" | "contract.milestone-rejected" | "contract.paused" | "contract.resumed" | "contract.completed" | "contract.canceled" | "contract.disputed";
112
+ export declare function applyContractEvent(currentState: ContractState | undefined, envelope: ProtocolEnvelope, refs: {
113
+ agreements: Map<string, AgreementState>;
114
+ listings: Map<string, ListingState>;
115
+ requests: Map<string, RequestState>;
116
+ offers: Map<string, OfferState>;
117
+ bids: Map<string, BidState>;
118
+ }): ContractState;
119
+ export declare function contractCreatedPayloadToJson(payload: ContractCreatedPayload): ProtocolJsonObject;
@@ -0,0 +1,404 @@
1
+ import { ProtocolConflictError, ProtocolValidationError } from "../errors.js";
2
+ import { assertIsoTimestamp } from "./shared.js";
3
+ function assertNonEmpty(value, fieldName) {
4
+ if (value.trim().length === 0) {
5
+ throw new ProtocolValidationError(`${fieldName} must not be blank`);
6
+ }
7
+ }
8
+ function assertUniqueStrings(values, fieldName) {
9
+ if (values.length === 0) {
10
+ throw new ProtocolValidationError(`${fieldName} must contain at least one entry`);
11
+ }
12
+ for (const value of values) {
13
+ assertNonEmpty(value, fieldName);
14
+ }
15
+ return [...new Set(values)].sort();
16
+ }
17
+ function assertHexHash(value, fieldName) {
18
+ if (!/^[a-f0-9]{64}$/i.test(value)) {
19
+ throw new ProtocolValidationError(`${fieldName} must be a 32-byte hex hash`);
20
+ }
21
+ }
22
+ function validateArtifactRef(ref, fieldName) {
23
+ assertNonEmpty(ref.artifactId, `${fieldName}.artifactId`);
24
+ assertHexHash(ref.hash, `${fieldName}.hash`);
25
+ }
26
+ function validateVerifierRef(ref, fieldName) {
27
+ assertNonEmpty(ref.verifierId, `${fieldName}.verifierId`);
28
+ if (ref.verifierDid) {
29
+ assertNonEmpty(ref.verifierDid, `${fieldName}.verifierDid`);
30
+ }
31
+ }
32
+ function validateProofPolicy(policy, fieldName) {
33
+ if (policy.allowedModes.length === 0) {
34
+ throw new ProtocolValidationError(`${fieldName}.allowedModes must contain at least one mode`);
35
+ }
36
+ if (policy.minArtifacts !== undefined && (!Number.isInteger(policy.minArtifacts) || policy.minArtifacts < 0)) {
37
+ throw new ProtocolValidationError(`${fieldName}.minArtifacts must be a non-negative integer`);
38
+ }
39
+ for (const verifierRef of policy.verifierRefs) {
40
+ validateVerifierRef(verifierRef, `${fieldName}.verifierRefs`);
41
+ }
42
+ }
43
+ function validateSettlementAdapterRef(ref, fieldName) {
44
+ assertNonEmpty(ref.adapterId, `${fieldName}.adapterId`);
45
+ if (ref.artifactRefs.some((entry) => entry.trim().length === 0)) {
46
+ throw new ProtocolValidationError(`${fieldName}.artifactRefs must not contain blank values`);
47
+ }
48
+ }
49
+ function validateSettlementPolicy(policy, fieldName) {
50
+ for (const [index, adapter] of policy.adapters.entries()) {
51
+ validateSettlementAdapterRef(adapter, `${fieldName}.adapters[${index}]`);
52
+ }
53
+ }
54
+ function validateResolutionPolicy(policy, fieldName) {
55
+ if (policy.mode === "deterministic" || policy.mode === "hybrid") {
56
+ if (policy.deterministicVerifierIds.length === 0) {
57
+ throw new ProtocolValidationError(`${fieldName}.deterministicVerifierIds must not be empty`);
58
+ }
59
+ }
60
+ if (policy.mode === "oracle" || policy.mode === "hybrid") {
61
+ if (!policy.oracleQuorum) {
62
+ throw new ProtocolValidationError(`${fieldName}.oracleQuorum is required for oracle or hybrid modes`);
63
+ }
64
+ if (policy.oracleQuorum.oracleDids.length === 0) {
65
+ throw new ProtocolValidationError(`${fieldName}.oracleQuorum.oracleDids must not be empty`);
66
+ }
67
+ if (!Number.isInteger(policy.oracleQuorum.quorum) || policy.oracleQuorum.quorum <= 0) {
68
+ throw new ProtocolValidationError(`${fieldName}.oracleQuorum.quorum must be a positive integer`);
69
+ }
70
+ if (policy.oracleQuorum.quorum > policy.oracleQuorum.oracleDids.length) {
71
+ throw new ProtocolValidationError(`${fieldName}.oracleQuorum.quorum cannot exceed oracleDids length`);
72
+ }
73
+ }
74
+ }
75
+ function validateDeliverableSchema(schema, fieldName) {
76
+ if (schema.schemaUri) {
77
+ assertNonEmpty(schema.schemaUri, `${fieldName}.schemaUri`);
78
+ }
79
+ if (schema.requiredArtifactKinds.some((entry) => entry.trim().length === 0)) {
80
+ throw new ProtocolValidationError(`${fieldName}.requiredArtifactKinds must not contain blank values`);
81
+ }
82
+ }
83
+ function validateMilestoneDefinition(definition, fieldName) {
84
+ assertNonEmpty(definition.milestoneId, `${fieldName}.milestoneId`);
85
+ assertNonEmpty(definition.title, `${fieldName}.title`);
86
+ validateDeliverableSchema(definition.deliverableSchema, `${fieldName}.deliverableSchema`);
87
+ validateProofPolicy(definition.proofPolicy, `${fieldName}.proofPolicy`);
88
+ for (const [index, adapter] of definition.settlementAdapters.entries()) {
89
+ validateSettlementAdapterRef(adapter, `${fieldName}.settlementAdapters[${index}]`);
90
+ }
91
+ }
92
+ function validateDeadlinePolicy(policy, milestones, fieldName) {
93
+ if (policy.contractExpiresAt) {
94
+ assertIsoTimestamp(policy.contractExpiresAt, `${fieldName}.contractExpiresAt`);
95
+ }
96
+ if (policy.gracePeriodHours !== undefined && (!Number.isInteger(policy.gracePeriodHours) || policy.gracePeriodHours < 0)) {
97
+ throw new ProtocolValidationError(`${fieldName}.gracePeriodHours must be a non-negative integer`);
98
+ }
99
+ for (const milestone of milestones) {
100
+ const deadline = policy.milestoneDeadlines[milestone.milestoneId];
101
+ if (deadline !== undefined) {
102
+ assertIsoTimestamp(deadline, `${fieldName}.milestoneDeadlines.${milestone.milestoneId}`);
103
+ }
104
+ }
105
+ }
106
+ function createMilestoneState(definition) {
107
+ return {
108
+ ...definition,
109
+ status: "pending",
110
+ evidenceBundleIds: [],
111
+ oracleAttestationIds: []
112
+ };
113
+ }
114
+ function ensureLatestPredecessor(state, envelope) {
115
+ if (!state) {
116
+ if (envelope.previousEventIds.length !== 0) {
117
+ throw new ProtocolConflictError("contract.created must not reference previous events");
118
+ }
119
+ return;
120
+ }
121
+ if (envelope.previousEventIds.length === 0 || !envelope.previousEventIds.includes(state.latestEventId)) {
122
+ throw new ProtocolConflictError("Contract events must reference the latest event");
123
+ }
124
+ }
125
+ function assertParty(state, actorDid) {
126
+ if (!state.parties.includes(actorDid)) {
127
+ throw new ProtocolConflictError("Contract event actor must be a party to the contract");
128
+ }
129
+ }
130
+ function lookupMilestone(state, milestoneId) {
131
+ const milestone = state.milestones[milestoneId];
132
+ if (!milestone) {
133
+ throw new ProtocolConflictError(`Unknown contract milestone: ${milestoneId}`);
134
+ }
135
+ return milestone;
136
+ }
137
+ function updateMilestone(state, milestoneId, updater) {
138
+ const milestone = lookupMilestone(state, milestoneId);
139
+ return {
140
+ ...state.milestones,
141
+ [milestoneId]: updater(milestone)
142
+ };
143
+ }
144
+ function validateCreatedPayload(payload) {
145
+ assertNonEmpty(payload.originRef.objectId, "ContractCreatedPayload.originRef.objectId");
146
+ payload.parties = assertUniqueStrings(payload.parties, "ContractCreatedPayload.parties");
147
+ if (payload.sponsorDid) {
148
+ assertNonEmpty(payload.sponsorDid, "ContractCreatedPayload.sponsorDid");
149
+ }
150
+ if (payload.companyDid) {
151
+ assertNonEmpty(payload.companyDid, "ContractCreatedPayload.companyDid");
152
+ }
153
+ assertNonEmpty(payload.scope, "ContractCreatedPayload.scope");
154
+ if (payload.milestones.length === 0) {
155
+ throw new ProtocolValidationError("ContractCreatedPayload.milestones must not be empty");
156
+ }
157
+ const seenMilestones = new Set();
158
+ for (const [index, milestone] of payload.milestones.entries()) {
159
+ validateMilestoneDefinition(milestone, `ContractCreatedPayload.milestones[${index}]`);
160
+ if (seenMilestones.has(milestone.milestoneId)) {
161
+ throw new ProtocolValidationError(`ContractCreatedPayload contains duplicate milestoneId ${milestone.milestoneId}`);
162
+ }
163
+ seenMilestones.add(milestone.milestoneId);
164
+ }
165
+ validateDeliverableSchema(payload.deliverableSchema, "ContractCreatedPayload.deliverableSchema");
166
+ validateProofPolicy(payload.proofPolicy, "ContractCreatedPayload.proofPolicy");
167
+ validateResolutionPolicy(payload.resolutionPolicy, "ContractCreatedPayload.resolutionPolicy");
168
+ validateSettlementPolicy(payload.settlementPolicy, "ContractCreatedPayload.settlementPolicy");
169
+ validateDeadlinePolicy(payload.deadlinePolicy, payload.milestones, "ContractCreatedPayload.deadlinePolicy");
170
+ return payload;
171
+ }
172
+ function validateOriginRef(payload, refs) {
173
+ switch (payload.originRef.objectKind) {
174
+ case "agreement":
175
+ if (!refs.agreements.get(payload.originRef.objectId)) {
176
+ throw new ProtocolConflictError("Contract origin agreement does not exist");
177
+ }
178
+ break;
179
+ case "listing":
180
+ if (!refs.listings.get(payload.originRef.objectId)) {
181
+ throw new ProtocolConflictError("Contract origin listing does not exist");
182
+ }
183
+ break;
184
+ case "request":
185
+ if (!refs.requests.get(payload.originRef.objectId)) {
186
+ throw new ProtocolConflictError("Contract origin request does not exist");
187
+ }
188
+ break;
189
+ case "offer": {
190
+ const offer = refs.offers.get(payload.originRef.objectId);
191
+ if (!offer) {
192
+ throw new ProtocolConflictError("Contract origin offer does not exist");
193
+ }
194
+ if (offer.status !== "accepted") {
195
+ throw new ProtocolConflictError("Contract origin offer must be accepted");
196
+ }
197
+ break;
198
+ }
199
+ case "bid": {
200
+ const bid = refs.bids.get(payload.originRef.objectId);
201
+ if (!bid) {
202
+ throw new ProtocolConflictError("Contract origin bid does not exist");
203
+ }
204
+ if (bid.status !== "accepted") {
205
+ throw new ProtocolConflictError("Contract origin bid must be accepted");
206
+ }
207
+ break;
208
+ }
209
+ }
210
+ }
211
+ function milestoneHasProof(milestone) {
212
+ return (milestone.evidenceBundleIds.length > 0 ||
213
+ milestone.oracleAttestationIds.length > 0 ||
214
+ (milestone.proofPolicy.allowedModes.includes("counterparty-acceptance") && milestone.acceptedBy !== undefined));
215
+ }
216
+ export function applyContractEvent(currentState, envelope, refs) {
217
+ if (envelope.objectKind !== "contract") {
218
+ throw new ProtocolValidationError("Envelope is not a contract event");
219
+ }
220
+ ensureLatestPredecessor(currentState, envelope);
221
+ if (!currentState) {
222
+ if (envelope.eventKind !== "contract.created") {
223
+ throw new ProtocolConflictError("The first contract event must be contract.created");
224
+ }
225
+ const payload = validateCreatedPayload(envelope.payload);
226
+ validateOriginRef(payload, refs);
227
+ if (!payload.parties.includes(envelope.actorDid)) {
228
+ throw new ProtocolConflictError("Contract creator must be included in the contract parties");
229
+ }
230
+ return {
231
+ objectId: envelope.objectId,
232
+ contractId: envelope.objectId,
233
+ originRef: payload.originRef,
234
+ parties: payload.parties,
235
+ ...(payload.sponsorDid ? { sponsorDid: payload.sponsorDid } : {}),
236
+ ...(payload.companyDid ? { companyDid: payload.companyDid } : {}),
237
+ scope: payload.scope,
238
+ deliverableSchema: payload.deliverableSchema,
239
+ proofPolicy: payload.proofPolicy,
240
+ resolutionPolicy: payload.resolutionPolicy,
241
+ settlementPolicy: payload.settlementPolicy,
242
+ deadlinePolicy: payload.deadlinePolicy,
243
+ milestones: Object.fromEntries(payload.milestones.map((milestone) => [milestone.milestoneId, createMilestoneState(milestone)])),
244
+ status: "active",
245
+ latestEventId: envelope.eventId,
246
+ eventIds: [envelope.eventId]
247
+ };
248
+ }
249
+ if (envelope.objectId !== currentState.contractId || envelope.subjectId !== currentState.contractId) {
250
+ throw new ProtocolConflictError("Contract events must target the contractId");
251
+ }
252
+ assertParty(currentState, envelope.actorDid);
253
+ switch (envelope.eventKind) {
254
+ case "contract.milestone-opened": {
255
+ const milestoneId = String(envelope.payload.milestoneId ?? "");
256
+ const milestones = updateMilestone(currentState, milestoneId, (milestone) => {
257
+ if (milestone.status !== "pending" && milestone.status !== "rejected") {
258
+ throw new ProtocolConflictError("Only pending or rejected milestones can be opened");
259
+ }
260
+ const nextMilestone = {
261
+ ...milestone,
262
+ status: "open"
263
+ };
264
+ delete nextMilestone.rejectedBy;
265
+ delete nextMilestone.rejectionReason;
266
+ return nextMilestone;
267
+ });
268
+ return {
269
+ ...currentState,
270
+ milestones,
271
+ latestEventId: envelope.eventId,
272
+ eventIds: [...currentState.eventIds, envelope.eventId]
273
+ };
274
+ }
275
+ case "contract.milestone-submitted": {
276
+ const payload = envelope.payload;
277
+ const milestones = updateMilestone(currentState, payload.milestoneId, (milestone) => {
278
+ if (milestone.status !== "open" && milestone.status !== "rejected") {
279
+ throw new ProtocolConflictError("Only open or rejected milestones can be submitted");
280
+ }
281
+ return {
282
+ ...milestone,
283
+ status: "submitted",
284
+ submittedBy: envelope.actorDid,
285
+ evidenceBundleIds: [...new Set([...(payload.evidenceBundleIds ?? []), ...milestone.evidenceBundleIds])].sort(),
286
+ oracleAttestationIds: [...new Set([...(payload.oracleAttestationIds ?? []), ...milestone.oracleAttestationIds])].sort()
287
+ };
288
+ });
289
+ return {
290
+ ...currentState,
291
+ milestones,
292
+ latestEventId: envelope.eventId,
293
+ eventIds: [...currentState.eventIds, envelope.eventId]
294
+ };
295
+ }
296
+ case "contract.milestone-accepted": {
297
+ const payload = envelope.payload;
298
+ const milestones = updateMilestone(currentState, payload.milestoneId, (milestone) => {
299
+ if (milestone.status !== "submitted" && milestone.status !== "open") {
300
+ throw new ProtocolConflictError("Only submitted or open milestones can be accepted");
301
+ }
302
+ const nextMilestone = {
303
+ ...milestone,
304
+ status: "accepted",
305
+ acceptedBy: envelope.actorDid,
306
+ evidenceBundleIds: [...new Set([...(payload.evidenceBundleIds ?? []), ...milestone.evidenceBundleIds])].sort(),
307
+ oracleAttestationIds: [...new Set([...(payload.oracleAttestationIds ?? []), ...milestone.oracleAttestationIds])].sort()
308
+ };
309
+ if (!milestoneHasProof(nextMilestone)) {
310
+ throw new ProtocolConflictError("Accepted milestones must reference evidence, oracle attestations, or explicit counterparty acceptance mode");
311
+ }
312
+ return nextMilestone;
313
+ });
314
+ return {
315
+ ...currentState,
316
+ milestones,
317
+ latestEventId: envelope.eventId,
318
+ eventIds: [...currentState.eventIds, envelope.eventId]
319
+ };
320
+ }
321
+ case "contract.milestone-rejected": {
322
+ const payload = envelope.payload;
323
+ assertNonEmpty(payload.reason, "contract.milestone-rejected.reason");
324
+ const milestones = updateMilestone(currentState, payload.milestoneId, (milestone) => {
325
+ if (milestone.status !== "submitted" && milestone.status !== "open") {
326
+ throw new ProtocolConflictError("Only submitted or open milestones can be rejected");
327
+ }
328
+ return {
329
+ ...milestone,
330
+ status: "rejected",
331
+ rejectedBy: envelope.actorDid,
332
+ rejectionReason: payload.reason
333
+ };
334
+ });
335
+ return {
336
+ ...currentState,
337
+ milestones,
338
+ latestEventId: envelope.eventId,
339
+ eventIds: [...currentState.eventIds, envelope.eventId]
340
+ };
341
+ }
342
+ case "contract.paused":
343
+ if (currentState.status !== "active") {
344
+ throw new ProtocolConflictError("Only active contracts can be paused");
345
+ }
346
+ return {
347
+ ...currentState,
348
+ status: "paused",
349
+ latestEventId: envelope.eventId,
350
+ eventIds: [...currentState.eventIds, envelope.eventId]
351
+ };
352
+ case "contract.resumed":
353
+ if (currentState.status !== "paused") {
354
+ throw new ProtocolConflictError("Only paused contracts can be resumed");
355
+ }
356
+ return {
357
+ ...currentState,
358
+ status: "active",
359
+ latestEventId: envelope.eventId,
360
+ eventIds: [...currentState.eventIds, envelope.eventId]
361
+ };
362
+ case "contract.completed":
363
+ if (currentState.status !== "active") {
364
+ throw new ProtocolConflictError("Only active contracts can be completed");
365
+ }
366
+ if (Object.values(currentState.milestones).some((milestone) => milestone.status !== "accepted" || !milestoneHasProof(milestone))) {
367
+ throw new ProtocolConflictError("Contracts can only complete once every milestone is accepted with proof");
368
+ }
369
+ return {
370
+ ...currentState,
371
+ status: "completed",
372
+ latestEventId: envelope.eventId,
373
+ eventIds: [...currentState.eventIds, envelope.eventId]
374
+ };
375
+ case "contract.canceled":
376
+ if (currentState.status === "completed") {
377
+ throw new ProtocolConflictError("Completed contracts cannot be canceled");
378
+ }
379
+ return {
380
+ ...currentState,
381
+ status: "canceled",
382
+ latestEventId: envelope.eventId,
383
+ eventIds: [...currentState.eventIds, envelope.eventId]
384
+ };
385
+ case "contract.disputed":
386
+ if (currentState.status === "completed" || currentState.status === "canceled") {
387
+ throw new ProtocolConflictError("Completed or canceled contracts cannot be disputed");
388
+ }
389
+ return {
390
+ ...currentState,
391
+ status: "disputed",
392
+ latestEventId: envelope.eventId,
393
+ eventIds: [...currentState.eventIds, envelope.eventId]
394
+ };
395
+ case "contract.created":
396
+ throw new ProtocolConflictError("contract.created cannot be appended twice");
397
+ default:
398
+ throw new ProtocolValidationError(`Unsupported contract event: ${envelope.eventKind}`);
399
+ }
400
+ }
401
+ export function contractCreatedPayloadToJson(payload) {
402
+ return payload;
403
+ }
404
+ //# sourceMappingURL=contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../src/protocol/contracts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ import { type ProtocolJsonObject, type ProtocolValue } from "./shared.js";
2
+ export type BitcoinNetwork = "bitcoin" | "testnet" | "signet" | "regtest";
3
+ export type LightningReferenceType = "bolt11" | "bolt12-offer" | "bolt12-invoice-request" | "custodial-payment-ref";
4
+ export interface PaymentEndpoint {
5
+ id: string;
6
+ network: BitcoinNetwork;
7
+ custodial: boolean;
8
+ accountId?: string;
9
+ nodeUri?: string;
10
+ bolt12Offer?: string;
11
+ capabilities: string[];
12
+ }
13
+ export interface CustodialWalletAttestationRef {
14
+ attestationId: string;
15
+ issuerDid: string;
16
+ subjectDid: string;
17
+ walletAccountId: string;
18
+ network: BitcoinNetwork;
19
+ currency: "BTC" | "SAT";
20
+ attestedBalanceSats: number;
21
+ attestedCapacitySats?: number;
22
+ attestedAt: string;
23
+ expiresAt: string;
24
+ artifactHash: string;
25
+ artifactUri?: string;
26
+ }
27
+ export interface FeedbackCredentialRef {
28
+ credentialId: string;
29
+ issuerDid: string;
30
+ subjectDid: string;
31
+ relatedContractId: string;
32
+ relatedAgreementId: string;
33
+ completionArtifactRef?: string;
34
+ rulingRef?: string;
35
+ summary: {
36
+ score: number;
37
+ maxScore: number;
38
+ headline?: string;
39
+ comment?: string;
40
+ };
41
+ issuedAt: string;
42
+ expiresAt?: string;
43
+ artifactHash: string;
44
+ artifactUri?: string;
45
+ revocationRef?: string;
46
+ }
47
+ export interface FeedbackCredentialRefState {
48
+ objectId: string;
49
+ credential: FeedbackCredentialRef;
50
+ status: "active" | "revoked";
51
+ latestEventId: string;
52
+ eventIds: string[];
53
+ }
54
+ export declare function validatePaymentEndpoint(endpoint: PaymentEndpoint): void;
55
+ export declare function validateCustodialWalletAttestationRef(attestation: CustodialWalletAttestationRef): void;
56
+ export declare function validateFeedbackCredentialRef(credential: FeedbackCredentialRef): void;
57
+ export declare function paymentEndpointToJson(endpoint: PaymentEndpoint): ProtocolJsonObject;
58
+ export declare function custodialWalletAttestationToJson(attestation: CustodialWalletAttestationRef): ProtocolJsonObject;
59
+ export declare function feedbackCredentialRefToJson(credential: FeedbackCredentialRef): ProtocolJsonObject;
60
+ export declare function isProtocolJsonObject(value: ProtocolValue): value is ProtocolJsonObject;
61
+ export declare function createCredentialArtifactHash(artifact: ProtocolValue | string | Buffer): string;
62
+ export declare function assertWalletAttestationArtifactMatches(attestation: CustodialWalletAttestationRef, artifact: ProtocolValue | string | Buffer): void;
63
+ export declare function assertFeedbackCredentialArtifactMatches(credential: FeedbackCredentialRef, artifact: ProtocolValue | string | Buffer): void;
64
+ export declare function applyFeedbackCredentialRefEvent(currentState: FeedbackCredentialRefState | undefined, envelope: {
65
+ objectKind: string;
66
+ objectId: string;
67
+ eventKind: string;
68
+ eventId: string;
69
+ previousEventIds: string[];
70
+ payload: ProtocolJsonObject;
71
+ }): FeedbackCredentialRefState;