mastra 1.29.0 → 1.29.1-alpha.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.
@@ -98,6 +98,46 @@ export declare function resolveProject(token: string, orgId: string, projectConf
98
98
  projectSlug?: string;
99
99
  organizationId?: string;
100
100
  } | null, flagProject?: string, defaultName?: string | null, autoAccept?: boolean): Promise<ProjectResolution>;
101
+ /**
102
+ * Create the platform project for a first deploy.
103
+ *
104
+ * Factory projects go through the server project endpoint with
105
+ * `factoryEnabled: true`, the same call `create-factory` makes. The platform
106
+ * only provisions factory backing (workspace sandboxes, `<slug>.factory.*`
107
+ * route) for projects created with that flag, and the unified deploy path
108
+ * has no way to set it afterwards. Everything else keeps using the studio
109
+ * project endpoint.
110
+ */
111
+ export declare function createDeployProject(token: string, orgId: string, projectName: string, opts?: {
112
+ projectType?: string;
113
+ region?: string;
114
+ }): Promise<{
115
+ id: string;
116
+ name: string;
117
+ slug: string | null;
118
+ }>;
119
+ /**
120
+ * Whether an existing project was created as a Factory project. Reads the
121
+ * studio project list, which is the only CLI-facing endpoint that returns
122
+ * the flag. `undefined` means it could not be determined (lookup failed or
123
+ * the project was not in the list), in which case the caller proceeds.
124
+ */
125
+ export declare function lookupProjectFactoryFlag(token: string, orgId: string, projectId: string): Promise<boolean | undefined>;
126
+ export type NonFactoryTargetChoice = 'create' | 'deploy';
127
+ /**
128
+ * A Factory build deployed into a project created without the factory flag
129
+ * runs as a plain server deployment: no workspace sandboxes, and the
130
+ * `<slug>.factory.*` route is never registered. The flag cannot be added
131
+ * afterwards on the unified path, so the useful way out is a new project.
132
+ * Offer that before touching the environment. Under `--yes` there is nobody
133
+ * to ask, so warn and keep the requested target.
134
+ */
135
+ export declare function resolveNonFactoryTarget(input: {
136
+ projectName: string;
137
+ /** Name for a replacement project; `null` when package.json has no name. */
138
+ newProjectName: string | null;
139
+ autoAccept: boolean;
140
+ }): Promise<NonFactoryTargetChoice>;
101
141
  type EnvironmentResolution = {
102
142
  existing: true;
103
143
  environment: Environment;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/deploy/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/deploy/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/commands/server/deploy.ts"],"names":[],"mappings":"AA4CA,wBAAsB,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,uBAAuB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA0BrG;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgBpE;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAKhE;AAgBD,wBAAsB,WAAW,CAC/B,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GACvD,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAgDjC;AA6KD,KAAK,mBAAmB,GAAG;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,mBAAmB,iBAsB1F"}
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/commands/server/deploy.ts"],"names":[],"mappings":"AA6CA,wBAAsB,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,uBAAuB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA0BrG;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgBpE;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAKhE;AAgBD,wBAAsB,WAAW,CAC/B,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GACvD,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAgDjC;AAqLD,KAAK,mBAAmB,GAAG;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,mBAAmB,iBAsB1F"}
@@ -23,7 +23,17 @@ type ServerDeployResponse = paths['/v1/server/deploys/{id}']['get'] extends {
23
23
  } ? T : never;
24
24
  export type ServerDeployStatus = ServerDeployResponse;
25
25
  export declare function fetchServerProjects(token: string, orgId: string): Promise<ServerProject[]>;
26
- export declare function createServerProject(token: string, orgId: string, name: string): Promise<ServerProject>;
26
+ type CreateServerProjectBody = paths['/v1/server/projects']['post']['requestBody']['content']['application/json'];
27
+ /**
28
+ * Creation options beyond the name, taken from the generated request body so
29
+ * they cannot drift from the platform contract. `factoryEnabled` marks the
30
+ * project as a Mastra Factory project: the platform only provisions factory
31
+ * backing (workspace sandboxes, factory route) for projects created with it,
32
+ * and the unified deploy path cannot set it afterwards.
33
+ */
34
+ export type CreateServerProjectOptions = Pick<CreateServerProjectBody, 'factoryEnabled' | 'region'>;
35
+ export type ServerProjectRegion = NonNullable<CreateServerProjectOptions['region']>;
36
+ export declare function createServerProject(token: string, orgId: string, name: string, options?: CreateServerProjectOptions): Promise<ServerProject>;
27
37
  export declare function fetchServerDeployStatus(deployId: string, token: string, orgId?: string): Promise<ServerDeployStatus>;
28
38
  export declare function fetchServerDeployDiagnosis(deployId: string, token: string, orgId?: string): Promise<DeployDiagnosisLookup>;
29
39
  export declare function startServerDeployDiagnosis(deployId: string, token: string, orgId?: string): Promise<void>;
@@ -31,6 +41,12 @@ export declare function uploadServerDeploy(token: string, orgId: string, project
31
41
  projectName?: string;
32
42
  envVars?: Record<string, string>;
33
43
  disablePlatformObservability?: boolean;
44
+ /**
45
+ * Set for Factory builds. The legacy server deploy route marks the
46
+ * project as a Factory project and provisions factory backing when it
47
+ * sees this, including on projects created without the flag.
48
+ */
49
+ factoryEnabled?: boolean;
34
50
  }): Promise<{
35
51
  id: string;
36
52
  status: string;
@@ -1 +1 @@
1
- {"version":3,"file":"platform-api.d.ts","sourceRoot":"","sources":["../../../src/commands/server/platform-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform-api.d.ts","sourceRoot":"","sources":["../../../src/commands/server/platform-api.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/commands/studio/deploy.ts"],"names":[],"mappings":"AAwDA,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWlE;AACD,wBAAsB,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,uBAAuB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAwBrG;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgBpE;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAKhE;AAED,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAa7E;AAED,wBAAsB,WAAW,CAC/B,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GACvD,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAgDjC;AAsLD,KAAK,mBAAmB,GAAG;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,mBAAmB,iBAsBpF"}
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/commands/studio/deploy.ts"],"names":[],"mappings":"AAyDA,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWlE;AACD,wBAAsB,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,uBAAuB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAwBrG;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgBpE;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAKhE;AAED,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAa7E;AAED,wBAAsB,WAAW,CAC/B,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GACvD,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAgDjC;AAsLD,KAAK,mBAAmB,GAAG;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,mBAAmB,iBAsBpF"}
@@ -4,6 +4,8 @@ export interface Project {
4
4
  name: string;
5
5
  slug: string | null;
6
6
  organizationId: string;
7
+ /** Present on the studio list endpoint; set at creation and never changed by deploys on the unified path. */
8
+ factoryEnabled?: boolean;
7
9
  latestDeployId: string | null;
8
10
  latestDeployStatus: string | null;
9
11
  latestDeployCreatedAt?: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"platform-api.d.ts","sourceRoot":"","sources":["../../../src/commands/studio/platform-api.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAmB,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEvF,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CASpF;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAWhG;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAW5G;AAED,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,qBAAqB,CAAC,CA0BhC;AAED,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBzG;AAED,wBAAsB,YAAY,CAChC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE;IACL,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4BAA4B,CAAC,EAAE,OAAO,CAAC;CACxC,GACA,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAoEzC;AAiDD,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,SAAS,SAAS,GACjB,OAAO,CAAC,YAAY,CAAC,CA+CvB"}
1
+ {"version":3,"file":"platform-api.d.ts","sourceRoot":"","sources":["../../../src/commands/studio/platform-api.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAmB,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEvF,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,6GAA6G;IAC7G,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CASpF;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAWhG;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAW5G;AAED,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,qBAAqB,CAAC,CA0BhC;AAED,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBzG;AAED,wBAAsB,YAAY,CAChC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE;IACL,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4BAA4B,CAAC,EAAE,OAAO,CAAC;CACxC,GACA,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAoEzC;AAiDD,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,SAAS,SAAS,GACjB,OAAO,CAAC,YAAY,CAAC,CA+CvB"}
@@ -3,7 +3,7 @@ name: mastra
3
3
  description: Documentation for mastra. Use when working with mastra APIs, configuration, or implementation.
4
4
  metadata:
5
5
  package: "mastra"
6
- version: "1.29.0"
6
+ version: "1.29.1-alpha.0"
7
7
  ---
8
8
 
9
9
  ## When to use
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.29.0",
2
+ "version": "1.29.1-alpha.0",
3
3
  "package": "mastra",
4
4
  "exports": {},
5
5
  "modules": {}
package/dist/index.js CHANGED
@@ -42,7 +42,7 @@ import handler from "serve-handler";
42
42
  //#region package.json
43
43
  var package_default = {
44
44
  name: "mastra",
45
- version: "1.29.0",
45
+ version: "1.29.1-alpha.0",
46
46
  license: "Apache-2.0",
47
47
  description: "cli for mastra",
48
48
  type: "module",
@@ -2169,6 +2169,24 @@ function truncate(s, max) {
2169
2169
  return s.length <= max ? s : `${s.slice(0, max - 1)}…`;
2170
2170
  }
2171
2171
  //#endregion
2172
+ //#region src/utils/detect-project-type.ts
2173
+ /**
2174
+ * Detect the project type (e.g. `factory`) from the Mastra entry file under
2175
+ * `src/mastra`. Deploy commands run this before project resolution so a new
2176
+ * platform project can be created with the right flags. Detection failures
2177
+ * fall back to `undefined`; the build step reports entry-file problems with a
2178
+ * better error than this would.
2179
+ */
2180
+ async function detectProjectType(targetDir) {
2181
+ const mastraEntryFile = findMastraEntryFile(join(targetDir, "src", "mastra"));
2182
+ if (!mastraEntryFile) return void 0;
2183
+ try {
2184
+ return await analyzeEntryProjectType(mastraEntryFile);
2185
+ } catch {
2186
+ return;
2187
+ }
2188
+ }
2189
+ //#endregion
2172
2190
  //#region src/utils/workers-manifest-guard.ts
2173
2191
  /**
2174
2192
  * Legacy-deploy workers-manifest guard.
@@ -2754,6 +2772,7 @@ async function runStudioDeploy(dir, opts) {
2754
2772
  const skipPreflight = opts.skipPreflight || process.env.MASTRA_SKIP_PREFLIGHT === "1";
2755
2773
  p.intro("mastra studio deploy");
2756
2774
  const packageName = getPackageName$2(targetDir);
2775
+ if (await detectProjectType(targetDir) === "factory") p.log.warn(["This directory builds a Mastra Factory, but `mastra studio deploy` cannot enable Factory support on the project.", "Use `mastra deploy` instead; it creates Factory projects with the flag and registers the Factory URL."].join("\n"));
2757
2776
  const gitBranch = getGitBranch$1(targetDir);
2758
2777
  const mastraVersion = getMastraVersion(targetDir);
2759
2778
  const token = await getToken();
@@ -12295,8 +12314,12 @@ async function fetchServerProjects(token, orgId) {
12295
12314
  if (error) throwApiError("Failed to fetch server projects", response.status);
12296
12315
  return data.projects;
12297
12316
  }
12298
- async function createServerProject(token, orgId, name) {
12299
- const { data, error, response } = await createApiClient(token, orgId).POST("/v1/server/projects", { body: { name } });
12317
+ async function createServerProject(token, orgId, name, options = {}) {
12318
+ const { data, error, response } = await createApiClient(token, orgId).POST("/v1/server/projects", { body: {
12319
+ name,
12320
+ ...options.factoryEnabled !== void 0 ? { factoryEnabled: options.factoryEnabled } : {},
12321
+ ...options.region ? { region: options.region } : {}
12322
+ } });
12300
12323
  if (error) throwApiError(`Failed to create server project — ${error.detail ?? "unknown error"}`, response.status);
12301
12324
  return data.project;
12302
12325
  }
@@ -12339,7 +12362,8 @@ async function uploadServerDeploy(token, orgId, projectId, zipBuffer, meta) {
12339
12362
  projectId,
12340
12363
  projectName: meta?.projectName,
12341
12364
  envVars: meta?.envVars,
12342
- ...meta?.disablePlatformObservability !== void 0 ? { disablePlatformObservability: meta.disablePlatformObservability } : {}
12365
+ ...meta?.disablePlatformObservability !== void 0 ? { disablePlatformObservability: meta.disablePlatformObservability } : {},
12366
+ ...meta?.factoryEnabled ? { factoryEnabled: true } : {}
12343
12367
  } });
12344
12368
  if (error) throwApiError("Deploy failed", response.status, extractApiErrorDetail(error));
12345
12369
  const { id, status, uploadUrl } = data;
@@ -14826,6 +14850,99 @@ async function resolveProject$1(token, orgId, projectConfig, flagProject, defaul
14826
14850
  projectName: name
14827
14851
  };
14828
14852
  }
14853
+ function toServerProjectRegion(region) {
14854
+ return region === "eu" || region === "us" ? region : void 0;
14855
+ }
14856
+ /**
14857
+ * Create the platform project for a first deploy.
14858
+ *
14859
+ * Factory projects go through the server project endpoint with
14860
+ * `factoryEnabled: true`, the same call `create-factory` makes. The platform
14861
+ * only provisions factory backing (workspace sandboxes, `<slug>.factory.*`
14862
+ * route) for projects created with that flag, and the unified deploy path
14863
+ * has no way to set it afterwards. Everything else keeps using the studio
14864
+ * project endpoint.
14865
+ */
14866
+ async function createDeployProject(token, orgId, projectName, opts = {}) {
14867
+ if (opts.projectType === "factory") {
14868
+ const region = toServerProjectRegion(opts.region);
14869
+ return createServerProject(token, orgId, projectName, {
14870
+ factoryEnabled: true,
14871
+ ...region ? { region } : {}
14872
+ });
14873
+ }
14874
+ return createProject(token, orgId, projectName);
14875
+ }
14876
+ /**
14877
+ * Whether an existing project was created as a Factory project. Reads the
14878
+ * studio project list, which is the only CLI-facing endpoint that returns
14879
+ * the flag. `undefined` means it could not be determined (lookup failed or
14880
+ * the project was not in the list), in which case the caller proceeds.
14881
+ */
14882
+ async function lookupProjectFactoryFlag(token, orgId, projectId) {
14883
+ try {
14884
+ const match = (await fetchProjects$1(token, orgId)).find((project) => project.id === projectId);
14885
+ return typeof match?.factoryEnabled === "boolean" ? match.factoryEnabled : void 0;
14886
+ } catch {
14887
+ return;
14888
+ }
14889
+ }
14890
+ /**
14891
+ * A Factory build deployed into a project created without the factory flag
14892
+ * runs as a plain server deployment: no workspace sandboxes, and the
14893
+ * `<slug>.factory.*` route is never registered. The flag cannot be added
14894
+ * afterwards on the unified path, so the useful way out is a new project.
14895
+ * Offer that before touching the environment. Under `--yes` there is nobody
14896
+ * to ask, so warn and keep the requested target.
14897
+ */
14898
+ async function resolveNonFactoryTarget(input) {
14899
+ const explanation = [`This directory was scaffolded as a Mastra Factory, but the platform project "${input.projectName}" was created without Factory support, and that can't be added later.`, `Deploying there runs it as a plain server: no workspace sandboxes, and the Factory URL will not work.`];
14900
+ if (input.autoAccept) {
14901
+ p.log.warn(explanation.join("\n"));
14902
+ return "deploy";
14903
+ }
14904
+ const choice = await p.select({
14905
+ message: [...explanation, "How do you want to continue?"].join("\n"),
14906
+ options: [
14907
+ ...input.newProjectName ? [{
14908
+ value: "create",
14909
+ label: `Create a new Factory project "${input.newProjectName}" and deploy there`,
14910
+ hint: "recommended"
14911
+ }] : [],
14912
+ {
14913
+ value: "deploy",
14914
+ label: `Deploy to "${input.projectName}" anyway as a plain server`
14915
+ },
14916
+ {
14917
+ value: "cancel",
14918
+ label: "Cancel"
14919
+ }
14920
+ ]
14921
+ });
14922
+ if (p.isCancel(choice) || choice === "cancel") {
14923
+ p.cancel("Deploy cancelled.");
14924
+ process.exit(0);
14925
+ }
14926
+ return choice;
14927
+ }
14928
+ async function promptDeployRegion() {
14929
+ const selectedRegion = await p.select({
14930
+ message: "Select a deployment region",
14931
+ initialValue: "us",
14932
+ options: [{
14933
+ value: "us",
14934
+ label: "United States"
14935
+ }, {
14936
+ value: "eu",
14937
+ label: "Europe"
14938
+ }]
14939
+ });
14940
+ if (p.isCancel(selectedRegion)) {
14941
+ p.cancel("Deploy cancelled.");
14942
+ process.exit(0);
14943
+ }
14944
+ return selectedRegion;
14945
+ }
14829
14946
  async function resolveEnvironment(token, orgId, projectId, envName, autoAccept, requestedRegion) {
14830
14947
  const existing = (await fetchEnvironments(token, orgId, projectId)).find((env) => env.name.toLowerCase() === envName.toLowerCase());
14831
14948
  if (existing) return {
@@ -14844,24 +14961,7 @@ async function resolveEnvironment(token, orgId, projectId, envName, autoAccept,
14844
14961
  }
14845
14962
  }
14846
14963
  let region = requestedRegion;
14847
- if (!region && !autoAccept) {
14848
- const selectedRegion = await p.select({
14849
- message: "Select a deployment region",
14850
- initialValue: "us",
14851
- options: [{
14852
- value: "us",
14853
- label: "United States"
14854
- }, {
14855
- value: "eu",
14856
- label: "Europe"
14857
- }]
14858
- });
14859
- if (p.isCancel(selectedRegion)) {
14860
- p.cancel("Deploy cancelled.");
14861
- process.exit(0);
14862
- }
14863
- region = selectedRegion;
14864
- }
14964
+ if (!region && !autoAccept) region = await promptDeployRegion();
14865
14965
  return {
14866
14966
  existing: false,
14867
14967
  name: envName,
@@ -14987,6 +15087,7 @@ async function pollEnvironmentDeploy(token, orgId, projectId, environmentId, dep
14987
15087
  }
14988
15088
  async function unifiedDeployAction(dir, opts) {
14989
15089
  if (opts.workers !== void 0 && opts.workers !== "dedicated" && opts.workers !== "in-process") throw new Error(`--workers must be "dedicated" or "in-process" (got "${String(opts.workers)}")`);
15090
+ if (opts.region !== void 0 && opts.region !== "us" && opts.region !== "eu") throw new Error(`--region must be "us" or "eu" (got "${String(opts.region)}")`);
14990
15091
  const analytics = getAnalytics();
14991
15092
  if (!analytics) return runUnifiedDeploy(dir, opts);
14992
15093
  return analytics.trackCommandExecution({
@@ -15022,14 +15123,29 @@ async function runUnifiedDeploy(dir, opts) {
15022
15123
  const packageName = getPackageName$1(targetDir);
15023
15124
  const gitBranch = getGitBranch(targetDir);
15024
15125
  const mastraVersion = getMastraVersion(targetDir);
15126
+ const projectType = await detectProjectType(targetDir);
15127
+ const isFactoryProject = projectType === "factory";
15025
15128
  const token = await getToken();
15026
15129
  const userId = isHeadless ? void 0 : (await loadCredentials())?.user.id;
15027
15130
  const projectConfig = await loadProjectConfig(targetDir, opts.config);
15028
15131
  const { orgId, orgName } = await resolveOrg$1(token, projectConfig, opts.org);
15029
- const resolution = await resolveProject$1(token, orgId, projectConfig, opts.project, packageName, autoAccept);
15132
+ let resolution = await resolveProject$1(token, orgId, projectConfig, opts.project, packageName, autoAccept);
15133
+ if (resolution.existing && isFactoryProject) {
15134
+ if (await lookupProjectFactoryFlag(token, orgId, resolution.projectId) === false) {
15135
+ if (await resolveNonFactoryTarget({
15136
+ projectName: resolution.projectName,
15137
+ newProjectName: packageName,
15138
+ autoAccept
15139
+ }) === "create" && packageName) resolution = {
15140
+ existing: false,
15141
+ projectName: packageName
15142
+ };
15143
+ }
15144
+ }
15030
15145
  let projectId;
15031
15146
  let projectName;
15032
15147
  let projectSlug;
15148
+ let requestedRegion = opts.region;
15033
15149
  if (resolution.existing) {
15034
15150
  projectId = resolution.projectId;
15035
15151
  projectName = resolution.projectName;
@@ -15038,7 +15154,7 @@ async function runUnifiedDeploy(dir, opts) {
15038
15154
  projectName = resolution.projectName;
15039
15155
  p.note([
15040
15156
  `Organization: ${orgName}`,
15041
- `Project: ${projectName} (new)`,
15157
+ `Project: ${projectName} (new${isFactoryProject ? " Factory project" : ""})`,
15042
15158
  `Environment: ${envName}`,
15043
15159
  `Directory: ${targetDir}`,
15044
15160
  ...gitBranch ? [`Git branch: ${gitBranch}`] : [],
@@ -15051,14 +15167,18 @@ async function runUnifiedDeploy(dir, opts) {
15051
15167
  process.exit(0);
15052
15168
  }
15053
15169
  }
15054
- const project = await createProject(token, orgId, projectName);
15170
+ if (isFactoryProject && !requestedRegion && !autoAccept) requestedRegion = await promptDeployRegion();
15171
+ const project = await createDeployProject(token, orgId, projectName, {
15172
+ projectType,
15173
+ region: requestedRegion
15174
+ });
15055
15175
  projectId = project.id;
15056
15176
  projectSlug = project.slug ?? project.name;
15057
- p.log.success(`Created project "${projectName}"`);
15177
+ p.log.success(`Created ${isFactoryProject ? "Factory " : ""}project "${projectName}"`);
15058
15178
  await saveProjectConfig(targetDir, getProjectConfigToSave(projectId, projectName, projectSlug, orgId, projectConfig), opts.config);
15059
15179
  p.log.success(`Saved ${opts.config || ".mastra-project.json"}`);
15060
15180
  }
15061
- const envResolution = await resolveEnvironment(token, orgId, projectId, envName, autoAccept, opts.region);
15181
+ const envResolution = await resolveEnvironment(token, orgId, projectId, envName, autoAccept, requestedRegion);
15062
15182
  let environment;
15063
15183
  if (envResolution.existing) environment = envResolution.environment;
15064
15184
  else {
@@ -15094,12 +15214,7 @@ async function runUnifiedDeploy(dir, opts) {
15094
15214
  const s = p.spinner();
15095
15215
  const tTotal = performance.now();
15096
15216
  let t;
15097
- const mastraDir = join(targetDir, "src", "mastra");
15098
- const outputDirectory = join(targetDir, ".mastra");
15099
- const mastraEntryFile = findMastraEntryFile(mastraDir);
15100
- let projectType;
15101
- if (mastraEntryFile) projectType = await analyzeEntryProjectType(mastraEntryFile);
15102
- const staleness = await checkBuildStaleness(targetDir, mastraDir, outputDirectory, projectType);
15217
+ const staleness = await checkBuildStaleness(targetDir, join(targetDir, "src", "mastra"), join(targetDir, ".mastra"), projectType);
15103
15218
  const workersManifestExists = await hasWorkersManifest(targetDir);
15104
15219
  const workerManifestChecked = await hasWorkerManifestCheck(targetDir);
15105
15220
  const buildNeedsRefresh = deployBuildNeedsRefresh(staleness, workersManifestExists, workerManifestChecked);
@@ -15553,7 +15668,16 @@ async function resolveOrg(token, projectConfig, flagOrg) {
15553
15668
  orgName: selectedOrg.name
15554
15669
  };
15555
15670
  }
15556
- async function resolveProject(token, orgId, projectConfig, flagProject, defaultName, autoAccept) {
15671
+ async function resolveProject(token, orgId, projectConfig, flagProject, defaultName, autoAccept, isFactoryProject = false) {
15672
+ const createProjectNamed = async (name) => {
15673
+ const created = isFactoryProject ? await createServerProject(token, orgId, name, { factoryEnabled: true }) : await createServerProject(token, orgId, name);
15674
+ p.log.success(`Created ${isFactoryProject ? "Factory project" : "project"} "${created.name}"`);
15675
+ return {
15676
+ projectId: created.id,
15677
+ projectName: created.name,
15678
+ projectSlug: created.slug ?? created.name
15679
+ };
15680
+ };
15557
15681
  const envProjectId = process.env.MASTRA_PROJECT_ID;
15558
15682
  if (envProjectId) return {
15559
15683
  projectId: envProjectId,
@@ -15582,13 +15706,7 @@ async function resolveProject(token, orgId, projectConfig, flagProject, defaultN
15582
15706
  process.exit(0);
15583
15707
  }
15584
15708
  }
15585
- const created = await createServerProject(token, orgId, flagProject);
15586
- p.log.success(`Created project "${created.name}"`);
15587
- return {
15588
- projectId: created.id,
15589
- projectName: created.name,
15590
- projectSlug: created.slug ?? created.name
15591
- };
15709
+ return createProjectNamed(flagProject);
15592
15710
  }
15593
15711
  if (projectConfig?.projectId && projectConfig.organizationId === orgId) return {
15594
15712
  projectId: projectConfig.projectId,
@@ -15637,12 +15755,7 @@ async function resolveProject(token, orgId, projectConfig, flagProject, defaultN
15637
15755
  };
15638
15756
  }
15639
15757
  }
15640
- const project = await createServerProject(token, orgId, name);
15641
- return {
15642
- projectId: project.id,
15643
- projectName: project.name,
15644
- projectSlug: project.slug ?? project.name
15645
- };
15758
+ return createProjectNamed(name);
15646
15759
  }
15647
15760
  async function serverDeployAction(dir, opts) {
15648
15761
  const analytics = getAnalytics();
@@ -15673,6 +15786,7 @@ async function runServerDeploy(dir, opts) {
15673
15786
  const skipPreflight = opts.skipPreflight || process.env.MASTRA_SKIP_PREFLIGHT === "1";
15674
15787
  p.intro("mastra server deploy");
15675
15788
  const packageName = getPackageName(targetDir);
15789
+ const isFactoryProject = await detectProjectType(targetDir) === "factory";
15676
15790
  let token;
15677
15791
  try {
15678
15792
  token = await getToken();
@@ -15685,7 +15799,7 @@ async function runServerDeploy(dir, opts) {
15685
15799
  const hasProject = Boolean(process.env.MASTRA_PROJECT_ID || opts.project || projectConfig?.projectId);
15686
15800
  if (isHeadless && (!hasOrg || !hasProject)) throw new Error("MASTRA_ORG_ID and MASTRA_PROJECT_ID (or --org/--project flags, or .mastra-project.json) are required when MASTRA_API_TOKEN is set");
15687
15801
  const { orgId, orgName } = await resolveOrg(token, projectConfig, opts.org);
15688
- const { projectId, projectName, projectSlug } = await resolveProject(token, orgId, projectConfig, opts.project, packageName, autoAccept);
15802
+ const { projectId, projectName, projectSlug } = await resolveProject(token, orgId, projectConfig, opts.project, packageName, autoAccept, isFactoryProject);
15689
15803
  if (!(projectConfig?.projectId === projectId && projectConfig?.organizationId === orgId)) {
15690
15804
  p.note([
15691
15805
  `Organization: ${orgName}`,
@@ -15763,7 +15877,8 @@ async function runServerDeploy(dir, opts) {
15763
15877
  const deployResult = await uploadServerDeploy(token, orgId, projectId, zipBuffer, {
15764
15878
  projectName,
15765
15879
  envVars: envCount > 0 ? envVars : void 0,
15766
- disablePlatformObservability: projectConfig?.disablePlatformObservability === true
15880
+ disablePlatformObservability: projectConfig?.disablePlatformObservability === true,
15881
+ ...isFactoryProject ? { factoryEnabled: true } : {}
15767
15882
  });
15768
15883
  s.stop(`Deploy accepted: ${deployResult.id}`);
15769
15884
  await rm(zipPath, { force: true });