(opts: {
tag: string
metadata: Metadata
state: AgentState | null
model?: string
modelReasoningEffort?: string
effort?: string
})
| 35 | } |
| 36 | |
| 37 | async getOrCreateSession(opts: { |
| 38 | tag: string |
| 39 | metadata: Metadata |
| 40 | state: AgentState | null |
| 41 | model?: string |
| 42 | modelReasoningEffort?: string |
| 43 | effort?: string |
| 44 | }): Promise<Session> { |
| 45 | const response = await axios.post<CreateSessionResponse>( |
| 46 | `${configuration.apiUrl}/cli/sessions`, |
| 47 | { |
| 48 | tag: opts.tag, |
| 49 | metadata: opts.metadata, |
| 50 | agentState: opts.state, |
| 51 | model: opts.model, |
| 52 | modelReasoningEffort: opts.modelReasoningEffort, |
| 53 | effort: opts.effort |
| 54 | }, |
| 55 | { |
| 56 | headers: buildHubRequestHeaders({ |
| 57 | Authorization: `Bearer ${this.token}`, |
| 58 | 'Content-Type': 'application/json' |
| 59 | }), |
| 60 | timeout: 60_000 |
| 61 | } |
| 62 | ) |
| 63 | |
| 64 | const parsed = CreateSessionResponseSchema.safeParse(response.data) |
| 65 | if (!parsed.success) { |
| 66 | throw apiValidationError('Invalid /cli/sessions response', response) |
| 67 | } |
| 68 | |
| 69 | const raw = parsed.data.session |
| 70 | |
| 71 | const metadata = (() => { |
| 72 | if (raw.metadata == null) return null |
| 73 | const parsedMetadata = MetadataSchema.safeParse(raw.metadata) |
| 74 | return parsedMetadata.success ? parsedMetadata.data : null |
| 75 | })() |
| 76 | |
| 77 | const agentState = (() => { |
| 78 | if (raw.agentState == null) return null |
| 79 | const parsedAgentState = AgentStateSchema.safeParse(raw.agentState) |
| 80 | return parsedAgentState.success ? parsedAgentState.data : null |
| 81 | })() |
| 82 | |
| 83 | return { |
| 84 | id: raw.id, |
| 85 | namespace: raw.namespace, |
| 86 | seq: raw.seq, |
| 87 | createdAt: raw.createdAt, |
| 88 | updatedAt: raw.updatedAt, |
| 89 | active: raw.active, |
| 90 | activeAt: raw.activeAt, |
| 91 | metadata, |
| 92 | metadataVersion: raw.metadataVersion, |
| 93 | agentState, |
| 94 | agentStateVersion: raw.agentStateVersion, |
no test coverage detected