forgeos 0.1.0-alpha.40 → 0.1.0-alpha.41

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/AGENTS.md CHANGED
@@ -1,4 +1,4 @@
1
- // @forge-generated generator=0.1.0-alpha.40 input=34767fc77e63b67b94ae661c501b2aa362dd8234ba16c12cf84a55da5e94de28 content=721818a6f9a664aa898092d4aa5cd68cbbd8ad6e150c7d3ad3ef785a2e3fcf53
1
+ // @forge-generated generator=0.1.0-alpha.41 input=472a35507fac4f297d64b66cb443aa712ceb113986ac03317278c6464c17cdd4 content=721818a6f9a664aa898092d4aa5cd68cbbd8ad6e150c7d3ad3ef785a2e3fcf53
2
2
  # AGENTS.md
3
3
 
4
4
  <!-- forge-generated:start -->
package/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # forgeos
2
2
 
3
+ ## 0.1.0-alpha.41
4
+
5
+ ### Patch Changes
6
+
7
+ - Fix package install detection for npm workspace apps that hoist frontend
8
+ dependencies to an ancestor `node_modules`.
9
+
10
+ - `forge add auth workos` now recognizes `@workos-inc/authkit-react` when npm
11
+ installs it from a `web/` workspace but physically hoists it to the root
12
+ workspace.
13
+ - Package version detection now walks ancestor `node_modules` directories,
14
+ matching Node/workspace resolution more closely.
15
+ - Add regression coverage for scoped hoisted workspace packages and the
16
+ WorkOS AuthKit install path.
17
+
3
18
  ## 0.1.0-alpha.40
4
19
 
5
20
  ### Patch Changes
package/docs/changelog.md CHANGED
@@ -6,6 +6,20 @@ The canonical source file in the repository is `CHANGELOG.md`.
6
6
 
7
7
  ## Unreleased
8
8
 
9
+ ## 0.1.0-alpha.41
10
+
11
+ - Fixed package install detection for npm workspace apps that hoist frontend
12
+ dependencies. `forge add auth workos` now recognizes
13
+ `@workos-inc/authkit-react` when it is installed for `web/` but resolved from
14
+ an ancestor `node_modules`.
15
+
16
+ ## 0.1.0-alpha.40
17
+
18
+ - Completed the WorkOS/AuthKit production-like app setup loop, including
19
+ no-dashboard WorkOS setup, browser AuthKit doctor checks, generated Vite React
20
+ AuthKit bridge, production auth readiness checks, and improved dev lifecycle
21
+ diagnostics.
22
+
9
23
  ## 0.1.0-alpha.39
10
24
 
11
25
  - Hardened real WorkOS seed setup: generated `workos-seed.yml` files no longer
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "forgeos",
3
- "version": "0.1.0-alpha.40",
3
+ "version": "0.1.0-alpha.41",
4
4
  "description": "Agent-native application framework and compiler for building Forge apps without a mandatory dashboard.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -1 +1 @@
1
- {"defaultProvider":"local","diagnostics":[],"env":{"deployEnv":"FORGE_DEPLOY_ENV","deployId":"FORGE_DEPLOY_ID","publicReleaseId":"NEXT_PUBLIC_FORGE_RELEASE_ID","releaseId":"FORGE_RELEASE_ID"},"gitSha":"unknown","optionalProviders":["local","sentry-compatible","sentry","glitchtip","bugsink","otel","custom"],"packageName":"forgeos","packageVersion":"0.1.0-alpha.40","releaseId":"forgeos@0.1.0-alpha.40+unknown","schemaVersion":"0.1.0"}
1
+ {"defaultProvider":"local","diagnostics":[],"env":{"deployEnv":"FORGE_DEPLOY_ENV","deployId":"FORGE_DEPLOY_ID","publicReleaseId":"NEXT_PUBLIC_FORGE_RELEASE_ID","releaseId":"FORGE_RELEASE_ID"},"gitSha":"unknown","optionalProviders":["local","sentry-compatible","sentry","glitchtip","bugsink","otel","custom"],"packageName":"forgeos","packageVersion":"0.1.0-alpha.41","releaseId":"forgeos@0.1.0-alpha.41+unknown","schemaVersion":"0.1.0"}
@@ -1,4 +1,4 @@
1
- // @forge-generated generator=0.1.0-alpha.40 input=34767fc77e63b67b94ae661c501b2aa362dd8234ba16c12cf84a55da5e94de28 content=140291417df07bee6f2a7973ba1655fa53741dcb94b0447fc7e46d2a7a8f5d2b
1
+ // @forge-generated generator=0.1.0-alpha.41 input=472a35507fac4f297d64b66cb443aa712ceb113986ac03317278c6464c17cdd4 content=ba31c1269d2cbbe1fdb5c6dc20de16dabe1afbe97d1af2a72346806ad2d17e16
2
2
  export const releaseManifest = {
3
3
  "defaultProvider": "local",
4
4
  "diagnostics": [],
@@ -19,7 +19,7 @@ export const releaseManifest = {
19
19
  "custom"
20
20
  ],
21
21
  "packageName": "forgeos",
22
- "packageVersion": "0.1.0-alpha.40",
23
- "releaseId": "forgeos@0.1.0-alpha.40+unknown",
22
+ "packageVersion": "0.1.0-alpha.41",
23
+ "releaseId": "forgeos@0.1.0-alpha.41+unknown",
24
24
  "schemaVersion": "0.1.0"
25
25
  } as const;
@@ -1,23 +1,21 @@
1
- import { join } from "node:path";
1
+ import { dirname, join, parse } from "node:path";
2
2
  import { nodeFileSystem } from "../fs/index.ts";
3
3
  import { parsePackageName } from "./parse-spec.ts";
4
4
 
5
- export function readInstalledVersion(
6
- specOrName: string,
7
- cwd: string,
8
- ): string | null {
9
- const name = parsePackageName(specOrName);
10
- const segments = name.startsWith("@")
11
- ? name.split("/")
12
- : [name];
13
- const pkgJsonPath = join(cwd, "node_modules", ...segments, "package.json");
5
+ function packageJsonPath(cwd: string, packageName: string): string {
6
+ const segments = packageName.startsWith("@")
7
+ ? packageName.split("/")
8
+ : [packageName];
9
+ return join(cwd, "node_modules", ...segments, "package.json");
10
+ }
14
11
 
15
- if (!nodeFileSystem.exists(pkgJsonPath)) {
12
+ function readVersionAt(path: string): string | null {
13
+ if (!nodeFileSystem.exists(path)) {
16
14
  return null;
17
15
  }
18
16
 
19
17
  try {
20
- const pkg = JSON.parse((nodeFileSystem.readText(pkgJsonPath) ?? "")) as {
18
+ const pkg = JSON.parse((nodeFileSystem.readText(path) ?? "")) as {
21
19
  version?: string;
22
20
  };
23
21
  return typeof pkg.version === "string" ? pkg.version : null;
@@ -25,3 +23,29 @@ export function readInstalledVersion(
25
23
  return null;
26
24
  }
27
25
  }
26
+
27
+ export function readInstalledVersion(
28
+ specOrName: string,
29
+ cwd: string,
30
+ ): string | null {
31
+ const name = parsePackageName(specOrName);
32
+ let current = cwd;
33
+ const root = parse(cwd).root;
34
+
35
+ while (true) {
36
+ const version = readVersionAt(packageJsonPath(current, name));
37
+ if (version) {
38
+ return version;
39
+ }
40
+
41
+ if (current === root) {
42
+ return null;
43
+ }
44
+
45
+ const parent = dirname(current);
46
+ if (parent === current) {
47
+ return null;
48
+ }
49
+ current = parent;
50
+ }
51
+ }
@@ -1,3 +1,3 @@
1
- export const FORGEOS_VERSION = "0.1.0-alpha.40";
1
+ export const FORGEOS_VERSION = "0.1.0-alpha.41";
2
2
  export const GENERATOR_VERSION = FORGEOS_VERSION;
3
3
  export const CLI_VERSION = FORGEOS_VERSION;