forked from cleveragents/cleveragents-core
a6f3bd3841
This commit adds JSON/YAML schemas, Python stubs, fixture examples, and comprehensive test coverage for data contracts across all modules (auth, AI models, contexts, plans, orgs, etc.). Implements automated validation through Behave and
429 lines
10 KiB
Python
429 lines
10 KiB
Python
"""Auto-generated Python stubs from Go contracts."""
|
|
|
|
from dataclasses import dataclass, field
|
|
from typing import Any, Dict, List, Optional
|
|
from datetime import datetime
|
|
from enum import Enum
|
|
|
|
|
|
class ContextType(str, Enum):
|
|
"""Enum for ContextType."""
|
|
|
|
ContextFileType = "ContextFileType"
|
|
ContextURLType = "ContextURLType"
|
|
ContextNoteType = "ContextNoteType"
|
|
ContextDirectoryTreeType = "ContextDirectoryTreeType"
|
|
ContextPipedDataType = "ContextPipedDataType"
|
|
ContextImageType = "ContextImageType"
|
|
ContextMapType = "ContextMapType"
|
|
|
|
|
|
class TellStage(str, Enum):
|
|
"""Enum for TellStage."""
|
|
|
|
TellStagePlanning = "TellStagePlanning"
|
|
TellStageImplementation = "TellStageImplementation"
|
|
|
|
|
|
class PlanningPhase(str, Enum):
|
|
"""Enum for PlanningPhase."""
|
|
|
|
PlanningPhaseContext = "PlanningPhaseContext"
|
|
PlanningPhaseTasks = "PlanningPhaseTasks"
|
|
|
|
|
|
class OperationType(str, Enum):
|
|
"""Enum for OperationType."""
|
|
|
|
OperationTypeFile = "OperationTypeFile"
|
|
OperationTypeMove = "OperationTypeMove"
|
|
OperationTypeRemove = "OperationTypeRemove"
|
|
OperationTypeReset = "OperationTypeReset"
|
|
|
|
|
|
class CreditsTransactionType(str, Enum):
|
|
"""Enum for CreditsTransactionType."""
|
|
|
|
CreditsTransactionTypeCredit = "CreditsTransactionTypeCredit"
|
|
CreditsTransactionTypeDebit = "CreditsTransactionTypeDebit"
|
|
|
|
|
|
class CreditType(str, Enum):
|
|
"""Enum for CreditType."""
|
|
|
|
CreditTypeTrial = "CreditTypeTrial"
|
|
CreditTypeGrant = "CreditTypeGrant"
|
|
CreditTypeAdminGrant = "CreditTypeAdminGrant"
|
|
CreditTypePurchase = "CreditTypePurchase"
|
|
CreditTypeSwitch = "CreditTypeSwitch"
|
|
|
|
|
|
ContextType = str
|
|
|
|
FileMapBodies = map[string]string
|
|
|
|
TellStage = str
|
|
|
|
PlanningPhase = str
|
|
|
|
OperationType = str
|
|
|
|
PlanFileResultsByPath = map[string][]*PlanFileResult
|
|
|
|
CreditsTransactionType = str
|
|
|
|
CreditType = str
|
|
|
|
@dataclass
|
|
class Org:
|
|
"""Data contract for Org."""
|
|
|
|
id: str
|
|
name: str
|
|
isTrial: bool
|
|
# optional cloud attributes
|
|
autoAddDomainUsers: bool
|
|
integratedModelsMode: bool = None
|
|
cloudBillingFields: Optional[CloudBillingFields] = None
|
|
|
|
@dataclass
|
|
class User:
|
|
"""Data contract for User."""
|
|
|
|
id: str
|
|
name: str
|
|
email: str
|
|
isTrial: bool
|
|
numNonDraftPlans: int
|
|
defaultPlanConfig: Optional[PlanConfig] = None
|
|
|
|
@dataclass
|
|
class OrgUser:
|
|
"""Data contract for OrgUser."""
|
|
|
|
orgId: str
|
|
userId: str
|
|
orgRoleId: str
|
|
config: Optional[OrgUserConfig] = None
|
|
|
|
@dataclass
|
|
class Invite:
|
|
"""Data contract for Invite."""
|
|
|
|
id: str
|
|
orgId: str
|
|
email: str
|
|
name: str
|
|
orgRoleId: str
|
|
inviterId: str
|
|
inviteeId: Optional[str] = None
|
|
acceptedAt: Optional[Time] = None
|
|
createdAt: Time
|
|
|
|
@dataclass
|
|
class Project:
|
|
"""Data contract for Project."""
|
|
|
|
id: str
|
|
name: str
|
|
|
|
@dataclass
|
|
class Plan:
|
|
"""Data contract for Plan."""
|
|
|
|
id: str
|
|
ownerId: str
|
|
projectId: str
|
|
name: str
|
|
sharedWithOrgAt: Optional[Time] = None
|
|
totalReplies: int
|
|
activeBranches: int
|
|
planConfig: Optional[PlanConfig] = None
|
|
archivedAt: Optional[Time] = None
|
|
createdAt: Time
|
|
updatedAt: Time
|
|
|
|
@dataclass
|
|
class Branch:
|
|
"""Data contract for Branch."""
|
|
|
|
id: str
|
|
planId: str
|
|
ownerId: str
|
|
parentBranchId: Optional[str] = None
|
|
name: str
|
|
status: PlanStatus
|
|
contextTokens: int
|
|
convoTokens: int
|
|
sharedWithOrgAt: Optional[Time] = None
|
|
archivedAt: Optional[Time] = None
|
|
createdAt: Time
|
|
updatedAt: Time
|
|
|
|
@dataclass
|
|
class Context:
|
|
"""Data contract for Context."""
|
|
|
|
id: str
|
|
ownerId: str
|
|
contextType: ContextType
|
|
name: str
|
|
url: str
|
|
file_path: str
|
|
sha: str
|
|
numTokens: int
|
|
body: str = None
|
|
bodySize: int = None
|
|
forceSkipIgnore: bool
|
|
imageDetail: ImageURLDetail = None
|
|
mapParts: FileMapBodies = None
|
|
mapShas: Dict[str, map[string]string] = None
|
|
mapTokens: Dict[str, map[string]int] = None
|
|
mapSizes: Dict[str, map[string]int64] = None
|
|
autoLoaded: bool
|
|
createdAt: Time
|
|
updatedAt: Time
|
|
|
|
@dataclass
|
|
class CurrentStage:
|
|
"""Data contract for CurrentStage."""
|
|
|
|
tellstage: TellStage
|
|
planningphase: PlanningPhase
|
|
|
|
@dataclass
|
|
class ConvoMessageFlags:
|
|
"""Data contract for ConvoMessageFlags."""
|
|
|
|
didMakePlan: bool
|
|
didRemoveTasks: bool
|
|
didMakeDebuggingPlan: bool
|
|
didLoadContext: bool
|
|
currentstage: CurrentStage
|
|
isChat: bool
|
|
didWriteCode: bool
|
|
didCompleteTask: bool
|
|
didCompletePlan: bool
|
|
hasUnfinishedSubtasks: bool
|
|
isApplyDebug: bool
|
|
isUserDebug: bool
|
|
hasError: bool
|
|
|
|
@dataclass
|
|
class Subtask:
|
|
"""Data contract for Subtask."""
|
|
|
|
title: str
|
|
description: str
|
|
usesFiles: List[str] = field(default_factory=list)
|
|
isFinished: bool
|
|
|
|
@dataclass
|
|
class ConvoMessage:
|
|
"""Data contract for ConvoMessage."""
|
|
|
|
id: str
|
|
userId: str
|
|
role: str
|
|
tokens: int
|
|
num: int
|
|
message: str
|
|
stopped: bool
|
|
flags: ConvoMessageFlags
|
|
subtask: Optional[Subtask] = None
|
|
addedSubtasks: List[*Subtask] = None
|
|
removedSubtasks: List[str] = None
|
|
activeContextIds: List[str] = field(default_factory=list)
|
|
createdAt: Time
|
|
|
|
@dataclass
|
|
class ConvoSummary:
|
|
"""Data contract for ConvoSummary."""
|
|
|
|
id: str
|
|
latestConvoMessageCreatedAt: Time
|
|
lastestConvoMessageId: str
|
|
summary: str
|
|
tokens: int
|
|
numMessages: int
|
|
createdAt: Time
|
|
|
|
@dataclass
|
|
class Operation:
|
|
"""Data contract for Operation."""
|
|
|
|
type_: OperationType
|
|
path: str
|
|
destination: str
|
|
content: str
|
|
description: str
|
|
replybefore: str
|
|
numtokens: int
|
|
|
|
@dataclass
|
|
class ConvoMessageDescription:
|
|
"""Data contract for ConvoMessageDescription."""
|
|
|
|
id: str
|
|
convoMessageId: str
|
|
summarizedToMessageId: str
|
|
wroteFiles: bool
|
|
# Files []string `json:"files"`
|
|
commitMsg: str
|
|
operations: List[*Operation] = field(default_factory=list)
|
|
didBuild: bool
|
|
buildPathsInvalidated: Dict[str, map[string]bool] = field(default_factory=dict)
|
|
error: str
|
|
appliedAt: Optional[Time] = None
|
|
createdAt: Time
|
|
updatedAt: Time
|
|
|
|
@dataclass
|
|
class PlanBuild:
|
|
"""Data contract for PlanBuild."""
|
|
|
|
id: str
|
|
convoMessageId: str
|
|
filePath: str
|
|
error: str
|
|
createdAt: Time
|
|
updatedAt: Time
|
|
|
|
@dataclass
|
|
class Replacement:
|
|
"""Data contract for Replacement."""
|
|
|
|
id: str
|
|
old: str
|
|
summary: str
|
|
entireFile: bool
|
|
new: str
|
|
failed: bool
|
|
rejectedAt: Optional[Time] = None
|
|
streamedChange: Optional[StreamedChangeWithLineNums] = None
|
|
|
|
@dataclass
|
|
class PlanFileResult:
|
|
"""Data contract for PlanFileResult."""
|
|
|
|
id: str
|
|
typeVersion: int
|
|
replaceWithLineNums: bool
|
|
convoMessageId: str
|
|
planBuildId: str
|
|
path: str
|
|
content: str
|
|
anyFailed: bool
|
|
appliedAt: Optional[Time] = None
|
|
rejectedAt: Optional[Time] = None
|
|
replacements: List[*Replacement] = field(default_factory=list)
|
|
removedFile: bool
|
|
createdAt: Time
|
|
updatedAt: Time
|
|
|
|
@dataclass
|
|
class CurrentPlanFiles:
|
|
"""Data contract for CurrentPlanFiles."""
|
|
|
|
files: Dict[str, map[string]string] = field(default_factory=dict)
|
|
removedByPath: Dict[str, map[string]bool] = field(default_factory=dict)
|
|
updatedAtByPath: Dict[str, Time] = field(default_factory=dict)
|
|
|
|
@dataclass
|
|
class PlanResult:
|
|
"""Data contract for PlanResult."""
|
|
|
|
sortedPaths: List[str] = field(default_factory=list)
|
|
fileResultsByPath: PlanFileResultsByPath
|
|
results: List[*PlanFileResult] = field(default_factory=list)
|
|
replacementsByPath: Dict[str, map[string][]*Replacement] = field(default_factory=dict)
|
|
|
|
@dataclass
|
|
class PlanApply:
|
|
"""Data contract for PlanApply."""
|
|
|
|
id: str
|
|
userId: str
|
|
convoMessageIds: List[str] = field(default_factory=list)
|
|
convoMessageDescriptionIds: List[str] = field(default_factory=list)
|
|
planFileResultIds: List[str] = field(default_factory=list)
|
|
commitMsg: str
|
|
createdAt: Time
|
|
|
|
@dataclass
|
|
class CurrentPlanState:
|
|
"""Data contract for CurrentPlanState."""
|
|
|
|
planResult: Optional[PlanResult] = None
|
|
currentPlanFiles: Optional[CurrentPlanFiles] = None
|
|
convoMessageDescriptions: List[*ConvoMessageDescription] = field(default_factory=list)
|
|
planApplies: List[*PlanApply] = field(default_factory=list)
|
|
contextsByPath: Dict[str, map[string]*Context] = field(default_factory=dict)
|
|
|
|
@dataclass
|
|
class OrgRole:
|
|
"""Data contract for OrgRole."""
|
|
|
|
id: str
|
|
isDefault: bool
|
|
label: str
|
|
description: str
|
|
|
|
@dataclass
|
|
class CloudBillingFields:
|
|
"""Data contract for CloudBillingFields."""
|
|
|
|
creditsBalance: Decimal
|
|
monthlyGrant: Decimal
|
|
autoRebuyEnabled: bool
|
|
autoRebuyMinThreshold: Decimal
|
|
autoRebuyToBalance: Decimal
|
|
notifyThreshold: Decimal
|
|
maxThresholdPerMonth: Decimal
|
|
billingCycleStartedAt: Time
|
|
changedBillingMode: bool
|
|
trialPaid: bool
|
|
stripeSubscriptionId: Optional[str] = None
|
|
subscriptionStatus: Optional[str] = None
|
|
subscriptionPausedAt: Optional[Time] = None
|
|
stripePaymentMethod: Optional[str] = None
|
|
# for 3ds/sca approvals
|
|
subscriptionActionRequired: bool
|
|
subscriptionActionRequiredInvoiceUrl: Optional[str] = None
|
|
|
|
@dataclass
|
|
class CreditsTransaction:
|
|
"""Data contract for CreditsTransaction."""
|
|
|
|
id: str
|
|
orgId: str
|
|
orgName: str
|
|
userId: Optional[str] = None
|
|
userEmail: Optional[str] = None
|
|
userName: Optional[str] = None
|
|
transactionType: CreditsTransactionType
|
|
amount: Decimal
|
|
startBalance: Decimal
|
|
endBalance: Decimal
|
|
creditType: Optional[CreditType] = None
|
|
creditIsAutoRebuy: bool
|
|
creditAutoRebuyMinThreshold: Optional[Decimal] = None
|
|
creditAutoRebuyToBalance: Optional[Decimal] = None
|
|
debitInputTokens: Optional[int] = None
|
|
debitOutputTokens: Optional[int] = None
|
|
debitModelInputPricePerToken: Optional[Decimal] = None
|
|
debitModelOutputPricePerToken: Optional[Decimal] = None
|
|
debitBaseAmount: Optional[Decimal] = None
|
|
debitSurcharge: Optional[Decimal] = None
|
|
debitModelProvider: Optional[ModelProvider] = None
|
|
debitModelName: Optional[str] = None
|
|
debitModelPackName: Optional[str] = None
|
|
debitModelRole: Optional[ModelRole] = None
|
|
debitPurpose: Optional[str] = None
|
|
debitPlanId: Optional[str] = None
|
|
debitPlanName: Optional[str] = None
|
|
debitId: Optional[str] = None
|
|
debitCacheDiscount: Optional[Decimal] = None
|
|
debitSessionId: Optional[str] = None
|
|
createdAt: Time
|