@nairon-ai/aegis 0.5.3 → 0.5.4

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.
@@ -52,15 +52,80 @@ function base64url(input) {
52
52
  return base64.replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
53
53
  }
54
54
  function pemToArrayBuffer(pem) {
55
- const lines = pem
55
+ const isPkcs1 = pem.includes("BEGIN RSA PRIVATE KEY");
56
+ const base64 = pem
56
57
  .replace(/-----BEGIN .+-----/, "")
57
58
  .replace(/-----END .+-----/, "")
58
59
  .replace(/\s/g, "");
59
- const binary = atob(lines);
60
+ const binary = atob(base64);
60
61
  const bytes = new Uint8Array(binary.length);
61
62
  for (let i = 0; i < binary.length; i++) {
62
63
  bytes[i] = binary.charCodeAt(i);
63
64
  }
64
- return bytes.buffer;
65
+ return toArrayBuffer(isPkcs1 ? wrapPkcs1RsaKey(bytes) : bytes);
66
+ }
67
+ function wrapPkcs1RsaKey(pkcs1) {
68
+ const version = derIntegerZero();
69
+ const algorithm = derSequence(derObjectIdentifier([1, 2, 840, 113549, 1, 1, 1]), derNull());
70
+ const privateKey = derOctetString(pkcs1);
71
+ return derSequence(version, algorithm, privateKey);
72
+ }
73
+ function derSequence(...parts) {
74
+ return derTagged(0x30, concatBytes(parts));
75
+ }
76
+ function derIntegerZero() {
77
+ return new Uint8Array([0x02, 0x01, 0x00]);
78
+ }
79
+ function derNull() {
80
+ return new Uint8Array([0x05, 0x00]);
81
+ }
82
+ function derOctetString(value) {
83
+ return derTagged(0x04, value);
84
+ }
85
+ function derObjectIdentifier(parts) {
86
+ const [first, second, ...rest] = parts;
87
+ const bytes = [first * 40 + second];
88
+ for (const part of rest) {
89
+ bytes.push(...encodeBase128(part));
90
+ }
91
+ return derTagged(0x06, new Uint8Array(bytes));
92
+ }
93
+ function derTagged(tag, value) {
94
+ return concatBytes([new Uint8Array([tag]), derLength(value.length), value]);
95
+ }
96
+ function derLength(length) {
97
+ if (length < 0x80)
98
+ return new Uint8Array([length]);
99
+ const bytes = [];
100
+ let remaining = length;
101
+ while (remaining > 0) {
102
+ bytes.unshift(remaining & 0xff);
103
+ remaining >>= 8;
104
+ }
105
+ return new Uint8Array([0x80 | bytes.length, ...bytes]);
106
+ }
107
+ function encodeBase128(value) {
108
+ const bytes = [value & 0x7f];
109
+ let remaining = value >> 7;
110
+ while (remaining > 0) {
111
+ bytes.unshift(0x80 | (remaining & 0x7f));
112
+ remaining >>= 7;
113
+ }
114
+ return bytes;
115
+ }
116
+ function concatBytes(parts) {
117
+ const size = parts.reduce((total, part) => total + part.length, 0);
118
+ const output = new Uint8Array(size);
119
+ let offset = 0;
120
+ for (const part of parts) {
121
+ output.set(part, offset);
122
+ offset += part.length;
123
+ }
124
+ return output;
125
+ }
126
+ function toArrayBuffer(bytes) {
127
+ const copy = new Uint8Array(bytes.byteLength);
128
+ copy.set(bytes);
129
+ return copy.buffer;
65
130
  }
66
131
  //# sourceMappingURL=github-token.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"github-token.js","sourceRoot":"","sources":["../../src/sandbox/github-token.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github-token.js","sourceRoot":"","sources":["../../src/sandbox/github-token.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAa,EAAE,UAAkB;IACnE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG;QACf,GAAG,EAAE,GAAG,GAAG,EAAE;QACb,GAAG,EAAE,GAAG,GAAG,GAAG;QACd,GAAG,EAAE,KAAK;KACV,CAAC;IAEF,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;IAC5C,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,MAAM,cAAc,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,GAAG,aAAa,IAAI,cAAc,EAAE,CAAC;IAE1D,MAAM,OAAO,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CACxC,OAAO,EACP,OAAO,EACP,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,SAAS,EAAE,EAC9C,KAAK,EACL,CAAC,MAAM,CAAC,CACR,CAAC;IAEF,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CACzC,mBAAmB,EACnB,GAAG,EACH,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CACtC,CAAC;IAEF,OAAO,GAAG,YAAY,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACzC,KAAa,EACb,UAAkB,EAClB,cAAsB;IAEtB,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAElD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC3B,4CAA4C,cAAc,gBAAgB,EAC1E;QACC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACR,aAAa,EAAE,UAAU,GAAG,EAAE;YAC9B,MAAM,EAAE,6BAA6B;YACrC,sBAAsB,EAAE,YAAY;YACpC,YAAY,EAAE,WAAW;SACzB;KACD,CACD,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QAClB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,qCAAqC,QAAQ,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAsB,CAAC;IAC1D,OAAO,IAAI,CAAC,KAAK,CAAC;AACnB,CAAC;AAED,SAAS,SAAS,CAAC,KAA2B;IAC7C,IAAI,MAAc,CAAC;IACnB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;SAAM,CAAC;QACP,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAC1B,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QACD,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW;IACpC,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,GAAG;SAChB,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC;SACjC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;SAC/B,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACrB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,eAAe,CAAC,KAAiB;IACzC,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5F,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,WAAW,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,WAAW,CAAC,GAAG,KAAmB;IAC1C,OAAO,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,cAAc;IACtB,OAAO,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,OAAO;IACf,OAAO,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,cAAc,CAAC,KAAiB;IACxC,OAAO,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAe;IAC3C,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC;IACvC,MAAM,KAAK,GAAG,CAAC,KAAK,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC;IACpC,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,SAAS,CAAC,IAAI,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,SAAS,CAAC,GAAW,EAAE,KAAiB;IAChD,OAAO,WAAW,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,SAAS,CAAC,MAAc;IAChC,IAAI,MAAM,GAAG,IAAI;QAAE,OAAO,IAAI,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACnD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,SAAS,GAAG,MAAM,CAAC;IACvB,OAAO,SAAS,GAAG,CAAC,EAAE,CAAC;QACtB,KAAK,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;QAChC,SAAS,KAAK,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,IAAI,UAAU,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IACnC,MAAM,KAAK,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAC7B,IAAI,SAAS,GAAG,KAAK,IAAI,CAAC,CAAC;IAC3B,OAAO,SAAS,GAAG,CAAC,EAAE,CAAC;QACtB,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC;QACzC,SAAS,KAAK,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,KAAmB;IACvC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACzB,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,KAAiB;IACvC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC9C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChB,OAAO,IAAI,CAAC,MAAM,CAAC;AACpB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nairon-ai/aegis",
3
- "version": "0.5.3",
3
+ "version": "0.5.4",
4
4
  "description": "Self-hosted AFK bug-fixing agent for GitHub Issues and Linear",
5
5
  "type": "module",
6
6
  "repository": {
@@ -79,14 +79,89 @@ function base64url(input: string | ArrayBuffer): string {
79
79
  }
80
80
 
81
81
  function pemToArrayBuffer(pem: string): ArrayBuffer {
82
- const lines = pem
82
+ const isPkcs1 = pem.includes("BEGIN RSA PRIVATE KEY");
83
+ const base64 = pem
83
84
  .replace(/-----BEGIN .+-----/, "")
84
85
  .replace(/-----END .+-----/, "")
85
86
  .replace(/\s/g, "");
86
- const binary = atob(lines);
87
+ const binary = atob(base64);
87
88
  const bytes = new Uint8Array(binary.length);
88
89
  for (let i = 0; i < binary.length; i++) {
89
90
  bytes[i] = binary.charCodeAt(i);
90
91
  }
91
- return bytes.buffer;
92
+ return toArrayBuffer(isPkcs1 ? wrapPkcs1RsaKey(bytes) : bytes);
93
+ }
94
+
95
+ function wrapPkcs1RsaKey(pkcs1: Uint8Array): Uint8Array {
96
+ const version = derIntegerZero();
97
+ const algorithm = derSequence(derObjectIdentifier([1, 2, 840, 113549, 1, 1, 1]), derNull());
98
+ const privateKey = derOctetString(pkcs1);
99
+ return derSequence(version, algorithm, privateKey);
100
+ }
101
+
102
+ function derSequence(...parts: Uint8Array[]): Uint8Array {
103
+ return derTagged(0x30, concatBytes(parts));
104
+ }
105
+
106
+ function derIntegerZero(): Uint8Array {
107
+ return new Uint8Array([0x02, 0x01, 0x00]);
108
+ }
109
+
110
+ function derNull(): Uint8Array {
111
+ return new Uint8Array([0x05, 0x00]);
112
+ }
113
+
114
+ function derOctetString(value: Uint8Array): Uint8Array {
115
+ return derTagged(0x04, value);
116
+ }
117
+
118
+ function derObjectIdentifier(parts: number[]): Uint8Array {
119
+ const [first, second, ...rest] = parts;
120
+ const bytes = [first * 40 + second];
121
+ for (const part of rest) {
122
+ bytes.push(...encodeBase128(part));
123
+ }
124
+ return derTagged(0x06, new Uint8Array(bytes));
125
+ }
126
+
127
+ function derTagged(tag: number, value: Uint8Array): Uint8Array {
128
+ return concatBytes([new Uint8Array([tag]), derLength(value.length), value]);
129
+ }
130
+
131
+ function derLength(length: number): Uint8Array {
132
+ if (length < 0x80) return new Uint8Array([length]);
133
+ const bytes: number[] = [];
134
+ let remaining = length;
135
+ while (remaining > 0) {
136
+ bytes.unshift(remaining & 0xff);
137
+ remaining >>= 8;
138
+ }
139
+ return new Uint8Array([0x80 | bytes.length, ...bytes]);
140
+ }
141
+
142
+ function encodeBase128(value: number): number[] {
143
+ const bytes = [value & 0x7f];
144
+ let remaining = value >> 7;
145
+ while (remaining > 0) {
146
+ bytes.unshift(0x80 | (remaining & 0x7f));
147
+ remaining >>= 7;
148
+ }
149
+ return bytes;
150
+ }
151
+
152
+ function concatBytes(parts: Uint8Array[]): Uint8Array {
153
+ const size = parts.reduce((total, part) => total + part.length, 0);
154
+ const output = new Uint8Array(size);
155
+ let offset = 0;
156
+ for (const part of parts) {
157
+ output.set(part, offset);
158
+ offset += part.length;
159
+ }
160
+ return output;
161
+ }
162
+
163
+ function toArrayBuffer(bytes: Uint8Array): ArrayBuffer {
164
+ const copy = new Uint8Array(bytes.byteLength);
165
+ copy.set(bytes);
166
+ return copy.buffer;
92
167
  }