@qawolf/api-contracts 0.67.0 → 0.69.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 (51) hide show
  1. package/README.md +0 -2
  2. package/dist/v1/agent/status.js +1 -1
  3. package/dist/v1/agent/status.js.map +1 -1
  4. package/dist/v1/index.d.ts +436 -0
  5. package/dist/v1/index.d.ts.map +1 -1
  6. package/dist/v1/index.js +2 -0
  7. package/dist/v1/index.js.map +1 -1
  8. package/dist/v1/investigation/finding.d.ts +51 -0
  9. package/dist/v1/investigation/finding.d.ts.map +1 -0
  10. package/dist/v1/investigation/finding.js +55 -0
  11. package/dist/v1/investigation/finding.js.map +1 -0
  12. package/dist/v1/investigation/findingInputFields.d.ts +14 -0
  13. package/dist/v1/investigation/findingInputFields.d.ts.map +1 -0
  14. package/dist/v1/investigation/findingInputFields.js +46 -0
  15. package/dist/v1/investigation/findingInputFields.js.map +1 -0
  16. package/dist/v1/investigation/get.d.ts +74 -0
  17. package/dist/v1/investigation/get.d.ts.map +1 -0
  18. package/dist/v1/investigation/get.js +30 -0
  19. package/dist/v1/investigation/get.js.map +1 -0
  20. package/dist/v1/investigation/index.d.ts +219 -0
  21. package/dist/v1/investigation/index.d.ts.map +1 -0
  22. package/dist/v1/investigation/index.js +7 -0
  23. package/dist/v1/investigation/index.js.map +1 -0
  24. package/dist/v1/investigation/recordFinding.d.ts +153 -0
  25. package/dist/v1/investigation/recordFinding.d.ts.map +1 -0
  26. package/dist/v1/investigation/recordFinding.js +112 -0
  27. package/dist/v1/investigation/recordFinding.js.map +1 -0
  28. package/dist/v1/mcpInputSchema.d.ts +6 -0
  29. package/dist/v1/mcpInputSchema.d.ts.map +1 -1
  30. package/dist/v1/mcpInputSchema.js +51 -20
  31. package/dist/v1/mcpInputSchema.js.map +1 -1
  32. package/dist/v1/mcpInputShape.d.ts +13 -0
  33. package/dist/v1/mcpInputShape.d.ts.map +1 -0
  34. package/dist/v1/mcpInputShape.js +31 -0
  35. package/dist/v1/mcpInputShape.js.map +1 -0
  36. package/dist/v1/mcpInputUnion.d.ts +3 -0
  37. package/dist/v1/mcpInputUnion.d.ts.map +1 -0
  38. package/dist/v1/mcpInputUnion.js +83 -0
  39. package/dist/v1/mcpInputUnion.js.map +1 -0
  40. package/dist/v1/mcpToolDescription.d.ts.map +1 -1
  41. package/dist/v1/mcpToolDescription.js +2 -0
  42. package/dist/v1/mcpToolDescription.js.map +1 -1
  43. package/dist/v1/run/get.d.ts +7 -0
  44. package/dist/v1/run/get.d.ts.map +1 -1
  45. package/dist/v1/run/get.js +14 -3
  46. package/dist/v1/run/get.js.map +1 -1
  47. package/dist/v1/run/summary.d.ts +2 -0
  48. package/dist/v1/run/summary.d.ts.map +1 -1
  49. package/dist/v1/run/summary.js +9 -1
  50. package/dist/v1/run/summary.js.map +1 -1
  51. package/package.json +1 -1
@@ -0,0 +1,55 @@
1
+ import { z } from "zod";
2
+ import { issuePrioritySchema } from "../issue/index.js";
3
+ export const investigationFindingStateDescription = 'What the investigation concluded about the cause. Known values: "investigating", "fixed", "fix-proposed", "reported", "report-proposed", "flake", "question" and "dismissed". New values can appear.';
4
+ export const makeInvestigationFindingSchema = (ids) => z.object({
5
+ actual: z.string().optional(),
6
+ commitHash: z.string().optional(),
7
+ decidedBy: z
8
+ .enum(["agent", "user"])
9
+ .optional()
10
+ .describe("Who decided: the AI on its own, or a person who approved or dismissed it. Absent until someone decides."),
11
+ disputeReason: z
12
+ .string()
13
+ .optional()
14
+ .describe("Why a person disputed what the AI did. Present on a proposal the AI made again after that dispute."),
15
+ expected: z.string().optional(),
16
+ findingId: z.string(),
17
+ flowIds: z.array(ids.flow),
18
+ headline: z.string().optional(),
19
+ issueId: ids.issue.optional(),
20
+ kind: z
21
+ .string()
22
+ .describe('What the failure is. Known values: "maintenance", "bug", "flake" and "unknown". New values can appear.'),
23
+ matchReason: z.string().optional(),
24
+ priority: issuePrioritySchema.optional(),
25
+ question: z
26
+ .object({
27
+ answers: z.array(z.object({
28
+ description: z.string().optional(),
29
+ title: z.string(),
30
+ value: z
31
+ .string()
32
+ .describe('What choosing this answer means. Known values: "apply", "dismiss", "report", "maintenance" and "bug". New values can appear.'),
33
+ })),
34
+ text: z.string(),
35
+ })
36
+ .optional()
37
+ .describe("The question waiting for a person, with the answers offered."),
38
+ response: z
39
+ .object({
40
+ answer: z.string().optional(),
41
+ at: z.iso.datetime(),
42
+ reason: z.string().optional(),
43
+ type: z
44
+ .string()
45
+ .describe('Known values: "answer" and "dispute". New values can appear.'),
46
+ })
47
+ .optional()
48
+ .describe("A person's answer or dispute that the investigation hasn't acted on yet."),
49
+ state: z.string().describe(investigationFindingStateDescription),
50
+ steps: z.array(z.string()).optional(),
51
+ subSessionIds: z.array(ids.chatSession),
52
+ summary: z.string().optional(),
53
+ updatedAt: z.iso.datetime(),
54
+ });
55
+ //# sourceMappingURL=finding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finding.js","sourceRoot":"","sources":["../../../src/v1/investigation/finding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,CAAC,MAAM,oCAAoC,GAC/C,sMAAsM,CAAC;AAEzM,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAI5C,GAKD,EAAE,EAAE,CACH,CAAC,CAAC,MAAM,CAAC;IACP,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,SAAS,EAAE,CAAC;SACT,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;SACvB,QAAQ,EAAE;SACV,QAAQ,CACP,yGAAyG,CAC1G;IACH,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,oGAAoG,CACrG;IACH,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;IAC1B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE;IAC7B,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,CACP,wGAAwG,CACzG;IACH,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IACxC,QAAQ,EAAE,CAAC;SACR,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,CAAC,KAAK,CACd,CAAC,CAAC,MAAM,CAAC;YACP,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAClC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;YACjB,KAAK,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,QAAQ,CACP,8HAA8H,CAC/H;SACJ,CAAC,CACH;QACD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;KACjB,CAAC;SACD,QAAQ,EAAE;SACV,QAAQ,CAAC,8DAA8D,CAAC;IAC3E,QAAQ,EAAE,CAAC;SACR,MAAM,CAAC;QACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC7B,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE;QACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC7B,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,QAAQ,CACP,8DAA8D,CAC/D;KACJ,CAAC;SACD,QAAQ,EAAE;SACV,QAAQ,CACP,0EAA0E,CAC3E;IACH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;IAChE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACrC,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;IACvC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE;CAC5B,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { z } from "zod";
2
+ export declare const headline: z.ZodString;
3
+ export declare const summary: z.ZodString;
4
+ export declare const commitHash: z.ZodString;
5
+ export declare const question: z.ZodString;
6
+ export declare const bugReport: {
7
+ actual: z.ZodString;
8
+ expected: z.ZodString;
9
+ steps: z.ZodArray<z.ZodString>;
10
+ };
11
+ export declare const matchReason: z.ZodString;
12
+ export declare const answerTitle: z.ZodString;
13
+ export declare const answerDescription: z.ZodString;
14
+ //# sourceMappingURL=findingInputFields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findingInputFields.d.ts","sourceRoot":"","sources":["../../../src/v1/investigation/findingInputFields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,QAAQ,aAKoB,CAAC;AAE1C,eAAO,MAAM,OAAO,aAOjB,CAAC;AAEJ,eAAO,MAAM,UAAU,aAKpB,CAAC;AAEJ,eAAO,MAAM,QAAQ,aAKqC,CAAC;AAE3D,eAAO,MAAM,SAAS;;;;CAarB,CAAC;AAEF,eAAO,MAAM,WAAW,aAOrB,CAAC;AAEJ,eAAO,MAAM,WAAW,aAAmC,CAAC;AAE5D,eAAO,MAAM,iBAAiB,aAAoC,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { z } from "zod";
2
+ export const headline = z
3
+ .string()
4
+ .trim()
5
+ .min(1)
6
+ .max(200)
7
+ .describe("One line naming the cause.");
8
+ export const summary = z
9
+ .string()
10
+ .trim()
11
+ .min(1)
12
+ .max(2000)
13
+ .describe("What happened and what the AI did about it, in a short paragraph.");
14
+ export const commitHash = z
15
+ .string()
16
+ .regex(/^[0-9a-f]{7,40}$/)
17
+ .describe("The commit with the fix: on the flow code branch once it is fixed, on the sub-session's branch while it is proposed.");
18
+ export const question = z
19
+ .string()
20
+ .trim()
21
+ .min(1)
22
+ .max(300)
23
+ .describe("The question for a person, in one sentence.");
24
+ export const bugReport = {
25
+ actual: z.string().trim().min(1).max(1000).describe("What the app did."),
26
+ expected: z
27
+ .string()
28
+ .trim()
29
+ .min(1)
30
+ .max(1000)
31
+ .describe("What the app should have done."),
32
+ steps: z
33
+ .array(z.string().trim().min(1).max(500))
34
+ .min(1)
35
+ .max(30)
36
+ .describe("The steps that reproduce the bug, in order."),
37
+ };
38
+ export const matchReason = z
39
+ .string()
40
+ .trim()
41
+ .min(1)
42
+ .max(500)
43
+ .describe("Why the flows belong to that already open report. Omit for a new report.");
44
+ export const answerTitle = z.string().trim().min(1).max(80);
45
+ export const answerDescription = z.string().trim().min(1).max(200);
46
+ //# sourceMappingURL=findingInputFields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findingInputFields.js","sourceRoot":"","sources":["../../../src/v1/investigation/findingInputFields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC;KACtB,MAAM,EAAE;KACR,IAAI,EAAE;KACN,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,GAAG,CAAC;KACR,QAAQ,CAAC,4BAA4B,CAAC,CAAC;AAE1C,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC;KACrB,MAAM,EAAE;KACR,IAAI,EAAE;KACN,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,IAAI,CAAC;KACT,QAAQ,CACP,mEAAmE,CACpE,CAAC;AAEJ,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC;KACxB,MAAM,EAAE;KACR,KAAK,CAAC,kBAAkB,CAAC;KACzB,QAAQ,CACP,sHAAsH,CACvH,CAAC;AAEJ,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC;KACtB,MAAM,EAAE;KACR,IAAI,EAAE;KACN,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,GAAG,CAAC;KACR,QAAQ,CAAC,6CAA6C,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IACxE,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,IAAI,CAAC;SACT,QAAQ,CAAC,gCAAgC,CAAC;IAC7C,KAAK,EAAE,CAAC;SACL,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SACxC,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,QAAQ,CAAC,6CAA6C,CAAC;CAC3D,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC;KACzB,MAAM,EAAE;KACR,IAAI,EAAE;KACN,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,GAAG,CAAC;KACR,QAAQ,CACP,0EAA0E,CAC3E,CAAC;AAEJ,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAE5D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC"}
@@ -0,0 +1,74 @@
1
+ import { z } from "zod";
2
+ import type { PublicIdSchema } from "../ids.js";
3
+ export declare const makeGetInvestigationContract: <ChatSessionId extends PublicIdSchema, FlowId extends PublicIdSchema, IssueId extends PublicIdSchema, RunId extends PublicIdSchema>(ids: {
4
+ [key: string]: unknown;
5
+ chatSession: ChatSessionId;
6
+ flow: FlowId;
7
+ issue: IssueId;
8
+ run: RunId;
9
+ }) => {
10
+ readonly annotations: {
11
+ readonly destructiveHint: false;
12
+ readonly openWorldHint: false;
13
+ readonly readOnlyHint: true;
14
+ };
15
+ readonly description: string;
16
+ readonly input: z.ZodObject<{
17
+ runId: RunId;
18
+ }, z.core.$strip>;
19
+ readonly kind: "read";
20
+ readonly name: "investigation.get";
21
+ readonly output: z.ZodObject<{
22
+ findings: z.ZodArray<z.ZodObject<{
23
+ actual: z.ZodOptional<z.ZodString>;
24
+ commitHash: z.ZodOptional<z.ZodString>;
25
+ decidedBy: z.ZodOptional<z.ZodEnum<{
26
+ user: "user";
27
+ agent: "agent";
28
+ }>>;
29
+ disputeReason: z.ZodOptional<z.ZodString>;
30
+ expected: z.ZodOptional<z.ZodString>;
31
+ findingId: z.ZodString;
32
+ flowIds: z.ZodArray<FlowId>;
33
+ headline: z.ZodOptional<z.ZodString>;
34
+ issueId: z.ZodOptional<IssueId>;
35
+ kind: z.ZodString;
36
+ matchReason: z.ZodOptional<z.ZodString>;
37
+ priority: z.ZodOptional<z.ZodEnum<{
38
+ unprioritized: "unprioritized";
39
+ low: "low";
40
+ medium: "medium";
41
+ high: "high";
42
+ urgent: "urgent";
43
+ }>>;
44
+ question: z.ZodOptional<z.ZodObject<{
45
+ answers: z.ZodArray<z.ZodObject<{
46
+ description: z.ZodOptional<z.ZodString>;
47
+ title: z.ZodString;
48
+ value: z.ZodString;
49
+ }, z.core.$strip>>;
50
+ text: z.ZodString;
51
+ }, z.core.$strip>>;
52
+ response: z.ZodOptional<z.ZodObject<{
53
+ answer: z.ZodOptional<z.ZodString>;
54
+ at: z.ZodISODateTime;
55
+ reason: z.ZodOptional<z.ZodString>;
56
+ type: z.ZodString;
57
+ }, z.core.$strip>>;
58
+ state: z.ZodString;
59
+ steps: z.ZodOptional<z.ZodArray<z.ZodString>>;
60
+ subSessionIds: z.ZodArray<ChatSessionId>;
61
+ summary: z.ZodOptional<z.ZodString>;
62
+ updatedAt: z.ZodISODateTime;
63
+ }, z.core.$strip>>;
64
+ runId: RunId;
65
+ sessionId: z.ZodOptional<ChatSessionId>;
66
+ status: z.ZodEnum<{
67
+ investigating: "investigating";
68
+ finished: "finished";
69
+ "not-investigated": "not-investigated";
70
+ }>;
71
+ url: z.ZodURL;
72
+ }, z.core.$strip>;
73
+ };
74
+ //# sourceMappingURL=get.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/v1/investigation/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAKhD,eAAO,MAAM,4BAA4B,GACvC,aAAa,SAAS,cAAc,EACpC,MAAM,SAAS,cAAc,EAC7B,OAAO,SAAS,cAAc,EAC9B,KAAK,SAAS,cAAc,EAC5B,KAAK;IACL,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,WAAW,EAAE,aAAa,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,KAAK,CAAC;CACZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCA,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { z } from "zod";
2
+ import { resource } from "../resource.js";
3
+ import { makeInvestigationFindingSchema } from "./finding.js";
4
+ export const makeGetInvestigationContract = (ids) => {
5
+ const input = z.object({ runId: ids.run });
6
+ const output = resource({
7
+ findings: z.array(makeInvestigationFindingSchema(ids)),
8
+ runId: ids.run,
9
+ sessionId: ids.chatSession
10
+ .optional()
11
+ .describe("The investigation session. Absent when the run has none."),
12
+ status: z
13
+ .enum(["investigating", "finished", "not-investigated"])
14
+ .describe('Whether the investigation session is still working. "not-investigated" when the run has no investigation.'),
15
+ }, { urlFieldDescription: "The run in the QA Wolf app." });
16
+ return {
17
+ annotations: {
18
+ destructiveHint: false,
19
+ openWorldHint: false,
20
+ readOnlyHint: true,
21
+ },
22
+ description: "Read what the QA Wolf AI investigating a run has concluded: one finding per cause of its failures, " +
23
+ "with the question waiting for a person and any answer or dispute the investigation hasn't acted on yet.",
24
+ input,
25
+ kind: "read",
26
+ name: "investigation.get",
27
+ output,
28
+ };
29
+ };
30
+ //# sourceMappingURL=get.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/v1/investigation/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAC;AAE9D,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAK1C,GAMD,EAAE,EAAE;IACH,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;IAE3C,MAAM,MAAM,GAAG,QAAQ,CACrB;QACE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAC;QACtD,KAAK,EAAE,GAAG,CAAC,GAAG;QACd,SAAS,EAAE,GAAG,CAAC,WAAW;aACvB,QAAQ,EAAE;aACV,QAAQ,CAAC,0DAA0D,CAAC;QACvE,MAAM,EAAE,CAAC;aACN,IAAI,CAAC,CAAC,eAAe,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC;aACvD,QAAQ,CACP,2GAA2G,CAC5G;KACJ,EACD,EAAE,mBAAmB,EAAE,6BAA6B,EAAE,CACvD,CAAC;IAEF,OAAO;QACL,WAAW,EAAE;YACX,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,KAAK;YACpB,YAAY,EAAE,IAAI;SACnB;QACD,WAAW,EACT,qGAAqG;YACrG,yGAAyG;QAC3G,KAAK;QACL,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,mBAAmB;QACzB,MAAM;KAMP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,219 @@
1
+ import type { PublicIdSchema } from "../ids.js";
2
+ export declare const makeInvestigationContracts: <ChatSessionId extends PublicIdSchema, FlowId extends PublicIdSchema, IssueId extends PublicIdSchema, RunId extends PublicIdSchema>(ids: {
3
+ [key: string]: unknown;
4
+ chatSession: ChatSessionId;
5
+ flow: FlowId;
6
+ issue: IssueId;
7
+ run: RunId;
8
+ }) => {
9
+ get: {
10
+ readonly annotations: {
11
+ readonly destructiveHint: false;
12
+ readonly openWorldHint: false;
13
+ readonly readOnlyHint: true;
14
+ };
15
+ readonly description: string;
16
+ readonly input: import("zod").ZodObject<{
17
+ runId: RunId;
18
+ }, import("zod/v4/core").$strip>;
19
+ readonly kind: "read";
20
+ readonly name: "investigation.get";
21
+ readonly output: import("zod").ZodObject<{
22
+ findings: import("zod").ZodArray<import("zod").ZodObject<{
23
+ actual: import("zod").ZodOptional<import("zod").ZodString>;
24
+ commitHash: import("zod").ZodOptional<import("zod").ZodString>;
25
+ decidedBy: import("zod").ZodOptional<import("zod").ZodEnum<{
26
+ user: "user";
27
+ agent: "agent";
28
+ }>>;
29
+ disputeReason: import("zod").ZodOptional<import("zod").ZodString>;
30
+ expected: import("zod").ZodOptional<import("zod").ZodString>;
31
+ findingId: import("zod").ZodString;
32
+ flowIds: import("zod").ZodArray<FlowId>;
33
+ headline: import("zod").ZodOptional<import("zod").ZodString>;
34
+ issueId: import("zod").ZodOptional<IssueId>;
35
+ kind: import("zod").ZodString;
36
+ matchReason: import("zod").ZodOptional<import("zod").ZodString>;
37
+ priority: import("zod").ZodOptional<import("zod").ZodEnum<{
38
+ unprioritized: "unprioritized";
39
+ low: "low";
40
+ medium: "medium";
41
+ high: "high";
42
+ urgent: "urgent";
43
+ }>>;
44
+ question: import("zod").ZodOptional<import("zod").ZodObject<{
45
+ answers: import("zod").ZodArray<import("zod").ZodObject<{
46
+ description: import("zod").ZodOptional<import("zod").ZodString>;
47
+ title: import("zod").ZodString;
48
+ value: import("zod").ZodString;
49
+ }, import("zod/v4/core").$strip>>;
50
+ text: import("zod").ZodString;
51
+ }, import("zod/v4/core").$strip>>;
52
+ response: import("zod").ZodOptional<import("zod").ZodObject<{
53
+ answer: import("zod").ZodOptional<import("zod").ZodString>;
54
+ at: import("zod").ZodISODateTime;
55
+ reason: import("zod").ZodOptional<import("zod").ZodString>;
56
+ type: import("zod").ZodString;
57
+ }, import("zod/v4/core").$strip>>;
58
+ state: import("zod").ZodString;
59
+ steps: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
60
+ subSessionIds: import("zod").ZodArray<ChatSessionId>;
61
+ summary: import("zod").ZodOptional<import("zod").ZodString>;
62
+ updatedAt: import("zod").ZodISODateTime;
63
+ }, import("zod/v4/core").$strip>>;
64
+ runId: RunId;
65
+ sessionId: import("zod").ZodOptional<ChatSessionId>;
66
+ status: import("zod").ZodEnum<{
67
+ investigating: "investigating";
68
+ finished: "finished";
69
+ "not-investigated": "not-investigated";
70
+ }>;
71
+ url: import("zod").ZodURL;
72
+ }, import("zod/v4/core").$strip>;
73
+ };
74
+ recordFinding: {
75
+ readonly annotations: {
76
+ readonly destructiveHint: true;
77
+ readonly openWorldHint: false;
78
+ readonly readOnlyHint: false;
79
+ };
80
+ readonly description: string;
81
+ readonly input: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
82
+ headline: import("zod").ZodOptional<import("zod").ZodString>;
83
+ state: import("zod").ZodLiteral<"investigating">;
84
+ summary: import("zod").ZodOptional<import("zod").ZodString>;
85
+ findingId: import("zod").ZodString;
86
+ flowIds: import("zod").ZodArray<FlowId>;
87
+ runId: RunId;
88
+ sessionId: ChatSessionId;
89
+ subSessionIds: import("zod").ZodOptional<import("zod").ZodArray<ChatSessionId>>;
90
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
91
+ commitHash: import("zod").ZodString;
92
+ headline: import("zod").ZodString;
93
+ state: import("zod").ZodLiteral<"fixed">;
94
+ summary: import("zod").ZodString;
95
+ findingId: import("zod").ZodString;
96
+ flowIds: import("zod").ZodArray<FlowId>;
97
+ runId: RunId;
98
+ sessionId: ChatSessionId;
99
+ subSessionIds: import("zod").ZodOptional<import("zod").ZodArray<ChatSessionId>>;
100
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
101
+ commitHash: import("zod").ZodString;
102
+ headline: import("zod").ZodString;
103
+ question: import("zod").ZodOptional<import("zod").ZodString>;
104
+ state: import("zod").ZodLiteral<"fix-proposed">;
105
+ summary: import("zod").ZodString;
106
+ findingId: import("zod").ZodString;
107
+ flowIds: import("zod").ZodArray<FlowId>;
108
+ runId: RunId;
109
+ sessionId: ChatSessionId;
110
+ subSessionIds: import("zod").ZodOptional<import("zod").ZodArray<ChatSessionId>>;
111
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
112
+ headline: import("zod").ZodString;
113
+ issueId: IssueId;
114
+ matchReason: import("zod").ZodOptional<import("zod").ZodString>;
115
+ state: import("zod").ZodLiteral<"reported">;
116
+ summary: import("zod").ZodString;
117
+ actual: import("zod").ZodString;
118
+ expected: import("zod").ZodString;
119
+ steps: import("zod").ZodArray<import("zod").ZodString>;
120
+ findingId: import("zod").ZodString;
121
+ flowIds: import("zod").ZodArray<FlowId>;
122
+ runId: RunId;
123
+ sessionId: ChatSessionId;
124
+ subSessionIds: import("zod").ZodOptional<import("zod").ZodArray<ChatSessionId>>;
125
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
126
+ headline: import("zod").ZodString;
127
+ issueId: import("zod").ZodOptional<IssueId>;
128
+ matchReason: import("zod").ZodOptional<import("zod").ZodString>;
129
+ priority: import("zod").ZodEnum<{
130
+ unprioritized: "unprioritized";
131
+ low: "low";
132
+ medium: "medium";
133
+ high: "high";
134
+ urgent: "urgent";
135
+ }>;
136
+ question: import("zod").ZodOptional<import("zod").ZodString>;
137
+ state: import("zod").ZodLiteral<"report-proposed">;
138
+ summary: import("zod").ZodString;
139
+ actual: import("zod").ZodString;
140
+ expected: import("zod").ZodString;
141
+ steps: import("zod").ZodArray<import("zod").ZodString>;
142
+ findingId: import("zod").ZodString;
143
+ flowIds: import("zod").ZodArray<FlowId>;
144
+ runId: RunId;
145
+ sessionId: ChatSessionId;
146
+ subSessionIds: import("zod").ZodOptional<import("zod").ZodArray<ChatSessionId>>;
147
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
148
+ headline: import("zod").ZodString;
149
+ state: import("zod").ZodLiteral<"flake">;
150
+ summary: import("zod").ZodString;
151
+ findingId: import("zod").ZodString;
152
+ flowIds: import("zod").ZodArray<FlowId>;
153
+ runId: RunId;
154
+ sessionId: ChatSessionId;
155
+ subSessionIds: import("zod").ZodOptional<import("zod").ZodArray<ChatSessionId>>;
156
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
157
+ bugAnswer: import("zod").ZodString;
158
+ bugAnswerDescription: import("zod").ZodOptional<import("zod").ZodString>;
159
+ headline: import("zod").ZodString;
160
+ maintenanceAnswer: import("zod").ZodString;
161
+ maintenanceAnswerDescription: import("zod").ZodOptional<import("zod").ZodString>;
162
+ question: import("zod").ZodString;
163
+ state: import("zod").ZodLiteral<"question">;
164
+ summary: import("zod").ZodString;
165
+ findingId: import("zod").ZodString;
166
+ flowIds: import("zod").ZodArray<FlowId>;
167
+ runId: RunId;
168
+ sessionId: ChatSessionId;
169
+ subSessionIds: import("zod").ZodOptional<import("zod").ZodArray<ChatSessionId>>;
170
+ }, import("zod/v4/core").$strip>], "state">;
171
+ readonly kind: "write";
172
+ readonly name: "investigation.recordFinding";
173
+ readonly output: import("zod").ZodObject<{
174
+ finding: import("zod").ZodObject<{
175
+ actual: import("zod").ZodOptional<import("zod").ZodString>;
176
+ commitHash: import("zod").ZodOptional<import("zod").ZodString>;
177
+ decidedBy: import("zod").ZodOptional<import("zod").ZodEnum<{
178
+ user: "user";
179
+ agent: "agent";
180
+ }>>;
181
+ disputeReason: import("zod").ZodOptional<import("zod").ZodString>;
182
+ expected: import("zod").ZodOptional<import("zod").ZodString>;
183
+ findingId: import("zod").ZodString;
184
+ flowIds: import("zod").ZodArray<FlowId>;
185
+ headline: import("zod").ZodOptional<import("zod").ZodString>;
186
+ issueId: import("zod").ZodOptional<IssueId>;
187
+ kind: import("zod").ZodString;
188
+ matchReason: import("zod").ZodOptional<import("zod").ZodString>;
189
+ priority: import("zod").ZodOptional<import("zod").ZodEnum<{
190
+ unprioritized: "unprioritized";
191
+ low: "low";
192
+ medium: "medium";
193
+ high: "high";
194
+ urgent: "urgent";
195
+ }>>;
196
+ question: import("zod").ZodOptional<import("zod").ZodObject<{
197
+ answers: import("zod").ZodArray<import("zod").ZodObject<{
198
+ description: import("zod").ZodOptional<import("zod").ZodString>;
199
+ title: import("zod").ZodString;
200
+ value: import("zod").ZodString;
201
+ }, import("zod/v4/core").$strip>>;
202
+ text: import("zod").ZodString;
203
+ }, import("zod/v4/core").$strip>>;
204
+ response: import("zod").ZodOptional<import("zod").ZodObject<{
205
+ answer: import("zod").ZodOptional<import("zod").ZodString>;
206
+ at: import("zod").ZodISODateTime;
207
+ reason: import("zod").ZodOptional<import("zod").ZodString>;
208
+ type: import("zod").ZodString;
209
+ }, import("zod/v4/core").$strip>>;
210
+ state: import("zod").ZodString;
211
+ steps: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
212
+ subSessionIds: import("zod").ZodArray<ChatSessionId>;
213
+ summary: import("zod").ZodOptional<import("zod").ZodString>;
214
+ updatedAt: import("zod").ZodISODateTime;
215
+ }, import("zod/v4/core").$strip>;
216
+ }, import("zod/v4/core").$strip>;
217
+ };
218
+ };
219
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/v1/investigation/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAKhD,eAAO,MAAM,0BAA0B,GACrC,aAAa,SAAS,cAAc,EACpC,MAAM,SAAS,cAAc,EAC7B,OAAO,SAAS,cAAc,EAC9B,KAAK,SAAS,cAAc,EAC5B,KAAK;IACL,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,WAAW,EAAE,aAAa,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,KAAK,CAAC;CACZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { makeGetInvestigationContract } from "./get.js";
2
+ import { makeRecordInvestigationFindingContract } from "./recordFinding.js";
3
+ export const makeInvestigationContracts = (ids) => ({
4
+ get: makeGetInvestigationContract(ids),
5
+ recordFinding: makeRecordInvestigationFindingContract(ids),
6
+ });
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/v1/investigation/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,sCAAsC,EAAE,MAAM,oBAAoB,CAAC;AAE5E,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAKxC,GAMD,EAAE,EAAE,CAAC,CAAC;IACL,GAAG,EAAE,4BAA4B,CAAC,GAAG,CAAC;IACtC,aAAa,EAAE,sCAAsC,CAAC,GAAG,CAAC;CAC3D,CAAC,CAAC"}
@@ -0,0 +1,153 @@
1
+ import { z } from "zod";
2
+ import type { PublicIdSchema } from "../ids.js";
3
+ export declare const makeRecordInvestigationFindingContract: <ChatSessionId extends PublicIdSchema, FlowId extends PublicIdSchema, IssueId extends PublicIdSchema, RunId extends PublicIdSchema>(ids: {
4
+ [key: string]: unknown;
5
+ chatSession: ChatSessionId;
6
+ flow: FlowId;
7
+ issue: IssueId;
8
+ run: RunId;
9
+ }) => {
10
+ readonly annotations: {
11
+ readonly destructiveHint: true;
12
+ readonly openWorldHint: false;
13
+ readonly readOnlyHint: false;
14
+ };
15
+ readonly description: string;
16
+ readonly input: z.ZodDiscriminatedUnion<[z.ZodObject<{
17
+ headline: z.ZodOptional<z.ZodString>;
18
+ state: z.ZodLiteral<"investigating">;
19
+ summary: z.ZodOptional<z.ZodString>;
20
+ findingId: z.ZodString;
21
+ flowIds: z.ZodArray<FlowId>;
22
+ runId: RunId;
23
+ sessionId: ChatSessionId;
24
+ subSessionIds: z.ZodOptional<z.ZodArray<ChatSessionId>>;
25
+ }, z.core.$strip>, z.ZodObject<{
26
+ commitHash: z.ZodString;
27
+ headline: z.ZodString;
28
+ state: z.ZodLiteral<"fixed">;
29
+ summary: z.ZodString;
30
+ findingId: z.ZodString;
31
+ flowIds: z.ZodArray<FlowId>;
32
+ runId: RunId;
33
+ sessionId: ChatSessionId;
34
+ subSessionIds: z.ZodOptional<z.ZodArray<ChatSessionId>>;
35
+ }, z.core.$strip>, z.ZodObject<{
36
+ commitHash: z.ZodString;
37
+ headline: z.ZodString;
38
+ question: z.ZodOptional<z.ZodString>;
39
+ state: z.ZodLiteral<"fix-proposed">;
40
+ summary: z.ZodString;
41
+ findingId: z.ZodString;
42
+ flowIds: z.ZodArray<FlowId>;
43
+ runId: RunId;
44
+ sessionId: ChatSessionId;
45
+ subSessionIds: z.ZodOptional<z.ZodArray<ChatSessionId>>;
46
+ }, z.core.$strip>, z.ZodObject<{
47
+ headline: z.ZodString;
48
+ issueId: IssueId;
49
+ matchReason: z.ZodOptional<z.ZodString>;
50
+ state: z.ZodLiteral<"reported">;
51
+ summary: z.ZodString;
52
+ actual: z.ZodString;
53
+ expected: z.ZodString;
54
+ steps: z.ZodArray<z.ZodString>;
55
+ findingId: z.ZodString;
56
+ flowIds: z.ZodArray<FlowId>;
57
+ runId: RunId;
58
+ sessionId: ChatSessionId;
59
+ subSessionIds: z.ZodOptional<z.ZodArray<ChatSessionId>>;
60
+ }, z.core.$strip>, z.ZodObject<{
61
+ headline: z.ZodString;
62
+ issueId: z.ZodOptional<IssueId>;
63
+ matchReason: z.ZodOptional<z.ZodString>;
64
+ priority: z.ZodEnum<{
65
+ unprioritized: "unprioritized";
66
+ low: "low";
67
+ medium: "medium";
68
+ high: "high";
69
+ urgent: "urgent";
70
+ }>;
71
+ question: z.ZodOptional<z.ZodString>;
72
+ state: z.ZodLiteral<"report-proposed">;
73
+ summary: z.ZodString;
74
+ actual: z.ZodString;
75
+ expected: z.ZodString;
76
+ steps: z.ZodArray<z.ZodString>;
77
+ findingId: z.ZodString;
78
+ flowIds: z.ZodArray<FlowId>;
79
+ runId: RunId;
80
+ sessionId: ChatSessionId;
81
+ subSessionIds: z.ZodOptional<z.ZodArray<ChatSessionId>>;
82
+ }, z.core.$strip>, z.ZodObject<{
83
+ headline: z.ZodString;
84
+ state: z.ZodLiteral<"flake">;
85
+ summary: z.ZodString;
86
+ findingId: z.ZodString;
87
+ flowIds: z.ZodArray<FlowId>;
88
+ runId: RunId;
89
+ sessionId: ChatSessionId;
90
+ subSessionIds: z.ZodOptional<z.ZodArray<ChatSessionId>>;
91
+ }, z.core.$strip>, z.ZodObject<{
92
+ bugAnswer: z.ZodString;
93
+ bugAnswerDescription: z.ZodOptional<z.ZodString>;
94
+ headline: z.ZodString;
95
+ maintenanceAnswer: z.ZodString;
96
+ maintenanceAnswerDescription: z.ZodOptional<z.ZodString>;
97
+ question: z.ZodString;
98
+ state: z.ZodLiteral<"question">;
99
+ summary: z.ZodString;
100
+ findingId: z.ZodString;
101
+ flowIds: z.ZodArray<FlowId>;
102
+ runId: RunId;
103
+ sessionId: ChatSessionId;
104
+ subSessionIds: z.ZodOptional<z.ZodArray<ChatSessionId>>;
105
+ }, z.core.$strip>], "state">;
106
+ readonly kind: "write";
107
+ readonly name: "investigation.recordFinding";
108
+ readonly output: z.ZodObject<{
109
+ finding: z.ZodObject<{
110
+ actual: z.ZodOptional<z.ZodString>;
111
+ commitHash: z.ZodOptional<z.ZodString>;
112
+ decidedBy: z.ZodOptional<z.ZodEnum<{
113
+ user: "user";
114
+ agent: "agent";
115
+ }>>;
116
+ disputeReason: z.ZodOptional<z.ZodString>;
117
+ expected: z.ZodOptional<z.ZodString>;
118
+ findingId: z.ZodString;
119
+ flowIds: z.ZodArray<FlowId>;
120
+ headline: z.ZodOptional<z.ZodString>;
121
+ issueId: z.ZodOptional<IssueId>;
122
+ kind: z.ZodString;
123
+ matchReason: z.ZodOptional<z.ZodString>;
124
+ priority: z.ZodOptional<z.ZodEnum<{
125
+ unprioritized: "unprioritized";
126
+ low: "low";
127
+ medium: "medium";
128
+ high: "high";
129
+ urgent: "urgent";
130
+ }>>;
131
+ question: z.ZodOptional<z.ZodObject<{
132
+ answers: z.ZodArray<z.ZodObject<{
133
+ description: z.ZodOptional<z.ZodString>;
134
+ title: z.ZodString;
135
+ value: z.ZodString;
136
+ }, z.core.$strip>>;
137
+ text: z.ZodString;
138
+ }, z.core.$strip>>;
139
+ response: z.ZodOptional<z.ZodObject<{
140
+ answer: z.ZodOptional<z.ZodString>;
141
+ at: z.ZodISODateTime;
142
+ reason: z.ZodOptional<z.ZodString>;
143
+ type: z.ZodString;
144
+ }, z.core.$strip>>;
145
+ state: z.ZodString;
146
+ steps: z.ZodOptional<z.ZodArray<z.ZodString>>;
147
+ subSessionIds: z.ZodArray<ChatSessionId>;
148
+ summary: z.ZodOptional<z.ZodString>;
149
+ updatedAt: z.ZodISODateTime;
150
+ }, z.core.$strip>;
151
+ }, z.core.$strip>;
152
+ };
153
+ //# sourceMappingURL=recordFinding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recordFinding.d.ts","sourceRoot":"","sources":["../../../src/v1/investigation/recordFinding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAehD,eAAO,MAAM,sCAAsC,GACjD,aAAa,SAAS,cAAc,EACpC,MAAM,SAAS,cAAc,EAC7B,OAAO,SAAS,cAAc,EAC9B,KAAK,SAAS,cAAc,EAC5B,KAAK;IACL,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,WAAW,EAAE,aAAa,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,KAAK,CAAC;CACZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkIA,CAAC"}