@lovinka/deployik-mcp 0.3.2 → 0.5.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.
@@ -0,0 +1,256 @@
1
+ import { z } from "zod";
2
+ import { registerTool } from "./_helpers.js";
3
+ import { pollUntil } from "../lib/poll.js";
4
+ const TERMINAL_RELEASE_STATUSES = new Set(["succeeded", "failed", "rolled_back"]);
5
+ export function registerAppTools(server, ctx) {
6
+ registerTool(server, ctx, {
7
+ name: "list_apps",
8
+ description: "List app bundles (groups of projects deployed as one unit) the caller can access.",
9
+ inputSchema: {},
10
+ annotations: { readOnlyHint: true, title: "List apps" },
11
+ handler: async () => {
12
+ const apps = await ctx.client.request("/apps");
13
+ const text = apps.length
14
+ ? apps.map((a) => `${a.name} (id: ${a.id}, ${a.project_count} project(s))`).join("\n")
15
+ : "(no apps)";
16
+ return { text, data: apps };
17
+ },
18
+ });
19
+ registerTool(server, ctx, {
20
+ name: "create_app",
21
+ description: "Create an app bundle inside a workspace. Optionally move existing projects into it by id.",
22
+ inputSchema: {
23
+ name: z.string(),
24
+ organization_id: z.string().optional().describe("Workspace/group id. Defaults to your personal workspace when omitted."),
25
+ project_ids: z.array(z.string()).default([]),
26
+ },
27
+ annotations: { title: "Create app bundle" },
28
+ handler: async (args) => {
29
+ const app = await ctx.client.request("/apps", {
30
+ method: "POST",
31
+ body: { name: args.name, organization_id: args.organization_id, project_ids: args.project_ids ?? [] },
32
+ });
33
+ return {
34
+ text: `Created app '${app.name}' (id: ${app.id}).${(args.project_ids ?? []).length ? ` Added ${(args.project_ids ?? []).length} project(s).` : ""}`,
35
+ data: app,
36
+ };
37
+ },
38
+ });
39
+ registerTool(server, ctx, {
40
+ name: "get_app_health",
41
+ description: "Composite snapshot of an app: the app + its member projects with each one's latest preview/production deploy timestamps.",
42
+ inputSchema: { app_id: z.string() },
43
+ annotations: { readOnlyHint: true, title: "App health" },
44
+ handler: async (args) => {
45
+ const health = await ctx.client.request(`/apps/${args.app_id}/health`);
46
+ const lines = [
47
+ `App: ${health.app.name} (id: ${health.app.id})`,
48
+ ``,
49
+ `Members:`,
50
+ ...(health.members.length
51
+ ? health.members.map((m) => ` - ${m.project.name} [${m.project.status}] preview=${m.latest_preview_deploy_at ?? "(none)"} prod=${m.latest_production_deploy_at ?? "(none)"}`)
52
+ : [" (none)"]),
53
+ ];
54
+ return { text: lines.join("\n"), data: health };
55
+ },
56
+ });
57
+ registerTool(server, ctx, {
58
+ name: "update_app",
59
+ description: "Update an app bundle: rename it and/or toggle deploy_ordered (true = deploy members in deploy_order, false = parallel).",
60
+ inputSchema: {
61
+ app_id: z.string(),
62
+ name: z.string().optional(),
63
+ deploy_ordered: z.boolean().optional().describe("true honors member deploy_order during deploy_app; false deploys all members in parallel."),
64
+ },
65
+ annotations: { title: "Update app" },
66
+ handler: async (args) => {
67
+ const body = {};
68
+ if (args.name !== undefined)
69
+ body.name = args.name;
70
+ if (args.deploy_ordered !== undefined)
71
+ body.deploy_ordered = args.deploy_ordered;
72
+ const app = await ctx.client.request(`/apps/${args.app_id}`, { method: "PATCH", body });
73
+ return { text: `Updated app '${app.name}' (id: ${app.id}).`, data: app };
74
+ },
75
+ });
76
+ registerTool(server, ctx, {
77
+ name: "delete_app",
78
+ description: "Delete an app bundle. Member projects survive (they become standalone).",
79
+ inputSchema: { app_id: z.string() },
80
+ annotations: { title: "Delete app" },
81
+ handler: async (args) => {
82
+ await ctx.client.request(`/apps/${args.app_id}`, { method: "DELETE" });
83
+ return { text: `Deleted app ${args.app_id}.`, data: { id: args.app_id, deleted: true } };
84
+ },
85
+ });
86
+ registerTool(server, ctx, {
87
+ name: "add_project_to_app",
88
+ description: "Move one or more projects into an app bundle.",
89
+ inputSchema: { app_id: z.string(), project_ids: z.array(z.string()) },
90
+ annotations: { title: "Add projects to app" },
91
+ handler: async (args) => {
92
+ const app = await ctx.client.request(`/apps/${args.app_id}/projects`, {
93
+ method: "POST",
94
+ body: { project_ids: args.project_ids },
95
+ });
96
+ return { text: `Added ${args.project_ids.length} project(s) to '${app.name}'.`, data: app };
97
+ },
98
+ });
99
+ registerTool(server, ctx, {
100
+ name: "remove_project_from_app",
101
+ description: "Detach a project from its app bundle (it becomes standalone).",
102
+ inputSchema: { app_id: z.string(), project_id: z.string() },
103
+ annotations: { title: "Remove project from app" },
104
+ handler: async (args) => {
105
+ await ctx.client.request(`/apps/${args.app_id}/projects/${args.project_id}`, { method: "DELETE" });
106
+ return {
107
+ text: `Removed project ${args.project_id} from app ${args.app_id}.`,
108
+ data: { app_id: args.app_id, project_id: args.project_id, removed: true },
109
+ };
110
+ },
111
+ });
112
+ registerTool(server, ctx, {
113
+ name: "deploy_app",
114
+ description: "Coordinated deploy of every member of an app bundle for one environment: ordered (by deploy_order when the app is deploy-ordered), health-gated, with best-effort rollback to the last good release on failure. Returns immediately; the rollout runs in the background.",
115
+ inputSchema: {
116
+ app_id: z.string(),
117
+ environment: z.enum(["preview", "production"]).default("production"),
118
+ },
119
+ annotations: { title: "Deploy app" },
120
+ handler: async (args) => {
121
+ const res = await ctx.client.request(`/apps/${args.app_id}/deploy`, {
122
+ method: "POST",
123
+ body: { environment: args.environment },
124
+ });
125
+ return {
126
+ text: `Started ${args.environment} deploy of app ${args.app_id} (${res.member_count} member(s)${res.deploy_ordered ? ", ordered" : ""}). Watch member deployments or list_app_releases for the outcome.`,
127
+ data: res,
128
+ };
129
+ },
130
+ });
131
+ registerTool(server, ctx, {
132
+ name: "deploy_app_and_wait",
133
+ description: "Coordinated deploy of every app member, then WAIT until the coordinated release reaches a terminal status (succeeded / failed / rolled_back) and return it. Use this when you need the deploy outcome; use deploy_app for fire-and-forget.",
134
+ inputSchema: {
135
+ app_id: z.string(),
136
+ environment: z.enum(["preview", "production"]).default("production"),
137
+ timeout_ms: z.number().int().positive().max(1_800_000).default(900_000).describe("Max wait in ms (default 15 min). A coordinated deploy builds every member, so allow generous time."),
138
+ },
139
+ annotations: { title: "Deploy app (wait)" },
140
+ handler: async (args) => {
141
+ const env = args.environment;
142
+ // Snapshot existing releases so we can detect the one this deploy records.
143
+ // The backend writes a single app_release at the END of the rollout with a
144
+ // terminal status, so a new release appearing == the deploy finished.
145
+ const before = await ctx.client.request(`/apps/${args.app_id}/releases?environment=${env}`);
146
+ const seen = new Set(before.map((r) => r.id));
147
+ await ctx.client.request(`/apps/${args.app_id}/deploy`, { method: "POST", body: { environment: env } });
148
+ const result = await pollUntil(() => ctx.client.request(`/apps/${args.app_id}/releases?environment=${env}`), (releases) => releases.some((r) => !seen.has(r.id) && TERMINAL_RELEASE_STATUSES.has(r.status)), { intervalMs: 10_000, timeoutMs: args.timeout_ms, initialDelayMs: 3000 });
149
+ const fresh = result.value.find((r) => !seen.has(r.id));
150
+ if (!fresh) {
151
+ return {
152
+ text: `Started ${env} deploy of app ${args.app_id}, but no release was recorded${result.done ? "" : " before the timeout"}. Check list_app_releases.`,
153
+ data: { app_id: args.app_id, environment: env, timed_out: !result.done },
154
+ };
155
+ }
156
+ return {
157
+ text: `App ${args.app_id} ${env} deploy finished: release ${fresh.id} [${fresh.status}]${result.done ? "" : " (timed out waiting; status may be stale)"}.`,
158
+ data: fresh,
159
+ };
160
+ },
161
+ });
162
+ registerTool(server, ctx, {
163
+ name: "list_app_releases",
164
+ description: "List an app's coordinated-deploy release history for an environment (newest first). Use a release id with rollback_app.",
165
+ inputSchema: {
166
+ app_id: z.string(),
167
+ environment: z.enum(["preview", "production"]).default("production"),
168
+ },
169
+ annotations: { readOnlyHint: true, title: "List app releases" },
170
+ handler: async (args) => {
171
+ const releases = await ctx.client.request(`/apps/${args.app_id}/releases?environment=${args.environment}`);
172
+ const text = releases.length
173
+ ? releases.map((r) => `${r.id} [${r.status}] ${r.created_at}`).join("\n")
174
+ : "(no releases yet)";
175
+ return { text, data: releases };
176
+ },
177
+ });
178
+ registerTool(server, ctx, {
179
+ name: "rollback_app",
180
+ description: "Roll an app's members back to a prior release: redeploys each member to the exact deployment it ran in that release. Returns immediately; the rollback runs in the background.",
181
+ inputSchema: {
182
+ app_id: z.string(),
183
+ release_id: z.string(),
184
+ environment: z.enum(["preview", "production"]).default("production"),
185
+ },
186
+ annotations: { title: "Rollback app" },
187
+ handler: async (args) => {
188
+ await ctx.client.request(`/apps/${args.app_id}/rollback`, {
189
+ method: "POST",
190
+ body: { environment: args.environment, release_id: args.release_id },
191
+ });
192
+ return {
193
+ text: `Started rollback of app ${args.app_id} (${args.environment}) to release ${args.release_id}.`,
194
+ data: { app_id: args.app_id, release_id: args.release_id, environment: args.environment },
195
+ };
196
+ },
197
+ });
198
+ // App-level env vars / secrets. These are layered UNDERNEATH each member
199
+ // project's own variables at deploy time (app shared → app env → project
200
+ // shared → project env). Set once on the app, inherited by every member.
201
+ registerAppVariableTools(server, ctx, "env");
202
+ registerAppVariableTools(server, ctx, "secret");
203
+ }
204
+ // registerAppVariableTools registers list/set/delete for one app variable store.
205
+ function registerAppVariableTools(server, ctx, kind) {
206
+ const path = kind === "secret" ? "secrets" : "env";
207
+ const label = kind === "secret" ? "secret" : "env var";
208
+ const suffix = kind === "secret" ? "secret" : "env_var";
209
+ registerTool(server, ctx, {
210
+ name: `list_app_${suffix}s`,
211
+ description: `List an app's ${label}s for one environment scope (values masked). These are inherited by every member project.`,
212
+ inputSchema: {
213
+ app_id: z.string(),
214
+ environment: z.enum(["shared", "preview", "production"]).default("shared"),
215
+ },
216
+ annotations: { readOnlyHint: true, title: `List app ${label}s` },
217
+ handler: async (args) => {
218
+ const vars = await ctx.client.request(`/apps/${args.app_id}/${path}?environment=${args.environment}`);
219
+ const text = vars.length ? vars.map((v) => `${v.key}=${v.value} (${v.environment})`).join("\n") : `(no app ${label}s)`;
220
+ return { text, data: vars };
221
+ },
222
+ });
223
+ registerTool(server, ctx, {
224
+ name: `set_app_${suffix}`,
225
+ description: `Set an app-level ${label} (inherited by all member projects). Scope defaults to shared.`,
226
+ inputSchema: {
227
+ app_id: z.string(),
228
+ key: z.string(),
229
+ value: z.string(),
230
+ environment: z.enum(["shared", "preview", "production"]).default("shared"),
231
+ },
232
+ annotations: { title: `Set app ${label}` },
233
+ handler: async (args) => {
234
+ await ctx.client.request(`/apps/${args.app_id}/${path}`, {
235
+ method: "POST",
236
+ body: { key: args.key, value: args.value, environment: args.environment },
237
+ });
238
+ return { text: `Set app ${label} ${args.key} (${args.environment}) on app ${args.app_id}.`, data: { key: args.key, environment: args.environment } };
239
+ },
240
+ });
241
+ registerTool(server, ctx, {
242
+ name: `delete_app_${suffix}`,
243
+ description: `Delete an app-level ${label} from one scope.`,
244
+ inputSchema: {
245
+ app_id: z.string(),
246
+ key: z.string(),
247
+ environment: z.enum(["shared", "preview", "production"]).default("shared"),
248
+ },
249
+ annotations: { title: `Delete app ${label}` },
250
+ handler: async (args) => {
251
+ await ctx.client.request(`/apps/${args.app_id}/${path}/${encodeURIComponent(args.key)}?environment=${args.environment}`, { method: "DELETE" });
252
+ return { text: `Deleted app ${label} ${args.key} (${args.environment}).`, data: { key: args.key, environment: args.environment, deleted: true } };
253
+ },
254
+ });
255
+ }
256
+ //# sourceMappingURL=apps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apps.js","sourceRoot":"","sources":["../../src/tools/apps.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ import { registerVolumeTools } from "./volumes.js";
9
9
  import { registerServiceTools } from "./services.js";
10
10
  import { registerGithubTools } from "./github.js";
11
11
  import { registerGroupTools } from "./groups.js";
12
+ import { registerAppTools } from "./apps.js";
12
13
  import { registerWorkspaceTools } from "./workspaces.js";
13
14
  import { registerAnalyticsTools } from "./analytics.js";
14
15
  import { registerEmailTools } from "./email.js";
@@ -27,6 +28,7 @@ export function registerAllTools(server, ctx) {
27
28
  registerServiceTools(server, ctx);
28
29
  registerGithubTools(server, ctx);
29
30
  registerGroupTools(server, ctx);
31
+ registerAppTools(server, ctx);
30
32
  registerWorkspaceTools(server, ctx);
31
33
  registerAnalyticsTools(server, ctx);
32
34
  registerEmailTools(server, ctx);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAGvD,MAAM,UAAU,gBAAgB,CAAC,MAAiB,EAAE,GAAgB;IAClE,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,uBAAuB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,uBAAuB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrC,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAGvD,MAAM,UAAU,gBAAgB,CAAC,MAAiB,EAAE,GAAgB;IAClE,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,uBAAuB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,uBAAuB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrC,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACrC,CAAC"}
@@ -36,6 +36,12 @@ export function buildCreateProjectPayload(args, resolvedGroupId) {
36
36
  payload.start_command = args.start_command;
37
37
  if (args.health_path)
38
38
  payload.health_path = args.health_path;
39
+ if (args.build_filter_enabled !== undefined)
40
+ payload.build_filter_enabled = args.build_filter_enabled;
41
+ if (args.watch_paths)
42
+ payload.watch_paths = args.watch_paths;
43
+ if (args.deploy_order !== undefined)
44
+ payload.deploy_order = args.deploy_order;
39
45
  return payload;
40
46
  }
41
47
  export function registerProjectTools(server, ctx) {
@@ -131,6 +137,9 @@ export function registerProjectTools(server, ctx) {
131
137
  resource_tier: z.enum(["nano", "small", "medium", "large"]).optional(),
132
138
  start_command: z.string().optional(),
133
139
  health_path: z.string().optional(),
140
+ build_filter_enabled: z.boolean().optional().describe("Opt into changed-path build filtering (the monorepo fan-out fix): only rebuild when a changed path is under root_directory or matches a watch_paths glob."),
141
+ watch_paths: z.array(z.string()).optional().describe("Globs for shared deps outside root_directory that should also trigger a rebuild, e.g. [\"packages/shared/**\",\"bun.lock\"]. Supports ** and *."),
142
+ deploy_order: z.number().int().optional().describe("Position in a coordinated app deploy (lower deploys first; equal = parallel). Honored only when the app is deploy-ordered."),
134
143
  },
135
144
  annotations: { title: "Create project" },
136
145
  handler: async (args) => {
@@ -168,6 +177,9 @@ export function registerProjectTools(server, ctx) {
168
177
  start_command: z.string().optional(),
169
178
  health_path: z.string().optional(),
170
179
  resource_tier: z.enum(["nano", "small", "medium", "large"]).optional(),
180
+ build_filter_enabled: z.boolean().optional(),
181
+ watch_paths: z.array(z.string()).optional(),
182
+ deploy_order: z.number().int().optional(),
171
183
  })
172
184
  .describe("Fields to update. Server validates."),
173
185
  },
@@ -1 +1 @@
1
- {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"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"}
@@ -14,37 +14,44 @@ const ENV = z.string().describe("'preview' (test) or 'production' (live). Also a
14
14
  const VAR_SCOPE = z.string().describe("'shared' (both envs), 'preview' (test only), or 'production' (live only). Also accepts: both, all, prod, live, staging.");
15
15
  const TERMINAL_STATUSES = new Set(["live", "failed", "replaced", "rolled_back"]);
16
16
  export function registerWorkflowTools(server, ctx) {
17
- registerTool(server, ctx, {
18
- name: "init_in_repo",
19
- description: "Bootstrap this repo: write `.deployik.json` (project + dashboard group), append `.deployik/` to .gitignore, and validate the token via whoami. Run this once per repo.",
20
- inputSchema: {
21
- project: z.string().optional(),
22
- project_id: z.string().optional(),
23
- workspace: z.string().optional(),
24
- default_environment: z.string().optional().describe("Optional default environment: 'preview' or 'production' (also accepts prod/live/staging)."),
25
- },
26
- handler: async (args) => {
27
- const user = await ctx.client.request(`/auth/me`);
28
- const { project, source } = await resolveProject(ctx, args);
29
- const defaultEnvironment = args.default_environment ? requireEnvironment(args.default_environment) : undefined;
30
- const binding = {
31
- project: project.name,
32
- workspace: project.organization_name ?? project.organization_id,
33
- defaultEnvironment,
34
- };
35
- writeBinding(ctx.stateDir, ctx.cwd, binding);
36
- const gitignoreUpdated = ensureGitignore(ctx.cwd);
37
- const lines = [
38
- `Bound this repo to Deployik project '${project.name}' (group: ${binding.workspace}).`,
39
- `Authenticated as ${user.username} (${user.role}).`,
40
- `Resolution source: ${source}.`,
41
- `Wrote .deployik.json (commit this — it tells teammates which project deploys here).`,
42
- gitignoreUpdated ? "Added `.deployik/` to .gitignore." : "`.deployik/` already in .gitignore (or no .gitignore at repo root).",
43
- `Private state dir: ${ctx.stateDir} (cache, token, audit — never commit).`,
44
- ];
45
- return { text: lines.join("\n"), data: { project, binding, gitignoreUpdated } };
46
- },
47
- });
17
+ // `init_in_repo` and `show_binding` write/read .deployik.json relative to
18
+ // ctx.cwd. In http (daemon) mode ctx.cwd is the daemon's own state dir,
19
+ // not the user's repo registering them there would silently create
20
+ // bindings in the wrong place. Skip in http mode; resolution still works
21
+ // via explicit project_id / slug / single-project workspace.
22
+ const includeRepoBoundTools = ctx.mode !== "http";
23
+ if (includeRepoBoundTools)
24
+ registerTool(server, ctx, {
25
+ name: "init_in_repo",
26
+ description: "Bootstrap this repo: write `.deployik.json` (project + dashboard group), append `.deployik/` to .gitignore, and validate the token via whoami. Run this once per repo.",
27
+ inputSchema: {
28
+ project: z.string().optional(),
29
+ project_id: z.string().optional(),
30
+ workspace: z.string().optional(),
31
+ default_environment: z.string().optional().describe("Optional default environment: 'preview' or 'production' (also accepts prod/live/staging)."),
32
+ },
33
+ handler: async (args) => {
34
+ const user = await ctx.client.request(`/auth/me`);
35
+ const { project, source } = await resolveProject(ctx, args);
36
+ const defaultEnvironment = args.default_environment ? requireEnvironment(args.default_environment) : undefined;
37
+ const binding = {
38
+ project: project.name,
39
+ workspace: project.organization_name ?? project.organization_id,
40
+ defaultEnvironment,
41
+ };
42
+ writeBinding(ctx.stateDir, ctx.cwd, binding);
43
+ const gitignoreUpdated = ensureGitignore(ctx.cwd);
44
+ const lines = [
45
+ `Bound this repo to Deployik project '${project.name}' (group: ${binding.workspace}).`,
46
+ `Authenticated as ${user.username} (${user.role}).`,
47
+ `Resolution source: ${source}.`,
48
+ `Wrote .deployik.json (commit this — it tells teammates which project deploys here).`,
49
+ gitignoreUpdated ? "Added `.deployik/` to .gitignore." : "`.deployik/` already in .gitignore (or no .gitignore at repo root).",
50
+ `Private state dir: ${ctx.stateDir} (cache, token, audit — never commit).`,
51
+ ];
52
+ return { text: lines.join("\n"), data: { project, binding, gitignoreUpdated } };
53
+ },
54
+ });
48
55
  registerTool(server, ctx, {
49
56
  name: "setup_project_from_repo",
50
57
  description: "End-to-end: inspect the GitHub repo for JS monorepo/framework apps, create a Deployik project, optionally enable auto-build + auto-production. Returns the project + initial preview deploy id (if any). For Dockerfile-only or Go-only folders the inspector may miss the app; that is not evidence Deployik cannot deploy it. Use create_project directly with framework='static', root_directory pointing at the Dockerfile folder, and port set to the container listen port.",
@@ -355,29 +362,30 @@ export function registerWorkflowTools(server, ctx) {
355
362
  };
356
363
  },
357
364
  });
358
- registerTool(server, ctx, {
359
- name: "show_binding",
360
- description: "Print the current .deployik binding (project + dashboard group) for this repo, if any. Useful to confirm resolution before running other tools.",
361
- annotations: { readOnlyHint: true },
362
- handler: async () => {
363
- const binding = readBinding(ctx.stateDir);
364
- if (!binding) {
365
- return { text: `(no binding yet — run init_in_repo to bind this repo to a Deployik project)` };
366
- }
367
- const projects = await fetchProjects(ctx).catch(() => []);
368
- const project = projects.find((p) => p.name === binding.project);
369
- const lines = [
370
- `Binding (${ctx.stateDir}):`,
371
- ` project: ${binding.project}`,
372
- ` group: ${binding.workspace ?? "(unset)"}`,
373
- ` workspace: ${binding.workspace ?? "(unset)"} (legacy key)`,
374
- ` defaultEnvironment: ${binding.defaultEnvironment ?? "(unset)"}`,
375
- ];
376
- if (project)
377
- lines.push("", renderProjectSummary(project));
378
- return { text: lines.join("\n"), data: { binding, project } };
379
- },
380
- });
365
+ if (includeRepoBoundTools)
366
+ registerTool(server, ctx, {
367
+ name: "show_binding",
368
+ description: "Print the current .deployik binding (project + dashboard group) for this repo, if any. Useful to confirm resolution before running other tools.",
369
+ annotations: { readOnlyHint: true },
370
+ handler: async () => {
371
+ const binding = readBinding(ctx.stateDir);
372
+ if (!binding) {
373
+ return { text: `(no binding yet — run init_in_repo to bind this repo to a Deployik project)` };
374
+ }
375
+ const projects = await fetchProjects(ctx).catch(() => []);
376
+ const project = projects.find((p) => p.name === binding.project);
377
+ const lines = [
378
+ `Binding (${ctx.stateDir}):`,
379
+ ` project: ${binding.project}`,
380
+ ` group: ${binding.workspace ?? "(unset)"}`,
381
+ ` workspace: ${binding.workspace ?? "(unset)"} (legacy key)`,
382
+ ` defaultEnvironment: ${binding.defaultEnvironment ?? "(unset)"}`,
383
+ ];
384
+ if (project)
385
+ lines.push("", renderProjectSummary(project));
386
+ return { text: lines.join("\n"), data: { binding, project } };
387
+ },
388
+ });
381
389
  // -----------------------------------------------------------------
382
390
  // High-intent shortcuts for non-technical users.
383
391
  //