@meltstudio/meltctl 4.157.1 → 4.158.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.
Files changed (2) hide show
  1. package/dist/index.js +41 -1
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -14,7 +14,7 @@ var CLI_VERSION;
14
14
  var init_version = __esm({
15
15
  "src/utils/version.ts"() {
16
16
  "use strict";
17
- CLI_VERSION = "4.157.1";
17
+ CLI_VERSION = "4.158.0";
18
18
  }
19
19
  });
20
20
 
@@ -1067,6 +1067,26 @@ function createPmResource(config) {
1067
1067
  const res = await apiFetch(config, `/pm/projects/${projectId}/roadmap`);
1068
1068
  return unwrap("get roadmap", res);
1069
1069
  },
1070
+ // ─── Client portal ────────────────────────────────────────────────────
1071
+ /**
1072
+ * Composite snapshot that backs the per-project client portal page. Wraps
1073
+ * the roadmap with project identity + PM contact + a single `lastUpdated`
1074
+ * timestamp. Auth-only (any @meltstudio.co JWT) in v1; the external-auth
1075
+ * variant will mount on a different route with the same response shape.
1076
+ */
1077
+ async getPortal(projectId) {
1078
+ const res = await apiFetch(config, `/pm/projects/${projectId}/portal`);
1079
+ return unwrap("get portal", res);
1080
+ },
1081
+ /**
1082
+ * Fire-and-forget portal view log. Called once per page mount from the
1083
+ * dashboard. The server stamps `viewer_email` from the JWT, so the only
1084
+ * thing the client supplies is the project id.
1085
+ */
1086
+ async logPortalView(projectId) {
1087
+ const res = await apiFetch(config, `/pm/projects/${projectId}/portal-view`, { method: "POST" });
1088
+ return unwrap("log portal view", res, 201);
1089
+ },
1070
1090
  // ─── Project settings ─────────────────────────────────────────────────
1071
1091
  async getProjectSettings(projectId) {
1072
1092
  const res = await apiFetch(config, `/pm/project-settings/${projectId}`);
@@ -3996,6 +4016,26 @@ function createPmResource2(config) {
3996
4016
  const res = await apiFetch2(config, `/pm/projects/${projectId}/roadmap`);
3997
4017
  return unwrap2("get roadmap", res);
3998
4018
  },
4019
+ // ─── Client portal ────────────────────────────────────────────────────
4020
+ /**
4021
+ * Composite snapshot that backs the per-project client portal page. Wraps
4022
+ * the roadmap with project identity + PM contact + a single `lastUpdated`
4023
+ * timestamp. Auth-only (any @meltstudio.co JWT) in v1; the external-auth
4024
+ * variant will mount on a different route with the same response shape.
4025
+ */
4026
+ async getPortal(projectId) {
4027
+ const res = await apiFetch2(config, `/pm/projects/${projectId}/portal`);
4028
+ return unwrap2("get portal", res);
4029
+ },
4030
+ /**
4031
+ * Fire-and-forget portal view log. Called once per page mount from the
4032
+ * dashboard. The server stamps `viewer_email` from the JWT, so the only
4033
+ * thing the client supplies is the project id.
4034
+ */
4035
+ async logPortalView(projectId) {
4036
+ const res = await apiFetch2(config, `/pm/projects/${projectId}/portal-view`, { method: "POST" });
4037
+ return unwrap2("log portal view", res, 201);
4038
+ },
3999
4039
  // ─── Project settings ─────────────────────────────────────────────────
4000
4040
  async getProjectSettings(projectId) {
4001
4041
  const res = await apiFetch2(config, `/pm/project-settings/${projectId}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meltstudio/meltctl",
3
- "version": "4.157.1",
3
+ "version": "4.158.0",
4
4
  "description": "AI-first development tools for teams - set up AGENTS.md, Claude Code, Cursor, and OpenCode standards",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",