@app-vitals/agent-runtime 1.7.0 → 1.9.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/Dockerfile CHANGED
@@ -216,6 +216,8 @@ COPY agent-types/ ./agent-types/
216
216
  # Composition root spawned by runtime/entrypoint.ts (../index.ts).
217
217
  COPY index.ts ./index.ts
218
218
  COPY scripts/ ./scripts/
219
+ # Baked marketplace (plugins/.claude-plugin/marketplace.json + plugins/<name>/).
220
+ COPY plugins/ ./plugins/
219
221
 
220
222
  # Module-resolution guard: bundle every runtime source file as its own entry
221
223
  # point so an unresolvable import fails the build itself, rather than only
@@ -259,6 +261,9 @@ COPY --from=build --chown=1000:1000 /app/agent-types ./agent-types
259
261
  COPY --from=build --chown=1000:1000 /app/index.ts ./index.ts
260
262
  COPY --from=build --chown=1000:1000 /app/scripts ./scripts
261
263
  COPY --from=build --chown=1000:1000 /app/package.json ./package.json
264
+ # Baked marketplace: installPlugins() (runtime/setup.ts) registers every
265
+ # /opt/shipwright/marketplaces/<name>/ that has .claude-plugin/marketplace.json.
266
+ COPY --from=build --chown=1000:1000 /app/plugins /opt/shipwright/marketplaces/app-vitals-agent/
262
267
 
263
268
  RUN chmod +x /app/scripts/bin/git-credential-shipwright.sh \
264
269
  && chmod +x /app/scripts/bin/gh \
@@ -113,6 +113,27 @@ describe.skipIf(!BASE_IMAGE)("agent base-image contract", () => {
113
113
  expect(adds).toContain(`${CONVENTION_ROOT}/${MARKETPLACE_NAME}`);
114
114
  }, 60_000);
115
115
 
116
+ test("image bakes the app-vitals-agent marketplace and agent-platform plugin manifests", () => {
117
+ const base = `${CONVENTION_ROOT}/app-vitals-agent`;
118
+ const run = docker([
119
+ "run",
120
+ "--rm",
121
+ "--entrypoint",
122
+ "bash",
123
+ DERIVED_TAG,
124
+ "-c",
125
+ `cat ${base}/.claude-plugin/marketplace.json && echo ::SPLIT:: && cat ${base}/agent-platform/.claude-plugin/plugin.json && test -f ${base}/agent-platform/scripts/slack-say.ts && test -f ${base}/agent-platform/skills/slack-say/SKILL.md`,
126
+ ]);
127
+ expect(run.exitCode, run.stderr).toBe(0);
128
+ const [marketplaceJson, pluginJson] = run.stdout.split("::SPLIT::");
129
+ const marketplace = JSON.parse(marketplaceJson as string);
130
+ const plugin = JSON.parse(pluginJson as string);
131
+ expect(marketplace.name).toBe("app-vitals-agent");
132
+ expect(marketplace.plugins.map((p: { name: string }) => p.name)).toContain(
133
+ plugin.name,
134
+ );
135
+ }, 60_000);
136
+
116
137
  test("entrypoint-main.ts exists and runs under `bun run`", () => {
117
138
  // No agent id/url/key: runEntrypoint() reports the missing vars and exits 1.
118
139
  // A missing file or broken import graph fails differently ("Module not
@@ -170,10 +191,7 @@ describe.skipIf(!BASE_IMAGE)("agent base-image contract", () => {
170
191
  // Static guard (no Docker needed): the runtime stage must take node_modules
171
192
  // from the production-only stage, never the build stage's full install.
172
193
  describe("runtime Dockerfile", () => {
173
- const dockerfile = readFileSync(
174
- join(import.meta.dir, "Dockerfile"),
175
- "utf8",
176
- );
194
+ const dockerfile = readFileSync(join(import.meta.dir, "Dockerfile"), "utf8");
177
195
 
178
196
  test("copies node_modules from the production-only stage", () => {
179
197
  expect(dockerfile).toMatch(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@app-vitals/agent-runtime",
3
- "version": "1.7.0",
3
+ "version": "1.9.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/app-vitals/agent.git",
@@ -40,8 +40,8 @@
40
40
  "./workspace-paths": "./workspace-paths.ts"
41
41
  },
42
42
  "dependencies": {
43
- "@app-vitals/agent-admin": "1.7.0",
44
- "@app-vitals/agent-lib": "1.7.0",
43
+ "@app-vitals/agent-admin": "1.9.0",
44
+ "@app-vitals/agent-lib": "1.9.0",
45
45
  "@octokit/auth-app": "^8.2.0",
46
46
  "@sentry/bun": "^10.63.0",
47
47
  "@slack/bolt": "^5.0.0",