Compare commits
2 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
5430437bfd | |
|
|
0d72c189b3 |
|
|
@ -20,6 +20,18 @@ import * as path from 'path';
|
||||||
import * as os from 'os';
|
import * as os from 'os';
|
||||||
|
|
||||||
const home = process.env.HOME || os.homedir();
|
const home = process.env.HOME || os.homedir();
|
||||||
|
|
||||||
|
// ── session ID (Langfuse tracing) ──
|
||||||
|
// Priority: SKILL_SESSION_ID env > auto-generate
|
||||||
|
const SESSION_ID = process.env.SKILL_SESSION_ID || (() => {
|
||||||
|
const ts = new Date();
|
||||||
|
const pad = (n: number) => String(n).padStart(2, '0');
|
||||||
|
const tsPart = `${ts.getFullYear()}${pad(ts.getMonth()+1)}${pad(ts.getDate())}-${pad(ts.getHours())}${pad(ts.getMinutes())}${pad(ts.getSeconds())}`;
|
||||||
|
const rand = Math.random().toString(36).slice(2, 6);
|
||||||
|
return `skill-${tsPart}-${rand}`;
|
||||||
|
})();
|
||||||
|
process.env.SKILL_SESSION_ID = SESSION_ID;
|
||||||
|
|
||||||
const AUTH_RT_BIN = process.env.AUTH_RT_BIN
|
const AUTH_RT_BIN = process.env.AUTH_RT_BIN
|
||||||
|| (() => {
|
|| (() => {
|
||||||
// Check if auth-rt is in PATH
|
// Check if auth-rt is in PATH
|
||||||
|
|
@ -43,6 +55,20 @@ export interface SessionResponse {
|
||||||
hookToken?: string;
|
hookToken?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface ClientConfig {
|
||||||
|
clientId: string;
|
||||||
|
name: string;
|
||||||
|
status: string;
|
||||||
|
metadata: {
|
||||||
|
provider?: {
|
||||||
|
api_key?: string;
|
||||||
|
base_url?: string;
|
||||||
|
model?: string;
|
||||||
|
};
|
||||||
|
[key: string]: unknown;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
export interface SkillClientOptions {
|
export interface SkillClientOptions {
|
||||||
apiBase?: string;
|
apiBase?: string;
|
||||||
dryRun?: boolean;
|
dryRun?: boolean;
|
||||||
|
|
@ -79,6 +105,13 @@ export class SkillClient {
|
||||||
return JSON.parse(runCli('session'));
|
return JSON.parse(runCli('session'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async clientConfig(): Promise<ClientConfig> {
|
||||||
|
if (this.dryRun) {
|
||||||
|
return { clientId: '<dry-run>', name: '<dry-run>', status: 'active', metadata: {} };
|
||||||
|
}
|
||||||
|
return JSON.parse(runCli('client-config'));
|
||||||
|
}
|
||||||
|
|
||||||
async get(urlPath: string): Promise<ApiResponse> {
|
async get(urlPath: string): Promise<ApiResponse> {
|
||||||
return this.request('GET', urlPath);
|
return this.request('GET', urlPath);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue