@stigmer/cli 3.23.0 → 3.24.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/commands/bootstrap.d.ts.map +1 -1
- package/commands/bootstrap.js +16 -57
- package/commands/bootstrap.js.map +1 -1
- package/commands/config/context.d.ts.map +1 -1
- package/commands/config/context.js +41 -5
- package/commands/config/context.js.map +1 -1
- package/commands/install.js +1 -1
- package/commands/install.js.map +1 -1
- package/commands/push.js +1 -1
- package/commands/push.js.map +1 -1
- package/commands/search.d.ts.map +1 -1
- package/commands/search.js +0 -2
- package/commands/search.js.map +1 -1
- package/commands/up.js +1 -1
- package/commands/up.js.map +1 -1
- package/config/index.d.ts +1 -1
- package/config/index.d.ts.map +1 -1
- package/config/index.js +1 -1
- package/config/index.js.map +1 -1
- package/config/resolve.d.ts +8 -0
- package/config/resolve.d.ts.map +1 -1
- package/config/resolve.js +8 -8
- package/config/resolve.js.map +1 -1
- package/local/bootstrap.d.ts +9 -29
- package/local/bootstrap.d.ts.map +1 -1
- package/local/bootstrap.js +61 -69
- package/local/bootstrap.js.map +1 -1
- package/local/daemon/launch.d.ts +2 -2
- package/local/daemon/launch.d.ts.map +1 -1
- package/marketplace/official.d.ts.map +1 -1
- package/marketplace/official.js +6 -5
- package/marketplace/official.js.map +1 -1
- package/marketplace/render.d.ts.map +1 -1
- package/marketplace/render.js +0 -3
- package/marketplace/render.js.map +1 -1
- package/package.json +7 -7
- package/resources/search.d.ts +1 -3
- package/resources/search.d.ts.map +1 -1
- package/resources/search.js +0 -1
- package/resources/search.js.map +1 -1
- package/resources/share.d.ts.map +1 -1
- package/resources/share.js +20 -24
- package/resources/share.js.map +1 -1
- package/resources/skill.d.ts +2 -2
- package/resources/skill.d.ts.map +1 -1
- package/resources/skill.js +19 -10
- package/resources/skill.js.map +1 -1
- package/src/commands/bootstrap.test.ts +19 -75
- package/src/commands/bootstrap.ts +19 -68
- package/src/commands/config/context.test.ts +171 -0
- package/src/commands/config/context.ts +50 -5
- package/src/commands/install.ts +1 -1
- package/src/commands/marketplace.test.ts +2 -2
- package/src/commands/push.ts +1 -1
- package/src/commands/search.ts +0 -3
- package/src/commands/up.ts +1 -1
- package/src/config/index.ts +1 -0
- package/src/config/resolve.test.ts +2 -2
- package/src/config/resolve.ts +8 -8
- package/src/local/bootstrap.test.ts +132 -65
- package/src/local/bootstrap.ts +64 -139
- package/src/local/daemon/launch.ts +2 -2
- package/src/marketplace/official.ts +6 -5
- package/src/marketplace/read.test.ts +2 -3
- package/src/marketplace/render.ts +0 -3
- package/src/resources/apply/apply.test.ts +10 -10
- package/src/resources/read-completion.integration.test.ts +0 -2
- package/src/resources/search.ts +1 -4
- package/src/resources/share.test.ts +7 -60
- package/src/resources/share.ts +22 -27
- package/src/resources/skill.test.ts +20 -13
- package/src/resources/skill.ts +25 -14
- package/local/plugins/defaults.d.ts +0 -55
- package/local/plugins/defaults.d.ts.map +0 -1
- package/local/plugins/defaults.js +0 -111
- package/local/plugins/defaults.js.map +0 -1
- package/local/system-org.d.ts +0 -15
- package/local/system-org.d.ts.map +0 -1
- package/local/system-org.js +0 -57
- package/local/system-org.js.map +0 -1
- package/src/local/plugins/defaults.test.ts +0 -271
- package/src/local/plugins/defaults.ts +0 -179
- package/src/local/system-org.test.ts +0 -124
- package/src/local/system-org.ts +0 -63
package/resources/skill.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/resources/skill.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/resources/skill.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
// Command-level contract for `stigmer bootstrap`: against the configured
|
|
2
|
-
// backend it ensures the
|
|
3
|
-
//
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
// the function level (local/bootstrap.test.ts), where a synthetic list can
|
|
9
|
-
// stage it. A real Connect backend over h2c serves the org and plugin
|
|
10
|
-
// controllers; the config file (HOME redirected) points a selfhost backend
|
|
11
|
-
// at it.
|
|
2
|
+
// backend it ensures the organization the CLI falls back to (`stigmer`) and
|
|
3
|
+
// installs nothing, so the command creates the organization and renders one
|
|
4
|
+
// Organization section; a second run over a ready backend reports the org
|
|
5
|
+
// present and creates nothing. A real Connect backend over h2c serves the org
|
|
6
|
+
// controllers; the config file (HOME redirected) points a selfhost backend at
|
|
7
|
+
// it.
|
|
12
8
|
|
|
13
|
-
import { createHash } from "node:crypto";
|
|
14
9
|
import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";
|
|
15
10
|
import {
|
|
16
11
|
createServer as createHttp2Server,
|
|
@@ -21,16 +16,8 @@ import type { AddressInfo } from "node:net";
|
|
|
21
16
|
import { tmpdir } from "node:os";
|
|
22
17
|
import { join } from "node:path";
|
|
23
18
|
import { create } from "@bufbuild/protobuf";
|
|
24
|
-
import {
|
|
19
|
+
import type { ConnectRouter } from "@connectrpc/connect";
|
|
25
20
|
import { connectNodeAdapter } from "@connectrpc/connect-node";
|
|
26
|
-
import {
|
|
27
|
-
type Plugin,
|
|
28
|
-
PluginSchema,
|
|
29
|
-
} from "@stigmer/protos/ai/stigmer/agentic/plugin/v1/api_pb";
|
|
30
|
-
import { PluginCommandController } from "@stigmer/protos/ai/stigmer/agentic/plugin/v1/command_pb";
|
|
31
|
-
import { ListPluginMembersResponseSchema } from "@stigmer/protos/ai/stigmer/agentic/plugin/v1/io_pb";
|
|
32
|
-
import { PluginQueryController } from "@stigmer/protos/ai/stigmer/agentic/plugin/v1/query_pb";
|
|
33
|
-
import { PluginState } from "@stigmer/protos/ai/stigmer/agentic/plugin/v1/status_pb";
|
|
34
21
|
import {
|
|
35
22
|
type Organization,
|
|
36
23
|
OrganizationSchema,
|
|
@@ -48,9 +35,8 @@ import {
|
|
|
48
35
|
it,
|
|
49
36
|
vi,
|
|
50
37
|
} from "vitest";
|
|
38
|
+
import { DEFAULT_LOCAL_ORG } from "../config/index.js";
|
|
51
39
|
import { classify, ExitCode } from "../errors/index.js";
|
|
52
|
-
import { prepareDefaultPlugins } from "../local/plugins/defaults.js";
|
|
53
|
-
import { SYSTEM_ORG } from "../local/system-org.js";
|
|
54
40
|
import { buildProgram } from "../program.js";
|
|
55
41
|
|
|
56
42
|
let backend: Http2Server;
|
|
@@ -58,19 +44,12 @@ let port: number;
|
|
|
58
44
|
const openSessions = new Set<ServerHttp2Session>();
|
|
59
45
|
|
|
60
46
|
let orgs: Map<string, Organization>;
|
|
61
|
-
let
|
|
62
|
-
let pushes: number;
|
|
47
|
+
let creates: number;
|
|
63
48
|
|
|
64
49
|
let home: string;
|
|
65
50
|
let originalHome: string | undefined;
|
|
66
51
|
|
|
67
|
-
/** The catalogue's defaults by archive digest: how this backend names what it is sent. */
|
|
68
|
-
let nameByDigest: Map<string, string>;
|
|
69
|
-
|
|
70
52
|
beforeAll(async () => {
|
|
71
|
-
nameByDigest = new Map(
|
|
72
|
-
(await prepareDefaultPlugins()).map((entry) => [entry.push.digest, entry.name]),
|
|
73
|
-
);
|
|
74
53
|
const routes = (router: ConnectRouter) => {
|
|
75
54
|
router.service(OrganizationQueryController, {
|
|
76
55
|
findMyOrganizations: () =>
|
|
@@ -78,40 +57,13 @@ beforeAll(async () => {
|
|
|
78
57
|
});
|
|
79
58
|
router.service(OrganizationCommandController, {
|
|
80
59
|
create: (org) => {
|
|
60
|
+
creates += 1;
|
|
81
61
|
const row = create(OrganizationSchema, org);
|
|
82
62
|
if (row.metadata !== undefined) row.metadata.id = "org_1";
|
|
83
63
|
orgs.set(row.metadata?.slug ?? "", row);
|
|
84
64
|
return row;
|
|
85
65
|
},
|
|
86
66
|
});
|
|
87
|
-
router.service(PluginCommandController, {
|
|
88
|
-
push: (req) => {
|
|
89
|
-
pushes += 1;
|
|
90
|
-
const digest = createHash("sha256").update(req.artifact).digest("hex");
|
|
91
|
-
const slug = nameByDigest.get(digest);
|
|
92
|
-
if (slug === undefined) {
|
|
93
|
-
throw new ConnectError("archive is not a catalogue default", Code.InvalidArgument);
|
|
94
|
-
}
|
|
95
|
-
const row = create(PluginSchema, {
|
|
96
|
-
metadata: { id: `plg_${slug}`, slug, org: req.org, visibility: req.visibility },
|
|
97
|
-
spec: { name: slug },
|
|
98
|
-
status: { digest, state: PluginState.READY },
|
|
99
|
-
});
|
|
100
|
-
plugins.set(slug, row);
|
|
101
|
-
return row;
|
|
102
|
-
},
|
|
103
|
-
});
|
|
104
|
-
router.service(PluginQueryController, {
|
|
105
|
-
getByReference: (ref) => {
|
|
106
|
-
const row = plugins.get(ref.slug);
|
|
107
|
-
if (row === undefined) {
|
|
108
|
-
throw new ConnectError(`plugin ${ref.slug} not found`, Code.NotFound);
|
|
109
|
-
}
|
|
110
|
-
return row;
|
|
111
|
-
},
|
|
112
|
-
listMembers: () =>
|
|
113
|
-
create(ListPluginMembersResponseSchema, { members: [] }),
|
|
114
|
-
});
|
|
115
67
|
};
|
|
116
68
|
backend = createHttp2Server(connectNodeAdapter({ routes }));
|
|
117
69
|
backend.on("session", (session) => {
|
|
@@ -129,8 +81,7 @@ afterAll(async () => {
|
|
|
129
81
|
|
|
130
82
|
beforeEach(() => {
|
|
131
83
|
orgs = new Map();
|
|
132
|
-
|
|
133
|
-
pushes = 0;
|
|
84
|
+
creates = 0;
|
|
134
85
|
originalHome = process.env.HOME;
|
|
135
86
|
home = mkdtempSync(join(tmpdir(), "stigmer-bootstrap-cmd-"));
|
|
136
87
|
process.env.HOME = home;
|
|
@@ -198,37 +149,30 @@ function section(payload: { sections?: JsonSection[] }, title: string) {
|
|
|
198
149
|
}
|
|
199
150
|
|
|
200
151
|
describe("bootstrap", () => {
|
|
201
|
-
it("creates the
|
|
152
|
+
it("creates the organization, installs nothing, and reports it", async () => {
|
|
202
153
|
const outcome = await run("--json");
|
|
203
154
|
expect(outcome.exitCode).toBe(ExitCode.Success);
|
|
204
|
-
expect(orgs.has(
|
|
205
|
-
expect(pushes).toBe(0);
|
|
155
|
+
expect(orgs.has(DEFAULT_LOCAL_ORG)).toBe(true);
|
|
206
156
|
|
|
207
157
|
const payload = JSON.parse(outcome.stdout);
|
|
208
158
|
expect(payload.status).toBe("success");
|
|
209
159
|
expect(payload.message).toBe("Backend is ready");
|
|
210
|
-
expect(
|
|
211
|
-
|
|
160
|
+
expect(payload.sections?.map((s: JsonSection) => s.title)).toEqual(["Organization"]);
|
|
161
|
+
expect(section(payload, "Organization")?.fields).toEqual([
|
|
162
|
+
{ key: "Slug", value: DEFAULT_LOCAL_ORG },
|
|
212
163
|
{ key: "State", value: "created" },
|
|
213
164
|
]);
|
|
214
|
-
expect(section(payload, "Default plugins")?.fields ?? []).toEqual([]);
|
|
215
165
|
});
|
|
216
166
|
|
|
217
|
-
it("is a no-op the second time: org present, nothing
|
|
167
|
+
it("is a no-op the second time: org present, nothing created", async () => {
|
|
218
168
|
await run("--json");
|
|
219
|
-
const pushedFirst = pushes;
|
|
220
169
|
const outcome = await run("--json");
|
|
221
170
|
expect(outcome.exitCode).toBe(ExitCode.Success);
|
|
222
|
-
expect(
|
|
171
|
+
expect(creates).toBe(1);
|
|
223
172
|
const payload = JSON.parse(outcome.stdout);
|
|
224
|
-
expect(section(payload, "
|
|
173
|
+
expect(section(payload, "Organization")?.fields).toContainEqual({
|
|
225
174
|
key: "State",
|
|
226
175
|
value: "present",
|
|
227
176
|
});
|
|
228
|
-
expect(
|
|
229
|
-
(section(payload, "Default plugins")?.fields ?? []).every(
|
|
230
|
-
(f) => f.value === "up-to-date",
|
|
231
|
-
),
|
|
232
|
-
).toBe(true);
|
|
233
177
|
});
|
|
234
178
|
});
|
|
@@ -1,26 +1,17 @@
|
|
|
1
|
-
// `stigmer bootstrap` — make the configured backend
|
|
2
|
-
//
|
|
3
|
-
//
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
//
|
|
1
|
+
// `stigmer bootstrap` — make the configured backend ready for the CLI: the
|
|
2
|
+
// organization it falls back to when none is named (`stigmer`) exists.
|
|
3
|
+
// `stigmer up` does this for the local stack on its own; this verb is for a
|
|
4
|
+
// raw self-hosted server behind docker-compose or Helm, and runs the very
|
|
5
|
+
// same act (local/bootstrap.ts), so "ready" has one meaning everywhere. A
|
|
6
|
+
// team that created its organization in the console points the CLI at that
|
|
7
|
+
// one instead (`stigmer config context set --org`) and needs no bootstrap.
|
|
8
8
|
//
|
|
9
|
-
// Flagless on purpose
|
|
10
|
-
//
|
|
11
|
-
//
|
|
12
|
-
// The verb never deletes anything; a scheduled lane must be able to run it
|
|
13
|
-
// without that power.
|
|
14
|
-
//
|
|
15
|
-
// Exit is non-zero when any default failed to land, after the outcomes are
|
|
16
|
-
// rendered, so a lane's run is red for the right reason and a human reads
|
|
17
|
-
// what did and did not install. Heavy modules load lazily inside the action
|
|
18
|
-
// so `--help` stays fast.
|
|
9
|
+
// Flagless on purpose: the act is idempotent, so there is nothing to force;
|
|
10
|
+
// a second run changes nothing and says so. It never deletes anything.
|
|
11
|
+
// Heavy modules load lazily inside the action so `--help` stays fast.
|
|
19
12
|
|
|
20
13
|
import type { Command } from "commander";
|
|
21
|
-
import { ensureAuthenticated } from "../config/index.js";
|
|
22
|
-
import { CliExitError } from "../errors/cli-exit-error.js";
|
|
23
|
-
import { ExitCode } from "../errors/exit-codes.js";
|
|
14
|
+
import { DEFAULT_LOCAL_ORG, ensureAuthenticated } from "../config/index.js";
|
|
24
15
|
import { CommandResult, type OutputFlags, renderResult } from "../output/index.js";
|
|
25
16
|
import { addResultFlags, resultFormat } from "./shared.js";
|
|
26
17
|
|
|
@@ -28,64 +19,24 @@ export function registerBootstrap(program: Command): void {
|
|
|
28
19
|
const bootstrap = program
|
|
29
20
|
.command("bootstrap")
|
|
30
21
|
.description(
|
|
31
|
-
"make the configured backend ready: ensure the
|
|
22
|
+
"make the configured backend ready: ensure the organization the CLI uses when none is named",
|
|
32
23
|
)
|
|
33
24
|
.action((options: OutputFlags) => runBootstrapCommand(options));
|
|
34
25
|
addResultFlags(bootstrap);
|
|
35
26
|
}
|
|
36
27
|
|
|
37
28
|
async function runBootstrapCommand(flags: OutputFlags): Promise<void> {
|
|
38
|
-
const [{ connectBackend }, { bootstrapBackend }
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
import("../local/system-org.js"),
|
|
43
|
-
]);
|
|
29
|
+
const [{ connectBackend }, { bootstrapBackend }] = await Promise.all([
|
|
30
|
+
import("../backend.js"),
|
|
31
|
+
import("../local/bootstrap.js"),
|
|
32
|
+
]);
|
|
44
33
|
|
|
45
34
|
const client = connectBackend();
|
|
46
35
|
ensureAuthenticated(client.config);
|
|
47
36
|
|
|
48
|
-
const
|
|
49
|
-
process.stderr.write(`${line}\n`);
|
|
50
|
-
};
|
|
51
|
-
const result = await bootstrapBackend(client.stigmer, say);
|
|
37
|
+
const state = await bootstrapBackend(client.stigmer);
|
|
52
38
|
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
failed.length === 0
|
|
56
|
-
? CommandResult.success("Backend is ready")
|
|
57
|
-
: CommandResult.warning(
|
|
58
|
-
`Backend bootstrapped with ${failed.length} default plugin${failed.length === 1 ? "" : "s"} not installed`,
|
|
59
|
-
);
|
|
60
|
-
out
|
|
61
|
-
.addSection("System organization")
|
|
62
|
-
.field("Slug", SYSTEM_ORG)
|
|
63
|
-
.field("State", result.org);
|
|
64
|
-
const plugins = out.addSection("Default plugins");
|
|
65
|
-
for (const outcome of result.plugins.outcomes) {
|
|
66
|
-
switch (outcome.action) {
|
|
67
|
-
case "installed":
|
|
68
|
-
case "up-to-date":
|
|
69
|
-
plugins.field(outcome.name, outcome.action);
|
|
70
|
-
break;
|
|
71
|
-
case "failed":
|
|
72
|
-
plugins.field(outcome.name, `failed: ${outcome.error}`);
|
|
73
|
-
break;
|
|
74
|
-
default: {
|
|
75
|
-
const exhaustive: never = outcome;
|
|
76
|
-
throw new Error(`unhandled outcome ${String(exhaustive)}`);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
if (failed.length > 0) {
|
|
81
|
-
out.hint("Fix the cause named above and run 'stigmer bootstrap' again.");
|
|
82
|
-
}
|
|
39
|
+
const out = CommandResult.success("Backend is ready");
|
|
40
|
+
out.addSection("Organization").field("Slug", DEFAULT_LOCAL_ORG).field("State", state);
|
|
83
41
|
renderResult(out, resultFormat(flags));
|
|
84
|
-
|
|
85
|
-
if (failed.length > 0) {
|
|
86
|
-
throw new CliExitError(
|
|
87
|
-
`default plugin${failed.length === 1 ? "" : "s"} not installed: ${failed.join(", ")}`,
|
|
88
|
-
ExitCode.General,
|
|
89
|
-
);
|
|
90
|
-
}
|
|
91
42
|
}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
// Command-level contract for `stigmer config context set --org`: an
|
|
2
|
+
// organization the caller belongs to on the active backend is persisted as
|
|
3
|
+
// the context and then resolved by every command; a slug the backend does not
|
|
4
|
+
// list among the caller's own is refused as not found and the config file is
|
|
5
|
+
// left byte-for-byte as it was; an empty slug clears the context without
|
|
6
|
+
// asking the backend; no `--org` at all is a usage error. And `context show`
|
|
7
|
+
// names the active backend, not the legacy local/cloud switch the file also
|
|
8
|
+
// carries. A real Connect backend over h2c serves findMyOrganizations; the
|
|
9
|
+
// config file (HOME redirected) points a selfhost backend at it.
|
|
10
|
+
|
|
11
|
+
import { mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs";
|
|
12
|
+
import {
|
|
13
|
+
createServer as createHttp2Server,
|
|
14
|
+
type Http2Server,
|
|
15
|
+
type ServerHttp2Session,
|
|
16
|
+
} from "node:http2";
|
|
17
|
+
import type { AddressInfo } from "node:net";
|
|
18
|
+
import { tmpdir } from "node:os";
|
|
19
|
+
import { join } from "node:path";
|
|
20
|
+
import { create } from "@bufbuild/protobuf";
|
|
21
|
+
import type { ConnectRouter } from "@connectrpc/connect";
|
|
22
|
+
import { connectNodeAdapter } from "@connectrpc/connect-node";
|
|
23
|
+
import { OrganizationSchema } from "@stigmer/protos/ai/stigmer/tenancy/organization/v1/api_pb";
|
|
24
|
+
import { OrganizationsSchema } from "@stigmer/protos/ai/stigmer/tenancy/organization/v1/io_pb";
|
|
25
|
+
import { OrganizationQueryController } from "@stigmer/protos/ai/stigmer/tenancy/organization/v1/query_pb";
|
|
26
|
+
import { afterAll, afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
|
|
27
|
+
import { load, resolveOrganization } from "../../config/index.js";
|
|
28
|
+
import { classify, ExitCode } from "../../errors/index.js";
|
|
29
|
+
import { buildProgram } from "../../program.js";
|
|
30
|
+
|
|
31
|
+
let backend: Http2Server;
|
|
32
|
+
let port: number;
|
|
33
|
+
const openSessions = new Set<ServerHttp2Session>();
|
|
34
|
+
let lookups: number;
|
|
35
|
+
|
|
36
|
+
let home: string;
|
|
37
|
+
let originalHome: string | undefined;
|
|
38
|
+
|
|
39
|
+
beforeAll(async () => {
|
|
40
|
+
const routes = (router: ConnectRouter) => {
|
|
41
|
+
router.service(OrganizationQueryController, {
|
|
42
|
+
findMyOrganizations: () => {
|
|
43
|
+
lookups += 1;
|
|
44
|
+
return create(OrganizationsSchema, {
|
|
45
|
+
entries: [create(OrganizationSchema, { metadata: { id: "acme", slug: "acme" } })],
|
|
46
|
+
});
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
backend = createHttp2Server(connectNodeAdapter({ routes }));
|
|
51
|
+
backend.on("session", (session) => {
|
|
52
|
+
openSessions.add(session);
|
|
53
|
+
session.on("close", () => openSessions.delete(session));
|
|
54
|
+
});
|
|
55
|
+
await new Promise<void>((resolve) => backend.listen(0, "127.0.0.1", resolve));
|
|
56
|
+
port = (backend.address() as AddressInfo).port;
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
afterAll(async () => {
|
|
60
|
+
for (const session of openSessions) session.destroy();
|
|
61
|
+
await new Promise<void>((resolve) => backend.close(() => resolve()));
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
beforeEach(() => {
|
|
65
|
+
lookups = 0;
|
|
66
|
+
originalHome = process.env.HOME;
|
|
67
|
+
home = mkdtempSync(join(tmpdir(), "stigmer-context-cmd-"));
|
|
68
|
+
process.env.HOME = home;
|
|
69
|
+
mkdirSync(join(home, ".stigmer"), { recursive: true });
|
|
70
|
+
writeFileSync(
|
|
71
|
+
configFile(),
|
|
72
|
+
[
|
|
73
|
+
"backend:",
|
|
74
|
+
" type: cloud",
|
|
75
|
+
"backends:",
|
|
76
|
+
" team:",
|
|
77
|
+
" type: selfhost",
|
|
78
|
+
` endpoint: 127.0.0.1:${port}`,
|
|
79
|
+
"current_backend: team",
|
|
80
|
+
"",
|
|
81
|
+
].join("\n"),
|
|
82
|
+
);
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
afterEach(() => {
|
|
86
|
+
if (originalHome === undefined) delete process.env.HOME;
|
|
87
|
+
else process.env.HOME = originalHome;
|
|
88
|
+
rmSync(home, { recursive: true, force: true });
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
function configFile(): string {
|
|
92
|
+
return join(home, ".stigmer", "config.yaml");
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
interface RunOutcome {
|
|
96
|
+
readonly exitCode: number;
|
|
97
|
+
readonly message: string;
|
|
98
|
+
readonly stdout: string;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
async function run(...args: string[]): Promise<RunOutcome> {
|
|
102
|
+
return runContext("set", ...args);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
async function runContext(...args: string[]): Promise<RunOutcome> {
|
|
106
|
+
const program = buildProgram();
|
|
107
|
+
program.exitOverride();
|
|
108
|
+
let stdout = "";
|
|
109
|
+
const outSpy = vi.spyOn(process.stdout, "write").mockImplementation((chunk) => {
|
|
110
|
+
stdout += String(chunk);
|
|
111
|
+
return true;
|
|
112
|
+
});
|
|
113
|
+
const errSpy = vi.spyOn(process.stderr, "write").mockReturnValue(true);
|
|
114
|
+
try {
|
|
115
|
+
await program.parseAsync(["node", "stigmer", "config", "context", ...args]);
|
|
116
|
+
return { exitCode: ExitCode.Success, message: "", stdout };
|
|
117
|
+
} catch (err) {
|
|
118
|
+
return {
|
|
119
|
+
exitCode: classify(err)?.exitCode ?? -1,
|
|
120
|
+
message: err instanceof Error ? err.message : String(err),
|
|
121
|
+
stdout,
|
|
122
|
+
};
|
|
123
|
+
} finally {
|
|
124
|
+
outSpy.mockRestore();
|
|
125
|
+
errSpy.mockRestore();
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
describe("config context set --org", () => {
|
|
130
|
+
it("persists an organization the caller belongs to, which every command then resolves", async () => {
|
|
131
|
+
const outcome = await run("--org", "acme");
|
|
132
|
+
expect(outcome.exitCode).toBe(ExitCode.Success);
|
|
133
|
+
expect(lookups).toBe(1);
|
|
134
|
+
expect(resolveOrganization(load())).toBe("acme");
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
it("refuses a slug the backend does not list as the caller's and leaves the config untouched", async () => {
|
|
138
|
+
const before = readFileSync(configFile(), "utf8");
|
|
139
|
+
const outcome = await run("--org", "acmee");
|
|
140
|
+
expect(outcome.exitCode).toBe(ExitCode.NotFound);
|
|
141
|
+
expect(outcome.message).toMatch(/organization 'acmee' is not one you belong to on the 'team' backend/);
|
|
142
|
+
expect(readFileSync(configFile(), "utf8")).toBe(before);
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
it("clears the context with an empty slug, without asking the backend", async () => {
|
|
146
|
+
await run("--org", "acme");
|
|
147
|
+
const outcome = await run("--org", "");
|
|
148
|
+
expect(outcome.exitCode).toBe(ExitCode.Success);
|
|
149
|
+
expect(lookups).toBe(1);
|
|
150
|
+
expect(resolveOrganization(load())).toBe("stigmer");
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
it("is a usage error without --org", async () => {
|
|
154
|
+
const outcome = await run();
|
|
155
|
+
expect(outcome.exitCode).toBe(ExitCode.Usage);
|
|
156
|
+
expect(outcome.message).toMatch(/--org is required/);
|
|
157
|
+
});
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
describe("config context show", () => {
|
|
161
|
+
it("names the active backend, not the legacy local/cloud switch", async () => {
|
|
162
|
+
await run("--org", "acme");
|
|
163
|
+
const outcome = await runContext("show", "--json");
|
|
164
|
+
expect(outcome.exitCode).toBe(ExitCode.Success);
|
|
165
|
+
const fields = JSON.parse(outcome.stdout).sections[0].fields as { key: string; value: string }[];
|
|
166
|
+
expect(fields).toEqual([
|
|
167
|
+
{ key: "Organization", value: "acme" },
|
|
168
|
+
{ key: "Backend", value: "team" },
|
|
169
|
+
]);
|
|
170
|
+
});
|
|
171
|
+
});
|
|
@@ -1,10 +1,18 @@
|
|
|
1
|
-
// `stigmer config context show` —
|
|
1
|
+
// `stigmer config context show|set` — the active CLI context: the
|
|
2
|
+
// organization every command targets when neither `--org` nor
|
|
3
|
+
// STIGMER_ORG_ID names one.
|
|
2
4
|
//
|
|
3
|
-
// `
|
|
4
|
-
//
|
|
5
|
+
// `set --org <slug>` checks the slug against the active backend before it
|
|
6
|
+
// persists: the organization must be one the caller belongs to there
|
|
7
|
+
// (findMyOrganizations), so a typo or a stranger's slug is refused at the
|
|
8
|
+
// moment it is typed, not on the next command. An empty slug clears the
|
|
9
|
+
// context without asking the backend, and the resolver falls back to its
|
|
10
|
+
// default again. The raw `config set context.organization` stays the
|
|
11
|
+
// unchecked escape hatch.
|
|
5
12
|
|
|
6
13
|
import type { Command } from "commander";
|
|
7
|
-
import { type Config, load, resolveContextOrganization } from "../../config/index.js";
|
|
14
|
+
import { type Config, activeBackendName, ensureAuthenticated, load, resolveContextOrganization, save } from "../../config/index.js";
|
|
15
|
+
import { CliExitError, ExitCode, UsageError } from "../../errors/index.js";
|
|
8
16
|
import { CommandResult, type OutputFlags, renderResult } from "../../output/index.js";
|
|
9
17
|
import { addResultFlags, resultFormat } from "../shared.js";
|
|
10
18
|
|
|
@@ -16,11 +24,48 @@ export function addContextCommands(context: Command): void {
|
|
|
16
24
|
renderResult(buildShow(load()), resultFormat(options));
|
|
17
25
|
});
|
|
18
26
|
addResultFlags(show);
|
|
27
|
+
|
|
28
|
+
const set = context
|
|
29
|
+
.command("set")
|
|
30
|
+
.description("set the active context's organization, checked against the backend")
|
|
31
|
+
.option("--org <slug>", "an organization you belong to on the active backend (empty clears it)")
|
|
32
|
+
.action((options: OutputFlags & { org?: string }) => runSet(options));
|
|
33
|
+
addResultFlags(set);
|
|
19
34
|
}
|
|
20
35
|
|
|
21
36
|
function buildShow(config: Config): CommandResult {
|
|
22
37
|
const organization = resolveContextOrganization(config) || "(not set)";
|
|
23
38
|
const result = CommandResult.success("CLI context");
|
|
24
|
-
result.addSection("").field("Organization", organization).field("Backend", config
|
|
39
|
+
result.addSection("").field("Organization", organization).field("Backend", activeBackendName(config));
|
|
25
40
|
return result;
|
|
26
41
|
}
|
|
42
|
+
|
|
43
|
+
async function runSet(flags: OutputFlags & { org?: string }): Promise<void> {
|
|
44
|
+
const org = flags.org;
|
|
45
|
+
if (org === undefined) {
|
|
46
|
+
throw new UsageError(
|
|
47
|
+
"--org is required\n\nSet it with:\n stigmer config context set --org <org>\nClear it with:\n stigmer config context set --org \"\"",
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
const config = load();
|
|
52
|
+
if (org !== "") await assertMembership(config, org);
|
|
53
|
+
|
|
54
|
+
(config.context ??= {}).organization = org;
|
|
55
|
+
save(config);
|
|
56
|
+
const message = org === "" ? "Context organization cleared" : `Context organization set to '${org}'`;
|
|
57
|
+
renderResult(CommandResult.success(message), resultFormat(flags));
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
async function assertMembership(config: Config, org: string): Promise<void> {
|
|
61
|
+
const { connectBackend } = await import("../../backend.js");
|
|
62
|
+
const client = connectBackend(config);
|
|
63
|
+
ensureAuthenticated(client.config);
|
|
64
|
+
const mine = await client.stigmer.organization.findMyOrganizations();
|
|
65
|
+
if (mine.entries.some((entry) => entry.metadata?.slug === org)) return;
|
|
66
|
+
throw new CliExitError(
|
|
67
|
+
`organization '${org}' is not one you belong to on the '${activeBackendName(config)}' backend`,
|
|
68
|
+
ExitCode.NotFound,
|
|
69
|
+
["See the organizations you belong to with: stigmer list organizations"],
|
|
70
|
+
);
|
|
71
|
+
}
|
package/src/commands/install.ts
CHANGED
|
@@ -32,7 +32,7 @@ export function registerInstall(program: Command): void {
|
|
|
32
32
|
)
|
|
33
33
|
.option(
|
|
34
34
|
"--visibility <level>",
|
|
35
|
-
"visibility for the plugin and everything it installs (private, org,
|
|
35
|
+
"visibility for the plugin and everything it installs (private, org, platform)",
|
|
36
36
|
)
|
|
37
37
|
.option(
|
|
38
38
|
"-m, --message <message>",
|
|
@@ -169,11 +169,11 @@ describe("marketplace show", () => {
|
|
|
169
169
|
expect(payload.data.warnings[0].subject).toBe("ghost");
|
|
170
170
|
});
|
|
171
171
|
|
|
172
|
-
it("shows the built-in marketplace
|
|
172
|
+
it("shows the built-in marketplace", async () => {
|
|
173
173
|
const outcome = await run("show", "stigmer", "--json");
|
|
174
174
|
expect(outcome.exitCode).toBe(ExitCode.Success);
|
|
175
175
|
const payload = JSON.parse(outcome.stdout);
|
|
176
|
-
expect(payload.data.marketplace.
|
|
176
|
+
expect(payload.data.marketplace.name).toBe("stigmer");
|
|
177
177
|
expect(payload.data.plugins.map((p: { name: string }) => p.name)).toContain(
|
|
178
178
|
"linear",
|
|
179
179
|
);
|
package/src/commands/push.ts
CHANGED
|
@@ -55,7 +55,7 @@ export function registerPush(program: Command): void {
|
|
|
55
55
|
)
|
|
56
56
|
.option(
|
|
57
57
|
"--visibility <level>",
|
|
58
|
-
"plugins: visibility for the plugin and everything it installs (private, org,
|
|
58
|
+
"plugins: visibility for the plugin and everything it installs (private, org, platform)",
|
|
59
59
|
)
|
|
60
60
|
.option("--dry-run", "validate without pushing")
|
|
61
61
|
.option("--git-url <url>", "push from a remote git repository URL")
|