@bytetrue/byspace 0.14.5 → 0.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.
Files changed (59) hide show
  1. package/dist/commands/daemon/index.js +16 -0
  2. package/dist/commands/daemon/install-service.d.ts +15 -0
  3. package/dist/commands/daemon/install-service.js +69 -0
  4. package/dist/commands/daemon/local-daemon.d.ts +1 -0
  5. package/dist/commands/daemon/local-daemon.js +1 -1
  6. package/dist/commands/daemon/service/backend.d.ts +16 -0
  7. package/dist/commands/daemon/service/backend.js +50 -0
  8. package/dist/commands/daemon/service/launchd.d.ts +15 -0
  9. package/dist/commands/daemon/service/launchd.js +101 -0
  10. package/dist/commands/daemon/service/service-spec.d.ts +54 -0
  11. package/dist/commands/daemon/service/service-spec.js +95 -0
  12. package/dist/commands/daemon/service/service-status.d.ts +28 -0
  13. package/dist/commands/daemon/service/service-status.js +32 -0
  14. package/dist/commands/daemon/service/systemd.d.ts +22 -0
  15. package/dist/commands/daemon/service/systemd.js +90 -0
  16. package/dist/commands/daemon/service/windows-task.d.ts +12 -0
  17. package/dist/commands/daemon/service/windows-task.js +75 -0
  18. package/dist/commands/daemon/service-status.d.ts +13 -0
  19. package/dist/commands/daemon/service-status.js +30 -0
  20. package/dist/commands/daemon/uninstall-service.d.ts +11 -0
  21. package/dist/commands/daemon/uninstall-service.js +53 -0
  22. package/node_modules/@bytetrue/client/package.json +3 -3
  23. package/node_modules/@bytetrue/highlight/package.json +1 -1
  24. package/node_modules/@bytetrue/protocol/dist/generated/validation/ws-outbound.aot.js +10901 -10861
  25. package/node_modules/@bytetrue/protocol/dist/messages.d.ts +231 -92
  26. package/node_modules/@bytetrue/protocol/dist/messages.js +29 -0
  27. package/node_modules/@bytetrue/protocol/dist/validation/ws-outbound-schema-metadata.d.ts +44 -22
  28. package/node_modules/@bytetrue/protocol/package.json +1 -1
  29. package/node_modules/@bytetrue/relay/package.json +1 -1
  30. package/node_modules/@bytetrue/server/dist/server/server/daemon-config-store.d.ts +11 -0
  31. package/node_modules/@bytetrue/server/dist/server/server/daemon-config-store.js +71 -1
  32. package/node_modules/@bytetrue/server/dist/server/server/session/daemon/daemon-service-install.d.ts +25 -0
  33. package/node_modules/@bytetrue/server/dist/server/server/session/daemon/daemon-service-install.js +182 -0
  34. package/node_modules/@bytetrue/server/dist/server/server/session/daemon/daemon-service-manager.d.ts +21 -0
  35. package/node_modules/@bytetrue/server/dist/server/server/session/daemon/daemon-service-manager.js +154 -0
  36. package/node_modules/@bytetrue/server/dist/server/server/websocket-server.js +2 -0
  37. package/node_modules/@bytetrue/server/dist/server/web-ui/_expo/static/js/web/{index-a02b4240e2d16a2b83c35c3942514c67.js → index-1e1ff7510a612ab12641e5e07e0a7208.js} +62 -61
  38. package/node_modules/@bytetrue/server/dist/server/web-ui/_expo/static/js/web/index-1e1ff7510a612ab12641e5e07e0a7208.js.br +0 -0
  39. package/node_modules/@bytetrue/server/dist/server/web-ui/_expo/static/js/web/index-1e1ff7510a612ab12641e5e07e0a7208.js.gz +0 -0
  40. package/node_modules/@bytetrue/server/dist/server/web-ui/_expo/static/js/web/{indexeddb-attachment-store-d61d5dd974e90216cec99e62c343ffc7.js → indexeddb-attachment-store-1e67472b9640c869a55ff6915d1f7afb.js} +1 -1
  41. package/node_modules/@bytetrue/server/dist/server/web-ui/_expo/static/js/web/{indexeddb-attachment-store-d61d5dd974e90216cec99e62c343ffc7.js.br → indexeddb-attachment-store-1e67472b9640c869a55ff6915d1f7afb.js.br} +0 -0
  42. package/node_modules/@bytetrue/server/dist/server/web-ui/_expo/static/js/web/indexeddb-attachment-store-1e67472b9640c869a55ff6915d1f7afb.js.gz +0 -0
  43. package/node_modules/@bytetrue/server/dist/server/web-ui/_expo/static/js/web/{native-file-attachment-store-df0c0ebe8d233a5a74eddb59a110f00b.js → native-file-attachment-store-63659fda781a1cc594f259795f1cc29f.js} +3 -3
  44. package/node_modules/@bytetrue/server/dist/server/web-ui/_expo/static/js/web/{native-file-attachment-store-df0c0ebe8d233a5a74eddb59a110f00b.js.br → native-file-attachment-store-63659fda781a1cc594f259795f1cc29f.js.br} +0 -0
  45. package/node_modules/@bytetrue/server/dist/server/web-ui/_expo/static/js/web/native-file-attachment-store-63659fda781a1cc594f259795f1cc29f.js.gz +0 -0
  46. package/node_modules/@bytetrue/server/dist/server/web-ui/index.html +1 -1
  47. package/node_modules/@bytetrue/server/dist/server/web-ui/index.html.br +0 -0
  48. package/node_modules/@bytetrue/server/dist/server/web-ui/index.html.gz +0 -0
  49. package/node_modules/@bytetrue/server/dist/src/server/daemon-config-store.js +71 -1
  50. package/node_modules/@bytetrue/server/dist/src/server/session/daemon/daemon-service-install.js +182 -0
  51. package/node_modules/@bytetrue/server/dist/src/server/session/daemon/daemon-service-manager.js +154 -0
  52. package/node_modules/@bytetrue/server/dist/src/server/session/daemon/install-origin.js +64 -0
  53. package/node_modules/@bytetrue/server/dist/src/server/session/daemon/npm-global-cli.js +98 -0
  54. package/node_modules/@bytetrue/server/package.json +15 -5
  55. package/package.json +7 -7
  56. package/node_modules/@bytetrue/server/dist/server/web-ui/_expo/static/js/web/index-a02b4240e2d16a2b83c35c3942514c67.js.br +0 -0
  57. package/node_modules/@bytetrue/server/dist/server/web-ui/_expo/static/js/web/index-a02b4240e2d16a2b83c35c3942514c67.js.gz +0 -0
  58. package/node_modules/@bytetrue/server/dist/server/web-ui/_expo/static/js/web/indexeddb-attachment-store-d61d5dd974e90216cec99e62c343ffc7.js.gz +0 -0
  59. package/node_modules/@bytetrue/server/dist/server/web-ui/_expo/static/js/web/native-file-attachment-store-df0c0ebe8d233a5a74eddb59a110f00b.js.gz +0 -0
@@ -0,0 +1,98 @@
1
+ import { getErrorMessage } from "@bytetrue/protocol/error-utils";
2
+ import { z } from "zod";
3
+ import { execCommand } from "../../../utils/spawn.js";
4
+ export const BYSPACE_CLI_PACKAGE = "@bytetrue/byspace";
5
+ const NPM_PROBE_TIMEOUT_MS = 10000;
6
+ const NPM_INSTALL_TIMEOUT_MS = 300000;
7
+ const NPM_MAX_BUFFER_BYTES = 10 * 1024 * 1024;
8
+ const NpmGlobalListSchema = z
9
+ .object({
10
+ path: z.string().optional(),
11
+ dependencies: z.record(z.string(), z.unknown()).optional(),
12
+ })
13
+ .passthrough();
14
+ const NpmGlobalCliPackageSchema = z
15
+ .object({
16
+ version: z.string(),
17
+ path: z.string(),
18
+ link: z.boolean().optional(),
19
+ })
20
+ .passthrough();
21
+ const CommandErrorSchema = z
22
+ .object({
23
+ code: z.union([z.number(), z.string()]).optional(),
24
+ stdout: z.string().optional(),
25
+ stderr: z.string().optional(),
26
+ })
27
+ .passthrough();
28
+ async function runExternalCommand(command, args, options) {
29
+ try {
30
+ const { stdout, stderr } = await execCommand(command, args, {
31
+ timeout: options?.timeout,
32
+ maxBuffer: options?.maxBuffer,
33
+ });
34
+ return { exitCode: 0, stdout, stderr };
35
+ }
36
+ catch (error) {
37
+ const parsed = CommandErrorSchema.safeParse(error);
38
+ if (!parsed.success) {
39
+ return { exitCode: 1, stdout: "", stderr: getErrorMessage(error) };
40
+ }
41
+ return {
42
+ exitCode: typeof parsed.data.code === "number" ? parsed.data.code : 1,
43
+ stdout: parsed.data.stdout ?? "",
44
+ stderr: parsed.data.stderr || getErrorMessage(error),
45
+ };
46
+ }
47
+ }
48
+ function parseNpmGlobalBySpaceInstall(stdout) {
49
+ let parsedJson;
50
+ try {
51
+ parsedJson = JSON.parse(stdout);
52
+ }
53
+ catch {
54
+ return null;
55
+ }
56
+ const list = NpmGlobalListSchema.safeParse(parsedJson);
57
+ if (!list.success) {
58
+ return null;
59
+ }
60
+ const rawCliPackage = list.data.dependencies?.[BYSPACE_CLI_PACKAGE];
61
+ const cliPackage = NpmGlobalCliPackageSchema.safeParse(rawCliPackage);
62
+ if (!cliPackage.success) {
63
+ return null;
64
+ }
65
+ return {
66
+ version: cliPackage.data.version,
67
+ packagePath: cliPackage.data.path,
68
+ globalRootPath: list.data.path ?? null,
69
+ isLinked: cliPackage.data.link === true,
70
+ };
71
+ }
72
+ export class DefaultNpmGlobalBySpaceCli {
73
+ constructor(runCommand = runExternalCommand) {
74
+ this.runCommand = runCommand;
75
+ }
76
+ async inspect() {
77
+ const result = await this.runCommand("npm", ["-g", "ls", BYSPACE_CLI_PACKAGE, "--json", "--depth=0", "--long"], {
78
+ timeout: NPM_PROBE_TIMEOUT_MS,
79
+ maxBuffer: NPM_MAX_BUFFER_BYTES,
80
+ });
81
+ if (result.exitCode !== 0 && result.stdout.trim().length === 0) {
82
+ throw new Error(result.stderr.trim() || "npm is not available on this host");
83
+ }
84
+ const install = parseNpmGlobalBySpaceInstall(result.stdout);
85
+ if (!install) {
86
+ throw new Error(`${BYSPACE_CLI_PACKAGE} is not installed with npm -g on this host`);
87
+ }
88
+ return install;
89
+ }
90
+ installLatest() {
91
+ return this.runCommand("npm", ["install", "-g", `${BYSPACE_CLI_PACKAGE}@beta`], {
92
+ timeout: NPM_INSTALL_TIMEOUT_MS,
93
+ maxBuffer: NPM_MAX_BUFFER_BYTES,
94
+ });
95
+ }
96
+ }
97
+ export const npmGlobalBySpaceCli = new DefaultNpmGlobalBySpaceCli();
98
+ //# sourceMappingURL=npm-global-cli.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bytetrue/server",
3
- "version": "0.14.5",
3
+ "version": "0.15.0",
4
4
  "description": "BySpace backend server",
5
5
  "files": [
6
6
  "dist/server",
@@ -27,6 +27,16 @@
27
27
  "types": "./dist/server/terminal/agent-hooks/provider-registry.d.ts",
28
28
  "source": "./src/terminal/agent-hooks/provider-registry.ts",
29
29
  "default": "./dist/server/terminal/agent-hooks/provider-registry.js"
30
+ },
31
+ "./daemon-install-origin": {
32
+ "types": "./dist/server/server/session/daemon/install-origin.d.ts",
33
+ "source": "./src/server/session/daemon/install-origin.ts",
34
+ "default": "./dist/server/server/session/daemon/install-origin.js"
35
+ },
36
+ "./npm-global-cli": {
37
+ "types": "./dist/server/server/session/daemon/npm-global-cli.d.ts",
38
+ "source": "./src/server/session/daemon/npm-global-cli.ts",
39
+ "default": "./dist/server/server/session/daemon/npm-global-cli.js"
30
40
  }
31
41
  },
32
42
  "publishConfig": {
@@ -67,10 +77,10 @@
67
77
  "test:e2e:ui": "vitest --ui e2e.test.ts"
68
78
  },
69
79
  "dependencies": {
70
- "@bytetrue/client": "0.14.5",
71
- "@bytetrue/highlight": "0.14.5",
72
- "@bytetrue/protocol": "0.14.5",
73
- "@bytetrue/relay": "0.14.5"
80
+ "@bytetrue/client": "0.15.0",
81
+ "@bytetrue/highlight": "0.15.0",
82
+ "@bytetrue/protocol": "0.15.0",
83
+ "@bytetrue/relay": "0.15.0"
74
84
  },
75
85
  "devDependencies": {
76
86
  "@playwright/test": "^1.56.1",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bytetrue/byspace",
3
- "version": "0.14.5",
3
+ "version": "0.15.0",
4
4
  "description": "BySpace CLI - control your AI coding agents from the command line",
5
5
  "bin": {
6
6
  "byspace": "bin/byspace"
@@ -30,11 +30,11 @@
30
30
  "@agentclientprotocol/sdk": "^0.17.1",
31
31
  "@anthropic-ai/claude-agent-sdk": "0.3.246",
32
32
  "@anthropic-ai/sdk": "^0.104.2",
33
- "@bytetrue/client": "0.14.5",
34
- "@bytetrue/highlight": "0.14.5",
35
- "@bytetrue/protocol": "0.14.5",
36
- "@bytetrue/relay": "0.14.5",
37
- "@bytetrue/server": "0.14.5",
33
+ "@bytetrue/client": "0.15.0",
34
+ "@bytetrue/highlight": "0.15.0",
35
+ "@bytetrue/protocol": "0.15.0",
36
+ "@bytetrue/relay": "0.15.0",
37
+ "@bytetrue/server": "0.15.0",
38
38
  "@clack/prompts": "^1.0.0",
39
39
  "@codemirror/language": "6.12.4",
40
40
  "@codemirror/legacy-modes": "^6.5.3",
@@ -103,7 +103,7 @@
103
103
  "bugs": {
104
104
  "url": "https://github.com/ByteTrue/byspace/issues"
105
105
  },
106
- "gitHead": "aceb1f81000d3a24feb6c0a16b10c5c0c71f359b",
106
+ "gitHead": "de9c1c94037fb5d0508285a46500a77e437229db",
107
107
  "bundledDependencies": [
108
108
  "@bytetrue/highlight",
109
109
  "@bytetrue/relay",