@hype-stack/cli 1.14.0 → 1.15.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.
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { d as e, n as t, t as n, u as r } from "../cli-x7a8s0nq.js";
2
+ import { d as e, n as t, t as n, u as r } from "../cli-Blgu6LgJ.js";
3
3
  import { z as i } from "zod";
4
4
  import * as a from "@sentry/node";
5
5
  //#region src/core/sentry.ts
@@ -7,6 +7,17 @@ import { CodeEditor } from '../types/types.js';
7
7
  * that uses `servers` instead of `mcpServers`.
8
8
  */
9
9
  export declare const MCP_SERVER_NAME = "hype-stack";
10
+ /**
11
+ * The npx spec must carry a version qualifier. Given a bare `@hype-stack/cli`,
12
+ * `npm exec` first tries to satisfy the name from the local project, so inside
13
+ * any repo that contains a package with that name (a workspace developing the
14
+ * CLI, or a project depending on it) it skips the registry install. When that
15
+ * local copy has no bin linked into `node_modules/.bin` (pnpm workspaces do not
16
+ * link it at the root), the server exits with `sh: hype-stack: command not
17
+ * found` before the editor ever talks to it. `@latest` forces registry
18
+ * resolution regardless of cwd.
19
+ */
20
+ export declare const MCP_PACKAGE_SPEC = "@hype-stack/cli@latest";
10
21
  /** Editors we can write a config for. Claude Desktop is MCP-only, it has no rules format. */
11
22
  export declare const MCP_EDITORS: readonly ["cursor", "claude", "claude-desktop", "windsurf", "copilot"];
12
23
  export type McpEditor = (typeof MCP_EDITORS)[number];
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-config.d.ts","sourceRoot":"","sources":["../../src/core/mcp-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-config.d.ts","sourceRoot":"","sources":["../../src/core/mcp-config.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,28 @@
1
+ import { PortReassignment } from './ports.js';
1
2
  /**
2
3
  * Booting containers and mutating a database are the two heaviest side effects
3
- * the CLI has. A tool call should not do either behind the user's back, so
4
- * headless runs skip them and report the commands as follow-up steps instead.
4
+ * the CLI has. A tool call should not do either as a hidden side effect of an
5
+ * install, so headless installs report the work as follow-up steps instead and
6
+ * point at the explicit `setup_project` tool, which runs {@link runHeadlessSetup}.
7
+ *
8
+ * The commands run from `apps/backend` on purpose: `create` renames the
9
+ * workspace scope, so a `pnpm --filter` with a hardcoded package name matches
10
+ * nothing in a renamed project.
5
11
  */
6
- export declare const HEADLESS_SETUP_STEPS: readonly ["docker compose up -d", "pnpm --filter @internal/backend migration:latest", "pnpm --filter @internal/backend test:setup"];
12
+ export declare const HEADLESS_SETUP_STEPS: readonly ["cd apps/backend && docker compose up -d", "cd apps/backend && pnpm run migration:latest", "cd apps/backend && pnpm run test:setup"];
7
13
  export declare function isDockerRunning(): Promise<boolean>;
14
+ /**
15
+ * Move any busy host port of the stack to a free one before `docker compose
16
+ * up`, so a second Hype Stack project (or anything else on the machine) never
17
+ * kills setup with a bind error. Rewrites the compose file and every project
18
+ * file that references the moved ports. No-op when the stack's own containers
19
+ * are already running: they hold their ports legitimately, and remapping under
20
+ * a live stack would point the project at services that are not there.
21
+ */
22
+ export declare function ensureStackPortsFree(targetDir: string, composeFile: string): Promise<{
23
+ reassignments: PortReassignment[];
24
+ updatedFiles: string[];
25
+ }>;
8
26
  export declare function startDockerServices(targetDir: string, skipPrompts: boolean, dockerRunning: boolean): Promise<boolean>;
9
27
  /**
10
28
  * Classify a `docker compose up` failure. The template pins fixed container
@@ -97,4 +115,47 @@ export declare function promptDockerAndMigrations(targetDir: string, skipPrompts
97
115
  * failed to start, or Postgres never came up.
98
116
  */
99
117
  export declare function promptDockerAndWait(targetDir: string, skipPrompts: boolean, options?: PostSetupOptions): Promise<boolean>;
118
+ export interface HeadlessSetupOptions extends PostSetupOptions {
119
+ /** Also bring up the isolated test stack and migrate its database. Defaults to true. */
120
+ testSetup?: boolean;
121
+ /** Name for the migration file when the schema has unmigrated changes. Defaults to "setup". */
122
+ migrationName?: string;
123
+ }
124
+ export type HeadlessSetupStepName = "project" | "docker" | "ports" | "services" | "database" | "migrations" | "test-stack";
125
+ export interface HeadlessSetupStep {
126
+ step: HeadlessSetupStepName;
127
+ status: "ok" | "failed" | "skipped";
128
+ detail: string;
129
+ }
130
+ export interface HeadlessSetupResult {
131
+ /**
132
+ * True when the dev app is runnable: services up, database migrated. A failed
133
+ * test stack does not clear it, matching the interactive flow where test setup
134
+ * warns but never fails the install.
135
+ */
136
+ ok: boolean;
137
+ steps: HeadlessSetupStep[];
138
+ portReassignments: PortReassignment[];
139
+ /** Files (relative to apps/backend) rewritten by the port remap. */
140
+ updatedFiles: string[];
141
+ }
142
+ /**
143
+ * Everything between "the project exists on disk" and "pnpm dev works": free up
144
+ * host ports, start the Docker services, wait for Postgres, bring the database
145
+ * to the schema (creating the migration when one is needed), and prepare the
146
+ * isolated test stack.
147
+ *
148
+ * Built to be called at any point in a project's life and any number of times:
149
+ * right after `create` (no migrations exist yet, so one is created), after every
150
+ * pack or template install (new schema turns into a new migration), or on a
151
+ * project that is already fully set up (every step lands on "nothing to do").
152
+ * `docker compose up -d` is naturally idempotent, `prisma migrate dev` no-ops on
153
+ * a database that is in sync, and ports are only remapped while the stack is down.
154
+ *
155
+ * Never prompts. The one decision it takes on its own is wiping a stale TEST
156
+ * database (fixtures only, disposable by design), the same answer `--yes` gives
157
+ * interactively. The dev database is never reset: when `migrate dev` would have
158
+ * to, the step fails with the fix spelled out instead.
159
+ */
160
+ export declare function runHeadlessSetup(targetDir: string, options?: HeadlessSetupOptions): Promise<HeadlessSetupResult>;
100
161
  //# sourceMappingURL=post-setup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"post-setup.d.ts","sourceRoot":"","sources":["../../src/core/post-setup.ts"],"names":[],"mappings":"AAUA;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,qIAIvB,CAAC;AASX,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAGxD;AA6CD,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,OAAO,EACpB,aAAa,EAAE,OAAO,GACrB,OAAO,CAAC,OAAO,CAAC,CA+BlB;AAOD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,GAAG,IAAI,CAOlF;AA2DD,MAAM,WAAW,sBAAsB;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,OAAO,CAAC,CAyB/G;AAED,MAAM,WAAW,gBAAgB;IAC/B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAKD;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAM9E;AAED,6FAA6F;AAC7F,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAiBvE;AAWD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAK3D;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAI/F;AAsJD;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,OAAO,EACpB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,OAAO,CAAC,CAgFlB;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,OAAO,EACpB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,OAAO,CAAC,CAwBlB;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,OAAO,EACpB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED,wBAAsB,yBAAyB,CAC7C,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,OAAO,EACpB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAaf;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,OAAO,EACpB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,OAAO,CAAC,CAalB"}
1
+ {"version":3,"file":"post-setup.d.ts","sourceRoot":"","sources":["../../src/core/post-setup.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import { a as e, c as t, i as n, l as r, o as i, r as a, s as o, t as s } from "./cli-x7a8s0nq.js";
1
+ import { a as e, c as t, i as n, l as r, o as i, r as a, s as o, t as s } from "./cli-Blgu6LgJ.js";
2
2
  export { i as composeCommand, r as createCommand, s as createProgram, e as deployCommand, o as ensureInit, t as initCommand, n as loginCommand, a as logoutCommand };
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Curated defaults for catalog families where several packs solve the same
3
+ * problem. An MCP agent cannot prompt, so without this it either stalls on the
4
+ * choice or silently picks whichever pack matched its search first. The data
5
+ * here feeds two places: the server instructions, and per-pack annotations on
6
+ * search_catalog results.
7
+ *
8
+ * Names must match the registry. `recommendation-registry.test.ts` pins every
9
+ * name to a real pack directory so a rename cannot leave a stale default.
10
+ */
11
+ export interface Recommendation {
12
+ /** The decision being made, e.g. "auth starter". */
13
+ decision: string;
14
+ /** Pack to use when the user has not chosen. */
15
+ recommended: string;
16
+ /** The competing packs the recommendation is choosing against. */
17
+ alternatives: readonly string[];
18
+ /** The one condition under which an alternative wins. */
19
+ unless: string;
20
+ }
21
+ export declare const RECOMMENDATIONS: readonly Recommendation[];
22
+ export interface PackAnnotation {
23
+ /** Set on the pack to use when the user has not chosen within its family. */
24
+ recommended?: true;
25
+ /** Set on the competing packs, naming the default they lose to. */
26
+ recommendedDefault?: string;
27
+ }
28
+ /** The annotation search_catalog attaches to one pack, or null for packs outside any family. */
29
+ export declare function annotatePack(name: string): PackAnnotation | null;
30
+ /** One guidance sentence per decision that the given packs actually touch. */
31
+ export declare function guidanceFor(packNames: readonly string[]): string[];
32
+ export interface PlanDecision {
33
+ decision: string;
34
+ detail: string;
35
+ }
36
+ /**
37
+ * The choices a plan leaves open, as data the agent can act on. Checks the
38
+ * project's state after the plan would land: a project with no starter or no
39
+ * layout is not runnable, two packs from a single-choice category cannot
40
+ * coexist, and a non-default alternative deserves an explicit confirmation.
41
+ */
42
+ export declare function planDecisions(args: {
43
+ planned: readonly string[];
44
+ installed: readonly string[];
45
+ categoryOf: (name: string) => string | undefined;
46
+ }): PlanDecision[];
47
+ /**
48
+ * The decision-making section of the server instructions. Built from the same
49
+ * data as the annotations so the two can never disagree.
50
+ */
51
+ export declare function decisionInstructions(): string;
52
+ //# sourceMappingURL=recommendations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recommendations.d.ts","sourceRoot":"","sources":["../../src/mcp/recommendations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,cAAc;IAC7B,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,eAAe,EAAE,SAAS,cAAc,EAapD,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,6EAA6E;IAC7E,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,mEAAmE;IACnE,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,gGAAgG;AAChG,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAMhE;AAED,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAKlE;AAMD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAClC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CAClD,GAAG,YAAY,EAAE,CAqCjB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAO7C"}
@@ -1,7 +1,7 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  export declare const SERVER_NAME = "hype-stack";
3
3
  /** Tool names, in the order they are registered. Asserted by the tests. */
4
- export declare const TOOL_NAMES: readonly ["search_catalog", "plan_install", "create_application", "add_packs", "apply_template", "inspect_stack", "env_status", "auth_status"];
4
+ export declare const TOOL_NAMES: readonly ["search_catalog", "plan_install", "create_application", "add_packs", "apply_template", "setup_project", "inspect_stack", "env_status", "auth_status"];
5
5
  /**
6
6
  * Build the server with every tool registered. Split out from {@link runMcpServer}
7
7
  * so tests can drive it over an in-memory transport without spawning a process.
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAiBpE,eAAO,MAAM,WAAW,eAAe,CAAC;AAExC,2EAA2E;AAC3E,eAAO,MAAM,UAAU,gJASb,CAAC;AAEX;;;GAGG;AACH,wBAAgB,eAAe,IAAI,SAAS,CAuG3C;AAYD,sEAAsE;AACtE,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAgBlD"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmBpE,eAAO,MAAM,WAAW,eAAe,CAAC;AAExC,2EAA2E;AAC3E,eAAO,MAAM,UAAU,iKAUb,CAAC;AAEX;;;GAGG;AACH,wBAAgB,eAAe,IAAI,SAAS,CAmH3C;AAcD,sEAAsE;AACtE,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAgBlD"}
@@ -1 +1 @@
1
- {"version":3,"file":"add-packs.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/add-packs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,eAAO,MAAM,cAAc;;;;;;;CAU1B,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;CACnC;AAED;;;;;;GAMG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAuBvE"}
1
+ {"version":3,"file":"add-packs.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/add-packs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,eAAO,MAAM,cAAc;;;;;;;CAU1B,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;CACnC;AAED;;;;;;GAMG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CA6BvE"}
@@ -1 +1 @@
1
- {"version":3,"file":"apply-template.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/apply-template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,eAAO,MAAM,mBAAmB;;;;;;;;;CAY/B,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;CACnC;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAsBjF"}
1
+ {"version":3,"file":"apply-template.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/apply-template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,eAAO,MAAM,mBAAmB;;;;;;;;;CAY/B,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;CACnC;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAyBjF"}
@@ -21,6 +21,6 @@ export declare function resolveCwd(input?: string): string;
21
21
  */
22
22
  export declare const AUTH_HINT: {
23
23
  readonly envVar: "HYPE_STACK_TOKEN";
24
- readonly loginCommand: "npx @hype-stack/cli mcp install";
24
+ readonly loginCommand: "npx @hype-stack/cli@latest mcp install";
25
25
  };
26
26
  //# sourceMappingURL=context.d.ts.map
@@ -51,10 +51,10 @@ export interface CreateApplicationArgs {
51
51
  mode?: "light" | "dark";
52
52
  }
53
53
  /**
54
- * Scaffold a new application. Docker and migrations are deliberately left to the
55
- * user (see `followUp`): starting containers and mutating a database from a tool
56
- * call is too big a side effect to do silently, and both are slow enough to trip
57
- * a host's tool timeout.
54
+ * Scaffold a new application. Docker and migrations are deliberately not a
55
+ * hidden side effect of scaffolding: they run through the explicit
56
+ * `setup_project` tool (see `followUp`), so the agent asks once and the setup
57
+ * gets the full treatment (port remapping, migration creation, test stack).
58
58
  */
59
59
  export declare function createApplication(args: CreateApplicationArgs): Promise<ToolPayload>;
60
60
  //# sourceMappingURL=create-application.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-application.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/create-application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyBnC,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,kGAAkG;IAClG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC,CA+BzF"}
1
+ {"version":3,"file":"create-application.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/create-application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyBnC,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,kGAAkG;IAClG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC,CAkCzF"}
@@ -1 +1 @@
1
- {"version":3,"file":"plan-install.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/plan-install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,eAAO,MAAM,iBAAiB;;;CAG7B,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CAuD7E"}
1
+ {"version":3,"file":"plan-install.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/plan-install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,eAAO,MAAM,iBAAiB;;;CAG7B,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CA8D7E"}
@@ -1 +1 @@
1
- {"version":3,"file":"search-catalog.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/search-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;CAK/B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,KAAK,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;CAChC,CAAC;AAQF,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,iBAAiB,GAAG,YAAY,EAAE,CAO1F;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,iBAAiB,GAAG,gBAAgB,EAAE,CAM1G;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CA4BjF"}
1
+ {"version":3,"file":"search-catalog.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/search-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;CAK/B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,KAAK,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;CAChC,CAAC;AAQF,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,iBAAiB,GAAG,YAAY,EAAE,CAO1F;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,iBAAiB,GAAG,gBAAgB,EAAE,CAM1G;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAgCjF"}
@@ -0,0 +1,23 @@
1
+ import { z } from 'zod';
2
+ import { ToolPayload } from '../result.js';
3
+ export declare const setupProjectSchema: {
4
+ cwd: z.ZodOptional<z.ZodString>;
5
+ testSetup: z.ZodDefault<z.ZodBoolean>;
6
+ migrationName: z.ZodDefault<z.ZodString>;
7
+ };
8
+ export interface SetupProjectArgs {
9
+ cwd?: string;
10
+ testSetup?: boolean;
11
+ migrationName?: string;
12
+ }
13
+ /**
14
+ * Make the project runnable: Docker services up (busy host ports remapped
15
+ * first), database migrated, Prisma client generated, test stack prepared.
16
+ *
17
+ * The counterpart to the install tools, which never touch Docker or the
18
+ * database themselves. Idempotent by construction, so the calling agent can
19
+ * run it after `create_application`, again after every `add_packs` or
20
+ * `apply_template`, and once more whenever something looks off.
21
+ */
22
+ export declare function setupProject(args: SetupProjectArgs): Promise<ToolPayload>;
23
+ //# sourceMappingURL=setup-project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-project.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/setup-project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,eAAO,MAAM,kBAAkB;;;;CAW9B,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,CAoB/E"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hype-stack/cli",
3
- "version": "1.14.0",
3
+ "version": "1.15.0",
4
4
  "description": "Scaffold a full-stack TypeScript app (React 19, Hono, Prisma, Kysely, Postgres) and compose features like auth, billing, and notifications into code you own. Deploys to Railway or Fly.io.",
5
5
  "keywords": [
6
6
  "cli",