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

Method getSession

cli/src/api/api.ts:106–153  ·  view source on GitHub ↗
(sessionId: string)

Source from the content-addressed store, hash-verified

104 }
105
106 async getSession(sessionId: string): Promise<Session> {
107 const response = await axios.get(
108 `${configuration.apiUrl}/cli/sessions/${encodeURIComponent(sessionId)}`,
109 {
110 headers: this.authHeaders(),
111 timeout: 60_000
112 }
113 )
114
115 const parsed = GetSessionResponseSchema.safeParse(response.data)
116 if (!parsed.success) {
117 throw apiValidationError('Invalid /cli/sessions/:id response', response)
118 }
119
120 const raw = parsed.data.session
121 const metadata = (() => {
122 if (raw.metadata == null) return null
123 const parsedMetadata = MetadataSchema.safeParse(raw.metadata)
124 return parsedMetadata.success ? parsedMetadata.data : null
125 })()
126 const agentState = (() => {
127 if (raw.agentState == null) return null
128 const parsedAgentState = AgentStateSchema.safeParse(raw.agentState)
129 return parsedAgentState.success ? parsedAgentState.data : null
130 })()
131
132 return {
133 id: raw.id,
134 namespace: raw.namespace,
135 seq: raw.seq,
136 createdAt: raw.createdAt,
137 updatedAt: raw.updatedAt,
138 active: raw.active,
139 activeAt: raw.activeAt,
140 metadata,
141 metadataVersion: raw.metadataVersion,
142 agentState,
143 agentStateVersion: raw.agentStateVersion,
144 thinking: raw.thinking,
145 thinkingAt: raw.thinkingAt,
146 todos: raw.todos,
147 model: raw.model,
148 modelReasoningEffort: raw.modelReasoningEffort,
149 effort: raw.effort,
150 permissionMode: raw.permissionMode,
151 collaborationMode: raw.collaborationMode
152 }
153 }
154
155 async getOrCreateMachine(opts: {
156 machineId: string

Callers 1

bootstrapExistingSessionFunction · 0.45

Calls 3

authHeadersMethod · 0.95
apiValidationErrorFunction · 0.90
getMethod · 0.80

Tested by

no test coverage detected