( sessionUrl: string, accessToken: string, )
| 95 | * (api-go/environment-manager/cmd/cmd_task_run.go RegisterWorker). |
| 96 | */ |
| 97 | export async function registerWorker( |
| 98 | sessionUrl: string, |
| 99 | accessToken: string, |
| 100 | ): Promise<number> { |
| 101 | const response = await axios.post( |
| 102 | `${sessionUrl}/worker/register`, |
| 103 | {}, |
| 104 | { |
| 105 | headers: { |
| 106 | Authorization: `Bearer ${accessToken}`, |
| 107 | 'Content-Type': 'application/json', |
| 108 | 'anthropic-version': '2023-06-01', |
| 109 | }, |
| 110 | timeout: 10_000, |
| 111 | }, |
| 112 | ) |
| 113 | // protojson serializes int64 as a string to avoid JS number precision loss; |
| 114 | // the Go side may also return a number depending on encoder settings. |
| 115 | const raw = response.data?.worker_epoch |
| 116 | const epoch = typeof raw === 'string' ? Number(raw) : raw |
| 117 | if ( |
| 118 | typeof epoch !== 'number' || |
| 119 | !Number.isFinite(epoch) || |
| 120 | !Number.isSafeInteger(epoch) |
| 121 | ) { |
| 122 | throw new Error( |
| 123 | `registerWorker: invalid worker_epoch in response: ${jsonStringify(response.data)}`, |
| 124 | ) |
| 125 | } |
| 126 | return epoch |
| 127 | } |
| 128 | |
| 129 |
no test coverage detected