@blogic-cz/agent-tools 0.16.0 → 0.17.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.
Files changed (197) hide show
  1. package/dist/audit-tool/index.d.ts +3 -0
  2. package/dist/audit-tool/index.d.ts.map +1 -0
  3. package/dist/az-tool/build.d.ts +47 -0
  4. package/dist/az-tool/build.d.ts.map +1 -0
  5. package/dist/az-tool/config.d.ts +13 -0
  6. package/dist/az-tool/config.d.ts.map +1 -0
  7. package/dist/az-tool/errors.d.ts +43 -0
  8. package/dist/az-tool/errors.d.ts.map +1 -0
  9. package/dist/az-tool/extract-option-value.d.ts +2 -0
  10. package/dist/az-tool/extract-option-value.d.ts.map +1 -0
  11. package/dist/az-tool/index.d.ts +3 -0
  12. package/dist/az-tool/index.d.ts.map +1 -0
  13. package/dist/az-tool/security.d.ts +4 -0
  14. package/dist/az-tool/security.d.ts.map +1 -0
  15. package/dist/az-tool/service.d.ts +15 -0
  16. package/dist/az-tool/service.d.ts.map +1 -0
  17. package/dist/az-tool/transformers.d.ts +10 -0
  18. package/dist/az-tool/transformers.d.ts.map +1 -0
  19. package/dist/az-tool/types.d.ts +64 -0
  20. package/dist/az-tool/types.d.ts.map +1 -0
  21. package/dist/config/index.d.ts +4 -0
  22. package/dist/config/index.d.ts.map +1 -0
  23. package/dist/config/loader.d.ts +22 -0
  24. package/dist/config/loader.d.ts.map +1 -0
  25. package/dist/config/types.d.ts +189 -0
  26. package/dist/config/types.d.ts.map +1 -0
  27. package/dist/credential-guard/claude-hook.d.ts +13 -0
  28. package/dist/credential-guard/claude-hook.d.ts.map +1 -0
  29. package/dist/credential-guard/index.d.ts +77 -0
  30. package/dist/credential-guard/index.d.ts.map +1 -0
  31. package/dist/db-tool/config-service.d.ts +25 -0
  32. package/dist/db-tool/config-service.d.ts.map +1 -0
  33. package/dist/db-tool/errors.d.ts +41 -0
  34. package/dist/db-tool/errors.d.ts.map +1 -0
  35. package/dist/db-tool/index.d.ts +3 -0
  36. package/dist/db-tool/index.d.ts.map +1 -0
  37. package/dist/db-tool/schema.d.ts +21 -0
  38. package/dist/db-tool/schema.d.ts.map +1 -0
  39. package/dist/db-tool/security.d.ts +23 -0
  40. package/dist/db-tool/security.d.ts.map +1 -0
  41. package/dist/db-tool/service.d.ts +18 -0
  42. package/dist/db-tool/service.d.ts.map +1 -0
  43. package/dist/db-tool/sql-client.d.ts +24 -0
  44. package/dist/db-tool/sql-client.d.ts.map +1 -0
  45. package/dist/db-tool/transformers.d.ts +10 -0
  46. package/dist/db-tool/transformers.d.ts.map +1 -0
  47. package/dist/db-tool/types.d.ts +37 -0
  48. package/dist/db-tool/types.d.ts.map +1 -0
  49. package/dist/gh-tool/branch.d.ts +18 -0
  50. package/dist/gh-tool/branch.d.ts.map +1 -0
  51. package/dist/gh-tool/config.d.ts +7 -0
  52. package/dist/gh-tool/config.d.ts.map +1 -0
  53. package/dist/gh-tool/errors.d.ts +51 -0
  54. package/dist/gh-tool/errors.d.ts.map +1 -0
  55. package/dist/gh-tool/index.d.ts +3 -0
  56. package/dist/gh-tool/index.d.ts.map +1 -0
  57. package/dist/gh-tool/issue/commands.d.ts +68 -0
  58. package/dist/gh-tool/issue/commands.d.ts.map +1 -0
  59. package/dist/gh-tool/issue/core.d.ts +82 -0
  60. package/dist/gh-tool/issue/core.d.ts.map +1 -0
  61. package/dist/gh-tool/issue/index.d.ts +3 -0
  62. package/dist/gh-tool/issue/index.d.ts.map +1 -0
  63. package/dist/gh-tool/issue/triage.d.ts +89 -0
  64. package/dist/gh-tool/issue/triage.d.ts.map +1 -0
  65. package/dist/gh-tool/pr/commands.d.ts +384 -0
  66. package/dist/gh-tool/pr/commands.d.ts.map +1 -0
  67. package/dist/gh-tool/pr/core.d.ts +236 -0
  68. package/dist/gh-tool/pr/core.d.ts.map +1 -0
  69. package/dist/gh-tool/pr/helpers.d.ts +27 -0
  70. package/dist/gh-tool/pr/helpers.d.ts.map +1 -0
  71. package/dist/gh-tool/pr/index.d.ts +2 -0
  72. package/dist/gh-tool/pr/index.d.ts.map +1 -0
  73. package/dist/gh-tool/pr/review.d.ts +90 -0
  74. package/dist/gh-tool/pr/review.d.ts.map +1 -0
  75. package/dist/gh-tool/release.d.ts +52 -0
  76. package/dist/gh-tool/release.d.ts.map +1 -0
  77. package/dist/gh-tool/repo.d.ts +21 -0
  78. package/dist/gh-tool/repo.d.ts.map +1 -0
  79. package/dist/gh-tool/service.d.ts +25 -0
  80. package/dist/gh-tool/service.d.ts.map +1 -0
  81. package/dist/gh-tool/text-input.d.ts +22 -0
  82. package/dist/gh-tool/text-input.d.ts.map +1 -0
  83. package/dist/gh-tool/types.d.ts +271 -0
  84. package/dist/gh-tool/types.d.ts.map +1 -0
  85. package/dist/gh-tool/workflow.d.ts +157 -0
  86. package/dist/gh-tool/workflow.d.ts.map +1 -0
  87. package/dist/index.d.ts +4 -0
  88. package/dist/index.d.ts.map +1 -0
  89. package/dist/k8s-tool/errors.d.ts +43 -0
  90. package/dist/k8s-tool/errors.d.ts.map +1 -0
  91. package/dist/k8s-tool/index.d.ts +3 -0
  92. package/dist/k8s-tool/index.d.ts.map +1 -0
  93. package/dist/k8s-tool/profile.d.ts +3 -0
  94. package/dist/k8s-tool/profile.d.ts.map +1 -0
  95. package/dist/k8s-tool/security.d.ts +14 -0
  96. package/dist/k8s-tool/security.d.ts.map +1 -0
  97. package/dist/k8s-tool/service.d.ts +16 -0
  98. package/dist/k8s-tool/service.d.ts.map +1 -0
  99. package/dist/k8s-tool/transformers.d.ts +23 -0
  100. package/dist/k8s-tool/transformers.d.ts.map +1 -0
  101. package/dist/k8s-tool/types.d.ts +13 -0
  102. package/dist/k8s-tool/types.d.ts.map +1 -0
  103. package/dist/logs-tool/errors.d.ts +40 -0
  104. package/dist/logs-tool/errors.d.ts.map +1 -0
  105. package/dist/logs-tool/index.d.ts +21 -0
  106. package/dist/logs-tool/index.d.ts.map +1 -0
  107. package/dist/logs-tool/service.d.ts +23 -0
  108. package/dist/logs-tool/service.d.ts.map +1 -0
  109. package/dist/logs-tool/transformers.d.ts +2 -0
  110. package/dist/logs-tool/transformers.d.ts.map +1 -0
  111. package/dist/logs-tool/types.d.ts +39 -0
  112. package/dist/logs-tool/types.d.ts.map +1 -0
  113. package/dist/observability-tool/errors.d.ts +8 -0
  114. package/dist/observability-tool/errors.d.ts.map +1 -0
  115. package/dist/observability-tool/index.d.ts +3 -0
  116. package/dist/observability-tool/index.d.ts.map +1 -0
  117. package/dist/observability-tool/logs.d.ts +22 -0
  118. package/dist/observability-tool/logs.d.ts.map +1 -0
  119. package/dist/observability-tool/metrics.d.ts +3 -0
  120. package/dist/observability-tool/metrics.d.ts.map +1 -0
  121. package/dist/observability-tool/shared.d.ts +18 -0
  122. package/dist/observability-tool/shared.d.ts.map +1 -0
  123. package/dist/observability-tool/trace.d.ts +3 -0
  124. package/dist/observability-tool/trace.d.ts.map +1 -0
  125. package/dist/observability-tool/types.d.ts +171 -0
  126. package/dist/observability-tool/types.d.ts.map +1 -0
  127. package/dist/session-tool/claude-code.d.ts +46 -0
  128. package/dist/session-tool/claude-code.d.ts.map +1 -0
  129. package/dist/session-tool/codex.d.ts +44 -0
  130. package/dist/session-tool/codex.d.ts.map +1 -0
  131. package/dist/session-tool/config.d.ts +29 -0
  132. package/dist/session-tool/config.d.ts.map +1 -0
  133. package/dist/session-tool/errors.d.ts +27 -0
  134. package/dist/session-tool/errors.d.ts.map +1 -0
  135. package/dist/session-tool/index.d.ts +13 -0
  136. package/dist/session-tool/index.d.ts.map +1 -0
  137. package/dist/session-tool/pi.d.ts +40 -0
  138. package/dist/session-tool/pi.d.ts.map +1 -0
  139. package/dist/session-tool/service.d.ts +18 -0
  140. package/dist/session-tool/service.d.ts.map +1 -0
  141. package/dist/session-tool/summaries.d.ts +5 -0
  142. package/dist/session-tool/summaries.d.ts.map +1 -0
  143. package/dist/session-tool/types.d.ts +38 -0
  144. package/dist/session-tool/types.d.ts.map +1 -0
  145. package/dist/shared/audit.d.ts +40 -0
  146. package/dist/shared/audit.d.ts.map +1 -0
  147. package/dist/shared/binary-preflight.d.ts +27 -0
  148. package/dist/shared/binary-preflight.d.ts.map +1 -0
  149. package/dist/shared/bun.d.ts +5 -0
  150. package/dist/shared/bun.d.ts.map +1 -0
  151. package/dist/shared/cli.d.ts +18 -0
  152. package/dist/shared/cli.d.ts.map +1 -0
  153. package/dist/shared/env-template.d.ts +9 -0
  154. package/dist/shared/env-template.d.ts.map +1 -0
  155. package/dist/shared/error-renderer.d.ts +4 -0
  156. package/dist/shared/error-renderer.d.ts.map +1 -0
  157. package/dist/shared/exec.d.ts +23 -0
  158. package/dist/shared/exec.d.ts.map +1 -0
  159. package/dist/shared/format.d.ts +7 -0
  160. package/dist/shared/format.d.ts.map +1 -0
  161. package/dist/shared/index.d.ts +12 -0
  162. package/dist/shared/index.d.ts.map +1 -0
  163. package/dist/shared/k8s-probe.d.ts +11 -0
  164. package/dist/shared/k8s-probe.d.ts.map +1 -0
  165. package/dist/shared/log-transform.d.ts +2 -0
  166. package/dist/shared/log-transform.d.ts.map +1 -0
  167. package/dist/shared/path.d.ts +2 -0
  168. package/dist/shared/path.d.ts.map +1 -0
  169. package/dist/shared/prerequisites/config.d.ts +6 -0
  170. package/dist/shared/prerequisites/config.d.ts.map +1 -0
  171. package/dist/shared/prerequisites/driver-commands.d.ts +19 -0
  172. package/dist/shared/prerequisites/driver-commands.d.ts.map +1 -0
  173. package/dist/shared/prerequisites/errors.d.ts +10 -0
  174. package/dist/shared/prerequisites/errors.d.ts.map +1 -0
  175. package/dist/shared/prerequisites/guardian-entry.d.ts +2 -0
  176. package/dist/shared/prerequisites/guardian-entry.d.ts.map +1 -0
  177. package/dist/shared/prerequisites/guardian.d.ts +41 -0
  178. package/dist/shared/prerequisites/guardian.d.ts.map +1 -0
  179. package/dist/shared/prerequisites/index.d.ts +6 -0
  180. package/dist/shared/prerequisites/index.d.ts.map +1 -0
  181. package/dist/shared/prerequisites/runtime.d.ts +26 -0
  182. package/dist/shared/prerequisites/runtime.d.ts.map +1 -0
  183. package/dist/shared/prerequisites/store.d.ts +99 -0
  184. package/dist/shared/prerequisites/store.d.ts.map +1 -0
  185. package/dist/shared/prerequisites/types.d.ts +39 -0
  186. package/dist/shared/prerequisites/types.d.ts.map +1 -0
  187. package/dist/shared/prerequisites/vpn.d.ts +5 -0
  188. package/dist/shared/prerequisites/vpn.d.ts.map +1 -0
  189. package/dist/shared/schema-dump.d.ts +27 -0
  190. package/dist/shared/schema-dump.d.ts.map +1 -0
  191. package/dist/shared/throttle.d.ts +17 -0
  192. package/dist/shared/throttle.d.ts.map +1 -0
  193. package/dist/shared/transform.d.ts +49 -0
  194. package/dist/shared/transform.d.ts.map +1 -0
  195. package/dist/shared/types.d.ts +30 -0
  196. package/dist/shared/types.d.ts.map +1 -0
  197. package/package.json +77 -20
@@ -0,0 +1,41 @@
1
+ import { Schema } from "effect";
2
+ declare const DbConnectionError_base: Schema.Class<DbConnectionError, Schema.TaggedStruct<"DbConnectionError", {
3
+ readonly message: Schema.String;
4
+ readonly environment: Schema.String;
5
+ readonly hint: Schema.optionalKey<Schema.String>;
6
+ readonly nextCommand: Schema.optionalKey<Schema.String>;
7
+ readonly retryable: Schema.optionalKey<Schema.Boolean>;
8
+ }>, import("effect/Cause").YieldableError>;
9
+ export declare class DbConnectionError extends DbConnectionError_base {
10
+ }
11
+ declare const DbQueryError_base: Schema.Class<DbQueryError, Schema.TaggedStruct<"DbQueryError", {
12
+ readonly message: Schema.String;
13
+ readonly sql: Schema.String;
14
+ readonly stderr: Schema.optionalKey<Schema.String>;
15
+ readonly hint: Schema.optionalKey<Schema.String>;
16
+ readonly nextCommand: Schema.optionalKey<Schema.String>;
17
+ readonly retryable: Schema.optionalKey<Schema.Boolean>;
18
+ }>, import("effect/Cause").YieldableError>;
19
+ export declare class DbQueryError extends DbQueryError_base {
20
+ }
21
+ declare const DbTunnelError_base: Schema.Class<DbTunnelError, Schema.TaggedStruct<"DbTunnelError", {
22
+ readonly message: Schema.String;
23
+ readonly port: Schema.Number;
24
+ readonly hint: Schema.optionalKey<Schema.String>;
25
+ readonly nextCommand: Schema.optionalKey<Schema.String>;
26
+ readonly retryable: Schema.optionalKey<Schema.Boolean>;
27
+ }>, import("effect/Cause").YieldableError>;
28
+ export declare class DbTunnelError extends DbTunnelError_base {
29
+ }
30
+ declare const DbMutationBlockedError_base: Schema.Class<DbMutationBlockedError, Schema.TaggedStruct<"DbMutationBlockedError", {
31
+ readonly message: Schema.String;
32
+ readonly environment: Schema.String;
33
+ readonly hint: Schema.optionalKey<Schema.String>;
34
+ readonly nextCommand: Schema.optionalKey<Schema.String>;
35
+ readonly retryable: Schema.optionalKey<Schema.Boolean>;
36
+ }>, import("effect/Cause").YieldableError>;
37
+ export declare class DbMutationBlockedError extends DbMutationBlockedError_base {
38
+ }
39
+ export type DbError = DbConnectionError | DbMutationBlockedError | DbQueryError | DbTunnelError;
40
+ export {};
41
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/db-tool/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;;;;;;;;AAEhC,qBAAa,iBAAkB,SAAQ,sBAStC;CAAG;;;;;;;;;AAEJ,qBAAa,YAAa,SAAQ,iBAOhC;CAAG;;;;;;;;AAEL,qBAAa,aAAc,SAAQ,kBAMjC;CAAG;;;;;;;;AAEL,qBAAa,sBAAuB,SAAQ,2BAS3C;CAAG;AAEJ,MAAM,MAAM,OAAO,GAAG,iBAAiB,GAAG,sBAAsB,GAAG,YAAY,GAAG,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env bun
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db-tool/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * SQL queries for schema introspection.
3
+ *
4
+ * NOTE: The `columns` query uses string interpolation for the table name.
5
+ * This is a known limitation — callers must validate the table name
6
+ * via `isValidTableName()` before calling `getColumns()`.
7
+ */
8
+ export declare const SYSTEM_SCHEMAS_SQL = "'pg_catalog', 'information_schema'";
9
+ export declare function parseTableReference(tableName: string): {
10
+ schemaName?: string;
11
+ tableName: string;
12
+ };
13
+ export declare const SCHEMA_QUERIES: {
14
+ tables: string;
15
+ columns: (tableName: string) => string;
16
+ relationships: string;
17
+ };
18
+ export declare function getTableNames(): string;
19
+ export declare function getColumns(tableName: string): string;
20
+ export declare function getRelationships(): string;
21
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db-tool/schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,uCAAuC,CAAC;AAEvE,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAQjG;AAED,eAAO,MAAM,cAAc;;yBAUJ,MAAM;;CAkD5B,CAAC;AAEF,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC"}
@@ -0,0 +1,23 @@
1
+ import type { DbMutationOperation, SchemaErrorInfo } from "./types";
2
+ /**
3
+ * Strip SQL comments (block and line) and empty out every string literal, keeping only
4
+ * double-quoted identifiers verbatim because the mutation-target parser needs them.
5
+ * Single quotes, double-quoted identifiers and dollar-quoted bodies must all be tracked:
6
+ * a quote or comment token surviving inside a region another check reads differently is a
7
+ * guard bypass. `SELECT * FROM "weird--table"; DROP TABLE users` would lose its statement
8
+ * separator to a phantom comment, and `SELECT $$O\'Brien$$ AS n; DROP TABLE users` would
9
+ * leave an unpaired apostrophe that swallows the separator instead.
10
+ */
11
+ export declare function stripSqlComments(sql: string): string;
12
+ /**
13
+ * Postgres runs every statement in a simple-query batch, but MUTATION_PATTERNS only match the
14
+ * first one, so `select 1; delete from x` would otherwise pass the guard as a plain read.
15
+ * Dollar-quoted bodies containing `;` are rejected as well: this fails closed by design.
16
+ */
17
+ export declare function hasMultipleStatements(sql: string): boolean;
18
+ export declare function isMutationQuery(sql: string): boolean;
19
+ export declare function getAllowedMutationOperation(sql: string): DbMutationOperation | undefined;
20
+ export declare function getMutationTarget(sql: string): string | undefined;
21
+ export declare function isValidTableName(tableName: string): boolean;
22
+ export declare function detectSchemaError(stderr: string, sql: string): SchemaErrorInfo;
23
+ //# sourceMappingURL=security.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/db-tool/security.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAwCpE;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAgFpD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CA+B1D;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAGpD;AAED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAGxF;AAcD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAOjE;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,eAAe,CA+B9E"}
@@ -0,0 +1,18 @@
1
+ import { ChildProcessSpawner } from "effect/unstable/process";
2
+ import { Context, Effect, Layer } from "effect";
3
+ import type { DbConfig, DbMutationOperation, QueryResult, SchemaMode } from "./types";
4
+ import { ConfigService } from "#config";
5
+ import { DbConfigService } from "./config-service";
6
+ import { DbSqlClient } from "./sql-client";
7
+ import { type DbError } from "./errors";
8
+ export declare function resolveDbAccessMode(env: string, host: string, hasKubectlConfig: boolean, allowedMutations?: readonly DbMutationOperation[]): Pick<DbConfig, "allowMutations" | "allowedMutations" | "host" | "needsTunnel">;
9
+ export declare function isFullyReadOnly(config: Pick<DbConfig, "allowMutations" | "allowedMutations" | "allowedMutationTargets">): boolean;
10
+ export { buildApiProbeArgs } from "#shared/k8s-probe";
11
+ declare const DbService_base: Context.ServiceClass<DbService, "@agent-tools/DbService", {
12
+ readonly executeQuery: (env: string, sql: string, limit?: number) => Effect.Effect<QueryResult, DbError>;
13
+ readonly executeSchemaQuery: (env: string, mode: SchemaMode, table?: string) => Effect.Effect<QueryResult, DbError>;
14
+ }>;
15
+ export declare class DbService extends DbService_base {
16
+ static readonly layer: Layer.Layer<DbService, never, ConfigService | ChildProcessSpawner.ChildProcessSpawner | DbConfigService | DbSqlClient>;
17
+ }
18
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/db-tool/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAS,OAAO,EAAY,MAAM,EAAE,KAAK,EAAuB,MAAM,QAAQ,CAAC;AAEtF,OAAO,KAAK,EAAE,QAAQ,EAAE,mBAAmB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEtF,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAOxC,OAAO,EAAE,eAAe,EAA4B,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAqB,MAAM,cAAc,CAAC;AAC9D,OAAO,EAKL,KAAK,OAAO,EACb,MAAM,UAAU,CAAC;AAoBlB,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,OAAO,EACzB,gBAAgB,GAAE,SAAS,mBAAmB,EAAO,GACpD,IAAI,CAAC,QAAQ,EAAE,gBAAgB,GAAG,kBAAkB,GAAG,MAAM,GAAG,aAAa,CAAC,CAUhF;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,gBAAgB,GAAG,kBAAkB,GAAG,wBAAwB,CAAC,GACvF,OAAO,CAMT;AAGD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;;2BAK3B,CACrB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,KAAK,CAAC,EAAE,MAAM,KACX,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC;iCACX,CAC3B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,UAAU,EAChB,KAAK,CAAC,EAAE,MAAM,KACX,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC;;AAZ5C,qBAAa,SAAU,SAAQ,cAcF;IAC3B,MAAM,CAAC,QAAQ,CAAC,KAAK,yHA4rBnB;CACH"}
@@ -0,0 +1,24 @@
1
+ import { Context, Effect, Layer } from "effect";
2
+ import { DbQueryError } from "./errors";
3
+ export type DbConnection = {
4
+ readonly host: string;
5
+ readonly port: number;
6
+ readonly user: string;
7
+ readonly database: string;
8
+ readonly password: string;
9
+ readonly readOnly: boolean;
10
+ };
11
+ export type DbQueryOutcome = {
12
+ readonly rows: Record<string, unknown>[];
13
+ readonly rowCount: number;
14
+ readonly command: string;
15
+ };
16
+ export declare const toErrorMessage: (cause: unknown) => string;
17
+ declare const DbSqlClient_base: Context.ServiceClass<DbSqlClient, "@agent-tools/DbSqlClient", {
18
+ readonly run: (connection: DbConnection, sql: string) => Effect.Effect<DbQueryOutcome, DbQueryError>;
19
+ }>;
20
+ export declare class DbSqlClient extends DbSqlClient_base {
21
+ static readonly layer: Layer.Layer<DbSqlClient, never, never>;
22
+ }
23
+ export {};
24
+ //# sourceMappingURL=sql-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql-client.d.ts","sourceRoot":"","sources":["../../src/db-tool/sql-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AAIF,eAAO,MAAM,cAAc,GAAI,OAAO,OAAO,KAAG,MACQ,CAAC;;kBAkDvC,CACZ,UAAU,EAAE,YAAY,EACxB,GAAG,EAAE,MAAM,KACR,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,YAAY,CAAC;;AANpD,qBAAa,WAAY,SAAQ,gBAQF;IAC7B,MAAM,CAAC,QAAQ,CAAC,KAAK,yCAAsD;CAC5E"}
@@ -0,0 +1,10 @@
1
+ export declare const DEFAULT_ROW_LIMIT = 50;
2
+ export declare const MAX_VALUE_LENGTH = 200;
3
+ export type TransformResult = {
4
+ data: Record<string, unknown>[];
5
+ truncated: boolean;
6
+ total: number;
7
+ showing: number;
8
+ };
9
+ export declare function transformQueryResult(data: Record<string, unknown>[], limit?: number): TransformResult;
10
+ //# sourceMappingURL=transformers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformers.d.ts","sourceRoot":"","sources":["../../src/db-tool/transformers.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAcF,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAE/B,KAAK,GAAE,MAA0B,GAChC,eAAe,CAcjB"}
@@ -0,0 +1,37 @@
1
+ import type { DbAllowedMutationTargets, DbMutationOperation, ProfilePrerequisites } from "#config/types";
2
+ import type { Environment, OutputFormat } from "#shared";
3
+ export type { DbMutationOperation };
4
+ export type { Environment, OutputFormat };
5
+ export type SchemaMode = "tables" | "columns" | "full" | "relationships";
6
+ export type DbConfig = ProfilePrerequisites & {
7
+ host: string;
8
+ user: string;
9
+ database: string;
10
+ password?: string;
11
+ passwordEnvVar?: string;
12
+ port: number;
13
+ needsTunnel: boolean;
14
+ allowMutations: boolean;
15
+ allowedMutations: readonly DbMutationOperation[];
16
+ allowedMutationTargets: DbAllowedMutationTargets;
17
+ };
18
+ export type QueryResult = {
19
+ success: boolean;
20
+ data?: Record<string, unknown>[];
21
+ message?: string;
22
+ error?: string;
23
+ rowCount?: number;
24
+ executionTimeMs: number;
25
+ availableTables?: string[];
26
+ availableColumns?: string[];
27
+ hint?: string;
28
+ schemaFile?: string;
29
+ truncated?: boolean;
30
+ total?: number;
31
+ };
32
+ export type SchemaErrorInfo = {
33
+ type: "table_not_found" | "column_not_found" | null;
34
+ missingName: string | null;
35
+ tableName: string | null;
36
+ };
37
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/db-tool/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEzD,YAAY,EAAE,mBAAmB,EAAE,CAAC;AACpC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;AAE1C,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,eAAe,CAAC;AAEzE,MAAM,MAAM,QAAQ,GAAG,oBAAoB,GAAG;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACjD,sBAAsB,EAAE,wBAAwB,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,iBAAiB,GAAG,kBAAkB,GAAG,IAAI,CAAC;IACpD,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { Command } from "effect/unstable/cli";
2
+ import { Effect, Option } from "effect";
3
+ import type { BranchRenameResult } from "./types";
4
+ import { GitHubService } from "./service";
5
+ export declare const renameBranch: (opts: {
6
+ oldName: string;
7
+ newName: string;
8
+ confirm: boolean;
9
+ repo: string | null;
10
+ }) => Effect.Effect<BranchRenameResult, import("./errors").GitHubCommandError | import("./errors").GitHubNotFoundError | import("./errors").GitHubAuthError, GitHubService>;
11
+ export declare const branchRenameCommand: Command.Command<"rename", {
12
+ readonly confirm: boolean;
13
+ readonly format: "json" | "toon";
14
+ readonly newName: string;
15
+ readonly oldName: string;
16
+ readonly repo: Option.Option<string>;
17
+ }, {}, import("./errors").GitHubCommandError | import("./errors").GitHubNotFoundError | import("./errors").GitHubAuthError, GitHubService>;
18
+ //# sourceMappingURL=branch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"branch.d.ts","sourceRoot":"","sources":["../../src/gh-tool/branch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAQ,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGxC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAM1C,eAAO,MAAM,YAAY;aACd,MAAM;aACN,MAAM;aACN,OAAO;UACV,MAAM,GAAG,IAAI;2KAyCnB,CAAC;AAMH,eAAO,MAAM,mBAAmB;;;;;;0IA4B/B,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare const DEFAULT_MERGE_STRATEGY: "squash";
2
+ export declare const DEFAULT_DELETE_BRANCH: true;
3
+ export declare const CI_CHECK_WATCH_TIMEOUT_MS: 600000;
4
+ export declare const GRAPHQL_PAGE_SIZE: 100;
5
+ export declare const GH_BINARY: "gh";
6
+ export declare const MERGE_STRATEGIES: readonly ["squash", "merge", "rebase"];
7
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/gh-tool/config.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,EAAG,QAAiB,CAAC;AACxD,eAAO,MAAM,qBAAqB,EAAG,IAAa,CAAC;AACnD,eAAO,MAAM,yBAAyB,EAAG,MAAgB,CAAC;AAC1D,eAAO,MAAM,iBAAiB,EAAG,GAAY,CAAC;AAC9C,eAAO,MAAM,SAAS,EAAG,IAAa,CAAC;AAEvC,eAAO,MAAM,gBAAgB,wCAAyC,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { Schema } from "effect";
2
+ declare const GitHubCommandError_base: Schema.Class<GitHubCommandError, Schema.TaggedStruct<"GitHubCommandError", {
3
+ readonly message: Schema.String;
4
+ readonly command: Schema.String;
5
+ readonly exitCode: Schema.Number;
6
+ readonly stderr: Schema.String;
7
+ readonly hint: Schema.optionalKey<Schema.String>;
8
+ readonly nextCommand: Schema.optionalKey<Schema.String>;
9
+ readonly retryable: Schema.optionalKey<Schema.Boolean>;
10
+ }>, import("effect/Cause").YieldableError>;
11
+ export declare class GitHubCommandError extends GitHubCommandError_base {
12
+ }
13
+ declare const GitHubNotFoundError_base: Schema.Class<GitHubNotFoundError, Schema.TaggedStruct<"GitHubNotFoundError", {
14
+ readonly message: Schema.String;
15
+ readonly identifier: Schema.String;
16
+ readonly resource: Schema.String;
17
+ readonly hint: Schema.optionalKey<Schema.String>;
18
+ readonly nextCommand: Schema.optionalKey<Schema.String>;
19
+ readonly retryable: Schema.optionalKey<Schema.Boolean>;
20
+ }>, import("effect/Cause").YieldableError>;
21
+ export declare class GitHubNotFoundError extends GitHubNotFoundError_base {
22
+ }
23
+ declare const GitHubAuthError_base: Schema.Class<GitHubAuthError, Schema.TaggedStruct<"GitHubAuthError", {
24
+ readonly message: Schema.String;
25
+ readonly hint: Schema.optionalKey<Schema.String>;
26
+ readonly nextCommand: Schema.optionalKey<Schema.String>;
27
+ readonly retryable: Schema.optionalKey<Schema.Boolean>;
28
+ }>, import("effect/Cause").YieldableError>;
29
+ export declare class GitHubAuthError extends GitHubAuthError_base {
30
+ }
31
+ declare const GitHubMergeError_base: Schema.Class<GitHubMergeError, Schema.TaggedStruct<"GitHubMergeError", {
32
+ readonly message: Schema.String;
33
+ readonly reason: Schema.Literals<readonly ["conflicts", "checks_failing", "branch_protected", "unknown"]>;
34
+ readonly hint: Schema.optionalKey<Schema.String>;
35
+ readonly nextCommand: Schema.optionalKey<Schema.String>;
36
+ readonly retryable: Schema.optionalKey<Schema.Boolean>;
37
+ }>, import("effect/Cause").YieldableError>;
38
+ export declare class GitHubMergeError extends GitHubMergeError_base {
39
+ }
40
+ declare const GitHubTimeoutError_base: Schema.Class<GitHubTimeoutError, Schema.TaggedStruct<"GitHubTimeoutError", {
41
+ readonly message: Schema.String;
42
+ readonly timeoutMs: Schema.Number;
43
+ readonly hint: Schema.optionalKey<Schema.String>;
44
+ readonly nextCommand: Schema.optionalKey<Schema.String>;
45
+ readonly retryable: Schema.optionalKey<Schema.Boolean>;
46
+ }>, import("effect/Cause").YieldableError>;
47
+ export declare class GitHubTimeoutError extends GitHubTimeoutError_base {
48
+ }
49
+ export type GitHubServiceError = GitHubCommandError | GitHubNotFoundError | GitHubAuthError | GitHubMergeError | GitHubTimeoutError;
50
+ export {};
51
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/gh-tool/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;;;;;;;;;;AAEhC,qBAAa,kBAAmB,SAAQ,uBAWvC;CAAG;;;;;;;;;AAEJ,qBAAa,mBAAoB,SAAQ,wBAUxC;CAAG;;;;;;;AAEJ,qBAAa,eAAgB,SAAQ,oBAKnC;CAAG;;;;;;;;AAEL,qBAAa,gBAAiB,SAAQ,qBAMpC;CAAG;;;;;;;;AAEL,qBAAa,kBAAmB,SAAQ,uBASvC;CAAG;AAEJ,MAAM,MAAM,kBAAkB,GAC1B,kBAAkB,GAClB,mBAAmB,GACnB,eAAe,GACf,gBAAgB,GAChB,kBAAkB,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env bun
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/gh-tool/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,68 @@
1
+ import { Command } from "effect/unstable/cli";
2
+ import { Option } from "effect";
3
+ import { GitHubService } from "#gh/service";
4
+ export declare const issueListCommand: Command.Command<"list", {
5
+ readonly format: "json" | "toon";
6
+ readonly labels: Option.Option<string>;
7
+ readonly limit: number;
8
+ readonly repo: Option.Option<string>;
9
+ readonly state: "open" | "closed" | "all";
10
+ }, {}, import("../errors").GitHubCommandError | import("../errors").GitHubNotFoundError | import("../errors").GitHubAuthError, GitHubService>;
11
+ export declare const issueViewCommand: Command.Command<"view", {
12
+ readonly format: "json" | "toon";
13
+ readonly issue: number;
14
+ readonly repo: Option.Option<string>;
15
+ }, {}, import("../errors").GitHubCommandError | import("../errors").GitHubNotFoundError | import("../errors").GitHubAuthError, GitHubService>;
16
+ export declare const issueCommentsCommand: Command.Command<"comments", {
17
+ readonly author: Option.Option<string>;
18
+ readonly bodyContains: Option.Option<string>;
19
+ readonly format: "json" | "toon";
20
+ readonly issue: number;
21
+ readonly repo: Option.Option<string>;
22
+ readonly since: Option.Option<string>;
23
+ }, {}, import("../errors").GitHubCommandError | import("../errors").GitHubNotFoundError | import("../errors").GitHubAuthError, GitHubService>;
24
+ export declare const issueCloseCommand: Command.Command<"close", {
25
+ readonly comment: Option.Option<string>;
26
+ readonly commentFile: Option.Option<string>;
27
+ readonly format: "json" | "toon";
28
+ readonly issue: number;
29
+ readonly repo: Option.Option<string>;
30
+ readonly reason: "completed" | "not planned";
31
+ }, {}, import("../errors").GitHubCommandError | import("../errors").GitHubNotFoundError | import("../errors").GitHubAuthError, GitHubService>;
32
+ export declare const issueReopenCommand: Command.Command<"reopen", {
33
+ readonly comment: Option.Option<string>;
34
+ readonly commentFile: Option.Option<string>;
35
+ readonly format: "json" | "toon";
36
+ readonly issue: number;
37
+ readonly repo: Option.Option<string>;
38
+ }, {}, import("../errors").GitHubCommandError | import("../errors").GitHubNotFoundError | import("../errors").GitHubAuthError, GitHubService>;
39
+ export declare const issueCreateCommand: Command.Command<"create", {
40
+ readonly assignee: Option.Option<string>;
41
+ readonly body: Option.Option<string>;
42
+ readonly bodyFile: Option.Option<string>;
43
+ readonly bodyStdin: boolean;
44
+ readonly format: "json" | "toon";
45
+ readonly labels: Option.Option<string>;
46
+ readonly repo: Option.Option<string>;
47
+ readonly title: string;
48
+ }, {}, import("../errors").GitHubCommandError | import("../errors").GitHubNotFoundError | import("../errors").GitHubAuthError, GitHubService>;
49
+ export declare const issueCommentCommand: Command.Command<"comment", {
50
+ readonly body: Option.Option<string>;
51
+ readonly bodyFile: Option.Option<string>;
52
+ readonly format: "json" | "toon";
53
+ readonly issue: number;
54
+ readonly repo: Option.Option<string>;
55
+ }, {}, import("../errors").GitHubCommandError | import("../errors").GitHubNotFoundError | import("../errors").GitHubAuthError, GitHubService>;
56
+ export declare const issueEditCommand: Command.Command<"edit", {
57
+ readonly addAssignee: Option.Option<string>;
58
+ readonly addLabels: Option.Option<string>;
59
+ readonly body: Option.Option<string>;
60
+ readonly bodyFile: Option.Option<string>;
61
+ readonly format: "json" | "toon";
62
+ readonly issue: number;
63
+ readonly repo: Option.Option<string>;
64
+ readonly removeAssignee: Option.Option<string>;
65
+ readonly removeLabels: Option.Option<string>;
66
+ readonly title: Option.Option<string>;
67
+ }, {}, import("../errors").GitHubCommandError | import("../errors").GitHubNotFoundError | import("../errors").GitHubAuthError, GitHubService>;
68
+ //# sourceMappingURL=commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/issue/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAQ,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAC;AAmBxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAa5C,eAAO,MAAM,gBAAgB;;;;;;6IA8BwD,CAAC;AAEtF,eAAO,MAAM,gBAAgB;;;;6IAmB5B,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;6IAgCiC,CAAC;AAEnE,eAAO,MAAM,iBAAiB;;;;;;;6IAwCoD,CAAC;AAEnF,eAAO,MAAM,kBAAkB;;;;;;6IAmCyB,CAAC;AAEzD,eAAO,MAAM,kBAAkB;;;;;;;;;6IAiDsB,CAAC;AAEtD,eAAO,MAAM,mBAAmB;;;;;;6IA6B6B,CAAC;AAE9D,eAAO,MAAM,gBAAgB;;;;;;;;;;;6IAiEkD,CAAC"}
@@ -0,0 +1,82 @@
1
+ import { Effect } from "effect";
2
+ import type { IssueComment } from "#gh/types";
3
+ import { GitHubCommandError } from "#gh/errors";
4
+ import { GitHubService } from "#gh/service";
5
+ export type IssueInfo = {
6
+ number: number;
7
+ title: string;
8
+ state: string;
9
+ url: string;
10
+ labels: Array<{
11
+ name: string;
12
+ }>;
13
+ assignees: Array<{
14
+ login: string;
15
+ }>;
16
+ author: {
17
+ login: string;
18
+ };
19
+ createdAt: string;
20
+ closedAt: string | null;
21
+ };
22
+ export type IssueListItem = {
23
+ number: number;
24
+ title: string;
25
+ state: string;
26
+ url: string;
27
+ labels: Array<{
28
+ name: string;
29
+ }>;
30
+ createdAt: string;
31
+ };
32
+ export type RawIssueComment = {
33
+ id: number;
34
+ user: {
35
+ login: string;
36
+ };
37
+ body: string;
38
+ created_at: string;
39
+ html_url: string;
40
+ };
41
+ export declare const listIssues: (opts: {
42
+ state: string;
43
+ labels: string | null;
44
+ limit: number;
45
+ }) => Effect.Effect<IssueListItem[], GitHubCommandError | import("#gh/errors").GitHubNotFoundError | import("#gh/errors").GitHubAuthError, GitHubService>;
46
+ export declare const viewIssue: (issueNumber: number) => Effect.Effect<IssueInfo, GitHubCommandError | import("#gh/errors").GitHubNotFoundError | import("#gh/errors").GitHubAuthError, GitHubService>;
47
+ export declare const fetchIssueComments: (issueNumber: number, since: string | null, author: string | null, bodyContains: string | null) => Effect.Effect<IssueComment[], GitHubCommandError | import("#gh/errors").GitHubNotFoundError | import("#gh/errors").GitHubAuthError, GitHubService>;
48
+ export declare const closeIssue: (opts: {
49
+ issue: number;
50
+ comment: string | null;
51
+ reason: string;
52
+ }) => Effect.Effect<IssueInfo, GitHubCommandError | import("#gh/errors").GitHubNotFoundError | import("#gh/errors").GitHubAuthError, GitHubService>;
53
+ export declare const reopenIssue: (opts: {
54
+ issue: number;
55
+ comment: string | null;
56
+ }) => Effect.Effect<IssueInfo, GitHubCommandError | import("#gh/errors").GitHubNotFoundError | import("#gh/errors").GitHubAuthError, GitHubService>;
57
+ export declare const commentOnIssue: (opts: {
58
+ issue: number;
59
+ body: string;
60
+ }) => Effect.Effect<{
61
+ id: number;
62
+ author: string;
63
+ body: string;
64
+ createdAt: string;
65
+ url: string;
66
+ }, GitHubCommandError | import("#gh/errors").GitHubNotFoundError | import("#gh/errors").GitHubAuthError, GitHubService>;
67
+ export declare const createIssue: (opts: {
68
+ title: string;
69
+ body: string;
70
+ assignee: string | null;
71
+ labels: string | null;
72
+ }) => Effect.Effect<IssueInfo, GitHubCommandError | import("#gh/errors").GitHubNotFoundError | import("#gh/errors").GitHubAuthError, GitHubService>;
73
+ export declare const editIssue: (opts: {
74
+ issue: number;
75
+ title: string | null;
76
+ body: string | null;
77
+ addLabels: string | null;
78
+ removeLabels: string | null;
79
+ addAssignee: string | null;
80
+ removeAssignee: string | null;
81
+ }) => Effect.Effect<IssueInfo, GitHubCommandError | import("#gh/errors").GitHubNotFoundError | import("#gh/errors").GitHubAuthError, GitHubService>;
82
+ //# sourceMappingURL=core.d.ts.map
@@ -0,0 +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;AAEnG,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,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;AA0DF,eAAO,MAAM,UAAU;WACd,MAAM;YACL,MAAM,GAAG,IAAI;WACd,MAAM;yJAoBb,CAAC;AAEH,eAAO,MAAM,SAAS,wKAUpB,CAAC;AAEH,eAAO,MAAM,kBAAkB,uPAiC7B,CAAC;AAEH,eAAO,MAAM,UAAU;WACd,MAAM;aACJ,MAAM,GAAG,IAAI;YACd,MAAM;mJAmBd,CAAC;AAEH,eAAO,MAAM,WAAW;WACf,MAAM;aACJ,MAAM,GAAG,IAAI;mJAmBtB,CAAC;AAEH,eAAO,MAAM,cAAc;WAClB,MAAM;UACP,MAAM;;;;;;;uHA4CZ,CAAC;AAEH,eAAO,MAAM,WAAW;WACf,MAAM;UACP,MAAM;cACF,MAAM,GAAG,IAAI;YACf,MAAM,GAAG,IAAI;mJA4BrB,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;mJAkC7B,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { issueCloseCommand, issueCommentCommand, issueCommentsCommand, issueCreateCommand, issueEditCommand, issueListCommand, issueReopenCommand, issueViewCommand, } from "./commands";
2
+ export { issueSnapshotBatchCommand, issueTriageCommand } from "./triage";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/issue/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,89 @@
1
+ import { Command } from "effect/unstable/cli";
2
+ import { Effect, Option, Schema } from "effect";
3
+ import type { CheckResult, IssueComment, PRViewInfo, ReviewThread } from "#gh/types";
4
+ import { GitHubService } from "#gh/service";
5
+ declare const TriageVerbosity: Schema.Literals<readonly ["compact", "full"]>;
6
+ type TriageVerbosity = typeof TriageVerbosity.Type;
7
+ type TriageIssue = {
8
+ number: number;
9
+ title: string;
10
+ state: string;
11
+ url: string;
12
+ labels: string[];
13
+ assignees: string[];
14
+ author: string;
15
+ createdAt: string;
16
+ closedAt: string | null;
17
+ };
18
+ type CompactIssueTriage = {
19
+ issue: TriageIssue;
20
+ body: string;
21
+ commentsCount: number;
22
+ latestComment: IssueComment | null;
23
+ };
24
+ type FullIssueTriage = {
25
+ issue: TriageIssue;
26
+ body: string;
27
+ commentsCount: number;
28
+ comments: IssueComment[];
29
+ };
30
+ type ReviewTriageSnapshot = {
31
+ readonly classification: {
32
+ readonly status: "clear" | "needs_investigation";
33
+ readonly reasons: readonly string[];
34
+ };
35
+ readonly info: PRViewInfo;
36
+ readonly unresolvedThreads: readonly ReviewThread[];
37
+ readonly visibleOpenThreads: readonly ReviewThread[];
38
+ readonly summary: {
39
+ readonly visibleOpenReviewThreadsCount: number;
40
+ readonly unrepliedReviewThreadsCount: number;
41
+ readonly unresolvedReviewThreadsCount: number;
42
+ readonly latestIssueComment: IssueComment | null;
43
+ };
44
+ readonly checks: readonly CheckResult[];
45
+ };
46
+ type IssueSnapshotClassification = {
47
+ readonly status: "clear" | "needs_investigation";
48
+ readonly reasons: readonly string[];
49
+ };
50
+ type IssueSnapshot = {
51
+ readonly issue: TriageIssue;
52
+ readonly body: string;
53
+ readonly commentsCount: number;
54
+ readonly comments: readonly IssueComment[];
55
+ readonly eligible: boolean;
56
+ readonly linkedPullRequestNumbers: readonly number[];
57
+ readonly linkedPullRequests: readonly ReviewTriageSnapshot[];
58
+ readonly classification: IssueSnapshotClassification;
59
+ };
60
+ export declare const fetchIssueTriage: (opts: {
61
+ issue: number;
62
+ verbosity: TriageVerbosity;
63
+ }) => Effect.Effect<CompactIssueTriage | FullIssueTriage, import("../errors").GitHubCommandError | import("../errors").GitHubNotFoundError | import("../errors").GitHubAuthError, GitHubService>;
64
+ export declare const parseIssueNumbers: (input: string) => readonly number[];
65
+ export declare const collectLinkedPullRequestNumbers: (body: string, comments: readonly {
66
+ readonly body: string;
67
+ }[]) => readonly number[];
68
+ export declare const fetchIssueSnapshot: (opts: {
69
+ issue: number;
70
+ owner: string | null;
71
+ }) => Effect.Effect<IssueSnapshot, import("../errors").GitHubCommandError | import("../errors").GitHubNotFoundError | import("../errors").GitHubAuthError, GitHubService>;
72
+ export declare const fetchIssueSnapshotBatch: (opts: {
73
+ issues: readonly number[];
74
+ owner: string | null;
75
+ }) => Effect.Effect<IssueSnapshot[], import("../errors").GitHubCommandError | import("../errors").GitHubNotFoundError | import("../errors").GitHubAuthError, GitHubService>;
76
+ export declare const issueTriageCommand: Command.Command<"triage", {
77
+ readonly format: "json" | "toon";
78
+ readonly issue: number;
79
+ readonly repo: Option.Option<string>;
80
+ readonly verbosity: "full" | "compact";
81
+ }, {}, import("../errors").GitHubCommandError | import("../errors").GitHubNotFoundError | import("../errors").GitHubAuthError, GitHubService>;
82
+ export declare const issueSnapshotBatchCommand: Command.Command<"snapshot-batch", {
83
+ readonly format: "json" | "toon";
84
+ readonly issues: string;
85
+ readonly owner: Option.Option<string>;
86
+ readonly repo: Option.Option<string>;
87
+ }, {}, import("../errors").GitHubCommandError | import("../errors").GitHubNotFoundError | import("../errors").GitHubAuthError, GitHubService>;
88
+ export {};
89
+ //# sourceMappingURL=triage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"triage.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/issue/triage.ts"],"names":[],"mappings":"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"}