refactor: session ID 统一由 auth-cli.ts 生成
register-skill-release / register (push) Successful in 21s Details

- scripts/run.ts: 移除重复的 session ID 自动生成逻辑
- src/auth-cli.ts: 同步自 auth-runtime(模块级 SKILL_SESSION_ID)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
ywkj 2026-04-26 19:01:10 +08:00
parent a95f9045e5
commit a6b4f99a83
2 changed files with 13 additions and 32 deletions

View File

@ -93,17 +93,7 @@ async function main(): Promise<void> {
if (positionals.length < 1) { printUsage(); process.exit(1); } if (positionals.length < 1) { printUsage(); process.exit(1); }
const command = positionals[0] as Command; const command = positionals[0] as Command;
const sessionId = process.env.SKILL_SESSION_ID!; // set by auth-cli.ts at module load
// Resolve session ID: explicit CLI arg > env > auto-generate structured ID
const sessionId = 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 `vps-${tsPart}-${rand}`;
})();
process.env.SKILL_SESSION_ID = sessionId;
const startMs = Date.now(); const startMs = Date.now();
let result: Awaited<ReturnType<typeof run>>; let result: Awaited<ReturnType<typeof run>>;

View File

@ -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,20 +55,6 @@ 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;
@ -93,13 +91,6 @@ 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);
} }