@portel/photon 1.18.0 → 1.20.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 (238) hide show
  1. package/dist/auto-ui/beam/routes/api-browse.d.ts.map +1 -1
  2. package/dist/auto-ui/beam/routes/api-browse.js +16 -4
  3. package/dist/auto-ui/beam/routes/api-browse.js.map +1 -1
  4. package/dist/auto-ui/beam/routes/api-config.js +4 -4
  5. package/dist/auto-ui/beam/routes/api-config.js.map +1 -1
  6. package/dist/auto-ui/beam/routes/api-marketplace.d.ts.map +1 -1
  7. package/dist/auto-ui/beam/routes/api-marketplace.js +14 -1
  8. package/dist/auto-ui/beam/routes/api-marketplace.js.map +1 -1
  9. package/dist/auto-ui/beam.d.ts.map +1 -1
  10. package/dist/auto-ui/beam.js +196 -77
  11. package/dist/auto-ui/beam.js.map +1 -1
  12. package/dist/auto-ui/bridge/index.d.ts.map +1 -1
  13. package/dist/auto-ui/bridge/index.js +17 -0
  14. package/dist/auto-ui/bridge/index.js.map +1 -1
  15. package/dist/auto-ui/streamable-http-transport.d.ts +1 -0
  16. package/dist/auto-ui/streamable-http-transport.d.ts.map +1 -1
  17. package/dist/auto-ui/streamable-http-transport.js +64 -16
  18. package/dist/auto-ui/streamable-http-transport.js.map +1 -1
  19. package/dist/auto-ui/types.d.ts +12 -0
  20. package/dist/auto-ui/types.d.ts.map +1 -1
  21. package/dist/auto-ui/types.js.map +1 -1
  22. package/dist/beam-form.bundle.js +49 -6
  23. package/dist/beam-form.bundle.js.map +2 -2
  24. package/dist/beam.bundle.js +2090 -512
  25. package/dist/beam.bundle.js.map +4 -4
  26. package/dist/capability-negotiator.d.ts +67 -0
  27. package/dist/capability-negotiator.d.ts.map +1 -0
  28. package/dist/capability-negotiator.js +104 -0
  29. package/dist/capability-negotiator.js.map +1 -0
  30. package/dist/channel-manager.d.ts +122 -0
  31. package/dist/channel-manager.d.ts.map +1 -0
  32. package/dist/channel-manager.js +266 -0
  33. package/dist/channel-manager.js.map +1 -0
  34. package/dist/claude-code-plugin.js +1 -1
  35. package/dist/cli/commands/beam.d.ts.map +1 -1
  36. package/dist/cli/commands/beam.js +8 -2
  37. package/dist/cli/commands/beam.js.map +1 -1
  38. package/dist/cli/commands/changelog.d.ts +9 -0
  39. package/dist/cli/commands/changelog.d.ts.map +1 -0
  40. package/dist/cli/commands/changelog.js +133 -0
  41. package/dist/cli/commands/changelog.js.map +1 -0
  42. package/dist/cli/commands/maker.d.ts.map +1 -1
  43. package/dist/cli/commands/maker.js +23 -2
  44. package/dist/cli/commands/maker.js.map +1 -1
  45. package/dist/cli/commands/mcp.d.ts.map +1 -1
  46. package/dist/cli/commands/mcp.js +53 -0
  47. package/dist/cli/commands/mcp.js.map +1 -1
  48. package/dist/cli/commands/package.d.ts.map +1 -1
  49. package/dist/cli/commands/package.js +43 -9
  50. package/dist/cli/commands/package.js.map +1 -1
  51. package/dist/cli/commands/run.d.ts.map +1 -1
  52. package/dist/cli/commands/run.js +1 -0
  53. package/dist/cli/commands/run.js.map +1 -1
  54. package/dist/cli/commands/update.d.ts +3 -2
  55. package/dist/cli/commands/update.d.ts.map +1 -1
  56. package/dist/cli/commands/update.js +50 -43
  57. package/dist/cli/commands/update.js.map +1 -1
  58. package/dist/cli/index.d.ts.map +1 -1
  59. package/dist/cli/index.js +16 -2
  60. package/dist/cli/index.js.map +1 -1
  61. package/dist/cli-alias.js +1 -1
  62. package/dist/cli-alias.js.map +1 -1
  63. package/dist/context-store.d.ts +23 -33
  64. package/dist/context-store.d.ts.map +1 -1
  65. package/dist/context-store.js +147 -97
  66. package/dist/context-store.js.map +1 -1
  67. package/dist/context.d.ts +15 -10
  68. package/dist/context.d.ts.map +1 -1
  69. package/dist/context.js +37 -13
  70. package/dist/context.js.map +1 -1
  71. package/dist/daemon/client.d.ts.map +1 -1
  72. package/dist/daemon/client.js +12 -0
  73. package/dist/daemon/client.js.map +1 -1
  74. package/dist/daemon/server.js +34 -51
  75. package/dist/daemon/server.js.map +1 -1
  76. package/dist/daemon/worker-manager.d.ts.map +1 -1
  77. package/dist/daemon/worker-manager.js +21 -7
  78. package/dist/daemon/worker-manager.js.map +1 -1
  79. package/dist/data-migration.d.ts +27 -0
  80. package/dist/data-migration.d.ts.map +1 -0
  81. package/dist/data-migration.js +307 -0
  82. package/dist/data-migration.js.map +1 -0
  83. package/dist/editor-support/docblock-tag-catalog.d.ts.map +1 -1
  84. package/dist/editor-support/docblock-tag-catalog.js +6 -0
  85. package/dist/editor-support/docblock-tag-catalog.js.map +1 -1
  86. package/dist/loader.d.ts +13 -0
  87. package/dist/loader.d.ts.map +1 -1
  88. package/dist/loader.js +169 -22
  89. package/dist/loader.js.map +1 -1
  90. package/dist/marketplace-manager.d.ts +6 -0
  91. package/dist/marketplace-manager.d.ts.map +1 -1
  92. package/dist/marketplace-manager.js +185 -62
  93. package/dist/marketplace-manager.js.map +1 -1
  94. package/dist/namespace-migration.d.ts +1 -0
  95. package/dist/namespace-migration.d.ts.map +1 -1
  96. package/dist/namespace-migration.js +86 -0
  97. package/dist/namespace-migration.js.map +1 -1
  98. package/dist/photon-cli-runner.d.ts.map +1 -1
  99. package/dist/photon-cli-runner.js +47 -21
  100. package/dist/photon-cli-runner.js.map +1 -1
  101. package/dist/photon-doc-extractor.d.ts +1 -0
  102. package/dist/photon-doc-extractor.d.ts.map +1 -1
  103. package/dist/photon-doc-extractor.js +6 -0
  104. package/dist/photon-doc-extractor.js.map +1 -1
  105. package/dist/readme-syncer.d.ts.map +1 -1
  106. package/dist/readme-syncer.js +6 -1
  107. package/dist/readme-syncer.js.map +1 -1
  108. package/dist/resource-server.d.ts +105 -0
  109. package/dist/resource-server.d.ts.map +1 -0
  110. package/dist/resource-server.js +723 -0
  111. package/dist/resource-server.js.map +1 -0
  112. package/dist/serv/auth/jwt.d.ts +2 -0
  113. package/dist/serv/auth/jwt.d.ts.map +1 -1
  114. package/dist/serv/auth/jwt.js +11 -5
  115. package/dist/serv/auth/jwt.js.map +1 -1
  116. package/dist/serv/vault/token-vault.d.ts +2 -0
  117. package/dist/serv/vault/token-vault.d.ts.map +1 -1
  118. package/dist/serv/vault/token-vault.js +6 -0
  119. package/dist/serv/vault/token-vault.js.map +1 -1
  120. package/dist/server.d.ts +30 -119
  121. package/dist/server.d.ts.map +1 -1
  122. package/dist/server.js +252 -1122
  123. package/dist/server.js.map +1 -1
  124. package/dist/shared/audit.d.ts.map +1 -1
  125. package/dist/shared/audit.js +11 -4
  126. package/dist/shared/audit.js.map +1 -1
  127. package/dist/shared/security.d.ts +10 -0
  128. package/dist/shared/security.d.ts.map +1 -1
  129. package/dist/shared/security.js +27 -0
  130. package/dist/shared/security.js.map +1 -1
  131. package/dist/task-executor.d.ts +69 -0
  132. package/dist/task-executor.d.ts.map +1 -0
  133. package/dist/task-executor.js +182 -0
  134. package/dist/task-executor.js.map +1 -0
  135. package/dist/tasks/store.d.ts.map +1 -1
  136. package/dist/tasks/store.js +6 -2
  137. package/dist/tasks/store.js.map +1 -1
  138. package/dist/types/photon-instance.d.ts +50 -0
  139. package/dist/types/photon-instance.d.ts.map +1 -0
  140. package/dist/types/photon-instance.js +9 -0
  141. package/dist/types/photon-instance.js.map +1 -0
  142. package/dist/types/server-types.d.ts +61 -0
  143. package/dist/types/server-types.d.ts.map +1 -0
  144. package/dist/types/server-types.js +8 -0
  145. package/dist/types/server-types.js.map +1 -0
  146. package/dist/version-notify.d.ts +27 -0
  147. package/dist/version-notify.d.ts.map +1 -0
  148. package/dist/version-notify.js +142 -0
  149. package/dist/version-notify.js.map +1 -0
  150. package/package.json +3 -3
  151. package/dist/auto-ui/bridge/openai-shim.d.ts +0 -20
  152. package/dist/auto-ui/bridge/openai-shim.d.ts.map +0 -1
  153. package/dist/auto-ui/bridge/openai-shim.js +0 -231
  154. package/dist/auto-ui/bridge/openai-shim.js.map +0 -1
  155. package/dist/auto-ui/bridge/photon-app.d.ts +0 -162
  156. package/dist/auto-ui/bridge/photon-app.d.ts.map +0 -1
  157. package/dist/auto-ui/bridge/photon-app.js +0 -460
  158. package/dist/auto-ui/bridge/photon-app.js.map +0 -1
  159. package/dist/auto-ui/daemon-tools.d.ts +0 -45
  160. package/dist/auto-ui/daemon-tools.d.ts.map +0 -1
  161. package/dist/auto-ui/daemon-tools.js +0 -581
  162. package/dist/auto-ui/daemon-tools.js.map +0 -1
  163. package/dist/auto-ui/design-system/index.d.ts +0 -21
  164. package/dist/auto-ui/design-system/index.d.ts.map +0 -1
  165. package/dist/auto-ui/design-system/index.js +0 -27
  166. package/dist/auto-ui/design-system/index.js.map +0 -1
  167. package/dist/auto-ui/design-system/transaction-ui.d.ts +0 -70
  168. package/dist/auto-ui/design-system/transaction-ui.d.ts.map +0 -1
  169. package/dist/auto-ui/design-system/transaction-ui.js +0 -982
  170. package/dist/auto-ui/design-system/transaction-ui.js.map +0 -1
  171. package/dist/auto-ui/playground-server.d.ts +0 -7
  172. package/dist/auto-ui/playground-server.d.ts.map +0 -1
  173. package/dist/auto-ui/playground-server.js +0 -840
  174. package/dist/auto-ui/playground-server.js.map +0 -1
  175. package/dist/auto-ui/rendering/components.d.ts +0 -29
  176. package/dist/auto-ui/rendering/components.d.ts.map +0 -1
  177. package/dist/auto-ui/rendering/components.js +0 -1341
  178. package/dist/auto-ui/rendering/components.js.map +0 -1
  179. package/dist/auto-ui/rendering/field-analyzer.d.ts +0 -104
  180. package/dist/auto-ui/rendering/field-analyzer.d.ts.map +0 -1
  181. package/dist/auto-ui/rendering/field-analyzer.js +0 -447
  182. package/dist/auto-ui/rendering/field-analyzer.js.map +0 -1
  183. package/dist/auto-ui/rendering/field-renderers.d.ts +0 -64
  184. package/dist/auto-ui/rendering/field-renderers.d.ts.map +0 -1
  185. package/dist/auto-ui/rendering/field-renderers.js +0 -317
  186. package/dist/auto-ui/rendering/field-renderers.js.map +0 -1
  187. package/dist/auto-ui/rendering/index.d.ts +0 -28
  188. package/dist/auto-ui/rendering/index.d.ts.map +0 -1
  189. package/dist/auto-ui/rendering/index.js +0 -60
  190. package/dist/auto-ui/rendering/index.js.map +0 -1
  191. package/dist/auto-ui/rendering/layout-selector.d.ts +0 -60
  192. package/dist/auto-ui/rendering/layout-selector.d.ts.map +0 -1
  193. package/dist/auto-ui/rendering/layout-selector.js +0 -476
  194. package/dist/auto-ui/rendering/layout-selector.js.map +0 -1
  195. package/dist/markdown-utils.d.ts +0 -8
  196. package/dist/markdown-utils.d.ts.map +0 -1
  197. package/dist/markdown-utils.js +0 -64
  198. package/dist/markdown-utils.js.map +0 -1
  199. package/dist/mcp-client.d.ts +0 -9
  200. package/dist/mcp-client.d.ts.map +0 -1
  201. package/dist/mcp-client.js +0 -11
  202. package/dist/mcp-client.js.map +0 -1
  203. package/dist/mcp-elicitation.d.ts +0 -32
  204. package/dist/mcp-elicitation.d.ts.map +0 -1
  205. package/dist/mcp-elicitation.js +0 -26
  206. package/dist/mcp-elicitation.js.map +0 -1
  207. package/dist/photons/builder-compass.photon.d.ts +0 -167
  208. package/dist/photons/builder-compass.photon.d.ts.map +0 -1
  209. package/dist/photons/builder-compass.photon.js +0 -816
  210. package/dist/photons/builder-compass.photon.js.map +0 -1
  211. package/dist/photons/builder-compass.photon.ts +0 -1129
  212. package/dist/photons/docs/ui/docs.html +0 -441
  213. package/dist/photons/docs.photon.d.ts +0 -237
  214. package/dist/photons/docs.photon.d.ts.map +0 -1
  215. package/dist/photons/docs.photon.js +0 -483
  216. package/dist/photons/docs.photon.js.map +0 -1
  217. package/dist/photons/docs.photon.ts +0 -536
  218. package/dist/photons/slides.photon.d.ts +0 -212
  219. package/dist/photons/slides.photon.d.ts.map +0 -1
  220. package/dist/photons/slides.photon.js +0 -355
  221. package/dist/photons/slides.photon.js.map +0 -1
  222. package/dist/photons/slides.photon.ts +0 -370
  223. package/dist/photons/spreadsheet/ui/spreadsheet.html +0 -779
  224. package/dist/photons/spreadsheet.photon.d.ts +0 -554
  225. package/dist/photons/spreadsheet.photon.d.ts.map +0 -1
  226. package/dist/photons/spreadsheet.photon.js +0 -1050
  227. package/dist/photons/spreadsheet.photon.js.map +0 -1
  228. package/dist/photons/spreadsheet.photon.ts +0 -1239
  229. package/dist/photons/ui/builder-compass.html +0 -1199
  230. package/dist/photons/ui/builder-compass.photon.html +0 -380
  231. package/dist/security-scanner.d.ts +0 -52
  232. package/dist/security-scanner.d.ts.map +0 -1
  233. package/dist/security-scanner.js +0 -181
  234. package/dist/security-scanner.js.map +0 -1
  235. package/dist/shared/performance.d.ts +0 -65
  236. package/dist/shared/performance.d.ts.map +0 -1
  237. package/dist/shared/performance.js +0 -136
  238. package/dist/shared/performance.js.map +0 -1
@@ -2,9 +2,9 @@
2
2
  * Instance Store & Environment Store
3
3
  *
4
4
  * Manages:
5
- * - Instance naming → `photon use <photon> [name]` → ~/.photon/context/{photon}.json
6
- * - Environment vars → `photon set` → ~/.photon/env/{photon}.json
7
- * - Instance state paths → ~/.photon/state/{photon}/{instance}.json
5
+ * - Instance naming → .data/{ns}/{photon}/context.json
6
+ * - Environment vars → .data/{ns}/{photon}/env.json
7
+ * - Instance state paths → .data/{ns}/{photon}/state/{instance}/state.json
8
8
  *
9
9
  * Instance naming is a runtime concept. Every @stateful photon automatically
10
10
  * supports named instances — the runtime manages them. Clients (CLI, Beam,
@@ -13,6 +13,7 @@
13
13
  import * as fs from 'fs';
14
14
  import * as path from 'path';
15
15
  import * as os from 'os';
16
+ import { getPhotonContextPath, getPhotonEnvPath, getPhotonStatePath, getPhotonStateLogPath, getPhotonDataDir, getLegacyContextPath, getLegacyEnvPath, getLegacyStatePath, getLegacyStateLogPath, } from '@portel/photon-core';
16
17
  import { getDefaultContext } from './context.js';
17
18
  import { isNodeError, getErrorMessage } from './shared/error-handler.js';
18
19
  // ══════════════════════════════════════════════════════════════════════════════
@@ -23,15 +24,22 @@ export class InstanceStore {
23
24
  constructor(baseDir = getDefaultContext().baseDir) {
24
25
  this.baseDir = baseDir;
25
26
  }
26
- _path(photonName) {
27
- return path.join(this.baseDir, 'context', `${photonName}.json`);
27
+ _path(photonName, namespace) {
28
+ const ns = namespace || 'local';
29
+ const newPath = getPhotonContextPath(ns, photonName, this.baseDir);
30
+ if (!fs.existsSync(newPath)) {
31
+ const legacyPath = getLegacyContextPath(photonName, this.baseDir);
32
+ if (fs.existsSync(legacyPath))
33
+ return legacyPath;
34
+ }
35
+ return newPath;
28
36
  }
29
37
  /**
30
38
  * Get current instance name for a photon. Returns "" for default.
31
39
  */
32
- getCurrentInstance(photonName) {
40
+ getCurrentInstance(photonName, namespace) {
33
41
  try {
34
- const data = JSON.parse(fs.readFileSync(this._path(photonName), 'utf-8'));
42
+ const data = JSON.parse(fs.readFileSync(this._path(photonName, namespace), 'utf-8'));
35
43
  return data.instance || '';
36
44
  }
37
45
  catch (err) {
@@ -43,18 +51,32 @@ export class InstanceStore {
43
51
  }
44
52
  /**
45
53
  * Set current instance name for a photon. Pass "" for default.
54
+ * Always writes to new .data/ path.
46
55
  */
47
- setCurrentInstance(photonName, instance) {
48
- const filePath = this._path(photonName);
56
+ setCurrentInstance(photonName, instance, namespace) {
57
+ const ns = namespace || 'local';
58
+ const filePath = getPhotonContextPath(ns, photonName, this.baseDir);
49
59
  fs.mkdirSync(path.dirname(filePath), { recursive: true });
50
60
  fs.writeFileSync(filePath, JSON.stringify({ instance }, null, 2));
51
61
  }
52
62
  /**
53
- * List all instances by scanning the state directory.
54
- * Checks both legacy state dir and new namespace-based .state/ dirs.
63
+ * List all instances by scanning state directories.
64
+ * Checks .data/ path first, then legacy paths.
55
65
  */
56
- listInstances(photonName, photonFilePath) {
66
+ listInstances(photonName, photonFilePath, namespace) {
57
67
  const instances = new Set();
68
+ const ns = namespace || 'local';
69
+ // New .data/ state dir
70
+ const dataStateDir = path.join(getPhotonDataDir(ns, photonName, this.baseDir), 'state');
71
+ try {
72
+ for (const entry of fs.readdirSync(dataStateDir, { withFileTypes: true })) {
73
+ if (entry.isDirectory())
74
+ instances.add(entry.name);
75
+ }
76
+ }
77
+ catch {
78
+ // .data/ state dir doesn't exist yet
79
+ }
58
80
  // Legacy state dir: ~/.photon/state/{photon}/
59
81
  const legacyStateDir = path.join(this.baseDir, 'state', photonName);
60
82
  try {
@@ -68,59 +90,83 @@ export class InstanceStore {
68
90
  console.warn(`[photon] Cannot read instances for ${photonName}: ${getErrorMessage(err)}`);
69
91
  }
70
92
  }
71
- // Namespace-aware state dir: <dir>/<photonName>/.state/
93
+ // Old namespace-aware .state/ dir (pre-.data/ consolidation)
72
94
  if (photonFilePath) {
73
95
  const dir = path.dirname(photonFilePath);
74
96
  const baseName = path.basename(photonFilePath).replace(/\.photon\.(ts|js)$/, '');
75
97
  const nsStateDir = path.join(dir, baseName, '.state');
76
98
  try {
77
99
  for (const entry of fs.readdirSync(nsStateDir, { withFileTypes: true })) {
78
- if (entry.isDirectory()) {
79
- // Each subdirectory is an instance
100
+ if (entry.isDirectory())
80
101
  instances.add(entry.name);
81
- }
82
102
  }
83
103
  }
84
104
  catch {
85
- // .state/ dir doesn't exist yet — normal
105
+ // .state/ dir doesn't exist
86
106
  }
87
107
  }
88
108
  return [...instances];
89
109
  }
90
110
  /**
91
111
  * List instances sorted by modification time (most recent first).
92
- * Also checks the legacy boards directory for photons like kanban.
93
112
  */
94
- listInstancesByMtime(photonName) {
95
- // Check content dirs first (actual data), then state dir (selection tracking).
96
- // The state dir is updated by _use (instance switching), so its mtime reflects
97
- // when an instance was last selected, not when content was last modified.
113
+ listInstancesByMtime(photonName, namespace) {
114
+ const ns = namespace || 'local';
115
+ // Check .data/ state dir first, then legacy dirs
98
116
  const candidateDirs = [
117
+ path.join(getPhotonDataDir(ns, photonName, this.baseDir), 'state'),
99
118
  path.join(this.baseDir, photonName, 'boards'),
100
119
  path.join(this.baseDir, 'state', photonName),
101
120
  ];
102
121
  for (const dir of candidateDirs) {
103
122
  try {
104
- const files = fs.readdirSync(dir);
105
- const jsonFiles = files.filter((f) => f.endsWith('.json') && !f.endsWith('.archive.jsonl'));
106
- if (jsonFiles.length === 0)
107
- continue;
108
- const withStat = jsonFiles.map((f) => {
109
- const stat = fs.statSync(path.join(dir, f));
110
- return {
111
- name: f.replace('.json', ''),
112
- mtime: stat.mtimeMs,
113
- createdAt: stat.birthtime.toISOString(),
114
- modifiedAt: stat.mtime.toISOString(),
115
- };
116
- });
117
- withStat.sort((a, b) => b.mtime - a.mtime);
118
- const instances = withStat.map((f) => f.name);
119
- const metadata = {};
120
- for (const entry of withStat) {
121
- metadata[entry.name] = { createdAt: entry.createdAt, modifiedAt: entry.modifiedAt };
123
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
124
+ // New layout: directories containing state.json
125
+ const dirEntries = entries.filter((e) => e.isDirectory());
126
+ if (dirEntries.length > 0) {
127
+ const withStat = dirEntries
128
+ .filter((e) => fs.existsSync(path.join(dir, e.name, 'state.json')))
129
+ .map((e) => {
130
+ const stat = fs.statSync(path.join(dir, e.name, 'state.json'));
131
+ return {
132
+ name: e.name,
133
+ mtime: stat.mtimeMs,
134
+ createdAt: stat.birthtime.toISOString(),
135
+ modifiedAt: stat.mtime.toISOString(),
136
+ };
137
+ });
138
+ if (withStat.length > 0) {
139
+ withStat.sort((a, b) => b.mtime - a.mtime);
140
+ const instances = withStat.map((f) => f.name);
141
+ const metadata = {};
142
+ for (const entry of withStat) {
143
+ metadata[entry.name] = { createdAt: entry.createdAt, modifiedAt: entry.modifiedAt };
144
+ }
145
+ return { instances, autoInstance: instances[0] || 'default', metadata };
146
+ }
147
+ }
148
+ // Legacy layout: .json files
149
+ const jsonFiles = entries.filter((e) => (e.isFile() || e.isSymbolicLink()) &&
150
+ e.name.endsWith('.json') &&
151
+ !e.name.endsWith('.archive.jsonl'));
152
+ if (jsonFiles.length > 0) {
153
+ const withStat = jsonFiles.map((f) => {
154
+ const stat = fs.statSync(path.join(dir, f.name));
155
+ return {
156
+ name: f.name.replace('.json', ''),
157
+ mtime: stat.mtimeMs,
158
+ createdAt: stat.birthtime.toISOString(),
159
+ modifiedAt: stat.mtime.toISOString(),
160
+ };
161
+ });
162
+ withStat.sort((a, b) => b.mtime - a.mtime);
163
+ const instances = withStat.map((f) => f.name);
164
+ const metadata = {};
165
+ for (const entry of withStat) {
166
+ metadata[entry.name] = { createdAt: entry.createdAt, modifiedAt: entry.modifiedAt };
167
+ }
168
+ return { instances, autoInstance: instances[0] || 'default', metadata };
122
169
  }
123
- return { instances, autoInstance: instances[0] || 'default', metadata };
124
170
  }
125
171
  catch {
126
172
  // Dir doesn't exist, try next
@@ -143,9 +189,6 @@ export class CLISessionStore {
143
189
  }
144
190
  /**
145
191
  * Get a stable session key for the current terminal.
146
- * Uses the controlling terminal (TTY) name — consistent across subshells,
147
- * pipes, and $() command substitutions within the same terminal window.
148
- * Falls back to PPID for non-TTY environments.
149
192
  */
150
193
  static _getSessionKey() {
151
194
  try {
@@ -187,12 +230,19 @@ export class EnvStore {
187
230
  constructor(baseDir = getDefaultContext().baseDir) {
188
231
  this.baseDir = baseDir;
189
232
  }
190
- _path(photonName) {
191
- return path.join(this.baseDir, 'env', `${photonName}.json`);
233
+ _path(photonName, namespace) {
234
+ const ns = namespace || 'local';
235
+ const newPath = getPhotonEnvPath(ns, photonName, this.baseDir);
236
+ if (!fs.existsSync(newPath)) {
237
+ const legacyPath = getLegacyEnvPath(photonName, this.baseDir);
238
+ if (fs.existsSync(legacyPath))
239
+ return legacyPath;
240
+ }
241
+ return newPath;
192
242
  }
193
- read(photonName) {
243
+ read(photonName, namespace) {
194
244
  try {
195
- return JSON.parse(fs.readFileSync(this._path(photonName), 'utf-8'));
245
+ return JSON.parse(fs.readFileSync(this._path(photonName, namespace), 'utf-8'));
196
246
  }
197
247
  catch (err) {
198
248
  if (isNodeError(err, 'ENOENT'))
@@ -201,28 +251,31 @@ export class EnvStore {
201
251
  return {};
202
252
  }
203
253
  }
204
- write(photonName, values) {
205
- const filePath = this._path(photonName);
254
+ /**
255
+ * Write env vars. Always writes to new .data/ path.
256
+ */
257
+ write(photonName, values, namespace) {
258
+ const ns = namespace || 'local';
259
+ const filePath = getPhotonEnvPath(ns, photonName, this.baseDir);
206
260
  fs.mkdirSync(path.dirname(filePath), { recursive: true });
207
- const existing = this.read(photonName);
261
+ const existing = this.read(photonName, namespace);
208
262
  const merged = { ...existing, ...values };
209
263
  fs.writeFileSync(filePath, JSON.stringify(merged, null, 2));
210
264
  }
211
265
  /**
212
266
  * Get the value of a specific env param.
213
- * Checks stored values first, then process.env with the given envVarName.
214
267
  */
215
- resolve(photonName, paramName, envVarName) {
216
- const stored = this.read(photonName);
268
+ resolve(photonName, paramName, envVarName, namespace) {
269
+ const stored = this.read(photonName, namespace);
217
270
  if (stored[paramName] !== undefined)
218
271
  return stored[paramName];
219
272
  return process.env[envVarName];
220
273
  }
221
274
  /**
222
- * Get masked values for display (hide middle of strings).
275
+ * Get masked values for display.
223
276
  */
224
- getMasked(photonName) {
225
- const values = this.read(photonName);
277
+ getMasked(photonName, namespace) {
278
+ const values = this.read(photonName, namespace);
226
279
  const masked = {};
227
280
  for (const [key, val] of Object.entries(values)) {
228
281
  if (val.length > 6) {
@@ -236,60 +289,57 @@ export class EnvStore {
236
289
  }
237
290
  }
238
291
  // ══════════════════════════════════════════════════════════════════════════════
239
- // Instance State Path
292
+ // Instance State Path — resolves to .data/ with legacy fallback
240
293
  // ══════════════════════════════════════════════════════════════════════════════
241
294
  /**
242
295
  * Get the state file path for a photon instance.
243
- *
244
- * When photonFilePath is provided (namespace-aware), resolves to:
245
- * <dir>/<photonName>/.state/<instance>/state.json
246
- * Otherwise (legacy), resolves to:
247
- * ~/.photon/state/{photon}/{instance}.json
248
- *
249
- * Falls back to legacy path if the new path doesn't exist yet but legacy does.
296
+ * New: .data/{ns}/{photon}/state/{instance}/state.json
297
+ * Falls back to legacy paths if new path doesn't exist yet.
250
298
  */
251
- export function getInstanceStatePath(photonName, instance, baseDir, photonFilePath) {
299
+ export function getInstanceStatePath(photonName, instance, baseDir, photonFilePath, namespace) {
252
300
  const name = instance || 'default';
253
- if (photonFilePath) {
254
- // Namespace-aware path: <dir>/<photonName>/.state/<instance>/state.json
255
- const dir = path.dirname(photonFilePath);
256
- const photonBaseName = path.basename(photonFilePath).replace(/\.photon\.(ts|js)$/, '');
257
- const newPath = path.join(dir, photonBaseName, '.state', name, 'state.json');
258
- // Check if legacy path has existing data to migrate from
259
- const legacyDir = baseDir || getDefaultContext().baseDir;
260
- const legacyPath = path.join(legacyDir, 'state', photonName, `${name}.json`);
261
- if (!fs.existsSync(path.dirname(newPath)) && fs.existsSync(legacyPath)) {
262
- return legacyPath; // Use legacy path until migration
301
+ const ns = namespace || 'local';
302
+ const base = baseDir || getDefaultContext().baseDir;
303
+ const newPath = getPhotonStatePath(ns, photonName, name, base);
304
+ // Check legacy paths in order of preference
305
+ if (!fs.existsSync(path.dirname(newPath))) {
306
+ // Old namespace-aware: <dir>/<photonName>/.state/<instance>/state.json
307
+ if (photonFilePath) {
308
+ const dir = path.dirname(photonFilePath);
309
+ const photonBaseName = path.basename(photonFilePath).replace(/\.photon\.(ts|js)$/, '');
310
+ const oldNsPath = path.join(dir, photonBaseName, '.state', name, 'state.json');
311
+ if (fs.existsSync(oldNsPath))
312
+ return oldNsPath;
263
313
  }
264
- return newPath;
314
+ // Legacy flat: ~/.photon/state/{photon}/{instance}.json
315
+ const legacyPath = getLegacyStatePath(photonName, name, base);
316
+ if (fs.existsSync(legacyPath))
317
+ return legacyPath;
265
318
  }
266
- // Legacy path
267
- const dir = baseDir || getDefaultContext().baseDir;
268
- return path.join(dir, 'state', photonName, `${name}.json`);
319
+ return newPath;
269
320
  }
270
321
  /**
271
322
  * Get the event log path for a photon instance.
272
- *
273
- * When photonFilePath is provided (namespace-aware), resolves to:
274
- * <dir>/<photonName>/.state/<instance>/state.log
275
- * Otherwise (legacy), resolves to:
276
- * ~/.photon/state/{photon}/{instance}.log
323
+ * New: .data/{ns}/{photon}/state/{instance}/state.log
277
324
  */
278
- export function getInstanceLogPath(photonName, instance, baseDir, photonFilePath) {
325
+ export function getInstanceLogPath(photonName, instance, baseDir, photonFilePath, namespace) {
279
326
  const name = instance || 'default';
280
- if (photonFilePath) {
281
- const dir = path.dirname(photonFilePath);
282
- const photonBaseName = path.basename(photonFilePath).replace(/\.photon\.(ts|js)$/, '');
283
- const newPath = path.join(dir, photonBaseName, '.state', name, 'state.log');
284
- const legacyDir = baseDir || getDefaultContext().baseDir;
285
- const legacyPath = path.join(legacyDir, 'state', photonName, `${name}.log`);
286
- if (!fs.existsSync(path.dirname(newPath)) && fs.existsSync(legacyPath)) {
287
- return legacyPath;
327
+ const ns = namespace || 'local';
328
+ const base = baseDir || getDefaultContext().baseDir;
329
+ const newPath = getPhotonStateLogPath(ns, photonName, name, base);
330
+ if (!fs.existsSync(path.dirname(newPath))) {
331
+ if (photonFilePath) {
332
+ const dir = path.dirname(photonFilePath);
333
+ const photonBaseName = path.basename(photonFilePath).replace(/\.photon\.(ts|js)$/, '');
334
+ const oldNsPath = path.join(dir, photonBaseName, '.state', name, 'state.log');
335
+ if (fs.existsSync(oldNsPath))
336
+ return oldNsPath;
288
337
  }
289
- return newPath;
338
+ const legacyPath = getLegacyStateLogPath(photonName, name, base);
339
+ if (fs.existsSync(legacyPath))
340
+ return legacyPath;
290
341
  }
291
- const dir = baseDir || getDefaultContext().baseDir;
292
- return path.join(dir, 'state', photonName, `${name}.log`);
342
+ return newPath;
293
343
  }
294
344
  export function getEnvParams(params) {
295
345
  return params.filter((p) => p.isPrimitive && !p.hasDefault);
@@ -1 +1 @@
1
- {"version":3,"file":"context-store.js","sourceRoot":"","sources":["../src/context-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-store.js","sourceRoot":"","sources":["../src/context-store.ts"],"names":[],"mappings":"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"}
package/dist/context.d.ts CHANGED
@@ -5,29 +5,34 @@
5
5
  * process.env.PHOTON_DIR, and per-constructor baseDir parameters.
6
6
  *
7
7
  * Design:
8
- * - socketPath/pidFile/logFile ALWAYS resolve to ~/.photon/ (one global daemon)
9
- * - baseDir/stateDir/cacheDir/configFile respect PHOTON_DIR env var overrides
8
+ * - All runtime data lives under {baseDir}/.data/
9
+ * - Daemon socket/pid/log ALWAYS resolve to ~/.photon/.data/ (one global daemon)
10
+ * - baseDir/dataDir/cacheDir/configFile respect PHOTON_DIR env var overrides
10
11
  * - Immutable after creation — no runtime mutations
11
12
  */
12
13
  export interface PhotonContext {
13
14
  /** Base directory for photon files (~/.photon or PHOTON_DIR override) */
14
15
  readonly baseDir: string;
15
- /** State directory (baseDir/state) */
16
- readonly stateDir: string;
17
- /** Cache directory (baseDir/.cache) */
16
+ /** Root of all runtime data (baseDir/.data) */
17
+ readonly dataDir: string;
18
+ /** Cache directory (baseDir/.data/.cache) */
18
19
  readonly cacheDir: string;
19
- /** Config file path (baseDir/config.json) */
20
+ /** Config file path (baseDir/config.json) — committable, not inside .data */
20
21
  readonly configFile: string;
21
- /** Daemon socket — ALWAYS ~/.photon/daemon.sock (global daemon) */
22
+ /** Daemon socket — ALWAYS ~/.photon/.data/daemon.sock (global daemon) */
22
23
  readonly socketPath: string;
23
- /** Daemon PID file — ALWAYS ~/.photon/daemon.pid */
24
+ /** Daemon PID file — ALWAYS ~/.photon/.data/daemon.pid */
24
25
  readonly pidFile: string;
25
- /** Daemon log file — ALWAYS ~/.photon/daemon.log */
26
+ /** Daemon log file — ALWAYS ~/.photon/.data/daemon.log */
26
27
  readonly logFile: string;
28
+ /**
29
+ * @deprecated Use dataDir instead. State is now per-photon inside .data/
30
+ */
31
+ readonly stateDir: string;
27
32
  }
28
33
  /**
29
34
  * Get the default PhotonContext.
30
- * Respects PHOTON_DIR env var; falls back to ~/.photon.
35
+ * Priority: cwd (if it contains .photon.ts files) > PHOTON_DIR env var > ~/.photon.
31
36
  *
32
37
  * Not cached — env var may change between calls (e.g. tests).
33
38
  */
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,MAAM,WAAW,aAAa;IAC5B,yEAAyE;IACzE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,sCAAsC;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,uCAAuC;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,6CAA6C;IAC7C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,mEAAmE;IACnE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,oDAAoD;IACpD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAKD;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,aAAa,CAkBjD"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAaH,MAAM,WAAW,aAAa;IAC5B,yEAAyE;IACzE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,6CAA6C;IAC7C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,6EAA6E;IAC7E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,yEAAyE;IACzE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAiBD;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,aAAa,CAwBjD"}
package/dist/context.js CHANGED
@@ -5,34 +5,58 @@
5
5
  * process.env.PHOTON_DIR, and per-constructor baseDir parameters.
6
6
  *
7
7
  * Design:
8
- * - socketPath/pidFile/logFile ALWAYS resolve to ~/.photon/ (one global daemon)
9
- * - baseDir/stateDir/cacheDir/configFile respect PHOTON_DIR env var overrides
8
+ * - All runtime data lives under {baseDir}/.data/
9
+ * - Daemon socket/pid/log ALWAYS resolve to ~/.photon/.data/ (one global daemon)
10
+ * - baseDir/dataDir/cacheDir/configFile respect PHOTON_DIR env var overrides
10
11
  * - Immutable after creation — no runtime mutations
11
12
  */
12
13
  import * as path from 'path';
13
14
  import * as os from 'os';
15
+ import * as fs from 'fs';
16
+ import { getDataRoot, getCacheDir, getDaemonSocketPath, getDaemonPidPath, getDaemonLogPath, } from '@portel/photon-core';
14
17
  /** Default photon directory: ~/.photon */
15
18
  const HOME_PHOTON_DIR = path.join(os.homedir(), '.photon');
19
+ /**
20
+ * Check if a directory contains .photon.ts files (is a marketplace or photon workspace).
21
+ */
22
+ function isPhotonDirectory(dir) {
23
+ try {
24
+ const entries = fs.readdirSync(dir);
25
+ return entries.some((e) => e.endsWith('.photon.ts'));
26
+ }
27
+ catch {
28
+ return false;
29
+ }
30
+ }
16
31
  /**
17
32
  * Get the default PhotonContext.
18
- * Respects PHOTON_DIR env var; falls back to ~/.photon.
33
+ * Priority: cwd (if it contains .photon.ts files) > PHOTON_DIR env var > ~/.photon.
19
34
  *
20
35
  * Not cached — env var may change between calls (e.g. tests).
21
36
  */
22
37
  export function getDefaultContext() {
23
- const dirOverride = process.env.PHOTON_DIR;
24
- const baseDir = dirOverride ? path.resolve(dirOverride) : HOME_PHOTON_DIR;
25
- const socketPath = process.platform === 'win32'
26
- ? '\\\\.\\pipe\\photon-daemon'
27
- : path.join(HOME_PHOTON_DIR, 'daemon.sock');
38
+ const cwd = process.cwd();
39
+ let baseDir;
40
+ if (isPhotonDirectory(cwd)) {
41
+ // cwd is a marketplace or photon workspace — use it and update env for downstream
42
+ baseDir = cwd;
43
+ process.env.PHOTON_DIR = cwd;
44
+ }
45
+ else if (process.env.PHOTON_DIR) {
46
+ baseDir = path.resolve(process.env.PHOTON_DIR);
47
+ }
48
+ else {
49
+ baseDir = HOME_PHOTON_DIR;
50
+ }
28
51
  return Object.freeze({
29
52
  baseDir,
30
- stateDir: path.join(baseDir, 'state'),
31
- cacheDir: path.join(baseDir, '.cache'),
53
+ dataDir: getDataRoot(baseDir),
54
+ stateDir: path.join(baseDir, 'state'), // legacy compat
55
+ cacheDir: getCacheDir(baseDir),
32
56
  configFile: path.join(baseDir, 'config.json'),
33
- socketPath,
34
- pidFile: path.join(HOME_PHOTON_DIR, 'daemon.pid'),
35
- logFile: path.join(HOME_PHOTON_DIR, 'daemon.log'),
57
+ socketPath: getDaemonSocketPath(),
58
+ pidFile: getDaemonPidPath(),
59
+ logFile: getDaemonLogPath(),
36
60
  });
37
61
  }
38
62
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAmBzB,0CAA0C;AAC1C,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IAC3C,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;IAE1E,MAAM,UAAU,GACd,OAAO,CAAC,QAAQ,KAAK,OAAO;QAC1B,CAAC,CAAC,4BAA4B;QAC9B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;IAEhD,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,OAAO;QACP,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;QACrC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;QACtC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC;QAC7C,UAAU;QACV,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC;QACjD,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC;KAClD,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EACL,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAwB7B,0CAA0C;AAC1C,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AAE3D;;GAEG;AACH,SAAS,iBAAiB,CAAC,GAAW;IACpC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACpC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,IAAI,OAAe,CAAC;IAEpB,IAAI,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,kFAAkF;QAClF,OAAO,GAAG,GAAG,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;IAC/B,CAAC;SAAM,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QAClC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,eAAe,CAAC;IAC5B,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,OAAO;QACP,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC;QAC7B,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,gBAAgB;QACvD,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC;QAC9B,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC;QAC7C,UAAU,EAAE,mBAAmB,EAAE;QACjC,OAAO,EAAE,gBAAgB,EAAE;QAC3B,OAAO,EAAE,gBAAgB,EAAE;KAC5B,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/daemon/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/daemon/client.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@
5
5
  * Sends commands via Unix socket / named pipe and receives results
6
6
  * Supports bidirectional prompts - daemon can request user input
7
7
  */
8
+ import * as fs from 'fs';
8
9
  import * as net from 'net';
9
10
  import * as crypto from 'crypto';
10
11
  import * as readline from 'readline';
@@ -976,6 +977,9 @@ export async function listJobs(photonName) {
976
977
  */
977
978
  export async function pingDaemon(photonName) {
978
979
  const socketPath = getGlobalSocketPath();
980
+ if (!fs.existsSync(socketPath)) {
981
+ return false;
982
+ }
979
983
  const requestId = `ping_${Date.now()}`;
980
984
  return new Promise((resolve) => {
981
985
  const client = net.createConnection(socketPath);
@@ -1021,6 +1025,11 @@ export async function pingDaemon(photonName) {
1021
1025
  */
1022
1026
  export async function queryDaemonStatus() {
1023
1027
  const socketPath = getGlobalSocketPath();
1028
+ // Bail early if socket doesn't exist — avoids Bun crashing on ENOENT
1029
+ // before the 'error' event listener can be attached
1030
+ if (!fs.existsSync(socketPath)) {
1031
+ return null;
1032
+ }
1024
1033
  const requestId = `status_${Date.now()}`;
1025
1034
  return new Promise((resolve) => {
1026
1035
  const client = net.createConnection(socketPath);
@@ -1070,6 +1079,9 @@ export async function queryDaemonStatus() {
1070
1079
  */
1071
1080
  export async function clearInstances(photonName, workingDir) {
1072
1081
  const socketPath = getGlobalSocketPath();
1082
+ if (!fs.existsSync(socketPath)) {
1083
+ return false;
1084
+ }
1073
1085
  const requestId = `clearinst_${Date.now()}_${Math.random().toString(36).slice(2)}`;
1074
1086
  return new Promise((resolve) => {
1075
1087
  const client = net.createConnection(socketPath);