134 lines
4.4 KiB
Go
134 lines
4.4 KiB
Go
package work
|
|
|
|
import "time"
|
|
|
|
type DevelopmentStage string
|
|
|
|
const (
|
|
DevelopmentEvidenceCollected DevelopmentStage = "EVIDENCE_COLLECTED"
|
|
DevelopmentProposalCreated DevelopmentStage = "PROPOSAL_CREATED"
|
|
DevelopmentTaskAdmitted DevelopmentStage = "TASK_ADMITTED"
|
|
DevelopmentIsolated DevelopmentStage = "ISOLATED"
|
|
DevelopmentVerified DevelopmentStage = "VERIFIED"
|
|
DevelopmentCanary DevelopmentStage = "CANARY"
|
|
DevelopmentPromoted DevelopmentStage = "PROMOTED"
|
|
DevelopmentRolledBack DevelopmentStage = "ROLLED_BACK"
|
|
)
|
|
|
|
type DevelopmentGate struct {
|
|
ID string
|
|
Revision int64
|
|
UpdatedAtUnixMillis int64
|
|
Stage DevelopmentStage
|
|
EvidenceRefs []string
|
|
ProposalRef string
|
|
TaskPacketRef string
|
|
WorktreeRef string
|
|
ProducerRunRefs []AgentRunID
|
|
VerifierRunRefs []AgentRunID
|
|
VerificationEvidence string
|
|
CanaryEvidence string
|
|
PromotionRef string
|
|
RollbackRef string
|
|
}
|
|
|
|
// ExtensionProposalStage is deliberately proposal-only in this contract. A
|
|
// proposal does not authorize source changes, provider calls, deployment or
|
|
// promotion; those stages require the existing governed development gate.
|
|
type ExtensionProposalStage string
|
|
|
|
const ExtensionProposalProposed ExtensionProposalStage = "PROPOSED"
|
|
|
|
// ExtensionEvidence is an immutable reference to an observation that points
|
|
// at a repeated or corroborated improvement signal. The payload is owned by
|
|
// its source module; Work stores only the typed reference and stable signal
|
|
// key.
|
|
type ExtensionEvidence struct {
|
|
Ref string
|
|
SignalKey string
|
|
}
|
|
|
|
// ExtensionProposalRequest contains the operator/governance information
|
|
// needed to decide whether an evidence pattern is worth reviewing. Empty
|
|
// fields are rejected by the proposal generator rather than inferred.
|
|
type ExtensionProposalRequest struct {
|
|
ID string
|
|
DesiredOutcome string
|
|
SmallestChangeLayer string
|
|
AffectedOwners []string
|
|
AffectedContracts []string
|
|
RiskTier string
|
|
EvaluationPlan []string
|
|
Alternatives []string
|
|
RollbackPlan string
|
|
Assumptions []string
|
|
CreatedAt time.Time
|
|
}
|
|
|
|
// ExtensionProposal is a bounded, evidence-bearing candidate for governed
|
|
// development. It intentionally contains no executable command, credential,
|
|
// authority grant, implementation body or promotion decision.
|
|
type ExtensionProposal struct {
|
|
ID string
|
|
RequestedByPrincipalID string
|
|
Stage ExtensionProposalStage
|
|
EvidenceRefs []string
|
|
DeduplicatedSignalKeys []string
|
|
DesiredOutcome string
|
|
SmallestChangeLayer string
|
|
AffectedOwners []string
|
|
AffectedContracts []string
|
|
RiskTier string
|
|
EvaluationPlan []string
|
|
Alternatives []string
|
|
RollbackPlan string
|
|
Assumptions []string
|
|
CreatedAtUnixMillis int64
|
|
}
|
|
|
|
type DevelopmentScaffoldStage string
|
|
|
|
const DevelopmentScaffoldSandboxed DevelopmentScaffoldStage = "SANDBOXED"
|
|
|
|
// DevelopmentScaffoldRequest describes the boundary a later control plane
|
|
// would use to create an isolated worktree. This value object itself performs
|
|
// no checkout or filesystem operation.
|
|
type DevelopmentScaffoldRequest struct {
|
|
ID string
|
|
ProposalRef string
|
|
BaseRepoRevision string
|
|
WorktreeRef string
|
|
TaskIntent string
|
|
Modules []string
|
|
AllowedPaths []string
|
|
ForbiddenPaths []string
|
|
ProtectedPaths []string
|
|
RequiredTests []string
|
|
ArtifactLineageRefs []string
|
|
ProtectedMainAccess string
|
|
ProductionAccess string
|
|
SecretAccess string
|
|
CreatedAt time.Time
|
|
}
|
|
|
|
// DevelopmentScaffold is a provenance-linked task-packet candidate. It has
|
|
// no executable instruction, credential, checkout handle or authority grant.
|
|
type DevelopmentScaffold struct {
|
|
ID string
|
|
RequestedByPrincipalID string
|
|
Stage DevelopmentScaffoldStage
|
|
ProposalRef string
|
|
BaseRepoRevision string
|
|
WorktreeRef string
|
|
TaskIntent string
|
|
Modules []string
|
|
AllowedPaths []string
|
|
ForbiddenPaths []string
|
|
RequiredTests []string
|
|
ArtifactLineageRefs []string
|
|
ProtectedMainAccess string
|
|
ProductionAccess string
|
|
SecretAccess string
|
|
CreatedAtUnixMillis int64
|
|
}
|