🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@eldrex/openclaw

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@eldrex/openclaw - npm Package Compare versions

Comparing version
1.0.0
to
1.0.2
+3
-1
dist/index.cjs

@@ -69,3 +69,5 @@ "use strict";

const errText = await response.text();
throw new Error(`OpenClaw adapter run failed: ${response.status} - ${errText}`);
throw new Error(
`OpenClaw adapter run failed: ${response.status} - ${errText}`
);
}

@@ -72,0 +74,0 @@ return response.json();

@@ -1,1 +0,1 @@

{"version":3,"sources":["../src/index.ts","../src/adapter.ts","../src/trigger.ts","../src/action.ts"],"sourcesContent":["export { OpenClawAdapter, OpenClawSkillContext } from './adapter'\nexport { OpenClawTriggerEngine, OpenClawTriggerEvent } from './trigger'\nexport { OpenClawActionHandler } from './action'\n","export interface OpenClawSkillContext {\n inputs: {\n repository: string\n branch?: string\n since?: string\n persona?: string\n format?: string[]\n depth?: string\n language?: string\n }\n secrets?: Record<string, string>\n}\n\nexport class OpenClawAdapter {\n private gatewayUrl: string\n\n constructor(gatewayUrl = 'http://localhost:3737') {\n this.gatewayUrl = gatewayUrl\n }\n\n /**\n * Translates the OpenClaw skill input and calls the DevDiff Gateway endpoint.\n */\n async runSkill(ctx: OpenClawSkillContext): Promise<any> {\n const payload = {\n source: 'manual',\n repository: {\n path: ctx.inputs.repository,\n branch: ctx.inputs.branch || 'main',\n },\n change_range: ctx.inputs.since\n ? {\n from: ctx.inputs.since.split('..')[0] || '',\n to: ctx.inputs.since.split('..')[1] || '',\n }\n : undefined,\n config: {\n persona: ctx.inputs.persona || 'developer',\n formats: ctx.inputs.format || ['markdown'],\n depth: ctx.inputs.depth || 'standard',\n language: ctx.inputs.language || 'en',\n },\n }\n\n const headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n }\n\n if (ctx.secrets?.['DEVDIFF_API_KEY']) {\n headers['X-API-Key'] = ctx.secrets['DEVDIFF_API_KEY']\n }\n\n const response = await fetch(`${this.gatewayUrl}/api/v1/analyze`, {\n method: 'POST',\n headers,\n body: JSON.stringify(payload),\n })\n\n if (!response.ok) {\n const errText = await response.text()\n throw new Error(`OpenClaw adapter run failed: ${response.status} - ${errText}`)\n }\n\n return response.json()\n }\n}\n","export interface OpenClawTriggerEvent {\n type: 'git_push' | 'pull_request' | 'scheduled' | 'manual'\n timestamp: string\n details: any\n}\n\nexport class OpenClawTriggerEngine {\n /**\n * Transforms raw git events or schedules into standardized OpenClaw trigger runs.\n */\n static processTrigger(event: OpenClawTriggerEvent): { shouldRun: boolean; skillInputs: any } {\n if (event.type === 'git_push') {\n return {\n shouldRun: true,\n skillInputs: {\n repository: event.details.repoPath || '.',\n branch: event.details.branch || 'main',\n since: `${event.details.before || 'HEAD~1'}..${event.details.after || 'HEAD'}`,\n },\n }\n }\n \n if (event.type === 'pull_request') {\n return {\n shouldRun: true,\n skillInputs: {\n repository: event.details.repoPath || '.',\n since: `${event.details.baseSha}..${event.details.headSha}`,\n persona: 'compliance',\n },\n }\n }\n\n // Default manuals/schedules\n return {\n shouldRun: true,\n skillInputs: {\n repository: event.details.repoPath || '.',\n since: 'HEAD~1..HEAD',\n },\n }\n }\n}\n","import { OpenClawAdapter, OpenClawSkillContext } from './adapter'\n\nexport class OpenClawActionHandler {\n private adapter: OpenClawAdapter\n\n constructor(gatewayUrl?: string) {\n this.adapter = new OpenClawAdapter(gatewayUrl)\n }\n\n /**\n * Executes the pipeline skill action and returns the output variables for OpenClaw.\n */\n async handle(context: OpenClawSkillContext): Promise<{\n changelog: string\n mermaid?: string\n summary: string\n stats: any\n }> {\n const gatewayResult = await this.adapter.runSkill(context)\n \n return {\n changelog: gatewayResult.results?.changelog || '',\n mermaid: gatewayResult.results?.mermaid || '',\n summary: gatewayResult.results?.markdown || '',\n stats: gatewayResult.results?.stats || {},\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACaO,IAAM,kBAAN,MAAsB;AAAA,EACnB;AAAA,EAER,YAAY,aAAa,yBAAyB;AAChD,SAAK,aAAa;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,SAAS,KAAyC;AACtD,UAAM,UAAU;AAAA,MACd,QAAQ;AAAA,MACR,YAAY;AAAA,QACV,MAAM,IAAI,OAAO;AAAA,QACjB,QAAQ,IAAI,OAAO,UAAU;AAAA,MAC/B;AAAA,MACA,cAAc,IAAI,OAAO,QACrB;AAAA,QACE,MAAM,IAAI,OAAO,MAAM,MAAM,IAAI,EAAE,CAAC,KAAK;AAAA,QACzC,IAAI,IAAI,OAAO,MAAM,MAAM,IAAI,EAAE,CAAC,KAAK;AAAA,MACzC,IACA;AAAA,MACJ,QAAQ;AAAA,QACN,SAAS,IAAI,OAAO,WAAW;AAAA,QAC/B,SAAS,IAAI,OAAO,UAAU,CAAC,UAAU;AAAA,QACzC,OAAO,IAAI,OAAO,SAAS;AAAA,QAC3B,UAAU,IAAI,OAAO,YAAY;AAAA,MACnC;AAAA,IACF;AAEA,UAAM,UAAkC;AAAA,MACtC,gBAAgB;AAAA,IAClB;AAEA,QAAI,IAAI,UAAU,iBAAiB,GAAG;AACpC,cAAQ,WAAW,IAAI,IAAI,QAAQ,iBAAiB;AAAA,IACtD;AAEA,UAAM,WAAW,MAAM,MAAM,GAAG,KAAK,UAAU,mBAAmB;AAAA,MAChE,QAAQ;AAAA,MACR;AAAA,MACA,MAAM,KAAK,UAAU,OAAO;AAAA,IAC9B,CAAC;AAED,QAAI,CAAC,SAAS,IAAI;AAChB,YAAM,UAAU,MAAM,SAAS,KAAK;AACpC,YAAM,IAAI,MAAM,gCAAgC,SAAS,MAAM,MAAM,OAAO,EAAE;AAAA,IAChF;AAEA,WAAO,SAAS,KAAK;AAAA,EACvB;AACF;;;AC3DO,IAAM,wBAAN,MAA4B;AAAA;AAAA;AAAA;AAAA,EAIjC,OAAO,eAAe,OAAuE;AAC3F,QAAI,MAAM,SAAS,YAAY;AAC7B,aAAO;AAAA,QACL,WAAW;AAAA,QACX,aAAa;AAAA,UACX,YAAY,MAAM,QAAQ,YAAY;AAAA,UACtC,QAAQ,MAAM,QAAQ,UAAU;AAAA,UAChC,OAAO,GAAG,MAAM,QAAQ,UAAU,QAAQ,KAAK,MAAM,QAAQ,SAAS,MAAM;AAAA,QAC9E;AAAA,MACF;AAAA,IACF;AAEA,QAAI,MAAM,SAAS,gBAAgB;AACjC,aAAO;AAAA,QACL,WAAW;AAAA,QACX,aAAa;AAAA,UACX,YAAY,MAAM,QAAQ,YAAY;AAAA,UACtC,OAAO,GAAG,MAAM,QAAQ,OAAO,KAAK,MAAM,QAAQ,OAAO;AAAA,UACzD,SAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAGA,WAAO;AAAA,MACL,WAAW;AAAA,MACX,aAAa;AAAA,QACX,YAAY,MAAM,QAAQ,YAAY;AAAA,QACtC,OAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACF;;;ACxCO,IAAM,wBAAN,MAA4B;AAAA,EACzB;AAAA,EAER,YAAY,YAAqB;AAC/B,SAAK,UAAU,IAAI,gBAAgB,UAAU;AAAA,EAC/C;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,OAAO,SAKV;AACD,UAAM,gBAAgB,MAAM,KAAK,QAAQ,SAAS,OAAO;AAEzD,WAAO;AAAA,MACL,WAAW,cAAc,SAAS,aAAa;AAAA,MAC/C,SAAS,cAAc,SAAS,WAAW;AAAA,MAC3C,SAAS,cAAc,SAAS,YAAY;AAAA,MAC5C,OAAO,cAAc,SAAS,SAAS,CAAC;AAAA,IAC1C;AAAA,EACF;AACF;","names":[]}
{"version":3,"sources":["../src/index.ts","../src/adapter.ts","../src/trigger.ts","../src/action.ts"],"sourcesContent":["export { OpenClawAdapter, OpenClawSkillContext } from \"./adapter\";\nexport { OpenClawTriggerEngine, OpenClawTriggerEvent } from \"./trigger\";\nexport { OpenClawActionHandler } from \"./action\";\n","export interface OpenClawSkillContext {\n inputs: {\n repository: string;\n branch?: string;\n since?: string;\n persona?: string;\n format?: string[];\n depth?: string;\n language?: string;\n };\n secrets?: Record<string, string>;\n}\n\nexport class OpenClawAdapter {\n private gatewayUrl: string;\n\n constructor(gatewayUrl = \"http://localhost:3737\") {\n this.gatewayUrl = gatewayUrl;\n }\n\n /**\n * Translates the OpenClaw skill input and calls the DevDiff Gateway endpoint.\n */\n async runSkill(ctx: OpenClawSkillContext): Promise<any> {\n const payload = {\n source: \"manual\",\n repository: {\n path: ctx.inputs.repository,\n branch: ctx.inputs.branch || \"main\",\n },\n change_range: ctx.inputs.since\n ? {\n from: ctx.inputs.since.split(\"..\")[0] || \"\",\n to: ctx.inputs.since.split(\"..\")[1] || \"\",\n }\n : undefined,\n config: {\n persona: ctx.inputs.persona || \"developer\",\n formats: ctx.inputs.format || [\"markdown\"],\n depth: ctx.inputs.depth || \"standard\",\n language: ctx.inputs.language || \"en\",\n },\n };\n\n const headers: Record<string, string> = {\n \"Content-Type\": \"application/json\",\n };\n\n if (ctx.secrets?.[\"DEVDIFF_API_KEY\"]) {\n headers[\"X-API-Key\"] = ctx.secrets[\"DEVDIFF_API_KEY\"];\n }\n\n const response = await fetch(`${this.gatewayUrl}/api/v1/analyze`, {\n method: \"POST\",\n headers,\n body: JSON.stringify(payload),\n });\n\n if (!response.ok) {\n const errText = await response.text();\n throw new Error(\n `OpenClaw adapter run failed: ${response.status} - ${errText}`,\n );\n }\n\n return response.json();\n }\n}\n","export interface OpenClawTriggerEvent {\n type: \"git_push\" | \"pull_request\" | \"scheduled\" | \"manual\";\n timestamp: string;\n details: any;\n}\n\nexport class OpenClawTriggerEngine {\n /**\n * Transforms raw git events or schedules into standardized OpenClaw trigger runs.\n */\n static processTrigger(event: OpenClawTriggerEvent): {\n shouldRun: boolean;\n skillInputs: any;\n } {\n if (event.type === \"git_push\") {\n return {\n shouldRun: true,\n skillInputs: {\n repository: event.details.repoPath || \".\",\n branch: event.details.branch || \"main\",\n since: `${event.details.before || \"HEAD~1\"}..${event.details.after || \"HEAD\"}`,\n },\n };\n }\n\n if (event.type === \"pull_request\") {\n return {\n shouldRun: true,\n skillInputs: {\n repository: event.details.repoPath || \".\",\n since: `${event.details.baseSha}..${event.details.headSha}`,\n persona: \"compliance\",\n },\n };\n }\n\n // Default manuals/schedules\n return {\n shouldRun: true,\n skillInputs: {\n repository: event.details.repoPath || \".\",\n since: \"HEAD~1..HEAD\",\n },\n };\n }\n}\n","import { OpenClawAdapter, OpenClawSkillContext } from \"./adapter\";\n\nexport class OpenClawActionHandler {\n private adapter: OpenClawAdapter;\n\n constructor(gatewayUrl?: string) {\n this.adapter = new OpenClawAdapter(gatewayUrl);\n }\n\n /**\n * Executes the pipeline skill action and returns the output variables for OpenClaw.\n */\n async handle(context: OpenClawSkillContext): Promise<{\n changelog: string;\n mermaid?: string;\n summary: string;\n stats: any;\n }> {\n const gatewayResult = await this.adapter.runSkill(context);\n\n return {\n changelog: gatewayResult.results?.changelog || \"\",\n mermaid: gatewayResult.results?.mermaid || \"\",\n summary: gatewayResult.results?.markdown || \"\",\n stats: gatewayResult.results?.stats || {},\n };\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACaO,IAAM,kBAAN,MAAsB;AAAA,EACnB;AAAA,EAER,YAAY,aAAa,yBAAyB;AAChD,SAAK,aAAa;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,SAAS,KAAyC;AACtD,UAAM,UAAU;AAAA,MACd,QAAQ;AAAA,MACR,YAAY;AAAA,QACV,MAAM,IAAI,OAAO;AAAA,QACjB,QAAQ,IAAI,OAAO,UAAU;AAAA,MAC/B;AAAA,MACA,cAAc,IAAI,OAAO,QACrB;AAAA,QACE,MAAM,IAAI,OAAO,MAAM,MAAM,IAAI,EAAE,CAAC,KAAK;AAAA,QACzC,IAAI,IAAI,OAAO,MAAM,MAAM,IAAI,EAAE,CAAC,KAAK;AAAA,MACzC,IACA;AAAA,MACJ,QAAQ;AAAA,QACN,SAAS,IAAI,OAAO,WAAW;AAAA,QAC/B,SAAS,IAAI,OAAO,UAAU,CAAC,UAAU;AAAA,QACzC,OAAO,IAAI,OAAO,SAAS;AAAA,QAC3B,UAAU,IAAI,OAAO,YAAY;AAAA,MACnC;AAAA,IACF;AAEA,UAAM,UAAkC;AAAA,MACtC,gBAAgB;AAAA,IAClB;AAEA,QAAI,IAAI,UAAU,iBAAiB,GAAG;AACpC,cAAQ,WAAW,IAAI,IAAI,QAAQ,iBAAiB;AAAA,IACtD;AAEA,UAAM,WAAW,MAAM,MAAM,GAAG,KAAK,UAAU,mBAAmB;AAAA,MAChE,QAAQ;AAAA,MACR;AAAA,MACA,MAAM,KAAK,UAAU,OAAO;AAAA,IAC9B,CAAC;AAED,QAAI,CAAC,SAAS,IAAI;AAChB,YAAM,UAAU,MAAM,SAAS,KAAK;AACpC,YAAM,IAAI;AAAA,QACR,gCAAgC,SAAS,MAAM,MAAM,OAAO;AAAA,MAC9D;AAAA,IACF;AAEA,WAAO,SAAS,KAAK;AAAA,EACvB;AACF;;;AC7DO,IAAM,wBAAN,MAA4B;AAAA;AAAA;AAAA;AAAA,EAIjC,OAAO,eAAe,OAGpB;AACA,QAAI,MAAM,SAAS,YAAY;AAC7B,aAAO;AAAA,QACL,WAAW;AAAA,QACX,aAAa;AAAA,UACX,YAAY,MAAM,QAAQ,YAAY;AAAA,UACtC,QAAQ,MAAM,QAAQ,UAAU;AAAA,UAChC,OAAO,GAAG,MAAM,QAAQ,UAAU,QAAQ,KAAK,MAAM,QAAQ,SAAS,MAAM;AAAA,QAC9E;AAAA,MACF;AAAA,IACF;AAEA,QAAI,MAAM,SAAS,gBAAgB;AACjC,aAAO;AAAA,QACL,WAAW;AAAA,QACX,aAAa;AAAA,UACX,YAAY,MAAM,QAAQ,YAAY;AAAA,UACtC,OAAO,GAAG,MAAM,QAAQ,OAAO,KAAK,MAAM,QAAQ,OAAO;AAAA,UACzD,SAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAGA,WAAO;AAAA,MACL,WAAW;AAAA,MACX,aAAa;AAAA,QACX,YAAY,MAAM,QAAQ,YAAY;AAAA,QACtC,OAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACF;;;AC3CO,IAAM,wBAAN,MAA4B;AAAA,EACzB;AAAA,EAER,YAAY,YAAqB;AAC/B,SAAK,UAAU,IAAI,gBAAgB,UAAU;AAAA,EAC/C;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,OAAO,SAKV;AACD,UAAM,gBAAgB,MAAM,KAAK,QAAQ,SAAS,OAAO;AAEzD,WAAO;AAAA,MACL,WAAW,cAAc,SAAS,aAAa;AAAA,MAC/C,SAAS,cAAc,SAAS,WAAW;AAAA,MAC3C,SAAS,cAAc,SAAS,YAAY;AAAA,MAC5C,OAAO,cAAc,SAAS,SAAS,CAAC;AAAA,IAC1C;AAAA,EACF;AACF;","names":[]}

@@ -23,3 +23,3 @@ interface OpenClawSkillContext {

interface OpenClawTriggerEvent {
type: 'git_push' | 'pull_request' | 'scheduled' | 'manual';
type: "git_push" | "pull_request" | "scheduled" | "manual";
timestamp: string;

@@ -26,0 +26,0 @@ details: any;

@@ -23,3 +23,3 @@ interface OpenClawSkillContext {

interface OpenClawTriggerEvent {
type: 'git_push' | 'pull_request' | 'scheduled' | 'manual';
type: "git_push" | "pull_request" | "scheduled" | "manual";
timestamp: string;

@@ -26,0 +26,0 @@ details: any;

@@ -41,3 +41,5 @@ // src/adapter.ts

const errText = await response.text();
throw new Error(`OpenClaw adapter run failed: ${response.status} - ${errText}`);
throw new Error(
`OpenClaw adapter run failed: ${response.status} - ${errText}`
);
}

@@ -44,0 +46,0 @@ return response.json();

@@ -1,1 +0,1 @@

{"version":3,"sources":["../src/adapter.ts","../src/trigger.ts","../src/action.ts"],"sourcesContent":["export interface OpenClawSkillContext {\n inputs: {\n repository: string\n branch?: string\n since?: string\n persona?: string\n format?: string[]\n depth?: string\n language?: string\n }\n secrets?: Record<string, string>\n}\n\nexport class OpenClawAdapter {\n private gatewayUrl: string\n\n constructor(gatewayUrl = 'http://localhost:3737') {\n this.gatewayUrl = gatewayUrl\n }\n\n /**\n * Translates the OpenClaw skill input and calls the DevDiff Gateway endpoint.\n */\n async runSkill(ctx: OpenClawSkillContext): Promise<any> {\n const payload = {\n source: 'manual',\n repository: {\n path: ctx.inputs.repository,\n branch: ctx.inputs.branch || 'main',\n },\n change_range: ctx.inputs.since\n ? {\n from: ctx.inputs.since.split('..')[0] || '',\n to: ctx.inputs.since.split('..')[1] || '',\n }\n : undefined,\n config: {\n persona: ctx.inputs.persona || 'developer',\n formats: ctx.inputs.format || ['markdown'],\n depth: ctx.inputs.depth || 'standard',\n language: ctx.inputs.language || 'en',\n },\n }\n\n const headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n }\n\n if (ctx.secrets?.['DEVDIFF_API_KEY']) {\n headers['X-API-Key'] = ctx.secrets['DEVDIFF_API_KEY']\n }\n\n const response = await fetch(`${this.gatewayUrl}/api/v1/analyze`, {\n method: 'POST',\n headers,\n body: JSON.stringify(payload),\n })\n\n if (!response.ok) {\n const errText = await response.text()\n throw new Error(`OpenClaw adapter run failed: ${response.status} - ${errText}`)\n }\n\n return response.json()\n }\n}\n","export interface OpenClawTriggerEvent {\n type: 'git_push' | 'pull_request' | 'scheduled' | 'manual'\n timestamp: string\n details: any\n}\n\nexport class OpenClawTriggerEngine {\n /**\n * Transforms raw git events or schedules into standardized OpenClaw trigger runs.\n */\n static processTrigger(event: OpenClawTriggerEvent): { shouldRun: boolean; skillInputs: any } {\n if (event.type === 'git_push') {\n return {\n shouldRun: true,\n skillInputs: {\n repository: event.details.repoPath || '.',\n branch: event.details.branch || 'main',\n since: `${event.details.before || 'HEAD~1'}..${event.details.after || 'HEAD'}`,\n },\n }\n }\n \n if (event.type === 'pull_request') {\n return {\n shouldRun: true,\n skillInputs: {\n repository: event.details.repoPath || '.',\n since: `${event.details.baseSha}..${event.details.headSha}`,\n persona: 'compliance',\n },\n }\n }\n\n // Default manuals/schedules\n return {\n shouldRun: true,\n skillInputs: {\n repository: event.details.repoPath || '.',\n since: 'HEAD~1..HEAD',\n },\n }\n }\n}\n","import { OpenClawAdapter, OpenClawSkillContext } from './adapter'\n\nexport class OpenClawActionHandler {\n private adapter: OpenClawAdapter\n\n constructor(gatewayUrl?: string) {\n this.adapter = new OpenClawAdapter(gatewayUrl)\n }\n\n /**\n * Executes the pipeline skill action and returns the output variables for OpenClaw.\n */\n async handle(context: OpenClawSkillContext): Promise<{\n changelog: string\n mermaid?: string\n summary: string\n stats: any\n }> {\n const gatewayResult = await this.adapter.runSkill(context)\n \n return {\n changelog: gatewayResult.results?.changelog || '',\n mermaid: gatewayResult.results?.mermaid || '',\n summary: gatewayResult.results?.markdown || '',\n stats: gatewayResult.results?.stats || {},\n }\n }\n}\n"],"mappings":";AAaO,IAAM,kBAAN,MAAsB;AAAA,EACnB;AAAA,EAER,YAAY,aAAa,yBAAyB;AAChD,SAAK,aAAa;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,SAAS,KAAyC;AACtD,UAAM,UAAU;AAAA,MACd,QAAQ;AAAA,MACR,YAAY;AAAA,QACV,MAAM,IAAI,OAAO;AAAA,QACjB,QAAQ,IAAI,OAAO,UAAU;AAAA,MAC/B;AAAA,MACA,cAAc,IAAI,OAAO,QACrB;AAAA,QACE,MAAM,IAAI,OAAO,MAAM,MAAM,IAAI,EAAE,CAAC,KAAK;AAAA,QACzC,IAAI,IAAI,OAAO,MAAM,MAAM,IAAI,EAAE,CAAC,KAAK;AAAA,MACzC,IACA;AAAA,MACJ,QAAQ;AAAA,QACN,SAAS,IAAI,OAAO,WAAW;AAAA,QAC/B,SAAS,IAAI,OAAO,UAAU,CAAC,UAAU;AAAA,QACzC,OAAO,IAAI,OAAO,SAAS;AAAA,QAC3B,UAAU,IAAI,OAAO,YAAY;AAAA,MACnC;AAAA,IACF;AAEA,UAAM,UAAkC;AAAA,MACtC,gBAAgB;AAAA,IAClB;AAEA,QAAI,IAAI,UAAU,iBAAiB,GAAG;AACpC,cAAQ,WAAW,IAAI,IAAI,QAAQ,iBAAiB;AAAA,IACtD;AAEA,UAAM,WAAW,MAAM,MAAM,GAAG,KAAK,UAAU,mBAAmB;AAAA,MAChE,QAAQ;AAAA,MACR;AAAA,MACA,MAAM,KAAK,UAAU,OAAO;AAAA,IAC9B,CAAC;AAED,QAAI,CAAC,SAAS,IAAI;AAChB,YAAM,UAAU,MAAM,SAAS,KAAK;AACpC,YAAM,IAAI,MAAM,gCAAgC,SAAS,MAAM,MAAM,OAAO,EAAE;AAAA,IAChF;AAEA,WAAO,SAAS,KAAK;AAAA,EACvB;AACF;;;AC3DO,IAAM,wBAAN,MAA4B;AAAA;AAAA;AAAA;AAAA,EAIjC,OAAO,eAAe,OAAuE;AAC3F,QAAI,MAAM,SAAS,YAAY;AAC7B,aAAO;AAAA,QACL,WAAW;AAAA,QACX,aAAa;AAAA,UACX,YAAY,MAAM,QAAQ,YAAY;AAAA,UACtC,QAAQ,MAAM,QAAQ,UAAU;AAAA,UAChC,OAAO,GAAG,MAAM,QAAQ,UAAU,QAAQ,KAAK,MAAM,QAAQ,SAAS,MAAM;AAAA,QAC9E;AAAA,MACF;AAAA,IACF;AAEA,QAAI,MAAM,SAAS,gBAAgB;AACjC,aAAO;AAAA,QACL,WAAW;AAAA,QACX,aAAa;AAAA,UACX,YAAY,MAAM,QAAQ,YAAY;AAAA,UACtC,OAAO,GAAG,MAAM,QAAQ,OAAO,KAAK,MAAM,QAAQ,OAAO;AAAA,UACzD,SAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAGA,WAAO;AAAA,MACL,WAAW;AAAA,MACX,aAAa;AAAA,QACX,YAAY,MAAM,QAAQ,YAAY;AAAA,QACtC,OAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACF;;;ACxCO,IAAM,wBAAN,MAA4B;AAAA,EACzB;AAAA,EAER,YAAY,YAAqB;AAC/B,SAAK,UAAU,IAAI,gBAAgB,UAAU;AAAA,EAC/C;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,OAAO,SAKV;AACD,UAAM,gBAAgB,MAAM,KAAK,QAAQ,SAAS,OAAO;AAEzD,WAAO;AAAA,MACL,WAAW,cAAc,SAAS,aAAa;AAAA,MAC/C,SAAS,cAAc,SAAS,WAAW;AAAA,MAC3C,SAAS,cAAc,SAAS,YAAY;AAAA,MAC5C,OAAO,cAAc,SAAS,SAAS,CAAC;AAAA,IAC1C;AAAA,EACF;AACF;","names":[]}
{"version":3,"sources":["../src/adapter.ts","../src/trigger.ts","../src/action.ts"],"sourcesContent":["export interface OpenClawSkillContext {\n inputs: {\n repository: string;\n branch?: string;\n since?: string;\n persona?: string;\n format?: string[];\n depth?: string;\n language?: string;\n };\n secrets?: Record<string, string>;\n}\n\nexport class OpenClawAdapter {\n private gatewayUrl: string;\n\n constructor(gatewayUrl = \"http://localhost:3737\") {\n this.gatewayUrl = gatewayUrl;\n }\n\n /**\n * Translates the OpenClaw skill input and calls the DevDiff Gateway endpoint.\n */\n async runSkill(ctx: OpenClawSkillContext): Promise<any> {\n const payload = {\n source: \"manual\",\n repository: {\n path: ctx.inputs.repository,\n branch: ctx.inputs.branch || \"main\",\n },\n change_range: ctx.inputs.since\n ? {\n from: ctx.inputs.since.split(\"..\")[0] || \"\",\n to: ctx.inputs.since.split(\"..\")[1] || \"\",\n }\n : undefined,\n config: {\n persona: ctx.inputs.persona || \"developer\",\n formats: ctx.inputs.format || [\"markdown\"],\n depth: ctx.inputs.depth || \"standard\",\n language: ctx.inputs.language || \"en\",\n },\n };\n\n const headers: Record<string, string> = {\n \"Content-Type\": \"application/json\",\n };\n\n if (ctx.secrets?.[\"DEVDIFF_API_KEY\"]) {\n headers[\"X-API-Key\"] = ctx.secrets[\"DEVDIFF_API_KEY\"];\n }\n\n const response = await fetch(`${this.gatewayUrl}/api/v1/analyze`, {\n method: \"POST\",\n headers,\n body: JSON.stringify(payload),\n });\n\n if (!response.ok) {\n const errText = await response.text();\n throw new Error(\n `OpenClaw adapter run failed: ${response.status} - ${errText}`,\n );\n }\n\n return response.json();\n }\n}\n","export interface OpenClawTriggerEvent {\n type: \"git_push\" | \"pull_request\" | \"scheduled\" | \"manual\";\n timestamp: string;\n details: any;\n}\n\nexport class OpenClawTriggerEngine {\n /**\n * Transforms raw git events or schedules into standardized OpenClaw trigger runs.\n */\n static processTrigger(event: OpenClawTriggerEvent): {\n shouldRun: boolean;\n skillInputs: any;\n } {\n if (event.type === \"git_push\") {\n return {\n shouldRun: true,\n skillInputs: {\n repository: event.details.repoPath || \".\",\n branch: event.details.branch || \"main\",\n since: `${event.details.before || \"HEAD~1\"}..${event.details.after || \"HEAD\"}`,\n },\n };\n }\n\n if (event.type === \"pull_request\") {\n return {\n shouldRun: true,\n skillInputs: {\n repository: event.details.repoPath || \".\",\n since: `${event.details.baseSha}..${event.details.headSha}`,\n persona: \"compliance\",\n },\n };\n }\n\n // Default manuals/schedules\n return {\n shouldRun: true,\n skillInputs: {\n repository: event.details.repoPath || \".\",\n since: \"HEAD~1..HEAD\",\n },\n };\n }\n}\n","import { OpenClawAdapter, OpenClawSkillContext } from \"./adapter\";\n\nexport class OpenClawActionHandler {\n private adapter: OpenClawAdapter;\n\n constructor(gatewayUrl?: string) {\n this.adapter = new OpenClawAdapter(gatewayUrl);\n }\n\n /**\n * Executes the pipeline skill action and returns the output variables for OpenClaw.\n */\n async handle(context: OpenClawSkillContext): Promise<{\n changelog: string;\n mermaid?: string;\n summary: string;\n stats: any;\n }> {\n const gatewayResult = await this.adapter.runSkill(context);\n\n return {\n changelog: gatewayResult.results?.changelog || \"\",\n mermaid: gatewayResult.results?.mermaid || \"\",\n summary: gatewayResult.results?.markdown || \"\",\n stats: gatewayResult.results?.stats || {},\n };\n }\n}\n"],"mappings":";AAaO,IAAM,kBAAN,MAAsB;AAAA,EACnB;AAAA,EAER,YAAY,aAAa,yBAAyB;AAChD,SAAK,aAAa;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,SAAS,KAAyC;AACtD,UAAM,UAAU;AAAA,MACd,QAAQ;AAAA,MACR,YAAY;AAAA,QACV,MAAM,IAAI,OAAO;AAAA,QACjB,QAAQ,IAAI,OAAO,UAAU;AAAA,MAC/B;AAAA,MACA,cAAc,IAAI,OAAO,QACrB;AAAA,QACE,MAAM,IAAI,OAAO,MAAM,MAAM,IAAI,EAAE,CAAC,KAAK;AAAA,QACzC,IAAI,IAAI,OAAO,MAAM,MAAM,IAAI,EAAE,CAAC,KAAK;AAAA,MACzC,IACA;AAAA,MACJ,QAAQ;AAAA,QACN,SAAS,IAAI,OAAO,WAAW;AAAA,QAC/B,SAAS,IAAI,OAAO,UAAU,CAAC,UAAU;AAAA,QACzC,OAAO,IAAI,OAAO,SAAS;AAAA,QAC3B,UAAU,IAAI,OAAO,YAAY;AAAA,MACnC;AAAA,IACF;AAEA,UAAM,UAAkC;AAAA,MACtC,gBAAgB;AAAA,IAClB;AAEA,QAAI,IAAI,UAAU,iBAAiB,GAAG;AACpC,cAAQ,WAAW,IAAI,IAAI,QAAQ,iBAAiB;AAAA,IACtD;AAEA,UAAM,WAAW,MAAM,MAAM,GAAG,KAAK,UAAU,mBAAmB;AAAA,MAChE,QAAQ;AAAA,MACR;AAAA,MACA,MAAM,KAAK,UAAU,OAAO;AAAA,IAC9B,CAAC;AAED,QAAI,CAAC,SAAS,IAAI;AAChB,YAAM,UAAU,MAAM,SAAS,KAAK;AACpC,YAAM,IAAI;AAAA,QACR,gCAAgC,SAAS,MAAM,MAAM,OAAO;AAAA,MAC9D;AAAA,IACF;AAEA,WAAO,SAAS,KAAK;AAAA,EACvB;AACF;;;AC7DO,IAAM,wBAAN,MAA4B;AAAA;AAAA;AAAA;AAAA,EAIjC,OAAO,eAAe,OAGpB;AACA,QAAI,MAAM,SAAS,YAAY;AAC7B,aAAO;AAAA,QACL,WAAW;AAAA,QACX,aAAa;AAAA,UACX,YAAY,MAAM,QAAQ,YAAY;AAAA,UACtC,QAAQ,MAAM,QAAQ,UAAU;AAAA,UAChC,OAAO,GAAG,MAAM,QAAQ,UAAU,QAAQ,KAAK,MAAM,QAAQ,SAAS,MAAM;AAAA,QAC9E;AAAA,MACF;AAAA,IACF;AAEA,QAAI,MAAM,SAAS,gBAAgB;AACjC,aAAO;AAAA,QACL,WAAW;AAAA,QACX,aAAa;AAAA,UACX,YAAY,MAAM,QAAQ,YAAY;AAAA,UACtC,OAAO,GAAG,MAAM,QAAQ,OAAO,KAAK,MAAM,QAAQ,OAAO;AAAA,UACzD,SAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAGA,WAAO;AAAA,MACL,WAAW;AAAA,MACX,aAAa;AAAA,QACX,YAAY,MAAM,QAAQ,YAAY;AAAA,QACtC,OAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACF;;;AC3CO,IAAM,wBAAN,MAA4B;AAAA,EACzB;AAAA,EAER,YAAY,YAAqB;AAC/B,SAAK,UAAU,IAAI,gBAAgB,UAAU;AAAA,EAC/C;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,OAAO,SAKV;AACD,UAAM,gBAAgB,MAAM,KAAK,QAAQ,SAAS,OAAO;AAEzD,WAAO;AAAA,MACL,WAAW,cAAc,SAAS,aAAa;AAAA,MAC/C,SAAS,cAAc,SAAS,WAAW;AAAA,MAC3C,SAAS,cAAc,SAAS,YAAY;AAAA,MAC5C,OAAO,cAAc,SAAS,SAAS,CAAC;AAAA,IAC1C;AAAA,EACF;AACF;","names":[]}
{
"name": "@eldrex/openclaw",
"version": "1.0.0",
"version": "1.0.2",
"description": "OpenClaw integration and skill adapter for DevDiff",

@@ -21,4 +21,4 @@ "type": "module",

"dependencies": {
"@eldrex/core": "1.0.0",
"@eldrex/gateway": "1.0.0"
"@eldrex/gateway": "1.0.2",
"@eldrex/core": "1.0.2"
},

@@ -25,0 +25,0 @@ "devDependencies": {

@@ -24,3 +24,14 @@ ---

default: developer
enum: [developer, ceo, educator, data-analyst, robot, journalist, pm, compliance, custom]
enum:
[
developer,
ceo,
educator,
data-analyst,
robot,
journalist,
pm,
compliance,
custom,
]
format:

@@ -56,2 +67,3 @@ type: string[]

## Description
Analyzes git repositories and generates intelligent, persona-aware changelogs,

@@ -79,5 +91,6 @@ diagrams, and reports. Supports 8+ output formats and 10+ AI personalities.

### 1. Daily Standup Digest
```yaml
name: Morning Standup Report
schedule: "0 8 * * 1-5" # 8 AM weekdays
schedule: "0 8 * * 1-5" # 8 AM weekdays
skill: devdiff

@@ -94,5 +107,6 @@ inputs:

### 2. Weekly Architecture Review
```yaml
name: Weekly Architecture Deep-Dive
schedule: "0 14 * * 5" # Friday 2 PM
schedule: "0 14 * * 5" # Friday 2 PM
skill: devdiff

@@ -110,2 +124,3 @@ inputs:

### 3. Security Audit on Every PR
```yaml

@@ -112,0 +127,0 @@ name: Security-Aware PR Review