|
|
@@ -3,6 +3,7 @@
|
|
|
from __future__ import annotations
|
|
|
|
|
|
import json
|
|
|
+from collections.abc import Sequence
|
|
|
from hashlib import sha256
|
|
|
from math import isfinite
|
|
|
|
|
|
@@ -153,19 +154,20 @@ class ScriptMissionFactory:
|
|
|
"number and order of Structure, Paragraph, ElementSet, Retrieval and Compare "
|
|
|
"increments demanded by the active Direction Goals; siblings may cover "
|
|
|
"overlapping Goals. Every Phase2 contract has nonempty goal_ids, every "
|
|
|
- "creative Task pins the exact accepted Direction DecisionRef, and Compose "
|
|
|
- "and CandidatePortfolio carry all Direction Goal IDs. Retrieval needs valid "
|
|
|
- "goal_ids but need not read the whole Direction. Paragraph-first exploration "
|
|
|
+ "creative Task is automatically pinned to the active accepted Direction, "
|
|
|
+ "and Compose and CandidatePortfolio carry all Direction Goal IDs. "
|
|
|
+ "Retrieval needs valid goal_ids but need not read the whole Direction. "
|
|
|
+ "Paragraph-first exploration "
|
|
|
"may use a null base; a Paragraph patch must pin its accepted Structure, and "
|
|
|
"Compose may adopt any Paragraph only with a Structure covering its scope. "
|
|
|
"Compose and Portfolio remain non-executable containers until a REVISE "
|
|
|
- "partitions their complete accepted candidate closure and sets compose_order. "
|
|
|
+ "selects accepted child Decision IDs; the Host partitions the complete "
|
|
|
+ "candidate closure and freezes compose_order. "
|
|
|
"Compose adopts the creative frontier; Portfolio adopts exactly one accepted "
|
|
|
- "StructuredScript. Both container input_decision_refs also pin the active "
|
|
|
- "Direction. CandidatePortfolio and Compose write only script-build://writes; "
|
|
|
- "paragraph writers stay below script-build://writes/paragraphs and element "
|
|
|
- "writers below script-build://writes/elements. Respect the Host concurrency "
|
|
|
- "limit. After the unique Portfolio is validated and ACCEPTed, BLOCK Root "
|
|
|
+ "StructuredScript. Artifact refs, digests, producer scopes, write scopes, "
|
|
|
+ "schemas, budgets and closure fields are Host-owned. Respect the Host "
|
|
|
+ "concurrency limit. After the unique Portfolio is validated and ACCEPTed, "
|
|
|
+ "BLOCK Root "
|
|
|
"with PHASE_TWO_CANDIDATE_PORTFOLIO_READY."
|
|
|
),
|
|
|
},
|
|
|
@@ -208,6 +210,7 @@ class ScriptMissionFactory:
|
|
|
snapshot: ScriptBuildInputSnapshotV1,
|
|
|
*,
|
|
|
direction_artifact_version_id: int,
|
|
|
+ direction_goal_ids: Sequence[str] = (),
|
|
|
) -> str:
|
|
|
return json.dumps(
|
|
|
{
|
|
|
@@ -219,6 +222,7 @@ class ScriptMissionFactory:
|
|
|
"accepted_direction_ref": (
|
|
|
f"script-build://artifact-versions/{direction_artifact_version_id}"
|
|
|
),
|
|
|
+ "active_direction_goal_ids": list(direction_goal_ids),
|
|
|
"phase_boundary": "PHASE_TWO_CANDIDATE_PORTFOLIO_READY",
|
|
|
},
|
|
|
ensure_ascii=False,
|