Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 3 additions & 7 deletions dag/gunbc/fabric/fabric_witness_run.dag
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import product.fabric.identity {
FabricIdentity, WorkKey, ExecutionAttemptKey, OfferKey, GrantKey,
fabric_identity_eq,
}
import product.fabric.work {
import product.fabric.work { MaterializedProgram,
Work, WorkContract, WorkStep, ResumabilityTier, ReceiptSatisfiable,
ExecutionRequirements, Shape, HardRequirements, CapacityClass, ControlPlaneCapacity,
CapabilityManifestRef, TrustDomainRef,
Expand Down Expand Up @@ -178,15 +178,13 @@ fn required_build_contract_from_materials(
terminal_result_manifest: List<NonEmptyStr>,
) -> WorkContract {
WorkContract {
program: concat("gunbc.required-witnesses-build.program:", framed_string(value: command)),
execution: MaterializedProgram { program: concat("gunbc.required-witnesses-build.program:", framed_string(value: command)), source: concat("gunbc.required-witnesses-build.source:", concat(framed_string(value: source), framed_string(value: checkout))), runtime_closure: concat("gunbc.required-witnesses-build.runtime:", concat(framed_string(value: toolchain), framed_string(value: executable))) },
steps: [
WorkStep { step_id: "checkout-materialize", resumability: ReceiptSatisfiable },
WorkStep { step_id: "toolchain-and-executable-materialize", resumability: ReceiptSatisfiable },
WorkStep { step_id: "required-witnesses-build", resumability: ReceiptSatisfiable },
],
source: concat("gunbc.required-witnesses-build.source:", concat(framed_string(value: source), framed_string(value: checkout))),
inputs: concat("gunbc.required-witnesses-build.inputs:", concat(framed_string(value: environment), concat(framed_string(value: cache), framed_string(value: credentials)))),
runtime_closure: concat("gunbc.required-witnesses-build.runtime:", concat(framed_string(value: toolchain), framed_string(value: executable))),
effect_contract: "gunbc.required-witnesses-build.effects.checkout-read-cache-and-permitted-credentials-only",
output_contract: "gunbc.required-witnesses-build.outputs",
output_obligations: declared_output_obligations_from_manifests(
Expand Down Expand Up @@ -402,13 +400,11 @@ fn required_witnesses_build_frozen_identity_wire(
// resumability that would restore it belongs with the cost basis, not here.
fn floor_work_contract(source: SourceManifestRef) -> WorkContract {
WorkContract {
program: "gunbc.claim_executor",
execution: MaterializedProgram { program: "gunbc.claim_executor", source: source, runtime_closure: "gunbc.toolchain.rust-1.93.0+clippy+rustfmt" },
steps: [
WorkStep { step_id: "required-ci", resumability: ReceiptSatisfiable },
],
source: source,
inputs: floor_inputs_manifest_ref(),
runtime_closure: "gunbc.toolchain.rust-1.93.0+clippy+rustfmt",
effect_contract: "gunbc.floor.effects.read-only-corpus",
output_contract: "gunbc.floor.outputs.required-floor-summary",
output_obligations: declared_terminal_obligations(ids: ["required-floor-summary"]),
Expand Down
39 changes: 17 additions & 22 deletions dag/gunbc/harness/harness_seat.dag
Original file line number Diff line number Diff line change
Expand Up @@ -325,11 +325,11 @@ fn harness_seat_standing(route: ServingRoute, layout: EventLogLayout, now: Epoch

// ── WHAT THIS BOUNDARY IS, AND WHAT IT IS NOT ────────────────────────────────────────────────
//
// IT IS AN ADMISSION BROKER OVER FABRIC OFFERS, AND IT DOES NOT BIND SERVING INTO FABRIC Work.
// gunbc.serving.turn_demand can construct exact inference Work and its Demand, and this path does
// not call it, because it cannot: no observation in this repository establishes the exact model,
// tokenizer and runtime closure a launch loaded, so every Work it could build here would be the
// typed refusal that module returns.
// IT IS AN ADMISSION BROKER OVER FABRIC OFFERS, AND IT DOES NOT YET BIND SERVING INTO FABRIC Work.
// gunbc.serving.turn_demand constructs a turn's Work as an OfferedService from the request alone, so
// the identity no longer waits on any observation of the selected engine. This path still does not
// call it, because it receives no normalized turn request: the prompt reaches harness_run_turn after
// placement, and nothing here carries the interface, inputs or output contract a Work is made of.
//
// AN EARLIER SHAPE OF THIS FILE CARRIED THAT REFUSAL ON THE GRANTED SEAT, which reads as enforcement
// and is not: the refusal travelled beside a successful placement and prevented nothing
Expand All @@ -338,10 +338,9 @@ fn harness_seat_standing(route: ServingRoute, layout: EventLogLayout, now: Epoch
// (whether this group may take a fresh cold-risk turn now) and claims nothing about work identity.
//
// THE FRONTIER, NAMED SO IT IS NOT MISTAKEN FOR AN OMISSION. gunbc.serving.turn_demand's consumer is
// this function, and it lands when a launch receipt reads the served model, tokenizer and runtime
// closure off the running engine. At that point placement takes the Demand's own key rather than the
// caller's actor string, and a request whose source closure is unestablished refuses BEFORE
// acquisition rather than after it.
// this function, and it lands when harness_bind_seat takes a normalized ServingTurnRequest: one Work
// and one Demand are then constructed before candidates are enumerated, and placement takes the
// Demand's own key rather than the caller's actor string.
// ── WHAT THE TURN REQUIRES OF A MODEL, WHICH IS NOW A QUESTION RATHER THAN A CONSTANT ────────
//
// THE DEMAND USED TO NAME ONE MODEL AND THAT WAS THE WHOLE PROBLEM. The capability a serving offer
Expand Down Expand Up @@ -456,14 +455,11 @@ fn harness_no_candidate(acc: HarnessCandidates, note: String, retryable: Bool) -
// when evidence identifies the deployment that answered as the offered launch.
//
// A CandidateOffer is sole_constructor through product.fabric.selection bind_candidate, which takes
// a DEMAND IDENTITY and a WORK IDENTITY and compares the permit against both. A WorkKey comes from
// exactly one place -- product.fabric.work derive_work_key, through work_for -- which needs a
// WorkContract, which needs a SourceManifestRef; and gunbc.serving.turn_demand refuses to produce
// one until its weights, tokenizer and runtime components are each observed. Nothing observes the
// first two (serving_turn_weights_obligation, serving_turn_tokenizer_obligation), and the runtime is
// read only through an incarnation observation this path does not have. Minting a key beside derive_work_key would
// fabricate the identity the fabric's deduplication and receipts are keyed on, so this arm reports
// what is missing and seats nobody rather than inventing it.
// a DEMAND IDENTITY and a WORK IDENTITY and compares the permit against both. The Work is
// constructible -- gunbc.serving.turn_demand serving_turn_work builds an OfferedService from the
// request alone, and no realization fact of the offer participates -- but it must be constructed once
// at the request boundary and carried down, never minted here per candidate, and this path receives
// no normalized request to construct it from.
//
// THE CAPABILITY IS THE REQUIREMENT'S, NOT THE OBSERVED MODEL'S, and the two are reconciled before
// this is reached rather than here: the observed unit has already been checked against the
Expand All @@ -479,10 +475,9 @@ fn harness_no_candidate(acc: HarnessCandidates, note: String, retryable: Bool) -
// of this arm, so the wording carries it: admission cannot yet be evaluated, and the producer exists
// and has not run (operator-routed review of #11083).
//
// Restoration trigger: observers of the loaded weight and tokenizer bytes and of the answering
// incarnation, SUFFICIENT FOR gunbc.serving.turn_demand serving_turn_work to return TurnWorkBound
// for a harness turn -- at which point the demand and work identities exist, the admission producer
// is called with them, and bind_candidate has everything it compares.
// Restoration trigger: harness_bind_seat carries a normalized ServingTurnRequest, SUFFICIENT FOR one
// Work and one Demand constructed before candidate enumeration -- at which point the admission
// producer is called with them, and bind_candidate has everything it compares.
//
// THE REALIZATION THE HARNESS OFFERS IS BUILT IN ONE PLACE, so a witness can drive the route standing
// through exactly what production passes. It states two absences, and both are real on this path:
Expand Down Expand Up @@ -526,7 +521,7 @@ fn harness_bind_candidate(acc: HarnessCandidates, group: FabricGroup, endpoint:
acc: acc,
note: seat_bind_detail(
group: group,
text: "The serving offer bound. Provider-use admission cannot yet be evaluated for this turn because its exact Work identity is unestablished: nothing observes the weight or tokenizer bytes a launch loaded, so gunbc.serving.turn_demand cannot bind a source manifest, and product.fabric.selection bind_candidate has no work to compare a permit against. gunbc.spark.first_party_serving spark_first_party_admission EXISTS and has NOT RUN for this turn",
text: "The serving offer bound. Provider-use admission cannot yet be evaluated for this turn because placement receives no normalized turn request: gunbc.serving.turn_demand serving_turn_work can construct the turn's Work from one, but harness_bind_seat is given no interface, inputs or output contract, so no Work or Demand exists for product.fabric.selection bind_candidate to compare a permit against. gunbc.spark.first_party_serving spark_first_party_admission EXISTS and has NOT RUN for this turn",
),
retryable: false,
)
Expand Down
6 changes: 3 additions & 3 deletions dag/gunbc/instruments/fabric_m0_origin_object_probe.dag
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import std.measure { hardware_thread_count }
import std.scoped_authorization { AttemptIdentity }
import product.fabric.envelope { unstated_envelope }
import product.fabric.isolation { shared_kernel_sandbox_profile }
import product.fabric.work {
import product.fabric.work { MaterializedProgram,
Work, WorkContract, WorkStep, ReceiptSatisfiable, ExecutionRequirements,
Shape, HardRequirements, ControlPlaneCapacity, work_for,
OutputObligation, OutputArtifactObligation, DeclaredOutputObligations,
Expand Down Expand Up @@ -229,9 +229,9 @@ fn canary_work() -> Work<NonEmptyStr> {
work_for(
principal: "gunbc" as NonEmptyStr,
contract: WorkContract {
program: "gunbc.fabric-m0.canary:1",
execution: MaterializedProgram { program: "gunbc.fabric-m0.canary:1", source: "source:1", runtime_closure: "runtime:1" },
steps: [WorkStep { step_id: "fabric-m0-canary", resumability: ReceiptSatisfiable }],
source: "source:1", inputs: "inputs:1", runtime_closure: "runtime:1",
inputs: "inputs:1",
effect_contract: "effects:1", output_contract: "outputs:1",
output_obligations: DeclaredOutputObligations { required: [canary_object()] },
},
Expand Down
6 changes: 2 additions & 4 deletions dag/gunbc/instruments/fabric_m0_origin_readback_probe.dag
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import std.scoped_authorization { AttemptIdentity }
import product.fabric.identity { WorkKey }
import product.fabric.envelope { unstated_envelope }
import product.fabric.isolation { shared_kernel_sandbox_profile }
import product.fabric.work {
import product.fabric.work { MaterializedProgram,
WorkContract, WorkStep, ReceiptSatisfiable, ExecutionRequirements,
Shape, HardRequirements, ControlPlaneCapacity, derive_work_key,
OutputObligation, OutputArtifactObligation,
Expand Down Expand Up @@ -183,11 +183,9 @@ fn fixture_requirements() -> ExecutionRequirements {

fn the_contract() -> WorkContract {
WorkContract {
program: "gunbc.fabric-m0.program:1",
execution: MaterializedProgram { program: "gunbc.fabric-m0.program:1", source: "source:1", runtime_closure: "runtime:1" },
steps: [WorkStep { step_id: "fabric-m0", resumability: ReceiptSatisfiable }],
source: "source:1",
inputs: "inputs:1",
runtime_closure: "runtime:1",
effect_contract: "effects:1",
output_contract: "outputs:1",
output_obligations: DeclaredOutputObligations { required: [the_object()] },
Expand Down
Loading
Loading