@alwaysmeticulous/cli 2.323.0 → 2.325.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/agent/agent-review-writes.command.spec.d.ts +2 -0
- package/dist/commands/agent/agent-review-writes.command.spec.d.ts.map +1 -0
- package/dist/commands/agent/agent-review-writes.command.spec.js +107 -0
- package/dist/commands/agent/agent-review-writes.command.spec.js.map +1 -0
- package/dist/commands/agent/create-diff-comment.command.d.ts +13 -0
- package/dist/commands/agent/create-diff-comment.command.d.ts.map +1 -0
- package/dist/commands/agent/create-diff-comment.command.js +57 -0
- package/dist/commands/agent/create-diff-comment.command.js.map +1 -0
- package/dist/commands/agent/diff-comment-write.utils.d.ts +13 -0
- package/dist/commands/agent/diff-comment-write.utils.d.ts.map +1 -0
- package/dist/commands/agent/diff-comment-write.utils.js +19 -0
- package/dist/commands/agent/diff-comment-write.utils.js.map +1 -0
- package/dist/commands/agent/diff-comments.command.d.ts.map +1 -1
- package/dist/commands/agent/diff-comments.command.js +15 -4
- package/dist/commands/agent/diff-comments.command.js.map +1 -1
- package/dist/commands/agent/diff-comments.command.spec.js +29 -4
- package/dist/commands/agent/diff-comments.command.spec.js.map +1 -1
- package/dist/commands/agent/ignore-diff.command.d.ts +13 -0
- package/dist/commands/agent/ignore-diff.command.d.ts.map +1 -0
- package/dist/commands/agent/ignore-diff.command.js +57 -0
- package/dist/commands/agent/ignore-diff.command.js.map +1 -0
- package/dist/commands/agent/index.d.ts.map +1 -1
- package/dist/commands/agent/index.js +16 -6
- package/dist/commands/agent/index.js.map +1 -1
- package/dist/commands/agent/js-coverage.command.d.ts +2 -2
- package/dist/commands/agent/js-coverage.command.d.ts.map +1 -1
- package/dist/commands/agent/js-coverage.command.handler.spec.js +45 -5
- package/dist/commands/agent/js-coverage.command.handler.spec.js.map +1 -1
- package/dist/commands/agent/js-coverage.command.js +21 -6
- package/dist/commands/agent/js-coverage.command.js.map +1 -1
- package/dist/commands/agent/js-coverage.command.spec.js +7 -6
- package/dist/commands/agent/js-coverage.command.spec.js.map +1 -1
- package/dist/commands/agent/reject-diff.command.d.ts +13 -0
- package/dist/commands/agent/reject-diff.command.d.ts.map +1 -0
- package/dist/commands/agent/reject-diff.command.js +57 -0
- package/dist/commands/agent/reject-diff.command.js.map +1 -0
- package/dist/commands/agent/reject-diff.command.spec.d.ts +2 -0
- package/dist/commands/agent/reject-diff.command.spec.d.ts.map +1 -0
- package/dist/commands/agent/reject-diff.command.spec.js +61 -0
- package/dist/commands/agent/reject-diff.command.spec.js.map +1 -0
- package/dist/commands/agent/reply-to-diff-comment.command.d.ts +10 -0
- package/dist/commands/agent/reply-to-diff-comment.command.d.ts.map +1 -0
- package/dist/commands/agent/reply-to-diff-comment.command.js +47 -0
- package/dist/commands/agent/reply-to-diff-comment.command.js.map +1 -0
- package/dist/commands/agent/sessions.command.d.ts +3 -0
- package/dist/commands/agent/sessions.command.d.ts.map +1 -1
- package/dist/commands/agent/sessions.command.js +46 -5
- package/dist/commands/agent/sessions.command.js.map +1 -1
- package/dist/commands/agent/sessions.command.spec.js +30 -7
- package/dist/commands/agent/sessions.command.spec.js.map +1 -1
- package/dist/commands/agent/test-run-checks.command.d.ts +15 -0
- package/dist/commands/agent/test-run-checks.command.d.ts.map +1 -0
- package/dist/commands/agent/test-run-checks.command.js +121 -0
- package/dist/commands/agent/test-run-checks.command.js.map +1 -0
- package/dist/commands/agent/test-run-checks.command.spec.d.ts +2 -0
- package/dist/commands/agent/test-run-checks.command.spec.d.ts.map +1 -0
- package/dist/commands/agent/test-run-checks.command.spec.js +132 -0
- package/dist/commands/agent/test-run-checks.command.spec.js.map +1 -0
- package/dist/commands/agent/test-run-diffs.command.d.ts.map +1 -1
- package/dist/commands/agent/test-run-diffs.command.js +19 -24
- package/dist/commands/agent/test-run-diffs.command.js.map +1 -1
- package/dist/commands/agent/test-run-diffs.command.spec.js +59 -37
- package/dist/commands/agent/test-run-diffs.command.spec.js.map +1 -1
- package/dist/commands/agent/test-run-diffs.utils.d.ts +1 -0
- package/dist/commands/agent/test-run-diffs.utils.d.ts.map +1 -1
- package/dist/commands/agent/test-run-diffs.utils.js +5 -3
- package/dist/commands/agent/test-run-diffs.utils.js.map +1 -1
- package/dist/commands/agent/test-run-diffs.utils.spec.js +2 -2
- package/dist/commands/agent/test-run-for-commit.command.d.ts.map +1 -1
- package/dist/commands/agent/test-run-for-commit.command.js +5 -4
- package/dist/commands/agent/test-run-for-commit.command.js.map +1 -1
- package/dist/commands/auth/__tests__/get-project.command.spec.js +48 -42
- package/dist/commands/auth/__tests__/get-project.command.spec.js.map +1 -1
- package/dist/commands/auth/__tests__/list-projects.command.spec.js +11 -10
- package/dist/commands/auth/__tests__/list-projects.command.spec.js.map +1 -1
- package/dist/commands/auth/__tests__/set-project.command.spec.js +6 -7
- package/dist/commands/auth/__tests__/set-project.command.spec.js.map +1 -1
- package/dist/commands/auth/__tests__/whoami.command.spec.js +77 -124
- package/dist/commands/auth/__tests__/whoami.command.spec.js.map +1 -1
- package/dist/commands/auth/get-project.command.d.ts +6 -2
- package/dist/commands/auth/get-project.command.d.ts.map +1 -1
- package/dist/commands/auth/get-project.command.js +25 -24
- package/dist/commands/auth/get-project.command.js.map +1 -1
- package/dist/commands/auth/list-projects.command.d.ts.map +1 -1
- package/dist/commands/auth/list-projects.command.js +4 -8
- package/dist/commands/auth/list-projects.command.js.map +1 -1
- package/dist/commands/auth/set-project.command.d.ts +1 -0
- package/dist/commands/auth/set-project.command.d.ts.map +1 -1
- package/dist/commands/auth/set-project.command.js +22 -9
- package/dist/commands/auth/set-project.command.js.map +1 -1
- package/dist/commands/auth/whoami.command.d.ts.map +1 -1
- package/dist/commands/auth/whoami.command.js +94 -87
- package/dist/commands/auth/whoami.command.js.map +1 -1
- package/dist/utils/__tests__/project-selection-hint.spec.d.ts +2 -0
- package/dist/utils/__tests__/project-selection-hint.spec.d.ts.map +1 -0
- package/dist/utils/__tests__/project-selection-hint.spec.js +73 -0
- package/dist/utils/__tests__/project-selection-hint.spec.js.map +1 -0
- package/dist/utils/__tests__/resolve-project-identifier.spec.js +2 -27
- package/dist/utils/__tests__/resolve-project-identifier.spec.js.map +1 -1
- package/dist/utils/__tests__/select-project.spec.js +23 -22
- package/dist/utils/__tests__/select-project.spec.js.map +1 -1
- package/dist/utils/handle-auth-failure.d.ts +27 -0
- package/dist/utils/handle-auth-failure.d.ts.map +1 -1
- package/dist/utils/handle-auth-failure.js +44 -3
- package/dist/utils/handle-auth-failure.js.map +1 -1
- package/dist/utils/project-selection-hint.d.ts +16 -0
- package/dist/utils/project-selection-hint.d.ts.map +1 -0
- package/dist/utils/project-selection-hint.js +82 -0
- package/dist/utils/project-selection-hint.js.map +1 -0
- package/dist/utils/resolve-project-identifier.d.ts +0 -13
- package/dist/utils/resolve-project-identifier.d.ts.map +1 -1
- package/dist/utils/resolve-project-identifier.js +3 -26
- package/dist/utils/resolve-project-identifier.js.map +1 -1
- package/dist/utils/resolve-test-run-from-commit.d.ts +5 -0
- package/dist/utils/resolve-test-run-from-commit.d.ts.map +1 -1
- package/dist/utils/resolve-test-run-from-commit.js +9 -3
- package/dist/utils/resolve-test-run-from-commit.js.map +1 -1
- package/dist/utils/select-project.d.ts +20 -4
- package/dist/utils/select-project.d.ts.map +1 -1
- package/dist/utils/select-project.js +39 -13
- package/dist/utils/select-project.js.map +1 -1
- package/package.json +14 -14
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-project-identifier.spec.js","sources":["../../../src/utils/__tests__/resolve-project-identifier.spec.ts"],"sourceRoot":"","names":[],"mappings":";;;;AAAA,mCAA8D;AAC9D,sDAAiD;AACjD,
|
|
1
|
+
{"version":3,"file":"resolve-project-identifier.spec.js","sources":["../../../src/utils/__tests__/resolve-project-identifier.spec.ts"],"sourceRoot":"","names":[],"mappings":";;;;AAAA,mCAA8D;AAC9D,sDAAiD;AACjD,8EAAyE;AAEzE,MAAM,KAAK,GAAG,WAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9B,uBAAuB,EAAE,WAAE,CAAC,EAAE,EAAE;IAChC,UAAU,EAAE,WAAE,CAAC,EAAE,EAAE;CACpB,CAAC,CAAC,CAAC;AAEJ,WAAE,CAAC,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE,CAAC,CAAC;IACzC,uBAAuB,EAAE,KAAK,CAAC,uBAAuB;IACtD,UAAU,EAAE,KAAK,CAAC,UAAU;CAC7B,CAAC,CAAC,CAAC;AAEJ,WAAE,CAAC,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE,CAAC,CAAC;IACzC,UAAU,EAAE,WAAE,CAAC,EAAE,EAAE;CACpB,CAAC,CAAC,CAAC;AAEJ,IAAA,iBAAQ,EAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,IAAA,mBAAU,EAAC,GAAG,EAAE;QACd,WAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAExC,IAAA,eAAM,EAAC,MAAM,IAAA,qDAAwB,EAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC/D,IAAA,eAAM,EAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACvC,KAAK,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAE5D,IAAA,eAAM,EAAC,MAAM,IAAA,qDAAwB,EAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;YACpD,SAAS,EAAE,UAAU;SACtB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QACjF,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACvC,KAAK,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAEtD,MAAM,MAAM,GAAG,MAAM,IAAA,qDAAwB,EAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAErE,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,cAAc,CAAC,6BAAY,CAAC,CAAC;QAC5C,IAAA,eAAM,EAAE,MAAuB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QACvE,IAAA,eAAM,EAAE,MAAuB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","debugId":"bed63ce2-ba7c-583a-ab71-66ca70f784a3"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="42cf5a0a-a974-5f19-a984-dbab1288a84c")}catch(e){}}();
|
|
3
3
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
const vitest_1 = require("vitest");
|
|
@@ -7,23 +7,24 @@ const cli_user_error_1 = require("../cli-user-error");
|
|
|
7
7
|
const select_project_1 = require("../select-project");
|
|
8
8
|
const mocks = vitest_1.vi.hoisted(() => ({
|
|
9
9
|
getOAuthProjects: vitest_1.vi.fn(),
|
|
10
|
-
|
|
10
|
+
setAgentCurrentProject: vitest_1.vi.fn(),
|
|
11
|
+
getAgentProjects: vitest_1.vi.fn(),
|
|
11
12
|
getOAuthDefaultProject: vitest_1.vi.fn(),
|
|
12
13
|
isFetchError: vitest_1.vi.fn(() => false),
|
|
13
14
|
prompt: vitest_1.vi.fn(),
|
|
14
15
|
}));
|
|
15
16
|
vitest_1.vi.mock("@alwaysmeticulous/client", () => ({
|
|
16
17
|
getOAuthProjects: mocks.getOAuthProjects,
|
|
17
|
-
|
|
18
|
+
setAgentCurrentProject: mocks.setAgentCurrentProject,
|
|
19
|
+
getAgentProjects: mocks.getAgentProjects,
|
|
18
20
|
getOAuthDefaultProject: mocks.getOAuthDefaultProject,
|
|
19
21
|
isFetchError: mocks.isFetchError,
|
|
20
22
|
}));
|
|
21
23
|
// The backend resolves the identifier and returns the resolved project; model
|
|
22
24
|
// that here.
|
|
23
25
|
const resolved = (org, name, id) => ({
|
|
26
|
+
project: `${org}/${name}`,
|
|
24
27
|
projectId: id,
|
|
25
|
-
name,
|
|
26
|
-
organization: { id: `${org}-id`, name: org },
|
|
27
28
|
});
|
|
28
29
|
vitest_1.vi.mock("@alwaysmeticulous/common", () => ({
|
|
29
30
|
logNotice: vitest_1.vi.fn(),
|
|
@@ -42,27 +43,27 @@ const fakeClient = {};
|
|
|
42
43
|
(0, vitest_1.it)("sends an explicit identifier to the backend verbatim (not matched client-side)", async () => {
|
|
43
44
|
// A bare name, id, or slug all go straight to the backend, which resolves
|
|
44
45
|
// flexibly and returns the resolved project.
|
|
45
|
-
mocks.
|
|
46
|
+
mocks.setAgentCurrentProject.mockResolvedValue(resolved("OrgB", "App2", "id-2"));
|
|
46
47
|
const result = await (0, select_project_1.selectAndStoreProject)({
|
|
47
48
|
client: fakeClient,
|
|
48
49
|
project: "App2",
|
|
49
50
|
});
|
|
50
|
-
(0, vitest_1.expect)(result).
|
|
51
|
-
(0, vitest_1.expect)(mocks.
|
|
51
|
+
(0, vitest_1.expect)(result).toEqual({ project: "OrgB/App2", projectId: "id-2" });
|
|
52
|
+
(0, vitest_1.expect)(mocks.setAgentCurrentProject).toHaveBeenCalledWith(fakeClient, "App2");
|
|
52
53
|
// No client-side project listing for an explicit identifier.
|
|
53
54
|
(0, vitest_1.expect)(mocks.getOAuthProjects).not.toHaveBeenCalled();
|
|
54
55
|
});
|
|
55
56
|
(0, vitest_1.it)("trims surrounding whitespace from the provided identifier", async () => {
|
|
56
|
-
mocks.
|
|
57
|
+
mocks.setAgentCurrentProject.mockResolvedValue(resolved("OrgA", "App1", "id-1"));
|
|
57
58
|
const result = await (0, select_project_1.selectAndStoreProject)({
|
|
58
59
|
client: fakeClient,
|
|
59
60
|
project: " OrgA/App1 ",
|
|
60
61
|
});
|
|
61
|
-
(0, vitest_1.expect)(result).
|
|
62
|
-
(0, vitest_1.expect)(mocks.
|
|
62
|
+
(0, vitest_1.expect)(result).toEqual({ project: "OrgA/App1", projectId: "id-1" });
|
|
63
|
+
(0, vitest_1.expect)(mocks.setAgentCurrentProject).toHaveBeenCalledWith(fakeClient, "OrgA/App1");
|
|
63
64
|
});
|
|
64
65
|
(0, vitest_1.it)("throws with the available list when the backend can't resolve the identifier", async () => {
|
|
65
|
-
mocks.
|
|
66
|
+
mocks.setAgentCurrentProject.mockRejectedValueOnce(new Error("not found"));
|
|
66
67
|
mocks.getOAuthProjects.mockResolvedValue([project("OrgA", "App1", "id-1")]);
|
|
67
68
|
await (0, vitest_1.expect)((0, select_project_1.selectAndStoreProject)({
|
|
68
69
|
client: fakeClient,
|
|
@@ -74,8 +75,8 @@ const fakeClient = {};
|
|
|
74
75
|
const result = await (0, select_project_1.selectAndStoreProject)({
|
|
75
76
|
client: fakeClient,
|
|
76
77
|
});
|
|
77
|
-
(0, vitest_1.expect)(result).
|
|
78
|
-
(0, vitest_1.expect)(mocks.
|
|
78
|
+
(0, vitest_1.expect)(result).toEqual({ project: "OrgA/App1", projectId: "id-1" });
|
|
79
|
+
(0, vitest_1.expect)(mocks.setAgentCurrentProject).toHaveBeenCalledWith(fakeClient, "id-1");
|
|
79
80
|
});
|
|
80
81
|
(0, vitest_1.it)("throws when no projects are accessible", async () => {
|
|
81
82
|
mocks.getOAuthProjects.mockResolvedValue([]);
|
|
@@ -93,7 +94,7 @@ const fakeClient = {};
|
|
|
93
94
|
(0, vitest_1.expect)(caught).toBeInstanceOf(cli_user_error_1.CliUserError);
|
|
94
95
|
(0, vitest_1.expect)(caught.severity).toBe("warn");
|
|
95
96
|
(0, vitest_1.expect)(caught.exitCode).toBe(1);
|
|
96
|
-
(0, vitest_1.expect)(mocks.
|
|
97
|
+
(0, vitest_1.expect)(mocks.setAgentCurrentProject).not.toHaveBeenCalled();
|
|
97
98
|
});
|
|
98
99
|
});
|
|
99
100
|
(0, vitest_1.describe)("selectProjectOnLogin", () => {
|
|
@@ -101,18 +102,18 @@ const fakeClient = {};
|
|
|
101
102
|
vitest_1.vi.clearAllMocks();
|
|
102
103
|
});
|
|
103
104
|
(0, vitest_1.it)("persists an explicit --project (resolved by the backend)", async () => {
|
|
104
|
-
mocks.
|
|
105
|
+
mocks.setAgentCurrentProject.mockResolvedValue(resolved("OrgB", "App2", "id-2"));
|
|
105
106
|
await (0, select_project_1.selectProjectOnLogin)({
|
|
106
107
|
client: fakeClient,
|
|
107
108
|
project: "OrgB/App2",
|
|
108
109
|
interactive: true,
|
|
109
110
|
});
|
|
110
|
-
(0, vitest_1.expect)(mocks.
|
|
111
|
+
(0, vitest_1.expect)(mocks.setAgentCurrentProject).toHaveBeenCalledWith(fakeClient, "OrgB/App2");
|
|
111
112
|
});
|
|
112
113
|
(0, vitest_1.it)("auto-selects and persists the sole project (no stored-default lookup needed)", async () => {
|
|
113
114
|
mocks.getOAuthProjects.mockResolvedValue([project("OrgA", "App1", "id-1")]);
|
|
114
115
|
await (0, select_project_1.selectProjectOnLogin)({ client: fakeClient, interactive: true });
|
|
115
|
-
(0, vitest_1.expect)(mocks.
|
|
116
|
+
(0, vitest_1.expect)(mocks.setAgentCurrentProject).toHaveBeenCalledWith(fakeClient, "id-1");
|
|
116
117
|
// Only >1-project accounts consult the stored default (to respect it);
|
|
117
118
|
// a sole project is selected directly.
|
|
118
119
|
(0, vitest_1.expect)(mocks.getOAuthDefaultProject).not.toHaveBeenCalled();
|
|
@@ -128,7 +129,7 @@ const fakeClient = {};
|
|
|
128
129
|
organization: { id: "OrgB-id", name: "OrgB" },
|
|
129
130
|
});
|
|
130
131
|
await (0, select_project_1.selectProjectOnLogin)({ client: fakeClient, interactive: false });
|
|
131
|
-
(0, vitest_1.expect)(mocks.
|
|
132
|
+
(0, vitest_1.expect)(mocks.setAgentCurrentProject).not.toHaveBeenCalled();
|
|
132
133
|
});
|
|
133
134
|
(0, vitest_1.it)("succeeds non-interactively when a default already exists, even with multiple projects", async () => {
|
|
134
135
|
mocks.getOAuthProjects.mockResolvedValue([
|
|
@@ -153,7 +154,7 @@ const fakeClient = {};
|
|
|
153
154
|
interactive: false,
|
|
154
155
|
}).catch((error) => error);
|
|
155
156
|
(0, vitest_1.expect)(caught).toBeInstanceOf(cli_user_error_1.CliUserError);
|
|
156
|
-
(0, vitest_1.expect)(mocks.
|
|
157
|
+
(0, vitest_1.expect)(mocks.setAgentCurrentProject).not.toHaveBeenCalled();
|
|
157
158
|
});
|
|
158
159
|
(0, vitest_1.it)("prompts and persists when interactive with several projects and no default", async () => {
|
|
159
160
|
mocks.getOAuthProjects.mockResolvedValue([
|
|
@@ -163,7 +164,7 @@ const fakeClient = {};
|
|
|
163
164
|
mocks.getOAuthDefaultProject.mockResolvedValue({ projectId: null });
|
|
164
165
|
mocks.prompt.mockResolvedValue({ projectId: "id-2" });
|
|
165
166
|
await (0, select_project_1.selectProjectOnLogin)({ client: fakeClient, interactive: true });
|
|
166
|
-
(0, vitest_1.expect)(mocks.
|
|
167
|
+
(0, vitest_1.expect)(mocks.setAgentCurrentProject).toHaveBeenCalledWith(fakeClient, "id-2");
|
|
167
168
|
});
|
|
168
169
|
});
|
|
169
170
|
(0, vitest_1.describe)("formatProjectSlug", () => {
|
|
@@ -211,4 +212,4 @@ const fakeClient = {};
|
|
|
211
212
|
});
|
|
212
213
|
});
|
|
213
214
|
//# sourceMappingURL=select-project.spec.js.map
|
|
214
|
-
//# debugId=
|
|
215
|
+
//# debugId=42cf5a0a-a974-5f19-a984-dbab1288a84c
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-project.spec.js","sources":["../../../src/utils/__tests__/select-project.spec.ts"],"sourceRoot":"","names":[],"mappings":";;;;AAAA,mCAA8D;AAC9D,sDAAiD;AACjD,sDAK2B;AAE3B,MAAM,KAAK,GAAG,WAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9B,gBAAgB,EAAE,WAAE,CAAC,EAAE,EAAE;IACzB,sBAAsB,EAAE,WAAE,CAAC,EAAE,EAAE;IAC/B,sBAAsB,EAAE,WAAE,CAAC,EAAE,EAAE;IAC/B,YAAY,EAAE,WAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;IAChC,MAAM,EAAE,WAAE,CAAC,EAAE,EAAE;CAChB,CAAC,CAAC,CAAC;AAEJ,WAAE,CAAC,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE,CAAC,CAAC;IACzC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;IACxC,sBAAsB,EAAE,KAAK,CAAC,sBAAsB;IACpD,sBAAsB,EAAE,KAAK,CAAC,sBAAsB;IACpD,YAAY,EAAE,KAAK,CAAC,YAAY;CACjC,CAAC,CAAC,CAAC;AAEJ,8EAA8E;AAC9E,aAAa;AACb,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,IAAY,EAAE,EAAU,EAAE,EAAE,CAAC,CAAC;IAC3D,
|
|
1
|
+
{"version":3,"file":"select-project.spec.js","sources":["../../../src/utils/__tests__/select-project.spec.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"42cf5a0a-a974-5f19-a984-dbab1288a84c"}
|
|
@@ -17,5 +17,32 @@
|
|
|
17
17
|
* try { ... } catch (error) { handleAuthFailure(error); throw error; }
|
|
18
18
|
*/
|
|
19
19
|
export declare const handleAuthFailure: (error: unknown) => false;
|
|
20
|
+
/**
|
|
21
|
+
* Re-presents a backend rejection as a `CliUserError` carrying the server's own
|
|
22
|
+
* message, so `wrapHandler` prints that message and exits non-zero instead of
|
|
23
|
+
* dumping a fetch error and stack. Use for endpoints whose 4xx bodies are
|
|
24
|
+
* written for the user (e.g. "no default project is set ..." — the backend is
|
|
25
|
+
* the only side that knows *why*, and duplicating that reasoning in the CLI is
|
|
26
|
+
* how the two drift apart). Returns the error unchanged when it carries no
|
|
27
|
+
* message, so genuine transport failures keep their original diagnostics.
|
|
28
|
+
*
|
|
29
|
+
* Deliberately narrowed to `400` rather than "any fetch error with a message":
|
|
30
|
+
* every business rejection these agent endpoints throw for a user to read is a
|
|
31
|
+
* `400` (see `AgentAccountService`'s `BadRequestException`/`AgentReasonedHttpException`
|
|
32
|
+
* throws). A `404` can just as easily mean the route itself doesn't exist (an
|
|
33
|
+
* older backend than this CLI) and a `5xx` is always a real defect — converting
|
|
34
|
+
* those into a `CliUserError` here would stop them reaching Sentry and hide the
|
|
35
|
+
* status/body that would explain them.
|
|
36
|
+
*/
|
|
37
|
+
export declare const toServerMessageError: (error: unknown) => unknown;
|
|
38
|
+
/**
|
|
39
|
+
* Whether `error` is Nest's default response for a request that matched no
|
|
40
|
+
* route at all (as opposed to a route that matched and rejected the request) —
|
|
41
|
+
* e.g. `{"statusCode":404,"message":"Cannot PUT /api/agent/project", "error":"Not Found"}`.
|
|
42
|
+
* Distinguishes "this CLI is newer than the backend it's talking to" from a
|
|
43
|
+
* genuine, intentionally-thrown 404 (like "project not found"), which callers
|
|
44
|
+
* must not conflate — see `toProjectResolutionError` in `select-project.ts`.
|
|
45
|
+
*/
|
|
46
|
+
export declare const isRouteNotFoundError: (error: unknown) => boolean;
|
|
20
47
|
export declare const extractServerMessage: (data: unknown) => string | null;
|
|
21
48
|
//# sourceMappingURL=handle-auth-failure.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handle-auth-failure.d.ts","sourceRoot":"","sources":["../../src/utils/handle-auth-failure.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,iBAAiB,UAAW,OAAO,KAAG,KAiClD,CAAC;AAEF,eAAO,MAAM,oBAAoB,SAAU,OAAO,KAAG,MAAM,GAAG,IAc7D,CAAC"}
|
|
1
|
+
{"version":3,"file":"handle-auth-failure.d.ts","sourceRoot":"","sources":["../../src/utils/handle-auth-failure.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,iBAAiB,UAAW,OAAO,KAAG,KAiClD,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,oBAAoB,UAAW,OAAO,KAAG,OAMrD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,UAAW,OAAO,KAAG,OAMrD,CAAC;AAEF,eAAO,MAAM,oBAAoB,SAAU,OAAO,KAAG,MAAM,GAAG,IAc7D,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="f0f87b64-3b10-5f7f-a980-1406b84c4928")}catch(e){}}();
|
|
3
3
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.extractServerMessage = exports.handleAuthFailure = void 0;
|
|
5
|
+
exports.extractServerMessage = exports.isRouteNotFoundError = exports.toServerMessageError = exports.handleAuthFailure = void 0;
|
|
6
6
|
const client_1 = require("@alwaysmeticulous/client");
|
|
7
7
|
const cli_user_error_1 = require("./cli-user-error");
|
|
8
8
|
/**
|
|
@@ -47,6 +47,47 @@ const handleAuthFailure = (error) => {
|
|
|
47
47
|
"If the token is stale, run `meticulous auth logout` and re-run the command.");
|
|
48
48
|
};
|
|
49
49
|
exports.handleAuthFailure = handleAuthFailure;
|
|
50
|
+
/**
|
|
51
|
+
* Re-presents a backend rejection as a `CliUserError` carrying the server's own
|
|
52
|
+
* message, so `wrapHandler` prints that message and exits non-zero instead of
|
|
53
|
+
* dumping a fetch error and stack. Use for endpoints whose 4xx bodies are
|
|
54
|
+
* written for the user (e.g. "no default project is set ..." — the backend is
|
|
55
|
+
* the only side that knows *why*, and duplicating that reasoning in the CLI is
|
|
56
|
+
* how the two drift apart). Returns the error unchanged when it carries no
|
|
57
|
+
* message, so genuine transport failures keep their original diagnostics.
|
|
58
|
+
*
|
|
59
|
+
* Deliberately narrowed to `400` rather than "any fetch error with a message":
|
|
60
|
+
* every business rejection these agent endpoints throw for a user to read is a
|
|
61
|
+
* `400` (see `AgentAccountService`'s `BadRequestException`/`AgentReasonedHttpException`
|
|
62
|
+
* throws). A `404` can just as easily mean the route itself doesn't exist (an
|
|
63
|
+
* older backend than this CLI) and a `5xx` is always a real defect — converting
|
|
64
|
+
* those into a `CliUserError` here would stop them reaching Sentry and hide the
|
|
65
|
+
* status/body that would explain them.
|
|
66
|
+
*/
|
|
67
|
+
const toServerMessageError = (error) => {
|
|
68
|
+
if (!(0, client_1.isFetchError)(error) || error.response?.status !== 400) {
|
|
69
|
+
return error;
|
|
70
|
+
}
|
|
71
|
+
const message = (0, exports.extractServerMessage)(error.response?.data);
|
|
72
|
+
return message ? new cli_user_error_1.CliUserError(message) : error;
|
|
73
|
+
};
|
|
74
|
+
exports.toServerMessageError = toServerMessageError;
|
|
75
|
+
/**
|
|
76
|
+
* Whether `error` is Nest's default response for a request that matched no
|
|
77
|
+
* route at all (as opposed to a route that matched and rejected the request) —
|
|
78
|
+
* e.g. `{"statusCode":404,"message":"Cannot PUT /api/agent/project", "error":"Not Found"}`.
|
|
79
|
+
* Distinguishes "this CLI is newer than the backend it's talking to" from a
|
|
80
|
+
* genuine, intentionally-thrown 404 (like "project not found"), which callers
|
|
81
|
+
* must not conflate — see `toProjectResolutionError` in `select-project.ts`.
|
|
82
|
+
*/
|
|
83
|
+
const isRouteNotFoundError = (error) => {
|
|
84
|
+
if (!(0, client_1.isFetchError)(error) || error.response?.status !== 404) {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
const message = (0, exports.extractServerMessage)(error.response?.data);
|
|
88
|
+
return message != null && /^Cannot [A-Z]+ /.test(message);
|
|
89
|
+
};
|
|
90
|
+
exports.isRouteNotFoundError = isRouteNotFoundError;
|
|
50
91
|
const extractServerMessage = (data) => {
|
|
51
92
|
if (!data) {
|
|
52
93
|
return null;
|
|
@@ -64,4 +105,4 @@ const extractServerMessage = (data) => {
|
|
|
64
105
|
};
|
|
65
106
|
exports.extractServerMessage = extractServerMessage;
|
|
66
107
|
//# sourceMappingURL=handle-auth-failure.js.map
|
|
67
|
-
//# debugId=
|
|
108
|
+
//# debugId=f0f87b64-3b10-5f7f-a980-1406b84c4928
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handle-auth-failure.js","sources":["../../src/utils/handle-auth-failure.ts"],"sourceRoot":"","names":[],"mappings":";;;;;AAAA,qDAOkC;AAClC,qDAAgD;AAEhD;;;;;;;;;;;;;;;;;GAiBG;AACI,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAAS,EAAE;IACzD,IAAI,CAAC,IAAA,qBAAY,EAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;IACtC,IAAI,CAAC,IAAA,4BAAmB,EAAC,MAAM,CAAC,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,6BAAoB,GAAE,CAAC;IACtC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,IAAA,qBAAY,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAElE,IAAI,OAAO,EAAE,CAAC;QACZ,IAAA,yBAAgB,GAAE,CAAC;QACnB,MAAM,IAAI,6BAAY,CACpB,kEAAkE;YAChE,4CAA4C,CAC/C,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,IAAA,4BAAoB,EAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,aAAa,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAE1D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,6BAAY,CACpB,+BAA+B,MAAM,IAAI,MAAM,KAAK,8BAAqB,EAAE,CAC5E,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,6BAAY,CACpB,+BAA+B,MAAM,IAAI,MAAM,IAAI;QACjD,6EAA6E,CAChF,CAAC;AACJ,CAAC,CAAC;AAjCW,QAAA,iBAAiB,qBAiC5B;AAEK,MAAM,oBAAoB,GAAG,CAAC,IAAa,EAAiB,EAAE;IACnE,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAI,IAA8B,CAAC,OAAO,CAAC;QACxD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAdW,QAAA,oBAAoB,wBAc/B","debugId":"
|
|
1
|
+
{"version":3,"file":"handle-auth-failure.js","sources":["../../src/utils/handle-auth-failure.ts"],"sourceRoot":"","names":[],"mappings":";;;;;AAAA,qDAOkC;AAClC,qDAAgD;AAEhD;;;;;;;;;;;;;;;;;GAiBG;AACI,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAAS,EAAE;IACzD,IAAI,CAAC,IAAA,qBAAY,EAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;IACtC,IAAI,CAAC,IAAA,4BAAmB,EAAC,MAAM,CAAC,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,6BAAoB,GAAE,CAAC;IACtC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,IAAA,qBAAY,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAElE,IAAI,OAAO,EAAE,CAAC;QACZ,IAAA,yBAAgB,GAAE,CAAC;QACnB,MAAM,IAAI,6BAAY,CACpB,kEAAkE;YAChE,4CAA4C,CAC/C,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,IAAA,4BAAoB,EAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,aAAa,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAE1D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,6BAAY,CACpB,+BAA+B,MAAM,IAAI,MAAM,KAAK,8BAAqB,EAAE,CAC5E,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,6BAAY,CACpB,+BAA+B,MAAM,IAAI,MAAM,IAAI;QACjD,6EAA6E,CAChF,CAAC;AACJ,CAAC,CAAC;AAjCW,QAAA,iBAAiB,qBAiC5B;AAEF;;;;;;;;;;;;;;;;GAgBG;AACI,MAAM,oBAAoB,GAAG,CAAC,KAAc,EAAW,EAAE;IAC9D,IAAI,CAAC,IAAA,qBAAY,EAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;QAC3D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,OAAO,GAAG,IAAA,4BAAoB,EAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC3D,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,6BAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACrD,CAAC,CAAC;AANW,QAAA,oBAAoB,wBAM/B;AAEF;;;;;;;GAOG;AACI,MAAM,oBAAoB,GAAG,CAAC,KAAc,EAAW,EAAE;IAC9D,IAAI,CAAC,IAAA,qBAAY,EAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;QAC3D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,OAAO,GAAG,IAAA,4BAAoB,EAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC3D,OAAO,OAAO,IAAI,IAAI,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC5D,CAAC,CAAC;AANW,QAAA,oBAAoB,wBAM/B;AAEK,MAAM,oBAAoB,GAAG,CAAC,IAAa,EAAiB,EAAE;IACnE,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAI,IAA8B,CAAC,OAAO,CAAC;QACxD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAdW,QAAA,oBAAoB,wBAc/B","debugId":"f0f87b64-3b10-5f7f-a980-1406b84c4928"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type MeticulousClient } from "@alwaysmeticulous/client";
|
|
2
|
+
/**
|
|
3
|
+
* Appends guidance to an empty/not-found result from a project-scoped command,
|
|
4
|
+
* naming the project the lookup actually ran against and how to change it. An
|
|
5
|
+
* empty-handed lookup is far more often a wrong-project mismatch than a genuine
|
|
6
|
+
* absence — a default project is stored server-side, so it is shared across
|
|
7
|
+
* every machine and the hosted MCP server, and drifts without any local signal.
|
|
8
|
+
* Returns `message` unchanged when `project` was passed explicitly: the caller
|
|
9
|
+
* already chose the project, so there is nothing to disambiguate.
|
|
10
|
+
*
|
|
11
|
+
* Best-effort and never throws: the resolution is one extra request on a path
|
|
12
|
+
* that has already failed, so a failure to describe the selection just falls
|
|
13
|
+
* back to naming the commands rather than the project.
|
|
14
|
+
*/
|
|
15
|
+
export declare const appendProjectSelectionHint: (message: string, client: MeticulousClient, project: string | undefined) => Promise<string>;
|
|
16
|
+
//# sourceMappingURL=project-selection-hint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-selection-hint.d.ts","sourceRoot":"","sources":["../../src/utils/project-selection-hint.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,0BAA0B,CAAC;AAelC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,0BAA0B,YAC5B,MAAM,UACP,gBAAgB,WACf,MAAM,GAAG,SAAS,KAC1B,OAAO,CAAC,MAAM,CAGhB,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="19ab7503-45b7-57ed-b38a-297e407b0041")}catch(e){}}();
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.appendProjectSelectionHint = void 0;
|
|
6
|
+
const client_1 = require("@alwaysmeticulous/client");
|
|
7
|
+
/**
|
|
8
|
+
* Appends guidance to an empty/not-found result from a project-scoped command,
|
|
9
|
+
* naming the project the lookup actually ran against and how to change it. An
|
|
10
|
+
* empty-handed lookup is far more often a wrong-project mismatch than a genuine
|
|
11
|
+
* absence — a default project is stored server-side, so it is shared across
|
|
12
|
+
* every machine and the hosted MCP server, and drifts without any local signal.
|
|
13
|
+
* Returns `message` unchanged when `project` was passed explicitly: the caller
|
|
14
|
+
* already chose the project, so there is nothing to disambiguate.
|
|
15
|
+
*
|
|
16
|
+
* Best-effort and never throws: the resolution is one extra request on a path
|
|
17
|
+
* that has already failed, so a failure to describe the selection just falls
|
|
18
|
+
* back to naming the commands rather than the project.
|
|
19
|
+
*/
|
|
20
|
+
const appendProjectSelectionHint = async (message, client, project) => {
|
|
21
|
+
const hint = await describeProjectSelection(client, project);
|
|
22
|
+
return hint ? `${message} ${hint}` : message;
|
|
23
|
+
};
|
|
24
|
+
exports.appendProjectSelectionHint = appendProjectSelectionHint;
|
|
25
|
+
const describeProjectSelection = async (client, project) => {
|
|
26
|
+
if (project != null && project.trim() !== "") {
|
|
27
|
+
return "";
|
|
28
|
+
}
|
|
29
|
+
const selection = await resolveProjectSelection(client);
|
|
30
|
+
switch (selection.source) {
|
|
31
|
+
case "default":
|
|
32
|
+
return (`Searched project ${selection.slug} — your default project, since no --project was given. ` +
|
|
33
|
+
"If that is not the project you expected, run `meticulous auth list-projects` to see the " +
|
|
34
|
+
'projects you can access, `meticulous auth set-project` (interactive) or `meticulous auth set-project --project "<org/project>"` ' +
|
|
35
|
+
'to change the default, or pass --project "<org/project>" to override it for a single command.');
|
|
36
|
+
case "auto-picked":
|
|
37
|
+
return (`Searched project ${selection.slug} — automatically selected since it's the only project your ` +
|
|
38
|
+
"account can access, since no --project was given. If that is not the project you expected, run " +
|
|
39
|
+
"`meticulous auth list-projects` to see the projects you can access, " +
|
|
40
|
+
'`meticulous auth set-project --project "<org/project>"` to store an explicit default, or pass ' +
|
|
41
|
+
'--project "<org/project>" to override it for a single command.');
|
|
42
|
+
case "token":
|
|
43
|
+
// Only a project API token with cross-project access can actually use
|
|
44
|
+
// --project (see `ApiTokenService.resolveProjectFromTokenOrRequest`); other
|
|
45
|
+
// project and every test-run token reject it. Worded to be true either way
|
|
46
|
+
// rather than assuming this token can't use it.
|
|
47
|
+
return (`Searched project ${selection.slug}, which your API token is scoped to by default. Pass ` +
|
|
48
|
+
'--project "<org/project>" to search a different project — this only works for a project API ' +
|
|
49
|
+
"token with cross-project access; other tokens are rejected. `meticulous auth set-project` does " +
|
|
50
|
+
"not apply to any API token — to change the default, log in as a user with `meticulous auth login`.");
|
|
51
|
+
case "unknown":
|
|
52
|
+
return ("No --project was given, so this used your default project. Run `meticulous auth get-project` to " +
|
|
53
|
+
"see which project that is, `meticulous auth list-projects` for the projects you can access, and " +
|
|
54
|
+
"`meticulous auth set-project` to change the default.");
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Resolves which project the client's credentials target, and how, via a
|
|
59
|
+
* single call to `agent/project` — it already reports this unambiguously for
|
|
60
|
+
* either credential kind (see `AgentAccountService.getCurrentProject`), so
|
|
61
|
+
* there's no need to guess from which of several endpoints happens to answer.
|
|
62
|
+
*/
|
|
63
|
+
const resolveProjectSelection = async (client) => {
|
|
64
|
+
try {
|
|
65
|
+
const current = await (0, client_1.getAgentCurrentProject)(client);
|
|
66
|
+
switch (current.source) {
|
|
67
|
+
case "user-default":
|
|
68
|
+
return { source: "default", slug: current.project };
|
|
69
|
+
case "auto-picked":
|
|
70
|
+
return { source: "auto-picked", slug: current.project };
|
|
71
|
+
case "api-token":
|
|
72
|
+
return { source: "token", slug: current.project };
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
// Offline, an older backend without this route, no usable default, or
|
|
77
|
+
// credentials injected at request time that this client never sees.
|
|
78
|
+
}
|
|
79
|
+
return { source: "unknown" };
|
|
80
|
+
};
|
|
81
|
+
//# sourceMappingURL=project-selection-hint.js.map
|
|
82
|
+
//# debugId=19ab7503-45b7-57ed-b38a-297e407b0041
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-selection-hint.js","sources":["../../src/utils/project-selection-hint.ts"],"sourceRoot":"","names":[],"mappings":";;;;;AAAA,qDAGkC;AAelC;;;;;;;;;;;;GAYG;AACI,MAAM,0BAA0B,GAAG,KAAK,EAC7C,OAAe,EACf,MAAwB,EACxB,OAA2B,EACV,EAAE;IACnB,MAAM,IAAI,GAAG,MAAM,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7D,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;AAC/C,CAAC,CAAC;AAPW,QAAA,0BAA0B,8BAOrC;AAEF,MAAM,wBAAwB,GAAG,KAAK,EACpC,MAAwB,EACxB,OAA2B,EACV,EAAE;IACnB,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC7C,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACxD,QAAQ,SAAS,CAAC,MAAM,EAAE,CAAC;QACzB,KAAK,SAAS;YACZ,OAAO,CACL,oBAAoB,SAAS,CAAC,IAAI,yDAAyD;gBAC3F,0FAA0F;gBAC1F,kIAAkI;gBAClI,+FAA+F,CAChG,CAAC;QACJ,KAAK,aAAa;YAChB,OAAO,CACL,oBAAoB,SAAS,CAAC,IAAI,6DAA6D;gBAC/F,iGAAiG;gBACjG,sEAAsE;gBACtE,gGAAgG;gBAChG,gEAAgE,CACjE,CAAC;QACJ,KAAK,OAAO;YACV,sEAAsE;YACtE,4EAA4E;YAC5E,2EAA2E;YAC3E,gDAAgD;YAChD,OAAO,CACL,oBAAoB,SAAS,CAAC,IAAI,uDAAuD;gBACzF,8FAA8F;gBAC9F,iGAAiG;gBACjG,oGAAoG,CACrG,CAAC;QACJ,KAAK,SAAS;YACZ,OAAO,CACL,kGAAkG;gBAClG,kGAAkG;gBAClG,sDAAsD,CACvD,CAAC;IACN,CAAC;AACH,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,uBAAuB,GAAG,KAAK,EACnC,MAAwB,EACG,EAAE;IAC7B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,IAAA,+BAAsB,EAAC,MAAM,CAAC,CAAC;QACrD,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;YACvB,KAAK,cAAc;gBACjB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;YACtD,KAAK,aAAa;gBAChB,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;YAC1D,KAAK,WAAW;gBACd,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;QACtD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,sEAAsE;QACtE,oEAAoE;IACtE,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC/B,CAAC,CAAC","debugId":"19ab7503-45b7-57ed-b38a-297e407b0041"}
|
|
@@ -15,17 +15,4 @@
|
|
|
15
15
|
export declare const resolveProjectIdentifier: (apiToken: string | null) => Promise<{
|
|
16
16
|
projectId?: string;
|
|
17
17
|
}>;
|
|
18
|
-
/**
|
|
19
|
-
* Resolves the single project a project-scoped API token is bound to, via the
|
|
20
|
-
* `token-info` endpoint, as an `"organization/name"` slug. Best-effort: any
|
|
21
|
-
* failure (network, older backend without the endpoint, etc.) resolves to
|
|
22
|
-
* `null` rather than throwing — used for informational display (`whoami`,
|
|
23
|
-
* `get-project`), where a missing project name shouldn't fail the command.
|
|
24
|
-
*
|
|
25
|
-
* A `null` token sends the request without an Authorization header, which
|
|
26
|
-
* doubles as a probe for environments that inject credentials into outbound
|
|
27
|
-
* requests: it resolves to the pinned project when injection is working and
|
|
28
|
-
* `null` otherwise.
|
|
29
|
-
*/
|
|
30
|
-
export declare const resolvePinnedProjectSlug: (apiToken: string | null) => Promise<string | null>;
|
|
31
18
|
//# sourceMappingURL=resolve-project-identifier.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-project-identifier.d.ts","sourceRoot":"","sources":["../../src/utils/resolve-project-identifier.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resolve-project-identifier.d.ts","sourceRoot":"","sources":["../../src/utils/resolve-project-identifier.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,wBAAwB,aACzB,MAAM,GAAG,IAAI,KACtB,OAAO,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAiBhC,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="2fb3a46b-d479-5d7c-a99f-3328558c2975")}catch(e){}}();
|
|
3
3
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.
|
|
5
|
+
exports.resolveProjectIdentifier = void 0;
|
|
6
6
|
const common_1 = require("@alwaysmeticulous/common");
|
|
7
7
|
const client_1 = require("@alwaysmeticulous/client");
|
|
8
8
|
const cli_user_error_1 = require("./cli-user-error");
|
|
@@ -36,28 +36,5 @@ const resolveProjectIdentifier = async (apiToken) => {
|
|
|
36
36
|
return { projectId };
|
|
37
37
|
};
|
|
38
38
|
exports.resolveProjectIdentifier = resolveProjectIdentifier;
|
|
39
|
-
/**
|
|
40
|
-
* Resolves the single project a project-scoped API token is bound to, via the
|
|
41
|
-
* `token-info` endpoint, as an `"organization/name"` slug. Best-effort: any
|
|
42
|
-
* failure (network, older backend without the endpoint, etc.) resolves to
|
|
43
|
-
* `null` rather than throwing — used for informational display (`whoami`,
|
|
44
|
-
* `get-project`), where a missing project name shouldn't fail the command.
|
|
45
|
-
*
|
|
46
|
-
* A `null` token sends the request without an Authorization header, which
|
|
47
|
-
* doubles as a probe for environments that inject credentials into outbound
|
|
48
|
-
* requests: it resolves to the pinned project when injection is working and
|
|
49
|
-
* `null` otherwise.
|
|
50
|
-
*/
|
|
51
|
-
const resolvePinnedProjectSlug = async (apiToken) => {
|
|
52
|
-
try {
|
|
53
|
-
const client = (0, client_1.createClient)({ apiToken });
|
|
54
|
-
const project = await (0, client_1.getProject)(client);
|
|
55
|
-
return project ? `${project.organization.name}/${project.name}` : null;
|
|
56
|
-
}
|
|
57
|
-
catch {
|
|
58
|
-
return null;
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
exports.resolvePinnedProjectSlug = resolvePinnedProjectSlug;
|
|
62
39
|
//# sourceMappingURL=resolve-project-identifier.js.map
|
|
63
|
-
//# debugId=
|
|
40
|
+
//# debugId=2fb3a46b-d479-5d7c-a99f-3328558c2975
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-project-identifier.js","sources":["../../src/utils/resolve-project-identifier.ts"],"sourceRoot":"","names":[],"mappings":";;;;;AAAA,qDAAsD;AACtD,
|
|
1
|
+
{"version":3,"file":"resolve-project-identifier.js","sources":["../../src/utils/resolve-project-identifier.ts"],"sourceRoot":"","names":[],"mappings":";;;;;AAAA,qDAAsD;AACtD,qDAA+E;AAC/E,qDAAgD;AAEhD;;;;;;;;;;;;;GAaG;AACI,MAAM,wBAAwB,GAAG,KAAK,EAC3C,QAAuB,EACU,EAAE;IACnC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAA,mBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;QACvC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAC;IAC5B,wEAAwE;IACxE,8EAA8E;IAC9E,+DAA+D;IAC/D,MAAM,SAAS,GAAG,MAAM,IAAA,gCAAuB,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClE,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,6BAAY,CACpB,sEAAsE;YACpE,kDAAkD,CACrD,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,CAAC;AACvB,CAAC,CAAC;AAnBW,QAAA,wBAAwB,4BAmBnC","debugId":"2fb3a46b-d479-5d7c-a99f-3328558c2975"}
|
|
@@ -50,6 +50,11 @@ export declare const assertTestRunComplete: (testRunId: string, status: TestRunS
|
|
|
50
50
|
* omitted, project-scoped tokens use their own project and OAuth tokens fall
|
|
51
51
|
* back to the caller's stored default (`meticulous auth set-project`).
|
|
52
52
|
*
|
|
53
|
+
* A run triggered over an explicit set of sessions (`trigger-test-run
|
|
54
|
+
* --sessionIds`) is never resolved to: it replays exactly those sessions, so it
|
|
55
|
+
* describes them rather than the commit. Pass its id — which the trigger
|
|
56
|
+
* printed — with `--testRunId` to work with one.
|
|
57
|
+
*
|
|
53
58
|
* Logs the resolved commit (see {@link logResolvedCommitSha}) and the test run
|
|
54
59
|
* id (under `--verbose`).
|
|
55
60
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-test-run-from-commit.d.ts","sourceRoot":"","sources":["../../src/utils/resolve-test-run-from-commit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"resolve-test-run-from-commit.d.ts","sourceRoot":"","sources":["../../src/utils/resolve-test-run-from-commit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAqBjE;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,cACpB,MAAM,GAAG,SAAS,eAChB,MAAM,KAClB,OAAO,CAAC,IAAI,CAQd,CAAC;AAUF,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,aAAa,CAAC;CACvB;AAED,wEAAwE;AACxE,eAAO,MAAM,mBAAmB,WAAY,aAAa,KAAG,OACd,CAAC;AAS/C,8EAA8E;AAC9E,eAAO,MAAM,iBAAiB,WAAY,aAAa,KAAG,OACf,CAAC;AAK5C,2EAA2E;AAC3E,eAAO,MAAM,eAAe,WAAY,aAAa,KAAG,OACf,CAAC;AAE1C;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,WAAY,aAAa,KAAG,OACnC,CAAC;AAEvB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB,cACrB,MAAM,UACT,aAAa,mBACO;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,KAClD,IAgBF,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,8BAA8B,WACjC,gBAAgB,aACb,MAAM,GAAG,SAAS,YACnB,MAAM,KACf,OAAO,CAAC,eAAe,CAuBzB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,WAC7B,gBAAgB,aACb,MAAM,GAAG,SAAS,YACnB,MAAM,KACf,OAAO,CAAC,eAAe,GAAG,IAAI,CAmBhC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,WACzB,gBAAgB,aACb,MAAM,uBACU;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,KACtD,OAAO,CAAC,aAAa,CAsBvB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,WACxB,gBAAgB,aACb,MAAM,UACT,aAAa,iCAIlB;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,KACjD,OAAO,CAAC,aAAa,GAAG,IAAI,CAM9B,CAAC"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="3b3d882f-f970-5cab-97c8-85f42f24ce3d")}catch(e){}}();
|
|
3
3
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
exports.ensureTestRunFinished = exports.awaitTestRunCompletion = exports.tryResolveTestRunForCommit = exports.resolveTestRunForCommitOrThrow = exports.assertTestRunComplete = exports.isTestRunPartial = exports.isTestRunFailed = exports.isTestRunComplete = exports.isTestRunInProgress = exports.logResolvedCommitSha = void 0;
|
|
6
6
|
const client_1 = require("@alwaysmeticulous/client");
|
|
7
7
|
const common_1 = require("@alwaysmeticulous/common");
|
|
8
8
|
const cli_user_error_1 = require("./cli-user-error");
|
|
9
|
+
const project_selection_hint_1 = require("./project-selection-hint");
|
|
9
10
|
const POLL_INTERVAL_MS = 10_000;
|
|
10
11
|
/** Give up waiting for a run after this long, rather than polling forever. */
|
|
11
12
|
const POLL_TIMEOUT_MS = 10 * 60_000;
|
|
@@ -93,6 +94,11 @@ exports.assertTestRunComplete = assertTestRunComplete;
|
|
|
93
94
|
* omitted, project-scoped tokens use their own project and OAuth tokens fall
|
|
94
95
|
* back to the caller's stored default (`meticulous auth set-project`).
|
|
95
96
|
*
|
|
97
|
+
* A run triggered over an explicit set of sessions (`trigger-test-run
|
|
98
|
+
* --sessionIds`) is never resolved to: it replays exactly those sessions, so it
|
|
99
|
+
* describes them rather than the commit. Pass its id — which the trigger
|
|
100
|
+
* printed — with `--testRunId` to work with one.
|
|
101
|
+
*
|
|
96
102
|
* Logs the resolved commit (see {@link logResolvedCommitSha}) and the test run
|
|
97
103
|
* id (under `--verbose`).
|
|
98
104
|
*/
|
|
@@ -106,7 +112,7 @@ const resolveTestRunForCommitOrThrow = async (client, commitSha, project) => {
|
|
|
106
112
|
project,
|
|
107
113
|
});
|
|
108
114
|
if (testRunId == null || status == null) {
|
|
109
|
-
throw new cli_user_error_1.CliUserError(`No test run found for commit ${sha}
|
|
115
|
+
throw new cli_user_error_1.CliUserError(await (0, project_selection_hint_1.appendProjectSelectionHint)(`No test run found for commit ${sha}.`, client, project));
|
|
110
116
|
}
|
|
111
117
|
(0, common_1.logProgress)(`Resolved test run id: ${testRunId}`);
|
|
112
118
|
return { testRunId, status };
|
|
@@ -183,4 +189,4 @@ const ensureTestRunFinished = async (client, testRunId, status, { dontWait, thro
|
|
|
183
189
|
};
|
|
184
190
|
exports.ensureTestRunFinished = ensureTestRunFinished;
|
|
185
191
|
//# sourceMappingURL=resolve-test-run-from-commit.js.map
|
|
186
|
-
//# debugId=
|
|
192
|
+
//# debugId=3b3d882f-f970-5cab-97c8-85f42f24ce3d
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-test-run-from-commit.js","sources":["../../src/utils/resolve-test-run-from-commit.ts"],"sourceRoot":"","names":[],"mappings":";;;;;AAEA,qDAIkC;AAClC,qDAMkC;AAClC,qDAAgD;
|
|
1
|
+
{"version":3,"file":"resolve-test-run-from-commit.js","sources":["../../src/utils/resolve-test-run-from-commit.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"3b3d882f-f970-5cab-97c8-85f42f24ce3d"}
|