aicommit2 2.5.9 → 2.5.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -1
- package/dist/{ai.service-5e7a5c6e.mjs → ai.service-3f88a31f.mjs} +1 -1
- package/dist/{anthropic.service-28cf3eaf.mjs → anthropic.service-b4f9baa9.mjs} +1 -1
- package/dist/{bedrock.service-f1eb56bf.mjs → bedrock.service-0471ae4e.mjs} +1 -1
- package/dist/cli-96becf5e.mjs +273 -0
- package/dist/cli.mjs +1 -1
- package/dist/{codestral.service-34c935d0.mjs → codestral.service-e6fc3d95.mjs} +1 -1
- package/dist/{cohere.service-834c59db.mjs → cohere.service-30fee14a.mjs} +1 -1
- package/dist/copilot-sdk.service-bf43c2fe.mjs +5 -0
- package/dist/{deep-seek.service-4a737d5f.mjs → deep-seek.service-e2471ca8.mjs} +1 -1
- package/dist/{gemini.service-71595043.mjs → gemini.service-00207bc2.mjs} +1 -1
- package/dist/github-models.service-29a1915b.mjs +5 -0
- package/dist/{groq.service-2d45e479.mjs → groq.service-5e28ee02.mjs} +1 -1
- package/dist/{hugging-face.service-c6b4b518.mjs → hugging-face.service-03cff14b.mjs} +1 -1
- package/dist/{mistral.service-6eea631e.mjs → mistral.service-5b703cdd.mjs} +1 -1
- package/dist/{ollama.service-b6b03f63.mjs → ollama.service-128652f5.mjs} +1 -1
- package/dist/{openai-3abcf411.mjs → openai-05526c0b.mjs} +2 -2
- package/dist/{openai-compatible.service-d1902a30.mjs → openai-compatible.service-ab35bcd8.mjs} +1 -1
- package/dist/{openai.service-b721d675.mjs → openai.service-5ec0d082.mjs} +1 -1
- package/dist/{openrouter.service-728f8bb2.mjs → openrouter.service-a716b29f.mjs} +1 -1
- package/dist/{perplexity.service-b1967d22.mjs → perplexity.service-c1d1b116.mjs} +1 -1
- package/package.json +2 -1
- package/dist/cli-263fe309.mjs +0 -273
- package/dist/github-models.service-823a172a.mjs +0 -5
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import G from"chalk";import{concatMap as I,from as N,map as T,catchError as D}from"rxjs";import{fromPromise as O}from"rxjs/internal/observable/innerFrom";import{A as R,l as _,a as P,b as S,e as M,c as v,d as k}from"./ai.service-5e7a5c6e.mjs";import{i as C}from"./openai-3abcf411.mjs";import{D as x,b as $,g as y}from"./cli-263fe309.mjs";import"fs";import"path";import"@pacote/xxhash";import"winston";import"http";import"https";import"net";import"tls";import"url";import"assert";import"tty";import"util";import"os";import"events";import"cleye";import"module";import"crypto";import"node:buffer";import"node:path";import"node:child_process";import"node:process";import"child_process";import"node:url";import"node:os";import"node:fs";import"buffer";import"stream";import"node:util";import"inquirer";import"fs/promises";import"readline";import"figlet";import"gradient-string";import"ora";import"inquirer-reactive-list-prompt";import"winston-daily-rotate-file";import"axios";import"node:fs/promises";import"chokidar";import"rxjs/operators";class U extends R{constructor(r){super(r),this.params=r,this.baseURL="https://models.github.ai",this.colors={primary:"#24292e",secondary:"#FFF"},this.serviceName=G.bgHex(this.colors.primary).hex(this.colors.secondary).bold("[GitHub Models]"),this.errorPrefix=G.red.bold("[GitHub Models]")}getServiceSpecificErrorMessage(r){switch(r.code){case"MISSING_TOKEN":return"GitHub token is required. Run: aicommit2 github-login";case"AUTHENTICATION_FAILED":return"Authentication failed. Your GitHub token may be expired or invalid. Run: aicommit2 github-login";case"ACCESS_DENIED":return'Access denied. Make sure your GitHub token has "Models" permission in GitHub settings';case"NO_CONTENT":return"No content received from GitHub Models. The model may have failed to generate a response";default:return null}}generateCommitMessage$(){return O(this.generateMessage("commit")).pipe(I(r=>N(r)),T(this.formatAsChoice),D(this.handleError$))}generateCodeReview$(){return O(this.generateMessage("review")).pipe(I(r=>N(r)),T(this.formatCodeReviewAsChoice),D(this.handleError$))}async generateMessage(r){if(!this.params.config.key){const o=new Error("GitHub token is required for GitHub Models. Use: aicommit2 github-login");throw o.code="MISSING_TOKEN",o}const s=this.params.stagedDiff.diff,{systemPrompt:i,systemPromptPath:l,codeReviewPromptPath:w,locale:H,generate:u,type:p,maxLength:g}=this.params.config,a={...x,locale:H,maxLength:g,type:p,generate:u,systemPrompt:i,systemPromptPath:l,codeReviewPromptPath:w,vcs_branch:this.params.branchName||""},E=r==="review"?$(a):y(a),d=await this.makeRequest(E,s,r);return r==="review"?this.parseCodeReview(d):this.parseMessage(d,p,u)}async makeRequest(r,s,i){const l=Array.isArray(this.params.config.model)?this.params.config.model[0]:this.params.config.model||"gpt-4o-mini",w=[{role:"system",content:r},{role:"user",content:i==="review"?s:`Here's the diff:
|
|
2
|
-
|
|
3
|
-
${s}`}],H=C(l),u={messages:w,model:l,stream:!1,...H?{max_completion_tokens:this.params.config.maxTokens||1024,temperature:1}:{max_tokens:this.params.config.maxTokens||1024,top_p:this.params.config.topP||.95,temperature:this.params.config.temperature||.7}},p=`${this.baseURL}/inference/chat/completions`,g={"Content-Type":"application/json",Accept:"application/vnd.github+json",Authorization:`Bearer ${this.params.config.key}`},{logging:a}=this.params.config;_(s,i,"GitHub Models",l,p,g,a),P(s,i,"GitHub Models",r,i==="review"?s:`Here's the diff:
|
|
4
|
-
|
|
5
|
-
${s}`,a),S(s,i,"GitHub Models",u,a);const E=new AbortController,d=setTimeout(()=>E.abort(),this.params.config.timeout);try{const o=Date.now(),e=await fetch(p,{method:"POST",headers:g,body:JSON.stringify(u),signal:E.signal});if(clearTimeout(d),!e.ok){const n=await e.text(),h={status:e.status,statusText:e.statusText,url:p,headers:Object.fromEntries(e.headers),body:n};M(s,i,"GitHub Models",h,a);let b=`GitHub API request failed: ${e.status} ${e.statusText}`;try{const t=JSON.parse(n);t.error?.message?b+=` - ${t.error.message}`:t.message&&(b+=` - ${t.message}`)}catch{n&&(b+=` - ${n}`)}if(e.status===401){const t=new Error("GitHub authentication failed. Please run: aicommit2 github-login");throw t.status=e.status,t.code="AUTHENTICATION_FAILED",t.content=n,t}else if(e.status===403){const t=new Error('GitHub Models access denied. Make sure your token has "Models" permission.');throw t.status=e.status,t.code="ACCESS_DENIED",t.content=n,t}else if(e.status===404){const t=new Error(`Model "${l}" not found. Please check the model name.`);throw t.status=e.status,t.code="MODEL_NOT_FOUND",t.content=n,t}else if(e.status===429){const t=new Error("Rate limit exceeded. Please try again later.");throw t.status=e.status,t.code="RATE_LIMIT_EXCEEDED",t.content=n,t}const f=new Error(b);throw f.status=e.status,f.code="API_ERROR",f.content=n,f}const m=await e.json(),A=Date.now()-o;v(s,i,"GitHub Models",m,a);const c=m.choices?.[0]?.message?.content?.trim();if(!c){M(s,i,"GitHub Models",{message:"No content found in GitHub Models response",result:m},a);const h=new Error("No response content received from GitHub Models");throw h.code="NO_CONTENT",h.content=JSON.stringify(m,null,2),h}return k(s,i,"GitHub Models",A,c,a),c}catch(o){if(clearTimeout(d),o instanceof Error&&o.name==="AbortError"){const A={message:`GitHub Models request timeout after ${this.params.config.timeout}ms`,error:o};M(s,i,"GitHub Models",A,a);const c=new Error(`GitHub Models request timed out after ${this.params.config.timeout}ms`);throw c.code="REQUEST_TIMEOUT",c.originalError=o,c}if(o.code)throw o;M(s,i,"GitHub Models",{message:"GitHub Models request failed",error:o},a);const m=new Error(`GitHub Models request failed: ${o instanceof Error?o.message:String(o)}`);throw m.code="REQUEST_FAILED",m.originalError=o,m}}}export{U as GitHubModelsService};
|