ghagga-forge 3.3.0 → 3.4.0
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/dist/adapters/github/github-client-port.d.ts +42 -0
- package/dist/adapters/github/github-client-port.d.ts.map +1 -1
- package/dist/adapters/github/github-forge-adapter.d.ts +45 -2
- package/dist/adapters/github/github-forge-adapter.d.ts.map +1 -1
- package/dist/adapters/github/github-forge-adapter.js +164 -0
- package/dist/adapters/github/github-forge-adapter.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/ports/forge-adapter.d.ts +95 -2
- package/dist/ports/forge-adapter.d.ts.map +1 -1
- package/dist/ports/forge-adapter.js.map +1 -1
- package/package.json +5 -5
|
@@ -21,6 +21,18 @@
|
|
|
21
21
|
* which the boundary lint explicitly permits (`import type` from core).
|
|
22
22
|
*/
|
|
23
23
|
import type { DependencyGraph, GraphMetadata } from 'ghagga-core';
|
|
24
|
+
import type { ExplanationCommentLookup, ExplanationCommentRef } from '../../ports/forge-adapter.js';
|
|
25
|
+
/** Response from one client-owned, revision-pinned explanation read. */
|
|
26
|
+
export interface GitHubRevisionPinnedSnapshot {
|
|
27
|
+
readonly repositoryId: string;
|
|
28
|
+
readonly baseSha: string;
|
|
29
|
+
readonly headSha: string;
|
|
30
|
+
readonly diff: string;
|
|
31
|
+
readonly files: readonly {
|
|
32
|
+
readonly path: string;
|
|
33
|
+
readonly content: string;
|
|
34
|
+
}[];
|
|
35
|
+
}
|
|
24
36
|
/** Reaction emojis the underlying GitHub client accepts. */
|
|
25
37
|
export type GitHubReactionContent = '+1' | '-1' | 'laugh' | 'confused' | 'heart' | 'hooray' | 'rocket' | 'eyes';
|
|
26
38
|
/**
|
|
@@ -63,6 +75,36 @@ export interface GitHubClientPort {
|
|
|
63
75
|
fetchGraphFromBranch(owner: string, repo: string, token: string): Promise<DependencyGraph | null>;
|
|
64
76
|
/** Read graph metadata from the `ghagga/graph` orphan branch, or null. */
|
|
65
77
|
fetchGraphMetadata(owner: string, repo: string, token: string): Promise<GraphMetadata | null>;
|
|
78
|
+
/**
|
|
79
|
+
* Read one repo-relative file's UTF-8 contents at `ref`, or null if the path
|
|
80
|
+
* is not a file there. Mirrors `client.ts` `fetchFileContents`
|
|
81
|
+
* (owner/repo/path/ref/token positional style). An EMPTY-STRING `ref` reads the
|
|
82
|
+
* repository default branch (the adapter passes '' when its caller omits ref).
|
|
83
|
+
* Throws on a real fault.
|
|
84
|
+
*/
|
|
85
|
+
fetchFileContents(owner: string, repo: string, path: string, ref: string, token: string): Promise<string | null>;
|
|
86
|
+
/**
|
|
87
|
+
* Search the repo's code (default branch) for `term`, returning matching file
|
|
88
|
+
* paths (deduped, capped at `limit`). Mirrors `client.ts` `searchCode`
|
|
89
|
+
* (owner/repo/term/limit/token positional style). Never throws — a real fault
|
|
90
|
+
* degrades to `[]` inside `client.ts` itself.
|
|
91
|
+
*/
|
|
92
|
+
searchCode(owner: string, repo: string, term: string, limit: number, token: string): Promise<string[]>;
|
|
93
|
+
/**
|
|
94
|
+
* Optional atomic read for an explanation target. The implementation must
|
|
95
|
+
* prove that repository, base, requested head, diff, and file payloads all
|
|
96
|
+
* came from the same requested revision; the adapter never composes a live
|
|
97
|
+
* PR-number fallback when this seam is absent or inconclusive.
|
|
98
|
+
*/
|
|
99
|
+
fetchRevisionPinnedSnapshot?(owner: string, repo: string, prNumber: number, requestedHeadSha: string, token: string): Promise<GitHubRevisionPinnedSnapshot | null>;
|
|
100
|
+
/** Optional exact-owner explanation lookup, with explicit ambiguity state. */
|
|
101
|
+
findExplanationComment?(owner: string, repo: string, prNumber: number, reference: ExplanationCommentRef, token: string): Promise<ExplanationCommentLookup>;
|
|
102
|
+
/** Optional typed explanation-comment create delegation. */
|
|
103
|
+
createExplanationComment?(owner: string, repo: string, prNumber: number, reference: ExplanationCommentRef, body: string, token: string): Promise<{
|
|
104
|
+
id: number;
|
|
105
|
+
}>;
|
|
106
|
+
/** Optional typed explanation-comment update delegation. */
|
|
107
|
+
updateExplanationComment?(owner: string, repo: string, commentId: number, reference: ExplanationCommentRef, body: string, token: string): Promise<void>;
|
|
66
108
|
}
|
|
67
109
|
/**
|
|
68
110
|
* A minted installation token plus its absolute expiry.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-client-port.d.ts","sourceRoot":"","sources":["../../../src/adapters/github/github-client-port.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"github-client-port.d.ts","sourceRoot":"","sources":["../../../src/adapters/github/github-client-port.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,10 +23,16 @@
|
|
|
23
23
|
* and unwraps `raw` to the GitHub-native number internally.
|
|
24
24
|
*/
|
|
25
25
|
import type { DependencyGraph, GraphMetadata } from 'ghagga-core';
|
|
26
|
-
import type { ForgeAdapterBase, GraphReadCapable, ReactionCapable, ReactionKind } from '../../ports/forge-adapter.js';
|
|
26
|
+
import type { ExplanationPublicationCapable, ExplanationSnapshotCapable, FileReadCapable, ForgeAdapterBase, GraphReadCapable, ReactionCapable, ReactionKind, SearchCapable } from '../../ports/forge-adapter.js';
|
|
27
27
|
import { REACTION_KIND } from '../../ports/forge-adapter.js';
|
|
28
28
|
import type { ChangedFile, ChangeRequest, ChangeRequestRef, CommentId, CommentMarker, Commit, ForgeCapabilities, RepoRef, UnifiedDiff, UpsertSummaryResult } from '../../types.js';
|
|
29
29
|
import type { GitHubClientPort } from './github-client-port.js';
|
|
30
|
+
/** Stable installation/repository binding required before explanation seams exist. */
|
|
31
|
+
export interface GitHubExplanationBinding {
|
|
32
|
+
readonly forgeInstance: string;
|
|
33
|
+
readonly installationId: string;
|
|
34
|
+
readonly repositoryId: string;
|
|
35
|
+
}
|
|
30
36
|
/** Construction options for {@link GitHubForgeAdapter}. */
|
|
31
37
|
export interface GitHubForgeAdapterDeps {
|
|
32
38
|
/** Injected GitHub client function-set (real impl = apps/server client.ts). */
|
|
@@ -37,6 +43,11 @@ export interface GitHubForgeAdapterDeps {
|
|
|
37
43
|
owner: string;
|
|
38
44
|
/** Repository name. */
|
|
39
45
|
repo: string;
|
|
46
|
+
/**
|
|
47
|
+
* Optional stable identity binding for PR-native explanation seams. Legacy
|
|
48
|
+
* review callers omit it and receive no explanation methods at runtime.
|
|
49
|
+
*/
|
|
50
|
+
explanationBinding?: GitHubExplanationBinding;
|
|
40
51
|
}
|
|
41
52
|
/**
|
|
42
53
|
* GitHub implementation of the forge adapter.
|
|
@@ -46,9 +57,17 @@ export interface GitHubForgeAdapterDeps {
|
|
|
46
57
|
* deferred), so `publishInline` is ABSENT — callers guarding by method-presence
|
|
47
58
|
* will skip inline publishing cleanly.
|
|
48
59
|
*/
|
|
49
|
-
export declare class GitHubForgeAdapter implements ForgeAdapterBase, ReactionCapable, GraphReadCapable {
|
|
60
|
+
export declare class GitHubForgeAdapter implements ForgeAdapterBase, ReactionCapable, GraphReadCapable, FileReadCapable, SearchCapable {
|
|
50
61
|
#private;
|
|
51
62
|
readonly capabilities: ForgeCapabilities;
|
|
63
|
+
/** Present only when the injected client and stable binding prove this seam. */
|
|
64
|
+
readonly fetchExplanationSnapshot?: ExplanationSnapshotCapable['fetchExplanationSnapshot'];
|
|
65
|
+
/** Present only when all exact-owner publication delegates are available. */
|
|
66
|
+
readonly lookupExplanationComment?: ExplanationPublicationCapable['lookupExplanationComment'];
|
|
67
|
+
/** Present only when all exact-owner publication delegates are available. */
|
|
68
|
+
readonly createExplanationComment?: ExplanationPublicationCapable['createExplanationComment'];
|
|
69
|
+
/** Present only when all exact-owner publication delegates are available. */
|
|
70
|
+
readonly updateExplanationComment?: ExplanationPublicationCapable['updateExplanationComment'];
|
|
52
71
|
constructor(deps: GitHubForgeAdapterDeps);
|
|
53
72
|
fetchDiff(ref: ChangeRequestRef): Promise<UnifiedDiff>;
|
|
54
73
|
fetchChangeRequest(ref: ChangeRequestRef): Promise<ChangeRequest>;
|
|
@@ -111,6 +130,30 @@ export declare class GitHubForgeAdapter implements ForgeAdapterBase, ReactionCap
|
|
|
111
130
|
* 404→null + validation handled inside client.fetchGraphMetadata).
|
|
112
131
|
*/
|
|
113
132
|
fetchGraphMetadata(_repo: RepoRef): Promise<GraphMetadata | null>;
|
|
133
|
+
/**
|
|
134
|
+
* Read one repo-relative file's contents at `ref`, or null if the path is not
|
|
135
|
+
* a file there. The path-traversal guard, size cap, file-vs-directory check,
|
|
136
|
+
* base64 decode, and 404→null all live INSIDE client.fetchFileContents — this
|
|
137
|
+
* adapter delegates with the adapter's fixed owner/repo (so `_repo` is unused,
|
|
138
|
+
* matching the graph methods). Wrapped in `#mapAuth` so a 401/403 from the
|
|
139
|
+
* Contents API reclassifies to `ForgeAuthError` — same P2 token-remint recovery
|
|
140
|
+
* every base read gets (the graph methods skip it only because the client
|
|
141
|
+
* swallows their auth failures to null; this one throws). Not exposed via the
|
|
142
|
+
* `capabilities` flags: consumers narrow by method-presence
|
|
143
|
+
* (`'fetchFileContents' in adapter`) per the R-CAPABILITY doctrine, which is
|
|
144
|
+
* authoritative over the informational flags.
|
|
145
|
+
*/
|
|
146
|
+
fetchFileContents(_repo: RepoRef, path: string, ref?: string): Promise<string | null>;
|
|
147
|
+
/**
|
|
148
|
+
* Search the repo's code (default branch) for `term`. Throttle/rate-limit and
|
|
149
|
+
* other non-auth degradation all live INSIDE client.searchCode (it returns
|
|
150
|
+
* `[]` rather than throwing); this adapter delegates with the adapter's fixed
|
|
151
|
+
* owner/repo, wrapped in `#mapAuth` so a genuine 401/403 reclassifies to
|
|
152
|
+
* `ForgeAuthError` — same P2 token-remint recovery every other read gets. Not
|
|
153
|
+
* exposed via the `capabilities` flags: consumers narrow by method-presence
|
|
154
|
+
* (`'searchCode' in adapter`) per the R-CAPABILITY doctrine.
|
|
155
|
+
*/
|
|
156
|
+
searchCode(_repo: RepoRef, term: string, limit: number): Promise<string[]>;
|
|
114
157
|
}
|
|
115
158
|
export { REACTION_KIND };
|
|
116
159
|
//# sourceMappingURL=github-forge-adapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-forge-adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/github/github-forge-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAElE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"github-forge-adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/github/github-forge-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,11 +65,24 @@ export class GitHubForgeAdapter {
|
|
|
65
65
|
#token;
|
|
66
66
|
#owner;
|
|
67
67
|
#repo;
|
|
68
|
+
#explanationBinding;
|
|
68
69
|
constructor(deps) {
|
|
69
70
|
this.#client = deps.client;
|
|
70
71
|
this.#token = deps.token;
|
|
71
72
|
this.#owner = deps.owner;
|
|
72
73
|
this.#repo = deps.repo;
|
|
74
|
+
this.#explanationBinding = deps.explanationBinding;
|
|
75
|
+
if (this.#explanationBinding && this.#client.fetchRevisionPinnedSnapshot) {
|
|
76
|
+
this.fetchExplanationSnapshot = (identity, ref) => this.#fetchExplanationSnapshot(identity, ref);
|
|
77
|
+
}
|
|
78
|
+
if (this.#explanationBinding &&
|
|
79
|
+
this.#client.findExplanationComment &&
|
|
80
|
+
this.#client.createExplanationComment &&
|
|
81
|
+
this.#client.updateExplanationComment) {
|
|
82
|
+
this.lookupExplanationComment = (reference) => this.#lookupExplanationComment(reference);
|
|
83
|
+
this.createExplanationComment = (reference, body) => this.#createExplanationComment(reference, body);
|
|
84
|
+
this.updateExplanationComment = (reference, commentId, body) => this.#updateExplanationComment(reference, commentId, body);
|
|
85
|
+
}
|
|
73
86
|
}
|
|
74
87
|
/**
|
|
75
88
|
* Run a client call, reclassifying a 401/403 failure as a {@link ForgeAuthError}.
|
|
@@ -95,6 +108,125 @@ export class GitHubForgeAdapter {
|
|
|
95
108
|
throw error;
|
|
96
109
|
}
|
|
97
110
|
}
|
|
111
|
+
#matchesExplanationBinding(identity) {
|
|
112
|
+
const binding = this.#explanationBinding;
|
|
113
|
+
return (binding !== undefined &&
|
|
114
|
+
identity.forgeInstance === binding.forgeInstance &&
|
|
115
|
+
identity.installationId === binding.installationId &&
|
|
116
|
+
identity.repositoryId === binding.repositoryId);
|
|
117
|
+
}
|
|
118
|
+
#validateExplanationReference(reference) {
|
|
119
|
+
if (!this.#matchesExplanationBinding(reference) ||
|
|
120
|
+
reference.changeRequest.repo.nativeId !== reference.repositoryId ||
|
|
121
|
+
reference.changeRequest.repo.kind !== 'github' ||
|
|
122
|
+
!Number.isSafeInteger(reference.changeRequest.iid) ||
|
|
123
|
+
reference.changeRequest.iid < 1 ||
|
|
124
|
+
reference.ownerId.length === 0 ||
|
|
125
|
+
reference.invocationId.length === 0 ||
|
|
126
|
+
(reference.channel !== 'progress' && reference.channel !== 'answer')) {
|
|
127
|
+
throw new TypeError('GitHubForgeAdapter explanation comment reference is not exactly bound');
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
#sameExplanationReference(left, right) {
|
|
131
|
+
return (left.forgeInstance === right.forgeInstance &&
|
|
132
|
+
left.installationId === right.installationId &&
|
|
133
|
+
left.repositoryId === right.repositoryId &&
|
|
134
|
+
left.changeRequest.repo.kind === right.changeRequest.repo.kind &&
|
|
135
|
+
left.changeRequest.repo.nativeId === right.changeRequest.repo.nativeId &&
|
|
136
|
+
left.changeRequest.iid === right.changeRequest.iid &&
|
|
137
|
+
left.changeRequest.globalId === right.changeRequest.globalId &&
|
|
138
|
+
left.ownerId === right.ownerId &&
|
|
139
|
+
left.channel === right.channel &&
|
|
140
|
+
left.invocationId === right.invocationId);
|
|
141
|
+
}
|
|
142
|
+
#snapshotFailure(kind, reason) {
|
|
143
|
+
return { kind, reason };
|
|
144
|
+
}
|
|
145
|
+
#isCompleteSnapshot(snapshot) {
|
|
146
|
+
if (snapshot.baseSha.length === 0 ||
|
|
147
|
+
snapshot.diff.length === 0 ||
|
|
148
|
+
snapshot.files.length === 0) {
|
|
149
|
+
return false;
|
|
150
|
+
}
|
|
151
|
+
const paths = new Set();
|
|
152
|
+
return snapshot.files.every((file) => {
|
|
153
|
+
if (file.path.length === 0 || typeof file.content !== 'string' || paths.has(file.path)) {
|
|
154
|
+
return false;
|
|
155
|
+
}
|
|
156
|
+
paths.add(file.path);
|
|
157
|
+
return true;
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
async #fetchExplanationSnapshot(identity, ref) {
|
|
161
|
+
if (!this.#matchesExplanationBinding(identity) ||
|
|
162
|
+
identity.repositoryId !== ref.repo.nativeId ||
|
|
163
|
+
identity.pullRequestNumber !== ref.iid ||
|
|
164
|
+
identity.requestedHeadSha.length === 0 ||
|
|
165
|
+
!Number.isSafeInteger(ref.iid) ||
|
|
166
|
+
ref.iid < 1) {
|
|
167
|
+
return this.#snapshotFailure('INVALID', 'Explanation identity is not bound to this change request');
|
|
168
|
+
}
|
|
169
|
+
const fetchSnapshot = this.#client.fetchRevisionPinnedSnapshot;
|
|
170
|
+
if (!fetchSnapshot) {
|
|
171
|
+
return this.#snapshotFailure('INVALID', 'Revision-pinned snapshot capability is unavailable');
|
|
172
|
+
}
|
|
173
|
+
const snapshot = await this.#mapAuth(() => fetchSnapshot(this.#owner, this.#repo, ref.iid, identity.requestedHeadSha, this.#token));
|
|
174
|
+
if (!snapshot) {
|
|
175
|
+
return this.#snapshotFailure('INVALID', 'Revision-pinned snapshot is missing');
|
|
176
|
+
}
|
|
177
|
+
if (snapshot.headSha !== identity.requestedHeadSha) {
|
|
178
|
+
return this.#snapshotFailure('STALE', 'Requested head SHA is superseded');
|
|
179
|
+
}
|
|
180
|
+
if (snapshot.repositoryId !== identity.repositoryId || !this.#isCompleteSnapshot(snapshot)) {
|
|
181
|
+
return this.#snapshotFailure('INVALID', 'Revision-pinned snapshot is incomplete or mismatched');
|
|
182
|
+
}
|
|
183
|
+
return {
|
|
184
|
+
kind: 'SNAPSHOT',
|
|
185
|
+
snapshot: {
|
|
186
|
+
repositoryId: snapshot.repositoryId,
|
|
187
|
+
baseSha: snapshot.baseSha,
|
|
188
|
+
headSha: snapshot.headSha,
|
|
189
|
+
diff: snapshot.diff,
|
|
190
|
+
files: snapshot.files,
|
|
191
|
+
},
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
async #lookupExplanationComment(reference) {
|
|
195
|
+
this.#validateExplanationReference(reference);
|
|
196
|
+
const findComment = this.#client.findExplanationComment;
|
|
197
|
+
if (!findComment) {
|
|
198
|
+
throw new TypeError('GitHubForgeAdapter explanation publication capability is unavailable');
|
|
199
|
+
}
|
|
200
|
+
const lookup = await this.#mapAuth(() => findComment(this.#owner, this.#repo, reference.changeRequest.iid, reference, this.#token));
|
|
201
|
+
if (lookup.kind === 'FOUND') {
|
|
202
|
+
if (!this.#sameExplanationReference(reference, lookup.reference) ||
|
|
203
|
+
lookup.commentId.kind !== 'github:issue-comment' ||
|
|
204
|
+
!Number.isSafeInteger(lookup.commentId.raw)) {
|
|
205
|
+
return { kind: 'INCOMPLETE', reason: 'Explanation comment ownership is unprovable' };
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
return lookup;
|
|
209
|
+
}
|
|
210
|
+
async #createExplanationComment(reference, body) {
|
|
211
|
+
this.#validateExplanationReference(reference);
|
|
212
|
+
const createComment = this.#client.createExplanationComment;
|
|
213
|
+
if (!createComment) {
|
|
214
|
+
throw new TypeError('GitHubForgeAdapter explanation publication capability is unavailable');
|
|
215
|
+
}
|
|
216
|
+
const created = await this.#mapAuth(() => createComment(this.#owner, this.#repo, reference.changeRequest.iid, reference, body, this.#token));
|
|
217
|
+
if (!Number.isSafeInteger(created?.id)) {
|
|
218
|
+
throw new TypeError('GitHubForgeAdapter.createExplanationComment: client returned no numeric id');
|
|
219
|
+
}
|
|
220
|
+
return { kind: 'github:issue-comment', raw: created.id };
|
|
221
|
+
}
|
|
222
|
+
async #updateExplanationComment(reference, commentId, body) {
|
|
223
|
+
this.#validateExplanationReference(reference);
|
|
224
|
+
const updateComment = this.#client.updateExplanationComment;
|
|
225
|
+
if (!updateComment) {
|
|
226
|
+
throw new TypeError('GitHubForgeAdapter explanation publication capability is unavailable');
|
|
227
|
+
}
|
|
228
|
+
await this.#mapAuth(() => updateComment(this.#owner, this.#repo, toNativeCommentId(commentId), reference, body, this.#token));
|
|
229
|
+
}
|
|
98
230
|
// ─── Base: reads ───────────────────────────────────────────────
|
|
99
231
|
async fetchDiff(ref) {
|
|
100
232
|
const text = await this.#mapAuth(() => this.#client.fetchPRDiff(this.#owner, this.#repo, ref.iid, this.#token));
|
|
@@ -234,6 +366,38 @@ export class GitHubForgeAdapter {
|
|
|
234
366
|
async fetchGraphMetadata(_repo) {
|
|
235
367
|
return this.#client.fetchGraphMetadata(this.#owner, this.#repo, this.#token);
|
|
236
368
|
}
|
|
369
|
+
// ─── FileReadCapable ────────────────────────────────────────────
|
|
370
|
+
/**
|
|
371
|
+
* Read one repo-relative file's contents at `ref`, or null if the path is not
|
|
372
|
+
* a file there. The path-traversal guard, size cap, file-vs-directory check,
|
|
373
|
+
* base64 decode, and 404→null all live INSIDE client.fetchFileContents — this
|
|
374
|
+
* adapter delegates with the adapter's fixed owner/repo (so `_repo` is unused,
|
|
375
|
+
* matching the graph methods). Wrapped in `#mapAuth` so a 401/403 from the
|
|
376
|
+
* Contents API reclassifies to `ForgeAuthError` — same P2 token-remint recovery
|
|
377
|
+
* every base read gets (the graph methods skip it only because the client
|
|
378
|
+
* swallows their auth failures to null; this one throws). Not exposed via the
|
|
379
|
+
* `capabilities` flags: consumers narrow by method-presence
|
|
380
|
+
* (`'fetchFileContents' in adapter`) per the R-CAPABILITY doctrine, which is
|
|
381
|
+
* authoritative over the informational flags.
|
|
382
|
+
*/
|
|
383
|
+
async fetchFileContents(_repo, path, ref) {
|
|
384
|
+
// Bridge the optional capability ref to the client's positional `ref`: '' is
|
|
385
|
+
// the client's "default branch" sentinel (Contents API omits ?ref).
|
|
386
|
+
return this.#mapAuth(() => this.#client.fetchFileContents(this.#owner, this.#repo, path, ref ?? '', this.#token));
|
|
387
|
+
}
|
|
388
|
+
// ─── SearchCapable ──────────────────────────────────────────────
|
|
389
|
+
/**
|
|
390
|
+
* Search the repo's code (default branch) for `term`. Throttle/rate-limit and
|
|
391
|
+
* other non-auth degradation all live INSIDE client.searchCode (it returns
|
|
392
|
+
* `[]` rather than throwing); this adapter delegates with the adapter's fixed
|
|
393
|
+
* owner/repo, wrapped in `#mapAuth` so a genuine 401/403 reclassifies to
|
|
394
|
+
* `ForgeAuthError` — same P2 token-remint recovery every other read gets. Not
|
|
395
|
+
* exposed via the `capabilities` flags: consumers narrow by method-presence
|
|
396
|
+
* (`'searchCode' in adapter`) per the R-CAPABILITY doctrine.
|
|
397
|
+
*/
|
|
398
|
+
async searchCode(_repo, term, limit) {
|
|
399
|
+
return this.#mapAuth(() => this.#client.searchCode(this.#owner, this.#repo, term, limit, this.#token));
|
|
400
|
+
}
|
|
237
401
|
}
|
|
238
402
|
// Re-export so test files and 1.4 can reference the reaction-kind set succinctly.
|
|
239
403
|
export { REACTION_KIND };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-forge-adapter.js","sourceRoot":"","sources":["../../../src/adapters/github/github-forge-adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"github-forge-adapter.js","sourceRoot":"","sources":["../../../src/adapters/github/github-forge-adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
*/
|
|
13
13
|
export type { Actor, ActorKind, AuthorAssociation, ChangedFile, ChangeKind, ChangeRequest, ChangeRequestRef, CommentId, CommentMarker, Commit, DiffRefs, ForgeCapabilities, ForgeEvent, ForgeKind, NormalizedComment, PublishFailure, PublishReport, RepoRef, TenantHint, UnifiedDiff, UpsertSummaryResult, } from './types.js';
|
|
14
14
|
export { ACTOR_KIND, AUTHOR_ASSOCIATION, CHANGE_KIND, FORGE_KIND, } from './types.js';
|
|
15
|
-
export type { ForgeAdapter, ForgeAdapterBase, GraphReadCapable, InlineCapable, InlineComment, MarkerExtractable, ReactionCapable, ReactionKind, } from './ports/forge-adapter.js';
|
|
15
|
+
export type { ExplanationCommentChannel, ExplanationCommentLookup, ExplanationCommentRef, ExplanationPublicationCapable, ExplanationSnapshotCapable, ExplanationSnapshotReadResult, FileReadCapable, ForgeAdapter, ForgeAdapterBase, GraphReadCapable, InlineCapable, InlineComment, MarkerExtractable, ReactionCapable, ReactionKind, SearchCapable, } from './ports/forge-adapter.js';
|
|
16
16
|
export { REACTION_KIND } from './ports/forge-adapter.js';
|
|
17
17
|
export type { CiDispatchRequest, CiDispatchResult, CiRunner, EnsureWorkflowResult, } from './ports/ci-runner.js';
|
|
18
18
|
export { FORGE_AUTH_STATUSES, ForgeAuthError, getErrorStatus, isForgeAuthError } from './errors.js';
|
|
@@ -22,8 +22,8 @@ export type { ForgeRegistry, UnknownForgeErrorContext } from './registry.js';
|
|
|
22
22
|
export { MapForgeRegistry, UnknownForgeError } from './registry.js';
|
|
23
23
|
export type { GitHubAppCredentialProviderDeps } from './adapters/github/github-app-credential-provider.js';
|
|
24
24
|
export { BUDGET_SECONDS, GitHubAppCredentialProvider, SKEW_SECONDS, } from './adapters/github/github-app-credential-provider.js';
|
|
25
|
-
export type { GitHubClientPort, GitHubInstallationTokenMintWithExpiry, GitHubReactionContent, MintedInstallationToken, } from './adapters/github/github-client-port.js';
|
|
26
|
-
export type { GitHubForgeAdapterDeps } from './adapters/github/github-forge-adapter.js';
|
|
25
|
+
export type { GitHubClientPort, GitHubInstallationTokenMintWithExpiry, GitHubReactionContent, GitHubRevisionPinnedSnapshot, MintedInstallationToken, } from './adapters/github/github-client-port.js';
|
|
26
|
+
export type { GitHubExplanationBinding, GitHubForgeAdapterDeps, } from './adapters/github/github-forge-adapter.js';
|
|
27
27
|
export { GitHubForgeAdapter } from './adapters/github/github-forge-adapter.js';
|
|
28
28
|
export { StaticTokenProvider } from './adapters/github/static-token-provider.js';
|
|
29
29
|
export type { GitLabClientPort, GitLabDiffPosition, GitLabNote, } from './adapters/gitlab/gitlab-client-port.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,YAAY,EACV,KAAK,EACL,SAAS,EACT,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,MAAM,EACN,QAAQ,EACR,iBAAiB,EACjB,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,OAAO,EACP,UAAU,EACV,WAAW,EACX,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,WAAW,EACX,UAAU,GACX,MAAM,YAAY,CAAC;AAIpB,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,YAAY,EACV,KAAK,EACL,SAAS,EACT,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,MAAM,EACN,QAAQ,EACR,iBAAiB,EACjB,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,OAAO,EACP,UAAU,EACV,WAAW,EACX,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,WAAW,EACX,UAAU,GACX,MAAM,YAAY,CAAC;AAIpB,YAAY,EACV,yBAAyB,EACzB,wBAAwB,EACxB,qBAAqB,EACrB,6BAA6B,EAC7B,0BAA0B,EAC1B,6BAA6B,EAC7B,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,aAAa,GACd,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAIzD,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,QAAQ,EACR,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpG,YAAY,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAC9E,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAIlE,YAAY,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AASpE,YAAY,EAAE,+BAA+B,EAAE,MAAM,qDAAqD,CAAC;AAC3G,OAAO,EACL,cAAc,EACd,2BAA2B,EAC3B,YAAY,GACb,MAAM,qDAAqD,CAAC;AAC7D,YAAY,EACV,gBAAgB,EAChB,qCAAqC,EACrC,qBAAqB,EACrB,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,yCAAyC,CAAC;AACjD,YAAY,EACV,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AAOjF,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,GACX,MAAM,yCAAyC,CAAC;AACjD,YAAY,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAQ/E,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAIzC,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA2BH,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,WAAW,EACX,UAAU,GACX,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA2BH,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,WAAW,EACX,UAAU,GACX,MAAM,YAAY,CAAC;AAsBpB,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAWzD,mEAAmE;AAEnE,mEAAmE;AACnE,iFAAiF;AACjF,yEAAyE;AACzE,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAOpG,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAUpE,OAAO,EACL,cAAc,EACd,2BAA2B,EAC3B,YAAY,GACb,MAAM,qDAAqD,CAAC;AAY7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AAajF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAE/E,mEAAmE;AAEnE,mEAAmE;AACnE,yEAAyE;AACzE,+EAA+E;AAC/E,wEAAwE;AACxE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,mEAAmE;AAEnE,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
* it would permit `fetchGraph` without `fetchGraphMetadata`.) Single-method
|
|
24
24
|
* capabilities stay `Partial<>` because co-presence is trivial for one method.
|
|
25
25
|
*/
|
|
26
|
-
import type { DependencyGraph, GraphMetadata } from 'ghagga-core';
|
|
26
|
+
import type { DependencyGraph, ExplanationIdentity, ExplanationSnapshot, GraphMetadata, NonAnswerExplanationOutcome } from 'ghagga-core';
|
|
27
27
|
import type { ChangedFile, ChangeRequest, ChangeRequestRef, CommentId, CommentMarker, Commit, ForgeCapabilities, PublishReport, RepoRef, UnifiedDiff, UpsertSummaryResult } from '../types.js';
|
|
28
28
|
/** Kinds of reactions an adapter may support. */
|
|
29
29
|
export declare const REACTION_KIND: {
|
|
@@ -144,6 +144,45 @@ export interface GraphReadCapable {
|
|
|
144
144
|
/** Read graph metadata (freshness, size, …), or null if none is available. */
|
|
145
145
|
fetchGraphMetadata(repo: RepoRef): Promise<GraphMetadata | null>;
|
|
146
146
|
}
|
|
147
|
+
/**
|
|
148
|
+
* Optional: adapter can READ a single file's contents at a ref, no clone.
|
|
149
|
+
*
|
|
150
|
+
* A single-method capability (composed as `Partial<>` on {@link ForgeAdapter}),
|
|
151
|
+
* narrowed by method-presence (`'fetchFileContents' in adapter`) like every other
|
|
152
|
+
* optional capability. `null` means "no such file at this ref" (missing, or the
|
|
153
|
+
* path is a directory/submodule) — distinct from a throw, which is a real fault
|
|
154
|
+
* (auth, rate-limit, oversize). Used to give code-blind (no-checkout) triage some
|
|
155
|
+
* code-in-evidence.
|
|
156
|
+
*/
|
|
157
|
+
export interface FileReadCapable {
|
|
158
|
+
/**
|
|
159
|
+
* Read a repo-relative file's UTF-8 contents at `ref`, or null if not a file
|
|
160
|
+
* there. `ref` is optional — omitted reads the repository default branch (for
|
|
161
|
+
* issue triage, which has no natural SHA).
|
|
162
|
+
*/
|
|
163
|
+
fetchFileContents(repo: RepoRef, path: string, ref?: string): Promise<string | null>;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Optional: adapter can SEARCH a repo's code for a term, no clone.
|
|
167
|
+
*
|
|
168
|
+
* A single-method capability (composed as `Partial<>` on {@link ForgeAdapter}),
|
|
169
|
+
* narrowed by method-presence (`'searchCode' in adapter`) like every other
|
|
170
|
+
* optional capability — there is no `ForgeCapabilities` flag for it. Used to
|
|
171
|
+
* give code-blind (no-checkout) triage a fallback source of candidate paths
|
|
172
|
+
* when {@link FileReadCapable}-driven path discovery from the issue text alone
|
|
173
|
+
* finds too few files: the caller extracts an identifier the reporter named
|
|
174
|
+
* (backtick-quoted) and searches the repo's DEFAULT branch for it (a GitHub
|
|
175
|
+
* code-search limitation the caller accepts).
|
|
176
|
+
*/
|
|
177
|
+
export interface SearchCapable {
|
|
178
|
+
/**
|
|
179
|
+
* Search the repo's code for `term`, returning matching file paths (deduped,
|
|
180
|
+
* capped at `limit`, first-appearance order). Never throws — a real fault
|
|
181
|
+
* (auth, rate-limit/throttle, malformed response) degrades to `[]` so triage
|
|
182
|
+
* proceeds with whatever else it already has.
|
|
183
|
+
*/
|
|
184
|
+
searchCode(repo: RepoRef, term: string, limit: number): Promise<string[]>;
|
|
185
|
+
}
|
|
147
186
|
/** Optional: adapter can publish line-anchored inline comments. */
|
|
148
187
|
export interface InlineCapable {
|
|
149
188
|
/** Publish a batch of inline comments; partial success is reported. */
|
|
@@ -157,6 +196,60 @@ export interface MarkerExtractable {
|
|
|
157
196
|
*/
|
|
158
197
|
extractMarker(body: string, marker: CommentMarker): string | null;
|
|
159
198
|
}
|
|
199
|
+
/** A revision-pinned explanation snapshot, or a core-compatible non-answer. */
|
|
200
|
+
export type ExplanationSnapshotReadResult = {
|
|
201
|
+
readonly kind: 'SNAPSHOT';
|
|
202
|
+
readonly snapshot: ExplanationSnapshot;
|
|
203
|
+
} | (Pick<NonAnswerExplanationOutcome, 'reason'> & {
|
|
204
|
+
readonly kind: 'STALE' | 'INVALID';
|
|
205
|
+
});
|
|
206
|
+
/** Optional: adapter can acquire every explanation byte through one pinned read. */
|
|
207
|
+
export interface ExplanationSnapshotCapable {
|
|
208
|
+
/**
|
|
209
|
+
* Acquire a snapshot bound to the requested revision without composing live
|
|
210
|
+
* PR-number reads. A missing or unprovable response is never repaired from
|
|
211
|
+
* another endpoint: callers receive STALE or INVALID instead.
|
|
212
|
+
*/
|
|
213
|
+
fetchExplanationSnapshot(identity: ExplanationIdentity, ref: ChangeRequestRef): Promise<ExplanationSnapshotReadResult>;
|
|
214
|
+
}
|
|
215
|
+
/** Explanation comments are independent from legacy review markers. */
|
|
216
|
+
export type ExplanationCommentChannel = 'progress' | 'answer';
|
|
217
|
+
/**
|
|
218
|
+
* Exact identity required to reconcile an explanation-owned comment.
|
|
219
|
+
*
|
|
220
|
+
* `ownerId` is a stable forge-native account ID. Repository namespace, login,
|
|
221
|
+
* and marker text are labels, not proof of ownership.
|
|
222
|
+
*/
|
|
223
|
+
export interface ExplanationCommentRef {
|
|
224
|
+
readonly forgeInstance: string;
|
|
225
|
+
readonly installationId: string;
|
|
226
|
+
readonly repositoryId: string;
|
|
227
|
+
readonly changeRequest: ChangeRequestRef;
|
|
228
|
+
readonly ownerId: string;
|
|
229
|
+
readonly channel: ExplanationCommentChannel;
|
|
230
|
+
readonly invocationId: string;
|
|
231
|
+
}
|
|
232
|
+
/** An explanation-comment lookup is intentionally three-state. */
|
|
233
|
+
export type ExplanationCommentLookup = {
|
|
234
|
+
readonly kind: 'FOUND';
|
|
235
|
+
readonly commentId: CommentId;
|
|
236
|
+
readonly reference: ExplanationCommentRef;
|
|
237
|
+
} | {
|
|
238
|
+
readonly kind: 'ABSENT';
|
|
239
|
+
} | {
|
|
240
|
+
readonly kind: 'INCOMPLETE';
|
|
241
|
+
readonly reason: string;
|
|
242
|
+
};
|
|
243
|
+
/**
|
|
244
|
+
* Optional explanation publication seam. It delegates one typed operation at a
|
|
245
|
+
* time; it does not choose create versus update or turn ABSENT into authority
|
|
246
|
+
* to recreate a comment. That durable orchestration belongs to Unit 5.
|
|
247
|
+
*/
|
|
248
|
+
export interface ExplanationPublicationCapable {
|
|
249
|
+
lookupExplanationComment(reference: ExplanationCommentRef): Promise<ExplanationCommentLookup>;
|
|
250
|
+
createExplanationComment(reference: ExplanationCommentRef, body: string): Promise<CommentId>;
|
|
251
|
+
updateExplanationComment(reference: ExplanationCommentRef, commentId: CommentId, body: string): Promise<void>;
|
|
252
|
+
}
|
|
160
253
|
/**
|
|
161
254
|
* The full adapter type the engine consumes.
|
|
162
255
|
*
|
|
@@ -170,5 +263,5 @@ export interface MarkerExtractable {
|
|
|
170
263
|
export type ForgeAdapter = ForgeAdapterBase & Partial<ReactionCapable> & (GraphReadCapable | {
|
|
171
264
|
fetchGraph?: never;
|
|
172
265
|
fetchGraphMetadata?: never;
|
|
173
|
-
}) & Partial<InlineCapable> & Partial<MarkerExtractable>;
|
|
266
|
+
}) & Partial<FileReadCapable> & Partial<SearchCapable> & Partial<InlineCapable> & Partial<MarkerExtractable> & Partial<ExplanationSnapshotCapable> & Partial<ExplanationPublicationCapable>;
|
|
174
267
|
//# sourceMappingURL=forge-adapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forge-adapter.d.ts","sourceRoot":"","sources":["../../src/ports/forge-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAMH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"forge-adapter.d.ts","sourceRoot":"","sources":["../../src/ports/forge-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forge-adapter.js","sourceRoot":"","sources":["../../src/ports/forge-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;
|
|
1
|
+
{"version":3,"file":"forge-adapter.js","sourceRoot":"","sources":["../../src/ports/forge-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AA2BH,iDAAiD;AACjD,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;CACZ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ghagga-forge",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.4.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"code-review"
|
|
28
28
|
],
|
|
29
29
|
"engines": {
|
|
30
|
-
"node": ">=
|
|
30
|
+
"node": ">=22.22.2"
|
|
31
31
|
},
|
|
32
32
|
"main": "./dist/index.js",
|
|
33
33
|
"types": "./dist/index.d.ts",
|
|
@@ -42,12 +42,12 @@
|
|
|
42
42
|
"README.md"
|
|
43
43
|
],
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"ghagga-core": "3.
|
|
45
|
+
"ghagga-core": "3.4.0"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@types/node": "^26.1
|
|
48
|
+
"@types/node": "^26.6.1",
|
|
49
49
|
"typescript": "^6.0.3",
|
|
50
|
-
"vitest": "^
|
|
50
|
+
"vitest": "^5.0.1"
|
|
51
51
|
},
|
|
52
52
|
"scripts": {
|
|
53
53
|
"build": "tsc && node scripts/copy-impl-assets.mjs",
|