@company-semantics/contracts 60.0.0 → 61.0.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.
- package/package.json +1 -1
- package/src/decisions/types.ts +24 -1
package/package.json
CHANGED
package/src/decisions/types.ts
CHANGED
|
@@ -71,7 +71,29 @@ export type DecisionEffect =
|
|
|
71
71
|
* derivation to run again. Carries the reason so the follow-up has something
|
|
72
72
|
* to act on, and so the reviewer is not told "saved" when nothing moved.
|
|
73
73
|
*/
|
|
74
|
-
| { readonly kind: "needs_reinference"; readonly note: string }
|
|
74
|
+
| { readonly kind: "needs_reinference"; readonly note: string }
|
|
75
|
+
/**
|
|
76
|
+
* Mark a person as the head of a DURABLE unit, and optionally set that unit's
|
|
77
|
+
* owner label. Today the only producer names the org root, so accepting is how
|
|
78
|
+
* an imported chart's CEO becomes the workspace's root owner.
|
|
79
|
+
*
|
|
80
|
+
* DURABLE addressing, not a temp id: post-apply every unit is durable, so a
|
|
81
|
+
* real id is the general form. A temp id would serve only corrections to
|
|
82
|
+
* not-yet-created units, which a proposal's own `headPersonId` already covers
|
|
83
|
+
* with no effect at all.
|
|
84
|
+
*
|
|
85
|
+
* THIS EFFECT NEVER MINTS AUTHORITY. It writes a presentation/semantic marker
|
|
86
|
+
* and a label. Granting unit or account ownership stays with the human-gated
|
|
87
|
+
* ownership route — a root-unit owner IS an account owner, so an automated
|
|
88
|
+
* grant would be a privilege-escalation path.
|
|
89
|
+
*/
|
|
90
|
+
| {
|
|
91
|
+
readonly kind: "set_unit_head";
|
|
92
|
+
readonly unitId: string;
|
|
93
|
+
readonly personId: string;
|
|
94
|
+
/** Non-null also sets the unit's owner label; null marks the head only. */
|
|
95
|
+
readonly title: string | null;
|
|
96
|
+
};
|
|
75
97
|
|
|
76
98
|
/** The closed set of effect kinds, as runtime data for validators. */
|
|
77
99
|
export const DECISION_EFFECT_KINDS = [
|
|
@@ -81,6 +103,7 @@ export const DECISION_EFFECT_KINDS = [
|
|
|
81
103
|
"unadopt_unit",
|
|
82
104
|
"archive_unit",
|
|
83
105
|
"needs_reinference",
|
|
106
|
+
"set_unit_head",
|
|
84
107
|
] as const satisfies ReadonlyArray<DecisionEffect["kind"]>;
|
|
85
108
|
|
|
86
109
|
/** One answer a human may give, with what it means and what it does. */
|