@actalk/inkos 0.6.3 → 1.0.0-canary.18.1

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,3 +1,9 @@
1
1
  import { Command } from "commander";
2
+ export interface StudioLaunchSpec {
3
+ readonly studioEntry: string;
4
+ readonly command: string;
5
+ readonly args: string[];
6
+ }
7
+ export declare function resolveStudioLaunch(root: string): Promise<StudioLaunchSpec | null>;
2
8
  export declare const studioCommand: Command;
3
9
  //# sourceMappingURL=studio.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"studio.d.ts","sourceRoot":"","sources":["../../src/commands/studio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,aAAa,SA+DtB,CAAC"}
1
+ {"version":3,"file":"studio.d.ts","sourceRoot":"","sources":["../../src/commands/studio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;CACzB;AAcD,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAiDxF;AAED,eAAO,MAAM,aAAa,SAiCtB,CAAC"}
@@ -1,50 +1,81 @@
1
1
  import { Command } from "commander";
2
2
  import { findProjectRoot, log, logError } from "../utils.js";
3
3
  import { spawn } from "node:child_process";
4
- import { join } from "node:path";
4
+ import { dirname, join } from "node:path";
5
5
  import { access } from "node:fs/promises";
6
+ async function firstAccessiblePath(paths) {
7
+ for (const path of paths) {
8
+ try {
9
+ await access(path);
10
+ return path;
11
+ }
12
+ catch {
13
+ // continue
14
+ }
15
+ }
16
+ return undefined;
17
+ }
18
+ export async function resolveStudioLaunch(root) {
19
+ const sourceEntry = await firstAccessiblePath([
20
+ join(root, "packages", "studio", "src", "api", "index.ts"),
21
+ join(root, "..", "packages", "studio", "src", "api", "index.ts"),
22
+ join(root, "..", "studio", "src", "api", "index.ts"),
23
+ ]);
24
+ if (sourceEntry) {
25
+ const studioPackageRoot = dirname(dirname(dirname(sourceEntry)));
26
+ const localTsxLoader = await firstAccessiblePath([
27
+ join(studioPackageRoot, "node_modules", "tsx", "dist", "loader.mjs"),
28
+ ]);
29
+ if (localTsxLoader) {
30
+ return {
31
+ studioEntry: sourceEntry,
32
+ command: "node",
33
+ args: ["--import", localTsxLoader, sourceEntry, root],
34
+ };
35
+ }
36
+ const localTsx = await firstAccessiblePath([
37
+ join(studioPackageRoot, "node_modules", ".bin", "tsx"),
38
+ ]);
39
+ if (localTsx) {
40
+ return {
41
+ studioEntry: sourceEntry,
42
+ command: localTsx,
43
+ args: [sourceEntry, root],
44
+ };
45
+ }
46
+ return {
47
+ studioEntry: sourceEntry,
48
+ command: "npx",
49
+ args: ["tsx", sourceEntry, root],
50
+ };
51
+ }
52
+ const builtEntry = await firstAccessiblePath([
53
+ join(root, "node_modules", "@actalk", "inkos-studio", "dist", "api", "index.js"),
54
+ join(root, "node_modules", "@actalk", "inkos-studio", "server.cjs"),
55
+ ]);
56
+ if (builtEntry) {
57
+ return {
58
+ studioEntry: builtEntry,
59
+ command: "node",
60
+ args: [builtEntry, root],
61
+ };
62
+ }
63
+ return null;
64
+ }
6
65
  export const studioCommand = new Command("studio")
7
66
  .description("Start InkOS Studio web workbench")
8
67
  .option("-p, --port <port>", "Server port", "4567")
9
68
  .action(async (opts) => {
10
69
  const root = findProjectRoot();
11
70
  const port = opts.port;
12
- // Look for studio's built server entry
13
- const studioPaths = [
14
- join(root, "node_modules", "@actalk", "inkos-studio", "dist", "api", "index.js"),
15
- join(root, "..", "studio", "src", "api", "index.ts"),
16
- ];
17
- // Try to find tsx or ts-node for running TypeScript
18
- // In dev (monorepo), run studio's TS source directly via tsx
19
- const studioDir = join(root, "..", "studio");
20
- let studioEntry;
21
- try {
22
- await access(join(studioDir, "src", "api", "index.ts"));
23
- studioEntry = join(studioDir, "src", "api", "index.ts");
24
- }
25
- catch {
26
- // Not in monorepo — look for built JS
27
- for (const p of studioPaths) {
28
- try {
29
- await access(p);
30
- studioEntry = p;
31
- break;
32
- }
33
- catch {
34
- // continue
35
- }
36
- }
37
- }
38
- if (!studioEntry) {
71
+ const launch = await resolveStudioLaunch(root);
72
+ if (!launch) {
39
73
  logError("InkOS Studio not found. If you cloned the repo, run:\n" +
40
74
  " cd packages/studio && pnpm install && pnpm build\n" +
41
75
  "Then run 'inkos studio' from the project root.");
42
76
  process.exit(1);
43
77
  }
44
78
  log(`Starting InkOS Studio on http://localhost:${port}`);
45
- const launch = studioEntry.endsWith(".ts")
46
- ? { command: "npx", args: ["tsx", studioEntry] }
47
- : { command: "node", args: [studioEntry] };
48
79
  const child = spawn(launch.command, launch.args, {
49
80
  cwd: root,
50
81
  stdio: "inherit",
@@ -1 +1 @@
1
- {"version":3,"file":"studio.js","sourceRoot":"","sources":["../../src/commands/studio.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"studio.js","sourceRoot":"","sources":["../../src/commands/studio.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@actalk/inkos",
3
- "version": "0.6.3",
3
+ "version": "1.0.0-canary.18.1",
4
4
  "description": "Autonomous AI novel writing CLI agent — 10-agent pipeline that writes, audits, and revises novels with continuity tracking. Supports LitRPG, Progression Fantasy, Isekai, Romantasy, Sci-Fi and more.",
5
5
  "keywords": [
6
6
  "ai-novel-writing",
@@ -34,7 +34,7 @@
34
34
  "directory": "packages/cli"
35
35
  },
36
36
  "dependencies": {
37
- "@actalk/inkos-core": "0.6.3",
37
+ "@actalk/inkos-core": "1.0.0-canary.18.1",
38
38
  "commander": "^13.0.0",
39
39
  "dotenv": "^16.4.0",
40
40
  "epub-gen-memory": "^1.0.10",