MCPcopy Create free account
hub / github.com/tiann/hapi / getOrCreateSession

Method getOrCreateSession

cli/src/api/api.ts:37–104  ·  view source on GitHub ↗
(opts: {
        tag: string
        metadata: Metadata
        state: AgentState | null
        model?: string
        modelReasoningEffort?: string
        effort?: string
    })

Source from the content-addressed store, hash-verified

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,

Callers 3

bootstrapSessionFunction · 0.45

Calls 2

buildHubRequestHeadersFunction · 0.90
apiValidationErrorFunction · 0.90

Tested by

no test coverage detected