@ixo/topic-protocol 1.0.0-rc.3 → 1.0.0-rc.4

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 (55) hide show
  1. package/README.md +3 -1
  2. package/dist/profiles/releases/1.0.0-rc.3.json +8442 -0
  3. package/dist/schemas/project-projection.schema.json +178 -12
  4. package/dist/schemas/topic-operation.schema.json +155 -13
  5. package/dist/schemas/topic-shape.schema.json +1 -1
  6. package/dist/src/contracts/schemas.d.ts +8 -0
  7. package/dist/src/contracts/validator.js +34 -3
  8. package/dist/src/contracts/validator.js.map +1 -1
  9. package/dist/src/index.d.ts +7 -0
  10. package/dist/src/index.js +7 -0
  11. package/dist/src/index.js.map +1 -1
  12. package/dist/src/projector/payload.d.ts +6 -2
  13. package/dist/src/projector/payload.js +8 -2
  14. package/dist/src/projector/payload.js.map +1 -1
  15. package/dist/src/projector/state.js +11 -3
  16. package/dist/src/projector/state.js.map +1 -1
  17. package/dist/src/projector/types.d.ts +1 -1
  18. package/dist/src/projector/types.js.map +1 -1
  19. package/dist/src/projects/project.js +55 -19
  20. package/dist/src/projects/project.js.map +1 -1
  21. package/dist/src/projects/types.d.ts +1 -0
  22. package/dist/src/shapes/availability.d.ts +2 -0
  23. package/dist/src/shapes/availability.js +19 -0
  24. package/dist/src/shapes/availability.js.map +1 -0
  25. package/dist/src/shapes/commands.d.ts +3 -0
  26. package/dist/src/shapes/commands.js +10 -0
  27. package/dist/src/shapes/commands.js.map +1 -0
  28. package/dist/src/shapes/fields.d.ts +9 -0
  29. package/dist/src/shapes/fields.js +41 -0
  30. package/dist/src/shapes/fields.js.map +1 -0
  31. package/dist/src/shapes/now.js +4 -1
  32. package/dist/src/shapes/now.js.map +1 -1
  33. package/dist/src/shapes/progress.d.ts +3 -1
  34. package/dist/src/shapes/progress.js +60 -26
  35. package/dist/src/shapes/progress.js.map +1 -1
  36. package/dist/src/shapes/reachability.d.ts +3 -0
  37. package/dist/src/shapes/reachability.js +29 -0
  38. package/dist/src/shapes/reachability.js.map +1 -0
  39. package/dist/src/shapes/recipes.js +42 -18
  40. package/dist/src/shapes/recipes.js.map +1 -1
  41. package/dist/src/shapes/releases.d.ts +9 -0
  42. package/dist/src/shapes/releases.js +12 -0
  43. package/dist/src/shapes/releases.js.map +1 -0
  44. package/dist/src/shapes/resolver.d.ts +3 -0
  45. package/dist/src/shapes/resolver.js +56 -16
  46. package/dist/src/shapes/resolver.js.map +1 -1
  47. package/dist/src/shapes/types.d.ts +12 -0
  48. package/package.json +1 -1
  49. package/profiles/releases/1.0.0-rc.3.json +8442 -0
  50. package/recipes/agent-delivery.json +54 -4
  51. package/recipes/blueprint-design.json +4 -3
  52. package/recipes/registry.json +12 -12
  53. package/recipes/research-brief.json +53 -2
  54. package/recipes/software-build.json +2 -2
  55. package/recipes/verified-work-payment.json +56 -5
@@ -3,19 +3,185 @@
3
3
  "$id": "https://topic-protocol.ixo.world/schemas/project-projection.schema.json",
4
4
  "title": "Projected Project state v1",
5
5
  "type": "object",
6
- "required": ["version", "lifecycle", "milestones", "childObligations"],
6
+ "required": [
7
+ "version",
8
+ "lifecycle",
9
+ "milestones",
10
+ "childObligations"
11
+ ],
7
12
  "properties": {
8
- "version": { "const": 1 },
9
- "lifecycle": { "enum": ["proposed", "effective", "closing", "closed"] },
10
- "lead": { "type": "object", "required": ["kind", "id"], "properties": { "kind": { "enum": ["actor", "role"] }, "id": { "type": "string", "minLength": 1 } }, "additionalProperties": false },
11
- "closer": { "type": "object", "required": ["kind", "id"], "properties": { "kind": { "enum": ["actor", "role"] }, "id": { "type": "string", "minLength": 1 } }, "additionalProperties": false },
12
- "milestones": { "type": "array", "items": { "type": "object", "required": ["id", "name", "status", "evidenceRefs"], "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "status": { "enum": ["pending", "in-progress", "met", "waived"] }, "evidenceRequired": { "type": "array", "items": { "type": "string" } }, "evidenceRefs": { "type": "array", "items": { "type": "string" } }, "lastOperationId": { "type": "string" } }, "additionalProperties": false }, "uniqueItemProperty": "id" },
13
- "childObligations": { "type": "array", "items": { "type": "object", "required": ["id", "title", "status"], "properties": { "id": { "type": "string" }, "title": { "type": "string" }, "kind": { "enum": ["task", "agent_task", "proposal", "evaluation", "claims", "incident", "question", "discussion"] }, "topicId": { "type": "string" }, "status": { "enum": ["unmet", "linked", "complete", "waived"] }, "childRevision": { "type": "string" }, "childShapeDigest": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" }, "sourceEventId": { "type": "string" }, "lastOperationId": { "type": "string" } }, "additionalProperties": false }, "uniqueItemProperty": "id" },
14
- "currentBlockingChildObligationId": { "type": "string" },
15
- "methodManifestRef": { "type": "object" },
16
- "closeRequest": { "type": "object" },
17
- "closeAcceptance": { "type": "object" },
18
- "sourceContractRevision": { "type": "string" }
13
+ "version": {
14
+ "const": 1
15
+ },
16
+ "lifecycle": {
17
+ "enum": [
18
+ "proposed",
19
+ "effective",
20
+ "closing",
21
+ "closed"
22
+ ]
23
+ },
24
+ "lead": {
25
+ "type": "object",
26
+ "required": [
27
+ "kind",
28
+ "id"
29
+ ],
30
+ "properties": {
31
+ "kind": {
32
+ "enum": [
33
+ "actor",
34
+ "role"
35
+ ]
36
+ },
37
+ "id": {
38
+ "type": "string",
39
+ "minLength": 1
40
+ }
41
+ },
42
+ "additionalProperties": false
43
+ },
44
+ "closer": {
45
+ "type": "object",
46
+ "required": [
47
+ "kind",
48
+ "id"
49
+ ],
50
+ "properties": {
51
+ "kind": {
52
+ "enum": [
53
+ "actor",
54
+ "role"
55
+ ]
56
+ },
57
+ "id": {
58
+ "type": "string",
59
+ "minLength": 1
60
+ }
61
+ },
62
+ "additionalProperties": false
63
+ },
64
+ "milestones": {
65
+ "type": "array",
66
+ "items": {
67
+ "type": "object",
68
+ "required": [
69
+ "id",
70
+ "name",
71
+ "status",
72
+ "evidenceRefs"
73
+ ],
74
+ "properties": {
75
+ "id": {
76
+ "type": "string"
77
+ },
78
+ "name": {
79
+ "type": "string"
80
+ },
81
+ "status": {
82
+ "enum": [
83
+ "pending",
84
+ "in-progress",
85
+ "met",
86
+ "waived"
87
+ ]
88
+ },
89
+ "evidenceRequired": {
90
+ "type": "array",
91
+ "items": {
92
+ "type": "string"
93
+ }
94
+ },
95
+ "evidenceRefs": {
96
+ "type": "array",
97
+ "items": {
98
+ "type": "string"
99
+ }
100
+ },
101
+ "lastOperationId": {
102
+ "type": "string"
103
+ }
104
+ },
105
+ "additionalProperties": false
106
+ },
107
+ "uniqueItemProperty": "id"
108
+ },
109
+ "childObligations": {
110
+ "type": "array",
111
+ "items": {
112
+ "type": "object",
113
+ "required": [
114
+ "id",
115
+ "title",
116
+ "status"
117
+ ],
118
+ "properties": {
119
+ "id": {
120
+ "type": "string"
121
+ },
122
+ "title": {
123
+ "type": "string"
124
+ },
125
+ "kind": {
126
+ "enum": [
127
+ "task",
128
+ "agent_task",
129
+ "proposal",
130
+ "evaluation",
131
+ "claims",
132
+ "incident",
133
+ "question",
134
+ "discussion"
135
+ ]
136
+ },
137
+ "topicId": {
138
+ "type": "string"
139
+ },
140
+ "status": {
141
+ "enum": [
142
+ "unmet",
143
+ "linked",
144
+ "complete",
145
+ "waived"
146
+ ]
147
+ },
148
+ "childRevision": {
149
+ "type": "string"
150
+ },
151
+ "childShapeDigest": {
152
+ "type": "string",
153
+ "pattern": "^sha256:[0-9a-f]{64}$"
154
+ },
155
+ "sourceEventId": {
156
+ "type": "string"
157
+ },
158
+ "lastOperationId": {
159
+ "type": "string"
160
+ },
161
+ "waiverReason": {
162
+ "type": "string",
163
+ "minLength": 1
164
+ }
165
+ },
166
+ "additionalProperties": false
167
+ },
168
+ "uniqueItemProperty": "id"
169
+ },
170
+ "currentBlockingChildObligationId": {
171
+ "type": "string"
172
+ },
173
+ "methodManifestRef": {
174
+ "type": "object"
175
+ },
176
+ "closeRequest": {
177
+ "type": "object"
178
+ },
179
+ "closeAcceptance": {
180
+ "type": "object"
181
+ },
182
+ "sourceContractRevision": {
183
+ "type": "string"
184
+ }
19
185
  },
20
186
  "additionalProperties": false
21
187
  }
@@ -3,28 +3,170 @@
3
3
  "$id": "https://topic-protocol.ixo.world/schemas/topic-operation.schema.json",
4
4
  "title": "Topic operation",
5
5
  "type": "object",
6
- "required": ["version", "operationId", "topicId", "type", "previousRevision", "actor", "createdAt", "payload"],
6
+ "required": [
7
+ "version",
8
+ "operationId",
9
+ "topicId",
10
+ "type",
11
+ "previousRevision",
12
+ "actor",
13
+ "createdAt",
14
+ "payload"
15
+ ],
7
16
  "properties": {
8
- "version": { "enum": [1, 2] },
9
- "operationId": { "type": "string", "minLength": 1 },
10
- "topicId": { "type": "string", "pattern": "^ixo:topic:[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$" },
11
- "type": { "type": "string", "enum": ["rename", "change-status", "update-overview", "link-context", "unlink-context", "attach-files", "detach-files", "record-decision", "record-outcome", "propose-contract", "update-contract", "accept-contract", "confirm-setup", "withdraw-setup-confirmation", "record-assent", "withdraw-assent", "raise-dispute", "resolve-dispute", "supersede-contract", "bind-automation", "update-automation", "pause-automation", "remove-automation", "bind-flow", "update-flow-binding", "unbind-flow", "request-action", "cancel-action", "record-action-receipt", "bind-external-work", "sync-external-work", "unlink-external-work", "submit-delivery", "record-delivery-decision", "record-evaluation", "record-approval", "record-claim", "record-settlement", "record-project-milestone", "link-project-child", "unlink-project-child", "record-project-child-status", "waive-project-child", "set-project-blocker", "request-project-close", "close-project", "redirect", "branch", "merge", "resolve-conflict"] },
12
- "previousRevision": { "type": "string", "minLength": 1 },
13
- "actor": { "type": "string", "minLength": 1 },
14
- "createdAt": { "type": "string", "format": "date-time" },
15
- "payload": { "type": "object" },
16
- "capability": { "type": "string" }
17
+ "version": {
18
+ "enum": [
19
+ 1,
20
+ 2
21
+ ]
22
+ },
23
+ "operationId": {
24
+ "type": "string",
25
+ "minLength": 1
26
+ },
27
+ "topicId": {
28
+ "type": "string",
29
+ "pattern": "^ixo:topic:[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
30
+ },
31
+ "type": {
32
+ "type": "string",
33
+ "enum": [
34
+ "rename",
35
+ "change-status",
36
+ "change-progress",
37
+ "answer-question",
38
+ "change-due-date",
39
+ "unblock-topic",
40
+ "complete-topic",
41
+ "update-overview",
42
+ "link-context",
43
+ "unlink-context",
44
+ "attach-files",
45
+ "detach-files",
46
+ "record-decision",
47
+ "record-outcome",
48
+ "propose-contract",
49
+ "update-contract",
50
+ "accept-contract",
51
+ "confirm-setup",
52
+ "withdraw-setup-confirmation",
53
+ "record-assent",
54
+ "withdraw-assent",
55
+ "raise-dispute",
56
+ "resolve-dispute",
57
+ "supersede-contract",
58
+ "bind-automation",
59
+ "update-automation",
60
+ "pause-automation",
61
+ "remove-automation",
62
+ "bind-flow",
63
+ "update-flow-binding",
64
+ "unbind-flow",
65
+ "request-action",
66
+ "cancel-action",
67
+ "record-action-receipt",
68
+ "bind-external-work",
69
+ "sync-external-work",
70
+ "unlink-external-work",
71
+ "submit-delivery",
72
+ "record-delivery-decision",
73
+ "record-evaluation",
74
+ "record-approval",
75
+ "record-claim",
76
+ "record-settlement",
77
+ "record-project-milestone",
78
+ "link-project-child",
79
+ "unlink-project-child",
80
+ "record-project-child-status",
81
+ "waive-project-child",
82
+ "set-project-blocker",
83
+ "request-project-close",
84
+ "close-project",
85
+ "redirect",
86
+ "branch",
87
+ "merge",
88
+ "resolve-conflict",
89
+ "record-review"
90
+ ]
91
+ },
92
+ "previousRevision": {
93
+ "type": "string",
94
+ "minLength": 1
95
+ },
96
+ "actor": {
97
+ "type": "string",
98
+ "minLength": 1
99
+ },
100
+ "createdAt": {
101
+ "type": "string",
102
+ "format": "date-time"
103
+ },
104
+ "payload": {
105
+ "type": "object"
106
+ },
107
+ "capability": {
108
+ "type": "string"
109
+ }
17
110
  },
18
111
  "additionalProperties": true,
19
112
  "allOf": [
20
113
  {
21
114
  "if": {
22
115
  "properties": {
23
- "type": { "enum": ["record-outcome", "propose-contract", "update-contract", "accept-contract", "confirm-setup", "withdraw-setup-confirmation", "record-assent", "withdraw-assent", "raise-dispute", "resolve-dispute", "supersede-contract", "bind-automation", "update-automation", "pause-automation", "remove-automation", "bind-flow", "update-flow-binding", "unbind-flow", "request-action", "cancel-action", "record-action-receipt", "bind-external-work", "sync-external-work", "unlink-external-work", "submit-delivery", "record-delivery-decision", "record-evaluation", "record-approval", "record-claim", "record-settlement", "record-project-milestone", "link-project-child", "unlink-project-child", "record-project-child-status", "waive-project-child", "set-project-blocker", "request-project-close", "close-project"] }
116
+ "type": {
117
+ "enum": [
118
+ "record-outcome",
119
+ "propose-contract",
120
+ "update-contract",
121
+ "accept-contract",
122
+ "confirm-setup",
123
+ "withdraw-setup-confirmation",
124
+ "record-assent",
125
+ "withdraw-assent",
126
+ "raise-dispute",
127
+ "resolve-dispute",
128
+ "supersede-contract",
129
+ "bind-automation",
130
+ "update-automation",
131
+ "pause-automation",
132
+ "remove-automation",
133
+ "bind-flow",
134
+ "update-flow-binding",
135
+ "unbind-flow",
136
+ "request-action",
137
+ "cancel-action",
138
+ "record-action-receipt",
139
+ "bind-external-work",
140
+ "sync-external-work",
141
+ "unlink-external-work",
142
+ "submit-delivery",
143
+ "record-delivery-decision",
144
+ "record-evaluation",
145
+ "record-approval",
146
+ "record-claim",
147
+ "record-settlement",
148
+ "record-project-milestone",
149
+ "link-project-child",
150
+ "unlink-project-child",
151
+ "record-project-child-status",
152
+ "waive-project-child",
153
+ "set-project-blocker",
154
+ "request-project-close",
155
+ "close-project"
156
+ ]
157
+ }
24
158
  },
25
- "required": ["type"]
159
+ "required": [
160
+ "type"
161
+ ]
26
162
  },
27
- "then": { "properties": { "version": { "const": 2 } } }
163
+ "then": {
164
+ "properties": {
165
+ "version": {
166
+ "const": 2
167
+ }
168
+ }
169
+ }
28
170
  }
29
171
  ]
30
172
  }
@@ -59,7 +59,7 @@
59
59
  "gates": { "type": "array", "items": { "type": "object", "required": ["kind"], "properties": { "kind": { "enum": ["field", "field-any", "record", "receipt", "axis", "binding", "condition"] }, "requirement": { "$ref": "#/$defs/requirement" } }, "additionalProperties": true } },
60
60
  "confirmation": { "enum": ["none", "viewer", "authority"] },
61
61
  "consequence": { "enum": ["none", "shared-state", "external-effect", "settlement"] },
62
- "evidence": { "type": "object", "required": ["kind", "type"], "properties": { "kind": { "enum": ["operation", "record", "receipt"] }, "type": { "type": "string", "minLength": 1 }, "finality": { "enum": ["observed", "accepted", "verified", "final"] } }, "additionalProperties": false },
62
+ "evidence": { "type": "object", "required": ["kind", "type"], "properties": { "kind": { "enum": ["operation", "record", "receipt"] }, "type": { "type": "string", "minLength": 1 }, "finality": { "enum": ["observed", "accepted", "verified", "final"] }, "status": { "type": "string", "minLength": 1 } }, "additionalProperties": false },
63
63
  "completesTopic": { "type": "boolean" },
64
64
  "handoff": { "type": "object", "required": ["kind", "binding"], "properties": { "kind": { "enum": ["flow", "resource"] }, "binding": { "type": "string", "minLength": 1 } }, "additionalProperties": false },
65
65
  "presentation": { "type": "object", "required": ["reasonCode", "actionLabelKey", "bodyKey", "purposeKey", "unlocksKey", "priority"], "properties": { "reasonCode": { "type": "string", "minLength": 1 }, "actionLabelKey": { "type": "string", "minLength": 1 }, "bodyKey": { "type": "string", "minLength": 1 }, "purposeKey": { "type": "string", "minLength": 1 }, "unlocksKey": { "type": "string", "minLength": 1 }, "priority": { "type": "integer" }, "focusPath": { "type": "string" } }, "additionalProperties": false }
@@ -4933,6 +4933,10 @@ export declare const SCHEMA_REGISTRY: Readonly<{
4933
4933
  lastOperationId: {
4934
4934
  type: string;
4935
4935
  };
4936
+ waiverReason: {
4937
+ type: string;
4938
+ minLength: number;
4939
+ };
4936
4940
  };
4937
4941
  additionalProperties: boolean;
4938
4942
  };
@@ -7433,6 +7437,10 @@ export declare const SCHEMA_REGISTRY: Readonly<{
7433
7437
  finality: {
7434
7438
  enum: string[];
7435
7439
  };
7440
+ status: {
7441
+ type: string;
7442
+ minLength: number;
7443
+ };
7436
7444
  };
7437
7445
  additionalProperties: boolean;
7438
7446
  };
@@ -53,14 +53,45 @@ function normaliseError(error) {
53
53
  message: `${path} ${error.message ?? "is invalid"}`,
54
54
  };
55
55
  }
56
+ function projectBlockerReferenceError(value, prefix = "") {
57
+ if (typeof value !== "object" || value === null || Array.isArray(value))
58
+ return undefined;
59
+ const project = value;
60
+ const blockerId = project.currentBlockingChildObligationId;
61
+ if (typeof blockerId !== "string")
62
+ return undefined;
63
+ const childObligations = project.childObligations;
64
+ if (Array.isArray(childObligations) && childObligations.some((child) => (typeof child === "object"
65
+ && child !== null
66
+ && !Array.isArray(child)
67
+ && child.id === blockerId)))
68
+ return undefined;
69
+ const instancePath = `${prefix}/currentBlockingChildObligationId`;
70
+ return {
71
+ instancePath,
72
+ keyword: "projectBlockerReference",
73
+ message: `${instancePath} must name a declared child obligation`,
74
+ };
75
+ }
76
+ function semanticErrors(name, value) {
77
+ if (name === "project-plan") {
78
+ const error = projectBlockerReferenceError(value);
79
+ return error === undefined ? [] : [error];
80
+ }
81
+ if (name !== "topic-contract-body" || typeof value !== "object" || value === null || Array.isArray(value))
82
+ return [];
83
+ const error = projectBlockerReferenceError(value.project, "/project");
84
+ return error === undefined ? [] : [error];
85
+ }
56
86
  export function validateContract(name, value) {
57
87
  if (!isContractName(name)) {
58
88
  throw new TopicProtocolError("UNKNOWN_CONTRACT", `Unknown Topic Protocol contract: ${String(name)}`, { name });
59
89
  }
60
90
  const validator = validatorFor(name);
61
- if (validator(value))
62
- return { ok: true };
63
- return { ok: false, errors: (validator.errors ?? []).map(normaliseError) };
91
+ if (!validator(value))
92
+ return { ok: false, errors: (validator.errors ?? []).map(normaliseError) };
93
+ const errors = semanticErrors(name, value);
94
+ return errors.length === 0 ? { ok: true } : { ok: false, errors };
64
95
  }
65
96
  export function assertContract(name, value) {
66
97
  const result = validateContract(name, value);
@@ -1 +1 @@
1
- {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../src/contracts/validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../src/contracts/validator.ts"],"names":[],"mappings":"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"}
@@ -30,3 +30,10 @@ export { BASE_RECIPE_REGISTRY, KIND_SHAPE_REGISTRY, TOPIC_RECIPE_REGISTRY } from
30
30
  export { resolveEffectiveTopicShape, topicRecipeRef, type ResolveEffectiveTopicShapeInputV1, } from "./shapes/resolver.js";
31
31
  export { TOPIC_STATE_PROFILE_V3, TOPIC_STATE_PROFILE_V4, type TopicContractAssentV1, type TopicContractConfirmationV1, type TopicContractHeadsV4, type TopicContractReferenceV3, type TopicContractReferenceV4, type TopicContractStateV3, type TopicContractStateV4, } from "./shapes/state.js";
32
32
  export { BASE_RECIPE_CODES, SHAPE_ATTENTION_STATES, SHAPE_CONDITIONS, SHAPE_PHASES, TOPIC_RECIPE_CODES, type BaseRecipeCodeV1, type EffectiveTopicShapeV1, type ResolvedTopicClaimBindingV1, type ShapeAttentionV1, type ShapeConditionV1, type ShapeConfirmationPolicyV1, type ShapeConsequenceClassV1, type ShapeEvidenceRequirementV1, type ShapeGateV1, type ShapePhaseV1, type ShapeProgressRuleV1, type ShapeStateAxisV1, type ShapeStateDefinitionV1, type ShapeTransitionV1, type TopicClaimBindingV1, type TopicActivationPolicyV1, type TopicAssentPolicyV1, type TopicConfirmationPolicyV1, type TopicDisputePolicyV1, type TopicDisputeV1, type TopicEvaluationTimeV1, type TopicNowProjectionV1, type TopicNowProjectionV2, type TopicNowObligationV1, type TopicObligationActionabilityV1, type TopicObligationKindV1, type TopicObligationStatusV1, type TopicObligationV1, type TopicProgressBlockV1, type TopicProgressInputV1, type TopicProgressInputV2, type TopicProgressProjectionV1, type TopicProgressProjectionV2, type TopicProgressSourceV1, type TopicProgressSourceV2, type TopicRecipeCodeV1, type TopicRecipeRefV1, type TopicRecipeV1, type TopicShapeSourceRefV1, type TopicShapeOverlayV1, type TopicShapeV1, type TopicStateTagV1, type TopicTransitionCandidateV1, type TopicSubjectRefV1, type TopicViewerAuthorityV1, } from "./shapes/types.js";
33
+ export { topicSetupFieldState } from "./shapes/fields.js";
34
+ export { TOPIC_SHAPE_RELEASE } from "./shapes/releases.js";
35
+ export { applyTopicShapeEvidence } from "./shapes/progress.js";
36
+ export { resolveTopicRecipe } from "./shapes/resolver.js";
37
+ export { parsePayload as parseTopicOperationPayload } from "./projector/payload.js";
38
+ export { topicFieldGateSatisfied } from "./shapes/fields.js";
39
+ export { TOPIC_COMMAND_OPERATIONS } from "./shapes/commands.js";
package/dist/src/index.js CHANGED
@@ -30,4 +30,11 @@ export { BASE_RECIPE_REGISTRY, KIND_SHAPE_REGISTRY, TOPIC_RECIPE_REGISTRY } from
30
30
  export { resolveEffectiveTopicShape, topicRecipeRef, } from "./shapes/resolver.js";
31
31
  export { TOPIC_STATE_PROFILE_V3, TOPIC_STATE_PROFILE_V4, } from "./shapes/state.js";
32
32
  export { BASE_RECIPE_CODES, SHAPE_ATTENTION_STATES, SHAPE_CONDITIONS, SHAPE_PHASES, TOPIC_RECIPE_CODES, } from "./shapes/types.js";
33
+ export { topicSetupFieldState } from "./shapes/fields.js";
34
+ export { TOPIC_SHAPE_RELEASE } from "./shapes/releases.js";
35
+ export { applyTopicShapeEvidence } from "./shapes/progress.js";
36
+ export { resolveTopicRecipe } from "./shapes/resolver.js";
37
+ export { parsePayload as parseTopicOperationPayload } from "./projector/payload.js";
38
+ export { topicFieldGateSatisfied } from "./shapes/fields.js";
39
+ export { TOPIC_COMMAND_OPERATIONS } from "./shapes/commands.js";
33
40
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,10 @@ export type ParsedPayload = {
12
12
  } | {
13
13
  readonly kind: "change-status";
14
14
  readonly status: TopicStatus;
15
+ } | {
16
+ readonly kind: "change-progress" | "unblock-topic" | "complete-topic";
17
+ readonly transitionCode: string;
18
+ readonly changedPaths: readonly string[];
15
19
  } | {
16
20
  readonly kind: "update-overview";
17
21
  readonly overview: TopicOverview;
@@ -29,14 +33,14 @@ export type ParsedPayload = {
29
33
  readonly kind: "record-decision";
30
34
  readonly decision: DecisionPayload;
31
35
  } | {
32
- readonly kind: "record-outcome";
36
+ readonly kind: "record-outcome" | "record-review";
33
37
  readonly transitionCode: string;
34
38
  readonly transitionEvidenceId: string;
35
39
  readonly transitionEvidenceEventId: string;
36
40
  readonly transitionEvidenceDigest: `sha256:${string}`;
37
41
  readonly transitionEvidence: Readonly<Record<string, unknown>>;
38
42
  } | {
39
- readonly kind: "propose-contract" | "update-contract";
43
+ readonly kind: "propose-contract" | "update-contract" | "answer-question" | "change-due-date";
40
44
  readonly contract: TopicContractReference;
41
45
  readonly changedPaths: readonly string[];
42
46
  } | {
@@ -183,7 +183,7 @@ function decisionValue(operation) {
183
183
  }
184
184
  function outcomeEvidenceValue(operation) {
185
185
  return {
186
- kind: "record-outcome",
186
+ kind: operation.type,
187
187
  transitionCode: stringValue(operation, operation.payload, "transitionCode"),
188
188
  transitionEvidenceId: stringValue(operation, operation.payload, "transitionEvidenceId"),
189
189
  transitionEvidenceEventId: stringValue(operation, operation.payload, "transitionEvidenceEventId"),
@@ -526,7 +526,7 @@ function parseActionRuntimePayload(operation) {
526
526
  function parseTopicRecordPayload(operation) {
527
527
  if (operation.type === "record-decision")
528
528
  return { kind: operation.type, decision: decisionValue(operation) };
529
- if (operation.type === "record-outcome")
529
+ if (operation.type === "record-outcome" || operation.type === "record-review")
530
530
  return outcomeEvidenceValue(operation);
531
531
  return undefined;
532
532
  }
@@ -546,6 +546,10 @@ export function parsePayload(operation) {
546
546
  return { kind: operation.type, title: titleValue(operation) };
547
547
  case "change-status":
548
548
  return { kind: operation.type, status: statusValue(operation) };
549
+ case "change-progress":
550
+ case "unblock-topic":
551
+ case "complete-topic":
552
+ return { kind: operation.type, transitionCode: stringValue(operation, operation.payload, "transitionCode"), changedPaths: stringArrayValue(operation, operation.payload, "changedPaths") };
549
553
  case "update-overview":
550
554
  return updateOverviewValue(operation);
551
555
  case "link-context":
@@ -555,6 +559,8 @@ export function parsePayload(operation) {
555
559
  return { kind: operation.type, files: attachmentsValue(operation) };
556
560
  case "detach-files":
557
561
  return { kind: operation.type, files: attachmentIdentitiesValue(operation) };
562
+ case "answer-question":
563
+ case "change-due-date":
558
564
  case "propose-contract":
559
565
  case "update-contract":
560
566
  case "accept-contract":