@usepipr/runtime 0.1.3 → 0.2.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/{commands-BC2fTZsi.mjs → commands-BajlHf13.mjs} +1244 -1210
- package/dist/commands-BajlHf13.mjs.map +1 -0
- package/dist/{commands-C7OX2Jnd.d.mts → commands-Zzy2vNDo.d.mts} +49 -127
- package/dist/commands-Zzy2vNDo.d.mts.map +1 -0
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +1 -1
- package/dist/internal/testing.d.mts +2 -0
- package/dist/internal/testing.mjs +2 -0
- package/dist/pi/runtime-tools-extension.d.mts.map +1 -1
- package/dist/pi/runtime-tools-extension.mjs.map +1 -1
- package/package.json +7 -12
- package/dist/commands-BC2fTZsi.mjs.map +0 -1
- package/dist/commands-C7OX2Jnd.d.mts.map +0 -1
- package/dist/contract-BsL98-bI.mjs +0 -74
- package/dist/contract-BsL98-bI.mjs.map +0 -1
- package/dist/contract-D-zqnrkd.d.mts +0 -10
- package/dist/contract-D-zqnrkd.d.mts.map +0 -1
- package/dist/e2e/action-fixture.d.mts +0 -2
- package/dist/e2e/action-fixture.mjs +0 -2
- package/dist/e2e/pi-contract.d.mts +0 -2
- package/dist/e2e/pi-contract.mjs +0 -2
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { ReviewResult } from "@usepipr/sdk
|
|
2
|
+
import { DiffManifest, ReviewFinding, ReviewResult } from "@usepipr/sdk";
|
|
3
3
|
//#region src/config/init.d.ts
|
|
4
|
-
type InitTypeSupportMode = "include" | "skip" | "only";
|
|
5
4
|
type InitOfficialMinimalProjectResult = {
|
|
6
5
|
configDir: string;
|
|
7
6
|
created: string[];
|
|
@@ -10,9 +9,6 @@ type InitOfficialMinimalProjectResult = {
|
|
|
10
9
|
declare const supportedOfficialInitAdapters: readonly ["github"];
|
|
11
10
|
type OfficialInitAdapter = (typeof supportedOfficialInitAdapters)[number];
|
|
12
11
|
//#endregion
|
|
13
|
-
//#region src/review/contract.d.ts
|
|
14
|
-
type PrReview = ReviewResult;
|
|
15
|
-
//#endregion
|
|
16
12
|
//#region src/types.d.ts
|
|
17
13
|
declare const providerConfigSchema: z.ZodObject<{
|
|
18
14
|
id: z.ZodString;
|
|
@@ -200,57 +196,6 @@ declare const changeRequestEventContextSchema: z.ZodObject<{
|
|
|
200
196
|
}, z.core.$strict>;
|
|
201
197
|
workspace: z.ZodString;
|
|
202
198
|
}, z.core.$strict>;
|
|
203
|
-
declare const diffManifestSchema: z.ZodObject<{
|
|
204
|
-
baseSha: z.ZodString;
|
|
205
|
-
headSha: z.ZodString;
|
|
206
|
-
mergeBaseSha: z.ZodString;
|
|
207
|
-
files: z.ZodArray<z.ZodObject<{
|
|
208
|
-
path: z.ZodString;
|
|
209
|
-
previousPath: z.ZodOptional<z.ZodString>;
|
|
210
|
-
status: z.ZodEnum<{
|
|
211
|
-
added: "added";
|
|
212
|
-
modified: "modified";
|
|
213
|
-
removed: "removed";
|
|
214
|
-
renamed: "renamed";
|
|
215
|
-
}>;
|
|
216
|
-
language: z.ZodOptional<z.ZodString>;
|
|
217
|
-
additions: z.ZodNumber;
|
|
218
|
-
deletions: z.ZodNumber;
|
|
219
|
-
hunks: z.ZodArray<z.ZodObject<{
|
|
220
|
-
hunkIndex: z.ZodNumber;
|
|
221
|
-
header: z.ZodString;
|
|
222
|
-
oldStart: z.ZodNumber;
|
|
223
|
-
oldLines: z.ZodNumber;
|
|
224
|
-
newStart: z.ZodNumber;
|
|
225
|
-
newLines: z.ZodNumber;
|
|
226
|
-
contentHash: z.ZodString;
|
|
227
|
-
}, z.core.$strict>>;
|
|
228
|
-
commentableRanges: z.ZodArray<z.ZodObject<{
|
|
229
|
-
id: z.ZodString;
|
|
230
|
-
path: z.ZodString;
|
|
231
|
-
side: z.ZodEnum<{
|
|
232
|
-
RIGHT: "RIGHT";
|
|
233
|
-
LEFT: "LEFT";
|
|
234
|
-
}>;
|
|
235
|
-
startLine: z.ZodNumber;
|
|
236
|
-
endLine: z.ZodNumber;
|
|
237
|
-
kind: z.ZodEnum<{
|
|
238
|
-
added: "added";
|
|
239
|
-
deleted: "deleted";
|
|
240
|
-
context: "context";
|
|
241
|
-
mixed: "mixed";
|
|
242
|
-
}>;
|
|
243
|
-
hunkIndex: z.ZodNumber;
|
|
244
|
-
hunkHeader: z.ZodString;
|
|
245
|
-
hunkContentHash: z.ZodString;
|
|
246
|
-
summary: z.ZodOptional<z.ZodString>;
|
|
247
|
-
preview: z.ZodOptional<z.ZodString>;
|
|
248
|
-
}, z.core.$strict>>;
|
|
249
|
-
signals: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
250
|
-
changedSymbols: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
251
|
-
excludedReason: z.ZodOptional<z.ZodString>;
|
|
252
|
-
}, z.core.$strict>>;
|
|
253
|
-
}, z.core.$strict>;
|
|
254
199
|
declare const validatedReviewSchema: z.ZodObject<{
|
|
255
200
|
review: import("@usepipr/sdk").ZodSchema<import("@usepipr/sdk").ReviewResult>;
|
|
256
201
|
validFindings: z.ZodArray<import("@usepipr/sdk").ZodSchema<import("@usepipr/sdk").ReviewFinding>>;
|
|
@@ -273,7 +218,6 @@ type PlatformInfo = z.infer<typeof platformInfoSchema>;
|
|
|
273
218
|
type RepositoryRef = z.infer<typeof repositoryRefSchema>;
|
|
274
219
|
type ChangeRequestRef = z.infer<typeof changeRequestRefSchema>;
|
|
275
220
|
type ChangeRequestEventContext = z.infer<typeof changeRequestEventContextSchema>;
|
|
276
|
-
type DiffManifest = z.infer<typeof diffManifestSchema>;
|
|
277
221
|
type ValidatedReview = z.infer<typeof validatedReviewSchema>;
|
|
278
222
|
type CommandPermissionLevel = z.infer<typeof commandPermissionLevelSchema>;
|
|
279
223
|
//#endregion
|
|
@@ -296,6 +240,26 @@ type InspectRuntimePlan = {
|
|
|
296
240
|
schemas: string[];
|
|
297
241
|
};
|
|
298
242
|
//#endregion
|
|
243
|
+
//#region ../sdk/src/types/manifest.d.ts
|
|
244
|
+
/** Side of a pull request diff that a commentable range belongs to. */
|
|
245
|
+
type ReviewSide = "RIGHT" | "LEFT";
|
|
246
|
+
/** Kind of line span represented by a Diff Manifest commentable range. */
|
|
247
|
+
type RangeKind = "added" | "deleted" | "context" | "mixed";
|
|
248
|
+
/** Commentable line range that can anchor an Inline Review Comment. */
|
|
249
|
+
type CommentableRange = {
|
|
250
|
+
id: string;
|
|
251
|
+
path: string;
|
|
252
|
+
side: ReviewSide;
|
|
253
|
+
startLine: number;
|
|
254
|
+
endLine: number;
|
|
255
|
+
kind: RangeKind;
|
|
256
|
+
hunkIndex: number;
|
|
257
|
+
hunkHeader: string;
|
|
258
|
+
hunkContentHash: string;
|
|
259
|
+
summary?: string;
|
|
260
|
+
preview?: string;
|
|
261
|
+
};
|
|
262
|
+
//#endregion
|
|
299
263
|
//#region src/review/prior-state.d.ts
|
|
300
264
|
declare const priorReviewStateSchema: z.ZodObject<{
|
|
301
265
|
version: z.ZodLiteral<1>;
|
|
@@ -309,10 +273,7 @@ declare const priorReviewStateSchema: z.ZodObject<{
|
|
|
309
273
|
}>;
|
|
310
274
|
path: z.ZodString;
|
|
311
275
|
rangeId: z.ZodString;
|
|
312
|
-
side: z.
|
|
313
|
-
RIGHT: "RIGHT";
|
|
314
|
-
LEFT: "LEFT";
|
|
315
|
-
}>;
|
|
276
|
+
side: z.ZodType<ReviewSide, unknown, z.core.$ZodTypeInternals<ReviewSide, unknown>>;
|
|
316
277
|
startLine: z.ZodNumber;
|
|
317
278
|
endLine: z.ZodNumber;
|
|
318
279
|
firstSeenHeadSha: z.ZodString;
|
|
@@ -324,33 +285,10 @@ type PriorReviewState = z.infer<typeof priorReviewStateSchema>;
|
|
|
324
285
|
//#endregion
|
|
325
286
|
//#region src/review/comment.d.ts
|
|
326
287
|
declare const inlinePublicationItemSchema: z.ZodObject<{
|
|
327
|
-
finding: import("@usepipr/sdk").ZodSchema<
|
|
328
|
-
range: z.
|
|
329
|
-
id: z.ZodString;
|
|
330
|
-
path: z.ZodString;
|
|
331
|
-
side: z.ZodEnum<{
|
|
332
|
-
RIGHT: "RIGHT";
|
|
333
|
-
LEFT: "LEFT";
|
|
334
|
-
}>;
|
|
335
|
-
startLine: z.ZodNumber;
|
|
336
|
-
endLine: z.ZodNumber;
|
|
337
|
-
kind: z.ZodEnum<{
|
|
338
|
-
added: "added";
|
|
339
|
-
deleted: "deleted";
|
|
340
|
-
context: "context";
|
|
341
|
-
mixed: "mixed";
|
|
342
|
-
}>;
|
|
343
|
-
hunkIndex: z.ZodNumber;
|
|
344
|
-
hunkHeader: z.ZodString;
|
|
345
|
-
hunkContentHash: z.ZodString;
|
|
346
|
-
summary: z.ZodOptional<z.ZodString>;
|
|
347
|
-
preview: z.ZodOptional<z.ZodString>;
|
|
348
|
-
}, z.core.$strict>;
|
|
288
|
+
finding: import("@usepipr/sdk").ZodSchema<ReviewFinding>;
|
|
289
|
+
range: z.ZodType<CommentableRange, unknown, z.core.$ZodTypeInternals<CommentableRange, unknown>>;
|
|
349
290
|
path: z.ZodString;
|
|
350
|
-
side: z.
|
|
351
|
-
RIGHT: "RIGHT";
|
|
352
|
-
LEFT: "LEFT";
|
|
353
|
-
}>;
|
|
291
|
+
side: z.ZodType<ReviewSide, unknown, z.core.$ZodTypeInternals<ReviewSide, unknown>>;
|
|
354
292
|
startLine: z.ZodNumber;
|
|
355
293
|
endLine: z.ZodNumber;
|
|
356
294
|
body: z.ZodString;
|
|
@@ -391,33 +329,10 @@ declare const publicationPlanSchema: z.ZodObject<{
|
|
|
391
329
|
mainMarker: z.ZodString;
|
|
392
330
|
changeNumber: z.ZodNumber;
|
|
393
331
|
inlineItems: z.ZodArray<z.ZodObject<{
|
|
394
|
-
finding: import("@usepipr/sdk").ZodSchema<
|
|
395
|
-
range: z.
|
|
396
|
-
id: z.ZodString;
|
|
397
|
-
path: z.ZodString;
|
|
398
|
-
side: z.ZodEnum<{
|
|
399
|
-
RIGHT: "RIGHT";
|
|
400
|
-
LEFT: "LEFT";
|
|
401
|
-
}>;
|
|
402
|
-
startLine: z.ZodNumber;
|
|
403
|
-
endLine: z.ZodNumber;
|
|
404
|
-
kind: z.ZodEnum<{
|
|
405
|
-
added: "added";
|
|
406
|
-
deleted: "deleted";
|
|
407
|
-
context: "context";
|
|
408
|
-
mixed: "mixed";
|
|
409
|
-
}>;
|
|
410
|
-
hunkIndex: z.ZodNumber;
|
|
411
|
-
hunkHeader: z.ZodString;
|
|
412
|
-
hunkContentHash: z.ZodString;
|
|
413
|
-
summary: z.ZodOptional<z.ZodString>;
|
|
414
|
-
preview: z.ZodOptional<z.ZodString>;
|
|
415
|
-
}, z.core.$strict>;
|
|
332
|
+
finding: import("@usepipr/sdk").ZodSchema<ReviewFinding>;
|
|
333
|
+
range: z.ZodType<CommentableRange, unknown, z.core.$ZodTypeInternals<CommentableRange, unknown>>;
|
|
416
334
|
path: z.ZodString;
|
|
417
|
-
side: z.
|
|
418
|
-
RIGHT: "RIGHT";
|
|
419
|
-
LEFT: "LEFT";
|
|
420
|
-
}>;
|
|
335
|
+
side: z.ZodType<ReviewSide, unknown, z.core.$ZodTypeInternals<ReviewSide, unknown>>;
|
|
421
336
|
startLine: z.ZodNumber;
|
|
422
337
|
endLine: z.ZodNumber;
|
|
423
338
|
body: z.ZodString;
|
|
@@ -449,10 +364,7 @@ declare const publicationPlanSchema: z.ZodObject<{
|
|
|
449
364
|
}>;
|
|
450
365
|
path: z.ZodString;
|
|
451
366
|
rangeId: z.ZodString;
|
|
452
|
-
side: z.
|
|
453
|
-
RIGHT: "RIGHT";
|
|
454
|
-
LEFT: "LEFT";
|
|
455
|
-
}>;
|
|
367
|
+
side: z.ZodType<ReviewSide, unknown, z.core.$ZodTypeInternals<ReviewSide, unknown>>;
|
|
456
368
|
startLine: z.ZodNumber;
|
|
457
369
|
endLine: z.ZodNumber;
|
|
458
370
|
firstSeenHeadSha: z.ZodString;
|
|
@@ -805,13 +717,23 @@ type GitHubPublicationClient = {
|
|
|
805
717
|
//#endregion
|
|
806
718
|
//#region src/shared/logging.d.ts
|
|
807
719
|
type ActionLogSink = {
|
|
808
|
-
|
|
809
|
-
notice(message: string): void;
|
|
810
|
-
warning(message: string): void;
|
|
811
|
-
error(message: string): void;
|
|
812
|
-
debug(message: string): void;
|
|
720
|
+
log(record: ActionLogRecord): void;
|
|
813
721
|
group<T>(name: string, run: () => Promise<T>): Promise<T>;
|
|
814
722
|
};
|
|
723
|
+
type ActionLogRecord = {
|
|
724
|
+
level: LogLevel;
|
|
725
|
+
event: string;
|
|
726
|
+
fields: ActionLogRecordFields;
|
|
727
|
+
text?: string;
|
|
728
|
+
};
|
|
729
|
+
type ActionLogRecordFields = Record<string, string | number | boolean | readonly string[]>;
|
|
730
|
+
type LogLevel = "info" | "notice" | "warning" | "error" | "debug";
|
|
731
|
+
//#endregion
|
|
732
|
+
//#region src/pi/contract.d.ts
|
|
733
|
+
declare const piThinkingLevels: readonly ["off", "minimal", "low", "medium", "high", "xhigh"];
|
|
734
|
+
declare const piBuiltinToolNames: readonly ["read", "bash", "edit", "write", "grep", "find", "ls"];
|
|
735
|
+
declare const piReadOnlyToolNames: readonly ["read", "grep", "find", "ls"];
|
|
736
|
+
declare const piRequiredCliFlags: readonly ["--provider", "--model", "--system-prompt", "--mode", "--print", "--no-session", "--session-dir", "--tools", "--extension", "--no-context-files", "--no-approve", "--no-extensions", "--no-skills", "--no-prompt-templates", "--no-themes", "--thinking"];
|
|
815
737
|
//#endregion
|
|
816
738
|
//#region src/review/task/task-output.d.ts
|
|
817
739
|
type RuntimeCheckConclusion = "success" | "failure" | "neutral";
|
|
@@ -830,7 +752,7 @@ type ReviewRuntimeBaseResult = {
|
|
|
830
752
|
};
|
|
831
753
|
type ReviewRuntimeResult = (ReviewRuntimeBaseResult & {
|
|
832
754
|
kind: "review";
|
|
833
|
-
review:
|
|
755
|
+
review: ReviewResult;
|
|
834
756
|
validated: ValidatedReview;
|
|
835
757
|
publicationPlan: PublicationPlan;
|
|
836
758
|
mainComment: string;
|
|
@@ -839,7 +761,7 @@ type ReviewRuntimeResult = (ReviewRuntimeBaseResult & {
|
|
|
839
761
|
}) | (ReviewRuntimeBaseResult & {
|
|
840
762
|
kind: "skipped";
|
|
841
763
|
skipReason: string;
|
|
842
|
-
review:
|
|
764
|
+
review: ReviewResult;
|
|
843
765
|
validated: ValidatedReview;
|
|
844
766
|
publicationPlan: PublicationPlan;
|
|
845
767
|
mainComment: string;
|
|
@@ -871,7 +793,7 @@ type InitCommandOptions = RuntimeCommandOptions & {
|
|
|
871
793
|
force: boolean;
|
|
872
794
|
adapters?: readonly string[];
|
|
873
795
|
recipe?: string;
|
|
874
|
-
|
|
796
|
+
minimal?: boolean;
|
|
875
797
|
};
|
|
876
798
|
type DryRunCommandOptions = RuntimeCommandOptions & {
|
|
877
799
|
eventPath: string;
|
|
@@ -963,5 +885,5 @@ declare function runLocalReviewCommand(options: LocalReviewCommandOptions): Prom
|
|
|
963
885
|
declare function runActionCommand(options: ActionCommandOptions): Promise<ActionCommandResult>;
|
|
964
886
|
declare function runActionCommandWithDependencies(options: ActionCommandDependencyOptions): Promise<ActionCommandResult>;
|
|
965
887
|
//#endregion
|
|
966
|
-
export {
|
|
967
|
-
//# sourceMappingURL=commands-
|
|
888
|
+
export { PlatformInfo as A, GitHubPublicationClient as C, ChangeRequestRef as D, ChangeRequestEventContext as E, supportedOfficialInitAdapters as F, RepositoryRef as M, RuntimeSettings as N, DiffManifest as O, OfficialInitAdapter as P, ActionLogSink as S, PublicationResult as T, piBuiltinToolNames as _, runInspectCommand as a, piThinkingLevels as b, ActionCommandOptions as c, DryRunCommandResult as d, InitCommandOptions as f, RuntimeCommandOptions as g, LocalReviewCommandResult as h, runInitCommand as i, ProviderConfig as j, PiprConfig as k, ActionCommandResult as l, LocalReviewCommandOptions as m, runActionCommandWithDependencies as n, runLocalReviewCommand as o, InspectCommandResult as p, runDryRunCommand as r, runValidateCommand as s, runActionCommand as t, DryRunCommandOptions as u, piReadOnlyToolNames as v, PublicationError as w, ActionLogRecord as x, piRequiredCliFlags as y };
|
|
889
|
+
//# sourceMappingURL=commands-Zzy2vNDo.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands-Zzy2vNDo.d.mts","names":[],"sources":["../src/config/init.ts","../src/types.ts","../src/config/project.ts","../../sdk/src/types/manifest.ts","../src/review/prior-state.ts","../src/review/comment.ts","../src/review/publication-result.ts","../src/hosts/types.ts","../src/hosts/github/command.ts","../src/hosts/github/publication-client.ts","../src/shared/logging.ts","../src/pi/contract.ts","../src/review/task/task-output.ts","../src/review/task/task-runtime.ts","../src/action/types.ts","../src/action/commands.ts"],"mappings":"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"}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as
|
|
1
|
+
import { A as PlatformInfo, D as ChangeRequestRef, E as ChangeRequestEventContext, F as supportedOfficialInitAdapters, M as RepositoryRef, N as RuntimeSettings, O as DiffManifest, P as OfficialInitAdapter, S as ActionLogSink, T as PublicationResult, a as runInspectCommand, c as ActionCommandOptions, d as DryRunCommandResult, f as InitCommandOptions, g as RuntimeCommandOptions, h as LocalReviewCommandResult, i as runInitCommand, j as ProviderConfig, k as PiprConfig, l as ActionCommandResult, m as LocalReviewCommandOptions, o as runLocalReviewCommand, p as InspectCommandResult, r as runDryRunCommand, s as runValidateCommand, t as runActionCommand, u as DryRunCommandOptions, w as PublicationError, x as ActionLogRecord } from "./commands-Zzy2vNDo.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/config/recipes/types.d.ts
|
|
4
4
|
type OfficialInitRecipeFile = {
|
|
@@ -25,5 +25,5 @@ declare const supportedOfficialInitRecipes: readonly ["default-review", "bug-hun
|
|
|
25
25
|
type OfficialInitRecipeId = (typeof supportedOfficialInitRecipes)[number];
|
|
26
26
|
declare function listOfficialInitRecipes(): OfficialInitRecipe[];
|
|
27
27
|
//#endregion
|
|
28
|
-
export { type ActionCommandOptions, type ActionCommandResult, type ActionLogSink, type ChangeRequestEventContext, type ChangeRequestRef, type DiffManifest, type DryRunCommandOptions, type DryRunCommandResult, type InitCommandOptions, type
|
|
28
|
+
export { type ActionCommandOptions, type ActionCommandResult, type ActionLogRecord, type ActionLogSink, type ChangeRequestEventContext, type ChangeRequestRef, type DiffManifest, type DryRunCommandOptions, type DryRunCommandResult, type InitCommandOptions, type InspectCommandResult, type LocalReviewCommandOptions, type LocalReviewCommandResult, type OfficialInitAdapter, type OfficialInitRecipe, type OfficialInitRecipeFile, type OfficialInitRecipeId, type PiprConfig, type PlatformInfo, type ProviderConfig, PublicationError, type PublicationResult, type RepositoryRef, type RuntimeCommandOptions, type RuntimeSettings, listOfficialInitRecipes, runActionCommand, runDryRunCommand, runInitCommand, runInspectCommand, runLocalReviewCommand, runValidateCommand, supportedOfficialInitAdapters, supportedOfficialInitRecipes };
|
|
29
29
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as runInspectCommand, c as PublicationError, d as supportedOfficialInitRecipes, i as runInitCommand, l as supportedOfficialInitAdapters, o as runLocalReviewCommand, r as runDryRunCommand, s as runValidateCommand, t as runActionCommand, u as listOfficialInitRecipes } from "./commands-
|
|
1
|
+
import { a as runInspectCommand, c as PublicationError, d as supportedOfficialInitRecipes, i as runInitCommand, l as supportedOfficialInitAdapters, o as runLocalReviewCommand, r as runDryRunCommand, s as runValidateCommand, t as runActionCommand, u as listOfficialInitRecipes } from "./commands-BajlHf13.mjs";
|
|
2
2
|
export { PublicationError, listOfficialInitRecipes, runActionCommand, runDryRunCommand, runInitCommand, runInspectCommand, runLocalReviewCommand, runValidateCommand, supportedOfficialInitAdapters, supportedOfficialInitRecipes };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { C as GitHubPublicationClient, _ as piBuiltinToolNames, b as piThinkingLevels, l as ActionCommandResult, n as runActionCommandWithDependencies, v as piReadOnlyToolNames, w as PublicationError, y as piRequiredCliFlags } from "../commands-Zzy2vNDo.mjs";
|
|
2
|
+
export { type ActionCommandResult, type GitHubPublicationClient, PublicationError, piBuiltinToolNames, piReadOnlyToolNames, piRequiredCliFlags, piThinkingLevels, runActionCommandWithDependencies };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { c as PublicationError, f as piBuiltinToolNames, h as piThinkingLevels, m as piRequiredCliFlags, n as runActionCommandWithDependencies, p as piReadOnlyToolNames } from "../commands-BajlHf13.mjs";
|
|
2
|
+
export { PublicationError, piBuiltinToolNames, piReadOnlyToolNames, piRequiredCliFlags, piThinkingLevels, runActionCommandWithDependencies };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-tools-extension.d.mts","names":[],"sources":["../../src/pi/runtime-tools-extension.ts"],"mappings":";
|
|
1
|
+
{"version":3,"file":"runtime-tools-extension.d.mts","names":[],"sources":["../../src/pi/runtime-tools-extension.ts"],"mappings":";KAmBK,eAAA;EACH,YAAA,CAAa,IAAA,EAAM,MAAM;AAAA;AAAA,KAGtB,MAAA;EACH,IAAA;EACA,KAAA;EACA,WAAA;EACA,UAAA,EAAY,MAAA;EACZ,OAAA,GACE,UAAA,UACA,MAAA,WACA,MAAA,YACA,QAAA,YACA,GAAA;IAAQ,GAAA;EAAA,MACL,OAAA,CAAQ,UAAA;AAAA;AAAA,KAGV,UAAA;EACH,OAAA,EAAS,KAAK;IAAG,IAAA;IAAc,IAAA;EAAA;EAC/B,OAAA;AAAA;;iBA2BsB,gBAAA,CAAiB,EAAmB,EAAf,eAAe"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-tools-extension.mjs","names":[],"sources":["../../src/pi/runtime-tools-extension.ts"],"sourcesContent":["import { readFileSync } from \"node:fs\";\nimport path from \"node:path\";\nimport { compact } from \"lodash-es\";\nimport { z } from \"zod\";\nimport {\n assertNoSymlinkPath,\n type BaseRangeSnapshot,\n boundedLineSlice,\n type ReadAtRefParams,\n type RuntimeToolData,\n readAtRefParams,\n readDiffFromRuntimeData,\n readDiffParams,\n resolveAllowedPath,\n resolveReadAtRefRequest,\n unavailableReadAtRefResult,\n} from \"./runtime-tools-core.js\";\n\ntype PiExtensionHost = {\n registerTool(tool: PiTool): void;\n};\n\ntype PiTool = {\n name: string;\n label: string;\n description: string;\n parameters: Record<string, unknown>;\n execute: (\n toolCallId: string,\n params: unknown,\n signal?: unknown,\n onUpdate?: unknown,\n ctx?: { cwd?: unknown },\n ) => Promise<ToolResult>;\n};\n\ntype ToolResult = {\n content: Array<{ type: \"text\"; text: string }>;\n details: unknown;\n};\n\nconst customToolDataSchema = z.strictObject({\n tools: z.array(\n z.strictObject({\n name: z.string().min(1),\n description: z.string().optional(),\n }),\n ),\n});\n\nconst customToolBridgePayloadSchema = z.record(z.string(), z.unknown());\nconst readableBaseSnapshotSchema = z.looseObject({\n path: z.string(),\n ref: z.enum([\"base\", \"head\"]),\n sourcePath: z.string(),\n rangeId: z.string(),\n startLine: z.number(),\n endLine: z.number(),\n available: z.literal(true),\n relativePath: z.string(),\n bytes: z.number().optional(),\n truncated: z.boolean().optional(),\n});\n\n/** Registers pipr runtime read tools and config-defined custom tools with Pi. */\nexport default function piprRuntimeTools(pi: PiExtensionHost): void {\n const registrations = toolRegistrations();\n if (registrations.length === 0) {\n throw new Error(\"PIPR_RUNTIME_TOOLS_DATA or PIPR_CUSTOM_TOOLS_DATA is required\");\n }\n for (const registration of registrations) {\n registration.register(pi, registration.dataPath);\n }\n}\n\nfunction toolRegistrations(): Array<{\n dataPath: string;\n register(pi: PiExtensionHost, dataPath: string): void;\n}> {\n return compact([\n registration(runtimeDataPath(), registerRuntimeReadTools),\n registration(customToolsDataPath(), registerCustomTools),\n ]);\n}\n\nfunction registration(\n dataPath: string | undefined,\n register: (pi: PiExtensionHost, dataPath: string) => void,\n) {\n return dataPath ? { dataPath, register } : undefined;\n}\n\nfunction registerRuntimeReadTools(pi: PiExtensionHost, dataPath: string): void {\n const dataRoot = path.dirname(dataPath);\n\n pi.registerTool({\n name: \"pipr_read_diff\",\n label: \"Read pipr Diff Manifest\",\n description: \"Read bounded full Diff Manifest data by path and/or range id.\",\n parameters: {\n type: \"object\",\n additionalProperties: false,\n properties: {\n path: { type: \"string\" },\n rangeId: { type: \"string\" },\n },\n },\n async execute(_toolCallId, params) {\n const data = (await Bun.file(dataPath).json()) as RuntimeToolData;\n const result = readDiffFromRuntimeData(data, readDiffParams(params));\n return textResult(result);\n },\n });\n\n pi.registerTool({\n name: \"pipr_read_at_ref\",\n label: \"Read pipr file at ref\",\n description: \"Read bounded file content for a Diff Manifest path at base or head.\",\n parameters: {\n type: \"object\",\n additionalProperties: false,\n required: [\"path\", \"ref\", \"rangeId\"],\n properties: {\n path: { type: \"string\" },\n ref: { type: \"string\", enum: [\"base\", \"head\"] },\n rangeId: { type: \"string\" },\n },\n },\n async execute(_toolCallId, params, _signal, _onUpdate, ctx) {\n const cwd = typeof ctx?.cwd === \"string\" ? ctx.cwd : \"\";\n const data = (await Bun.file(dataPath).json()) as RuntimeToolData;\n const result = await readAtRef(dataRoot, data, readAtRefParams(params), cwd);\n return textResult(result);\n },\n });\n}\n\nfunction registerCustomTools(pi: PiExtensionHost, dataPath: string): void {\n const bridgeUrl = customToolBridgeUrl();\n const bridgeToken = customToolBridgeToken();\n const data = customToolDataSchema.parse(JSON.parse(readFileSync(dataPath, \"utf8\")));\n for (const tool of data.tools) {\n pi.registerTool({\n name: tool.name,\n label: tool.name,\n description: tool.description ?? \"pipr custom config tool.\",\n parameters: {\n type: \"object\",\n additionalProperties: true,\n },\n async execute(_toolCallId, params) {\n const result = await callCustomTool(bridgeUrl, bridgeToken, tool.name, params);\n return textResult(result);\n },\n });\n }\n}\n\nfunction runtimeDataPath(): string | undefined {\n const dataPath = process.env.PIPR_RUNTIME_TOOLS_DATA;\n if (!dataPath) {\n return undefined;\n }\n if (!path.isAbsolute(dataPath)) {\n throw new Error(\"PIPR_RUNTIME_TOOLS_DATA must be an absolute path\");\n }\n return dataPath;\n}\n\nfunction customToolsDataPath(): string | undefined {\n const dataPath = process.env.PIPR_CUSTOM_TOOLS_DATA;\n if (!dataPath) {\n return undefined;\n }\n if (!path.isAbsolute(dataPath)) {\n throw new Error(\"PIPR_CUSTOM_TOOLS_DATA must be an absolute path\");\n }\n return dataPath;\n}\n\nfunction customToolBridgeUrl(): string {\n const value = process.env.PIPR_CUSTOM_TOOLS_BRIDGE_URL;\n if (!value) {\n throw new Error(\"PIPR_CUSTOM_TOOLS_BRIDGE_URL is required for pipr custom tools\");\n }\n return value;\n}\n\nfunction customToolBridgeToken(): string {\n const value = process.env.PIPR_CUSTOM_TOOLS_BRIDGE_TOKEN;\n if (!value) {\n throw new Error(\"PIPR_CUSTOM_TOOLS_BRIDGE_TOKEN is required for pipr custom tools\");\n }\n return value;\n}\n\nasync function callCustomTool(\n bridgeUrl: string,\n bridgeToken: string,\n tool: string,\n params: unknown,\n): Promise<unknown> {\n const response = await fetch(`${bridgeUrl}/call`, {\n method: \"POST\",\n headers: {\n authorization: `Bearer ${bridgeToken}`,\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({ tool, params }),\n });\n const payload = await parseCustomToolBridgePayload(response, tool);\n assertCustomToolBridgeOk(response, payload, tool);\n return Reflect.get(payload, \"result\");\n}\n\nasync function parseCustomToolBridgePayload(\n response: Response,\n tool: string,\n): Promise<Record<string, unknown>> {\n try {\n return customToolBridgePayloadSchema.parse(await response.json());\n } catch {\n throw new Error(`Custom tool '${tool}' returned invalid bridge response`);\n }\n}\n\nfunction assertCustomToolBridgeOk(\n response: Response,\n payload: Record<string, unknown>,\n tool: string,\n): void {\n if (!response.ok || Reflect.get(payload, \"ok\") !== true) {\n const error = Reflect.get(payload, \"error\");\n throw new Error(typeof error === \"string\" ? error : `Custom tool '${tool}' failed`);\n }\n}\n\nfunction textResult(value: unknown): ToolResult {\n return {\n content: [{ type: \"text\", text: JSON.stringify(value, null, 2) }],\n details: value,\n };\n}\n\nasync function readAtRef(\n dataRoot: string,\n data: RuntimeToolData,\n params: ReadAtRefParams,\n cwd: string,\n): Promise<unknown> {\n const request = resolveReadAtRefRequest(data.manifest, params);\n if (!request.window) {\n return unavailableReadAtRefResult(request);\n }\n if (params.ref === \"base\") {\n return await readBaseSnapshot(dataRoot, data.baseRanges[params.rangeId], params, request);\n }\n return await readHeadWorkspaceFile(cwd, data.toolResponseMaxBytes, params, request);\n}\n\nasync function readBaseSnapshot(\n dataRoot: string,\n snapshot: BaseRangeSnapshot | undefined,\n params: ReadAtRefParams,\n request: ReturnType<typeof resolveReadAtRefRequest>,\n): Promise<unknown> {\n const readable = readableBaseSnapshotSchema.safeParse(snapshot);\n if (!readable.success) {\n return snapshot ?? unavailableReadAtRefResult(request);\n }\n const snapshotData = readable.data;\n return {\n path: params.path,\n ref: params.ref,\n sourcePath: request.sourcePath,\n rangeId: params.rangeId,\n startLine: snapshotData.startLine,\n endLine: snapshotData.endLine,\n available: true,\n content: await Bun.file(path.join(dataRoot, snapshotData.relativePath)).text(),\n bytes: snapshotData.bytes,\n truncated: snapshotData.truncated,\n };\n}\n\nasync function readHeadWorkspaceFile(\n cwd: string,\n maxBytes: number,\n params: ReadAtRefParams,\n request: ReturnType<typeof resolveReadAtRefRequest>,\n): Promise<unknown> {\n if (!request.window) {\n return unavailableReadAtRefResult(request);\n }\n const target = resolveAllowedPath(cwd, request.sourcePath);\n await assertNoSymlinkPath(cwd, request.sourcePath);\n return {\n path: params.path,\n ref: params.ref,\n sourcePath: request.sourcePath,\n rangeId: params.rangeId,\n startLine: request.window.startLine,\n endLine: request.window.endLine,\n ...boundedLineSlice(await Bun.file(target).text(), request.window, maxBytes),\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtime-tools-extension.mjs","names":[],"sources":["../../src/pi/runtime-tools-extension.ts"],"sourcesContent":["// Internal Pi sandbox contract loaded by the Pipr runtime. Not user API.\nimport { readFileSync } from \"node:fs\";\nimport path from \"node:path\";\nimport { compact } from \"lodash-es\";\nimport { z } from \"zod\";\nimport {\n assertNoSymlinkPath,\n type BaseRangeSnapshot,\n boundedLineSlice,\n type ReadAtRefParams,\n type RuntimeToolData,\n readAtRefParams,\n readDiffFromRuntimeData,\n readDiffParams,\n resolveAllowedPath,\n resolveReadAtRefRequest,\n unavailableReadAtRefResult,\n} from \"./runtime-tools-core.js\";\n\ntype PiExtensionHost = {\n registerTool(tool: PiTool): void;\n};\n\ntype PiTool = {\n name: string;\n label: string;\n description: string;\n parameters: Record<string, unknown>;\n execute: (\n toolCallId: string,\n params: unknown,\n signal?: unknown,\n onUpdate?: unknown,\n ctx?: { cwd?: unknown },\n ) => Promise<ToolResult>;\n};\n\ntype ToolResult = {\n content: Array<{ type: \"text\"; text: string }>;\n details: unknown;\n};\n\nconst customToolDataSchema = z.strictObject({\n tools: z.array(\n z.strictObject({\n name: z.string().min(1),\n description: z.string().optional(),\n }),\n ),\n});\n\nconst customToolBridgePayloadSchema = z.record(z.string(), z.unknown());\nconst readableBaseSnapshotSchema = z.looseObject({\n path: z.string(),\n ref: z.enum([\"base\", \"head\"]),\n sourcePath: z.string(),\n rangeId: z.string(),\n startLine: z.number(),\n endLine: z.number(),\n available: z.literal(true),\n relativePath: z.string(),\n bytes: z.number().optional(),\n truncated: z.boolean().optional(),\n});\n\n/** Registers pipr runtime read tools and config-defined custom tools with Pi. */\nexport default function piprRuntimeTools(pi: PiExtensionHost): void {\n const registrations = toolRegistrations();\n if (registrations.length === 0) {\n throw new Error(\"PIPR_RUNTIME_TOOLS_DATA or PIPR_CUSTOM_TOOLS_DATA is required\");\n }\n for (const registration of registrations) {\n registration.register(pi, registration.dataPath);\n }\n}\n\nfunction toolRegistrations(): Array<{\n dataPath: string;\n register(pi: PiExtensionHost, dataPath: string): void;\n}> {\n return compact([\n registration(runtimeDataPath(), registerRuntimeReadTools),\n registration(customToolsDataPath(), registerCustomTools),\n ]);\n}\n\nfunction registration(\n dataPath: string | undefined,\n register: (pi: PiExtensionHost, dataPath: string) => void,\n) {\n return dataPath ? { dataPath, register } : undefined;\n}\n\nfunction registerRuntimeReadTools(pi: PiExtensionHost, dataPath: string): void {\n const dataRoot = path.dirname(dataPath);\n\n pi.registerTool({\n name: \"pipr_read_diff\",\n label: \"Read pipr Diff Manifest\",\n description: \"Read bounded full Diff Manifest data by path and/or range id.\",\n parameters: {\n type: \"object\",\n additionalProperties: false,\n properties: {\n path: { type: \"string\" },\n rangeId: { type: \"string\" },\n },\n },\n async execute(_toolCallId, params) {\n const data = (await Bun.file(dataPath).json()) as RuntimeToolData;\n const result = readDiffFromRuntimeData(data, readDiffParams(params));\n return textResult(result);\n },\n });\n\n pi.registerTool({\n name: \"pipr_read_at_ref\",\n label: \"Read pipr file at ref\",\n description: \"Read bounded file content for a Diff Manifest path at base or head.\",\n parameters: {\n type: \"object\",\n additionalProperties: false,\n required: [\"path\", \"ref\", \"rangeId\"],\n properties: {\n path: { type: \"string\" },\n ref: { type: \"string\", enum: [\"base\", \"head\"] },\n rangeId: { type: \"string\" },\n },\n },\n async execute(_toolCallId, params, _signal, _onUpdate, ctx) {\n const cwd = typeof ctx?.cwd === \"string\" ? ctx.cwd : \"\";\n const data = (await Bun.file(dataPath).json()) as RuntimeToolData;\n const result = await readAtRef(dataRoot, data, readAtRefParams(params), cwd);\n return textResult(result);\n },\n });\n}\n\nfunction registerCustomTools(pi: PiExtensionHost, dataPath: string): void {\n const bridgeUrl = customToolBridgeUrl();\n const bridgeToken = customToolBridgeToken();\n const data = customToolDataSchema.parse(JSON.parse(readFileSync(dataPath, \"utf8\")));\n for (const tool of data.tools) {\n pi.registerTool({\n name: tool.name,\n label: tool.name,\n description: tool.description ?? \"pipr custom config tool.\",\n parameters: {\n type: \"object\",\n additionalProperties: true,\n },\n async execute(_toolCallId, params) {\n const result = await callCustomTool(bridgeUrl, bridgeToken, tool.name, params);\n return textResult(result);\n },\n });\n }\n}\n\nfunction runtimeDataPath(): string | undefined {\n const dataPath = process.env.PIPR_RUNTIME_TOOLS_DATA;\n if (!dataPath) {\n return undefined;\n }\n if (!path.isAbsolute(dataPath)) {\n throw new Error(\"PIPR_RUNTIME_TOOLS_DATA must be an absolute path\");\n }\n return dataPath;\n}\n\nfunction customToolsDataPath(): string | undefined {\n const dataPath = process.env.PIPR_CUSTOM_TOOLS_DATA;\n if (!dataPath) {\n return undefined;\n }\n if (!path.isAbsolute(dataPath)) {\n throw new Error(\"PIPR_CUSTOM_TOOLS_DATA must be an absolute path\");\n }\n return dataPath;\n}\n\nfunction customToolBridgeUrl(): string {\n const value = process.env.PIPR_CUSTOM_TOOLS_BRIDGE_URL;\n if (!value) {\n throw new Error(\"PIPR_CUSTOM_TOOLS_BRIDGE_URL is required for pipr custom tools\");\n }\n return value;\n}\n\nfunction customToolBridgeToken(): string {\n const value = process.env.PIPR_CUSTOM_TOOLS_BRIDGE_TOKEN;\n if (!value) {\n throw new Error(\"PIPR_CUSTOM_TOOLS_BRIDGE_TOKEN is required for pipr custom tools\");\n }\n return value;\n}\n\nasync function callCustomTool(\n bridgeUrl: string,\n bridgeToken: string,\n tool: string,\n params: unknown,\n): Promise<unknown> {\n const response = await fetch(`${bridgeUrl}/call`, {\n method: \"POST\",\n headers: {\n authorization: `Bearer ${bridgeToken}`,\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({ tool, params }),\n });\n const payload = await parseCustomToolBridgePayload(response, tool);\n assertCustomToolBridgeOk(response, payload, tool);\n return Reflect.get(payload, \"result\");\n}\n\nasync function parseCustomToolBridgePayload(\n response: Response,\n tool: string,\n): Promise<Record<string, unknown>> {\n try {\n return customToolBridgePayloadSchema.parse(await response.json());\n } catch {\n throw new Error(`Custom tool '${tool}' returned invalid bridge response`);\n }\n}\n\nfunction assertCustomToolBridgeOk(\n response: Response,\n payload: Record<string, unknown>,\n tool: string,\n): void {\n if (!response.ok || Reflect.get(payload, \"ok\") !== true) {\n const error = Reflect.get(payload, \"error\");\n throw new Error(typeof error === \"string\" ? error : `Custom tool '${tool}' failed`);\n }\n}\n\nfunction textResult(value: unknown): ToolResult {\n return {\n content: [{ type: \"text\", text: JSON.stringify(value, null, 2) }],\n details: value,\n };\n}\n\nasync function readAtRef(\n dataRoot: string,\n data: RuntimeToolData,\n params: ReadAtRefParams,\n cwd: string,\n): Promise<unknown> {\n const request = resolveReadAtRefRequest(data.manifest, params);\n if (!request.window) {\n return unavailableReadAtRefResult(request);\n }\n if (params.ref === \"base\") {\n return await readBaseSnapshot(dataRoot, data.baseRanges[params.rangeId], params, request);\n }\n return await readHeadWorkspaceFile(cwd, data.toolResponseMaxBytes, params, request);\n}\n\nasync function readBaseSnapshot(\n dataRoot: string,\n snapshot: BaseRangeSnapshot | undefined,\n params: ReadAtRefParams,\n request: ReturnType<typeof resolveReadAtRefRequest>,\n): Promise<unknown> {\n const readable = readableBaseSnapshotSchema.safeParse(snapshot);\n if (!readable.success) {\n return snapshot ?? unavailableReadAtRefResult(request);\n }\n const snapshotData = readable.data;\n return {\n path: params.path,\n ref: params.ref,\n sourcePath: request.sourcePath,\n rangeId: params.rangeId,\n startLine: snapshotData.startLine,\n endLine: snapshotData.endLine,\n available: true,\n content: await Bun.file(path.join(dataRoot, snapshotData.relativePath)).text(),\n bytes: snapshotData.bytes,\n truncated: snapshotData.truncated,\n };\n}\n\nasync function readHeadWorkspaceFile(\n cwd: string,\n maxBytes: number,\n params: ReadAtRefParams,\n request: ReturnType<typeof resolveReadAtRefRequest>,\n): Promise<unknown> {\n if (!request.window) {\n return unavailableReadAtRefResult(request);\n }\n const target = resolveAllowedPath(cwd, request.sourcePath);\n await assertNoSymlinkPath(cwd, request.sourcePath);\n return {\n path: params.path,\n ref: params.ref,\n sourcePath: request.sourcePath,\n rangeId: params.rangeId,\n startLine: request.window.startLine,\n endLine: request.window.endLine,\n ...boundedLineSlice(await Bun.file(target).text(), request.window, maxBytes),\n };\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@usepipr/runtime",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Runtime package for pipr pull request review automation",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -26,13 +26,9 @@
|
|
|
26
26
|
"types": "./dist/index.d.mts",
|
|
27
27
|
"default": "./dist/index.mjs"
|
|
28
28
|
},
|
|
29
|
-
"./
|
|
30
|
-
"types": "./dist/
|
|
31
|
-
"default": "./dist/
|
|
32
|
-
},
|
|
33
|
-
"./e2e/pi-contract": {
|
|
34
|
-
"types": "./dist/e2e/pi-contract.d.mts",
|
|
35
|
-
"default": "./dist/e2e/pi-contract.mjs"
|
|
29
|
+
"./internal/testing": {
|
|
30
|
+
"types": "./dist/internal/testing.d.mts",
|
|
31
|
+
"default": "./dist/internal/testing.mjs"
|
|
36
32
|
},
|
|
37
33
|
"./runtime-tools-extension": {
|
|
38
34
|
"types": "./dist/pi/runtime-tools-extension.d.mts",
|
|
@@ -40,7 +36,7 @@
|
|
|
40
36
|
}
|
|
41
37
|
},
|
|
42
38
|
"scripts": {
|
|
43
|
-
"build": "tsdown src/index.ts src/
|
|
39
|
+
"build": "tsdown src/index.ts src/internal/testing.ts src/pi/runtime-tools-extension.ts --dts --format esm --out-dir dist",
|
|
44
40
|
"typecheck": "tsc --noEmit",
|
|
45
41
|
"test": "bun test --timeout 60000",
|
|
46
42
|
"test:config-init": "bun test --timeout 60000 src/config/tests/init.test.ts",
|
|
@@ -53,17 +49,16 @@
|
|
|
53
49
|
},
|
|
54
50
|
"dependencies": {
|
|
55
51
|
"@octokit/rest": "22.0.1",
|
|
56
|
-
"@usepipr/sdk": "0.1.3",
|
|
57
52
|
"@types/bun": "1.3.14",
|
|
58
|
-
"@
|
|
53
|
+
"@usepipr/sdk": "0.2.0",
|
|
59
54
|
"lodash-es": "4.18.1",
|
|
60
55
|
"picomatch": "4.0.4",
|
|
61
|
-
"pino": "10.3.1",
|
|
62
56
|
"typescript": "6.0.3",
|
|
63
57
|
"zod": "4.4.3"
|
|
64
58
|
},
|
|
65
59
|
"devDependencies": {
|
|
66
60
|
"@types/lodash-es": "4.17.12",
|
|
61
|
+
"@types/node": "25.9.3",
|
|
67
62
|
"@types/picomatch": "4.0.3"
|
|
68
63
|
}
|
|
69
64
|
}
|