@blue-repository/types 0.11.0 → 0.13.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 (46) hide show
  1. package/README.md +1 -1
  2. package/dist/meta.d.ts +2 -2
  3. package/dist/meta.d.ts.map +1 -1
  4. package/dist/meta.js +2 -0
  5. package/dist/meta.js.map +1 -1
  6. package/dist/packages/conversation/blue-ids.d.ts +7 -7
  7. package/dist/packages/conversation/blue-ids.js +7 -7
  8. package/dist/packages/conversation/contents/AcceptChangeWorkflow.d.ts +1 -1
  9. package/dist/packages/conversation/contents/AcceptChangeWorkflow.js +1 -1
  10. package/dist/packages/conversation/contents/AcceptChangeWorkflow.js.map +1 -1
  11. package/dist/packages/conversation/contents/ChangeOperation.d.ts +1 -1
  12. package/dist/packages/conversation/contents/ChangeOperation.js +1 -1
  13. package/dist/packages/conversation/contents/ChangeRequest.d.ts +8 -8
  14. package/dist/packages/conversation/contents/ChangeRequest.js +8 -8
  15. package/dist/packages/conversation/contents/ChangeRequest.js.map +1 -1
  16. package/dist/packages/conversation/contents/ChangeWorkflow.d.ts +2 -2
  17. package/dist/packages/conversation/contents/ChangeWorkflow.js +2 -2
  18. package/dist/packages/conversation/contents/ChangeWorkflow.js.map +1 -1
  19. package/dist/packages/conversation/contents/ProposeChangeOperation.d.ts +1 -1
  20. package/dist/packages/conversation/contents/ProposeChangeOperation.js +1 -1
  21. package/dist/packages/conversation/contents/ProposeChangeWorkflow.d.ts +2 -2
  22. package/dist/packages/conversation/contents/ProposeChangeWorkflow.js +2 -2
  23. package/dist/packages/conversation/contents/ProposeChangeWorkflow.js.map +1 -1
  24. package/dist/packages/conversation/contents/RejectChangeWorkflow.d.ts +1 -1
  25. package/dist/packages/conversation/contents/RejectChangeWorkflow.js +1 -1
  26. package/dist/packages/conversation/contents/RejectChangeWorkflow.js.map +1 -1
  27. package/dist/packages/conversation/contents/index.d.ts +204 -204
  28. package/dist/packages/conversation/contents/index.d.ts.map +1 -1
  29. package/dist/packages/conversation/contents/index.js +21 -21
  30. package/dist/packages/conversation/contents/index.js.map +1 -1
  31. package/dist/packages/conversation/index.d.ts +255 -255
  32. package/dist/packages/conversation/meta.d.ts +28 -28
  33. package/dist/packages/conversation/meta.js +21 -21
  34. package/dist/packages/conversation/meta.js.map +1 -1
  35. package/dist/packages/conversation/schemas/ChangeOperation.d.ts +5 -5
  36. package/dist/packages/conversation/schemas/ChangeRequest.d.ts +3 -3
  37. package/dist/packages/conversation/schemas/ChangeRequest.js +1 -1
  38. package/dist/packages/conversation/schemas/ChangeRequest.js.map +1 -1
  39. package/dist/packages/conversation/schemas/ChangeWorkflow.d.ts +5 -5
  40. package/dist/packages/conversation/schemas/ProposeChangeOperation.d.ts +5 -5
  41. package/dist/packages/conversation/schemas/ProposeChangeWorkflow.d.ts +5 -5
  42. package/dist/packages/conversation/schemas/index.d.ts +30 -30
  43. package/dist/packages/conversation/schemas/index.js +7 -7
  44. package/dist/packages/conversation/schemas/index.js.map +1 -1
  45. package/dist/repository.d.ts +256 -256
  46. package/package.json +2 -2
@@ -1,6 +1,6 @@
1
1
  export declare const repository: {
2
2
  readonly name: "Blue Repository";
3
- readonly repositoryVersions: readonly ["CQn9FCus2xkhgCdSZQqKQmKGRLKnqTboSyiJXn3pya68"];
3
+ readonly repositoryVersions: readonly ["CQn9FCus2xkhgCdSZQqKQmKGRLKnqTboSyiJXn3pya68", "22xxEjtpjUSpttaRiHX5XbmGNcFhpgLipai685YMdMWv", "58apGqo2EExaKTQQJmjASbj8p7tHvrWkoQVjWeWzaox5"];
4
4
  readonly packages: {
5
5
  readonly common: {
6
6
  readonly contents: {
@@ -78,6 +78,44 @@ export declare const repository: {
78
78
  readonly blueId: "36epvrpVHZLjapbeZsNodz2NDnm7XZeNZcnkWHgkP1pp";
79
79
  };
80
80
  };
81
+ readonly '29xcoYKf9p47xagTDwGLuQyFrT9WBN3Sd7FaPtqLvydy': {
82
+ readonly description: "Applies a previously proposed change and removes its proposal state.";
83
+ readonly name: "Accept Change Workflow";
84
+ readonly postfix: {
85
+ readonly description: "Optional postfix used while building proposed change state key.";
86
+ readonly type: {
87
+ readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
88
+ };
89
+ };
90
+ readonly steps: {
91
+ readonly items: readonly [{
92
+ readonly code: {
93
+ readonly type: {
94
+ readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
95
+ };
96
+ readonly value: "const invalid = (reason) => ({\n changeset: [],\n events: [{ type: 'Conversation/Proposed Change Invalid', reason }]\n});\n\nconst isArray = Array.isArray;\n\nconst postfixValue = currentContract?.postfix || '';\nconst proposedPath = '/proposedChange' + postfixValue;\n\nconst change = document(proposedPath);\nif (!change) {\n return invalid('no proposed change at ' + proposedPath);\n}\n\nconst requestChangeset = isArray(change?.changeset) ? change.changeset : [];\nconst sectionChanges = change.sectionChanges;\n\nconst entryPath = (entry) => `${entry?.path || ''}`;\nconst isContractsPath = (p) => p === '/contracts' || p.startsWith('/contracts/');\nconst isProposedChangePath = (p) => p.startsWith('/proposedChange');\n\nconst contracts = document('/contracts') || {};\nconst policy = Object.values(contracts).find((c) => c?.requireSectionChanges !== undefined);\nconst policyEnabled = !!policy && policy.requireSectionChanges !== false;\n\nif (\n policyEnabled &&\n requestChangeset.some((e) => isContractsPath(entryPath(e)))\n) {\n return invalid('changeset cannot modify /contracts when Contracts Change Policy is enabled');\n}\n\nif (requestChangeset.some((e) => isProposedChangePath(entryPath(e)))) {\n return invalid('changeset cannot modify /proposedChange');\n}\n\nconst escapePointer = (value) =>\n `${value}`.split('~').join('~0').split('/').join('~1');\n\nconst contractPtr = (key) => '/contracts/' + escapePointer(key);\n\nconst isMetaKey = (key) =>\n key === 'type' || key === 'keyType' || key === 'valueType' || key === 'description';\n\nconst contractKeysFromMap = (contractsMap) =>\n Object.keys(contractsMap || {}).filter((k) => !isMetaKey(k));\n\nconst normalizeSection = (section, contractKeys) => ({\n ...(section || {}),\n type: 'Conversation/Document Section',\n relatedContracts: (section?.relatedContracts?.length ? section.relatedContracts : contractKeys)\n});\n\nconst hasMatchingRelatedContracts = (section, contractKeys) => {\n const related = isArray(section?.relatedContracts)\n ? section.relatedContracts.map((value) => `${value}`)\n : [];\n if (!related.length) {\n return true;\n }\n if (related.length !== contractKeys.length) {\n return false;\n }\n const relatedMap = {};\n for (const value of related) {\n const key = `${value}`;\n relatedMap[key] = (relatedMap[key] || 0) + 1;\n }\n if (Object.keys(relatedMap).length !== contractKeys.length) {\n return false;\n }\n for (const key of contractKeys) {\n if (!relatedMap[key]) {\n return false;\n }\n }\n return true;\n};\n\nconst sectionChangeset = [];\nconst seenSectionKeys = {};\nconst seenContractKeys = {};\nconst existingContractKeys = {};\nfor (const key of Object.keys(contracts || {}).filter((k) => !isMetaKey(k))) {\n existingContractKeys[key] = true;\n}\n\nconst trackSectionKey = (sectionKey) => {\n if (seenSectionKeys[sectionKey]) {\n return invalid(`section key duplicated in sectionChanges: ${sectionKey}`);\n }\n seenSectionKeys[sectionKey] = true;\n return null;\n};\n\nconst trackContractKey = (sectionKey, contractKey) => {\n const existingSection = seenContractKeys[contractKey];\n if (existingSection && existingSection !== sectionKey) {\n return invalid(`contract key used by multiple sections in request: ${contractKey}`);\n }\n seenContractKeys[contractKey] = sectionKey;\n return null;\n};\n\nconst addList = isArray(sectionChanges?.add) ? sectionChanges.add : [];\nfor (const entry of addList) {\n const sectionKey = `${entry?.sectionKey || ''}`;\n if (!sectionKey) return invalid('sectionChanges.add is missing sectionKey');\n\n const sectionKeyDup = trackSectionKey(sectionKey);\n if (sectionKeyDup) return sectionKeyDup;\n\n if (existingContractKeys[sectionKey]) {\n return invalid(`contract key already exists at ${contractPtr(sectionKey)}`);\n }\n\n const contractsMap = entry?.contracts || {};\n const contractKeys = contractKeysFromMap(contractsMap).map((key) => `${key}`);\n\n if (!hasMatchingRelatedContracts(entry?.section, contractKeys)) {\n return invalid('relatedContracts must match contracts');\n }\n\n for (const key of contractKeys) {\n if (existingContractKeys[key]) {\n return invalid(`contract key already exists at ${contractPtr(key)}`);\n }\n const dup = trackContractKey(sectionKey, key);\n if (dup) return dup;\n }\n\n for (const key of contractKeys) {\n sectionChangeset.push({ op: 'add', path: contractPtr(key), val: contractsMap[key] });\n }\n\n sectionChangeset.push({\n op: 'add',\n path: contractPtr(sectionKey),\n val: normalizeSection(entry?.section, contractKeys)\n });\n}\n\nconst modifyList = isArray(sectionChanges?.modify) ? sectionChanges.modify : [];\nfor (const entry of modifyList) {\n const sectionKey = `${entry?.sectionKey || ''}`;\n if (!sectionKey) return invalid('sectionChanges.modify is missing sectionKey');\n\n const sectionKeyDup = trackSectionKey(sectionKey);\n if (sectionKeyDup) return sectionKeyDup;\n\n const existingRelated = isArray(contracts?.[sectionKey]?.relatedContracts)\n ? contracts[sectionKey].relatedContracts.map((value) => `${value}`)\n : [];\n const existingRelatedMap = {};\n for (const value of existingRelated) {\n existingRelatedMap[`${value}`] = true;\n }\n\n const contractsMap = entry?.contracts || {};\n const contractKeys = contractKeysFromMap(contractsMap).map((key) => `${key}`);\n\n if (!hasMatchingRelatedContracts(entry?.section, contractKeys)) {\n return invalid('relatedContracts must match contracts');\n }\n\n for (const key of contractKeys) {\n const dup = trackContractKey(sectionKey, key);\n if (dup) return dup;\n if (existingContractKeys[key] && !existingRelatedMap[key]) {\n return invalid(`contract key already exists at ${contractPtr(key)}`);\n }\n }\n\n for (const key of contractKeys) {\n sectionChangeset.push({ op: 'add', path: contractPtr(key), val: contractsMap[key] });\n }\n\n for (const oldKey of existingRelated) {\n if (contractKeys.indexOf(oldKey) === -1) {\n sectionChangeset.push({ op: 'remove', path: contractPtr(oldKey) });\n }\n }\n\n sectionChangeset.push({\n op: 'add',\n path: contractPtr(sectionKey),\n val: normalizeSection(entry?.section, contractKeys)\n });\n}\n\nconst removeList = isArray(sectionChanges?.remove) ? sectionChanges.remove : [];\nfor (const entry of removeList) {\n const sectionKey = `${entry?.sectionKey || entry || ''}`;\n if (!sectionKey) return invalid('sectionChanges.remove is missing sectionKey');\n\n const related = isArray(contracts?.[sectionKey]?.relatedContracts)\n ? contracts[sectionKey].relatedContracts\n : [];\n\n for (const key of related) {\n sectionChangeset.push({ op: 'remove', path: contractPtr(key) });\n }\n sectionChangeset.push({ op: 'remove', path: contractPtr(sectionKey) });\n}\n\nconst combined = sectionChangeset.concat(requestChangeset);\n\nif (combined.length === 0) {\n return invalid('no changes provided');\n}\n\nreturn {\n changeset: combined.concat({ op: 'remove', path: proposedPath })\n};\n";
97
+ };
98
+ readonly name: "Prepare";
99
+ readonly type: {
100
+ readonly blueId: "ExZxT61PSpWHpEAtP2WKMXXqxEYN7Z13j7Zv36Dp99kS";
101
+ };
102
+ }, {
103
+ readonly changeset: {
104
+ readonly type: {
105
+ readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
106
+ };
107
+ readonly value: "${steps.Prepare.changeset}";
108
+ };
109
+ readonly name: "Apply";
110
+ readonly type: {
111
+ readonly blueId: "FtHZJzH4hqAoGxFBjsmy1svfT4BwEBB4aHpFSZycZLLa";
112
+ };
113
+ }];
114
+ };
115
+ readonly type: {
116
+ readonly blueId: "CGdxkNjPcsdescqLPz6SNLsMyak6demQQr7RoKNHbCyv";
117
+ };
118
+ };
81
119
  readonly '2bSWEoMSZwzf32Hnr4BDVsuq8NRjrWEpnhZvMZAJGhh2': {
82
120
  readonly description: "Conversation workflow step that enqueues an event as part of the workflow.\n- Gas accounting (when and what is charged):\n - Base step charge (once per run of this step): 30.\n - Expression/template resolution under \"/event\" (if present):\n - Expressions run in the deterministic QuickJS VM (same sandbox and\n bindings as the JavaScript Code step).\n - VM gas is converted to host gas as:\n hostGas = ceil(wasmFuel / 1700)\n (calibration factor currently 1700 fuel per host gas unit).\n - Any document(<pointer>) used inside expressions/templates charges\n per call: 8 + depth(pointer) + ceil(snapshotBytes/100).\n - Event emission (enqueue): 20 + ceil(eventBytes/100) for the final event\n payload after expression resolution.\n";
83
121
  readonly event: {
@@ -88,18 +126,6 @@ export declare const repository: {
88
126
  readonly blueId: "HYsLiqsqk7t98d5fK6YxKEQGeqBaHNVjM4rRNdxK4yUW";
89
127
  };
90
128
  };
91
- readonly '2mJhqggRy7YTHK5bSeAitqhhjynpe8mApvQXXpcwPCxx': {
92
- readonly description: "Operation to propose a document change for later acceptance or rejection.";
93
- readonly name: "Propose Change Operation";
94
- readonly request: {
95
- readonly type: {
96
- readonly blueId: "9KDfK6k1HBAyHckj5VuWXFMLkgY5cJBESKT4eoq1bnrw";
97
- };
98
- };
99
- readonly type: {
100
- readonly blueId: "BoAiqVUZv9Fum3wFqaX2JnQMBHJLxJSo2V9U2UBmCfsC";
101
- };
102
- };
103
129
  readonly '36epvrpVHZLjapbeZsNodz2NDnm7XZeNZcnkWHgkP1pp': {
104
130
  readonly description: "The base type for any event that is a direct response to a prior Request event.\n";
105
131
  readonly inResponseTo: {
@@ -132,6 +158,44 @@ export declare const repository: {
132
158
  };
133
159
  };
134
160
  };
161
+ readonly '4pFvBSYyitoq8rWqTmY5rLywU2tpZsivDUCAo5vwoAT9': {
162
+ readonly description: "Applies a requested changeset immediately to the document.";
163
+ readonly name: "Change Workflow";
164
+ readonly request: {
165
+ readonly description: "Expected request payload for this workflow.";
166
+ readonly type: {
167
+ readonly blueId: "FW7iYkzig4fepCdwfCdgNJw4DQ1fKwnAUf3YpjgfTPmG";
168
+ };
169
+ };
170
+ readonly steps: {
171
+ readonly items: readonly [{
172
+ readonly code: {
173
+ readonly type: {
174
+ readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
175
+ };
176
+ readonly value: "const invalid = (reason) => ({\n changeset: [],\n events: [{ type: 'Conversation/Proposed Change Invalid', reason }]\n});\n\nconst isArray = Array.isArray;\n\nconst change = event.message.request;\n\nconst summary = change?.summary;\nif (!summary || typeof summary !== 'string') {\n return invalid('summary is missing');\n}\n\nconst requestChangeset = isArray(change?.changeset) ? change.changeset : [];\nconst sectionChanges = change.sectionChanges;\n\nconst entryPath = (entry) => `${entry?.path || ''}`;\nconst isContractsPath = (p) => p === '/contracts' || p.startsWith('/contracts/');\nconst isProposedChangePath = (p) => p.startsWith('/proposedChange');\n\nconst contracts = document('/contracts') || {};\nconst policy = Object.values(contracts).find((c) => c?.requireSectionChanges !== undefined);\nconst policyEnabled = !!policy && policy.requireSectionChanges !== false;\n\nif (\n policyEnabled &&\n requestChangeset.some((e) => isContractsPath(entryPath(e)))\n) {\n return invalid('changeset cannot modify /contracts when Contracts Change Policy is enabled');\n}\n\nif (requestChangeset.some((e) => isProposedChangePath(entryPath(e)))) {\n return invalid('changeset cannot modify /proposedChange');\n}\n\nconst escapePointer = (value) =>\n `${value}`.split('~').join('~0').split('/').join('~1');\n\nconst contractPtr = (key) => '/contracts/' + escapePointer(key);\n\nconst isMetaKey = (key) =>\n key === 'type' || key === 'keyType' || key === 'valueType' || key === 'description';\n\nconst contractKeysFromMap = (contractsMap) =>\n Object.keys(contractsMap || {}).filter((k) => !isMetaKey(k));\n\nconst normalizeSection = (section, contractKeys) => ({\n ...(section || {}),\n type: 'Conversation/Document Section',\n relatedContracts: (section?.relatedContracts?.length ? section.relatedContracts : contractKeys)\n});\n\nconst hasMatchingRelatedContracts = (section, contractKeys) => {\n const related = isArray(section?.relatedContracts)\n ? section.relatedContracts.map((value) => `${value}`)\n : [];\n if (!related.length) {\n return true;\n }\n if (related.length !== contractKeys.length) {\n return false;\n }\n const relatedMap = {};\n for (const value of related) {\n const key = `${value}`;\n relatedMap[key] = (relatedMap[key] || 0) + 1;\n }\n if (Object.keys(relatedMap).length !== contractKeys.length) {\n return false;\n }\n for (const key of contractKeys) {\n if (!relatedMap[key]) {\n return false;\n }\n }\n return true;\n};\n\nconst sectionChangeset = [];\nconst seenSectionKeys = {};\nconst seenContractKeys = {};\nconst existingContractKeys = {};\nfor (const key of Object.keys(contracts || {}).filter((k) => !isMetaKey(k))) {\n existingContractKeys[key] = true;\n}\n\nconst trackSectionKey = (sectionKey) => {\n if (seenSectionKeys[sectionKey]) {\n return invalid(`section key duplicated in sectionChanges: ${sectionKey}`);\n }\n seenSectionKeys[sectionKey] = true;\n return null;\n};\n\nconst trackContractKey = (sectionKey, contractKey) => {\n const existingSection = seenContractKeys[contractKey];\n if (existingSection && existingSection !== sectionKey) {\n return invalid(`contract key used by multiple sections in request: ${contractKey}`);\n }\n seenContractKeys[contractKey] = sectionKey;\n return null;\n};\n\nconst addList = isArray(sectionChanges?.add) ? sectionChanges.add : [];\nfor (const entry of addList) {\n const sectionKey = `${entry?.sectionKey || ''}`;\n if (!sectionKey) return invalid('sectionChanges.add is missing sectionKey');\n\n const sectionKeyDup = trackSectionKey(sectionKey);\n if (sectionKeyDup) return sectionKeyDup;\n\n if (existingContractKeys[sectionKey]) {\n return invalid(`contract key already exists at ${contractPtr(sectionKey)}`);\n }\n\n const contractsMap = entry?.contracts || {};\n const contractKeys = contractKeysFromMap(contractsMap).map((key) => `${key}`);\n\n if (!hasMatchingRelatedContracts(entry?.section, contractKeys)) {\n return invalid('relatedContracts must match contracts');\n }\n\n for (const key of contractKeys) {\n if (existingContractKeys[key]) {\n return invalid(`contract key already exists at ${contractPtr(key)}`);\n }\n const dup = trackContractKey(sectionKey, key);\n if (dup) return dup;\n }\n\n for (const key of contractKeys) {\n sectionChangeset.push({ op: 'add', path: contractPtr(key), val: contractsMap[key] });\n }\n\n sectionChangeset.push({\n op: 'add',\n path: contractPtr(sectionKey),\n val: normalizeSection(entry?.section, contractKeys)\n });\n}\n\nconst modifyList = isArray(sectionChanges?.modify) ? sectionChanges.modify : [];\nfor (const entry of modifyList) {\n const sectionKey = `${entry?.sectionKey || ''}`;\n if (!sectionKey) return invalid('sectionChanges.modify is missing sectionKey');\n\n const sectionKeyDup = trackSectionKey(sectionKey);\n if (sectionKeyDup) return sectionKeyDup;\n\n const existingRelated = isArray(contracts?.[sectionKey]?.relatedContracts)\n ? contracts[sectionKey].relatedContracts.map((value) => `${value}`)\n : [];\n const existingRelatedMap = {};\n for (const value of existingRelated) {\n existingRelatedMap[`${value}`] = true;\n }\n\n const contractsMap = entry?.contracts || {};\n const contractKeys = contractKeysFromMap(contractsMap).map((key) => `${key}`);\n\n if (!hasMatchingRelatedContracts(entry?.section, contractKeys)) {\n return invalid('relatedContracts must match contracts');\n }\n\n for (const key of contractKeys) {\n const dup = trackContractKey(sectionKey, key);\n if (dup) return dup;\n if (existingContractKeys[key] && !existingRelatedMap[key]) {\n return invalid(`contract key already exists at ${contractPtr(key)}`);\n }\n }\n\n for (const key of contractKeys) {\n sectionChangeset.push({ op: 'add', path: contractPtr(key), val: contractsMap[key] });\n }\n\n for (const oldKey of existingRelated) {\n if (contractKeys.indexOf(oldKey) === -1) {\n sectionChangeset.push({ op: 'remove', path: contractPtr(oldKey) });\n }\n }\n\n sectionChangeset.push({\n op: 'add',\n path: contractPtr(sectionKey),\n val: normalizeSection(entry?.section, contractKeys)\n });\n}\n\nconst removeList = isArray(sectionChanges?.remove) ? sectionChanges.remove : [];\nfor (const entry of removeList) {\n const sectionKey = `${entry?.sectionKey || entry || ''}`;\n if (!sectionKey) return invalid('sectionChanges.remove is missing sectionKey');\n\n const related = isArray(contracts?.[sectionKey]?.relatedContracts)\n ? contracts[sectionKey].relatedContracts\n : [];\n\n for (const key of related) {\n sectionChangeset.push({ op: 'remove', path: contractPtr(key) });\n }\n sectionChangeset.push({ op: 'remove', path: contractPtr(sectionKey) });\n}\n\nconst combined = sectionChangeset.concat(requestChangeset);\n\nif (combined.length === 0) {\n return invalid('no changes provided');\n}\n\nreturn { changeset: combined };\n";
177
+ };
178
+ readonly name: "Prepare";
179
+ readonly type: {
180
+ readonly blueId: "ExZxT61PSpWHpEAtP2WKMXXqxEYN7Z13j7Zv36Dp99kS";
181
+ };
182
+ }, {
183
+ readonly changeset: {
184
+ readonly type: {
185
+ readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
186
+ };
187
+ readonly value: "${steps.Prepare.changeset}";
188
+ };
189
+ readonly name: "Apply";
190
+ readonly type: {
191
+ readonly blueId: "FtHZJzH4hqAoGxFBjsmy1svfT4BwEBB4aHpFSZycZLLa";
192
+ };
193
+ }];
194
+ };
195
+ readonly type: {
196
+ readonly blueId: "CGdxkNjPcsdescqLPz6SNLsMyak6demQQr7RoKNHbCyv";
197
+ };
198
+ };
135
199
  readonly '4T5AmhKAXSJAAHDEjtVJ2FQgCyz2qyd9qG5uoh627Ux6': {
136
200
  readonly description: "Operation to reject a previously proposed change.";
137
201
  readonly name: "Reject Change Operation";
@@ -418,6 +482,50 @@ export declare const repository: {
418
482
  };
419
483
  };
420
484
  };
485
+ readonly '7dUt8jiX5vGeZL7wVzWFA8uEw37T6oPgC8KyDZmqxeSj': {
486
+ readonly description: "Stores a proposed change under /proposedChange{postfix}.";
487
+ readonly name: "Propose Change Workflow";
488
+ readonly postfix: {
489
+ readonly description: "Optional postfix used while building proposed change state key.";
490
+ readonly type: {
491
+ readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
492
+ };
493
+ };
494
+ readonly request: {
495
+ readonly description: "Expected request payload for this workflow.";
496
+ readonly type: {
497
+ readonly blueId: "FW7iYkzig4fepCdwfCdgNJw4DQ1fKwnAUf3YpjgfTPmG";
498
+ };
499
+ };
500
+ readonly steps: {
501
+ readonly items: readonly [{
502
+ readonly code: {
503
+ readonly type: {
504
+ readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
505
+ };
506
+ readonly value: "const invalid = (reason) => ({\n changeset: [],\n events: [{ type: 'Conversation/Proposed Change Invalid', reason }]\n});\n\nconst request = event.message.request;\n\nconst summary = request?.summary;\nif (!summary || typeof summary !== 'string') {\n return invalid('summary is missing');\n}\n\nconst postfixValue = currentContract?.postfix || '';\nconst path = '/proposedChange' + postfixValue;\n\nif (document(path)) {\n return invalid('proposed change already exists at ' + path);\n}\n\nreturn {\n changeset: [{ op: 'add', path, val: request }]\n};\n";
507
+ };
508
+ readonly name: "Prepare";
509
+ readonly type: {
510
+ readonly blueId: "ExZxT61PSpWHpEAtP2WKMXXqxEYN7Z13j7Zv36Dp99kS";
511
+ };
512
+ }, {
513
+ readonly changeset: {
514
+ readonly type: {
515
+ readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
516
+ };
517
+ readonly value: "${steps.Prepare.changeset}";
518
+ };
519
+ readonly name: "Apply";
520
+ readonly type: {
521
+ readonly blueId: "FtHZJzH4hqAoGxFBjsmy1svfT4BwEBB4aHpFSZycZLLa";
522
+ };
523
+ }];
524
+ };
525
+ readonly type: {
526
+ readonly blueId: "CGdxkNjPcsdescqLPz6SNLsMyak6demQQr7RoKNHbCyv";
527
+ };
528
+ };
421
529
  readonly '7JqBn4KcmZbHBBiQf3CAfpHBNaTKS1qhtkATsF7f6Sxg': {
422
530
  readonly bootstrapAssignee: {
423
531
  readonly description: "Channel name of a participant in the requesting document which is asked to bootstrap the requested document";
@@ -530,45 +638,58 @@ export declare const repository: {
530
638
  readonly blueId: "5Wz4G9qcnBJnntYRkz4dgLK5bSuoMpYJZj4j5M59z4we";
531
639
  };
532
640
  };
533
- readonly '9h1AhEexkxxKLYv1NHbEESYCPtvW7Nt51msGtuQC5jWK': {
534
- readonly name: "Customer Consent Revoked";
535
- readonly reason: {
641
+ readonly '9fnXwi4Za8hjEj6zDSEjhbA5dLrDzs7sxoDMGLmRT2Gz': {
642
+ readonly description: "Discards a previously proposed change by removing its proposal state.";
643
+ readonly name: "Reject Change Workflow";
644
+ readonly postfix: {
645
+ readonly description: "Optional postfix used while building proposed change state key.";
536
646
  readonly type: {
537
647
  readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
538
648
  };
539
649
  };
540
- readonly revokedAt: {
541
- readonly type: {
542
- readonly blueId: "GQaGqFxHDz64L1c9QkCbz52ths6bMVtpHnw4QDngzQYs";
543
- };
650
+ readonly steps: {
651
+ readonly items: readonly [{
652
+ readonly code: {
653
+ readonly type: {
654
+ readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
655
+ };
656
+ readonly value: "const invalid = (reason) => ({\n changeset: [],\n events: [{ type: 'Conversation/Proposed Change Invalid', reason }]\n});\n\nconst postfixValue = currentContract?.postfix || '';\nconst path = '/proposedChange' + postfixValue;\n\nif (!document(path)) {\n return invalid('no proposed change at ' + path);\n}\n\nreturn {\n changeset: [{ op: 'remove', path }]\n};\n";
657
+ };
658
+ readonly name: "Prepare";
659
+ readonly type: {
660
+ readonly blueId: "ExZxT61PSpWHpEAtP2WKMXXqxEYN7Z13j7Zv36Dp99kS";
661
+ };
662
+ }, {
663
+ readonly changeset: {
664
+ readonly type: {
665
+ readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
666
+ };
667
+ readonly value: "${steps.Prepare.changeset}";
668
+ };
669
+ readonly name: "Apply";
670
+ readonly type: {
671
+ readonly blueId: "FtHZJzH4hqAoGxFBjsmy1svfT4BwEBB4aHpFSZycZLLa";
672
+ };
673
+ }];
544
674
  };
545
675
  readonly type: {
546
- readonly blueId: "5Wz4G9qcnBJnntYRkz4dgLK5bSuoMpYJZj4j5M59z4we";
676
+ readonly blueId: "CGdxkNjPcsdescqLPz6SNLsMyak6demQQr7RoKNHbCyv";
547
677
  };
548
678
  };
549
- readonly '9KDfK6k1HBAyHckj5VuWXFMLkgY5cJBESKT4eoq1bnrw': {
550
- readonly changeDescription: {
551
- readonly description: "Required human-readable summary used for review and audit.";
679
+ readonly '9h1AhEexkxxKLYv1NHbEESYCPtvW7Nt51msGtuQC5jWK': {
680
+ readonly name: "Customer Consent Revoked";
681
+ readonly reason: {
552
682
  readonly type: {
553
683
  readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
554
684
  };
555
685
  };
556
- readonly changeset: {
557
- readonly description: "RFC 6902 patch entries outside /contracts (blocked by policy when touching /contracts).";
558
- readonly itemType: {
559
- readonly blueId: "Bz49DbfqKC1yJeCfv5RYPZUKTfb7rtZnmreCaz4RsXn5";
560
- };
686
+ readonly revokedAt: {
561
687
  readonly type: {
562
- readonly blueId: "6aehfNAxHLC1PHHoDr3tYtFH3RWNbiWdFancJ1bypXEY";
688
+ readonly blueId: "GQaGqFxHDz64L1c9QkCbz52ths6bMVtpHnw4QDngzQYs";
563
689
  };
564
690
  };
565
- readonly description: "Payload for propose/make change operations (changeset + sectionChanges).";
566
- readonly name: "Change Request";
567
- readonly sectionChanges: {
568
- readonly description: "Section-based /contracts mutations (required when Contracts Change Policy is enabled).";
569
- readonly type: {
570
- readonly blueId: "DEmFwGa1sWm2BKhrN98LREKiB8j8B8kFAo7KBkkaojnN";
571
- };
691
+ readonly type: {
692
+ readonly blueId: "5Wz4G9qcnBJnntYRkz4dgLK5bSuoMpYJZj4j5M59z4we";
572
693
  };
573
694
  };
574
695
  readonly '9xv7YjqsSn7W7P8rnUhSpdWGfSrgL4Jt3cmiACJT5VQs': {
@@ -642,44 +763,6 @@ export declare const repository: {
642
763
  readonly blueId: "8f9UhHMbRe62sFgzQVheToaJPYi7t7HPNVvpQTbqfL5n";
643
764
  };
644
765
  };
645
- readonly AKNj5zwzgAkXZo3psikJfoVxUcNfMBVgDrf4HDGWL1gm: {
646
- readonly description: "Applies a requested changeset immediately to the document.";
647
- readonly name: "Change Workflow";
648
- readonly request: {
649
- readonly description: "Expected request payload for this workflow.";
650
- readonly type: {
651
- readonly blueId: "9KDfK6k1HBAyHckj5VuWXFMLkgY5cJBESKT4eoq1bnrw";
652
- };
653
- };
654
- readonly steps: {
655
- readonly items: readonly [{
656
- readonly code: {
657
- readonly type: {
658
- readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
659
- };
660
- readonly value: "const issues = [];\n\nconst request = event.message.request || {};\n\nconst changeDescription = request.changeDescription;\nconst rawChangeset = request.changeset;\nconst rawSectionChanges = request.sectionChanges;\nconst requestSectionChanges = rawSectionChanges || {};\n\nconst toText = (value) => {\n const raw = value && value.value ? value.value : value;\n return raw && raw.trim ? raw.trim() : '';\n};\nconst asList = (value) => Array.isArray(value) ? value : [];\nconst hasType = (value) => value && value.type;\nconst escapePointer = (value) => {\n const text = toText(value);\n return text.split('~').join('~0').split('/').join('~1');\n};\nconst requestChangeset = asList(rawChangeset);\n\nconst uniqueKeys = (values, label) => {\n const seen = new Set();\n const output = [];\n for (const value of values) {\n const key = toText(value);\n if (!key) {\n issues.push(label + ' contains invalid key');\n continue;\n }\n if (seen.has(key)) {\n issues.push(label + ' contains duplicate key: ' + key);\n continue;\n }\n seen.add(key);\n output.push(key);\n }\n return output;\n};\n\nconst sameStringSet = (left, right) => {\n if (left.length !== right.length) return false;\n const set = new Set(left);\n if (set.size !== right.length) return false;\n for (const value of right) {\n if (!set.has(value)) return false;\n }\n return true;\n};\n\nconst contracts = Object(document('/contracts') || {});\n\nconst isDocumentSection = (contract) =>\n !!contract && Array.isArray(contract.relatedContracts);\n\nconst isContractsChangePolicy = (contract) => {\n if (!contract) return false;\n return 'requireSectionChanges' in contract;\n};\n\nconst findPolicy = () => {\n for (const key of Object.keys(contracts)) {\n const contract = contracts[key];\n if (isContractsChangePolicy(contract)) {\n return contract;\n }\n }\n return null;\n};\n\nconst policy = findPolicy();\nconst policyEnabled = !!policy && policy.requireSectionChanges !== false;\n\nif (!toText(changeDescription)) {\n issues.push('changeDescription is missing');\n}\n\nconst hasChangeset = !!rawChangeset;\nconst hasSectionChanges = !!rawSectionChanges;\n\nif (!hasChangeset && !hasSectionChanges) {\n issues.push('changeset or sectionChanges is required');\n}\n\nconst isContractsPath = (path) => {\n const value = toText(path);\n return value === '/contracts' || value.startsWith('/contracts/');\n};\nif (policyEnabled && hasChangeset) {\n for (const entry of requestChangeset) {\n if (entry && isContractsPath(entry.path)) {\n issues.push('changeset cannot modify /contracts when Contracts Change Policy is enabled');\n break;\n }\n }\n}\nconst isProposedChangePath = (path) =>\n toText(path).startsWith('/proposedChange');\nif (hasChangeset) {\n for (const entry of requestChangeset) {\n if (entry && isProposedChangePath(entry.path)) {\n issues.push('changeset cannot modify /proposedChange');\n break;\n }\n }\n}\n\nconst existingSections = {};\nfor (const key of Object.keys(contracts)) {\n const contract = contracts[key];\n if (isDocumentSection(contract)) {\n existingSections[key] = contract;\n }\n}\n\nconst contractIndex = {};\nfor (const sectionKey of Object.keys(existingSections)) {\n const section = existingSections[sectionKey];\n const related = asList(section.relatedContracts);\n for (const relatedKey of related) {\n const contractKey = toText(relatedKey);\n if (!contractKey) continue;\n if (contractIndex[contractKey] && contractIndex[contractKey] !== sectionKey) {\n contractIndex[contractKey] = null;\n } else if (!contractIndex[contractKey]) {\n contractIndex[contractKey] = sectionKey;\n }\n }\n}\n\nconst normalizeSectionDefinition = (sectionDef, label) => {\n if (!sectionDef) {\n issues.push(label + ' entry must be an object');\n return null;\n }\n const sectionKey = toText(sectionDef.sectionKey);\n if (!sectionKey) {\n issues.push(label + ' sectionKey is missing');\n return null;\n }\n const section = sectionDef.section;\n if (!section) {\n issues.push(label + ' section is missing');\n return null;\n }\n\n const rawContractsMap = sectionDef.contracts && sectionDef.contracts.value\n ? sectionDef.contracts.value\n : sectionDef.contracts || {};\n const contractDefs = [];\n const contractKeys = [];\n for (const [rawKey, contract] of Object.entries(rawContractsMap)) {\n if (\n rawKey === 'type' ||\n rawKey === 'keyType' ||\n rawKey === 'valueType' ||\n rawKey === 'description'\n ) {\n continue;\n }\n const key = toText(rawKey);\n if (!key) {\n issues.push(label + ' contract key is missing');\n continue;\n }\n if (!contract) {\n issues.push(label + ' contract ' + key + ' is missing or invalid');\n continue;\n }\n if (!hasType(contract)) {\n issues.push(label + ' contract ' + key + ' is missing type');\n }\n contractDefs.push({ key, contract });\n contractKeys.push(key);\n }\n\n if (!hasType(section)) {\n issues.push(label + ' section ' + sectionKey + ' is missing type');\n }\n\n const related = section.relatedContracts\n ? uniqueKeys(asList(section.relatedContracts), label + ' section ' + sectionKey + ' relatedContracts')\n : null;\n if (related && !sameStringSet(related, contractKeys)) {\n issues.push(label + ' section ' + sectionKey + ' relatedContracts must match contracts');\n }\n\n const normalizedRelated = related || contractKeys;\n const normalizedSection = Object.assign({}, section, {\n type: 'Conversation/Document Section',\n relatedContracts: normalizedRelated\n });\n\n return {\n sectionKey,\n section: normalizedSection,\n contractDefs,\n contractKeys\n };\n};\n\nconst sectionChangeset = [];\nconst seenSectionKeys = new Set();\nconst seenContractKeys = new Set();\n\nconst addList = asList(requestSectionChanges.add);\nconst modifyList = asList(requestSectionChanges.modify);\nconst removeList = asList(requestSectionChanges.remove);\n\nfor (const entry of addList) {\n const normalized = normalizeSectionDefinition(entry, 'sectionChanges.add');\n if (!normalized) continue;\n const sectionKey = normalized.sectionKey;\n if (seenSectionKeys.has(sectionKey)) {\n issues.push('section key duplicated in sectionChanges: ' + sectionKey);\n continue;\n }\n seenSectionKeys.add(sectionKey);\n\n if (contracts[sectionKey]) {\n issues.push('section key already exists at /contracts/' + sectionKey);\n }\n\n for (const contractKey of normalized.contractKeys) {\n if (seenContractKeys.has(contractKey)) {\n issues.push('contract key used by multiple sections in request: ' + contractKey);\n continue;\n }\n seenContractKeys.add(contractKey);\n if (contracts[contractKey]) {\n issues.push('contract key already exists at /contracts/' + contractKey);\n }\n }\n\n for (const contractDef of normalized.contractDefs) {\n sectionChangeset.push({\n op: 'add',\n path: '/contracts/' + escapePointer(contractDef.key),\n val: contractDef.contract\n });\n }\n sectionChangeset.push({\n op: 'add',\n path: '/contracts/' + escapePointer(sectionKey),\n val: normalized.section\n });\n}\n\nfor (const entry of modifyList) {\n const normalized = normalizeSectionDefinition(entry, 'sectionChanges.modify');\n if (!normalized) continue;\n const sectionKey = normalized.sectionKey;\n if (seenSectionKeys.has(sectionKey)) {\n issues.push('section key duplicated in sectionChanges: ' + sectionKey);\n continue;\n }\n seenSectionKeys.add(sectionKey);\n\n const existingSection = contracts[sectionKey];\n if (!existingSection) {\n issues.push('section key does not exist at /contracts/' + sectionKey);\n } else if (!isDocumentSection(existingSection)) {\n issues.push('existing section at /contracts/' + sectionKey + ' is not a Document Section');\n }\n\n const existingRelated =\n existingSection && existingSection.relatedContracts\n ? asList(existingSection.relatedContracts)\n : [];\n if (existingSection && !existingSection.relatedContracts) {\n issues.push('existing section ' + sectionKey + ' is missing relatedContracts');\n }\n\n for (const contractKey of normalized.contractKeys) {\n if (seenContractKeys.has(contractKey)) {\n issues.push('contract key used by multiple sections in request: ' + contractKey);\n continue;\n }\n seenContractKeys.add(contractKey);\n if (contractIndex[contractKey] && contractIndex[contractKey] !== sectionKey) {\n issues.push('contract key ' + contractKey + ' is linked to another section');\n }\n }\n\n for (const contractDef of normalized.contractDefs) {\n const op = contracts[contractDef.key] ? 'replace' : 'add';\n sectionChangeset.push({\n op,\n path: '/contracts/' + escapePointer(contractDef.key),\n val: contractDef.contract\n });\n }\n\n const toRemove = uniqueKeys(existingRelated, 'sectionChanges.modify remove list').filter(\n (key) => !normalized.contractKeys.includes(key)\n );\n for (const contractKey of toRemove) {\n if (contractIndex[contractKey] && contractIndex[contractKey] !== sectionKey) {\n issues.push('contract key ' + contractKey + ' is linked to another section');\n continue;\n }\n sectionChangeset.push({\n op: 'remove',\n path: '/contracts/' + escapePointer(contractKey)\n });\n }\n\n sectionChangeset.push({\n op: 'replace',\n path: '/contracts/' + escapePointer(sectionKey),\n val: normalized.section\n });\n}\n\nconst removeKeys = uniqueKeys(removeList, 'sectionChanges.remove');\nfor (const sectionKey of removeKeys) {\n if (seenSectionKeys.has(sectionKey)) {\n issues.push('section key duplicated in sectionChanges: ' + sectionKey);\n continue;\n }\n seenSectionKeys.add(sectionKey);\n\n const existingSection = contracts[sectionKey];\n if (!existingSection) {\n issues.push('section key does not exist at /contracts/' + sectionKey);\n continue;\n }\n if (!isDocumentSection(existingSection)) {\n issues.push('existing section at /contracts/' + sectionKey + ' is not a Document Section');\n continue;\n }\n\n const related = existingSection.relatedContracts\n ? uniqueKeys(asList(existingSection.relatedContracts), 'sectionChanges.remove relatedContracts')\n : [];\n if (!existingSection.relatedContracts) {\n issues.push('existing section ' + sectionKey + ' is missing relatedContracts');\n }\n\n for (const contractKey of related) {\n if (contractIndex[contractKey] && contractIndex[contractKey] !== sectionKey) {\n issues.push('contract key ' + contractKey + ' is linked to another section');\n continue;\n }\n sectionChangeset.push({\n op: 'remove',\n path: '/contracts/' + escapePointer(contractKey)\n });\n }\n sectionChangeset.push({\n op: 'remove',\n path: '/contracts/' + escapePointer(sectionKey)\n });\n}\nconst combinedChangeset = sectionChangeset.concat(hasChangeset ? requestChangeset : []);\n\nif (combinedChangeset.length === 0) {\n issues.push('no changes provided');\n}\n\nif (issues.length > 0) {\n return {\n changeset: [],\n events: [\n {\n type: \"Conversation/Proposed Change Invalid\",\n reason: issues.join('; ')\n }\n ]\n }\n}\n\nreturn {\n changeset: combinedChangeset\n};\n";
661
- };
662
- readonly name: "Prepare";
663
- readonly type: {
664
- readonly blueId: "ExZxT61PSpWHpEAtP2WKMXXqxEYN7Z13j7Zv36Dp99kS";
665
- };
666
- }, {
667
- readonly changeset: {
668
- readonly type: {
669
- readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
670
- };
671
- readonly value: "${steps.Prepare.changeset}";
672
- };
673
- readonly name: "Apply";
674
- readonly type: {
675
- readonly blueId: "FtHZJzH4hqAoGxFBjsmy1svfT4BwEBB4aHpFSZycZLLa";
676
- };
677
- }];
678
- };
679
- readonly type: {
680
- readonly blueId: "CGdxkNjPcsdescqLPz6SNLsMyak6demQQr7RoKNHbCyv";
681
- };
682
- };
683
766
  readonly AkUKoKY1hHY1CytCrAXDPKCd4md1QGmn1WNcQtWBsyAD: {
684
767
  readonly description: "Conversation event representing a single chat message exchanged between participants.\n";
685
768
  readonly message: {
@@ -713,6 +796,18 @@ export declare const repository: {
713
796
  readonly blueId: "36epvrpVHZLjapbeZsNodz2NDnm7XZeNZcnkWHgkP1pp";
714
797
  };
715
798
  };
799
+ readonly BeiedmmcKDhStxDnnQqUaXDJLofWSnqX6CazKTvVpfbW: {
800
+ readonly description: "Operation to propose a document change for later acceptance or rejection.";
801
+ readonly name: "Propose Change Operation";
802
+ readonly request: {
803
+ readonly type: {
804
+ readonly blueId: "FW7iYkzig4fepCdwfCdgNJw4DQ1fKwnAUf3YpjgfTPmG";
805
+ };
806
+ };
807
+ readonly type: {
808
+ readonly blueId: "BoAiqVUZv9Fum3wFqaX2JnQMBHJLxJSo2V9U2UBmCfsC";
809
+ };
810
+ };
716
811
  readonly BoAiqVUZv9Fum3wFqaX2JnQMBHJLxJSo2V9U2UBmCfsC: {
717
812
  readonly channel: {
718
813
  readonly description: "Contracts-map key of the Channel in this scope on which Operation Request events are sent to invoke this operation.\n";
@@ -729,18 +824,6 @@ export declare const repository: {
729
824
  readonly blueId: "7QACj919YMRvFCTELCf6jfQTp41RVhtHdE6bPazLUZQ6";
730
825
  };
731
826
  };
732
- readonly BoyJNkH7CAzjuuzbZFpxB7HguZVtLCxpBLnuYY5k1eqB: {
733
- readonly description: "Operation that applies a changeset immediately without proposal/accept.";
734
- readonly name: "Change Operation";
735
- readonly request: {
736
- readonly type: {
737
- readonly blueId: "9KDfK6k1HBAyHckj5VuWXFMLkgY5cJBESKT4eoq1bnrw";
738
- };
739
- };
740
- readonly type: {
741
- readonly blueId: "BoAiqVUZv9Fum3wFqaX2JnQMBHJLxJSo2V9U2UBmCfsC";
742
- };
743
- };
744
827
  readonly C48nKSkbxraMSv4gCiGYVHKFjmtK12k63Yasn95zknWE: {
745
828
  readonly description: "An event indicating that the document's status has transitioned.";
746
829
  readonly name: "Status Change";
@@ -815,50 +898,6 @@ export declare const repository: {
815
898
  readonly blueId: "5Wz4G9qcnBJnntYRkz4dgLK5bSuoMpYJZj4j5M59z4we";
816
899
  };
817
900
  };
818
- readonly Ecj8Y7rb7kMCkNFfvyZ36CNB2JjCWrqy7BiHcvcNELEL: {
819
- readonly description: "Stores a proposed change under /proposedChange{postfix}.";
820
- readonly name: "Propose Change Workflow";
821
- readonly postfix: {
822
- readonly description: "Optional postfix used while building proposed change state key.";
823
- readonly type: {
824
- readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
825
- };
826
- };
827
- readonly request: {
828
- readonly description: "Expected request payload for this workflow.";
829
- readonly type: {
830
- readonly blueId: "9KDfK6k1HBAyHckj5VuWXFMLkgY5cJBESKT4eoq1bnrw";
831
- };
832
- };
833
- readonly steps: {
834
- readonly items: readonly [{
835
- readonly code: {
836
- readonly type: {
837
- readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
838
- };
839
- readonly value: "const issues = [];\n\nconst request = event.message.request || {};\n\nconst changeDescription = request.changeDescription;\nconst rawChangeset = request.changeset;\nconst rawSectionChanges = request.sectionChanges;\nconst requestSectionChanges = rawSectionChanges || {};\n\nconst toText = (value) => {\n const raw = value && value.value ? value.value : value;\n return raw && raw.trim ? raw.trim() : '';\n};\nconst asList = (value) => Array.isArray(value) ? value : [];\nconst hasType = (value) => value && value.type;\nconst escapePointer = (value) => {\n const text = toText(value);\n return text.split('~').join('~0').split('/').join('~1');\n};\nconst requestChangeset = asList(rawChangeset);\n\nconst uniqueKeys = (values, label) => {\n const seen = new Set();\n const output = [];\n for (const value of values) {\n const key = toText(value);\n if (!key) {\n issues.push(label + ' contains invalid key');\n continue;\n }\n if (seen.has(key)) {\n issues.push(label + ' contains duplicate key: ' + key);\n continue;\n }\n seen.add(key);\n output.push(key);\n }\n return output;\n};\n\nconst sameStringSet = (left, right) => {\n if (left.length !== right.length) return false;\n const set = new Set(left);\n if (set.size !== right.length) return false;\n for (const value of right) {\n if (!set.has(value)) return false;\n }\n return true;\n};\n\nconst contracts = Object(document('/contracts') || {});\n\nconst isDocumentSection = (contract) =>\n !!contract && Array.isArray(contract.relatedContracts);\n\nconst isContractsChangePolicy = (contract) => {\n if (!contract) return false;\n return 'requireSectionChanges' in contract;\n};\n\nconst findPolicy = () => {\n for (const key of Object.keys(contracts)) {\n const contract = contracts[key];\n if (isContractsChangePolicy(contract)) {\n return contract;\n }\n }\n return null;\n};\n\nconst policy = findPolicy();\nconst policyEnabled = !!policy && policy.requireSectionChanges !== false;\n\nif (!toText(changeDescription)) {\n issues.push('changeDescription is missing');\n}\n\nconst hasChangeset = !!rawChangeset;\nconst hasSectionChanges = !!rawSectionChanges;\n\nif (!hasChangeset && !hasSectionChanges) {\n issues.push('changeset or sectionChanges is required');\n}\n\nconst isContractsPath = (path) => {\n const value = toText(path);\n return value === '/contracts' || value.startsWith('/contracts/');\n};\nif (policyEnabled && hasChangeset) {\n for (const entry of requestChangeset) {\n if (entry && isContractsPath(entry.path)) {\n issues.push('changeset cannot modify /contracts when Contracts Change Policy is enabled');\n break;\n }\n }\n}\nconst isProposedChangePath = (path) =>\n toText(path).startsWith('/proposedChange');\nif (hasChangeset) {\n for (const entry of requestChangeset) {\n if (entry && isProposedChangePath(entry.path)) {\n issues.push('changeset cannot modify /proposedChange');\n break;\n }\n }\n}\n\nconst existingSections = {};\nfor (const key of Object.keys(contracts)) {\n const contract = contracts[key];\n if (isDocumentSection(contract)) {\n existingSections[key] = contract;\n }\n}\n\nconst contractIndex = {};\nfor (const sectionKey of Object.keys(existingSections)) {\n const section = existingSections[sectionKey];\n const related = asList(section.relatedContracts);\n for (const relatedKey of related) {\n const contractKey = toText(relatedKey);\n if (!contractKey) continue;\n if (contractIndex[contractKey] && contractIndex[contractKey] !== sectionKey) {\n contractIndex[contractKey] = null;\n } else if (!contractIndex[contractKey]) {\n contractIndex[contractKey] = sectionKey;\n }\n }\n}\n\nconst normalizeSectionDefinition = (sectionDef, label) => {\n if (!sectionDef) {\n issues.push(label + ' entry must be an object');\n return null;\n }\n const sectionKey = toText(sectionDef.sectionKey);\n if (!sectionKey) {\n issues.push(label + ' sectionKey is missing');\n return null;\n }\n const section = sectionDef.section;\n if (!section) {\n issues.push(label + ' section is missing');\n return null;\n }\n\n const rawContractsMap = sectionDef.contracts && sectionDef.contracts.value\n ? sectionDef.contracts.value\n : sectionDef.contracts || {};\n const contractDefs = [];\n const contractKeys = [];\n for (const [rawKey, contract] of Object.entries(rawContractsMap)) {\n if (\n rawKey === 'type' ||\n rawKey === 'keyType' ||\n rawKey === 'valueType' ||\n rawKey === 'description'\n ) {\n continue;\n }\n const key = toText(rawKey);\n if (!key) {\n issues.push(label + ' contract key is missing');\n continue;\n }\n if (!contract) {\n issues.push(label + ' contract ' + key + ' is missing or invalid');\n continue;\n }\n if (!hasType(contract)) {\n issues.push(label + ' contract ' + key + ' is missing type');\n }\n contractDefs.push({ key, contract });\n contractKeys.push(key);\n }\n\n if (!hasType(section)) {\n issues.push(label + ' section ' + sectionKey + ' is missing type');\n }\n\n const related = section.relatedContracts\n ? uniqueKeys(asList(section.relatedContracts), label + ' section ' + sectionKey + ' relatedContracts')\n : null;\n if (related && !sameStringSet(related, contractKeys)) {\n issues.push(label + ' section ' + sectionKey + ' relatedContracts must match contracts');\n }\n\n const normalizedRelated = related || contractKeys;\n const normalizedSection = Object.assign({}, section, {\n type: 'Conversation/Document Section',\n relatedContracts: normalizedRelated\n });\n\n return {\n sectionKey,\n section: normalizedSection,\n contractDefs,\n contractKeys\n };\n};\n\nconst sectionChangeset = [];\nconst seenSectionKeys = new Set();\nconst seenContractKeys = new Set();\n\nconst addList = asList(requestSectionChanges.add);\nconst modifyList = asList(requestSectionChanges.modify);\nconst removeList = asList(requestSectionChanges.remove);\n\nfor (const entry of addList) {\n const normalized = normalizeSectionDefinition(entry, 'sectionChanges.add');\n if (!normalized) continue;\n const sectionKey = normalized.sectionKey;\n if (seenSectionKeys.has(sectionKey)) {\n issues.push('section key duplicated in sectionChanges: ' + sectionKey);\n continue;\n }\n seenSectionKeys.add(sectionKey);\n\n if (contracts[sectionKey]) {\n issues.push('section key already exists at /contracts/' + sectionKey);\n }\n\n for (const contractKey of normalized.contractKeys) {\n if (seenContractKeys.has(contractKey)) {\n issues.push('contract key used by multiple sections in request: ' + contractKey);\n continue;\n }\n seenContractKeys.add(contractKey);\n if (contracts[contractKey]) {\n issues.push('contract key already exists at /contracts/' + contractKey);\n }\n }\n\n for (const contractDef of normalized.contractDefs) {\n sectionChangeset.push({\n op: 'add',\n path: '/contracts/' + escapePointer(contractDef.key),\n val: contractDef.contract\n });\n }\n sectionChangeset.push({\n op: 'add',\n path: '/contracts/' + escapePointer(sectionKey),\n val: normalized.section\n });\n}\n\nfor (const entry of modifyList) {\n const normalized = normalizeSectionDefinition(entry, 'sectionChanges.modify');\n if (!normalized) continue;\n const sectionKey = normalized.sectionKey;\n if (seenSectionKeys.has(sectionKey)) {\n issues.push('section key duplicated in sectionChanges: ' + sectionKey);\n continue;\n }\n seenSectionKeys.add(sectionKey);\n\n const existingSection = contracts[sectionKey];\n if (!existingSection) {\n issues.push('section key does not exist at /contracts/' + sectionKey);\n } else if (!isDocumentSection(existingSection)) {\n issues.push('existing section at /contracts/' + sectionKey + ' is not a Document Section');\n }\n\n const existingRelated =\n existingSection && existingSection.relatedContracts\n ? asList(existingSection.relatedContracts)\n : [];\n if (existingSection && !existingSection.relatedContracts) {\n issues.push('existing section ' + sectionKey + ' is missing relatedContracts');\n }\n\n for (const contractKey of normalized.contractKeys) {\n if (seenContractKeys.has(contractKey)) {\n issues.push('contract key used by multiple sections in request: ' + contractKey);\n continue;\n }\n seenContractKeys.add(contractKey);\n if (contractIndex[contractKey] && contractIndex[contractKey] !== sectionKey) {\n issues.push('contract key ' + contractKey + ' is linked to another section');\n }\n }\n\n for (const contractDef of normalized.contractDefs) {\n const op = contracts[contractDef.key] ? 'replace' : 'add';\n sectionChangeset.push({\n op,\n path: '/contracts/' + escapePointer(contractDef.key),\n val: contractDef.contract\n });\n }\n\n const toRemove = uniqueKeys(existingRelated, 'sectionChanges.modify remove list').filter(\n (key) => !normalized.contractKeys.includes(key)\n );\n for (const contractKey of toRemove) {\n if (contractIndex[contractKey] && contractIndex[contractKey] !== sectionKey) {\n issues.push('contract key ' + contractKey + ' is linked to another section');\n continue;\n }\n sectionChangeset.push({\n op: 'remove',\n path: '/contracts/' + escapePointer(contractKey)\n });\n }\n\n sectionChangeset.push({\n op: 'replace',\n path: '/contracts/' + escapePointer(sectionKey),\n val: normalized.section\n });\n}\n\nconst removeKeys = uniqueKeys(removeList, 'sectionChanges.remove');\nfor (const sectionKey of removeKeys) {\n if (seenSectionKeys.has(sectionKey)) {\n issues.push('section key duplicated in sectionChanges: ' + sectionKey);\n continue;\n }\n seenSectionKeys.add(sectionKey);\n\n const existingSection = contracts[sectionKey];\n if (!existingSection) {\n issues.push('section key does not exist at /contracts/' + sectionKey);\n continue;\n }\n if (!isDocumentSection(existingSection)) {\n issues.push('existing section at /contracts/' + sectionKey + ' is not a Document Section');\n continue;\n }\n\n const related = existingSection.relatedContracts\n ? uniqueKeys(asList(existingSection.relatedContracts), 'sectionChanges.remove relatedContracts')\n : [];\n if (!existingSection.relatedContracts) {\n issues.push('existing section ' + sectionKey + ' is missing relatedContracts');\n }\n\n for (const contractKey of related) {\n if (contractIndex[contractKey] && contractIndex[contractKey] !== sectionKey) {\n issues.push('contract key ' + contractKey + ' is linked to another section');\n continue;\n }\n sectionChangeset.push({\n op: 'remove',\n path: '/contracts/' + escapePointer(contractKey)\n });\n }\n sectionChangeset.push({\n op: 'remove',\n path: '/contracts/' + escapePointer(sectionKey)\n });\n}\nconst combinedChangeset = sectionChangeset.concat(hasChangeset ? requestChangeset : []);\n\nif (combinedChangeset.length === 0) {\n issues.push('no changes provided');\n}\n\nif (issues.length > 0) {\n return {\n changeset: [],\n events: [\n {\n type: \"Conversation/Proposed Change Invalid\",\n reason: issues.join('; ')\n }\n ]\n }\n}\n\nconst postfixValue = currentContract.postfix || '';\nconst path = '/proposedChange' + postfixValue;\n\nif (document(path)) {\n return {\n changeset: [],\n events: [\n {\n type: \"Conversation/Proposed Change Invalid\",\n reason: \"Can not propose change when it already exists at \" + path\n }\n ]\n }\n}\n\nconst proposedPayload = {\n changeDescription\n};\n\nproposedPayload.preparedChangeset = combinedChangeset;\n\nif (hasChangeset) {\n proposedPayload.changeset = requestChangeset;\n}\n\nconst hasSectionChangesData = addList.length || modifyList.length || removeList.length;\nif (hasSectionChangesData) {\n proposedPayload.sectionChanges = rawSectionChanges;\n}\n\nreturn {\n changeset: [{\n op: 'add',\n path,\n val: proposedPayload\n }]\n};\n";
840
- };
841
- readonly name: "Prepare";
842
- readonly type: {
843
- readonly blueId: "ExZxT61PSpWHpEAtP2WKMXXqxEYN7Z13j7Zv36Dp99kS";
844
- };
845
- }, {
846
- readonly changeset: {
847
- readonly type: {
848
- readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
849
- };
850
- readonly value: "${steps.Prepare.changeset}";
851
- };
852
- readonly name: "Apply";
853
- readonly type: {
854
- readonly blueId: "FtHZJzH4hqAoGxFBjsmy1svfT4BwEBB4aHpFSZycZLLa";
855
- };
856
- }];
857
- };
858
- readonly type: {
859
- readonly blueId: "CGdxkNjPcsdescqLPz6SNLsMyak6demQQr7RoKNHbCyv";
860
- };
861
- };
862
901
  readonly EhPFqrRCreg7StsZEcW8fRQ1FQVdqYSsMSis2CHHJZ1G: {
863
902
  readonly description: "A successful final state. The document has achieved its goal and its\nprocess has finished as expected.\n";
864
903
  readonly mode: {
@@ -954,81 +993,30 @@ export declare const repository: {
954
993
  readonly blueId: "HYsLiqsqk7t98d5fK6YxKEQGeqBaHNVjM4rRNdxK4yUW";
955
994
  };
956
995
  };
957
- readonly G6GMCB3AQvH2xR12RiDvaCiEbCjgz4uhjKssDMRXbCTG: {
958
- readonly description: "Applies a previously proposed change and removes its proposal state.";
959
- readonly name: "Accept Change Workflow";
960
- readonly postfix: {
961
- readonly description: "Optional postfix used while building proposed change state key.";
996
+ readonly FW7iYkzig4fepCdwfCdgNJw4DQ1fKwnAUf3YpjgfTPmG: {
997
+ readonly changeset: {
998
+ readonly description: "RFC 6902 patch entries outside /contracts (blocked by policy if it touches /contracts).";
999
+ readonly itemType: {
1000
+ readonly blueId: "Bz49DbfqKC1yJeCfv5RYPZUKTfb7rtZnmreCaz4RsXn5";
1001
+ };
962
1002
  readonly type: {
963
- readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
1003
+ readonly blueId: "6aehfNAxHLC1PHHoDr3tYtFH3RWNbiWdFancJ1bypXEY";
964
1004
  };
965
1005
  };
966
- readonly steps: {
967
- readonly items: readonly [{
968
- readonly code: {
969
- readonly type: {
970
- readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
971
- };
972
- readonly value: "const postfix = currentContract.postfix || '';\nconst path = '/proposedChange' + postfix;\n\nconst proposedChange = document(path);\nif (!proposedChange) {\n return {\n changeset: [],\n events: [\n {\n type: \"Conversation/Proposed Change Invalid\",\n reason: \"Proposed change does not exist at \" + path\n }\n ]\n };\n}\n\nconst preparedChangeset = proposedChange.preparedChangeset;\nif (!preparedChangeset || preparedChangeset.length === 0) {\n return {\n changeset: [],\n events: [\n {\n type: \"Conversation/Proposed Change Invalid\",\n reason: \"Proposed change is missing prepared changeset at \" + path\n }\n ]\n };\n}\n\nreturn {\n changeset: preparedChangeset.concat({ op: 'remove', path })\n};\n";
973
- };
974
- readonly name: "Prepare";
975
- readonly type: {
976
- readonly blueId: "ExZxT61PSpWHpEAtP2WKMXXqxEYN7Z13j7Zv36Dp99kS";
977
- };
978
- }, {
979
- readonly changeset: {
980
- readonly type: {
981
- readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
982
- };
983
- readonly value: "${steps.Prepare.changeset}";
984
- };
985
- readonly name: "Apply";
986
- readonly type: {
987
- readonly blueId: "FtHZJzH4hqAoGxFBjsmy1svfT4BwEBB4aHpFSZycZLLa";
988
- };
989
- }];
990
- };
991
- readonly type: {
992
- readonly blueId: "CGdxkNjPcsdescqLPz6SNLsMyak6demQQr7RoKNHbCyv";
1006
+ readonly description: "Payload for propose and direct change operations.";
1007
+ readonly name: "Change Request";
1008
+ readonly sectionChanges: {
1009
+ readonly description: "Section-based /contracts mutations (required when Contracts Change Policy is enabled).";
1010
+ readonly type: {
1011
+ readonly blueId: "DEmFwGa1sWm2BKhrN98LREKiB8j8B8kFAo7KBkkaojnN";
1012
+ };
993
1013
  };
994
- };
995
- readonly GfqZJJtSJfd69v3pJ67XURdzhC4byWJZAstCh6i4X6MZ: {
996
- readonly description: "Discards a previously proposed change by removing its proposal state.";
997
- readonly name: "Reject Change Workflow";
998
- readonly postfix: {
999
- readonly description: "Optional postfix used while building proposed change state key.";
1014
+ readonly summary: {
1015
+ readonly description: "Human-readable summary of the requested change. Required when proposal is created.";
1000
1016
  readonly type: {
1001
1017
  readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
1002
1018
  };
1003
1019
  };
1004
- readonly steps: {
1005
- readonly items: readonly [{
1006
- readonly code: {
1007
- readonly type: {
1008
- readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
1009
- };
1010
- readonly value: "const postfix = currentContract.postfix || ''\nconst path = '/proposedChange' + postfix\n\nconst proposedChange = document(path)\nif (proposedChange) {\n return {\n changeset: [{ op: 'remove', path }]\n }\n}\n\nreturn {\n changeset: [],\n events: [\n {\n type: \"Conversation/Proposed Change Invalid\",\n reason: \"Proposed change does not exist at \" + path\n }\n ]\n};\n";
1011
- };
1012
- readonly name: "Prepare";
1013
- readonly type: {
1014
- readonly blueId: "ExZxT61PSpWHpEAtP2WKMXXqxEYN7Z13j7Zv36Dp99kS";
1015
- };
1016
- }, {
1017
- readonly changeset: {
1018
- readonly type: {
1019
- readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
1020
- };
1021
- readonly value: "${steps.Prepare.changeset}";
1022
- };
1023
- readonly name: "Apply";
1024
- readonly type: {
1025
- readonly blueId: "FtHZJzH4hqAoGxFBjsmy1svfT4BwEBB4aHpFSZycZLLa";
1026
- };
1027
- }];
1028
- };
1029
- readonly type: {
1030
- readonly blueId: "CGdxkNjPcsdescqLPz6SNLsMyak6demQQr7RoKNHbCyv";
1031
- };
1032
1020
  };
1033
1021
  readonly Guus3kHbivXvy5G93yhiKs3Pc8sxCc4XVvSo7CqLsQEc: {
1034
1022
  readonly description: "A final state indicating that the document encountered an unrecoverable\nerror and could not complete its process.\n";
@@ -1043,6 +1031,18 @@ export declare const repository: {
1043
1031
  readonly blueId: "58B8orsFkxxy7bWqjLXJmtBs2b5rwnNQNbeoAbGhPkJc";
1044
1032
  };
1045
1033
  };
1034
+ readonly Hd5uuFjqxyw5mrFPgJf2mcatij8ddtmGAMJu9ij5K1tc: {
1035
+ readonly description: "Operation that applies a changeset immediately without proposal/accept.";
1036
+ readonly name: "Change Operation";
1037
+ readonly request: {
1038
+ readonly type: {
1039
+ readonly blueId: "FW7iYkzig4fepCdwfCdgNJw4DQ1fKwnAUf3YpjgfTPmG";
1040
+ };
1041
+ };
1042
+ readonly type: {
1043
+ readonly blueId: "BoAiqVUZv9Fum3wFqaX2JnQMBHJLxJSo2V9U2UBmCfsC";
1044
+ };
1045
+ };
1046
1046
  readonly HH5u8PwvdXrARNkT4oyWR4QjgkwhKfPWGnNtEwfUBiUg: {
1047
1047
  readonly description: "Response event confirming completion of the document bootstrap.";
1048
1048
  readonly documentId: {
@@ -1165,7 +1165,7 @@ export declare const repository: {
1165
1165
  channel?: string | undefined;
1166
1166
  request?: import("@blue-labs/language").BlueNode | undefined;
1167
1167
  }>;
1168
- readonly G6GMCB3AQvH2xR12RiDvaCiEbCjgz4uhjKssDMRXbCTG: import("zod").ZodObject<import("zod").objectUtil.extendShape<import("zod").objectUtil.extendShape<import("zod").objectUtil.extendShape<import("zod").objectUtil.extendShape<{
1168
+ readonly '29xcoYKf9p47xagTDwGLuQyFrT9WBN3Sd7FaPtqLvydy': import("zod").ZodObject<import("zod").objectUtil.extendShape<import("zod").objectUtil.extendShape<import("zod").objectUtil.extendShape<import("zod").objectUtil.extendShape<{
1169
1169
  description: import("zod").ZodOptional<import("zod").ZodString>;
1170
1170
  name: import("zod").ZodOptional<import("zod").ZodString>;
1171
1171
  order: import("zod").ZodOptional<import("zod").ZodNumber>;
@@ -1225,7 +1225,7 @@ export declare const repository: {
1225
1225
  description?: string | undefined;
1226
1226
  name?: string | undefined;
1227
1227
  }>;
1228
- readonly BoyJNkH7CAzjuuzbZFpxB7HguZVtLCxpBLnuYY5k1eqB: import("zod").ZodObject<import("zod").objectUtil.extendShape<import("zod").objectUtil.extendShape<import("zod").objectUtil.extendShape<{
1228
+ readonly Hd5uuFjqxyw5mrFPgJf2mcatij8ddtmGAMJu9ij5K1tc: import("zod").ZodObject<import("zod").objectUtil.extendShape<import("zod").objectUtil.extendShape<import("zod").objectUtil.extendShape<{
1229
1229
  description: import("zod").ZodOptional<import("zod").ZodString>;
1230
1230
  name: import("zod").ZodOptional<import("zod").ZodString>;
1231
1231
  order: import("zod").ZodOptional<import("zod").ZodNumber>;
@@ -1241,7 +1241,6 @@ export declare const repository: {
1241
1241
  description: import("zod").ZodOptional<import("zod").ZodString>;
1242
1242
  name: import("zod").ZodOptional<import("zod").ZodString>;
1243
1243
  request: import("zod").ZodOptional<import("zod").ZodObject<{
1244
- changeDescription: import("zod").ZodOptional<import("zod").ZodString>;
1245
1244
  changeset: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
1246
1245
  description: import("zod").ZodOptional<import("zod").ZodString>;
1247
1246
  name: import("zod").ZodOptional<import("zod").ZodString>;
@@ -1522,10 +1521,11 @@ export declare const repository: {
1522
1521
  }[] | undefined;
1523
1522
  remove?: string[] | undefined;
1524
1523
  }>>;
1524
+ summary: import("zod").ZodOptional<import("zod").ZodString>;
1525
1525
  }, "strip", import("zod").ZodTypeAny, {
1526
1526
  description?: string | undefined;
1527
1527
  name?: string | undefined;
1528
- changeDescription?: string | undefined;
1528
+ summary?: string | undefined;
1529
1529
  changeset?: {
1530
1530
  path?: string | undefined;
1531
1531
  description?: string | undefined;
@@ -1579,7 +1579,7 @@ export declare const repository: {
1579
1579
  }, {
1580
1580
  description?: string | undefined;
1581
1581
  name?: string | undefined;
1582
- changeDescription?: string | undefined;
1582
+ summary?: string | undefined;
1583
1583
  changeset?: {
1584
1584
  path?: string | undefined;
1585
1585
  description?: string | undefined;
@@ -1639,7 +1639,7 @@ export declare const repository: {
1639
1639
  request?: {
1640
1640
  description?: string | undefined;
1641
1641
  name?: string | undefined;
1642
- changeDescription?: string | undefined;
1642
+ summary?: string | undefined;
1643
1643
  changeset?: {
1644
1644
  path?: string | undefined;
1645
1645
  description?: string | undefined;
@@ -1699,7 +1699,7 @@ export declare const repository: {
1699
1699
  request?: {
1700
1700
  description?: string | undefined;
1701
1701
  name?: string | undefined;
1702
- changeDescription?: string | undefined;
1702
+ summary?: string | undefined;
1703
1703
  changeset?: {
1704
1704
  path?: string | undefined;
1705
1705
  description?: string | undefined;
@@ -1752,8 +1752,7 @@ export declare const repository: {
1752
1752
  } | undefined;
1753
1753
  } | undefined;
1754
1754
  }>;
1755
- readonly '9KDfK6k1HBAyHckj5VuWXFMLkgY5cJBESKT4eoq1bnrw': import("zod").ZodObject<{
1756
- changeDescription: import("zod").ZodOptional<import("zod").ZodString>;
1755
+ readonly FW7iYkzig4fepCdwfCdgNJw4DQ1fKwnAUf3YpjgfTPmG: import("zod").ZodObject<{
1757
1756
  changeset: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
1758
1757
  description: import("zod").ZodOptional<import("zod").ZodString>;
1759
1758
  name: import("zod").ZodOptional<import("zod").ZodString>;
@@ -2034,10 +2033,11 @@ export declare const repository: {
2034
2033
  }[] | undefined;
2035
2034
  remove?: string[] | undefined;
2036
2035
  }>>;
2036
+ summary: import("zod").ZodOptional<import("zod").ZodString>;
2037
2037
  }, "strip", import("zod").ZodTypeAny, {
2038
2038
  description?: string | undefined;
2039
2039
  name?: string | undefined;
2040
- changeDescription?: string | undefined;
2040
+ summary?: string | undefined;
2041
2041
  changeset?: {
2042
2042
  path?: string | undefined;
2043
2043
  description?: string | undefined;
@@ -2091,7 +2091,7 @@ export declare const repository: {
2091
2091
  }, {
2092
2092
  description?: string | undefined;
2093
2093
  name?: string | undefined;
2094
- changeDescription?: string | undefined;
2094
+ summary?: string | undefined;
2095
2095
  changeset?: {
2096
2096
  path?: string | undefined;
2097
2097
  description?: string | undefined;
@@ -2143,7 +2143,7 @@ export declare const repository: {
2143
2143
  remove?: string[] | undefined;
2144
2144
  } | undefined;
2145
2145
  }>;
2146
- readonly AKNj5zwzgAkXZo3psikJfoVxUcNfMBVgDrf4HDGWL1gm: import("zod").ZodObject<import("zod").objectUtil.extendShape<import("zod").objectUtil.extendShape<import("zod").objectUtil.extendShape<import("zod").objectUtil.extendShape<{
2146
+ readonly '4pFvBSYyitoq8rWqTmY5rLywU2tpZsivDUCAo5vwoAT9': import("zod").ZodObject<import("zod").objectUtil.extendShape<import("zod").objectUtil.extendShape<import("zod").objectUtil.extendShape<import("zod").objectUtil.extendShape<{
2147
2147
  description: import("zod").ZodOptional<import("zod").ZodString>;
2148
2148
  name: import("zod").ZodOptional<import("zod").ZodString>;
2149
2149
  order: import("zod").ZodOptional<import("zod").ZodNumber>;
@@ -2173,7 +2173,6 @@ export declare const repository: {
2173
2173
  description: import("zod").ZodOptional<import("zod").ZodString>;
2174
2174
  name: import("zod").ZodOptional<import("zod").ZodString>;
2175
2175
  request: import("zod").ZodOptional<import("zod").ZodObject<{
2176
- changeDescription: import("zod").ZodOptional<import("zod").ZodString>;
2177
2176
  changeset: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
2178
2177
  description: import("zod").ZodOptional<import("zod").ZodString>;
2179
2178
  name: import("zod").ZodOptional<import("zod").ZodString>;
@@ -2454,10 +2453,11 @@ export declare const repository: {
2454
2453
  }[] | undefined;
2455
2454
  remove?: string[] | undefined;
2456
2455
  }>>;
2456
+ summary: import("zod").ZodOptional<import("zod").ZodString>;
2457
2457
  }, "strip", import("zod").ZodTypeAny, {
2458
2458
  description?: string | undefined;
2459
2459
  name?: string | undefined;
2460
- changeDescription?: string | undefined;
2460
+ summary?: string | undefined;
2461
2461
  changeset?: {
2462
2462
  path?: string | undefined;
2463
2463
  description?: string | undefined;
@@ -2511,7 +2511,7 @@ export declare const repository: {
2511
2511
  }, {
2512
2512
  description?: string | undefined;
2513
2513
  name?: string | undefined;
2514
- changeDescription?: string | undefined;
2514
+ summary?: string | undefined;
2515
2515
  changeset?: {
2516
2516
  path?: string | undefined;
2517
2517
  description?: string | undefined;
@@ -2572,7 +2572,7 @@ export declare const repository: {
2572
2572
  request?: {
2573
2573
  description?: string | undefined;
2574
2574
  name?: string | undefined;
2575
- changeDescription?: string | undefined;
2575
+ summary?: string | undefined;
2576
2576
  changeset?: {
2577
2577
  path?: string | undefined;
2578
2578
  description?: string | undefined;
@@ -2635,7 +2635,7 @@ export declare const repository: {
2635
2635
  request?: {
2636
2636
  description?: string | undefined;
2637
2637
  name?: string | undefined;
2638
- changeDescription?: string | undefined;
2638
+ summary?: string | undefined;
2639
2639
  changeset?: {
2640
2640
  path?: string | undefined;
2641
2641
  description?: string | undefined;
@@ -4012,7 +4012,7 @@ export declare const repository: {
4012
4012
  document?: import("@blue-labs/language").BlueNode | undefined;
4013
4013
  allowNewerVersion?: boolean | undefined;
4014
4014
  }>;
4015
- readonly '2mJhqggRy7YTHK5bSeAitqhhjynpe8mApvQXXpcwPCxx': import("zod").ZodObject<import("zod").objectUtil.extendShape<import("zod").objectUtil.extendShape<import("zod").objectUtil.extendShape<{
4015
+ readonly BeiedmmcKDhStxDnnQqUaXDJLofWSnqX6CazKTvVpfbW: import("zod").ZodObject<import("zod").objectUtil.extendShape<import("zod").objectUtil.extendShape<import("zod").objectUtil.extendShape<{
4016
4016
  description: import("zod").ZodOptional<import("zod").ZodString>;
4017
4017
  name: import("zod").ZodOptional<import("zod").ZodString>;
4018
4018
  order: import("zod").ZodOptional<import("zod").ZodNumber>;
@@ -4028,7 +4028,6 @@ export declare const repository: {
4028
4028
  description: import("zod").ZodOptional<import("zod").ZodString>;
4029
4029
  name: import("zod").ZodOptional<import("zod").ZodString>;
4030
4030
  request: import("zod").ZodOptional<import("zod").ZodObject<{
4031
- changeDescription: import("zod").ZodOptional<import("zod").ZodString>;
4032
4031
  changeset: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
4033
4032
  description: import("zod").ZodOptional<import("zod").ZodString>;
4034
4033
  name: import("zod").ZodOptional<import("zod").ZodString>;
@@ -4309,10 +4308,11 @@ export declare const repository: {
4309
4308
  }[] | undefined;
4310
4309
  remove?: string[] | undefined;
4311
4310
  }>>;
4311
+ summary: import("zod").ZodOptional<import("zod").ZodString>;
4312
4312
  }, "strip", import("zod").ZodTypeAny, {
4313
4313
  description?: string | undefined;
4314
4314
  name?: string | undefined;
4315
- changeDescription?: string | undefined;
4315
+ summary?: string | undefined;
4316
4316
  changeset?: {
4317
4317
  path?: string | undefined;
4318
4318
  description?: string | undefined;
@@ -4366,7 +4366,7 @@ export declare const repository: {
4366
4366
  }, {
4367
4367
  description?: string | undefined;
4368
4368
  name?: string | undefined;
4369
- changeDescription?: string | undefined;
4369
+ summary?: string | undefined;
4370
4370
  changeset?: {
4371
4371
  path?: string | undefined;
4372
4372
  description?: string | undefined;
@@ -4426,7 +4426,7 @@ export declare const repository: {
4426
4426
  request?: {
4427
4427
  description?: string | undefined;
4428
4428
  name?: string | undefined;
4429
- changeDescription?: string | undefined;
4429
+ summary?: string | undefined;
4430
4430
  changeset?: {
4431
4431
  path?: string | undefined;
4432
4432
  description?: string | undefined;
@@ -4486,7 +4486,7 @@ export declare const repository: {
4486
4486
  request?: {
4487
4487
  description?: string | undefined;
4488
4488
  name?: string | undefined;
4489
- changeDescription?: string | undefined;
4489
+ summary?: string | undefined;
4490
4490
  changeset?: {
4491
4491
  path?: string | undefined;
4492
4492
  description?: string | undefined;
@@ -4539,7 +4539,7 @@ export declare const repository: {
4539
4539
  } | undefined;
4540
4540
  } | undefined;
4541
4541
  }>;
4542
- readonly Ecj8Y7rb7kMCkNFfvyZ36CNB2JjCWrqy7BiHcvcNELEL: import("zod").ZodObject<import("zod").objectUtil.extendShape<import("zod").objectUtil.extendShape<import("zod").objectUtil.extendShape<import("zod").objectUtil.extendShape<{
4542
+ readonly '7dUt8jiX5vGeZL7wVzWFA8uEw37T6oPgC8KyDZmqxeSj': import("zod").ZodObject<import("zod").objectUtil.extendShape<import("zod").objectUtil.extendShape<import("zod").objectUtil.extendShape<import("zod").objectUtil.extendShape<{
4543
4543
  description: import("zod").ZodOptional<import("zod").ZodString>;
4544
4544
  name: import("zod").ZodOptional<import("zod").ZodString>;
4545
4545
  order: import("zod").ZodOptional<import("zod").ZodNumber>;
@@ -4570,7 +4570,6 @@ export declare const repository: {
4570
4570
  name: import("zod").ZodOptional<import("zod").ZodString>;
4571
4571
  postfix: import("zod").ZodOptional<import("zod").ZodString>;
4572
4572
  request: import("zod").ZodOptional<import("zod").ZodObject<{
4573
- changeDescription: import("zod").ZodOptional<import("zod").ZodString>;
4574
4573
  changeset: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
4575
4574
  description: import("zod").ZodOptional<import("zod").ZodString>;
4576
4575
  name: import("zod").ZodOptional<import("zod").ZodString>;
@@ -4851,10 +4850,11 @@ export declare const repository: {
4851
4850
  }[] | undefined;
4852
4851
  remove?: string[] | undefined;
4853
4852
  }>>;
4853
+ summary: import("zod").ZodOptional<import("zod").ZodString>;
4854
4854
  }, "strip", import("zod").ZodTypeAny, {
4855
4855
  description?: string | undefined;
4856
4856
  name?: string | undefined;
4857
- changeDescription?: string | undefined;
4857
+ summary?: string | undefined;
4858
4858
  changeset?: {
4859
4859
  path?: string | undefined;
4860
4860
  description?: string | undefined;
@@ -4908,7 +4908,7 @@ export declare const repository: {
4908
4908
  }, {
4909
4909
  description?: string | undefined;
4910
4910
  name?: string | undefined;
4911
- changeDescription?: string | undefined;
4911
+ summary?: string | undefined;
4912
4912
  changeset?: {
4913
4913
  path?: string | undefined;
4914
4914
  description?: string | undefined;
@@ -4969,7 +4969,7 @@ export declare const repository: {
4969
4969
  request?: {
4970
4970
  description?: string | undefined;
4971
4971
  name?: string | undefined;
4972
- changeDescription?: string | undefined;
4972
+ summary?: string | undefined;
4973
4973
  changeset?: {
4974
4974
  path?: string | undefined;
4975
4975
  description?: string | undefined;
@@ -5033,7 +5033,7 @@ export declare const repository: {
5033
5033
  request?: {
5034
5034
  description?: string | undefined;
5035
5035
  name?: string | undefined;
5036
- changeDescription?: string | undefined;
5036
+ summary?: string | undefined;
5037
5037
  changeset?: {
5038
5038
  path?: string | undefined;
5039
5039
  description?: string | undefined;
@@ -5134,7 +5134,7 @@ export declare const repository: {
5134
5134
  channel?: string | undefined;
5135
5135
  request?: import("@blue-labs/language").BlueNode | undefined;
5136
5136
  }>;
5137
- readonly GfqZJJtSJfd69v3pJ67XURdzhC4byWJZAstCh6i4X6MZ: import("zod").ZodObject<import("zod").objectUtil.extendShape<import("zod").objectUtil.extendShape<import("zod").objectUtil.extendShape<import("zod").objectUtil.extendShape<{
5137
+ readonly '9fnXwi4Za8hjEj6zDSEjhbA5dLrDzs7sxoDMGLmRT2Gz': import("zod").ZodObject<import("zod").objectUtil.extendShape<import("zod").objectUtil.extendShape<import("zod").objectUtil.extendShape<import("zod").objectUtil.extendShape<{
5138
5138
  description: import("zod").ZodOptional<import("zod").ZodString>;
5139
5139
  name: import("zod").ZodOptional<import("zod").ZodString>;
5140
5140
  order: import("zod").ZodOptional<import("zod").ZodNumber>;
@@ -5585,11 +5585,11 @@ export declare const repository: {
5585
5585
  };
5586
5586
  readonly aliases: {
5587
5587
  readonly 'Conversation/Accept Change Operation': "APk3siB8g9pvWLG3qyqtGjRNNGB7RDpFWQtG4epj5Avv";
5588
- readonly 'Conversation/Accept Change Workflow': "G6GMCB3AQvH2xR12RiDvaCiEbCjgz4uhjKssDMRXbCTG";
5588
+ readonly 'Conversation/Accept Change Workflow': "29xcoYKf9p47xagTDwGLuQyFrT9WBN3Sd7FaPtqLvydy";
5589
5589
  readonly 'Conversation/Actor': "CN5efWVizJbRsMCw8YWRfT2q9vM9XfeGDN9wFvYcvMnQ";
5590
- readonly 'Conversation/Change Operation': "BoyJNkH7CAzjuuzbZFpxB7HguZVtLCxpBLnuYY5k1eqB";
5591
- readonly 'Conversation/Change Request': "9KDfK6k1HBAyHckj5VuWXFMLkgY5cJBESKT4eoq1bnrw";
5592
- readonly 'Conversation/Change Workflow': "AKNj5zwzgAkXZo3psikJfoVxUcNfMBVgDrf4HDGWL1gm";
5590
+ readonly 'Conversation/Change Operation': "Hd5uuFjqxyw5mrFPgJf2mcatij8ddtmGAMJu9ij5K1tc";
5591
+ readonly 'Conversation/Change Request': "FW7iYkzig4fepCdwfCdgNJw4DQ1fKwnAUf3YpjgfTPmG";
5592
+ readonly 'Conversation/Change Workflow': "4pFvBSYyitoq8rWqTmY5rLywU2tpZsivDUCAo5vwoAT9";
5593
5593
  readonly 'Conversation/Chat Message': "AkUKoKY1hHY1CytCrAXDPKCd4md1QGmn1WNcQtWBsyAD";
5594
5594
  readonly 'Conversation/Composite Timeline Channel': "HsNatiPt2YvmkWQoqtfrFCbdp75ZUBLBUkWeq84WTfnr";
5595
5595
  readonly 'Conversation/Contracts Change Policy': "6FDVZRQwuhXdXtnXq8kRg3f3DM8SUdbN3TT8rSGJcS2U";
@@ -5610,11 +5610,11 @@ export declare const repository: {
5610
5610
  readonly 'Conversation/Lifecycle Event': "5YZEAtUaHhNfnVnwtSsyBnBakpcSwdL75UcgtrtnqeYn";
5611
5611
  readonly 'Conversation/Operation': "BoAiqVUZv9Fum3wFqaX2JnQMBHJLxJSo2V9U2UBmCfsC";
5612
5612
  readonly 'Conversation/Operation Request': "HM4Ku4LFcjC5MxnhPMRwQ8w3BbHmJKKZfHTTzsd4jbJq";
5613
- readonly 'Conversation/Propose Change Operation': "2mJhqggRy7YTHK5bSeAitqhhjynpe8mApvQXXpcwPCxx";
5614
- readonly 'Conversation/Propose Change Workflow': "Ecj8Y7rb7kMCkNFfvyZ36CNB2JjCWrqy7BiHcvcNELEL";
5613
+ readonly 'Conversation/Propose Change Operation': "BeiedmmcKDhStxDnnQqUaXDJLofWSnqX6CazKTvVpfbW";
5614
+ readonly 'Conversation/Propose Change Workflow': "7dUt8jiX5vGeZL7wVzWFA8uEw37T6oPgC8KyDZmqxeSj";
5615
5615
  readonly 'Conversation/Proposed Change Invalid': "EbGQYtYR9UNAxcn7auCCujXmnz6DWxMpqVcgYSsKE85M";
5616
5616
  readonly 'Conversation/Reject Change Operation': "4T5AmhKAXSJAAHDEjtVJ2FQgCyz2qyd9qG5uoh627Ux6";
5617
- readonly 'Conversation/Reject Change Workflow': "GfqZJJtSJfd69v3pJ67XURdzhC4byWJZAstCh6i4X6MZ";
5617
+ readonly 'Conversation/Reject Change Workflow': "9fnXwi4Za8hjEj6zDSEjhbA5dLrDzs7sxoDMGLmRT2Gz";
5618
5618
  readonly 'Conversation/Request': "8f9UhHMbRe62sFgzQVheToaJPYi7t7HPNVvpQTbqfL5n";
5619
5619
  readonly 'Conversation/Response': "36epvrpVHZLjapbeZsNodz2NDnm7XZeNZcnkWHgkP1pp";
5620
5620
  readonly 'Conversation/Sequential Workflow': "7X3LkN54Yp88JgZbppPhP6hM3Jqiqv8Z2i4kS7phXtQe";
@@ -5642,12 +5642,12 @@ export declare const repository: {
5642
5642
  readonly attributesAdded: readonly [];
5643
5643
  }];
5644
5644
  };
5645
- readonly G6GMCB3AQvH2xR12RiDvaCiEbCjgz4uhjKssDMRXbCTG: {
5645
+ readonly '29xcoYKf9p47xagTDwGLuQyFrT9WBN3Sd7FaPtqLvydy': {
5646
5646
  readonly status: "dev";
5647
5647
  readonly name: "Accept Change Workflow";
5648
5648
  readonly versions: readonly [{
5649
- readonly repositoryVersionIndex: 0;
5650
- readonly typeBlueId: "G6GMCB3AQvH2xR12RiDvaCiEbCjgz4uhjKssDMRXbCTG";
5649
+ readonly repositoryVersionIndex: 1;
5650
+ readonly typeBlueId: "29xcoYKf9p47xagTDwGLuQyFrT9WBN3Sd7FaPtqLvydy";
5651
5651
  readonly attributesAdded: readonly [];
5652
5652
  }];
5653
5653
  };
@@ -5660,30 +5660,30 @@ export declare const repository: {
5660
5660
  readonly attributesAdded: readonly [];
5661
5661
  }];
5662
5662
  };
5663
- readonly BoyJNkH7CAzjuuzbZFpxB7HguZVtLCxpBLnuYY5k1eqB: {
5663
+ readonly Hd5uuFjqxyw5mrFPgJf2mcatij8ddtmGAMJu9ij5K1tc: {
5664
5664
  readonly status: "dev";
5665
5665
  readonly name: "Change Operation";
5666
5666
  readonly versions: readonly [{
5667
- readonly repositoryVersionIndex: 0;
5668
- readonly typeBlueId: "BoyJNkH7CAzjuuzbZFpxB7HguZVtLCxpBLnuYY5k1eqB";
5667
+ readonly repositoryVersionIndex: 2;
5668
+ readonly typeBlueId: "Hd5uuFjqxyw5mrFPgJf2mcatij8ddtmGAMJu9ij5K1tc";
5669
5669
  readonly attributesAdded: readonly [];
5670
5670
  }];
5671
5671
  };
5672
- readonly '9KDfK6k1HBAyHckj5VuWXFMLkgY5cJBESKT4eoq1bnrw': {
5672
+ readonly FW7iYkzig4fepCdwfCdgNJw4DQ1fKwnAUf3YpjgfTPmG: {
5673
5673
  readonly status: "dev";
5674
5674
  readonly name: "Change Request";
5675
5675
  readonly versions: readonly [{
5676
- readonly repositoryVersionIndex: 0;
5677
- readonly typeBlueId: "9KDfK6k1HBAyHckj5VuWXFMLkgY5cJBESKT4eoq1bnrw";
5676
+ readonly repositoryVersionIndex: 2;
5677
+ readonly typeBlueId: "FW7iYkzig4fepCdwfCdgNJw4DQ1fKwnAUf3YpjgfTPmG";
5678
5678
  readonly attributesAdded: readonly [];
5679
5679
  }];
5680
5680
  };
5681
- readonly AKNj5zwzgAkXZo3psikJfoVxUcNfMBVgDrf4HDGWL1gm: {
5681
+ readonly '4pFvBSYyitoq8rWqTmY5rLywU2tpZsivDUCAo5vwoAT9': {
5682
5682
  readonly status: "dev";
5683
5683
  readonly name: "Change Workflow";
5684
5684
  readonly versions: readonly [{
5685
- readonly repositoryVersionIndex: 0;
5686
- readonly typeBlueId: "AKNj5zwzgAkXZo3psikJfoVxUcNfMBVgDrf4HDGWL1gm";
5685
+ readonly repositoryVersionIndex: 2;
5686
+ readonly typeBlueId: "4pFvBSYyitoq8rWqTmY5rLywU2tpZsivDUCAo5vwoAT9";
5687
5687
  readonly attributesAdded: readonly [];
5688
5688
  }];
5689
5689
  };
@@ -5867,21 +5867,21 @@ export declare const repository: {
5867
5867
  readonly attributesAdded: readonly [];
5868
5868
  }];
5869
5869
  };
5870
- readonly '2mJhqggRy7YTHK5bSeAitqhhjynpe8mApvQXXpcwPCxx': {
5870
+ readonly BeiedmmcKDhStxDnnQqUaXDJLofWSnqX6CazKTvVpfbW: {
5871
5871
  readonly status: "dev";
5872
5872
  readonly name: "Propose Change Operation";
5873
5873
  readonly versions: readonly [{
5874
- readonly repositoryVersionIndex: 0;
5875
- readonly typeBlueId: "2mJhqggRy7YTHK5bSeAitqhhjynpe8mApvQXXpcwPCxx";
5874
+ readonly repositoryVersionIndex: 2;
5875
+ readonly typeBlueId: "BeiedmmcKDhStxDnnQqUaXDJLofWSnqX6CazKTvVpfbW";
5876
5876
  readonly attributesAdded: readonly [];
5877
5877
  }];
5878
5878
  };
5879
- readonly Ecj8Y7rb7kMCkNFfvyZ36CNB2JjCWrqy7BiHcvcNELEL: {
5879
+ readonly '7dUt8jiX5vGeZL7wVzWFA8uEw37T6oPgC8KyDZmqxeSj': {
5880
5880
  readonly status: "dev";
5881
5881
  readonly name: "Propose Change Workflow";
5882
5882
  readonly versions: readonly [{
5883
- readonly repositoryVersionIndex: 0;
5884
- readonly typeBlueId: "Ecj8Y7rb7kMCkNFfvyZ36CNB2JjCWrqy7BiHcvcNELEL";
5883
+ readonly repositoryVersionIndex: 2;
5884
+ readonly typeBlueId: "7dUt8jiX5vGeZL7wVzWFA8uEw37T6oPgC8KyDZmqxeSj";
5885
5885
  readonly attributesAdded: readonly [];
5886
5886
  }];
5887
5887
  };
@@ -5903,12 +5903,12 @@ export declare const repository: {
5903
5903
  readonly attributesAdded: readonly [];
5904
5904
  }];
5905
5905
  };
5906
- readonly GfqZJJtSJfd69v3pJ67XURdzhC4byWJZAstCh6i4X6MZ: {
5906
+ readonly '9fnXwi4Za8hjEj6zDSEjhbA5dLrDzs7sxoDMGLmRT2Gz': {
5907
5907
  readonly status: "dev";
5908
5908
  readonly name: "Reject Change Workflow";
5909
5909
  readonly versions: readonly [{
5910
- readonly repositoryVersionIndex: 0;
5911
- readonly typeBlueId: "GfqZJJtSJfd69v3pJ67XURdzhC4byWJZAstCh6i4X6MZ";
5910
+ readonly repositoryVersionIndex: 1;
5911
+ readonly typeBlueId: "9fnXwi4Za8hjEj6zDSEjhbA5dLrDzs7sxoDMGLmRT2Gz";
5912
5912
  readonly attributesAdded: readonly [];
5913
5913
  }];
5914
5914
  };