@blogic-cz/agent-tools 1.8.0 → 1.10.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 +29 -7
- 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 +23 -5
- 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 +20 -3
- 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 +5 -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 +23 -6
- 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"}
|
|
@@ -26,6 +26,9 @@ export type IssueListItem = {
|
|
|
26
26
|
labels: Array<{
|
|
27
27
|
name: string;
|
|
28
28
|
}>;
|
|
29
|
+
assignees: Array<{
|
|
30
|
+
login: string;
|
|
31
|
+
}>;
|
|
29
32
|
createdAt: string;
|
|
30
33
|
};
|
|
31
34
|
export type RawIssueComment = {
|
|
@@ -41,7 +44,9 @@ export declare const listIssues: (opts: {
|
|
|
41
44
|
state: string;
|
|
42
45
|
labels: string | null;
|
|
43
46
|
limit: number;
|
|
44
|
-
|
|
47
|
+
includeBody?: boolean;
|
|
48
|
+
fresh?: boolean;
|
|
49
|
+
}) => Effect.Effect<({
|
|
45
50
|
readonly number: number;
|
|
46
51
|
readonly title: string;
|
|
47
52
|
readonly state: string;
|
|
@@ -49,9 +54,13 @@ export declare const listIssues: (opts: {
|
|
|
49
54
|
readonly labels: {
|
|
50
55
|
readonly name: string;
|
|
51
56
|
}[];
|
|
57
|
+
readonly assignees: {
|
|
58
|
+
readonly login: string;
|
|
59
|
+
}[];
|
|
52
60
|
readonly createdAt: string;
|
|
53
|
-
|
|
54
|
-
|
|
61
|
+
readonly body: string;
|
|
62
|
+
} | {
|
|
63
|
+
readonly body?: string | undefined;
|
|
55
64
|
readonly number: number;
|
|
56
65
|
readonly title: string;
|
|
57
66
|
readonly state: string;
|
|
@@ -59,10 +68,23 @@ export declare const viewIssue: (issueNumber: number) => Effect.Effect<Pick<{
|
|
|
59
68
|
readonly labels: {
|
|
60
69
|
readonly name: string;
|
|
61
70
|
}[];
|
|
71
|
+
readonly assignees: {
|
|
72
|
+
readonly login: string;
|
|
73
|
+
}[];
|
|
62
74
|
readonly createdAt: string;
|
|
75
|
+
})[], import("#gh/read/transport").GhError, GitHubService>;
|
|
76
|
+
export declare const viewIssue: (issueNumber: number) => Effect.Effect<Pick<{
|
|
77
|
+
readonly number: number;
|
|
78
|
+
readonly title: string;
|
|
79
|
+
readonly state: string;
|
|
80
|
+
readonly url: string;
|
|
81
|
+
readonly labels: {
|
|
82
|
+
readonly name: string;
|
|
83
|
+
}[];
|
|
63
84
|
readonly assignees: {
|
|
64
85
|
readonly login: string;
|
|
65
86
|
}[];
|
|
87
|
+
readonly createdAt: string;
|
|
66
88
|
readonly author: {
|
|
67
89
|
readonly login: string;
|
|
68
90
|
};
|
|
@@ -82,10 +104,10 @@ export declare const closeIssue: (opts: {
|
|
|
82
104
|
readonly labels: {
|
|
83
105
|
readonly name: string;
|
|
84
106
|
}[];
|
|
85
|
-
readonly createdAt: string;
|
|
86
107
|
readonly assignees: {
|
|
87
108
|
readonly login: string;
|
|
88
109
|
}[];
|
|
110
|
+
readonly createdAt: string;
|
|
89
111
|
readonly author: {
|
|
90
112
|
readonly login: string;
|
|
91
113
|
};
|
|
@@ -103,10 +125,10 @@ export declare const reopenIssue: (opts: {
|
|
|
103
125
|
readonly labels: {
|
|
104
126
|
readonly name: string;
|
|
105
127
|
}[];
|
|
106
|
-
readonly createdAt: string;
|
|
107
128
|
readonly assignees: {
|
|
108
129
|
readonly login: string;
|
|
109
130
|
}[];
|
|
131
|
+
readonly createdAt: string;
|
|
110
132
|
readonly author: {
|
|
111
133
|
readonly login: string;
|
|
112
134
|
};
|
|
@@ -136,10 +158,10 @@ export declare const createIssue: (opts: {
|
|
|
136
158
|
readonly labels: {
|
|
137
159
|
readonly name: string;
|
|
138
160
|
}[];
|
|
139
|
-
readonly createdAt: string;
|
|
140
161
|
readonly assignees: {
|
|
141
162
|
readonly login: string;
|
|
142
163
|
}[];
|
|
164
|
+
readonly createdAt: string;
|
|
143
165
|
readonly author: {
|
|
144
166
|
readonly login: string;
|
|
145
167
|
};
|
|
@@ -162,10 +184,10 @@ export declare const editIssue: (opts: {
|
|
|
162
184
|
readonly labels: {
|
|
163
185
|
readonly name: string;
|
|
164
186
|
}[];
|
|
165
|
-
readonly createdAt: string;
|
|
166
187
|
readonly assignees: {
|
|
167
188
|
readonly login: string;
|
|
168
189
|
}[];
|
|
190
|
+
readonly createdAt: string;
|
|
169
191
|
readonly author: {
|
|
170
192
|
readonly login: string;
|
|
171
193
|
};
|
|
@@ -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,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpC,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"}
|
|
@@ -9,10 +9,10 @@ declare const IssueView: Schema.Struct<{
|
|
|
9
9
|
readonly labels: Schema.mutable<Schema.$Array<Schema.Struct<{
|
|
10
10
|
readonly name: Schema.String;
|
|
11
11
|
}>>>;
|
|
12
|
-
readonly createdAt: Schema.String;
|
|
13
12
|
readonly assignees: Schema.mutable<Schema.$Array<Schema.Struct<{
|
|
14
13
|
readonly login: Schema.String;
|
|
15
14
|
}>>>;
|
|
15
|
+
readonly createdAt: Schema.String;
|
|
16
16
|
readonly author: Schema.Struct<{
|
|
17
17
|
readonly login: Schema.String;
|
|
18
18
|
}>;
|
|
@@ -24,8 +24,9 @@ export type IssueListFilter = {
|
|
|
24
24
|
state: string;
|
|
25
25
|
labels: string | null;
|
|
26
26
|
limit: number;
|
|
27
|
+
includeBody?: boolean;
|
|
27
28
|
};
|
|
28
|
-
export declare const ISSUE_LIST_FIELDS = "number,title,state,url,labels,createdAt";
|
|
29
|
+
export declare const ISSUE_LIST_FIELDS = "number,title,state,url,labels,assignees,createdAt";
|
|
29
30
|
export declare const ISSUE_VIEW_FIELDS = "number,title,state,url,labels,assignees,author,body,createdAt,closedAt";
|
|
30
31
|
export declare const issueView: (repo: RepoRef, issue: number, consistency?: "cached" | "origin" | undefined) => Effect.Effect<{
|
|
31
32
|
readonly number: number;
|
|
@@ -35,17 +36,17 @@ export declare const issueView: (repo: RepoRef, issue: number, consistency?: "ca
|
|
|
35
36
|
readonly labels: {
|
|
36
37
|
readonly name: string;
|
|
37
38
|
}[];
|
|
38
|
-
readonly createdAt: string;
|
|
39
39
|
readonly assignees: {
|
|
40
40
|
readonly login: string;
|
|
41
41
|
}[];
|
|
42
|
+
readonly createdAt: string;
|
|
42
43
|
readonly author: {
|
|
43
44
|
readonly login: string;
|
|
44
45
|
};
|
|
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;
|
|
@@ -53,8 +54,25 @@ export declare const issueList: (repo: RepoRef, filter: IssueListFilter) => Effe
|
|
|
53
54
|
readonly labels: {
|
|
54
55
|
readonly name: string;
|
|
55
56
|
}[];
|
|
57
|
+
readonly assignees: {
|
|
58
|
+
readonly login: string;
|
|
59
|
+
}[];
|
|
56
60
|
readonly createdAt: string;
|
|
57
|
-
|
|
61
|
+
readonly body: string;
|
|
62
|
+
} | {
|
|
63
|
+
readonly body?: string | undefined;
|
|
64
|
+
readonly number: number;
|
|
65
|
+
readonly title: string;
|
|
66
|
+
readonly state: string;
|
|
67
|
+
readonly url: string;
|
|
68
|
+
readonly labels: {
|
|
69
|
+
readonly name: string;
|
|
70
|
+
}[];
|
|
71
|
+
readonly assignees: {
|
|
72
|
+
readonly login: string;
|
|
73
|
+
}[];
|
|
74
|
+
readonly createdAt: string;
|
|
75
|
+
})[], import("#gh/read/transport").GhError, GitHubService>;
|
|
58
76
|
export declare const issueComments: (repo: RepoRef, issue: number) => Effect.Effect<{
|
|
59
77
|
readonly id: number;
|
|
60
78
|
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;AAetC,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;EAKb,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,sDAAsD,CAAC;AACrF,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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"}
|
|
@@ -176,17 +176,17 @@ export declare const reads: {
|
|
|
176
176
|
readonly labels: {
|
|
177
177
|
readonly name: string;
|
|
178
178
|
}[];
|
|
179
|
-
readonly createdAt: string;
|
|
180
179
|
readonly assignees: {
|
|
181
180
|
readonly login: string;
|
|
182
181
|
}[];
|
|
182
|
+
readonly createdAt: string;
|
|
183
183
|
readonly author: {
|
|
184
184
|
readonly login: string;
|
|
185
185
|
};
|
|
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;
|
|
@@ -194,8 +194,25 @@ export declare const reads: {
|
|
|
194
194
|
readonly labels: {
|
|
195
195
|
readonly name: string;
|
|
196
196
|
}[];
|
|
197
|
+
readonly assignees: {
|
|
198
|
+
readonly login: string;
|
|
199
|
+
}[];
|
|
197
200
|
readonly createdAt: string;
|
|
198
|
-
|
|
201
|
+
readonly body: string;
|
|
202
|
+
} | {
|
|
203
|
+
readonly body?: string | undefined;
|
|
204
|
+
readonly number: number;
|
|
205
|
+
readonly title: string;
|
|
206
|
+
readonly state: string;
|
|
207
|
+
readonly url: string;
|
|
208
|
+
readonly labels: {
|
|
209
|
+
readonly name: string;
|
|
210
|
+
}[];
|
|
211
|
+
readonly assignees: {
|
|
212
|
+
readonly login: string;
|
|
213
|
+
}[];
|
|
214
|
+
readonly createdAt: string;
|
|
215
|
+
})[], import("#gh/read/transport").GhError, GitHubService>;
|
|
199
216
|
issueComments: (repo: RepoRef, issue: number) => Effect.Effect<{
|
|
200
217
|
readonly id: number;
|
|
201
218
|
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.10.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
|
});
|
|
@@ -27,6 +27,7 @@ export type IssueListItem = {
|
|
|
27
27
|
state: string;
|
|
28
28
|
url: string;
|
|
29
29
|
labels: Array<{ name: string }>;
|
|
30
|
+
assignees: Array<{ login: string }>;
|
|
30
31
|
createdAt: string;
|
|
31
32
|
};
|
|
32
33
|
|
|
@@ -52,8 +53,11 @@ export const listIssues = Effect.fn("issue.listIssues")(function* (opts: {
|
|
|
52
53
|
state: string;
|
|
53
54
|
labels: string | null;
|
|
54
55
|
limit: number;
|
|
56
|
+
includeBody?: boolean;
|
|
57
|
+
fresh?: boolean;
|
|
55
58
|
}) {
|
|
56
|
-
|
|
59
|
+
const { fresh, ...filter } = opts;
|
|
60
|
+
return yield* reads.issueList(yield* resolveRepo(null), filter, fresh ? "origin" : "cached");
|
|
57
61
|
});
|
|
58
62
|
|
|
59
63
|
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,16 +10,17 @@ 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,
|
|
16
17
|
url: Schema.String,
|
|
17
18
|
labels: Schema.mutable(Schema.Array(Label)),
|
|
19
|
+
assignees: Schema.mutable(Schema.Array(Login)),
|
|
18
20
|
createdAt: Schema.String,
|
|
19
21
|
});
|
|
20
22
|
const IssueView = Schema.Struct({
|
|
21
23
|
...IssueListItem.fields,
|
|
22
|
-
assignees: Schema.mutable(Schema.Array(Login)),
|
|
23
24
|
author: Login,
|
|
24
25
|
body: Schema.String,
|
|
25
26
|
closedAt: Schema.NullOr(Schema.String),
|
|
@@ -32,8 +33,13 @@ 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
|
-
|
|
36
|
+
export type IssueListFilter = {
|
|
37
|
+
state: string;
|
|
38
|
+
labels: string | null;
|
|
39
|
+
limit: number;
|
|
40
|
+
includeBody?: boolean;
|
|
41
|
+
};
|
|
42
|
+
export const ISSUE_LIST_FIELDS = "number,title,state,url,labels,assignees,createdAt";
|
|
37
43
|
export const ISSUE_VIEW_FIELDS =
|
|
38
44
|
"number,title,state,url,labels,assignees,author,body,createdAt,closedAt";
|
|
39
45
|
|
|
@@ -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 },
|