@qawolf/api-contracts 0.54.0 → 0.58.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 (45) hide show
  1. package/dist/v1/agent/send.d.ts +1 -1
  2. package/dist/v1/agent/send.js +1 -1
  3. package/dist/v1/agent/send.js.map +1 -1
  4. package/dist/v1/codeHostIntegration/find.d.ts +30 -0
  5. package/dist/v1/codeHostIntegration/find.d.ts.map +1 -0
  6. package/dist/v1/codeHostIntegration/find.js +32 -0
  7. package/dist/v1/codeHostIntegration/find.js.map +1 -0
  8. package/dist/v1/codeHostIntegration/index.d.ts +4 -0
  9. package/dist/v1/codeHostIntegration/index.d.ts.map +1 -0
  10. package/dist/v1/codeHostIntegration/index.js +4 -0
  11. package/dist/v1/codeHostIntegration/index.js.map +1 -0
  12. package/dist/v1/codeHostIntegration/listRepositories.d.ts +35 -0
  13. package/dist/v1/codeHostIntegration/listRepositories.d.ts.map +1 -0
  14. package/dist/v1/codeHostIntegration/listRepositories.js +34 -0
  15. package/dist/v1/codeHostIntegration/listRepositories.js.map +1 -0
  16. package/dist/v1/codeHostIntegration/resource.d.ts +19 -0
  17. package/dist/v1/codeHostIntegration/resource.d.ts.map +1 -0
  18. package/dist/v1/codeHostIntegration/resource.js +27 -0
  19. package/dist/v1/codeHostIntegration/resource.js.map +1 -0
  20. package/dist/v1/environment/create.d.ts +1 -0
  21. package/dist/v1/environment/create.d.ts.map +1 -1
  22. package/dist/v1/environment/find.d.ts +1 -0
  23. package/dist/v1/environment/find.d.ts.map +1 -1
  24. package/dist/v1/environment/index.d.ts +1 -0
  25. package/dist/v1/environment/index.d.ts.map +1 -1
  26. package/dist/v1/environment/resource.d.ts +1 -0
  27. package/dist/v1/environment/resource.d.ts.map +1 -1
  28. package/dist/v1/environment/resource.js +4 -0
  29. package/dist/v1/environment/resource.js.map +1 -1
  30. package/dist/v1/environment/update.d.ts +1 -0
  31. package/dist/v1/environment/update.d.ts.map +1 -1
  32. package/dist/v1/index.d.ts +128 -6
  33. package/dist/v1/index.d.ts.map +1 -1
  34. package/dist/v1/index.js +6 -0
  35. package/dist/v1/index.js.map +1 -1
  36. package/dist/v1/runner/identity.js +1 -1
  37. package/dist/v1/runner/identity.js.map +1 -1
  38. package/dist/v1/runner/index.d.ts +1 -1
  39. package/dist/v1/runner/index.js +1 -1
  40. package/dist/v1/runner/index.js.map +1 -1
  41. package/dist/v1/runner/performAction.d.ts +1 -1
  42. package/dist/v1/runner/performAction.d.ts.map +1 -1
  43. package/dist/v1/runner/performAction.js +4 -7
  44. package/dist/v1/runner/performAction.js.map +1 -1
  45. package/package.json +2 -2
@@ -10,7 +10,7 @@ export declare const makeAgentSendContract: <ChatSessionId extends PublicIdSchem
10
10
  readonly openWorldHint: true;
11
11
  readonly readOnlyHint: false;
12
12
  };
13
- readonly description: "Start or continue work with the QA Wolf AI and return a live session URL to share with the user. Use it to cover a user journey, investigate a failing run, or fix a broken flow. This is the one verb that starts work from nothing: every other write acts on a flow, run or issue that already exists. Returns sessionId, status, and url as soon as the request is accepted; work can take minutes to tens of minutes. After each send, make the next action a normal user-visible assistant message containing the exact returned url, before any tool call or wait. Tool output and internal reasoning do not count as sharing the link. Do not run a timer or monitoring call alongside this send. Acceptance does not mean the work is complete. Then monitor the session with agent.get, reporting new progress, blockers, and the final outcome rather than unchanged status. Send here again to answer a question or add context to the same session.";
13
+ readonly description: "Start or continue work with the QA Wolf AI and return a live session URL to share with the user. Use it to cover a user journey, investigate a failing run, or fix a broken flow. This is the one verb that starts work from nothing: every other write acts on a flow, run or issue that already exists. Returns sessionId, status, and url as soon as the request is accepted; work can take minutes to tens of minutes. After each send, put the exact returned url in a normal user-visible assistant message, and repeat it in the last message of the turn: only a turn's trailing message is shown expanded. Tool output and internal reasoning do not count as sharing the link. Do not run a timer or monitoring call alongside this send. Acceptance does not mean the work is complete. Then monitor the session with agent.get, reporting new progress, blockers, and the final outcome rather than unchanged status. Send here again to answer a question or add context to the same session.";
14
14
  readonly input: z.ZodObject<{
15
15
  environmentId: z.ZodOptional<PublicIdSchema>;
16
16
  filePaths: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -37,7 +37,7 @@ export const makeAgentSendContract = (ids) => {
37
37
  openWorldHint: true,
38
38
  readOnlyHint: false,
39
39
  },
40
- description: "Start or continue work with the QA Wolf AI and return a live session URL to share with the user. Use it to cover a user journey, investigate a failing run, or fix a broken flow. This is the one verb that starts work from nothing: every other write acts on a flow, run or issue that already exists. Returns sessionId, status, and url as soon as the request is accepted; work can take minutes to tens of minutes. After each send, make the next action a normal user-visible assistant message containing the exact returned url, before any tool call or wait. Tool output and internal reasoning do not count as sharing the link. Do not run a timer or monitoring call alongside this send. Acceptance does not mean the work is complete. Then monitor the session with agent.get, reporting new progress, blockers, and the final outcome rather than unchanged status. Send here again to answer a question or add context to the same session.",
40
+ description: "Start or continue work with the QA Wolf AI and return a live session URL to share with the user. Use it to cover a user journey, investigate a failing run, or fix a broken flow. This is the one verb that starts work from nothing: every other write acts on a flow, run or issue that already exists. Returns sessionId, status, and url as soon as the request is accepted; work can take minutes to tens of minutes. After each send, put the exact returned url in a normal user-visible assistant message, and repeat it in the last message of the turn: only a turn's trailing message is shown expanded. Tool output and internal reasoning do not count as sharing the link. Do not run a timer or monitoring call alongside this send. Acceptance does not mean the work is complete. Then monitor the session with agent.get, reporting new progress, blockers, and the final outcome rather than unchanged status. Send here again to answer a question or add context to the same session.",
41
41
  input,
42
42
  kind: "write",
43
43
  name: "agent.send",
@@ -1 +1 @@
1
- {"version":3,"file":"send.js","sourceRoot":"","sources":["../../../src/v1/agent/send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAGnC,GAID,EAAE,EAAE;IACH,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;QACrB,aAAa,EAAE,GAAG,CAAC,cAAc;aAC9B,QAAQ,EAAE;aACV,QAAQ,CACP,gKAAgK,CACjK;QACH,SAAS,EAAE,CAAC;aACT,KAAK,CAAC,qBAAqB,CAAC;aAC5B,GAAG,CAAC,EAAE,CAAC;aACP,QAAQ,EAAE;aACV,QAAQ,CACP,iLAAiL,CAClL;QACH,OAAO,EAAE,CAAC;aACP,MAAM,EAAE;aACR,IAAI,EAAE;aACN,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,MAAM,CAAC;aACX,QAAQ,CACP,iSAAiS,CAClS;QACH,SAAS,EAAE,GAAG,CAAC,WAAW;aACvB,QAAQ,EAAE;aACV,QAAQ,CACP,gKAAgK,CACjK;QACH,WAAW,EAAE,GAAG,CAAC,SAAS;aACvB,QAAQ,EAAE;aACV,QAAQ,CACP,8FAA8F,CAC/F;KACJ,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,QAAQ,CACrB;QACE,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC,QAAQ,CACjC,+CAA+C,CAChD;QACD,MAAM,EAAE,wBAAwB;KACjC,EACD;QACE,mBAAmB,EACjB,sDAAsD;KACzD,CACF,CAAC;IAEF,OAAO;QACL,WAAW,EAAE;YACX,eAAe,EAAE,IAAI;YACrB,aAAa,EAAE,IAAI;YACnB,YAAY,EAAE,KAAK;SACpB;QACD,WAAW,EACT,k6BAAk6B;QACp6B,KAAK;QACL,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,YAAY;QAClB,MAAM;KAMP,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"send.js","sourceRoot":"","sources":["../../../src/v1/agent/send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAGnC,GAID,EAAE,EAAE;IACH,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;QACrB,aAAa,EAAE,GAAG,CAAC,cAAc;aAC9B,QAAQ,EAAE;aACV,QAAQ,CACP,gKAAgK,CACjK;QACH,SAAS,EAAE,CAAC;aACT,KAAK,CAAC,qBAAqB,CAAC;aAC5B,GAAG,CAAC,EAAE,CAAC;aACP,QAAQ,EAAE;aACV,QAAQ,CACP,iLAAiL,CAClL;QACH,OAAO,EAAE,CAAC;aACP,MAAM,EAAE;aACR,IAAI,EAAE;aACN,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,MAAM,CAAC;aACX,QAAQ,CACP,iSAAiS,CAClS;QACH,SAAS,EAAE,GAAG,CAAC,WAAW;aACvB,QAAQ,EAAE;aACV,QAAQ,CACP,gKAAgK,CACjK;QACH,WAAW,EAAE,GAAG,CAAC,SAAS;aACvB,QAAQ,EAAE;aACV,QAAQ,CACP,8FAA8F,CAC/F;KACJ,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,QAAQ,CACrB;QACE,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC,QAAQ,CACjC,+CAA+C,CAChD;QACD,MAAM,EAAE,wBAAwB;KACjC,EACD;QACE,mBAAmB,EACjB,sDAAsD;KACzD,CACF,CAAC;IAEF,OAAO;QACL,WAAW,EAAE;YACX,eAAe,EAAE,IAAI;YACrB,aAAa,EAAE,IAAI;YACnB,YAAY,EAAE,KAAK;SACpB;QACD,WAAW,EACT,48BAA48B;QAC98B,KAAK;QACL,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,YAAY;QAClB,MAAM;KAMP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { z } from "zod";
2
+ import type { PublicIdSchema } from "../ids.js";
3
+ export declare const makeFindCodeHostIntegrationsContract: <WorkspaceId extends PublicIdSchema>(ids: {
4
+ workspace: WorkspaceId;
5
+ }) => {
6
+ readonly annotations: {
7
+ readonly destructiveHint: false;
8
+ readonly openWorldHint: false;
9
+ readonly readOnlyHint: true;
10
+ };
11
+ readonly description: "List the workspace's code host integrations (GitHub or GitLab). A connected integration lets QA Wolf read repositories and receive the code host's webhooks. codeHostIntegration.listRepositories pages the repositories each integration covers.";
12
+ readonly input: z.ZodObject<{
13
+ workspaceId: z.ZodOptional<WorkspaceId>;
14
+ }, z.core.$strip>;
15
+ readonly kind: "read";
16
+ readonly name: "codeHostIntegration.find";
17
+ readonly output: z.ZodObject<{
18
+ integrations: z.ZodArray<z.ZodObject<{
19
+ connectedAt: z.ZodISODateTime;
20
+ provider: z.ZodEnum<{
21
+ github: "github";
22
+ gitlab: "gitlab";
23
+ }>;
24
+ suspendedAt: z.ZodOptional<z.ZodISODateTime>;
25
+ url: z.ZodURL;
26
+ }, z.core.$strip>>;
27
+ settingsUrl: z.ZodURL;
28
+ }, z.core.$strip>;
29
+ };
30
+ //# sourceMappingURL=find.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../src/v1/codeHostIntegration/find.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAIhD,eAAO,MAAM,oCAAoC,GAC/C,WAAW,SAAS,cAAc,EAClC,KAAK;IACL,SAAS,EAAE,WAAW,CAAC;CACxB;;;;;;;;;;;;;;;;;;;;;;;;CAuCA,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { z } from "zod";
2
+ import { makeCodeHostIntegrationResourceSchema } from "./resource.js";
3
+ export const makeFindCodeHostIntegrationsContract = (ids) => {
4
+ const input = z.object({
5
+ workspaceId: ids.workspace
6
+ .optional()
7
+ .describe("The workspace to list code host integrations from. Required when authenticating with an organization or user API key."),
8
+ });
9
+ const output = z.object({
10
+ // Every integration, with no page: a workspace connects at most one
11
+ // integration per code host, so the list never grows past a few entries.
12
+ integrations: z
13
+ .array(makeCodeHostIntegrationResourceSchema())
14
+ .describe("The workspace's code host integrations. Empty when no code host is connected."),
15
+ settingsUrl: z
16
+ .url()
17
+ .describe("Absolute URL of the workspace's integrations settings page."),
18
+ });
19
+ return {
20
+ annotations: {
21
+ destructiveHint: false,
22
+ openWorldHint: false,
23
+ readOnlyHint: true,
24
+ },
25
+ description: "List the workspace's code host integrations (GitHub or GitLab). A connected integration lets QA Wolf read repositories and receive the code host's webhooks. codeHostIntegration.listRepositories pages the repositories each integration covers.",
26
+ input,
27
+ kind: "read",
28
+ name: "codeHostIntegration.find",
29
+ output,
30
+ };
31
+ };
32
+ //# sourceMappingURL=find.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find.js","sourceRoot":"","sources":["../../../src/v1/codeHostIntegration/find.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EAAE,qCAAqC,EAAE,MAAM,eAAe,CAAC;AAEtE,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAElD,GAED,EAAE,EAAE;IACH,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;QACrB,WAAW,EAAE,GAAG,CAAC,SAAS;aACvB,QAAQ,EAAE;aACV,QAAQ,CACP,uHAAuH,CACxH;KACJ,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QACtB,oEAAoE;QACpE,yEAAyE;QACzE,YAAY,EAAE,CAAC;aACZ,KAAK,CAAC,qCAAqC,EAAE,CAAC;aAC9C,QAAQ,CACP,+EAA+E,CAChF;QACH,WAAW,EAAE,CAAC;aACX,GAAG,EAAE;aACL,QAAQ,CAAC,6DAA6D,CAAC;KAC3E,CAAC,CAAC;IAEH,OAAO;QACL,WAAW,EAAE;YACX,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,KAAK;YACpB,YAAY,EAAE,IAAI;SACnB;QACD,WAAW,EACT,mPAAmP;QACrP,KAAK;QACL,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,0BAA0B;QAChC,MAAM;KAMP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { makeFindCodeHostIntegrationsContract } from "./find.js";
2
+ export { makeListCodeHostRepositoriesContract } from "./listRepositories.js";
3
+ export { makeCodeHostIntegrationResourceSchema, makeCodeHostRepositoryResourceSchema, } from "./resource.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/v1/codeHostIntegration/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oCAAoC,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,oCAAoC,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EACL,qCAAqC,EACrC,oCAAoC,GACrC,MAAM,eAAe,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { makeFindCodeHostIntegrationsContract } from "./find.js";
2
+ export { makeListCodeHostRepositoriesContract } from "./listRepositories.js";
3
+ export { makeCodeHostIntegrationResourceSchema, makeCodeHostRepositoryResourceSchema, } from "./resource.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/v1/codeHostIntegration/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oCAAoC,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,oCAAoC,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EACL,qCAAqC,EACrC,oCAAoC,GACrC,MAAM,eAAe,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { z } from "zod";
2
+ import type { PublicIdSchema } from "../ids.js";
3
+ export declare const makeListCodeHostRepositoriesContract: <WorkspaceId extends PublicIdSchema>(ids: {
4
+ workspace: WorkspaceId;
5
+ }) => {
6
+ readonly annotations: {
7
+ readonly destructiveHint: false;
8
+ readonly openWorldHint: false;
9
+ readonly readOnlyHint: true;
10
+ };
11
+ readonly description: "List the repositories the workspace's code host integrations cover, alphabetical by full name. The list reflects the last sync from the code host; codeHostIntegration.find lists the integrations themselves.";
12
+ readonly input: z.ZodObject<{
13
+ cursor: z.ZodOptional<z.ZodString>;
14
+ limit: z.ZodDefault<z.ZodNumber>;
15
+ provider: z.ZodOptional<z.ZodEnum<{
16
+ github: "github";
17
+ gitlab: "gitlab";
18
+ }>>;
19
+ workspaceId: z.ZodOptional<WorkspaceId>;
20
+ }, z.core.$strip>;
21
+ readonly kind: "read";
22
+ readonly name: "codeHostIntegration.listRepositories";
23
+ readonly output: z.ZodObject<{
24
+ nextCursor: z.ZodOptional<z.ZodString>;
25
+ repositories: z.ZodArray<z.ZodObject<{
26
+ fullName: z.ZodString;
27
+ provider: z.ZodEnum<{
28
+ github: "github";
29
+ gitlab: "gitlab";
30
+ }>;
31
+ url: z.ZodURL;
32
+ }, z.core.$strip>>;
33
+ }, z.core.$strip>;
34
+ };
35
+ //# sourceMappingURL=listRepositories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listRepositories.d.ts","sourceRoot":"","sources":["../../../src/v1/codeHostIntegration/listRepositories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAKhD,eAAO,MAAM,oCAAoC,GAC/C,WAAW,SAAS,cAAc,EAClC,KAAK;IACL,SAAS,EAAE,WAAW,CAAC;CACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CA,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { z } from "zod";
2
+ import { makePaginationInputFields, nextCursorSchema } from "../pagination.js";
3
+ import { makeCodeHostRepositoryResourceSchema } from "./resource.js";
4
+ export const makeListCodeHostRepositoriesContract = (ids) => {
5
+ const input = z.object({
6
+ provider: z
7
+ .enum(["github", "gitlab"])
8
+ .optional()
9
+ .describe("Only list repositories covered by this code host's integration. Omit for all."),
10
+ workspaceId: ids.workspace
11
+ .optional()
12
+ .describe("The workspace to list covered repositories from. Required when authenticating with an organization or user API key."),
13
+ ...makePaginationInputFields({ defaultLimit: 20, maxLimit: 100 }),
14
+ });
15
+ const output = z.object({
16
+ nextCursor: nextCursorSchema,
17
+ repositories: z
18
+ .array(makeCodeHostRepositoryResourceSchema())
19
+ .describe("The repositories the workspace's code host integrations cover, alphabetical by full name."),
20
+ });
21
+ return {
22
+ annotations: {
23
+ destructiveHint: false,
24
+ openWorldHint: false,
25
+ readOnlyHint: true,
26
+ },
27
+ description: "List the repositories the workspace's code host integrations cover, alphabetical by full name. The list reflects the last sync from the code host; codeHostIntegration.find lists the integrations themselves.",
28
+ input,
29
+ kind: "read",
30
+ name: "codeHostIntegration.listRepositories",
31
+ output,
32
+ };
33
+ };
34
+ //# sourceMappingURL=listRepositories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listRepositories.js","sourceRoot":"","sources":["../../../src/v1/codeHostIntegration/listRepositories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE/E,OAAO,EAAE,oCAAoC,EAAE,MAAM,eAAe,CAAC;AAErE,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAElD,GAED,EAAE,EAAE;IACH,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;QACrB,QAAQ,EAAE,CAAC;aACR,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;aAC1B,QAAQ,EAAE;aACV,QAAQ,CACP,+EAA+E,CAChF;QACH,WAAW,EAAE,GAAG,CAAC,SAAS;aACvB,QAAQ,EAAE;aACV,QAAQ,CACP,qHAAqH,CACtH;QACH,GAAG,yBAAyB,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;KAClE,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QACtB,UAAU,EAAE,gBAAgB;QAC5B,YAAY,EAAE,CAAC;aACZ,KAAK,CAAC,oCAAoC,EAAE,CAAC;aAC7C,QAAQ,CACP,2FAA2F,CAC5F;KACJ,CAAC,CAAC;IAEH,OAAO;QACL,WAAW,EAAE;YACX,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,KAAK;YACpB,YAAY,EAAE,IAAI;SACnB;QACD,WAAW,EACT,gNAAgN;QAClN,KAAK;QACL,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,sCAAsC;QAC5C,MAAM;KAMP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { z } from "zod";
2
+ export declare const makeCodeHostIntegrationResourceSchema: () => z.ZodObject<{
3
+ connectedAt: z.ZodISODateTime;
4
+ provider: z.ZodEnum<{
5
+ github: "github";
6
+ gitlab: "gitlab";
7
+ }>;
8
+ suspendedAt: z.ZodOptional<z.ZodISODateTime>;
9
+ url: z.ZodURL;
10
+ }, z.core.$strip>;
11
+ export declare const makeCodeHostRepositoryResourceSchema: () => z.ZodObject<{
12
+ fullName: z.ZodString;
13
+ provider: z.ZodEnum<{
14
+ github: "github";
15
+ gitlab: "gitlab";
16
+ }>;
17
+ url: z.ZodURL;
18
+ }, z.core.$strip>;
19
+ //# sourceMappingURL=resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../../src/v1/codeHostIntegration/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,qCAAqC;;;;;;;;iBAoB/C,CAAC;AAEJ,eAAO,MAAM,oCAAoC;;;;;;;iBAgB9C,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { z } from "zod";
2
+ import { resource } from "../resource.js";
3
+ export const makeCodeHostIntegrationResourceSchema = () => resource({
4
+ connectedAt: z.iso
5
+ .datetime()
6
+ .describe("When the code host was connected to the workspace."),
7
+ provider: z
8
+ .enum(["github", "gitlab"])
9
+ .describe("The code host this integration connects."),
10
+ suspendedAt: z.iso
11
+ .datetime()
12
+ .optional()
13
+ .describe("Set while GitHub has the QA Wolf app installation suspended. While suspended, GitHub sends QA Wolf no webhooks."),
14
+ }, {
15
+ urlFieldDescription: "Absolute URL of the workspace's integrations settings page.",
16
+ });
17
+ export const makeCodeHostRepositoryResourceSchema = () => resource({
18
+ fullName: z
19
+ .string()
20
+ .describe('The repository\'s full name on the code host, such as "acme/storefront".'),
21
+ provider: z
22
+ .enum(["github", "gitlab"])
23
+ .describe("The code host the covering integration connects."),
24
+ }, {
25
+ urlFieldDescription: "Absolute URL of the workspace's integrations settings page.",
26
+ });
27
+ //# sourceMappingURL=resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource.js","sourceRoot":"","sources":["../../../src/v1/codeHostIntegration/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,CAAC,MAAM,qCAAqC,GAAG,GAAG,EAAE,CACxD,QAAQ,CACN;IACE,WAAW,EAAE,CAAC,CAAC,GAAG;SACf,QAAQ,EAAE;SACV,QAAQ,CAAC,oDAAoD,CAAC;IACjE,QAAQ,EAAE,CAAC;SACR,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;SAC1B,QAAQ,CAAC,0CAA0C,CAAC;IACvD,WAAW,EAAE,CAAC,CAAC,GAAG;SACf,QAAQ,EAAE;SACV,QAAQ,EAAE;SACV,QAAQ,CACP,iHAAiH,CAClH;CACJ,EACD;IACE,mBAAmB,EACjB,6DAA6D;CAChE,CACF,CAAC;AAEJ,MAAM,CAAC,MAAM,oCAAoC,GAAG,GAAG,EAAE,CACvD,QAAQ,CACN;IACE,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,CACP,0EAA0E,CAC3E;IACH,QAAQ,EAAE,CAAC;SACR,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;SAC1B,QAAQ,CAAC,kDAAkD,CAAC;CAChE,EACD;IACE,mBAAmB,EACjB,6DAA6D;CAChE,CACF,CAAC"}
@@ -38,6 +38,7 @@ export declare const makeCreateEnvironmentContract: <EnvironmentId extends Publi
38
38
  running: "running";
39
39
  }>;
40
40
  terminatedAt: z.ZodOptional<z.ZodISODateTime>;
41
+ variablesUrl: z.ZodOptional<z.ZodURL>;
41
42
  url: z.ZodURL;
42
43
  }, z.core.$strip>;
43
44
  };
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/v1/environment/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAInE,eAAO,MAAM,6BAA6B,GACxC,aAAa,SAAS,cAAc,EACpC,MAAM,SAAS,cAAc,EAC7B,KAAK,SAAS,cAAc,EAC5B,WAAW,SAAS,cAAc,GAAG,cAAc,EAEnD,KAAK,iBAAiB,CACpB,aAAa,EACb,MAAM,EACN,KAAK,EACL,cAAc,EACd,cAAc,EACd,WAAW,CACZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCF,CAAC"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/v1/environment/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAInE,eAAO,MAAM,6BAA6B,GACxC,aAAa,SAAS,cAAc,EACpC,MAAM,SAAS,cAAc,EAC7B,KAAK,SAAS,cAAc,EAC5B,WAAW,SAAS,cAAc,GAAG,cAAc,EAEnD,KAAK,iBAAiB,CACpB,aAAa,EACb,MAAM,EACN,KAAK,EACL,cAAc,EACd,cAAc,EACd,WAAW,CACZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCF,CAAC"}
@@ -49,6 +49,7 @@ export declare const makeFindEnvironmentsContract: <EnvironmentId extends Public
49
49
  running: "running";
50
50
  }>;
51
51
  terminatedAt: z.ZodOptional<z.ZodISODateTime>;
52
+ variablesUrl: z.ZodOptional<z.ZodURL>;
52
53
  url: z.ZodURL;
53
54
  }, z.core.$strip>>;
54
55
  nextCursor: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../src/v1/environment/find.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,WAAW,SAAS,cAAc,EAClC,KAAK;IACL,WAAW,EAAE,aAAa,CAAC;IAC3B,SAAS,EAAE,WAAW,CAAC;CACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8CA,CAAC"}
1
+ {"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../src/v1/environment/find.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,WAAW,SAAS,cAAc,EAClC,KAAK;IACL,WAAW,EAAE,aAAa,CAAC;IAC3B,SAAS,EAAE,WAAW,CAAC;CACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8CA,CAAC"}
@@ -38,6 +38,7 @@ export declare const makeGetEnvironmentContract: <EnvironmentId extends PublicId
38
38
  running: "running";
39
39
  }>;
40
40
  terminatedAt: z.ZodOptional<z.ZodISODateTime>;
41
+ variablesUrl: z.ZodOptional<z.ZodURL>;
41
42
  url: z.ZodURL;
42
43
  }, z.core.$strip>;
43
44
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/v1/environment/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EAEvB,MAAM,WAAW,CAAC;AAInB,eAAO,MAAM,0BAA0B,GACrC,aAAa,SAAS,cAAc,EACpC,MAAM,SAAS,cAAc,EAC7B,KAAK,SAAS,cAAc,EAC5B,WAAW,SAAS,cAAc,GAAG,cAAc,EAEnD,KAAK,iBAAiB,CACpB,aAAa,EACb,MAAM,EACN,KAAK,EACL,cAAc,EACd,cAAc,EACd,WAAW,CACZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BF,CAAC;AAEF,eAAO,MAAM,wCAAwC,GACnD,aAAa,SAAS,cAAc,EACpC,MAAM,SAAS,cAAc,EAC7B,KAAK,SAAS,cAAc,EAC5B,WAAW,SAAS,cAAc,GAAG,cAAc,EAEnD,KAAK,iBAAiB,CACpB,aAAa,EACb,MAAM,EACN,KAAK,EACL,cAAc,EACd,cAAc,EACd,WAAW,CACZ;;;;;;;;;;;;;;;;CAoCF,CAAC;AAEF,eAAO,MAAM,kCAAkC,GAC7C,aAAa,SAAS,cAAc,EACpC,MAAM,SAAS,cAAc,EAC7B,KAAK,SAAS,cAAc,EAC5B,WAAW,SAAS,cAAc,GAAG,cAAc,EAEnD,KAAK,iBAAiB,CACpB,aAAa,EACb,MAAM,EACN,KAAK,EACL,cAAc,EACd,cAAc,EACd,WAAW,CACZ;;;;;;;;;;;;;;;;;;CA6CF,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/v1/environment/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EAEvB,MAAM,WAAW,CAAC;AAInB,eAAO,MAAM,0BAA0B,GACrC,aAAa,SAAS,cAAc,EACpC,MAAM,SAAS,cAAc,EAC7B,KAAK,SAAS,cAAc,EAC5B,WAAW,SAAS,cAAc,GAAG,cAAc,EAEnD,KAAK,iBAAiB,CACpB,aAAa,EACb,MAAM,EACN,KAAK,EACL,cAAc,EACd,cAAc,EACd,WAAW,CACZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BF,CAAC;AAEF,eAAO,MAAM,wCAAwC,GACnD,aAAa,SAAS,cAAc,EACpC,MAAM,SAAS,cAAc,EAC7B,KAAK,SAAS,cAAc,EAC5B,WAAW,SAAS,cAAc,GAAG,cAAc,EAEnD,KAAK,iBAAiB,CACpB,aAAa,EACb,MAAM,EACN,KAAK,EACL,cAAc,EACd,cAAc,EACd,WAAW,CACZ;;;;;;;;;;;;;;;;CAoCF,CAAC;AAEF,eAAO,MAAM,kCAAkC,GAC7C,aAAa,SAAS,cAAc,EACpC,MAAM,SAAS,cAAc,EAC7B,KAAK,SAAS,cAAc,EAC5B,WAAW,SAAS,cAAc,GAAG,cAAc,EAEnD,KAAK,iBAAiB,CACpB,aAAa,EACb,MAAM,EACN,KAAK,EACL,cAAc,EACd,cAAc,EACd,WAAW,CACZ;;;;;;;;;;;;;;;;;;CA6CF,CAAC"}
@@ -27,6 +27,7 @@ export declare const makeEnvironmentResourceSchema: <EnvironmentId extends Publi
27
27
  running: "running";
28
28
  }>;
29
29
  terminatedAt: z.ZodOptional<z.ZodISODateTime>;
30
+ variablesUrl: z.ZodOptional<z.ZodURL>;
30
31
  url: z.ZodURL;
31
32
  }, z.core.$strip>;
32
33
  //# sourceMappingURL=resource.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../../src/v1/environment/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGhD,eAAO,MAAM,6BAA6B,GACxC,aAAa,SAAS,cAAc,EACpC,KAAK;IACL,WAAW,EAAE,aAAa,CAAC;CAC5B;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgEE,CAAC"}
1
+ {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../../src/v1/environment/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGhD,eAAO,MAAM,6BAA6B,GACxC,aAAa,SAAS,cAAc,EACpC,KAAK;IACL,WAAW,EAAE,aAAa,CAAC;CAC5B;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsEE,CAAC"}
@@ -52,5 +52,9 @@ export const makeEnvironmentResourceSchema = (ids) => resource({
52
52
  .datetime()
53
53
  .optional()
54
54
  .describe("When the environment was terminated, if it has been."),
55
+ variablesUrl: z
56
+ .url()
57
+ .optional()
58
+ .describe("Absolute URL of the page where a person saves this environment's variables. Give it to the user when a login or key is missing, rather than collecting the value yourself. Absent once the environment is terminated, because that page no longer exists."),
55
59
  }, { urlFieldDescription: "Absolute URL of the environment page." });
56
60
  //# sourceMappingURL=resource.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource.js","sourceRoot":"","sources":["../../../src/v1/environment/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAE3C,GAED,EAAE,EAAE,CACH,QAAQ,CACN;IACE,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,+HAA+H,CAChI;IACH,iEAAiE;IACjE,kEAAkE;IAClE,0DAA0D;IAC1D,cAAc,EAAE,CAAC;SACd,kBAAkB,CAAC,YAAY,EAAE;QAChC,CAAC,CAAC,MAAM,CAAC;YACP,oBAAoB,EAAE,CAAC;iBACpB,MAAM,EAAE;iBACR,QAAQ,CAAC,uCAAuC,CAAC;YACpD,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,CAAC,iDAAiD,CAAC;YAC9D,UAAU,EAAE,CAAC;iBACV,OAAO,CAAC,YAAY,CAAC;iBACrB,QAAQ,CAAC,gDAAgD,CAAC;SAC9D,CAAC;QACF,CAAC,CAAC,MAAM,CAAC;YACP,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,CAAC,iDAAiD,CAAC;YAC9D,UAAU,EAAE,CAAC;iBACV,OAAO,CAAC,gBAAgB,CAAC;iBACzB,QAAQ,CAAC,+CAA+C,CAAC;SAC7D,CAAC;KACH,CAAC;SACD,QAAQ,EAAE;SACV,QAAQ,CACP,qFAAqF,CACtF;IACH,EAAE,EAAE,GAAG,CAAC,WAAW;IACnB,SAAS,EAAE,CAAC;SACT,OAAO,EAAE;SACT,QAAQ,CAAC,sDAAsD,CAAC;IACnE,IAAI,EAAE,CAAC;SACJ,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;SAC3B,QAAQ,CAAC,iDAAiD,CAAC;IAC9D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,mBAAmB,EAAE,CAAC;SACnB,MAAM,EAAE;SACR,QAAQ,CACP,8FAA8F,CAC/F;IACH,uEAAuE;IACvE,qEAAqE;IACrE,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,SAAS,EAAE,qBAAqB,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;SAC5D,QAAQ,CACP,2OAA2O,CAC5O;IACH,YAAY,EAAE,CAAC,CAAC,GAAG;SAChB,QAAQ,EAAE;SACV,QAAQ,EAAE;SACV,QAAQ,CAAC,sDAAsD,CAAC;CACpE,EACD,EAAE,mBAAmB,EAAE,uCAAuC,EAAE,CACjE,CAAC"}
1
+ {"version":3,"file":"resource.js","sourceRoot":"","sources":["../../../src/v1/environment/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAE3C,GAED,EAAE,EAAE,CACH,QAAQ,CACN;IACE,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,+HAA+H,CAChI;IACH,iEAAiE;IACjE,kEAAkE;IAClE,0DAA0D;IAC1D,cAAc,EAAE,CAAC;SACd,kBAAkB,CAAC,YAAY,EAAE;QAChC,CAAC,CAAC,MAAM,CAAC;YACP,oBAAoB,EAAE,CAAC;iBACpB,MAAM,EAAE;iBACR,QAAQ,CAAC,uCAAuC,CAAC;YACpD,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,CAAC,iDAAiD,CAAC;YAC9D,UAAU,EAAE,CAAC;iBACV,OAAO,CAAC,YAAY,CAAC;iBACrB,QAAQ,CAAC,gDAAgD,CAAC;SAC9D,CAAC;QACF,CAAC,CAAC,MAAM,CAAC;YACP,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,CAAC,iDAAiD,CAAC;YAC9D,UAAU,EAAE,CAAC;iBACV,OAAO,CAAC,gBAAgB,CAAC;iBACzB,QAAQ,CAAC,+CAA+C,CAAC;SAC7D,CAAC;KACH,CAAC;SACD,QAAQ,EAAE;SACV,QAAQ,CACP,qFAAqF,CACtF;IACH,EAAE,EAAE,GAAG,CAAC,WAAW;IACnB,SAAS,EAAE,CAAC;SACT,OAAO,EAAE;SACT,QAAQ,CAAC,sDAAsD,CAAC;IACnE,IAAI,EAAE,CAAC;SACJ,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;SAC3B,QAAQ,CAAC,iDAAiD,CAAC;IAC9D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,mBAAmB,EAAE,CAAC;SACnB,MAAM,EAAE;SACR,QAAQ,CACP,8FAA8F,CAC/F;IACH,uEAAuE;IACvE,qEAAqE;IACrE,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,SAAS,EAAE,qBAAqB,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;SAC5D,QAAQ,CACP,2OAA2O,CAC5O;IACH,YAAY,EAAE,CAAC,CAAC,GAAG;SAChB,QAAQ,EAAE;SACV,QAAQ,EAAE;SACV,QAAQ,CAAC,sDAAsD,CAAC;IACnE,YAAY,EAAE,CAAC;SACZ,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,QAAQ,CACP,2PAA2P,CAC5P;CACJ,EACD,EAAE,mBAAmB,EAAE,uCAAuC,EAAE,CACjE,CAAC"}
@@ -40,6 +40,7 @@ export declare const makeUpdateEnvironmentContract: <EnvironmentId extends Publi
40
40
  running: "running";
41
41
  }>;
42
42
  terminatedAt: z.ZodOptional<z.ZodISODateTime>;
43
+ variablesUrl: z.ZodOptional<z.ZodURL>;
43
44
  url: z.ZodURL;
44
45
  }, z.core.$strip>;
45
46
  };
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/v1/environment/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EAEvB,MAAM,WAAW,CAAC;AAInB,eAAO,MAAM,6BAA6B,GACxC,aAAa,SAAS,cAAc,EACpC,MAAM,SAAS,cAAc,EAC7B,KAAK,SAAS,cAAc,EAC5B,WAAW,SAAS,cAAc,GAAG,cAAc,EAEnD,KAAK,iBAAiB,CACpB,aAAa,EACb,MAAM,EACN,KAAK,EACL,cAAc,EACd,cAAc,EACd,WAAW,CACZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsDF,CAAC"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/v1/environment/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EAEvB,MAAM,WAAW,CAAC;AAInB,eAAO,MAAM,6BAA6B,GACxC,aAAa,SAAS,cAAc,EACpC,MAAM,SAAS,cAAc,EAC7B,KAAK,SAAS,cAAc,EAC5B,WAAW,SAAS,cAAc,GAAG,cAAc,EAEnD,KAAK,iBAAiB,CACpB,aAAa,EACb,MAAM,EACN,KAAK,EACL,cAAc,EACd,cAAc,EACd,WAAW,CACZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsDF,CAAC"}
@@ -50,7 +50,7 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
50
50
  readonly openWorldHint: true;
51
51
  readonly readOnlyHint: false;
52
52
  };
53
- readonly description: "Start or continue work with the QA Wolf AI and return a live session URL to share with the user. Use it to cover a user journey, investigate a failing run, or fix a broken flow. This is the one verb that starts work from nothing: every other write acts on a flow, run or issue that already exists. Returns sessionId, status, and url as soon as the request is accepted; work can take minutes to tens of minutes. After each send, make the next action a normal user-visible assistant message containing the exact returned url, before any tool call or wait. Tool output and internal reasoning do not count as sharing the link. Do not run a timer or monitoring call alongside this send. Acceptance does not mean the work is complete. Then monitor the session with agent.get, reporting new progress, blockers, and the final outcome rather than unchanged status. Send here again to answer a question or add context to the same session.";
53
+ readonly description: "Start or continue work with the QA Wolf AI and return a live session URL to share with the user. Use it to cover a user journey, investigate a failing run, or fix a broken flow. This is the one verb that starts work from nothing: every other write acts on a flow, run or issue that already exists. Returns sessionId, status, and url as soon as the request is accepted; work can take minutes to tens of minutes. After each send, put the exact returned url in a normal user-visible assistant message, and repeat it in the last message of the turn: only a turn's trailing message is shown expanded. Tool output and internal reasoning do not count as sharing the link. Do not run a timer or monitoring call alongside this send. Acceptance does not mean the work is complete. Then monitor the session with agent.get, reporting new progress, blockers, and the final outcome rather than unchanged status. Send here again to answer a question or add context to the same session.";
54
54
  readonly input: z.ZodObject<{
55
55
  environmentId: z.ZodOptional<PublicIdSchema>;
56
56
  filePaths: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -94,6 +94,63 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
94
94
  url: z.ZodURL;
95
95
  }, z.core.$strip>;
96
96
  };
97
+ codeHostIntegration: {
98
+ find: {
99
+ readonly annotations: {
100
+ readonly destructiveHint: false;
101
+ readonly openWorldHint: false;
102
+ readonly readOnlyHint: true;
103
+ };
104
+ readonly description: "List the workspace's code host integrations (GitHub or GitLab). A connected integration lets QA Wolf read repositories and receive the code host's webhooks. codeHostIntegration.listRepositories pages the repositories each integration covers.";
105
+ readonly input: z.ZodObject<{
106
+ workspaceId: z.ZodOptional<WorkspaceId>;
107
+ }, z.core.$strip>;
108
+ readonly kind: "read";
109
+ readonly name: "codeHostIntegration.find";
110
+ readonly output: z.ZodObject<{
111
+ integrations: z.ZodArray<z.ZodObject<{
112
+ connectedAt: z.ZodISODateTime;
113
+ provider: z.ZodEnum<{
114
+ github: "github";
115
+ gitlab: "gitlab";
116
+ }>;
117
+ suspendedAt: z.ZodOptional<z.ZodISODateTime>;
118
+ url: z.ZodURL;
119
+ }, z.core.$strip>>;
120
+ settingsUrl: z.ZodURL;
121
+ }, z.core.$strip>;
122
+ };
123
+ listRepositories: {
124
+ readonly annotations: {
125
+ readonly destructiveHint: false;
126
+ readonly openWorldHint: false;
127
+ readonly readOnlyHint: true;
128
+ };
129
+ readonly description: "List the repositories the workspace's code host integrations cover, alphabetical by full name. The list reflects the last sync from the code host; codeHostIntegration.find lists the integrations themselves.";
130
+ readonly input: z.ZodObject<{
131
+ cursor: z.ZodOptional<z.ZodString>;
132
+ limit: z.ZodDefault<z.ZodNumber>;
133
+ provider: z.ZodOptional<z.ZodEnum<{
134
+ github: "github";
135
+ gitlab: "gitlab";
136
+ }>>;
137
+ workspaceId: z.ZodOptional<WorkspaceId>;
138
+ }, z.core.$strip>;
139
+ readonly kind: "read";
140
+ readonly name: "codeHostIntegration.listRepositories";
141
+ readonly output: z.ZodObject<{
142
+ nextCursor: z.ZodOptional<z.ZodString>;
143
+ repositories: z.ZodArray<z.ZodObject<{
144
+ fullName: z.ZodString;
145
+ provider: z.ZodEnum<{
146
+ github: "github";
147
+ gitlab: "gitlab";
148
+ }>;
149
+ url: z.ZodURL;
150
+ }, z.core.$strip>>;
151
+ }, z.core.$strip>;
152
+ };
153
+ };
97
154
  deployment: {
98
155
  reportStatus: {
99
156
  readonly annotations: {
@@ -386,6 +443,7 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
386
443
  running: "running";
387
444
  }>;
388
445
  terminatedAt: z.ZodOptional<z.ZodISODateTime>;
446
+ variablesUrl: z.ZodOptional<z.ZodURL>;
389
447
  url: z.ZodURL;
390
448
  }, z.core.$strip>;
391
449
  };
@@ -453,6 +511,7 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
453
511
  running: "running";
454
512
  }>;
455
513
  terminatedAt: z.ZodOptional<z.ZodISODateTime>;
514
+ variablesUrl: z.ZodOptional<z.ZodURL>;
456
515
  url: z.ZodURL;
457
516
  }, z.core.$strip>>;
458
517
  nextCursor: z.ZodOptional<z.ZodString>;
@@ -496,6 +555,7 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
496
555
  running: "running";
497
556
  }>;
498
557
  terminatedAt: z.ZodOptional<z.ZodISODateTime>;
558
+ variablesUrl: z.ZodOptional<z.ZodURL>;
499
559
  url: z.ZodURL;
500
560
  }, z.core.$strip>;
501
561
  };
@@ -597,6 +657,7 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
597
657
  running: "running";
598
658
  }>;
599
659
  terminatedAt: z.ZodOptional<z.ZodISODateTime>;
660
+ variablesUrl: z.ZodOptional<z.ZodURL>;
600
661
  url: z.ZodURL;
601
662
  }, z.core.$strip>;
602
663
  };
@@ -1793,7 +1854,7 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1793
1854
  readonly openWorldHint: false;
1794
1855
  readonly readOnlyHint: false;
1795
1856
  };
1796
- readonly description: "Launch an interactive runner on the caller's team under an id the caller chooses. Launching the same id again returns the runner already running rather than starting a second one, and the same id with a different runnerName is refused. A runner is not permanent: it terminates on its own after a period of inactivity, and launching the same id after that starts and bills a new runner — so read `alreadyRunning` to tell which happened. After a successful launch, make the next action a normal user-visible assistant message containing the exact returned `url`, before the first browser action. Tool output and internal reasoning do not count as sharing the link. When `alreadyRunning` is true the `url` is the same page, so share it again instead of assuming the caller still has it.";
1857
+ readonly description: "Launch an interactive runner on the caller's team under an id the caller chooses. Launching the same id again returns the runner already running rather than starting a second one, and the same id with a different runnerName is refused. A runner is not permanent: it terminates on its own after a period of inactivity, and launching the same id after that starts and bills a new runner — so read `alreadyRunning` to tell which happened. A success means the runner is answering: the call waits for the pod it started to come up, so the very next call to the runner reaches it. If the pod does not come up in time the call fails instead, leaving the runner running — launching the same id again attaches to it. After a successful launch, put the exact returned `url` in a normal user-visible assistant message so they can watch while the browser is driven. Tool output and internal reasoning do not count as sharing the link. When `alreadyRunning` is true the `url` is the same page, so share it again instead of assuming the caller still has it.";
1797
1858
  readonly input: z.ZodObject<{
1798
1859
  id: z.ZodString;
1799
1860
  runnerName: z.ZodOptional<z.ZodEnum<{
@@ -1853,7 +1914,7 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1853
1914
  readonly openWorldHint: true;
1854
1915
  readonly readOnlyHint: false;
1855
1916
  };
1856
- readonly description: "Perform one raw browser action on an interactive runner: click, double_click, move, drag, scroll, keypress, type, or navigate. Coordinates are whole pixels on the runner's virtual desktop, in the same space as `runner.takeScreenshot`. One action per request, and the runner serves one at a time. The action shapes follow the computer-use vocabulary, minus `screenshot` (use `runner.takeScreenshot`) and `wait` (delay on the caller's side). A success means the action took effect. `action-failed`, with a reason, if it reached the runner and did not take effect. On a runner image with a browser, the first action on a runner that has never run anything starts its browser and waits for it, so it can take up to a minute to answer — no `runner.runFlow` is needed before acting; if the browser is still starting when the wait runs out, the answer is `screen-not-ready` and retrying converges. On a mobile runner, the same `screen-needs-a-run` and `screen-not-ready` outcomes mean no Appium session has started yet, or it did not answer this instant; `runner.runFlow` is what starts one, same as a browser. `screen-needs-a-run` if the browser could not be started that way — usually a runner whose runs all finished without starting its desktop; call `runner.runFlow` with a flow that opens a browser. `screen-not-ready` if the runner has a screen that cannot serve this instant. Retry in a second or two: the desktop restarts when a run changes the display size, and it serves one see-or-act request at a time, so a screenshot or action already in flight is the usual reason. Do not submit a run to clear this — a run may restart the display and discard what is on it. A `navigate` does not go through the screen, so a screen that is not ready does not stop it. `runner-has-no-screen` if this runner is not one that runs a browser on a virtual desktop. Nothing about it can be seen or driven, and retrying will never help — launch a `playwright` runner instead. `action-not-supported-on-mobile` if the runner is a mobile device and this action has no touchscreen equivalent: `double_click`, `scroll`, `move`, `keypress` and `navigate`, and a `click` whose `button` is not `left`, are all pointer-device concepts a touchscreen has nothing to offer for. `click` taps, `drag` swipes between its path's first and last point, and `type` types into whatever the last tap focused. With `withScreenshot: true`, the answer also carries `imageJpegBase64`: a screenshot taken after the action, once the screen has changed from just before it or half a second has passed, whichever comes first. One call instead of `runner.performAction` followed by `runner.takeScreenshot`, with no fixed wait in between. Anything animating on the page counts as a change. The action itself is performed exactly as without the option; if the screen could serve no frame after it — a display restart, or a `navigate` on a desktop that is still starting — the action's result comes back without `imageJpegBase64`, so take a screenshot separately rather than repeating the action. On a mobile runner the screenshot is the device's own, taken right after a performed action. `runner-unreachable` if the runner could not be reached: it may still be starting, it may have terminated after inactivity, or it may have stopped answering mid-action. This does not mean the action was not performed — take a screenshot before repeating it.";
1917
+ readonly description: "Perform one raw browser action on an interactive runner: click, double_click, move, drag, scroll, keypress, type, or navigate. One action per request, and the runner serves one at a time. A success means the action took effect. `action-failed`, with a reason, if it reached the runner and did not take effect. On a runner image with a browser, the first action on a runner that has never run anything starts its browser and waits for it, so it can take up to a minute to answer — no `runner.runFlow` is needed before acting; if the browser is still starting when the wait runs out, the answer is `screen-not-ready` and retrying converges. On a mobile runner, the same `screen-needs-a-run` and `screen-not-ready` outcomes mean no Appium session has started yet, or it did not answer this instant; `runner.runFlow` is what starts one, same as a browser. `screen-needs-a-run` if the browser could not be started that way — usually a runner whose runs all finished without starting its desktop; call `runner.runFlow` with a flow that opens a browser. `screen-not-ready` if the runner has a screen that cannot serve this instant. Retry in a second or two: the desktop restarts when a run changes the display size, and it serves one see-or-act request at a time, so a screenshot or action already in flight is the usual reason. Do not submit a run to clear this — a run may restart the display and discard what is on it. `runner-has-no-screen` if this runner is not one that runs a browser on a virtual desktop. Nothing about it can be seen or driven, and retrying will never help — launch a `playwright` runner instead. `runner-unreachable` if the runner could not be reached: it may still be starting, it may have terminated after inactivity, or it may have stopped answering mid-action. This does not mean the action was not performed — take a screenshot before repeating it.";
1857
1918
  readonly input: z.ZodObject<{
1858
1919
  action: z.ZodDiscriminatedUnion<[z.ZodObject<{
1859
1920
  button: z.ZodLiteral<"left" | "right" | "wheel" | "back" | "forward">;
@@ -2677,7 +2738,7 @@ export declare const publicContractsV1: {
2677
2738
  readonly openWorldHint: true;
2678
2739
  readonly readOnlyHint: false;
2679
2740
  };
2680
- readonly description: "Start or continue work with the QA Wolf AI and return a live session URL to share with the user. Use it to cover a user journey, investigate a failing run, or fix a broken flow. This is the one verb that starts work from nothing: every other write acts on a flow, run or issue that already exists. Returns sessionId, status, and url as soon as the request is accepted; work can take minutes to tens of minutes. After each send, make the next action a normal user-visible assistant message containing the exact returned url, before any tool call or wait. Tool output and internal reasoning do not count as sharing the link. Do not run a timer or monitoring call alongside this send. Acceptance does not mean the work is complete. Then monitor the session with agent.get, reporting new progress, blockers, and the final outcome rather than unchanged status. Send here again to answer a question or add context to the same session.";
2741
+ readonly description: "Start or continue work with the QA Wolf AI and return a live session URL to share with the user. Use it to cover a user journey, investigate a failing run, or fix a broken flow. This is the one verb that starts work from nothing: every other write acts on a flow, run or issue that already exists. Returns sessionId, status, and url as soon as the request is accepted; work can take minutes to tens of minutes. After each send, put the exact returned url in a normal user-visible assistant message, and repeat it in the last message of the turn: only a turn's trailing message is shown expanded. Tool output and internal reasoning do not count as sharing the link. Do not run a timer or monitoring call alongside this send. Acceptance does not mean the work is complete. Then monitor the session with agent.get, reporting new progress, blockers, and the final outcome rather than unchanged status. Send here again to answer a question or add context to the same session.";
2681
2742
  readonly input: z.ZodObject<{
2682
2743
  environmentId: z.ZodOptional<PublicIdSchema>;
2683
2744
  filePaths: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -2721,6 +2782,63 @@ export declare const publicContractsV1: {
2721
2782
  url: z.ZodURL;
2722
2783
  }, z.core.$strip>;
2723
2784
  };
2785
+ codeHostIntegration: {
2786
+ find: {
2787
+ readonly annotations: {
2788
+ readonly destructiveHint: false;
2789
+ readonly openWorldHint: false;
2790
+ readonly readOnlyHint: true;
2791
+ };
2792
+ readonly description: "List the workspace's code host integrations (GitHub or GitLab). A connected integration lets QA Wolf read repositories and receive the code host's webhooks. codeHostIntegration.listRepositories pages the repositories each integration covers.";
2793
+ readonly input: z.ZodObject<{
2794
+ workspaceId: z.ZodOptional<PublicIdSchema>;
2795
+ }, z.core.$strip>;
2796
+ readonly kind: "read";
2797
+ readonly name: "codeHostIntegration.find";
2798
+ readonly output: z.ZodObject<{
2799
+ integrations: z.ZodArray<z.ZodObject<{
2800
+ connectedAt: z.ZodISODateTime;
2801
+ provider: z.ZodEnum<{
2802
+ github: "github";
2803
+ gitlab: "gitlab";
2804
+ }>;
2805
+ suspendedAt: z.ZodOptional<z.ZodISODateTime>;
2806
+ url: z.ZodURL;
2807
+ }, z.core.$strip>>;
2808
+ settingsUrl: z.ZodURL;
2809
+ }, z.core.$strip>;
2810
+ };
2811
+ listRepositories: {
2812
+ readonly annotations: {
2813
+ readonly destructiveHint: false;
2814
+ readonly openWorldHint: false;
2815
+ readonly readOnlyHint: true;
2816
+ };
2817
+ readonly description: "List the repositories the workspace's code host integrations cover, alphabetical by full name. The list reflects the last sync from the code host; codeHostIntegration.find lists the integrations themselves.";
2818
+ readonly input: z.ZodObject<{
2819
+ cursor: z.ZodOptional<z.ZodString>;
2820
+ limit: z.ZodDefault<z.ZodNumber>;
2821
+ provider: z.ZodOptional<z.ZodEnum<{
2822
+ github: "github";
2823
+ gitlab: "gitlab";
2824
+ }>>;
2825
+ workspaceId: z.ZodOptional<PublicIdSchema>;
2826
+ }, z.core.$strip>;
2827
+ readonly kind: "read";
2828
+ readonly name: "codeHostIntegration.listRepositories";
2829
+ readonly output: z.ZodObject<{
2830
+ nextCursor: z.ZodOptional<z.ZodString>;
2831
+ repositories: z.ZodArray<z.ZodObject<{
2832
+ fullName: z.ZodString;
2833
+ provider: z.ZodEnum<{
2834
+ github: "github";
2835
+ gitlab: "gitlab";
2836
+ }>;
2837
+ url: z.ZodURL;
2838
+ }, z.core.$strip>>;
2839
+ }, z.core.$strip>;
2840
+ };
2841
+ };
2724
2842
  deployment: {
2725
2843
  reportStatus: {
2726
2844
  readonly annotations: {
@@ -3013,6 +3131,7 @@ export declare const publicContractsV1: {
3013
3131
  running: "running";
3014
3132
  }>;
3015
3133
  terminatedAt: z.ZodOptional<z.ZodISODateTime>;
3134
+ variablesUrl: z.ZodOptional<z.ZodURL>;
3016
3135
  url: z.ZodURL;
3017
3136
  }, z.core.$strip>;
3018
3137
  };
@@ -3080,6 +3199,7 @@ export declare const publicContractsV1: {
3080
3199
  running: "running";
3081
3200
  }>;
3082
3201
  terminatedAt: z.ZodOptional<z.ZodISODateTime>;
3202
+ variablesUrl: z.ZodOptional<z.ZodURL>;
3083
3203
  url: z.ZodURL;
3084
3204
  }, z.core.$strip>>;
3085
3205
  nextCursor: z.ZodOptional<z.ZodString>;
@@ -3123,6 +3243,7 @@ export declare const publicContractsV1: {
3123
3243
  running: "running";
3124
3244
  }>;
3125
3245
  terminatedAt: z.ZodOptional<z.ZodISODateTime>;
3246
+ variablesUrl: z.ZodOptional<z.ZodURL>;
3126
3247
  url: z.ZodURL;
3127
3248
  }, z.core.$strip>;
3128
3249
  };
@@ -3224,6 +3345,7 @@ export declare const publicContractsV1: {
3224
3345
  running: "running";
3225
3346
  }>;
3226
3347
  terminatedAt: z.ZodOptional<z.ZodISODateTime>;
3348
+ variablesUrl: z.ZodOptional<z.ZodURL>;
3227
3349
  url: z.ZodURL;
3228
3350
  }, z.core.$strip>;
3229
3351
  };
@@ -4420,7 +4542,7 @@ export declare const publicContractsV1: {
4420
4542
  readonly openWorldHint: false;
4421
4543
  readonly readOnlyHint: false;
4422
4544
  };
4423
- readonly description: "Launch an interactive runner on the caller's team under an id the caller chooses. Launching the same id again returns the runner already running rather than starting a second one, and the same id with a different runnerName is refused. A runner is not permanent: it terminates on its own after a period of inactivity, and launching the same id after that starts and bills a new runner — so read `alreadyRunning` to tell which happened. After a successful launch, make the next action a normal user-visible assistant message containing the exact returned `url`, before the first browser action. Tool output and internal reasoning do not count as sharing the link. When `alreadyRunning` is true the `url` is the same page, so share it again instead of assuming the caller still has it.";
4545
+ readonly description: "Launch an interactive runner on the caller's team under an id the caller chooses. Launching the same id again returns the runner already running rather than starting a second one, and the same id with a different runnerName is refused. A runner is not permanent: it terminates on its own after a period of inactivity, and launching the same id after that starts and bills a new runner — so read `alreadyRunning` to tell which happened. A success means the runner is answering: the call waits for the pod it started to come up, so the very next call to the runner reaches it. If the pod does not come up in time the call fails instead, leaving the runner running — launching the same id again attaches to it. After a successful launch, put the exact returned `url` in a normal user-visible assistant message so they can watch while the browser is driven. Tool output and internal reasoning do not count as sharing the link. When `alreadyRunning` is true the `url` is the same page, so share it again instead of assuming the caller still has it.";
4424
4546
  readonly input: z.ZodObject<{
4425
4547
  id: z.ZodString;
4426
4548
  runnerName: z.ZodOptional<z.ZodEnum<{
@@ -4480,7 +4602,7 @@ export declare const publicContractsV1: {
4480
4602
  readonly openWorldHint: true;
4481
4603
  readonly readOnlyHint: false;
4482
4604
  };
4483
- readonly description: "Perform one raw browser action on an interactive runner: click, double_click, move, drag, scroll, keypress, type, or navigate. Coordinates are whole pixels on the runner's virtual desktop, in the same space as `runner.takeScreenshot`. One action per request, and the runner serves one at a time. The action shapes follow the computer-use vocabulary, minus `screenshot` (use `runner.takeScreenshot`) and `wait` (delay on the caller's side). A success means the action took effect. `action-failed`, with a reason, if it reached the runner and did not take effect. On a runner image with a browser, the first action on a runner that has never run anything starts its browser and waits for it, so it can take up to a minute to answer — no `runner.runFlow` is needed before acting; if the browser is still starting when the wait runs out, the answer is `screen-not-ready` and retrying converges. On a mobile runner, the same `screen-needs-a-run` and `screen-not-ready` outcomes mean no Appium session has started yet, or it did not answer this instant; `runner.runFlow` is what starts one, same as a browser. `screen-needs-a-run` if the browser could not be started that way — usually a runner whose runs all finished without starting its desktop; call `runner.runFlow` with a flow that opens a browser. `screen-not-ready` if the runner has a screen that cannot serve this instant. Retry in a second or two: the desktop restarts when a run changes the display size, and it serves one see-or-act request at a time, so a screenshot or action already in flight is the usual reason. Do not submit a run to clear this — a run may restart the display and discard what is on it. A `navigate` does not go through the screen, so a screen that is not ready does not stop it. `runner-has-no-screen` if this runner is not one that runs a browser on a virtual desktop. Nothing about it can be seen or driven, and retrying will never help — launch a `playwright` runner instead. `action-not-supported-on-mobile` if the runner is a mobile device and this action has no touchscreen equivalent: `double_click`, `scroll`, `move`, `keypress` and `navigate`, and a `click` whose `button` is not `left`, are all pointer-device concepts a touchscreen has nothing to offer for. `click` taps, `drag` swipes between its path's first and last point, and `type` types into whatever the last tap focused. With `withScreenshot: true`, the answer also carries `imageJpegBase64`: a screenshot taken after the action, once the screen has changed from just before it or half a second has passed, whichever comes first. One call instead of `runner.performAction` followed by `runner.takeScreenshot`, with no fixed wait in between. Anything animating on the page counts as a change. The action itself is performed exactly as without the option; if the screen could serve no frame after it — a display restart, or a `navigate` on a desktop that is still starting — the action's result comes back without `imageJpegBase64`, so take a screenshot separately rather than repeating the action. On a mobile runner the screenshot is the device's own, taken right after a performed action. `runner-unreachable` if the runner could not be reached: it may still be starting, it may have terminated after inactivity, or it may have stopped answering mid-action. This does not mean the action was not performed — take a screenshot before repeating it.";
4605
+ readonly description: "Perform one raw browser action on an interactive runner: click, double_click, move, drag, scroll, keypress, type, or navigate. One action per request, and the runner serves one at a time. A success means the action took effect. `action-failed`, with a reason, if it reached the runner and did not take effect. On a runner image with a browser, the first action on a runner that has never run anything starts its browser and waits for it, so it can take up to a minute to answer — no `runner.runFlow` is needed before acting; if the browser is still starting when the wait runs out, the answer is `screen-not-ready` and retrying converges. On a mobile runner, the same `screen-needs-a-run` and `screen-not-ready` outcomes mean no Appium session has started yet, or it did not answer this instant; `runner.runFlow` is what starts one, same as a browser. `screen-needs-a-run` if the browser could not be started that way — usually a runner whose runs all finished without starting its desktop; call `runner.runFlow` with a flow that opens a browser. `screen-not-ready` if the runner has a screen that cannot serve this instant. Retry in a second or two: the desktop restarts when a run changes the display size, and it serves one see-or-act request at a time, so a screenshot or action already in flight is the usual reason. Do not submit a run to clear this — a run may restart the display and discard what is on it. `runner-has-no-screen` if this runner is not one that runs a browser on a virtual desktop. Nothing about it can be seen or driven, and retrying will never help — launch a `playwright` runner instead. `runner-unreachable` if the runner could not be reached: it may still be starting, it may have terminated after inactivity, or it may have stopped answering mid-action. This does not mean the action was not performed — take a screenshot before repeating it.";
4484
4606
  readonly input: z.ZodObject<{
4485
4607
  action: z.ZodDiscriminatedUnion<[z.ZodObject<{
4486
4608
  button: z.ZodLiteral<"left" | "right" | "wheel" | "back" | "forward">;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/v1/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,cAAc,oBAAoB,CAAC;AAKnC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAuB5D,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EAEvB,MAAM,UAAU,CAAC;AAyClB,MAAM,MAAM,cAAc,CAAC,GAAG,SAAS,oBAAoB,IAAI,CAAC,CAAC,KAAK,CACpE,GAAG,CAAC,OAAO,CAAC,CACb,CAAC;AAEF,MAAM,MAAM,eAAe,CAAC,GAAG,SAAS,oBAAoB,IAAI,CAAC,CAAC,KAAK,CACrE,GAAG,CAAC,QAAQ,CAAC,CACd,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAC1B,aAAa,SAAS,cAAc,EACpC,MAAM,SAAS,cAAc,EAC7B,KAAK,SAAS,cAAc,EAC5B,YAAY,SAAS,cAAc,GAAG,cAAc,EACpD,OAAO,SAAS,cAAc,GAAG,cAAc,EAC/C,WAAW,SAAS,cAAc,GAAG,cAAc,EACnD,QAAQ,SAAS,cAAc,GAAG,cAAc,EAChD,aAAa,SAAS,cAAc,GAAG,cAAc,EACrD,SAAS,SAAS,cAAc,GAAG,cAAc,EAEjD,KAAK,iBAAiB,CACpB,aAAa,EACb,MAAM,EACN,KAAK,EACL,YAAY,EACZ,OAAO,EACP,WAAW,EACX,QAAQ,EACR,aAAa,EACb,SAAS,CACV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsFF,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAoC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/v1/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,cAAc,oBAAoB,CAAC;AAOnC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAuB5D,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EAEvB,MAAM,UAAU,CAAC;AAyClB,MAAM,MAAM,cAAc,CAAC,GAAG,SAAS,oBAAoB,IAAI,CAAC,CAAC,KAAK,CACpE,GAAG,CAAC,OAAO,CAAC,CACb,CAAC;AAEF,MAAM,MAAM,eAAe,CAAC,GAAG,SAAS,oBAAoB,IAAI,CAAC,CAAC,KAAK,CACrE,GAAG,CAAC,QAAQ,CAAC,CACd,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAC1B,aAAa,SAAS,cAAc,EACpC,MAAM,SAAS,cAAc,EAC7B,KAAK,SAAS,cAAc,EAC5B,YAAY,SAAS,cAAc,GAAG,cAAc,EACpD,OAAO,SAAS,cAAc,GAAG,cAAc,EAC/C,WAAW,SAAS,cAAc,GAAG,cAAc,EACnD,QAAQ,SAAS,cAAc,GAAG,cAAc,EAChD,aAAa,SAAS,cAAc,GAAG,cAAc,EACrD,SAAS,SAAS,cAAc,GAAG,cAAc,EAEjD,KAAK,iBAAiB,CACpB,aAAa,EACb,MAAM,EACN,KAAK,EACL,YAAY,EACZ,OAAO,EACP,WAAW,EACX,QAAQ,EACR,aAAa,EACb,SAAS,CACV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0FF,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAoC,CAAC"}
package/dist/v1/index.js CHANGED
@@ -2,6 +2,8 @@ export * from "./sharedSchemas.js";
2
2
  import { makeAgentGetContract } from "./agent/get.js";
3
3
  import { makeAgentSendContract } from "./agent/send.js";
4
4
  import { makeAutomateContract } from "./automate/index.js";
5
+ import { makeFindCodeHostIntegrationsContract } from "./codeHostIntegration/find.js";
6
+ import { makeListCodeHostRepositoriesContract } from "./codeHostIntegration/listRepositories.js";
5
7
  import { makeReportDeploymentStatusContract } from "./deployment/reportStatus.js";
6
8
  import { makeFindEmailsContract } from "./email/find.js";
7
9
  import { makeGetEmailContract } from "./email/get.js";
@@ -70,6 +72,10 @@ export const makeContractsV1 = (ids) => {
70
72
  // Top-level contract: the public command is the verb itself, with no
71
73
  // resource namespace (`qawolf automate`).
72
74
  automate: makeAutomateContract(resolvedIds),
75
+ codeHostIntegration: {
76
+ find: makeFindCodeHostIntegrationsContract(resolvedIds),
77
+ listRepositories: makeListCodeHostRepositoriesContract(resolvedIds),
78
+ },
73
79
  deployment: {
74
80
  reportStatus: makeReportDeploymentStatusContract(resolvedIds),
75
81
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/v1/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/v1/index.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ export const runnerIdSchema = z
14
14
  .regex(/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/, "A runner id may contain only lowercase letters, digits and dashes, and must start and end with a letter or digit.");
15
15
  export const runnerWatchUrlSchema = z
16
16
  .url()
17
- .describe("A QA Wolf page showing what the runner is doing right now, where the person who launched it can watch and take over with their own mouse and keyboard. Opening it requires being signed in to QA Wolf. This link belongs to the user: put it in a normal message as soon as the runner is launched, so they can follow along while the browser is being driven. It is theirs to open, never a page for the caller to fetch or navigate to.");
17
+ .describe("A QA Wolf page showing what the runner is doing right now, where the person who launched it can watch and take over with their own mouse and keyboard. Opening it requires being signed in to QA Wolf. This link belongs to the user: put it in a normal message as soon as the runner is launched, so they can follow along while the browser is being driven. It is theirs to open, never a page for the caller to fetch or navigate to. The page ends when the runner is terminated, so share it while the runner is alive and report what you found at the end instead of repeating a dead link.");
18
18
  /** The shared interactive runner shape. */
19
19
  export const makeRunnerSchema = () => z.object({
20
20
  gpuAccelerated: z
@@ -1 +1 @@
1
- {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../../src/v1/runner/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC;IACrC,OAAO;IACP,YAAY;IACZ,SAAS;IACT,KAAK;CACN,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,0BAA0B,GACrC,iJAAiJ,CAAC;AAEpJ,MAAM,CAAC,MAAM,4BAA4B,GAAG,wCAAwC,0BAA0B,EAAE,CAAC;AAEjH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC;KAC5B,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,EAAE,CAAC;KACP,KAAK,CACJ,iCAAiC,EACjC,mHAAmH,CACpH,CAAC;AAEJ,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAClC,GAAG,EAAE;KACL,QAAQ,CACP,4aAA4a,CAC7a,CAAC;AAEJ,2CAA2C;AAC3C,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE,CACnC,CAAC,CAAC,MAAM,CAAC;IACP,cAAc,EAAE,CAAC;SACd,OAAO,EAAE;SACT,QAAQ,CACP,+IAA+I,CAChJ;IACH,EAAE,EAAE,cAAc,CAAC,QAAQ,CACzB,iDAAiD,CAClD;IACD,UAAU,EAAE,gBAAgB,CAAC,QAAQ,CACnC,gIAAgI,CACjI;IACD,GAAG,EAAE,oBAAoB;CAC1B,CAAC,CAAC"}
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../../src/v1/runner/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC;IACrC,OAAO;IACP,YAAY;IACZ,SAAS;IACT,KAAK;CACN,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,0BAA0B,GACrC,iJAAiJ,CAAC;AAEpJ,MAAM,CAAC,MAAM,4BAA4B,GAAG,wCAAwC,0BAA0B,EAAE,CAAC;AAEjH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC;KAC5B,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,EAAE,CAAC;KACP,KAAK,CACJ,iCAAiC,EACjC,mHAAmH,CACpH,CAAC;AAEJ,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAClC,GAAG,EAAE;KACL,QAAQ,CACP,skBAAskB,CACvkB,CAAC;AAEJ,2CAA2C;AAC3C,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE,CACnC,CAAC,CAAC,MAAM,CAAC;IACP,cAAc,EAAE,CAAC;SACd,OAAO,EAAE;SACT,QAAQ,CACP,+IAA+I,CAChJ;IACH,EAAE,EAAE,cAAc,CAAC,QAAQ,CACzB,iDAAiD,CAClD;IACD,UAAU,EAAE,gBAAgB,CAAC,QAAQ,CACnC,gIAAgI,CACjI;IACD,GAAG,EAAE,oBAAoB;CAC1B,CAAC,CAAC"}
@@ -8,7 +8,7 @@ export declare const makeLaunchRunnerContract: <WorkspaceId extends PublicIdSche
8
8
  readonly openWorldHint: false;
9
9
  readonly readOnlyHint: false;
10
10
  };
11
- readonly description: "Launch an interactive runner on the caller's team under an id the caller chooses. Launching the same id again returns the runner already running rather than starting a second one, and the same id with a different runnerName is refused. A runner is not permanent: it terminates on its own after a period of inactivity, and launching the same id after that starts and bills a new runner — so read `alreadyRunning` to tell which happened. After a successful launch, make the next action a normal user-visible assistant message containing the exact returned `url`, before the first browser action. Tool output and internal reasoning do not count as sharing the link. When `alreadyRunning` is true the `url` is the same page, so share it again instead of assuming the caller still has it.";
11
+ readonly description: "Launch an interactive runner on the caller's team under an id the caller chooses. Launching the same id again returns the runner already running rather than starting a second one, and the same id with a different runnerName is refused. A runner is not permanent: it terminates on its own after a period of inactivity, and launching the same id after that starts and bills a new runner — so read `alreadyRunning` to tell which happened. A success means the runner is answering: the call waits for the pod it started to come up, so the very next call to the runner reaches it. If the pod does not come up in time the call fails instead, leaving the runner running — launching the same id again attaches to it. After a successful launch, put the exact returned `url` in a normal user-visible assistant message so they can watch while the browser is driven. Tool output and internal reasoning do not count as sharing the link. When `alreadyRunning` is true the `url` is the same page, so share it again instead of assuming the caller still has it.";
12
12
  readonly input: z.ZodObject<{
13
13
  id: z.ZodString;
14
14
  runnerName: z.ZodOptional<z.ZodEnum<{
@@ -22,7 +22,7 @@ export const makeLaunchRunnerContract = (ids) => {
22
22
  openWorldHint: false,
23
23
  readOnlyHint: false,
24
24
  },
25
- description: "Launch an interactive runner on the caller's team under an id the caller chooses. Launching the same id again returns the runner already running rather than starting a second one, and the same id with a different runnerName is refused. A runner is not permanent: it terminates on its own after a period of inactivity, and launching the same id after that starts and bills a new runner — so read `alreadyRunning` to tell which happened. After a successful launch, make the next action a normal user-visible assistant message containing the exact returned `url`, before the first browser action. Tool output and internal reasoning do not count as sharing the link. When `alreadyRunning` is true the `url` is the same page, so share it again instead of assuming the caller still has it.",
25
+ description: "Launch an interactive runner on the caller's team under an id the caller chooses. Launching the same id again returns the runner already running rather than starting a second one, and the same id with a different runnerName is refused. A runner is not permanent: it terminates on its own after a period of inactivity, and launching the same id after that starts and bills a new runner — so read `alreadyRunning` to tell which happened. A success means the runner is answering: the call waits for the pod it started to come up, so the very next call to the runner reaches it. If the pod does not come up in time the call fails instead, leaving the runner running — launching the same id again attaches to it. After a successful launch, put the exact returned `url` in a normal user-visible assistant message so they can watch while the browser is driven. Tool output and internal reasoning do not count as sharing the link. When `alreadyRunning` is true the `url` is the same page, so share it again instead of assuming the caller still has it.",
26
26
  input,
27
27
  kind: "write",
28
28
  name: "runner.launch",
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/v1/runner/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,eAAe,CAAC;AAEvB,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAEtC,GAED,EAAE,EAAE;IACH,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;QACrB,EAAE,EAAE,cAAc,CAAC,QAAQ,CACzB,+HAA+H,CAChI;QACD,UAAU,EAAE,gBAAgB;aACzB,QAAQ,EAAE;aACV,QAAQ,CACP,+EAA+E,CAChF;QACH,WAAW,EAAE,GAAG,CAAC,SAAS;aACvB,QAAQ,EAAE;aACV,QAAQ,CACP,0CAA0C,0BAA0B,EAAE,CACvE;KACJ,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC,MAAM,CAAC;QACvC,cAAc,EAAE,CAAC;aACd,OAAO,EAAE;aACT,QAAQ,CACP,sKAAsK,CACvK;QACH,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;KAC9B,CAAC,CAAC;IAEH,OAAO;QACL,WAAW,EAAE;YACX,eAAe,EAAE,IAAI;YACrB,aAAa,EAAE,KAAK;YACpB,YAAY,EAAE,KAAK;SACpB;QACD,WAAW,EACT,ixBAAixB;QACnxB,KAAK;QACL,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,eAAe;QACrB,MAAM;KAMP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAEzC,GAED,EAAE,EAAE;IACH,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;QACrB,EAAE,EAAE,cAAc,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QAC7D,WAAW,EAAE,GAAG,CAAC,SAAS;aACvB,QAAQ,EAAE;aACV,QAAQ,CAAC,4BAA4B,CAAC;KAC1C,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QACtB,EAAE,EAAE,cAAc,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QACnE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QAC7B,UAAU,EAAE,CAAC;aACV,OAAO,EAAE;aACT,QAAQ,CACP,2RAA2R,CAC5R;KACJ,CAAC,CAAC;IAEH,OAAO;QACL,WAAW,EAAE;YACX,eAAe,EAAE,IAAI;YACrB,aAAa,EAAE,KAAK;YACpB,YAAY,EAAE,KAAK;SACpB;QACD,WAAW,EACT,yRAAyR;QAC3R,KAAK;QACL,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,kBAAkB;QACxB,MAAM;KAMP,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/v1/runner/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,eAAe,CAAC;AAEvB,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAEtC,GAED,EAAE,EAAE;IACH,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;QACrB,EAAE,EAAE,cAAc,CAAC,QAAQ,CACzB,+HAA+H,CAChI;QACD,UAAU,EAAE,gBAAgB;aACzB,QAAQ,EAAE;aACV,QAAQ,CACP,+EAA+E,CAChF;QACH,WAAW,EAAE,GAAG,CAAC,SAAS;aACvB,QAAQ,EAAE;aACV,QAAQ,CACP,0CAA0C,0BAA0B,EAAE,CACvE;KACJ,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC,MAAM,CAAC;QACvC,cAAc,EAAE,CAAC;aACd,OAAO,EAAE;aACT,QAAQ,CACP,sKAAsK,CACvK;QACH,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;KAC9B,CAAC,CAAC;IAEH,OAAO;QACL,WAAW,EAAE;YACX,eAAe,EAAE,IAAI;YACrB,aAAa,EAAE,KAAK;YACpB,YAAY,EAAE,KAAK;SACpB;QACD,WAAW,EACT,qhCAAqhC;QACvhC,KAAK;QACL,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,eAAe;QACrB,MAAM;KAMP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAEzC,GAED,EAAE,EAAE;IACH,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;QACrB,EAAE,EAAE,cAAc,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QAC7D,WAAW,EAAE,GAAG,CAAC,SAAS;aACvB,QAAQ,EAAE;aACV,QAAQ,CAAC,4BAA4B,CAAC;KAC1C,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QACtB,EAAE,EAAE,cAAc,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QACnE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QAC7B,UAAU,EAAE,CAAC;aACV,OAAO,EAAE;aACT,QAAQ,CACP,2RAA2R,CAC5R;KACJ,CAAC,CAAC;IAEH,OAAO;QACL,WAAW,EAAE;YACX,eAAe,EAAE,IAAI;YACrB,aAAa,EAAE,KAAK;YACpB,YAAY,EAAE,KAAK;SACpB;QACD,WAAW,EACT,yRAAyR;QAC3R,KAAK;QACL,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,kBAAkB;QACxB,MAAM;KAMP,CAAC;AACJ,CAAC,CAAC"}
@@ -10,7 +10,7 @@ export declare const makePerformActionOnRunnerContract: <WorkspaceId extends Pub
10
10
  readonly openWorldHint: true;
11
11
  readonly readOnlyHint: false;
12
12
  };
13
- readonly description: "Perform one raw browser action on an interactive runner: click, double_click, move, drag, scroll, keypress, type, or navigate. Coordinates are whole pixels on the runner's virtual desktop, in the same space as `runner.takeScreenshot`. One action per request, and the runner serves one at a time. The action shapes follow the computer-use vocabulary, minus `screenshot` (use `runner.takeScreenshot`) and `wait` (delay on the caller's side). A success means the action took effect. `action-failed`, with a reason, if it reached the runner and did not take effect. On a runner image with a browser, the first action on a runner that has never run anything starts its browser and waits for it, so it can take up to a minute to answer — no `runner.runFlow` is needed before acting; if the browser is still starting when the wait runs out, the answer is `screen-not-ready` and retrying converges. On a mobile runner, the same `screen-needs-a-run` and `screen-not-ready` outcomes mean no Appium session has started yet, or it did not answer this instant; `runner.runFlow` is what starts one, same as a browser. `screen-needs-a-run` if the browser could not be started that way — usually a runner whose runs all finished without starting its desktop; call `runner.runFlow` with a flow that opens a browser. `screen-not-ready` if the runner has a screen that cannot serve this instant. Retry in a second or two: the desktop restarts when a run changes the display size, and it serves one see-or-act request at a time, so a screenshot or action already in flight is the usual reason. Do not submit a run to clear this — a run may restart the display and discard what is on it. A `navigate` does not go through the screen, so a screen that is not ready does not stop it. `runner-has-no-screen` if this runner is not one that runs a browser on a virtual desktop. Nothing about it can be seen or driven, and retrying will never help — launch a `playwright` runner instead. `action-not-supported-on-mobile` if the runner is a mobile device and this action has no touchscreen equivalent: `double_click`, `scroll`, `move`, `keypress` and `navigate`, and a `click` whose `button` is not `left`, are all pointer-device concepts a touchscreen has nothing to offer for. `click` taps, `drag` swipes between its path's first and last point, and `type` types into whatever the last tap focused. With `withScreenshot: true`, the answer also carries `imageJpegBase64`: a screenshot taken after the action, once the screen has changed from just before it or half a second has passed, whichever comes first. One call instead of `runner.performAction` followed by `runner.takeScreenshot`, with no fixed wait in between. Anything animating on the page counts as a change. The action itself is performed exactly as without the option; if the screen could serve no frame after it — a display restart, or a `navigate` on a desktop that is still starting — the action's result comes back without `imageJpegBase64`, so take a screenshot separately rather than repeating the action. On a mobile runner the screenshot is the device's own, taken right after a performed action. `runner-unreachable` if the runner could not be reached: it may still be starting, it may have terminated after inactivity, or it may have stopped answering mid-action. This does not mean the action was not performed — take a screenshot before repeating it.";
13
+ readonly description: "Perform one raw browser action on an interactive runner: click, double_click, move, drag, scroll, keypress, type, or navigate. One action per request, and the runner serves one at a time. A success means the action took effect. `action-failed`, with a reason, if it reached the runner and did not take effect. On a runner image with a browser, the first action on a runner that has never run anything starts its browser and waits for it, so it can take up to a minute to answer — no `runner.runFlow` is needed before acting; if the browser is still starting when the wait runs out, the answer is `screen-not-ready` and retrying converges. On a mobile runner, the same `screen-needs-a-run` and `screen-not-ready` outcomes mean no Appium session has started yet, or it did not answer this instant; `runner.runFlow` is what starts one, same as a browser. `screen-needs-a-run` if the browser could not be started that way — usually a runner whose runs all finished without starting its desktop; call `runner.runFlow` with a flow that opens a browser. `screen-not-ready` if the runner has a screen that cannot serve this instant. Retry in a second or two: the desktop restarts when a run changes the display size, and it serves one see-or-act request at a time, so a screenshot or action already in flight is the usual reason. Do not submit a run to clear this — a run may restart the display and discard what is on it. `runner-has-no-screen` if this runner is not one that runs a browser on a virtual desktop. Nothing about it can be seen or driven, and retrying will never help — launch a `playwright` runner instead. `runner-unreachable` if the runner could not be reached: it may still be starting, it may have terminated after inactivity, or it may have stopped answering mid-action. This does not mean the action was not performed — take a screenshot before repeating it.";
14
14
  readonly input: z.ZodObject<{
15
15
  action: z.ZodDiscriminatedUnion<[z.ZodObject<{
16
16
  button: z.ZodLiteral<"left" | "right" | "wheel" | "back" | "forward">;
@@ -1 +1 @@
1
- {"version":3,"file":"performAction.d.ts","sourceRoot":"","sources":["../../../src/v1/runner/performAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAwBhD,uDAAuD;AACvD,eAAO,MAAM,2BAA2B,OAAQ,CAAC;AAEjD,eAAO,MAAM,iCAAiC,GAC5C,WAAW,SAAS,cAAc,EAClC,KAAK;IACL,SAAS,EAAE,WAAW,CAAC;CACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+DA,CAAC"}
1
+ {"version":3,"file":"performAction.d.ts","sourceRoot":"","sources":["../../../src/v1/runner/performAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAwBhD,uDAAuD;AACvD,eAAO,MAAM,2BAA2B,OAAQ,CAAC;AAEjD,eAAO,MAAM,iCAAiC,GAC5C,WAAW,SAAS,cAAc,EAClC,KAAK;IACL,SAAS,EAAE,WAAW,CAAC;CACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0DA,CAAC"}
@@ -8,17 +8,14 @@ import { runnerUnreachableFailureReason } from "./unreachable.js";
8
8
  // answer was lost.
9
9
  const unreachableDescription = "`runner-unreachable` if the runner could not be reached: it may still be starting, it may have terminated after inactivity, or it may have stopped answering mid-action. This does not mean the action was not performed — take a screenshot before repeating it.";
10
10
  const notSupportedOnMobileDescription = "`action-not-supported-on-mobile` if the runner is a mobile device and this action has no touchscreen equivalent: `double_click`, `scroll`, `move`, `keypress` and `navigate`, and a `click` whose `button` is not `left`, are all pointer-device concepts a touchscreen has nothing to offer for. `click` taps, `drag` swipes between its path's first and last point, and `type` types into whatever the last tap focused.";
11
- const withScreenshotDescription = "With `withScreenshot: true`, the answer also carries `imageJpegBase64`: a screenshot taken after the action, once the screen has changed from just before it or half a second has passed, whichever comes first. One call instead of `runner.performAction` followed by `runner.takeScreenshot`, with no fixed wait in between. Anything animating on the page counts as a change. The action itself is performed exactly as without the option; if the screen could serve no frame after it — a display restart, or a `navigate` on a desktop that is still starting — the action's result comes back without `imageJpegBase64`, so take a screenshot separately rather than repeating the action. On a mobile runner the screenshot is the device's own, taken right after a performed action.";
11
+ const withScreenshotDescription = "With `withScreenshot: true`, the answer also carries `imageJpegBase64`: a screenshot taken after the action. One call instead of `runner.performAction` followed by `runner.takeScreenshot`. The action itself is performed exactly as without the option; if the screen could serve no frame after it — a display restart, or a `navigate` on a desktop that is still starting — the action's result comes back without `imageJpegBase64`, so take a screenshot separately rather than repeating the action. On a mobile runner the screenshot is the device's own, taken right after a performed action.";
12
12
  /** How much of a failure reason this API passes on. */
13
13
  export const maxActionErrorMessageLength = 1_000;
14
14
  export const makePerformActionOnRunnerContract = (ids) => {
15
15
  const input = z.object({
16
- action: browserActionSchema.describe("The action to perform. Coordinates are pixels on the screenshot's own coordinate space."),
16
+ action: browserActionSchema.describe(`The action to perform. Coordinates are whole pixels on the runner's virtual desktop, in the same space as \`runner.takeScreenshot\`. The action shapes follow the computer-use vocabulary, minus \`screenshot\` (use \`runner.takeScreenshot\`) and \`wait\` (delay on the caller's side). A \`navigate\` does not go through the screen, so a screen that is not ready does not stop it. ${notSupportedOnMobileDescription}`),
17
17
  id: runnerIdSchema.describe("Id of the runner to act on."),
18
- withScreenshot: z
19
- .boolean()
20
- .optional()
21
- .describe("Also answer with a screenshot taken after the action, once the screen has changed or half a second has passed. Saves the separate `runner.takeScreenshot` call and its fixed wait."),
18
+ withScreenshot: z.boolean().optional().describe(withScreenshotDescription),
22
19
  workspaceId: ids.workspace
23
20
  .optional()
24
21
  .describe(runnerWorkspaceIdDescription),
@@ -55,7 +52,7 @@ export const makePerformActionOnRunnerContract = (ids) => {
55
52
  openWorldHint: true,
56
53
  readOnlyHint: false,
57
54
  },
58
- description: `Perform one raw browser action on an interactive runner: click, double_click, move, drag, scroll, keypress, type, or navigate. Coordinates are whole pixels on the runner's virtual desktop, in the same space as \`runner.takeScreenshot\`. One action per request, and the runner serves one at a time. The action shapes follow the computer-use vocabulary, minus \`screenshot\` (use \`runner.takeScreenshot\`) and \`wait\` (delay on the caller's side). A success means the action took effect. \`action-failed\`, with a reason, if it reached the runner and did not take effect. On a runner image with a browser, the first action on a runner that has never run anything starts its browser and waits for it, so it can take up to a minute to answer — no \`runner.runFlow\` is needed before acting; if the browser is still starting when the wait runs out, the answer is \`screen-not-ready\` and retrying converges. On a mobile runner, the same \`screen-needs-a-run\` and \`screen-not-ready\` outcomes mean no Appium session has started yet, or it did not answer this instant; \`runner.runFlow\` is what starts one, same as a browser. \`screen-needs-a-run\` if the browser could not be started that way — usually a runner whose runs all finished without starting its desktop; call \`runner.runFlow\` with a flow that opens a browser. ${screenNotReadyDescription} A \`navigate\` does not go through the screen, so a screen that is not ready does not stop it. ${runnerHasNoScreenDescription} ${notSupportedOnMobileDescription} ${withScreenshotDescription} ${unreachableDescription}`,
55
+ description: `Perform one raw browser action on an interactive runner: click, double_click, move, drag, scroll, keypress, type, or navigate. One action per request, and the runner serves one at a time. A success means the action took effect. \`action-failed\`, with a reason, if it reached the runner and did not take effect. On a runner image with a browser, the first action on a runner that has never run anything starts its browser and waits for it, so it can take up to a minute to answer — no \`runner.runFlow\` is needed before acting; if the browser is still starting when the wait runs out, the answer is \`screen-not-ready\` and retrying converges. On a mobile runner, the same \`screen-needs-a-run\` and \`screen-not-ready\` outcomes mean no Appium session has started yet, or it did not answer this instant; \`runner.runFlow\` is what starts one, same as a browser. \`screen-needs-a-run\` if the browser could not be started that way — usually a runner whose runs all finished without starting its desktop; call \`runner.runFlow\` with a flow that opens a browser. ${screenNotReadyDescription} ${runnerHasNoScreenDescription} ${unreachableDescription}`,
59
56
  input,
60
57
  kind: "write",
61
58
  name: "runner.performAction",
@@ -1 +1 @@
1
- {"version":3,"file":"performAction.js","sourceRoot":"","sources":["../../../src/v1/runner/performAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAElE,gFAAgF;AAChF,mBAAmB;AACnB,MAAM,sBAAsB,GAC1B,mQAAmQ,CAAC;AAEtQ,MAAM,+BAA+B,GACnC,6ZAA6Z,CAAC;AAEha,MAAM,yBAAyB,GAC7B,kwBAAkwB,CAAC;AAErwB,uDAAuD;AACvD,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,CAAC;AAEjD,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAE/C,GAED,EAAE,EAAE;IACH,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;QACrB,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAClC,yFAAyF,CAC1F;QACD,EAAE,EAAE,cAAc,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QAC1D,cAAc,EAAE,CAAC;aACd,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CACP,oLAAoL,CACrL;QACH,WAAW,EAAE,GAAG,CAAC,SAAS;aACvB,QAAQ,EAAE;aACV,QAAQ,CAAC,4BAA4B,CAAC;KAC1C,CAAC,CAAC;IAEH,MAAM,qBAAqB,GAAG,qBAAqB,CAAC,QAAQ,EAAE,CAAC;IAE/D,+EAA+E;IAC/E,8CAA8C;IAC9C,MAAM,OAAO,GAAG,CAAC,CAAC,kBAAkB,CAAC,eAAe,EAAE;QACpD,CAAC,CAAC,MAAM,CAAC;YACP,YAAY,EAAE,CAAC;iBACZ,MAAM,EAAE;iBACR,GAAG,CAAC,2BAA2B,CAAC;iBAChC,QAAQ,CAAC,6CAA6C,CAAC;YAC1D,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;YACzC,eAAe,EAAE,qBAAqB;YACtC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;SAC9B,CAAC;QACF,uBAAuB,CAAC;YACtB,GAAG,oBAAoB;YACvB,gCAAgC;YAChC,8BAA8B;SAC/B,CAAC;KACH,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,CAAC,CAAC,kBAAkB,CAAC,SAAS,EAAE;QAC7C,CAAC,CAAC,MAAM,CAAC;YACP,eAAe,EAAE,qBAAqB;YACtC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;SAC9B,CAAC;QACF,OAAO;KACR,CAAC,CAAC;IAEH,OAAO;QACL,WAAW,EAAE;YACX,eAAe,EAAE,IAAI;YACrB,aAAa,EAAE,IAAI;YACnB,YAAY,EAAE,KAAK;SACpB;QACD,WAAW,EAAE,8yCAA8yC,yBAAyB,mGAAmG,4BAA4B,IAAI,+BAA+B,IAAI,yBAAyB,IAAI,sBAAsB,EAAE;QAC/iD,KAAK;QACL,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,sBAAsB;QAC5B,MAAM;KAMP,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"performAction.js","sourceRoot":"","sources":["../../../src/v1/runner/performAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAElE,gFAAgF;AAChF,mBAAmB;AACnB,MAAM,sBAAsB,GAC1B,mQAAmQ,CAAC;AAEtQ,MAAM,+BAA+B,GACnC,6ZAA6Z,CAAC;AAEha,MAAM,yBAAyB,GAC7B,4kBAA4kB,CAAC;AAE/kB,uDAAuD;AACvD,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,CAAC;AAEjD,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAE/C,GAED,EAAE,EAAE;IACH,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;QACrB,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAClC,6XAA6X,+BAA+B,EAAE,CAC/Z;QACD,EAAE,EAAE,cAAc,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QAC1D,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QAC1E,WAAW,EAAE,GAAG,CAAC,SAAS;aACvB,QAAQ,EAAE;aACV,QAAQ,CAAC,4BAA4B,CAAC;KAC1C,CAAC,CAAC;IAEH,MAAM,qBAAqB,GAAG,qBAAqB,CAAC,QAAQ,EAAE,CAAC;IAE/D,+EAA+E;IAC/E,8CAA8C;IAC9C,MAAM,OAAO,GAAG,CAAC,CAAC,kBAAkB,CAAC,eAAe,EAAE;QACpD,CAAC,CAAC,MAAM,CAAC;YACP,YAAY,EAAE,CAAC;iBACZ,MAAM,EAAE;iBACR,GAAG,CAAC,2BAA2B,CAAC;iBAChC,QAAQ,CAAC,6CAA6C,CAAC;YAC1D,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;YACzC,eAAe,EAAE,qBAAqB;YACtC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;SAC9B,CAAC;QACF,uBAAuB,CAAC;YACtB,GAAG,oBAAoB;YACvB,gCAAgC;YAChC,8BAA8B;SAC/B,CAAC;KACH,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,CAAC,CAAC,kBAAkB,CAAC,SAAS,EAAE;QAC7C,CAAC,CAAC,MAAM,CAAC;YACP,eAAe,EAAE,qBAAqB;YACtC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;SAC9B,CAAC;QACF,OAAO;KACR,CAAC,CAAC;IAEH,OAAO;QACL,WAAW,EAAE;YACX,eAAe,EAAE,IAAI;YACrB,aAAa,EAAE,IAAI;YACnB,YAAY,EAAE,KAAK;SACpB;QACD,WAAW,EAAE,0iCAA0iC,yBAAyB,IAAI,4BAA4B,IAAI,sBAAsB,EAAE;QAC5oC,KAAK;QACL,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,sBAAsB;QAC5B,MAAM;KAMP,CAAC;AACJ,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qawolf/api-contracts",
3
- "version": "0.54.0",
3
+ "version": "0.58.0",
4
4
  "private": false,
5
5
  "description": "Versioned contracts for the QA Wolf public API",
6
6
  "repository": {
@@ -30,7 +30,7 @@
30
30
  "lint:ci": "npm run lint:first-half; FIRST_HALF_EXIT=$?; npm run lint:second-half && exit $FIRST_HALF_EXIT",
31
31
  "lint:dev": "npm run lint:first-half",
32
32
  "lint:first-half": "oxlint . --fix --quiet --report-unused-disable-directives --type-aware && oxfmt --write .",
33
- "lint:second-half": "dpdm --exit-code circular:1 --no-tree --no-warning --transform --include='.*' --exclude='/(dist|node_modules)/' '**/*'",
33
+ "lint:second-half": "rev-dep config run",
34
34
  "prepublishOnly": "npm run build",
35
35
  "test": "NODE_OPTIONS=\"--experimental-vm-modules\" NODE_NO_WARNINGS=1 jest",
36
36
  "tsc:check": "tsgo --noEmit -p tsconfig.typecheck.json"