@stigmer/cli 3.18.1-dev.20260919070736 → 3.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/commands/apply.js +3 -1
  2. package/commands/apply.js.map +1 -1
  3. package/commands/install.js +2 -1
  4. package/commands/install.js.map +1 -1
  5. package/commands/marketplace.js +3 -3
  6. package/commands/marketplace.js.map +1 -1
  7. package/commands/push.js +3 -1
  8. package/commands/push.js.map +1 -1
  9. package/marketplace/config.d.ts.map +1 -1
  10. package/marketplace/config.js +13 -9
  11. package/marketplace/config.js.map +1 -1
  12. package/marketplace/render.d.ts.map +1 -1
  13. package/marketplace/render.js +1 -7
  14. package/marketplace/render.js.map +1 -1
  15. package/package.json +7 -7
  16. package/resources/connect/oauth.d.ts.map +1 -1
  17. package/resources/connect/oauth.js +4 -1
  18. package/resources/connect/oauth.js.map +1 -1
  19. package/resources/plugin.d.ts +27 -0
  20. package/resources/plugin.d.ts.map +1 -1
  21. package/resources/plugin.js +113 -8
  22. package/resources/plugin.js.map +1 -1
  23. package/src/commands/apply.ts +6 -1
  24. package/src/commands/install.test.ts +20 -21
  25. package/src/commands/install.ts +2 -1
  26. package/src/commands/marketplace.test.ts +10 -19
  27. package/src/commands/marketplace.ts +3 -3
  28. package/src/commands/push.ts +6 -1
  29. package/src/local/plugins/defaults.test.ts +28 -28
  30. package/src/marketplace/__fixtures__/cursor-marketplace.ts +16 -12
  31. package/src/marketplace/config.test.ts +12 -28
  32. package/src/marketplace/config.ts +13 -9
  33. package/src/marketplace/install.test.ts +19 -19
  34. package/src/marketplace/read.test.ts +6 -6
  35. package/src/marketplace/render.ts +1 -10
  36. package/src/resources/connect/oauth.test.ts +2 -2
  37. package/src/resources/connect/oauth.ts +4 -1
  38. package/src/resources/plugin.test.ts +119 -2
  39. package/src/resources/plugin.ts +140 -8
@@ -23,6 +23,15 @@
23
23
  // and what `stigmer up` compares with the server's digest before deciding
24
24
  // to push. `validate -f`, `push plugin --dry-run` and `push plugin` share one
25
25
  // description renderer so the author reads one vocabulary at every step.
26
+ //
27
+ // `readNextSteps` is what the install leaves the user to do, read from the
28
+ // servers the push produced: a sign-in an OAuth server needs (`stigmer
29
+ // connect mcp-server` runs it), the variables an API-key server wants and
30
+ // where they are asked, and, for a plugin that installed tools and no
31
+ // agent, the agent the tools still need. Best-effort by design: a server
32
+ // or a grant the CLI cannot read yields no line rather than a failed
33
+ // install, because the install itself succeeded. `stigmer up` does not
34
+ // read them: its plugin is the built-in assistant, not a user's act.
26
35
  import { readdirSync, readFileSync, statSync } from "node:fs";
27
36
  import { join } from "node:path";
28
37
  import { create, toJson } from "@bufbuild/protobuf";
@@ -30,6 +39,7 @@ import { MANIFEST_LOCATIONS, } from "@stigmer/plugin-package";
30
39
  import { DIALECT_LABELS, preparePluginArchive, selectPluginFiles, } from "@stigmer/plugin-package/client";
31
40
  import { PluginSchema, } from "@stigmer/protos/ai/stigmer/agentic/plugin/v1/api_pb";
32
41
  import { PluginMemberSchema, PushPluginRequestSchema, } from "@stigmer/protos/ai/stigmer/agentic/plugin/v1/io_pb";
42
+ import { GetOAuthGrantStatusInputSchema, OAuthConnectionHealth, } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/io_pb";
33
43
  import { PluginDialect as PluginDialectProto } from "@stigmer/protos/ai/stigmer/agentic/plugin/v1/spec_pb";
34
44
  import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
35
45
  import { UsageError } from "../errors/index.js";
@@ -232,19 +242,107 @@ export async function pushPrepared(client, prepared, options) {
232
242
  export async function pushPlugin(client, dir, options) {
233
243
  return pushPrepared(client, await preparePluginPush(dir, options.ignoreOptions), options);
234
244
  }
245
+ /**
246
+ * What the install leaves the user to do, read from each MCP server the
247
+ * push produced. Best-effort: a server or grant this CLI cannot read yields
248
+ * no step, never a failure, because the install itself succeeded.
249
+ */
250
+ export async function readNextSteps(client, org, members) {
251
+ const servers = members.filter((m) => m.kind === ApiResourceKind.mcp_server);
252
+ const hasAgent = members.some((m) => m.kind === ApiResourceKind.agent);
253
+ const steps = [];
254
+ for (const member of servers) {
255
+ try {
256
+ const server = await client.mcpServer.getByReference({
257
+ org,
258
+ slug: member.slug,
259
+ });
260
+ const auth = server.spec?.auth;
261
+ const variables = Object.keys(server.spec?.env ?? {});
262
+ if (auth?.targetEnvVar) {
263
+ let connected = false;
264
+ try {
265
+ const grant = await client.mcpServer.getOAuthGrantStatus(create(GetOAuthGrantStatusInputSchema, {
266
+ resourceId: server.metadata?.id ?? "",
267
+ org,
268
+ }));
269
+ connected =
270
+ grant.connected &&
271
+ grant.connectionHealth !==
272
+ OAuthConnectionHealth.OAUTH_CONNECTION_HEALTH_TOKEN_EXPIRED;
273
+ }
274
+ catch {
275
+ // Fail closed: a grant the CLI cannot read is a sign-in still owed.
276
+ }
277
+ steps.push(connected
278
+ ? { kind: "signed-in", server: member.slug }
279
+ : {
280
+ kind: "sign-in",
281
+ server: member.slug,
282
+ command: `stigmer connect mcp-server ${member.slug}`,
283
+ });
284
+ }
285
+ else if (variables.length > 0) {
286
+ steps.push({
287
+ kind: "api-key",
288
+ server: member.slug,
289
+ variables,
290
+ askedAt: hasAgent ? "agent" : "connect",
291
+ ...(hasAgent
292
+ ? {}
293
+ : {
294
+ command: `stigmer connect mcp-server ${member.slug} --env ${variables.map((v) => `${v}=...`).join(" --env ")}`,
295
+ }),
296
+ });
297
+ }
298
+ }
299
+ catch {
300
+ // A server the CLI cannot read has no line; the Installed section still names it.
301
+ }
302
+ }
303
+ if (!hasAgent && servers.length > 0) {
304
+ steps.push({
305
+ kind: "add-to-agent",
306
+ servers: servers.map((m) => m.slug),
307
+ });
308
+ }
309
+ return steps;
310
+ }
311
+ function describeNextStep(step) {
312
+ switch (step.kind) {
313
+ case "sign-in":
314
+ return `Sign in to ${step.server}: ${step.command}`;
315
+ case "signed-in":
316
+ return `${step.server}: signed in`;
317
+ case "api-key":
318
+ return step.askedAt === "agent"
319
+ ? `${step.server} needs ${step.variables.join(", ")}; the agent asks at its first session`
320
+ : `${step.server} needs ${step.variables.join(", ")}; set them when you connect: ${step.command ?? ""}`;
321
+ case "add-to-agent":
322
+ return `Add these tools to an agent: list ${step.servers.map((s) => `'${s}'`).join(", ")} under mcp_server_usages in an agent's YAML, or from the plugin's page in the console`;
323
+ default: {
324
+ const exhaustive = step;
325
+ return exhaustive;
326
+ }
327
+ }
328
+ }
235
329
  /** The install as the user reads it: what landed, what was skipped, what to know. */
236
330
  export function renderPushOutcome(outcome, options = {}) {
237
331
  const { plugin, members } = outcome;
238
332
  const warnings = plugin.status?.warnings ?? [];
239
333
  const counts = plugin.status?.materialized;
240
- const summary = [
241
- count(counts?.skills ?? 0, "skill"),
242
- count(counts?.mcpServers ?? 0, "MCP server"),
243
- count(counts?.agents ?? 0, "agent"),
244
- ...(counts !== undefined && counts.workflows > 0
245
- ? [count(counts.workflows, "workflow")]
246
- : []),
247
- ].join(", ");
334
+ // Only the kinds the plugin installed are named, as the console's
335
+ // `summariseInstall` names them: most catalogue plugins install tools
336
+ // alone, and "0 skills, 1 MCP server, 0 agents" reads as three facts.
337
+ const named = [
338
+ [counts?.skills ?? 0, "skill"],
339
+ [counts?.mcpServers ?? 0, "MCP server"],
340
+ [counts?.agents ?? 0, "agent"],
341
+ [counts?.workflows ?? 0, "workflow"],
342
+ ]
343
+ .filter(([n]) => n > 0)
344
+ .map(([n, noun]) => count(n, noun));
345
+ const summary = named.length === 0 ? "nothing installed" : named.join(", ");
248
346
  const headline = `Installed plugin '${plugin.metadata?.slug ?? plugin.spec?.name ?? ""}' (${summary})`;
249
347
  const result = warnings.length === 0
250
348
  ? CommandResult.success(headline)
@@ -275,9 +373,16 @@ export function renderPushOutcome(outcome, options = {}) {
275
373
  for (const warning of warnings)
276
374
  section.item(warning.message);
277
375
  }
376
+ const next = options.next ?? [];
377
+ if (next.length > 0) {
378
+ const section = result.addSection("Next");
379
+ for (const step of next)
380
+ section.item(describeNextStep(step));
381
+ }
278
382
  return result.withData({
279
383
  plugin: toJson(PluginSchema, plugin),
280
384
  members: members.map((m) => toJson(PluginMemberSchema, m)),
385
+ ...(options.next !== undefined && { next: options.next }),
281
386
  });
282
387
  }
283
388
  const MEMBER_KIND_LABELS = {
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/resources/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/resources/plugin.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,+BAA+B;AAC/B,EAAE;AACF,8EAA8E;AAC9E,uEAAuE;AACvE,2EAA2E;AAC3E,wEAAwE;AACxE,oEAAoE;AACpE,2EAA2E;AAC3E,0EAA0E;AAC1E,sEAAsE;AACtE,EAAE;AACF,uEAAuE;AACvE,2EAA2E;AAC3E,wDAAwD;AACxD,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,2EAA2E;AAC3E,6EAA6E;AAC7E,uHAAuH;AACvH,6EAA6E;AAC7E,0EAA0E;AAC1E,8EAA8E;AAC9E,yEAAyE;AACzE,EAAE;AACF,2EAA2E;AAC3E,uEAAuE;AACvE,0EAA0E;AAC1E,sEAAsE;AACtE,yEAAyE;AACzE,qEAAqE;AACrE,uEAAuE;AACvE,qEAAqE;AAErE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EACL,kBAAkB,GAInB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,iBAAiB,GAElB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,YAAY,GAEb,MAAM,qDAAqD,CAAC;AAC7D,OAAO,EACL,kBAAkB,EAClB,uBAAuB,GAExB,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EACL,8BAA8B,EAC9B,qBAAqB,GACtB,MAAM,uDAAuD,CAAC;AAC/D,OAAO,EAAE,aAAa,IAAI,kBAAkB,EAAE,MAAM,sDAAsD,CAAC;AAC3G,OAAO,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AAGtH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EACL,WAAW,EACX,SAAS,GAGV,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,gFAAgF;AAChF,MAAM,CAAC,MAAM,qBAAqB,GAChC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAEpC,gFAAgF;AAChF,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,IAAI,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE;YAAE,OAAO,KAAK,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC7C,IAAI,CAAC;YACH,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC/D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAQD,8FAA8F;AAC9F,MAAM,CAAC,MAAM,sBAAsB,GAAkB;IACnD,gBAAgB,EAAE,IAAI;IACtB,WAAW,EAAE,EAAE;IACf,YAAY,EAAE,EAAE;CACjB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CACjC,GAAW,EACX,UAAyB,sBAAsB;IAE/C,MAAM,OAAO,GAAG,aAAa,CAAC;QAC5B,OAAO,EAAE,GAAG;QACZ,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,eAAe,EAAE,IAAI;QACrB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,YAAY,EAAE,OAAO,CAAC,YAAY;KACnC,CAAC,CAAC;IACH,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,MAAM,UAAU,GAAoB,EAAE,CAAC;IACvC,MAAM,IAAI,GAAG,CAAC,UAAkB,EAAE,MAAc,EAAQ,EAAE;QACxD,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACtE,MAAM,OAAO,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YACzE,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;gBACzB,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;oBACjC,WAAW,EAAE,CAAC;oBACd,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;gBAC7C,SAAS;YACX,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;gBAAE,SAAS;YAC/B,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;aACnD,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAEd,MAAM,IAAI,GAAG,CAAC,IAAY,EAAc,EAAE,CACxC,IAAI,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,iBAAiB,CAAC,UAAU,EAAE,IAAI,EAAE;QACpD,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,YAAY,EAAE,OAAO,CAAC,YAAY;KACnC,CAAC,CAAC;IACH,OAAO;QACL,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,KAAK,EAAE,EAAE,GAAG,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE;KAC3C,CAAC;AACJ,CAAC;AAqBD,MAAM,UAAU,cAAc,CAC5B,MAAqB,EACrB,QAAkC,EAClC,KAAe;IAEf,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IACpC,OAAO;QACL,MAAM,EAAE;YACN,GAAG,IAAI;YACP,OAAO,EAAE;gBACP,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBACjE,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACvC,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;iBACb,CAAC,CAAC;gBACH,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACzC,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,IAAI,EAAE,CAAC,CAAC,IAAI;iBACb,CAAC,CAAC;aACJ;SACF;QACD,QAAQ;QACR,aAAa,EAAE,KAAK,CAAC,YAAY;KAClC,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF,4FAA4F;AAC5F,MAAM,UAAU,aAAa,CAC3B,GAAW,EACX,MAAgC,EAChC,QAAkC;IAElC,MAAM,KAAK,GAAG;QACZ,GAAG,GAAG,iCAAiC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS;QAC/E,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;KACrD,CAAC;IACF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CACR,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,EAC3C,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CACvD,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAqB,EACrB,MAAqB,EACrB,QAAkC,EAClC,KAAe;IAEf,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC1C,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;QAAE,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACzE,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACtD,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,KAAK,CAAC,KAAK,CACT,OAAO,EACP,GAAG,KAAK,CAAC,aAAa,UAAU,KAAK,CAAC,YAAY,2BAA2B,CAC9E,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC/C,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClE,QAAQ,CAAC,KAAK,CACZ,aAAa,EACb,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAClE,CAAC;IACF,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACzE,QAAQ,CAAC,KAAK,CACZ,WAAW,EACX,KAAK,CACH,MAAM,CAAC,SAAS,CAAC,GAAG,CAClB,CAAC,CAAC,EAAE,EAAE,CACJ,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CACnG,CACF,CACF,CAAC;IACF,MAAM,OAAO,GAAG;QACd,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5D,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,MAAM,EAAE,CAAC;KACtE,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,QAAQ,CAAC,KAAK,CAAC,iBAAiB,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAE9E,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC9C,KAAK,MAAM,OAAO,IAAI,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;QACnD,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,OAAO;YACpC,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,CAAS,EAAE,IAAY;IAC3C,OAAO,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAC7C,CAAC;AAED,SAAS,KAAK,CAAC,KAAwB;IACrC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAC9E,CAAC;AA4BD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAAW,EACX,gBAA+B,sBAAsB;IAErD,0EAA0E;IAC1E,2EAA2E;IAC3E,2EAA2E;IAC3E,8BAA8B;IAC9B,MAAM,SAAS,GAAG,mBAAmB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACtD,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,MAAM,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO;QACL,GAAG;QACH,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK;QAC7B,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM;QAC/B,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ;QACnC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO;QACjC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM;KAChC,CAAC;AACJ,CAAC;AAkBD,mFAAmF;AACnF,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAe,EACf,QAA4B,EAC5B,OAA4B;IAE5B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CACrC,MAAM,CAAC,uBAAuB,EAAE;QAC9B,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,QAAQ,EAAE,QAAQ,CAAC,OAAO;QAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,IAAI;YACtC,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC;KACH,CAAC,CACH,CAAC;IACF,MAAM,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;SACzE,OAAO,CAAC;IACX,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;AACpE,CAAC;AAED,2DAA2D;AAC3D,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAe,EACf,GAAW,EACX,OAA0B;IAE1B,OAAO,YAAY,CACjB,MAAM,EACN,MAAM,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,aAAa,CAAC,EACnD,OAAO,CACR,CAAC;AACJ,CAAC;AAuBD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAe,EACf,GAAW,EACX,OAAgC;IAEhC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,UAAU,CAAC,CAAC;IAC7E,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,KAAK,CAAC,CAAC;IACvE,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;gBACnD,GAAG;gBACH,IAAI,EAAE,MAAM,CAAC,IAAI;aAClB,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;YAC/B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;YACtD,IAAI,IAAI,EAAE,YAAY,EAAE,CAAC;gBACvB,IAAI,SAAS,GAAG,KAAK,CAAC;gBACtB,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,mBAAmB,CACtD,MAAM,CAAC,8BAA8B,EAAE;wBACrC,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE;wBACrC,GAAG;qBACJ,CAAC,CACH,CAAC;oBACF,SAAS;wBACP,KAAK,CAAC,SAAS;4BACf,KAAK,CAAC,gBAAgB;gCACpB,qBAAqB,CAAC,qCAAqC,CAAC;gBAClE,CAAC;gBAAC,MAAM,CAAC;oBACP,oEAAoE;gBACtE,CAAC;gBACD,KAAK,CAAC,IAAI,CACR,SAAS;oBACP,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;oBAC5C,CAAC,CAAC;wBACE,IAAI,EAAE,SAAS;wBACf,MAAM,EAAE,MAAM,CAAC,IAAI;wBACnB,OAAO,EAAE,8BAA8B,MAAM,CAAC,IAAI,EAAE;qBACrD,CACN,CAAC;YACJ,CAAC;iBAAM,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,MAAM,CAAC,IAAI;oBACnB,SAAS;oBACT,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;oBACvC,GAAG,CAAC,QAAQ;wBACV,CAAC,CAAC,EAAE;wBACJ,CAAC,CAAC;4BACE,OAAO,EAAE,8BAA8B,MAAM,CAAC,IAAI,UAAU,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;yBAC/G,CAAC;iBACP,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,kFAAkF;QACpF,CAAC;IACH,CAAC;IACD,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SACpC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAc;IACtC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,SAAS;YACZ,OAAO,cAAc,IAAI,CAAC,MAAM,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACvD,KAAK,WAAW;YACd,OAAO,GAAG,IAAI,CAAC,MAAM,aAAa,CAAC;QACrC,KAAK,SAAS;YACZ,OAAO,IAAI,CAAC,OAAO,KAAK,OAAO;gBAC7B,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,UAAU,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,uCAAuC;gBAC1F,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,UAAU,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,iCAAiC,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QAC7G,KAAK,cAAc;YACjB,OAAO,qCAAqC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,uFAAuF,CAAC;QAClL,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,UAAU,GAAU,IAAI,CAAC;YAC/B,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;AACH,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,iBAAiB,CAC/B,OAA0B,EAC1B,UAA6B,EAAE;IAE/B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,IAAI,EAAE,CAAC;IAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC;IAC3C,kEAAkE;IAClE,sEAAsE;IACtE,sEAAsE;IACtE,MAAM,KAAK,GACT;QACE,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,OAAO,CAAC;QAC9B,CAAC,MAAM,EAAE,UAAU,IAAI,CAAC,EAAE,YAAY,CAAC;QACvC,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,OAAO,CAAC;QAC9B,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,EAAE,UAAU,CAAC;KAEvC;SACE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;SACtB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5E,MAAM,QAAQ,GAAG,qBAAqB,MAAM,CAAC,QAAQ,EAAE,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,MAAM,OAAO,GAAG,CAAC;IACvG,MAAM,MAAM,GACV,QAAQ,CAAC,MAAM,KAAK,CAAC;QACnB,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC;QACjC,CAAC,CAAC,aAAa,CAAC,OAAO,CACnB,GAAG,QAAQ,SAAS,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CACxD,CAAC;IAER,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC1C,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACjD,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO;QAAE,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtE,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;IAC9D,KAAK,CAAC,KAAK,CACT,QAAQ,EACR,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CACnE,CAAC;IACF,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IACvD,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS;QACrC,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAEpD,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IACjD,KAAK,MAAM,IAAI,IAAI;QACjB,eAAe,CAAC,KAAK;QACrB,eAAe,CAAC,UAAU;QAC1B,eAAe,CAAC,KAAK;QACrB,eAAe,CAAC,QAAQ;KACzB,EAAE,CAAC;QACF,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACxE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAClB,SAAS,CAAC,KAAK,CACb,kBAAkB,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,EACjD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CACjB,CAAC;IACN,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC9C,KAAK,MAAM,OAAO,IAAI,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;IAChC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC1C,KAAK,MAAM,IAAI,IAAI,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,MAAM,CAAC,QAAQ,CAAC;QACrB,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC;QACpC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;QAC1D,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;KAC1D,CAAC,CAAC;AACL,CAAC;AAED,MAAM,kBAAkB,GAA6C;IACnE,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,QAAQ;IACjC,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,aAAa;IAC3C,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,QAAQ;IACjC,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,WAAW;CACxC,CAAC;AAEF,SAAS,YAAY,CAAC,OAA2B;IAC/C,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,kBAAkB,CAAC,aAAa;YACnC,OAAO,cAAc,CAAC,eAAe,CAAC,CAAC;QACzC,KAAK,kBAAkB,CAAC,MAAM;YAC5B,OAAO,cAAc,CAAC,MAAM,CAAC;QAC/B,KAAK,kBAAkB,CAAC,MAAM;YAC5B,OAAO,cAAc,CAAC,MAAM,CAAC;QAC/B,KAAK,kBAAkB,CAAC,KAAK;YAC3B,OAAO,cAAc,CAAC,KAAK,CAAC;QAC9B,KAAK,kBAAkB,CAAC,WAAW;YACjC,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,UAAU,GAAU,OAAO,CAAC;YAClC,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -122,7 +122,12 @@ async function runPluginApply(
122
122
  message: "",
123
123
  ignoreOptions,
124
124
  });
125
- renderResult(plugin.renderPushOutcome(outcome), format);
125
+ renderResult(
126
+ plugin.renderPushOutcome(outcome, {
127
+ next: await plugin.readNextSteps(client.stigmer, org, outcome.members),
128
+ }),
129
+ format,
130
+ );
126
131
  }
127
132
 
128
133
  // Declarative mode: detect stigmer.yaml (walk up). Absent → atomic guidance.
@@ -60,8 +60,8 @@ beforeAll(async () => {
60
60
  push: (req) => {
61
61
  pushes.push(req);
62
62
  return create(PluginSchema, {
63
- metadata: { id: "plg_1", slug: "thermos", org: "acme" },
64
- spec: { name: "thermos", version: "1.0.0" },
63
+ metadata: { id: "plg_1", slug: "warmer", org: "acme" },
64
+ spec: { name: "warmer", version: "1.0.0" },
65
65
  status: {
66
66
  digest: "a".repeat(64),
67
67
  state: PluginState.READY,
@@ -83,8 +83,8 @@ beforeAll(async () => {
83
83
  {
84
84
  kind: ApiResourceKind.agent,
85
85
  id: "agt_1",
86
- slug: "thermos",
87
- name: "thermos",
86
+ slug: "warmer",
87
+ name: "warmer",
88
88
  },
89
89
  ],
90
90
  }),
@@ -200,10 +200,10 @@ async function run(
200
200
 
201
201
  describe("install", () => {
202
202
  it("pushes the entry's folder as push plugin would, into the context org, and renders the install", async () => {
203
- const outcome = await run("acme-plugins/thermos", "--json");
203
+ const outcome = await run("acme-plugins/warmer", "--json");
204
204
  expect(outcome.exitCode).toBe(ExitCode.Success);
205
205
  expect(pushes).toHaveLength(1);
206
- const expected = await preparePluginPush(join(fixture, "thermos"));
206
+ const expected = await preparePluginPush(join(fixture, "warmer"));
207
207
  expect(pushes[0]?.org).toBe("acme");
208
208
  expect(
209
209
  Buffer.from(pushes[0]?.artifact ?? []).equals(
@@ -216,7 +216,7 @@ describe("install", () => {
216
216
 
217
217
  const payload = JSON.parse(outcome.stdout);
218
218
  expect(payload.message).toMatch(
219
- /^Installed plugin 'thermos' \(1 skill, 0 MCP servers, 1 agent\)/,
219
+ /^Installed plugin 'warmer' \(1 skill, 1 agent\)/,
220
220
  );
221
221
  const about = payload.sections.find(
222
222
  (s: { title: string }) => s.title === "Plugin",
@@ -231,7 +231,7 @@ describe("install", () => {
231
231
  it("finds a bare name across the configured marketplaces and honours --org, --visibility and --message", async () => {
232
232
  const outcome = await run(
233
233
  ["--org", "other"],
234
- "github",
234
+ "codeforge",
235
235
  "--visibility",
236
236
  "org",
237
237
  "-m",
@@ -245,7 +245,7 @@ describe("install", () => {
245
245
 
246
246
  it("--dry-run reads the marketplace and describes the plugin without pushing", async () => {
247
247
  const outcome = await run(
248
- "acme-plugins/thermos@1.0.0",
248
+ "acme-plugins/warmer@1.0.0",
249
249
  "--dry-run",
250
250
  "--json",
251
251
  );
@@ -253,28 +253,28 @@ describe("install", () => {
253
253
  expect(pushes).toHaveLength(0);
254
254
  const payload = JSON.parse(outcome.stdout);
255
255
  expect(payload.message).toBe(
256
- "Dry run: 'acme-plugins/thermos' would install plugin 'thermos'",
256
+ "Dry run: 'acme-plugins/warmer' would install plugin 'warmer'",
257
257
  );
258
- expect(payload.data.plugin.name).toBe("thermos");
258
+ expect(payload.data.plugin.name).toBe("warmer");
259
259
  });
260
260
 
261
261
  it("refuses a version the marketplace does not offer, naming the one it does", async () => {
262
- const outcome = await run("acme-plugins/thermos@9.9.9");
262
+ const outcome = await run("acme-plugins/warmer@9.9.9");
263
263
  expect(outcome.exitCode).toBe(ExitCode.Usage);
264
264
  expect(outcome.message).toMatch(
265
- /pins version 9\.9\.9, but the marketplace offers 'thermos' at 1\.0\.0/,
265
+ /pins version 9\.9\.9, but the marketplace offers 'warmer' at 1\.0\.0/,
266
266
  );
267
267
  expect(pushes).toHaveLength(0);
268
268
  });
269
269
 
270
270
  it("refuses a path toward push plugin, an unknown name, and an unknown marketplace", async () => {
271
- expect((await run("./thermos")).message).toMatch(
272
- /is a path.*stigmer push plugin \.\/thermos/s,
271
+ expect((await run("./warmer")).message).toMatch(
272
+ /is a path.*stigmer push plugin \.\/warmer/s,
273
273
  );
274
274
  expect((await run("nope")).message).toMatch(
275
275
  /no configured marketplace offers a plugin named 'nope'/,
276
276
  );
277
- expect((await run("nowhere/thermos")).message).toMatch(
277
+ expect((await run("nowhere/warmer")).message).toMatch(
278
278
  /no marketplace named 'nowhere' is configured/,
279
279
  );
280
280
  expect(pushes).toHaveLength(0);
@@ -293,14 +293,13 @@ describe("install", () => {
293
293
  second: { type: "local", path: second },
294
294
  },
295
295
  });
296
- const outcome = await run("thermos");
296
+ const outcome = await run("warmer");
297
297
  expect(outcome.exitCode).toBe(ExitCode.Usage);
298
298
  expect(outcome.message).toMatch(
299
- /offered by more than one marketplace: acme-plugins, second\n\nName the one you mean: acme-plugins\/thermos or second\/thermos/,
299
+ /offered by more than one marketplace: acme-plugins, second\n\nName the one you mean: acme-plugins\/warmer or second\/warmer/,
300
300
  );
301
- // The three built-in vendor sources were asked through their files and nothing was downloaded.
302
- expect(fetched.filter((url) => url.startsWith("https://raw.githubusercontent.com/cursor/plugins/")).length).toBeGreaterThan(0);
303
- expect(fetched.some((url) => url.startsWith("https://codeload.github.com/"))).toBe(false);
301
+ // Only the official catalogue is built in, read from the checkout here; no GitHub host was asked.
302
+ expect(fetched.filter((url) => url.includes("github"))).toEqual([]);
304
303
  } finally {
305
304
  rmSync(second, { recursive: true, force: true });
306
305
  }
@@ -28,7 +28,7 @@ export function registerInstall(program: Command): void {
28
28
  const install = program
29
29
  .command("install <ref>")
30
30
  .description(
31
- "install a plugin from a marketplace by name: [marketplace/]name[@version]",
31
+ "install a plugin from a source by name: [source/]name[@version]",
32
32
  )
33
33
  .option(
34
34
  "--visibility <level>",
@@ -99,6 +99,7 @@ async function runInstall(
99
99
  renderResult(
100
100
  plugin.renderPushOutcome(outcome, {
101
101
  installedFrom: `${located.marketplace.name} (${m.describeSource(located.marketplace.source)})`,
102
+ next: await plugin.readNextSteps(client.stigmer, org, outcome.members),
102
103
  }),
103
104
  format,
104
105
  );
@@ -108,22 +108,22 @@ describe("marketplace add", () => {
108
108
  expect(load().marketplaces).toBeUndefined();
109
109
  });
110
110
 
111
- it("refuses every built-in name toward --name, and a duplicate", async () => {
111
+ it("refuses the built-in name toward --name, takes a vendor's name, and refuses a duplicate", async () => {
112
112
  expect((await run("add", fixture, "--name", "stigmer")).message).toMatch(
113
113
  /'stigmer' is a built-in source and cannot be added or replaced[\s\S]*--name/,
114
114
  );
115
- // A local clone of a vendor's catalogue names itself after the vendor; the
116
- // built-in wins the name and the user is told how to add the clone anyway.
117
- expect((await run("add", fixture, "--name", "cursor-plugins")).message).toMatch(
118
- /'cursor-plugins' is a built-in source/,
115
+ // A vendor's catalogue is a source the user adds; its name is his to take.
116
+ expect((await run("add", fixture, "--name", "cursor-plugins")).exitCode).toBe(
117
+ ExitCode.Success,
119
118
  );
119
+ expect(load().marketplaces?.["cursor-plugins"]).toBeDefined();
120
120
  await run("add", fixture);
121
121
  expect((await run("add", fixture)).message).toMatch(/already configured/);
122
122
  });
123
123
  });
124
124
 
125
125
  describe("marketplace list", () => {
126
- it("is offline, the built-ins first, and names an entry it cannot read", async () => {
126
+ it("is offline, the built-in first, and names an entry it cannot read", async () => {
127
127
  await run("add", fixture);
128
128
  const { save } = await import("../config/index.js");
129
129
  const config = load();
@@ -138,12 +138,6 @@ describe("marketplace list", () => {
138
138
  expect(payload.status).toBe("warning");
139
139
  expect(payload.data.marketplaces).toEqual([
140
140
  { name: "stigmer", source: { type: "official" } },
141
- { name: "cursor-plugins", source: { type: "github", repo: "cursor/plugins" } },
142
- {
143
- name: "claude-code-plugins",
144
- source: { type: "github", repo: "anthropics/claude-code" },
145
- },
146
- { name: "codex-plugins", source: { type: "github", repo: "openai/plugins" } },
147
141
  { name: "acme-plugins", source: { type: "local", path: fixture } },
148
142
  {
149
143
  name: "broken",
@@ -164,12 +158,12 @@ describe("marketplace show", () => {
164
158
  );
165
159
  expect(payload.data.plugins).toEqual([
166
160
  {
167
- name: "thermos",
168
- dir: "thermos",
161
+ name: "warmer",
162
+ dir: "warmer",
169
163
  version: "1.0.0",
170
- description: "The thermos plugin.",
164
+ description: "The warmer plugin.",
171
165
  },
172
- { name: "github", dir: "third_party/github", version: "2.1.0" },
166
+ { name: "codeforge", dir: "third_party/codeforge", version: "2.1.0" },
173
167
  ]);
174
168
  expect(payload.data.warnings).toHaveLength(1);
175
169
  expect(payload.data.warnings[0].subject).toBe("ghost");
@@ -204,9 +198,6 @@ describe("marketplace remove", () => {
204
198
  expect((await run("remove", "stigmer")).message).toMatch(
205
199
  /'stigmer' is a built-in source and cannot be removed/,
206
200
  );
207
- expect((await run("remove", "codex-plugins")).message).toMatch(
208
- /'codex-plugins' is a built-in source and cannot be removed/,
209
- );
210
201
  expect((await run("remove", "acme-plugins")).message).toMatch(
211
202
  /no marketplace named 'acme-plugins'/,
212
203
  );
@@ -23,7 +23,7 @@ export function registerMarketplace(program: Command): void {
23
23
  const marketplace = program
24
24
  .command("marketplace")
25
25
  .description(
26
- "manage the sources the Marketplace installs from: the built-in catalogues and the ones you add",
26
+ "manage the sources the Marketplace installs from: the official catalogue and the ones you add",
27
27
  );
28
28
 
29
29
  const add = marketplace
@@ -40,7 +40,7 @@ export function registerMarketplace(program: Command): void {
40
40
 
41
41
  const list = marketplace
42
42
  .command("list")
43
- .description("list the known sources, built in and added (offline)")
43
+ .description("list the known sources, the official catalogue and the added ones (offline)")
44
44
  .action((options: OutputFlags) => runList(options));
45
45
  addResultFlags(list);
46
46
 
@@ -52,7 +52,7 @@ export function registerMarketplace(program: Command): void {
52
52
 
53
53
  const remove = marketplace
54
54
  .command("remove <name>")
55
- .description("remove an added source (installed plugins stay; a built-in cannot be removed)")
55
+ .description("remove an added source (installed plugins stay; the official catalogue cannot be removed)")
56
56
  .action((name: string, options: OutputFlags) => runRemove(name, options));
57
57
  addResultFlags(remove);
58
58
  }
@@ -262,7 +262,12 @@ async function runPushPlugin(
262
262
  message: options.message ?? "",
263
263
  ignoreOptions,
264
264
  });
265
- renderCommandResult(plugin.renderPushOutcome(outcome), format);
265
+ renderCommandResult(
266
+ plugin.renderPushOutcome(outcome, {
267
+ next: await plugin.readNextSteps(client.stigmer, org, outcome.members),
268
+ }),
269
+ format,
270
+ );
266
271
  }
267
272
 
268
273
  interface ArchiveContext {
@@ -49,8 +49,8 @@ let pushes: PushPluginRequest[];
49
49
  let refusing: Set<string>;
50
50
 
51
51
  let official: string;
52
- let thermosDigest: string;
53
- let githubDigest: string;
52
+ let warmerDigest: string;
53
+ let codeforgeDigest: string;
54
54
 
55
55
  function pluginRow(
56
56
  slug: string,
@@ -75,15 +75,15 @@ beforeAll(async () => {
75
75
  JSON.stringify({
76
76
  name: "stigmer",
77
77
  plugins: [
78
- { name: "thermos", source: "./thermos" },
79
- { name: "github", source: "./third_party/github" },
78
+ { name: "warmer", source: "./warmer" },
79
+ { name: "codeforge", source: "./third_party/codeforge" },
80
80
  ],
81
- defaults: ["thermos", "github"],
81
+ defaults: ["warmer", "codeforge"],
82
82
  }),
83
83
  );
84
- thermosDigest = (await preparePluginPush(join(official, "thermos"))).digest;
85
- githubDigest = (
86
- await preparePluginPush(join(official, "third_party", "github"))
84
+ warmerDigest = (await preparePluginPush(join(official, "warmer"))).digest;
85
+ codeforgeDigest = (
86
+ await preparePluginPush(join(official, "third_party", "codeforge"))
87
87
  ).digest;
88
88
 
89
89
  const routes = (router: ConnectRouter) => {
@@ -92,7 +92,7 @@ beforeAll(async () => {
92
92
  pushes.push(req);
93
93
  // The archive names the plugin: the backend knows the two trees by their digests.
94
94
  const slug =
95
- digestOf(req.artifact) === thermosDigest ? "thermos" : "github";
95
+ digestOf(req.artifact) === warmerDigest ? "warmer" : "codeforge";
96
96
  if (refusing.has(slug))
97
97
  throw new ConnectError(`refused ${slug}`, Code.FailedPrecondition);
98
98
  const row = pluginRow(
@@ -159,8 +159,8 @@ describe("prepareDefaultPlugins", () => {
159
159
  it("prepares every default in the marketplace's order without touching the backend", async () => {
160
160
  const prepared = await prepareDefaultPlugins({ repoDir: () => official });
161
161
  expect(prepared.map((entry) => [entry.name, entry.push.digest])).toEqual([
162
- ["thermos", thermosDigest],
163
- ["github", githubDigest],
162
+ ["warmer", warmerDigest],
163
+ ["codeforge", codeforgeDigest],
164
164
  ]);
165
165
  expect(pushes).toHaveLength(0);
166
166
  });
@@ -189,8 +189,8 @@ describe("installPreparedDefaults", () => {
189
189
  it("installs every default in order, public, with the invoking verb in the message, on a fresh backend", async () => {
190
190
  const result = await run();
191
191
  expect(result.outcomes.map((o) => [o.name, o.action])).toEqual([
192
- ["thermos", "installed"],
193
- ["github", "installed"],
192
+ ["warmer", "installed"],
193
+ ["codeforge", "installed"],
194
194
  ]);
195
195
  expect(result.failed).toEqual([]);
196
196
  expect(pushes.map((p) => p.org)).toEqual(["stigmer", "stigmer"]);
@@ -202,13 +202,13 @@ describe("installPreparedDefaults", () => {
202
202
  expect(pushes[0]?.message).toMatch(
203
203
  /^default plugin, installed by stigmer bootstrap \(/,
204
204
  );
205
- expect(digestOf(pushes[0]!.artifact)).toBe(thermosDigest);
206
- expect(digestOf(pushes[1]!.artifact)).toBe(githubDigest);
205
+ expect(digestOf(pushes[0]!.artifact)).toBe(warmerDigest);
206
+ expect(digestOf(pushes[1]!.artifact)).toBe(codeforgeDigest);
207
207
  });
208
208
 
209
209
  it("pushes nothing when every default is already held at the same digest, READY and public", async () => {
210
- held.set("thermos", pluginRow("thermos", thermosDigest));
211
- held.set("github", pluginRow("github", githubDigest));
210
+ held.set("warmer", pluginRow("warmer", warmerDigest));
211
+ held.set("codeforge", pluginRow("codeforge", codeforgeDigest));
212
212
  const result = await run();
213
213
  expect(result.outcomes.map((o) => o.action)).toEqual([
214
214
  "up-to-date",
@@ -218,8 +218,8 @@ describe("installPreparedDefaults", () => {
218
218
  });
219
219
 
220
220
  it("pushes again on a changed digest, a non-READY state, or a non-public visibility", async () => {
221
- held.set("thermos", pluginRow("thermos", "f".repeat(64)));
222
- held.set("github", pluginRow("github", githubDigest, PluginState.FAILED));
221
+ held.set("warmer", pluginRow("warmer", "f".repeat(64)));
222
+ held.set("codeforge", pluginRow("codeforge", codeforgeDigest, PluginState.FAILED));
223
223
  expect((await run()).outcomes.map((o) => o.action)).toEqual([
224
224
  "installed",
225
225
  "installed",
@@ -228,15 +228,15 @@ describe("installPreparedDefaults", () => {
228
228
 
229
229
  pushes = [];
230
230
  held.set(
231
- "thermos",
231
+ "warmer",
232
232
  pluginRow(
233
- "thermos",
234
- thermosDigest,
233
+ "warmer",
234
+ warmerDigest,
235
235
  PluginState.READY,
236
236
  ApiResourceVisibility.visibility_private,
237
237
  ),
238
238
  );
239
- held.set("github", pluginRow("github", githubDigest));
239
+ held.set("codeforge", pluginRow("codeforge", codeforgeDigest));
240
240
  expect((await run()).outcomes.map((o) => o.action)).toEqual([
241
241
  "installed",
242
242
  "up-to-date",
@@ -256,16 +256,16 @@ describe("installPreparedDefaults", () => {
256
256
  });
257
257
 
258
258
  it("one default failing does not stop the next, and the failure is named", async () => {
259
- refusing.add("thermos");
259
+ refusing.add("warmer");
260
260
  const result = await run();
261
261
  expect(result.outcomes.map((o) => [o.name, o.action])).toEqual([
262
- ["thermos", "failed"],
263
- ["github", "installed"],
262
+ ["warmer", "failed"],
263
+ ["codeforge", "installed"],
264
264
  ]);
265
- expect(result.failed).toEqual(["thermos"]);
265
+ expect(result.failed).toEqual(["warmer"]);
266
266
  const failed = result.outcomes[0];
267
267
  expect(failed?.action === "failed" && failed.error).toMatch(
268
- /refused thermos/,
268
+ /refused warmer/,
269
269
  );
270
270
  });
271
271
  });