@app-vitals/agent-runtime 1.7.0 → 1.8.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 +5 -0
- package/base-image-contract.smoke.test.ts +22 -4
- package/package.json +3 -3
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.
|
|
3
|
+
"version": "1.8.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.
|
|
44
|
-
"@app-vitals/agent-lib": "1.
|
|
43
|
+
"@app-vitals/agent-admin": "1.8.0",
|
|
44
|
+
"@app-vitals/agent-lib": "1.8.0",
|
|
45
45
|
"@octokit/auth-app": "^8.2.0",
|
|
46
46
|
"@sentry/bun": "^10.63.0",
|
|
47
47
|
"@slack/bolt": "^5.0.0",
|