@blogic-cz/agent-tools 1.8.0 → 1.9.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/config/loader.d.ts.map +1 -1
- package/dist/config/types.d.ts +1 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/credential-guard/index.d.ts.map +1 -1
- package/dist/gh-tool/issue/commands.d.ts +2 -0
- package/dist/gh-tool/issue/commands.d.ts.map +1 -1
- package/dist/gh-tool/issue/core.d.ts +15 -2
- package/dist/gh-tool/issue/core.d.ts.map +1 -1
- package/dist/gh-tool/label.d.ts +20 -0
- package/dist/gh-tool/label.d.ts.map +1 -0
- package/dist/gh-tool/read/classes.d.ts +4 -0
- package/dist/gh-tool/read/classes.d.ts.map +1 -1
- package/dist/gh-tool/read/commits.d.ts +10 -0
- package/dist/gh-tool/read/commits.d.ts.map +1 -0
- package/dist/gh-tool/read/issues.d.ts +14 -2
- package/dist/gh-tool/read/issues.d.ts.map +1 -1
- package/dist/gh-tool/read/keys.d.ts +3 -0
- package/dist/gh-tool/read/keys.d.ts.map +1 -1
- package/dist/gh-tool/read/reads.d.ts +13 -2
- package/dist/gh-tool/read/reads.d.ts.map +1 -1
- package/dist/gh-tool/repo.d.ts +5 -0
- package/dist/gh-tool/repo.d.ts.map +1 -1
- package/package.json +2 -1
- package/schemas/agent-tools.schema.json +5 -0
- package/src/config/loader.ts +1 -0
- package/src/config/types.ts +1 -0
- package/src/credential-guard/index.ts +169 -1
- package/src/gh-tool/issue/commands.ts +11 -1
- package/src/gh-tool/issue/core.ts +4 -1
- package/src/gh-tool/label.ts +57 -0
- package/src/gh-tool/main.ts +19 -2
- package/src/gh-tool/read/classes.ts +1 -0
- package/src/gh-tool/read/commits.ts +28 -0
- package/src/gh-tool/read/issues.ts +21 -4
- package/src/gh-tool/read/keys.ts +2 -0
- package/src/gh-tool/repo.ts +21 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAgB,KAAK,EAAU,MAAM,QAAQ,CAAC;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAgB,KAAK,EAAU,MAAM,QAAQ,CAAC;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAwOlE,wBAAgB,YAAY,CAC1B,MAAM,EAAE,OAAO,EACf,UAAU,GAAE,MAA4B,GACvC,gBAAgB,CAmClB;AAmFD,wBAAsB,UAAU,IAAI,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAcxE;;AAED,qBAAa,aAAc,SAAQ,kBAElC;CAAG;;;;AAEJ,qBAAa,eAAgB,SAAQ,qBAAoC;IACvE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB,CAAC;CAAG;AAEL,eAAO,MAAM,kBAAkB,oDAM9B,CAAC;AAEF,KAAK,eAAe,GAAG,MAAM,IAAI,CAC/B,gBAAgB,EAChB,OAAO,GAAG,eAAe,GAAG,YAAY,GAAG,UAAU,GAAG,eAAe,GAAG,MAAM,CACjF,CAAC;AAEF,wBAAgB,aAAa,CAAC,CAAC,EAC7B,MAAM,EAAE,gBAAgB,GAAG,SAAS,EACpC,OAAO,EAAE,eAAe,EACxB,OAAO,CAAC,EAAE,MAAM,GACf,CAAC,GAAG,SAAS,CAkCf;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,gBAAgB,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAE9F;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,gBAAgB,GAAG,SAAS,EACpC,OAAO,CAAC,EAAE,MAAM,GACf,gBAAgB,GAAG,SAAS,CAc9B;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,gBAAgB,GAAG,SAAS,EACpC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GACrB,MAAM,GAAG,SAAS,CAqBpB"}
|
package/dist/config/types.d.ts
CHANGED
|
@@ -165,6 +165,7 @@ export type CliToolOverride = {
|
|
|
165
165
|
export type CredentialGuardConfig = {
|
|
166
166
|
/** Exact, case-sensitive names approved for static printenv reads. Empty by default. */
|
|
167
167
|
allowedEnvironmentVariables?: string[];
|
|
168
|
+
chainCopyDestinations?: string[];
|
|
168
169
|
additionalBlockedPaths?: string[];
|
|
169
170
|
additionalAllowedPaths?: string[];
|
|
170
171
|
additionalBlockedCliTools?: CliToolOverride[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/credential-guard/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAmB,qBAAqB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/credential-guard/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAmB,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAO5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAM/D,8CAA8C;AAC9C,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,+CAA+C;AAC/C,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B,CAAC;AAQF,+CAA+C;AAC/C,MAAM,MAAM,eAAe,GAAG;IAC5B,uBAAuB,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACxE,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC3E,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7C,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7C,sBAAsB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IACrD,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACjF,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IACjD,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CACxD,CAAC;AAsmHF,6CAA6C;AAC7C,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAErE;AAED,2CAA2C;AAC3C,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAEpE;AAED,2CAA2C;AAC3C,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAEpE;AAMD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE,qBAAqB,GAAG,eAAe,CAwkBrF;AAQD,kEAAkE;AAClE,eAAO,MAAM,uBAAuB,UAxtID,SAAS,UAAU,UAAU,KAAK,IAwtIM,CAAC;AAE5E,oDAAoD;AACpD,eAAO,MAAM,aAAa,YA1tIC,MAAM,KAAK;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IA0tIjB,CAAC;AAExD,yEAAyE;AACzE,eAAO,MAAM,aAAa,aA5tIE,MAAM,KAAK,OA4tIgB,CAAC;AAExD,yDAAyD;AACzD,eAAO,MAAM,aAAa,aA9tIE,MAAM,KAAK,OA8tIgB,CAAC;AAExD,oEAAoE;AACpE,eAAO,MAAM,sBAAsB,YAhuIC,MAAM,KAAK,OAguI0B,CAAC;AAE1E,iDAAiD;AACjD,eAAO,MAAM,iBAAiB,YAluIC,MAAM,KAAK;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAkuIf,CAAC;AAEhE,wDAAwD;AACxD,eAAO,MAAM,kBAAkB,YApuIC,MAAM,KAAK,OAouIsB,CAAC;AAElE,8EAA8E;AAC9E,eAAO,MAAM,kBAAkB,YAtuIC,MAAM,KAAK,MAAM,GAAG,IAsuIa,CAAC"}
|
|
@@ -3,6 +3,8 @@ import { Option } from "effect";
|
|
|
3
3
|
import { GitHubService } from "#gh/read/transport";
|
|
4
4
|
export declare const issueListCommand: Command.Command<"list", {
|
|
5
5
|
readonly format: "json" | "toon";
|
|
6
|
+
readonly includeBody: boolean;
|
|
7
|
+
readonly fresh: boolean;
|
|
6
8
|
readonly labels: Option.Option<string>;
|
|
7
9
|
readonly limit: number;
|
|
8
10
|
readonly repo: Option.Option<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/issue/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAQ,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAC;AAmBxC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAanD,eAAO,MAAM,gBAAgB
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/issue/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAQ,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAC;AAmBxC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAanD,eAAO,MAAM,gBAAgB;;;;;;;;2DAwCwD,CAAC;AAEtF,eAAO,MAAM,gBAAgB;;;;2DAmB5B,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;2DAgCiC,CAAC;AAEnE,eAAO,MAAM,iBAAiB;;;;;;;2DAwCoD,CAAC;AAEnF,eAAO,MAAM,kBAAkB;;;;;;2DAmCyB,CAAC;AAEzD,eAAO,MAAM,kBAAkB;;;;;;;;;2DAiDsB,CAAC;AAEtD,eAAO,MAAM,mBAAmB;;;;;;2DA6B6B,CAAC;AAE9D,eAAO,MAAM,gBAAgB;;;;;;;;;;;2DAiEkD,CAAC"}
|
|
@@ -41,7 +41,20 @@ export declare const listIssues: (opts: {
|
|
|
41
41
|
state: string;
|
|
42
42
|
labels: string | null;
|
|
43
43
|
limit: number;
|
|
44
|
-
|
|
44
|
+
includeBody?: boolean;
|
|
45
|
+
fresh?: boolean;
|
|
46
|
+
}) => Effect.Effect<({
|
|
47
|
+
readonly number: number;
|
|
48
|
+
readonly title: string;
|
|
49
|
+
readonly state: string;
|
|
50
|
+
readonly url: string;
|
|
51
|
+
readonly labels: {
|
|
52
|
+
readonly name: string;
|
|
53
|
+
}[];
|
|
54
|
+
readonly createdAt: string;
|
|
55
|
+
readonly body: string;
|
|
56
|
+
} | {
|
|
57
|
+
readonly body?: string | undefined;
|
|
45
58
|
readonly number: number;
|
|
46
59
|
readonly title: string;
|
|
47
60
|
readonly state: string;
|
|
@@ -50,7 +63,7 @@ export declare const listIssues: (opts: {
|
|
|
50
63
|
readonly name: string;
|
|
51
64
|
}[];
|
|
52
65
|
readonly createdAt: string;
|
|
53
|
-
}[], import("#gh/read/transport").GhError, GitHubService>;
|
|
66
|
+
})[], import("#gh/read/transport").GhError, GitHubService>;
|
|
54
67
|
export declare const viewIssue: (issueNumber: number) => Effect.Effect<Pick<{
|
|
55
68
|
readonly number: number;
|
|
56
69
|
readonly title: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/issue/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAAyB,YAAY,EAAgC,MAAM,WAAW,CAAC;AAGnG,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMnD,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChC,SAAS,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAYF,eAAO,MAAM,UAAU;WACd,MAAM;YACL,MAAM,GAAG,IAAI;WACd,MAAM
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/issue/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAAyB,YAAY,EAAgC,MAAM,WAAW,CAAC;AAGnG,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMnD,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChC,SAAS,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAYF,eAAO,MAAM,UAAU;WACd,MAAM;YACL,MAAM,GAAG,IAAI;WACd,MAAM;kBACC,OAAO;YACb,OAAO;;;;;;;;;;;;;;;;;;;;;0DAIf,CAAC;AAEH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;6JAapB,CAAC;AAEH,eAAO,MAAM,kBAAkB,uLA0B7B,CAAC;AAEH,eAAO,MAAM,UAAU;WACd,MAAM;aACJ,MAAM,GAAG,IAAI;YACd,MAAM;;;;;;;;;;;;;;;;;;6JAgBd,CAAC;AAEH,eAAO,MAAM,WAAW;WACf,MAAM;aACJ,MAAM,GAAG,IAAI;;;;;;;;;;;;;;;;;;6JAgBtB,CAAC;AAEH,eAAO,MAAM,cAAc;WAClB,MAAM;UACP,MAAM;;;;;;;uDAiDZ,CAAC;AAEH,eAAO,MAAM,WAAW;WACf,MAAM;UACP,MAAM;cACF,MAAM,GAAG,IAAI;YACf,MAAM,GAAG,IAAI;;;;;;;;;;;;;;;;;;6JA2BrB,CAAC;AAEH,eAAO,MAAM,SAAS;WACb,MAAM;WACN,MAAM,GAAG,IAAI;UACd,MAAM,GAAG,IAAI;eACR,MAAM,GAAG,IAAI;kBACV,MAAM,GAAG,IAAI;iBACd,MAAM,GAAG,IAAI;oBACV,MAAM,GAAG,IAAI;;;;;;;;;;;;;;;;;;6JA+B7B,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Command } from "effect/cli";
|
|
2
|
+
import { Effect, Option } from "effect";
|
|
3
|
+
import { GitHubService } from "#gh/read/transport";
|
|
4
|
+
export declare const createLabel: (opts: {
|
|
5
|
+
name: string;
|
|
6
|
+
color: string;
|
|
7
|
+
description: string;
|
|
8
|
+
force: boolean;
|
|
9
|
+
}) => Effect.Effect<{
|
|
10
|
+
name: string;
|
|
11
|
+
}, import("#gh/read/transport").GhError, GitHubService>;
|
|
12
|
+
export declare const labelCreateCommand: Command.Command<"create", {
|
|
13
|
+
readonly name: string;
|
|
14
|
+
readonly color: string;
|
|
15
|
+
readonly description: string;
|
|
16
|
+
readonly force: boolean;
|
|
17
|
+
readonly repo: Option.Option<string>;
|
|
18
|
+
readonly format: "json" | "toon";
|
|
19
|
+
}, {}, import("#gh/read/transport").GhError, GitHubService>;
|
|
20
|
+
//# sourceMappingURL=label.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"label.d.ts","sourceRoot":"","sources":["../../src/gh-tool/label.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAQ,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGxC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAKnD,eAAO,MAAM,WAAW;UAChB,MAAM;WACL,MAAM;iBACA,MAAM;WACZ,OAAO;;;uDAed,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;2DA0B6B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classes.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/read/classes.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAClB;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GAC9B;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACzD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC7E;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC;AAErC,eAAO,MAAM,GAAG;;iBACJ,IAAI,EAAE,MAAM;iBAAE,KAAK,EAAE,IAAI;;;iBACpB,IAAI,EAAE,MAAM;iBAAE,KAAK,EAAE,IAAI;;;iBAC9B,IAAI,EAAE,OAAO;iBAAE,KAAK,EAAE,IAAI;iBAAE,QAAQ,EAAE,KAAK;;;iBACzC,IAAI,EAAE,OAAO;iBAAE,KAAK,EAAE,IAAI;iBAAE,QAAQ,EAAE,KAAK;;;iBAC7C,IAAI,EAAE,KAAK;iBAAE,KAAK,EAAE,KAAK;;;iBACrB,IAAI,EAAE,MAAM;iBAAE,KAAK,EAAE,KAAK;;;iBAC3B,IAAI,EAAE,MAAM;iBAAE,KAAK,EAAE,KAAK;;;iBACtB,IAAI,EAAE,OAAO;iBAAE,KAAK,EAAE,IAAI;iBAAE,QAAQ,EAAE,KAAK;;;iBACvC,IAAI,EAAE,KAAK;iBAAE,KAAK,EAAE,KAAK;;;iBACjC,IAAI,EAAE,KAAK;iBAAE,KAAK,EAAE,KAAK;;;iBACzB,IAAI,EAAE,KAAK;iBAAE,KAAK,EAAE,KAAK;;;iBACrB,IAAI,EAAE,MAAM;iBAAE,KAAK,EAAE,KAAK;;;iBAChC,IAAI,EAAE,KAAK;iBAAE,KAAK,EAAE,KAAK;;;iBACzB,IAAI,EAAE,KAAK;iBAAE,KAAK,EAAE,KAAK;;;iBACzB,IAAI,EAAE,KAAK;iBAAE,KAAK,EAAE,KAAK;;;iBACZ,IAAI,EAAE,WAAW;;;iBAC/B,IAAI,EAAE,KAAK;iBAAE,KAAK,EAAE,KAAK;;;iBACzB,IAAI,EAAE,aAAa;;;iBACd,IAAI,EAAE,aAAa;;;iBACnB,IAAI,EAAE,WAAW;;
|
|
1
|
+
{"version":3,"file":"classes.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/read/classes.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAClB;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GAC9B;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACzD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC7E;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC;AAErC,eAAO,MAAM,GAAG;;iBACJ,IAAI,EAAE,MAAM;iBAAE,KAAK,EAAE,IAAI;;;iBACpB,IAAI,EAAE,MAAM;iBAAE,KAAK,EAAE,IAAI;;;iBAC9B,IAAI,EAAE,OAAO;iBAAE,KAAK,EAAE,IAAI;iBAAE,QAAQ,EAAE,KAAK;;;iBACzC,IAAI,EAAE,OAAO;iBAAE,KAAK,EAAE,IAAI;iBAAE,QAAQ,EAAE,KAAK;;;iBAC7C,IAAI,EAAE,KAAK;iBAAE,KAAK,EAAE,KAAK;;;iBACrB,IAAI,EAAE,MAAM;iBAAE,KAAK,EAAE,KAAK;;;iBAC3B,IAAI,EAAE,MAAM;iBAAE,KAAK,EAAE,KAAK;;;iBACtB,IAAI,EAAE,OAAO;iBAAE,KAAK,EAAE,IAAI;iBAAE,QAAQ,EAAE,KAAK;;;iBACvC,IAAI,EAAE,KAAK;iBAAE,KAAK,EAAE,KAAK;;;iBACjC,IAAI,EAAE,KAAK;iBAAE,KAAK,EAAE,KAAK;;;iBACzB,IAAI,EAAE,KAAK;iBAAE,KAAK,EAAE,KAAK;;;iBACrB,IAAI,EAAE,MAAM;iBAAE,KAAK,EAAE,KAAK;;;iBAChC,IAAI,EAAE,KAAK;iBAAE,KAAK,EAAE,KAAK;;;iBACzB,IAAI,EAAE,KAAK;iBAAE,KAAK,EAAE,KAAK;;;iBACzB,IAAI,EAAE,KAAK;iBAAE,KAAK,EAAE,KAAK;;;iBACZ,IAAI,EAAE,WAAW;;;iBAC/B,IAAI,EAAE,KAAK;iBAAE,KAAK,EAAE,KAAK;;;iBACzB,IAAI,EAAE,aAAa;;;iBACd,IAAI,EAAE,aAAa;;;iBACnB,IAAI,EAAE,WAAW;;;iBAChB,IAAI,EAAE,KAAK;iBAAE,KAAK,EAAE,MAAM;;CACD,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import { GitHubService } from "./transport";
|
|
3
|
+
import type { RepoRef } from "./keys";
|
|
4
|
+
export declare const commitAuthor: (repo: RepoRef, sha: string) => Effect.Effect<{
|
|
5
|
+
sha: string;
|
|
6
|
+
author: {
|
|
7
|
+
login: string;
|
|
8
|
+
} | null;
|
|
9
|
+
}, import("./transport").GhError, GitHubService>;
|
|
10
|
+
//# sourceMappingURL=commits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commits.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/read/commits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAI5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAQtC,eAAO,MAAM,YAAY;;;;;gDAavB,CAAC"}
|
|
@@ -24,6 +24,7 @@ export type IssueListFilter = {
|
|
|
24
24
|
state: string;
|
|
25
25
|
labels: string | null;
|
|
26
26
|
limit: number;
|
|
27
|
+
includeBody?: boolean;
|
|
27
28
|
};
|
|
28
29
|
export declare const ISSUE_LIST_FIELDS = "number,title,state,url,labels,createdAt";
|
|
29
30
|
export declare const ISSUE_VIEW_FIELDS = "number,title,state,url,labels,assignees,author,body,createdAt,closedAt";
|
|
@@ -45,7 +46,7 @@ export declare const issueView: (repo: RepoRef, issue: number, consistency?: "ca
|
|
|
45
46
|
readonly body: string;
|
|
46
47
|
readonly closedAt: string | null;
|
|
47
48
|
}, import("#gh/read/transport").GhError, GitHubService>;
|
|
48
|
-
export declare const issueList: (repo: RepoRef, filter: IssueListFilter) => Effect.Effect<{
|
|
49
|
+
export declare const issueList: (repo: RepoRef, filter: IssueListFilter, consistency?: "cached" | "origin" | undefined) => Effect.Effect<({
|
|
49
50
|
readonly number: number;
|
|
50
51
|
readonly title: string;
|
|
51
52
|
readonly state: string;
|
|
@@ -54,7 +55,18 @@ export declare const issueList: (repo: RepoRef, filter: IssueListFilter) => Effe
|
|
|
54
55
|
readonly name: string;
|
|
55
56
|
}[];
|
|
56
57
|
readonly createdAt: string;
|
|
57
|
-
|
|
58
|
+
readonly body: string;
|
|
59
|
+
} | {
|
|
60
|
+
readonly body?: string | undefined;
|
|
61
|
+
readonly number: number;
|
|
62
|
+
readonly title: string;
|
|
63
|
+
readonly state: string;
|
|
64
|
+
readonly url: string;
|
|
65
|
+
readonly labels: {
|
|
66
|
+
readonly name: string;
|
|
67
|
+
}[];
|
|
68
|
+
readonly createdAt: string;
|
|
69
|
+
})[], import("#gh/read/transport").GhError, GitHubService>;
|
|
58
70
|
export declare const issueComments: (repo: RepoRef, issue: number) => Effect.Effect<{
|
|
59
71
|
readonly id: number;
|
|
60
72
|
readonly user: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/read/issues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAKnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/read/issues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAKnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AActC,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;EAMb,CAAC;AAQH,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAC;AAC9C,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AACF,eAAO,MAAM,iBAAiB,4CAA4C,CAAC;AAC3E,eAAO,MAAM,iBAAiB,2EAC4C,CAAC;AAE3E,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;uDAwBpB,CAAC;AAEH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;0DAsCpB,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;yDAYxB,CAAC"}
|
|
@@ -21,6 +21,9 @@ export type ReadKey = {
|
|
|
21
21
|
} | {
|
|
22
22
|
readonly op: "checkSignal";
|
|
23
23
|
readonly sha: string;
|
|
24
|
+
} | {
|
|
25
|
+
readonly op: "commitAuthor";
|
|
26
|
+
readonly sha: string;
|
|
24
27
|
} | {
|
|
25
28
|
readonly op: "prList" | "issueList";
|
|
26
29
|
readonly filter: Readonly<Record<string, string | number | boolean | null>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/read/keys.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/read/keys.ts"],"names":[],"mappings":"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"}
|
|
@@ -186,7 +186,7 @@ export declare const reads: {
|
|
|
186
186
|
readonly body: string;
|
|
187
187
|
readonly closedAt: string | null;
|
|
188
188
|
}, import("#gh/read/transport").GhError, GitHubService>;
|
|
189
|
-
issueList: (repo: RepoRef, filter: import("./issues").IssueListFilter) => Effect.Effect<{
|
|
189
|
+
issueList: (repo: RepoRef, filter: import("./issues").IssueListFilter, consistency?: "cached" | "origin" | undefined) => Effect.Effect<({
|
|
190
190
|
readonly number: number;
|
|
191
191
|
readonly title: string;
|
|
192
192
|
readonly state: string;
|
|
@@ -195,7 +195,18 @@ export declare const reads: {
|
|
|
195
195
|
readonly name: string;
|
|
196
196
|
}[];
|
|
197
197
|
readonly createdAt: string;
|
|
198
|
-
|
|
198
|
+
readonly body: string;
|
|
199
|
+
} | {
|
|
200
|
+
readonly body?: string | undefined;
|
|
201
|
+
readonly number: number;
|
|
202
|
+
readonly title: string;
|
|
203
|
+
readonly state: string;
|
|
204
|
+
readonly url: string;
|
|
205
|
+
readonly labels: {
|
|
206
|
+
readonly name: string;
|
|
207
|
+
}[];
|
|
208
|
+
readonly createdAt: string;
|
|
209
|
+
})[], import("#gh/read/transport").GhError, GitHubService>;
|
|
199
210
|
issueComments: (repo: RepoRef, issue: number) => Effect.Effect<{
|
|
200
211
|
readonly id: number;
|
|
201
212
|
readonly user: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reads.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/read/reads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAShD,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAUjD,MAAM,MAAM,MAAM,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AA+CtE,eAAO,MAAM,WAAW,sGAatB,CAAC;AAgHH,eAAO,MAAM,SAAS,6HAWpB,CAAC;AA+EH,eAAO,MAAM,KAAK
|
|
1
|
+
{"version":3,"file":"reads.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/read/reads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAShD,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAUjD,MAAM,MAAM,MAAM,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AA+CtE,eAAO,MAAM,WAAW,sGAatB,CAAC;AAgHH,eAAO,MAAM,SAAS,6HAWpB,CAAC;AA+EH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsBjB,CAAC"}
|
package/dist/gh-tool/repo.d.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { Command } from "effect/cli";
|
|
2
2
|
import { Option } from "effect";
|
|
3
3
|
import { GitHubService } from "./read/transport";
|
|
4
|
+
export declare const repoCommitAuthorCommand: Command.Command<"commit-author", {
|
|
5
|
+
readonly sha: string;
|
|
6
|
+
readonly repo: Option.Option<string>;
|
|
7
|
+
readonly format: "json" | "toon";
|
|
8
|
+
}, {}, import("./read/transport").GhError, GitHubService>;
|
|
4
9
|
export declare const repoInfoCommand: Command.Command<"info", {
|
|
5
10
|
readonly format: "json" | "toon";
|
|
6
11
|
readonly repo: Option.Option<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repo.d.ts","sourceRoot":"","sources":["../../src/gh-tool/repo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAQ,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIxC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"repo.d.ts","sourceRoot":"","sources":["../../src/gh-tool/repo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAQ,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIxC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAoBjD,eAAO,MAAM,uBAAuB;;;;yDAiB6D,CAAC;AAElG,eAAO,MAAM,eAAe;;;yDAcqE,CAAC;AAElG,eAAO,MAAM,eAAe;;;;;yDAyB3B,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;yDAoB6C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blogic-cz/agent-tools",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.9.0",
|
|
4
4
|
"description": "CLI tools for AI coding agent workflows — GitHub, database, Kubernetes, Azure platform, Azure DevOps, logs, sessions, and audit",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agent",
|
|
@@ -174,6 +174,7 @@
|
|
|
174
174
|
"oxfmt": "0.72.0",
|
|
175
175
|
"oxlint": "1.87.0",
|
|
176
176
|
"typescript": "7.0.2",
|
|
177
|
+
"vite": "8.0.16",
|
|
177
178
|
"vitest": "5.0.4"
|
|
178
179
|
},
|
|
179
180
|
"peerDependencies": {
|
|
@@ -463,6 +463,11 @@
|
|
|
463
463
|
"type": "object",
|
|
464
464
|
"additionalProperties": false,
|
|
465
465
|
"properties": {
|
|
466
|
+
"chainCopyDestinations": {
|
|
467
|
+
"description": "Absolute canonical directories approved for cp destinations in proved command chains. Empty by default. Symlinks and traversal are refused.",
|
|
468
|
+
"type": "array",
|
|
469
|
+
"items": { "type": "string" }
|
|
470
|
+
},
|
|
466
471
|
"allowedEnvironmentVariables": {
|
|
467
472
|
"description": "Exact, case-sensitive environment names approved for static printenv reads. Empty by default.",
|
|
468
473
|
"type": "array",
|
package/src/config/loader.ts
CHANGED
|
@@ -11,6 +11,7 @@ const CliToolOverrideSchema = Schema.Struct({
|
|
|
11
11
|
});
|
|
12
12
|
|
|
13
13
|
const CredentialGuardConfigSchema = Schema.Struct({
|
|
14
|
+
chainCopyDestinations: Schema.optionalKey(Schema.Array(Schema.String)),
|
|
14
15
|
allowedEnvironmentVariables: Schema.optionalKey(Schema.Array(Schema.String)),
|
|
15
16
|
additionalBlockedPaths: Schema.optionalKey(Schema.Array(Schema.String)),
|
|
16
17
|
additionalAllowedPaths: Schema.optionalKey(Schema.Array(Schema.String)),
|
package/src/config/types.ts
CHANGED
|
@@ -187,6 +187,7 @@ export type CliToolOverride = {
|
|
|
187
187
|
export type CredentialGuardConfig = {
|
|
188
188
|
/** Exact, case-sensitive names approved for static printenv reads. Empty by default. */
|
|
189
189
|
allowedEnvironmentVariables?: string[];
|
|
190
|
+
chainCopyDestinations?: string[];
|
|
190
191
|
additionalBlockedPaths?: string[];
|
|
191
192
|
additionalAllowedPaths?: string[];
|
|
192
193
|
additionalBlockedCliTools?: CliToolOverride[];
|
|
@@ -18,6 +18,7 @@ import type { CliToolOverride, CredentialGuardConfig } from "#config/types";
|
|
|
18
18
|
import { redactSensitiveText } from "#shared/content-security";
|
|
19
19
|
import { SECRET_PATTERNS } from "#shared/credential-patterns";
|
|
20
20
|
import { posix } from "node:path";
|
|
21
|
+
import { lstatSync, realpathSync } from "node:fs";
|
|
21
22
|
import { passiveJqProgramIndex } from "./passive-jq";
|
|
22
23
|
|
|
23
24
|
export { findSecretMatches } from "#shared/credential-patterns";
|
|
@@ -2558,6 +2559,131 @@ function hasStaticEnvironmentRead(
|
|
|
2558
2559
|
);
|
|
2559
2560
|
}
|
|
2560
2561
|
|
|
2562
|
+
function commandChainSources(command: string): string[] | undefined {
|
|
2563
|
+
const parts: string[] = [];
|
|
2564
|
+
let start = 0;
|
|
2565
|
+
let quote: "'" | '"' | "`" | undefined;
|
|
2566
|
+
let depth = 0;
|
|
2567
|
+
for (let index = 0; index < command.length; index++) {
|
|
2568
|
+
const char = command[index];
|
|
2569
|
+
if (char === "\\" && quote !== "'") {
|
|
2570
|
+
index++;
|
|
2571
|
+
} else if (quote) {
|
|
2572
|
+
if (char === quote) quote = undefined;
|
|
2573
|
+
} else if (char === "'" || char === '"' || char === "`") {
|
|
2574
|
+
quote = char;
|
|
2575
|
+
} else if (char === "#") {
|
|
2576
|
+
return undefined;
|
|
2577
|
+
} else if (char === "(") {
|
|
2578
|
+
depth++;
|
|
2579
|
+
} else if (char === ")") {
|
|
2580
|
+
if (--depth < 0) return undefined;
|
|
2581
|
+
} else if (!depth && (char === ";" || command.startsWith("&&", index))) {
|
|
2582
|
+
const part = command.slice(start, index).trim();
|
|
2583
|
+
if (!part || parts.length >= 31) return undefined;
|
|
2584
|
+
parts.push(part);
|
|
2585
|
+
if (char === "&") index++;
|
|
2586
|
+
start = index + 1;
|
|
2587
|
+
}
|
|
2588
|
+
}
|
|
2589
|
+
const last = command.slice(start).trim();
|
|
2590
|
+
return !quote && !depth && last && parts.length ? [...parts, last] : undefined;
|
|
2591
|
+
}
|
|
2592
|
+
|
|
2593
|
+
type LiteralChainPart = { source: string; argv: string[]; redirects: boolean };
|
|
2594
|
+
|
|
2595
|
+
function literalCommandChain(command: string): LiteralChainPart[] | undefined {
|
|
2596
|
+
const literal = literalBindingText(command, "", "");
|
|
2597
|
+
if (!literal || /[|&\r\n]/.test(literal.syntax.replaceAll("&&", ""))) return undefined;
|
|
2598
|
+
const boundaries = [...literal.syntax.matchAll(/&&|;/g)];
|
|
2599
|
+
if (!boundaries.length || boundaries.length > 31) return undefined;
|
|
2600
|
+
const parts: LiteralChainPart[] = [];
|
|
2601
|
+
let start = 0;
|
|
2602
|
+
for (const end of [...boundaries.map((match) => match.index), command.length]) {
|
|
2603
|
+
const source = command.slice(start, end).trim();
|
|
2604
|
+
const parsed = parseStaticShellCommands(source);
|
|
2605
|
+
if (
|
|
2606
|
+
!parsed ||
|
|
2607
|
+
typeof parsed === "string" ||
|
|
2608
|
+
parsed.pipelines.length !== 1 ||
|
|
2609
|
+
parsed.pipelines[0]?.length !== 1
|
|
2610
|
+
)
|
|
2611
|
+
return undefined;
|
|
2612
|
+
const argv = unwrapProofCommand(parsed.pipelines[0][0] ?? [], "\0");
|
|
2613
|
+
if (!argv) return undefined;
|
|
2614
|
+
parts.push({ source, argv, redirects: parsed.redirects.length > 0 });
|
|
2615
|
+
start = end + (literal.syntax.startsWith("&&", end) ? 2 : 1);
|
|
2616
|
+
}
|
|
2617
|
+
return parts;
|
|
2618
|
+
}
|
|
2619
|
+
|
|
2620
|
+
function isIndependentHerdrOperation(argv: string[]): boolean {
|
|
2621
|
+
if (isLiteralHerdrPrompt(argv)) return argv.length === 5;
|
|
2622
|
+
if (argv[0] !== "herdr") return false;
|
|
2623
|
+
if (argv[1] === "agent" && argv[2] === "start") {
|
|
2624
|
+
const separator = argv.indexOf("--", 3);
|
|
2625
|
+
const options = argv.slice(3, separator < 0 ? undefined : separator);
|
|
2626
|
+
const kinds = options.filter((arg) => arg === "--kind" || arg.startsWith("--kind="));
|
|
2627
|
+
return (
|
|
2628
|
+
kinds.length === 1 &&
|
|
2629
|
+
kinds[0] === "--kind" &&
|
|
2630
|
+
options[options.indexOf("--kind") + 1] === "codex"
|
|
2631
|
+
);
|
|
2632
|
+
}
|
|
2633
|
+
if (argv[1] !== "pane") return false;
|
|
2634
|
+
if (argv[2] === "run")
|
|
2635
|
+
return argv.length === 5 && argv[4] === "exec bash ~/.codex/codex-clean.sh bash --norc -i";
|
|
2636
|
+
if (argv[2] !== "wait-output" || argv.length < 6) return false;
|
|
2637
|
+
const seen = new Set<string>();
|
|
2638
|
+
for (let index = 4; index < argv.length; index += 2) {
|
|
2639
|
+
const option = argv[index] ?? "";
|
|
2640
|
+
if (seen.has(option)) return false;
|
|
2641
|
+
seen.add(option);
|
|
2642
|
+
if (!["--match", "--regex", "--timeout"].includes(option) || !argv[index + 1]) return false;
|
|
2643
|
+
if (argv[index] === "--timeout" && !/^\d+$/.test(argv[index + 1] ?? "")) return false;
|
|
2644
|
+
}
|
|
2645
|
+
return true;
|
|
2646
|
+
}
|
|
2647
|
+
|
|
2648
|
+
function isIndependentDataCopy(argv: string[], destinations: string[]): boolean {
|
|
2649
|
+
if (!destinations.length || argv[0] !== "cp" || argv.length !== 3) return false;
|
|
2650
|
+
const source = argv[1] ?? "";
|
|
2651
|
+
const target = argv[2] ?? "";
|
|
2652
|
+
const literalPath = (path: string) =>
|
|
2653
|
+
/^\/[A-Za-z0-9_./ -]+$/.test(path) &&
|
|
2654
|
+
!path.split("/").some((part) => part === "." || part === "..");
|
|
2655
|
+
if (!/^(?:~\/)?[A-Za-z0-9_./-]+$/.test(source) || source.startsWith("-") || !literalPath(target))
|
|
2656
|
+
return false;
|
|
2657
|
+
try {
|
|
2658
|
+
const targetPath = target.replace(/\/+$/, "");
|
|
2659
|
+
const targetStat = lstatSync(targetPath, { throwIfNoEntry: false });
|
|
2660
|
+
if (target.endsWith("/") && !targetStat?.isDirectory()) return false;
|
|
2661
|
+
const destination = targetStat?.isDirectory()
|
|
2662
|
+
? posix.join(targetPath, posix.basename(source))
|
|
2663
|
+
: targetPath;
|
|
2664
|
+
for (const directory of destinations) {
|
|
2665
|
+
if (!literalPath(directory)) continue;
|
|
2666
|
+
const root = directory.replace(/\/+$/, "");
|
|
2667
|
+
if (!destination.startsWith(root + "/")) continue;
|
|
2668
|
+
if (!lstatSync(root).isDirectory() || realpathSync(root) !== root) return false;
|
|
2669
|
+
const parts = destination.slice(root.length + 1).split("/");
|
|
2670
|
+
let current = root;
|
|
2671
|
+
for (const [index, part] of parts.entries()) {
|
|
2672
|
+
current += "/" + part;
|
|
2673
|
+
const stat = lstatSync(current, { throwIfNoEntry: false });
|
|
2674
|
+
const last = index === parts.length - 1;
|
|
2675
|
+
if (!stat) return last;
|
|
2676
|
+
if (stat.isSymbolicLink() || (!last && !stat.isDirectory())) return false;
|
|
2677
|
+
if (realpathSync(current) !== current) return false;
|
|
2678
|
+
}
|
|
2679
|
+
return true;
|
|
2680
|
+
}
|
|
2681
|
+
} catch {
|
|
2682
|
+
return false;
|
|
2683
|
+
}
|
|
2684
|
+
return false;
|
|
2685
|
+
}
|
|
2686
|
+
|
|
2561
2687
|
function isLiteralHerdrPrompt(argv: string[]): boolean {
|
|
2562
2688
|
return argv[0] === "herdr" && argv[1] === "agent" && argv[2] === "prompt" && argv.length >= 5;
|
|
2563
2689
|
}
|
|
@@ -3730,6 +3856,31 @@ export function createCredentialGuard(config?: CredentialGuardConfig): Credentia
|
|
|
3730
3856
|
});
|
|
3731
3857
|
if (unterminatedQuote)
|
|
3732
3858
|
return "cannot prove shell syntax: an unterminated quoted argument was found";
|
|
3859
|
+
const chain = literalCommandChain(command);
|
|
3860
|
+
if (chain?.some(({ argv }) => isLiteralHerdrPrompt(argv)) && !isStaticHerdrPrompt(command)) {
|
|
3861
|
+
let copied = false;
|
|
3862
|
+
for (const [index, part] of chain.entries()) {
|
|
3863
|
+
const reason = getDangerousBashReason(part.source, shellDepth);
|
|
3864
|
+
if (reason) return `cannot prove chain part ${index + 1} (${part.source}): ${reason}`;
|
|
3865
|
+
if (
|
|
3866
|
+
!part.redirects &&
|
|
3867
|
+
isIndependentDataCopy(part.argv, config?.chainCopyDestinations ?? []) &&
|
|
3868
|
+
!copied
|
|
3869
|
+
) {
|
|
3870
|
+
copied = true;
|
|
3871
|
+
continue;
|
|
3872
|
+
}
|
|
3873
|
+
if (
|
|
3874
|
+
part.redirects ||
|
|
3875
|
+
!isIndependentHerdrOperation(part.argv) ||
|
|
3876
|
+
(copied && !(isLiteralHerdrPrompt(part.argv) && part.argv.length === 5))
|
|
3877
|
+
)
|
|
3878
|
+
return `cannot prove independent chain part ${index + 1} (${part.source}) under the environment/execution policy`;
|
|
3879
|
+
}
|
|
3880
|
+
if (dangerousBashPatterns.some((pattern) => pattern.test(originalCommand)))
|
|
3881
|
+
return "matches a configured dangerous-command pattern";
|
|
3882
|
+
return null;
|
|
3883
|
+
}
|
|
3733
3884
|
const allowPackageInventory = hasProvedPackageInventoryInvocation(originalCommand);
|
|
3734
3885
|
const promptWords = isStaticHerdrPrompt(command)
|
|
3735
3886
|
? parseStaticShellCommands(command)
|
|
@@ -4140,7 +4291,24 @@ export function createCredentialGuard(config?: CredentialGuardConfig): Credentia
|
|
|
4140
4291
|
if (tool === "bash") {
|
|
4141
4292
|
const command = extractCommand(args);
|
|
4142
4293
|
|
|
4143
|
-
|
|
4294
|
+
let dangerousReason = getDangerousBashReason(command);
|
|
4295
|
+
if (dangerousReason && !dangerousReason.includes("chain part")) {
|
|
4296
|
+
let unproved: string | undefined;
|
|
4297
|
+
for (const [index, source] of (commandChainSources(command) ?? []).entries()) {
|
|
4298
|
+
const reason = getDangerousBashReason(source);
|
|
4299
|
+
const parsed = parseStaticShellCommands(source);
|
|
4300
|
+
const literal = literalBindingText(source, "", "");
|
|
4301
|
+
const words = parsed && typeof parsed !== "string" ? parsed.pipelines[0]?.[0] : undefined;
|
|
4302
|
+
const argv = words ? unwrapProofCommand(words, "\0") : undefined;
|
|
4303
|
+
if (reason) {
|
|
4304
|
+
dangerousReason += `; cannot prove chain part ${index + 1} (${source}): ${reason}`;
|
|
4305
|
+
break;
|
|
4306
|
+
}
|
|
4307
|
+
if (!unproved && (!literal || /[<>]/.test(literal.syntax) || !argv))
|
|
4308
|
+
unproved = `cannot prove chain part ${index + 1} (${source}): independent composition is unproved`;
|
|
4309
|
+
}
|
|
4310
|
+
if (!dangerousReason.includes("chain part") && unproved) dangerousReason += `; ${unproved}`;
|
|
4311
|
+
}
|
|
4144
4312
|
if (dangerousReason) {
|
|
4145
4313
|
throw new Error(
|
|
4146
4314
|
`\u{1F6AB} Command blocked: ${dangerousReason}.\n\n` +
|
|
@@ -35,6 +35,14 @@ export const issueListCommand = Command.make(
|
|
|
35
35
|
"list",
|
|
36
36
|
{
|
|
37
37
|
format: formatOption,
|
|
38
|
+
includeBody: Flag.Boolean("include-body").pipe(
|
|
39
|
+
Flag.withDescription("Include each issue's body in the result"),
|
|
40
|
+
Flag.withDefault(false),
|
|
41
|
+
),
|
|
42
|
+
fresh: Flag.Boolean("fresh").pipe(
|
|
43
|
+
Flag.withDescription("Read from GitHub instead of the shared cache"),
|
|
44
|
+
Flag.withDefault(false),
|
|
45
|
+
),
|
|
38
46
|
labels: Flag.String("labels").pipe(
|
|
39
47
|
Flag.withDescription("Filter by label (comma-separated)"),
|
|
40
48
|
Flag.optional,
|
|
@@ -49,12 +57,14 @@ export const issueListCommand = Command.make(
|
|
|
49
57
|
Flag.withDefault("open"),
|
|
50
58
|
),
|
|
51
59
|
},
|
|
52
|
-
({ format, labels, limit, repo, state }) =>
|
|
60
|
+
({ format, fresh, includeBody, labels, limit, repo, state }) =>
|
|
53
61
|
withRepo(
|
|
54
62
|
repo,
|
|
55
63
|
Effect.gen(function* () {
|
|
56
64
|
const issues = yield* listIssues({
|
|
57
65
|
labels: Option.getOrNull(labels),
|
|
66
|
+
includeBody,
|
|
67
|
+
fresh,
|
|
58
68
|
limit,
|
|
59
69
|
state,
|
|
60
70
|
});
|
|
@@ -52,8 +52,11 @@ export const listIssues = Effect.fn("issue.listIssues")(function* (opts: {
|
|
|
52
52
|
state: string;
|
|
53
53
|
labels: string | null;
|
|
54
54
|
limit: number;
|
|
55
|
+
includeBody?: boolean;
|
|
56
|
+
fresh?: boolean;
|
|
55
57
|
}) {
|
|
56
|
-
|
|
58
|
+
const { fresh, ...filter } = opts;
|
|
59
|
+
return yield* reads.issueList(yield* resolveRepo(null), filter, fresh ? "origin" : "cached");
|
|
57
60
|
});
|
|
58
61
|
|
|
59
62
|
export const viewIssue = Effect.fn("issue.viewIssue")(function* (issueNumber: number) {
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Command, Flag } from "effect/cli";
|
|
2
|
+
import { Effect, Option } from "effect";
|
|
3
|
+
|
|
4
|
+
import { formatOption, logFormatted } from "#shared";
|
|
5
|
+
import { GitHubService } from "#gh/read/transport";
|
|
6
|
+
import { resolveRepo } from "#gh/read/reads";
|
|
7
|
+
import { repoSlug } from "#gh/read/keys";
|
|
8
|
+
import { writes } from "#gh/read/writes";
|
|
9
|
+
|
|
10
|
+
export const createLabel = Effect.fn("label.createLabel")(function* (opts: {
|
|
11
|
+
name: string;
|
|
12
|
+
color: string;
|
|
13
|
+
description: string;
|
|
14
|
+
force: boolean;
|
|
15
|
+
}) {
|
|
16
|
+
const repo = yield* resolveRepo(null);
|
|
17
|
+
const args = [
|
|
18
|
+
"label",
|
|
19
|
+
"create",
|
|
20
|
+
opts.name,
|
|
21
|
+
"--color",
|
|
22
|
+
opts.color,
|
|
23
|
+
"--description",
|
|
24
|
+
opts.description,
|
|
25
|
+
];
|
|
26
|
+
if (opts.force) args.push("--force");
|
|
27
|
+
yield* writes.run(args, [`repo:${repoSlug(repo)}`]);
|
|
28
|
+
return { name: opts.name };
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
export const labelCreateCommand = Command.make(
|
|
32
|
+
"create",
|
|
33
|
+
{
|
|
34
|
+
name: Flag.String("name").pipe(Flag.withDescription("Label name")),
|
|
35
|
+
color: Flag.String("color").pipe(Flag.withDescription("Six-character hexadecimal color")),
|
|
36
|
+
description: Flag.String("description").pipe(Flag.withDefault("")),
|
|
37
|
+
force: Flag.Boolean("force").pipe(
|
|
38
|
+
Flag.withDescription("Update the label if it already exists"),
|
|
39
|
+
Flag.withDefault(false),
|
|
40
|
+
),
|
|
41
|
+
repo: Flag.String("repo").pipe(
|
|
42
|
+
Flag.withDescription("Target repository profile name or owner/name"),
|
|
43
|
+
Flag.optional,
|
|
44
|
+
),
|
|
45
|
+
format: formatOption,
|
|
46
|
+
},
|
|
47
|
+
({ format, repo, ...opts }) =>
|
|
48
|
+
Effect.gen(function* () {
|
|
49
|
+
const gh = yield* GitHubService;
|
|
50
|
+
yield* gh.withRepoTarget(
|
|
51
|
+
Option.getOrNull(repo),
|
|
52
|
+
Effect.gen(function* () {
|
|
53
|
+
yield* logFormatted(yield* createLabel(opts), format);
|
|
54
|
+
}),
|
|
55
|
+
);
|
|
56
|
+
}),
|
|
57
|
+
).pipe(Command.withDescription("Create a repository label"));
|
package/src/gh-tool/main.ts
CHANGED
|
@@ -71,7 +71,13 @@ import {
|
|
|
71
71
|
releaseStatusCommand,
|
|
72
72
|
releaseViewCommand,
|
|
73
73
|
} from "./release";
|
|
74
|
-
import {
|
|
74
|
+
import {
|
|
75
|
+
repoCommitAuthorCommand,
|
|
76
|
+
repoInfoCommand,
|
|
77
|
+
repoListCommand,
|
|
78
|
+
repoSearchCodeCommand,
|
|
79
|
+
} from "./repo";
|
|
80
|
+
import { labelCreateCommand } from "./label";
|
|
75
81
|
import { GitHubService } from "./read/transport";
|
|
76
82
|
import { withReadCache } from "./read";
|
|
77
83
|
import { cacheCommand } from "./read/commands";
|
|
@@ -153,7 +159,17 @@ const branchCommand = Command.make("branch", {}).pipe(
|
|
|
153
159
|
|
|
154
160
|
const repoCommand = Command.make("repo", {}).pipe(
|
|
155
161
|
Command.withDescription("Repository operations"),
|
|
156
|
-
Command.withSubcommands([
|
|
162
|
+
Command.withSubcommands([
|
|
163
|
+
repoInfoCommand,
|
|
164
|
+
repoListCommand,
|
|
165
|
+
repoSearchCodeCommand,
|
|
166
|
+
repoCommitAuthorCommand,
|
|
167
|
+
]),
|
|
168
|
+
);
|
|
169
|
+
|
|
170
|
+
const labelCommand = Command.make("label", {}).pipe(
|
|
171
|
+
Command.withDescription("Repository label operations"),
|
|
172
|
+
Command.withSubcommands([labelCreateCommand]),
|
|
157
173
|
);
|
|
158
174
|
|
|
159
175
|
const workflowCommand = Command.make("workflow", {}).pipe(
|
|
@@ -237,6 +253,7 @@ WORKFLOW FOR AI AGENTS:
|
|
|
237
253
|
prCommand,
|
|
238
254
|
issueCommand,
|
|
239
255
|
repoCommand,
|
|
256
|
+
labelCommand,
|
|
240
257
|
branchCommand,
|
|
241
258
|
workflowCommand,
|
|
242
259
|
releaseCommand,
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Effect, Schema } from "effect";
|
|
2
|
+
|
|
3
|
+
import { GitHubService } from "./transport";
|
|
4
|
+
import { cachedRead } from "./cache";
|
|
5
|
+
import { OPS } from "./classes";
|
|
6
|
+
import { repoSlug } from "./keys";
|
|
7
|
+
import type { RepoRef } from "./keys";
|
|
8
|
+
import { parsePreserving } from "./porcelain";
|
|
9
|
+
|
|
10
|
+
const CommitAuthor = Schema.Struct({
|
|
11
|
+
sha: Schema.String,
|
|
12
|
+
author: Schema.NullOr(Schema.Struct({ login: Schema.String })),
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
export const commitAuthor = Effect.fn("reads.commitAuthor")(function* (repo: RepoRef, sha: string) {
|
|
16
|
+
const gh = yield* GitHubService;
|
|
17
|
+
const decode = parsePreserving(CommitAuthor);
|
|
18
|
+
const value = yield* cachedRead({
|
|
19
|
+
key: { op: "commitAuthor", repo, sha },
|
|
20
|
+
policy: OPS.commitAuthor,
|
|
21
|
+
decode,
|
|
22
|
+
fetch: () =>
|
|
23
|
+
gh
|
|
24
|
+
.runGhJson<unknown>(["api", `repos/${repoSlug(repo)}/commits/${encodeURIComponent(sha)}`])
|
|
25
|
+
.pipe(Effect.map((raw) => ({ kind: "fresh" as const, value: decode(raw) }))),
|
|
26
|
+
});
|
|
27
|
+
return { sha: value.sha, author: value.author === null ? null : { login: value.author.login } };
|
|
28
|
+
});
|
|
@@ -10,6 +10,7 @@ import { parsePreserving } from "./porcelain";
|
|
|
10
10
|
const Label = Schema.Struct({ name: Schema.String });
|
|
11
11
|
const Login = Schema.Struct({ login: Schema.String });
|
|
12
12
|
const IssueListItem = Schema.Struct({
|
|
13
|
+
body: Schema.optional(Schema.String),
|
|
13
14
|
number: Schema.Number,
|
|
14
15
|
title: Schema.String,
|
|
15
16
|
state: Schema.String,
|
|
@@ -32,7 +33,12 @@ const IssueComment = Schema.Struct({
|
|
|
32
33
|
html_url: Schema.String,
|
|
33
34
|
});
|
|
34
35
|
export type IssueView = typeof IssueView.Type;
|
|
35
|
-
export type IssueListFilter = {
|
|
36
|
+
export type IssueListFilter = {
|
|
37
|
+
state: string;
|
|
38
|
+
labels: string | null;
|
|
39
|
+
limit: number;
|
|
40
|
+
includeBody?: boolean;
|
|
41
|
+
};
|
|
36
42
|
export const ISSUE_LIST_FIELDS = "number,title,state,url,labels,createdAt";
|
|
37
43
|
export const ISSUE_VIEW_FIELDS =
|
|
38
44
|
"number,title,state,url,labels,assignees,author,body,createdAt,closedAt";
|
|
@@ -66,6 +72,7 @@ export const issueView = Effect.fn("reads.issueView")(function* (
|
|
|
66
72
|
export const issueList = Effect.fn("reads.issueList")(function* (
|
|
67
73
|
repo: RepoRef,
|
|
68
74
|
filter: IssueListFilter,
|
|
75
|
+
consistency: "cached" | "origin" = "cached",
|
|
69
76
|
) {
|
|
70
77
|
const gh = yield* GitHubService;
|
|
71
78
|
const args = [
|
|
@@ -76,19 +83,29 @@ export const issueList = Effect.fn("reads.issueList")(function* (
|
|
|
76
83
|
"--limit",
|
|
77
84
|
String(filter.limit),
|
|
78
85
|
"--json",
|
|
79
|
-
ISSUE_LIST_FIELDS,
|
|
86
|
+
filter.includeBody ? `${ISSUE_LIST_FIELDS},body` : ISSUE_LIST_FIELDS,
|
|
80
87
|
"--repo",
|
|
81
88
|
repoSlug(repo),
|
|
82
89
|
];
|
|
83
90
|
if (filter.labels !== null) args.push("--label", filter.labels);
|
|
91
|
+
const decode = parsePreserving(
|
|
92
|
+
Schema.mutable(
|
|
93
|
+
Schema.Array(
|
|
94
|
+
filter.includeBody
|
|
95
|
+
? Schema.Struct({ ...IssueListItem.fields, body: Schema.String })
|
|
96
|
+
: IssueListItem,
|
|
97
|
+
),
|
|
98
|
+
),
|
|
99
|
+
);
|
|
84
100
|
return yield* cachedRead({
|
|
85
101
|
key: { op: "issueList", repo, filter },
|
|
86
102
|
policy: OPS.issueList,
|
|
87
|
-
|
|
103
|
+
consistency,
|
|
104
|
+
decode,
|
|
88
105
|
fetch: () =>
|
|
89
106
|
gh
|
|
90
107
|
.runGhJson<Array<typeof IssueListItem.Type>>(args)
|
|
91
|
-
.pipe(Effect.map((value) => ({ kind: "fresh" as const, value }))),
|
|
108
|
+
.pipe(Effect.map((value) => ({ kind: "fresh" as const, value: decode(value) }))),
|
|
92
109
|
});
|
|
93
110
|
});
|
|
94
111
|
|
package/src/gh-tool/read/keys.ts
CHANGED
|
@@ -21,6 +21,7 @@ export type ReadKey = { readonly repo: RepoRef } & (
|
|
|
21
21
|
}
|
|
22
22
|
| { readonly op: "prChecks"; readonly pr: number; readonly headSha: string }
|
|
23
23
|
| { readonly op: "checkSignal"; readonly sha: string }
|
|
24
|
+
| { readonly op: "commitAuthor"; readonly sha: string }
|
|
24
25
|
| {
|
|
25
26
|
readonly op: "prList" | "issueList";
|
|
26
27
|
readonly filter: Readonly<Record<string, string | number | boolean | null>>;
|
|
@@ -93,6 +94,7 @@ export const tagsFor = (key: ReadKey): readonly Tag[] => {
|
|
|
93
94
|
case "jobLog":
|
|
94
95
|
case "annotations":
|
|
95
96
|
case "jobIdentity":
|
|
97
|
+
case "commitAuthor":
|
|
96
98
|
return [fallback];
|
|
97
99
|
default: {
|
|
98
100
|
const exhaustive: never = key;
|
package/src/gh-tool/repo.ts
CHANGED
|
@@ -4,6 +4,8 @@ import { Effect, Option } from "effect";
|
|
|
4
4
|
import { formatOption, logFormatted } from "#shared";
|
|
5
5
|
import { passthrough } from "./read/catalog";
|
|
6
6
|
import { GitHubService } from "./read/transport";
|
|
7
|
+
import { commitAuthor } from "./read/commits";
|
|
8
|
+
import { resolveRepo } from "./read/reads";
|
|
7
9
|
|
|
8
10
|
// ---------------------------------------------------------------------------
|
|
9
11
|
// Types
|
|
@@ -21,6 +23,25 @@ const repoOption = Flag.String("repo").pipe(
|
|
|
21
23
|
Flag.optional,
|
|
22
24
|
);
|
|
23
25
|
|
|
26
|
+
export const repoCommitAuthorCommand = Command.make(
|
|
27
|
+
"commit-author",
|
|
28
|
+
{
|
|
29
|
+
sha: Flag.String("sha").pipe(Flag.withDescription("Commit SHA")),
|
|
30
|
+
repo: repoOption,
|
|
31
|
+
format: formatOption,
|
|
32
|
+
},
|
|
33
|
+
({ sha, repo, format }) =>
|
|
34
|
+
Effect.gen(function* () {
|
|
35
|
+
const gh = yield* GitHubService;
|
|
36
|
+
yield* gh.withRepoTarget(
|
|
37
|
+
Option.getOrNull(repo),
|
|
38
|
+
Effect.gen(function* () {
|
|
39
|
+
yield* logFormatted(yield* commitAuthor(yield* resolveRepo(null), sha), format);
|
|
40
|
+
}),
|
|
41
|
+
);
|
|
42
|
+
}),
|
|
43
|
+
).pipe(Command.withDescription("Look up a commit's GitHub author through the shared read cache"));
|
|
44
|
+
|
|
24
45
|
export const repoInfoCommand = Command.make(
|
|
25
46
|
"info",
|
|
26
47
|
{ format: formatOption, repo: repoOption },
|