@opentabs-dev/opentabs-plugin-meticulous 0.0.76

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 (121) hide show
  1. package/README.md +159 -0
  2. package/dist/adapter.iife.js +15945 -0
  3. package/dist/adapter.iife.js.map +7 -0
  4. package/dist/index.d.ts +14 -0
  5. package/dist/index.d.ts.map +1 -0
  6. package/dist/index.js +80 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/meticulous-api.d.ts +34 -0
  9. package/dist/meticulous-api.d.ts.map +1 -0
  10. package/dist/meticulous-api.js +477 -0
  11. package/dist/meticulous-api.js.map +1 -0
  12. package/dist/tools/accept-all-diffs.d.ts +8 -0
  13. package/dist/tools/accept-all-diffs.d.ts.map +1 -0
  14. package/dist/tools/accept-all-diffs.js +23 -0
  15. package/dist/tools/accept-all-diffs.js.map +1 -0
  16. package/dist/tools/check-for-flakes.d.ts +8 -0
  17. package/dist/tools/check-for-flakes.d.ts.map +1 -0
  18. package/dist/tools/check-for-flakes.js +26 -0
  19. package/dist/tools/check-for-flakes.js.map +1 -0
  20. package/dist/tools/compare-replays.d.ts +68 -0
  21. package/dist/tools/compare-replays.d.ts.map +1 -0
  22. package/dist/tools/compare-replays.js +53 -0
  23. package/dist/tools/compare-replays.js.map +1 -0
  24. package/dist/tools/create-label-action.d.ts +16 -0
  25. package/dist/tools/create-label-action.d.ts.map +1 -0
  26. package/dist/tools/create-label-action.js +29 -0
  27. package/dist/tools/create-label-action.js.map +1 -0
  28. package/dist/tools/get-current-user.d.ts +12 -0
  29. package/dist/tools/get-current-user.d.ts.map +1 -0
  30. package/dist/tools/get-current-user.js +22 -0
  31. package/dist/tools/get-current-user.js.map +1 -0
  32. package/dist/tools/get-project-pull-request.d.ts +14 -0
  33. package/dist/tools/get-project-pull-request.d.ts.map +1 -0
  34. package/dist/tools/get-project-pull-request.js +23 -0
  35. package/dist/tools/get-project-pull-request.js.map +1 -0
  36. package/dist/tools/get-project.d.ts +20 -0
  37. package/dist/tools/get-project.d.ts.map +1 -0
  38. package/dist/tools/get-project.js +25 -0
  39. package/dist/tools/get-project.js.map +1 -0
  40. package/dist/tools/get-replay-screenshots.d.ts +16 -0
  41. package/dist/tools/get-replay-screenshots.d.ts.map +1 -0
  42. package/dist/tools/get-replay-screenshots.js +27 -0
  43. package/dist/tools/get-replay-screenshots.js.map +1 -0
  44. package/dist/tools/get-replay.d.ts +17 -0
  45. package/dist/tools/get-replay.d.ts.map +1 -0
  46. package/dist/tools/get-replay.js +21 -0
  47. package/dist/tools/get-replay.js.map +1 -0
  48. package/dist/tools/get-session-events.d.ts +14 -0
  49. package/dist/tools/get-session-events.d.ts.map +1 -0
  50. package/dist/tools/get-session-events.js +27 -0
  51. package/dist/tools/get-session-events.js.map +1 -0
  52. package/dist/tools/get-session.d.ts +19 -0
  53. package/dist/tools/get-session.d.ts.map +1 -0
  54. package/dist/tools/get-session.js +21 -0
  55. package/dist/tools/get-session.js.map +1 -0
  56. package/dist/tools/get-test-run-coverage.d.ts +83 -0
  57. package/dist/tools/get-test-run-coverage.d.ts.map +1 -0
  58. package/dist/tools/get-test-run-coverage.js +64 -0
  59. package/dist/tools/get-test-run-coverage.js.map +1 -0
  60. package/dist/tools/get-test-run-diffs.d.ts +56 -0
  61. package/dist/tools/get-test-run-diffs.d.ts.map +1 -0
  62. package/dist/tools/get-test-run-diffs.js +53 -0
  63. package/dist/tools/get-test-run-diffs.js.map +1 -0
  64. package/dist/tools/get-test-run-pr-description.d.ts +8 -0
  65. package/dist/tools/get-test-run-pr-description.d.ts.map +1 -0
  66. package/dist/tools/get-test-run-pr-description.js +26 -0
  67. package/dist/tools/get-test-run-pr-description.js.map +1 -0
  68. package/dist/tools/get-test-run-screenshots.d.ts +70 -0
  69. package/dist/tools/get-test-run-screenshots.d.ts.map +1 -0
  70. package/dist/tools/get-test-run-screenshots.js +61 -0
  71. package/dist/tools/get-test-run-screenshots.js.map +1 -0
  72. package/dist/tools/get-test-run-source-code.d.ts +9 -0
  73. package/dist/tools/get-test-run-source-code.d.ts.map +1 -0
  74. package/dist/tools/get-test-run-source-code.js +24 -0
  75. package/dist/tools/get-test-run-source-code.js.map +1 -0
  76. package/dist/tools/get-test-run-test-cases.d.ts +25 -0
  77. package/dist/tools/get-test-run-test-cases.d.ts.map +1 -0
  78. package/dist/tools/get-test-run-test-cases.js +60 -0
  79. package/dist/tools/get-test-run-test-cases.js.map +1 -0
  80. package/dist/tools/get-test-run.d.ts +29 -0
  81. package/dist/tools/get-test-run.d.ts.map +1 -0
  82. package/dist/tools/get-test-run.js +30 -0
  83. package/dist/tools/get-test-run.js.map +1 -0
  84. package/dist/tools/list-github-repositories.d.ts +11 -0
  85. package/dist/tools/list-github-repositories.d.ts.map +1 -0
  86. package/dist/tools/list-github-repositories.js +19 -0
  87. package/dist/tools/list-github-repositories.js.map +1 -0
  88. package/dist/tools/list-organization-members.d.ts +18 -0
  89. package/dist/tools/list-organization-members.d.ts.map +1 -0
  90. package/dist/tools/list-organization-members.js +21 -0
  91. package/dist/tools/list-organization-members.js.map +1 -0
  92. package/dist/tools/list-organizations.d.ts +9 -0
  93. package/dist/tools/list-organizations.d.ts.map +1 -0
  94. package/dist/tools/list-organizations.js +19 -0
  95. package/dist/tools/list-organizations.js.map +1 -0
  96. package/dist/tools/list-projects.d.ts +14 -0
  97. package/dist/tools/list-projects.d.ts.map +1 -0
  98. package/dist/tools/list-projects.js +19 -0
  99. package/dist/tools/list-projects.js.map +1 -0
  100. package/dist/tools/list-replays.d.ts +18 -0
  101. package/dist/tools/list-replays.d.ts.map +1 -0
  102. package/dist/tools/list-replays.js +25 -0
  103. package/dist/tools/list-replays.js.map +1 -0
  104. package/dist/tools/list-sessions.d.ts +20 -0
  105. package/dist/tools/list-sessions.d.ts.map +1 -0
  106. package/dist/tools/list-sessions.js +22 -0
  107. package/dist/tools/list-sessions.js.map +1 -0
  108. package/dist/tools/schemas.d.ts +560 -0
  109. package/dist/tools/schemas.d.ts.map +1 -0
  110. package/dist/tools/schemas.js +303 -0
  111. package/dist/tools/schemas.js.map +1 -0
  112. package/dist/tools/search-sessions.d.ts +24 -0
  113. package/dist/tools/search-sessions.d.ts.map +1 -0
  114. package/dist/tools/search-sessions.js +33 -0
  115. package/dist/tools/search-sessions.js.map +1 -0
  116. package/dist/tools/upsert-diff-approval.d.ts +12 -0
  117. package/dist/tools/upsert-diff-approval.d.ts.map +1 -0
  118. package/dist/tools/upsert-diff-approval.js +36 -0
  119. package/dist/tools/upsert-diff-approval.js.map +1 -0
  120. package/dist/tools.json +4020 -0
  121. package/package.json +58 -0
@@ -0,0 +1,29 @@
1
+ import { z } from 'zod';
2
+ export declare const getTestRun: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
3
+ test_run_id: z.ZodString;
4
+ }, z.core.$strip>, z.ZodObject<{
5
+ test_run: z.ZodObject<{
6
+ id: z.ZodString;
7
+ status: z.ZodString;
8
+ commit_sha: z.ZodNullable<z.ZodString>;
9
+ created_at: z.ZodString;
10
+ updated_at: z.ZodString;
11
+ project_name: z.ZodString;
12
+ organization_name: z.ZodString;
13
+ stats: z.ZodNullable<z.ZodObject<{
14
+ total_screenshots: z.ZodNumber;
15
+ total_sessions: z.ZodNumber;
16
+ total_sessions_replayed: z.ZodNullable<z.ZodNumber>;
17
+ sessions_skipped: z.ZodNullable<z.ZodNumber>;
18
+ screenshots_skipped: z.ZodNullable<z.ZodNumber>;
19
+ }, z.core.$strip>>;
20
+ ci_provider: z.ZodNullable<z.ZodString>;
21
+ pr_title: z.ZodNullable<z.ZodString>;
22
+ pr_number: z.ZodNullable<z.ZodNumber>;
23
+ pr_url: z.ZodNullable<z.ZodString>;
24
+ approval_state: z.ZodNullable<z.ZodString>;
25
+ describe_tested: z.ZodNullable<z.ZodString>;
26
+ }, z.core.$strip>;
27
+ web_url: z.ZodString;
28
+ }, z.core.$strip>>;
29
+ //# sourceMappingURL=get-test-run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-test-run.d.ts","sourceRoot":"","sources":["../../src/tools/get-test-run.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;kBA+BrB,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { graphql, queries } from '../meticulous-api.js';
4
+ import { testRunSchema, mapTestRun } from './schemas.js';
5
+ export const getTestRun = defineTool({
6
+ name: 'get_test_run',
7
+ displayName: 'Get Test Run',
8
+ description: 'Get detailed information about a test run including status, statistics, CI context, PR details, and a link to the Meticulous web UI for visual debugging. The test run ID can be found in the Meticulous URL or from project details.',
9
+ summary: 'Get test run details',
10
+ icon: 'play-circle',
11
+ group: 'Test Runs',
12
+ input: z.object({
13
+ test_run_id: z.string().describe('Test run ID'),
14
+ }),
15
+ output: z.object({
16
+ test_run: testRunSchema,
17
+ web_url: z.string().describe('URL to view the test run in the Meticulous web UI'),
18
+ }),
19
+ handle: async ({ test_run_id }) => {
20
+ const data = await graphql(queries.GET_TEST_RUN, { testRunId: test_run_id });
21
+ const orgName = data.testRun.project?.organization?.name ?? '';
22
+ const projName = data.testRun.project?.name ?? '';
23
+ const webUrl = `https://app.meticulous.ai/projects/${orgName}/${projName}/test-runs/${test_run_id}`;
24
+ return {
25
+ test_run: mapTestRun(data.testRun),
26
+ web_url: webUrl,
27
+ };
28
+ },
29
+ });
30
+ //# sourceMappingURL=get-test-run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-test-run.js","sourceRoot":"","sources":["../../src/tools/get-test-run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEzD,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAC;IACnC,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,cAAc;IAC3B,WAAW,EACT,uOAAuO;IACzO,OAAO,EAAE,sBAAsB;IAC/B,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;KAChD,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,QAAQ,EAAE,aAAa;QACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;KAClF,CAAC;IACF,MAAM,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;QAChC,MAAM,IAAI,GAAG,MAAM,OAAO,CAIvB,OAAO,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;QAErD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC;QAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,sCAAsC,OAAO,IAAI,QAAQ,cAAc,WAAW,EAAE,CAAC;QAEpG,OAAO;YACL,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;YAClC,OAAO,EAAE,MAAM;SAChB,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { z } from 'zod';
2
+ export declare const listGithubRepositories: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{}, z.core.$strip>, z.ZodObject<{
3
+ repositories: z.ZodArray<z.ZodObject<{
4
+ id: z.ZodString;
5
+ name: z.ZodString;
6
+ owner: z.ZodString;
7
+ url: z.ZodString;
8
+ full_name: z.ZodString;
9
+ }, z.core.$strip>>;
10
+ }, z.core.$strip>>;
11
+ //# sourceMappingURL=list-github-repositories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-github-repositories.d.ts","sourceRoot":"","sources":["../../src/tools/list-github-repositories.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,sBAAsB;;;;;;;;kBAajC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { graphql, queries } from '../meticulous-api.js';
4
+ import { githubRepoSchema, mapGithubRepo } from './schemas.js';
5
+ export const listGithubRepositories = defineTool({
6
+ name: 'list_github_repositories',
7
+ displayName: 'List GitHub Repositories',
8
+ description: 'List GitHub repositories connected to the Meticulous organization via the GitHub App.',
9
+ summary: 'List connected GitHub repos',
10
+ icon: 'github',
11
+ group: 'Integrations',
12
+ input: z.object({}),
13
+ output: z.object({ repositories: z.array(githubRepoSchema) }),
14
+ handle: async () => {
15
+ const data = await graphql(queries.GET_GITHUB_REPOSITORIES);
16
+ return { repositories: data.gitHubRepositories.map(mapGithubRepo) };
17
+ },
18
+ });
19
+ //# sourceMappingURL=list-github-repositories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-github-repositories.js","sourceRoot":"","sources":["../../src/tools/list-github-repositories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE/D,MAAM,CAAC,MAAM,sBAAsB,GAAG,UAAU,CAAC;IAC/C,IAAI,EAAE,0BAA0B;IAChC,WAAW,EAAE,0BAA0B;IACvC,WAAW,EAAE,uFAAuF;IACpG,OAAO,EAAE,6BAA6B;IACtC,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,cAAc;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACnB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;IAC7D,MAAM,EAAE,KAAK,IAAI,EAAE;QACjB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAyD,OAAO,CAAC,uBAAuB,CAAC,CAAC;QACpH,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;IACtE,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { z } from 'zod';
2
+ export declare const listOrganizationMembers: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
3
+ organization_name: z.ZodString;
4
+ }, z.core.$strip>, z.ZodObject<{
5
+ members: z.ZodArray<z.ZodObject<{
6
+ id: z.ZodString;
7
+ role: z.ZodString;
8
+ created_at: z.ZodString;
9
+ user: z.ZodObject<{
10
+ id: z.ZodString;
11
+ email: z.ZodString;
12
+ first_name: z.ZodString;
13
+ last_name: z.ZodString;
14
+ is_admin: z.ZodBoolean;
15
+ }, z.core.$strip>;
16
+ }, z.core.$strip>>;
17
+ }, z.core.$strip>>;
18
+ //# sourceMappingURL=list-organization-members.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-organization-members.d.ts","sourceRoot":"","sources":["../../src/tools/list-organization-members.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;kBAkBlC,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { graphql, queries } from '../meticulous-api.js';
4
+ import { membershipSchema, mapMembership } from './schemas.js';
5
+ export const listOrganizationMembers = defineTool({
6
+ name: 'list_organization_members',
7
+ displayName: 'List Organization Members',
8
+ description: 'List all members of an organization with their roles.',
9
+ summary: 'List org members',
10
+ icon: 'users',
11
+ group: 'Organizations',
12
+ input: z.object({
13
+ organization_name: z.string().describe('Organization name'),
14
+ }),
15
+ output: z.object({ members: z.array(membershipSchema) }),
16
+ handle: async ({ organization_name }) => {
17
+ const data = await graphql(queries.GET_ORGANIZATION_MEMBERSHIPS, { organizationName: organization_name });
18
+ return { members: data.organizationMemberships.map(mapMembership) };
19
+ },
20
+ });
21
+ //# sourceMappingURL=list-organization-members.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-organization-members.js","sourceRoot":"","sources":["../../src/tools/list-organization-members.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE/D,MAAM,CAAC,MAAM,uBAAuB,GAAG,UAAU,CAAC;IAChD,IAAI,EAAE,2BAA2B;IACjC,WAAW,EAAE,2BAA2B;IACxC,WAAW,EAAE,uDAAuD;IACpE,OAAO,EAAE,kBAAkB;IAC3B,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,eAAe;IACtB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;KAC5D,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;IACxD,MAAM,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE;QACtC,MAAM,IAAI,GAAG,MAAM,OAAO,CACxB,OAAO,CAAC,4BAA4B,EACpC,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,CACxC,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;IACtE,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ export declare const listOrganizations: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{}, z.core.$strip>, z.ZodObject<{
3
+ organizations: z.ZodArray<z.ZodObject<{
4
+ id: z.ZodString;
5
+ name: z.ZodString;
6
+ created_at: z.ZodString;
7
+ }, z.core.$strip>>;
8
+ }, z.core.$strip>>;
9
+ //# sourceMappingURL=list-organizations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-organizations.d.ts","sourceRoot":"","sources":["../../src/tools/list-organizations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,iBAAiB;;;;;;kBAa5B,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { graphql, queries } from '../meticulous-api.js';
4
+ import { organizationSchema, mapOrg } from './schemas.js';
5
+ export const listOrganizations = defineTool({
6
+ name: 'list_organizations',
7
+ displayName: 'List Organizations',
8
+ description: 'List all organizations the current user belongs to.',
9
+ summary: 'List organizations',
10
+ icon: 'building',
11
+ group: 'Organizations',
12
+ input: z.object({}),
13
+ output: z.object({ organizations: z.array(organizationSchema) }),
14
+ handle: async () => {
15
+ const data = await graphql(queries.GET_ORGANIZATIONS);
16
+ return { organizations: data.organizations.map(mapOrg) };
17
+ },
18
+ });
19
+ //# sourceMappingURL=list-organizations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-organizations.js","sourceRoot":"","sources":["../../src/tools/list-organizations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE1D,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAAC;IAC1C,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EAAE,oBAAoB;IACjC,WAAW,EAAE,qDAAqD;IAClE,OAAO,EAAE,oBAAoB;IAC7B,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,eAAe;IACtB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACnB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAChE,MAAM,EAAE,KAAK,IAAI,EAAE;QACjB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAoD,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACzG,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;IAC3D,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod';
2
+ export declare const listProjects: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{}, z.core.$strip>, z.ZodObject<{
3
+ projects: z.ZodArray<z.ZodObject<{
4
+ id: z.ZodString;
5
+ name: z.ZodString;
6
+ organization_name: z.ZodString;
7
+ host_kind: z.ZodNullable<z.ZodString>;
8
+ status: z.ZodString;
9
+ latest_test_run_at: z.ZodNullable<z.ZodString>;
10
+ total_sessions: z.ZodNullable<z.ZodNumber>;
11
+ total_screenshots: z.ZodNullable<z.ZodNumber>;
12
+ }, z.core.$strip>>;
13
+ }, z.core.$strip>>;
14
+ //# sourceMappingURL=list-projects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-projects.d.ts","sourceRoot":"","sources":["../../src/tools/list-projects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,YAAY;;;;;;;;;;;kBAavB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { graphql, queries } from '../meticulous-api.js';
4
+ import { projectListItemSchema, mapProjectListItem } from './schemas.js';
5
+ export const listProjects = defineTool({
6
+ name: 'list_projects',
7
+ displayName: 'List Projects',
8
+ description: 'List all projects accessible to the current user, including latest test run info.',
9
+ summary: 'List projects',
10
+ icon: 'folder',
11
+ group: 'Projects',
12
+ input: z.object({}),
13
+ output: z.object({ projects: z.array(projectListItemSchema) }),
14
+ handle: async () => {
15
+ const data = await graphql(queries.GET_PROJECTS);
16
+ return { projects: data.projects.map(mapProjectListItem) };
17
+ },
18
+ });
19
+ //# sourceMappingURL=list-projects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-projects.js","sourceRoot":"","sources":["../../src/tools/list-projects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEzE,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CAAC;IACrC,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,eAAe;IAC5B,WAAW,EAAE,mFAAmF;IAChG,OAAO,EAAE,eAAe;IACxB,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACnB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE,CAAC;IAC9D,MAAM,EAAE,KAAK,IAAI,EAAE;QACjB,MAAM,IAAI,GAAG,MAAM,OAAO,CAA+C,OAAO,CAAC,YAAY,CAAC,CAAC;QAC/F,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAC7D,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { z } from 'zod';
2
+ export declare const listReplays: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
3
+ project_id: z.ZodString;
4
+ count: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
5
+ }, z.core.$strip>, z.ZodObject<{
6
+ replays: z.ZodArray<z.ZodObject<{
7
+ id: z.ZodString;
8
+ status: z.ZodString;
9
+ commit_sha: z.ZodNullable<z.ZodString>;
10
+ is_accurate: z.ZodNullable<z.ZodBoolean>;
11
+ app_url: z.ZodNullable<z.ZodString>;
12
+ session_id: z.ZodNullable<z.ZodString>;
13
+ created_at: z.ZodString;
14
+ project_name: z.ZodNullable<z.ZodString>;
15
+ organization_name: z.ZodNullable<z.ZodString>;
16
+ }, z.core.$strip>>;
17
+ }, z.core.$strip>>;
18
+ //# sourceMappingURL=list-replays.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-replays.d.ts","sourceRoot":"","sources":["../../src/tools/list-replays.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;kBAmBtB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { graphql, queries } from '../meticulous-api.js';
4
+ import { replaySchema, mapReplay } from './schemas.js';
5
+ export const listReplays = defineTool({
6
+ name: 'list_replays',
7
+ displayName: 'List Replays',
8
+ description: 'List replays for a specific project.',
9
+ summary: 'List replays for a project',
10
+ icon: 'list',
11
+ group: 'Replays',
12
+ input: z.object({
13
+ project_id: z.string().describe('Project ID'),
14
+ count: z.number().optional().default(50).describe('Number of replays to return'),
15
+ }),
16
+ output: z.object({ replays: z.array(replaySchema) }),
17
+ handle: async ({ project_id, count }) => {
18
+ const data = await graphql(queries.GET_REPLAYS_FOR_PROJECT, {
19
+ projectId: project_id,
20
+ n: count,
21
+ });
22
+ return { replays: (data.replaysForProject ?? []).map(mapReplay) };
23
+ },
24
+ });
25
+ //# sourceMappingURL=list-replays.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-replays.js","sourceRoot":"","sources":["../../src/tools/list-replays.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAC;IACpC,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,cAAc;IAC3B,WAAW,EAAE,sCAAsC;IACnD,OAAO,EAAE,4BAA4B;IACrC,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC7C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;KACjF,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;IACpD,MAAM,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE;QACtC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAwD,OAAO,CAAC,uBAAuB,EAAE;YACjH,SAAS,EAAE,UAAU;YACrB,CAAC,EAAE,KAAK;SACT,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;IACpE,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { z } from 'zod';
2
+ export declare const listSessions: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
3
+ project_id: z.ZodString;
4
+ count: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
5
+ }, z.core.$strip>, z.ZodObject<{
6
+ sessions: z.ZodArray<z.ZodObject<{
7
+ id: z.ZodString;
8
+ project_id: z.ZodString;
9
+ project_name: z.ZodString;
10
+ hostname: z.ZodNullable<z.ZodString>;
11
+ datetime: z.ZodNullable<z.ZodString>;
12
+ num_user_events: z.ZodNullable<z.ZodNumber>;
13
+ num_bytes: z.ZodNullable<z.ZodNumber>;
14
+ source: z.ZodNullable<z.ZodString>;
15
+ start_url: z.ZodNullable<z.ZodString>;
16
+ abandoned: z.ZodNullable<z.ZodBoolean>;
17
+ description: z.ZodNullable<z.ZodString>;
18
+ }, z.core.$strip>>;
19
+ }, z.core.$strip>>;
20
+ //# sourceMappingURL=list-sessions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-sessions.d.ts","sourceRoot":"","sources":["../../src/tools/list-sessions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;kBAmBvB,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { graphql, queries } from '../meticulous-api.js';
4
+ import { sessionSchema, mapSession } from './schemas.js';
5
+ export const listSessions = defineTool({
6
+ name: 'list_sessions',
7
+ displayName: 'List Sessions',
8
+ description: 'List recorded user sessions for a project.',
9
+ summary: 'List sessions for a project',
10
+ icon: 'monitor',
11
+ group: 'Sessions',
12
+ input: z.object({
13
+ project_id: z.string().describe('Project ID'),
14
+ count: z.number().optional().default(50).describe('Number of sessions to return'),
15
+ }),
16
+ output: z.object({ sessions: z.array(sessionSchema) }),
17
+ handle: async ({ project_id, count }) => {
18
+ const data = await graphql(queries.GET_SESSIONS_FOR_PROJECT, { projectId: project_id, n: count });
19
+ return { sessions: (data.sessionsForProject ?? []).map(mapSession) };
20
+ },
21
+ });
22
+ //# sourceMappingURL=list-sessions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-sessions.js","sourceRoot":"","sources":["../../src/tools/list-sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEzD,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CAAC;IACrC,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,eAAe;IAC5B,WAAW,EAAE,4CAA4C;IACzD,OAAO,EAAE,6BAA6B;IACtC,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC7C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC;KAClF,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;IACtD,MAAM,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE;QACtC,MAAM,IAAI,GAAG,MAAM,OAAO,CACxB,OAAO,CAAC,wBAAwB,EAChC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CACpC,CAAC;QACF,OAAO,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;IACvE,CAAC;CACF,CAAC,CAAC"}