@mind-harness/mh-workspace 0.1.3 → 0.1.5

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/lib/index.js CHANGED
@@ -250,12 +250,14 @@ let MhWorkspaceService = (() => {
250
250
  let _syncProjects_decorators;
251
251
  let _ensureWorkspace_decorators;
252
252
  let _openPersonWindow_decorators;
253
+ let _startBrowser_decorators;
253
254
  return class MhWorkspaceService extends _classSuper {
254
255
  static {
255
256
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
256
257
  _syncProjects_decorators = [Remote];
257
258
  _ensureWorkspace_decorators = [Remote];
258
259
  _openPersonWindow_decorators = [Remote];
260
+ _startBrowser_decorators = [Remote];
259
261
  __esDecorate(this, null, _syncProjects_decorators, {
260
262
  kind: "method",
261
263
  name: "syncProjects",
@@ -289,6 +291,17 @@ let MhWorkspaceService = (() => {
289
291
  },
290
292
  metadata: _metadata
291
293
  }, null, _instanceExtraInitializers);
294
+ __esDecorate(this, null, _startBrowser_decorators, {
295
+ kind: "method",
296
+ name: "startBrowser",
297
+ static: false,
298
+ private: false,
299
+ access: {
300
+ has: (obj) => "startBrowser" in obj,
301
+ get: (obj) => obj.startBrowser
302
+ },
303
+ metadata: _metadata
304
+ }, null, _instanceExtraInitializers);
292
305
  if (_metadata) Object.defineProperty(this, Symbol.metadata, {
293
306
  enumerable: true,
294
307
  configurable: true,
@@ -370,8 +383,26 @@ let MhWorkspaceService = (() => {
370
383
  const target = url === void 0 || url === "" ? home : url;
371
384
  if (target !== home && !this.listed.has(target)) throw unlisted(target);
372
385
  if (!isWebUrl(target)) throw unreadable("address is not http or https");
373
- await this.browser().open("person", [{ url: target }], signal);
374
- await this.browser().bringToFront("person");
386
+ let views;
387
+ try {
388
+ views = await this.browser().open("person", [{ url: target }], signal);
389
+ await this.browser().bringToFront("person");
390
+ } catch (error) {
391
+ if (error instanceof RemoteError) throw error;
392
+ throw unreadable(errorText(error));
393
+ }
394
+ const failed = views.find((view) => !("tab" in view) && typeof view.reason === "string");
395
+ if (failed !== void 0) throw unreadable(failed.reason);
396
+ }
397
+ /** The person pressed retry. A browser that exited starts again before the list is read. */
398
+ async startBrowser(signal) {
399
+ await this.ready;
400
+ if (signal.aborted) throw cancelled();
401
+ try {
402
+ await this.browser().startForPerson();
403
+ } catch (error) {
404
+ throw unreadable(errorText(error));
405
+ }
375
406
  }
376
407
  /**
377
408
  * Keep the Session's Project context current and, on the first step of its
@@ -13,6 +13,8 @@ let _mind_harness_mh_workspace_mhWorkspace_openPersonWindow_parameter_0$schema$v
13
13
  const _mind_harness_mh_workspace_mhWorkspace_openPersonWindow_parameter_0$schema = () => (_mind_harness_mh_workspace_mhWorkspace_openPersonWindow_parameter_0$schema$value ??= z.union([z.undefined(), z.string()]))
14
14
  let _mind_harness_mh_workspace_mhWorkspace_openPersonWindow_result$schema$value
15
15
  const _mind_harness_mh_workspace_mhWorkspace_openPersonWindow_result$schema = () => (_mind_harness_mh_workspace_mhWorkspace_openPersonWindow_result$schema$value ??= z.void())
16
+ let _mind_harness_mh_workspace_mhWorkspace_startBrowser_result$schema$value
17
+ const _mind_harness_mh_workspace_mhWorkspace_startBrowser_result$schema = () => (_mind_harness_mh_workspace_mhWorkspace_startBrowser_result$schema$value ??= z.void())
16
18
  let _mind_harness_mh_workspace_mhWorkspace_syncProjects_result$schema$value
17
19
  const _mind_harness_mh_workspace_mhWorkspace_syncProjects_result$schema = () => (_mind_harness_mh_workspace_mhWorkspace_syncProjects_result$schema$value ??= z.object({
18
20
  'projects': z.array(z.object({
@@ -62,7 +64,7 @@ const $remote = createTypertRemoteInfo({
62
64
  create: _mind_harness_mh_workspace_mhWorkspace_ensureWorkspace_result$schema,
63
65
  jsonSchema: {"type":"object","properties":{"workspaceId":{"type":"string"}},"required":["workspaceId"],"additionalProperties":true},
64
66
  },
65
- sourceLocation: {"file":"packages/mh-workspace/src/service.ts","line":177,"column":9},
67
+ sourceLocation: {"file":"packages/mh-workspace/src/service.ts","line":178,"column":9},
66
68
  },
67
69
  'mhWorkspace/openPersonWindow': {
68
70
  service: 'mhWorkspace',
@@ -93,7 +95,22 @@ const $remote = createTypertRemoteInfo({
93
95
  create: _mind_harness_mh_workspace_mhWorkspace_openPersonWindow_result$schema,
94
96
  jsonSchemaError: 'typert tool schema: unsupported void value',
95
97
  },
96
- sourceLocation: {"file":"packages/mh-workspace/src/service.ts","line":186,"column":9},
98
+ sourceLocation: {"file":"packages/mh-workspace/src/service.ts","line":187,"column":9},
99
+ },
100
+ 'mhWorkspace/startBrowser': {
101
+ service: 'mhWorkspace',
102
+ description: 'The person pressed retry. A browser that exited starts again before the list is read.',
103
+ invocation: { kind: 'direct' },
104
+ parameters: [
105
+ ],
106
+ cancellation: { parameter: 'signal' },
107
+ result: {
108
+ mode: 'strict',
109
+ typeSymbol: '@mind-harness/mh-workspace#mhWorkspace/startBrowser:result',
110
+ create: _mind_harness_mh_workspace_mhWorkspace_startBrowser_result$schema,
111
+ jsonSchemaError: 'typert tool schema: unsupported void value',
112
+ },
113
+ sourceLocation: {"file":"packages/mh-workspace/src/service.ts","line":211,"column":9},
97
114
  },
98
115
  'mhWorkspace/syncProjects': {
99
116
  service: 'mhWorkspace',
@@ -108,7 +125,7 @@ const $remote = createTypertRemoteInfo({
108
125
  create: _mind_harness_mh_workspace_mhWorkspace_syncProjects_result$schema,
109
126
  jsonSchema: {"type":"object","properties":{"projects":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"name":{"type":"string"},"projectId":{"type":"string"},"workspaceId":{"type":"string"},"removed":{"type":"boolean","const":true,"description":"The person removed this Project's Workspace. It is not in the sidebar."}},"required":["url","name","projectId"],"additionalProperties":true}},"signedIn":{"type":"boolean","description":"The Memory home names a viewer. Signed out, the list holds only what is public."},"selfLogin":{"type":"boolean"}},"required":["projects","signedIn","selfLogin"],"additionalProperties":true},
110
127
  },
111
- sourceLocation: {"file":"packages/mh-workspace/src/service.ts","line":163,"column":9},
128
+ sourceLocation: {"file":"packages/mh-workspace/src/service.ts","line":164,"column":9},
112
129
  },
113
130
  },
114
131
  }, z)
@@ -148,6 +165,13 @@ export const TYPERT = {
148
165
  "name": "openPersonWindow",
149
166
  "signature": "@Remote async openPersonWindow(url?: string, signal?: AbortSignal): Promise<void>"
150
167
  },
168
+ {
169
+ "kind": "method",
170
+ "name": "startBrowser",
171
+ "signature": "@Remote async startBrowser(signal: AbortSignal): Promise<void>",
172
+ "summary": "The person pressed retry.",
173
+ "jsDoc": "/** The person pressed retry. A browser that exited starts again before the list is read. */"
174
+ },
151
175
  {
152
176
  "kind": "method",
153
177
  "name": "prepareStep",
@@ -10,11 +10,13 @@ declare module '@deepseek-ai/dsh-typert-protocol' {
10
10
  interface TypertRemoteNamespace$6d68576f726b7370616365 {
11
11
  ensureWorkspace: (projectUrl: string, signal?: AbortSignal) => Promise<RemoteResult<{ workspaceId: string; }>>
12
12
  openPersonWindow: (url?: string, signal?: AbortSignal) => Promise<RemoteResult<void>>
13
+ startBrowser: (signal?: AbortSignal) => Promise<RemoteResult<void>>
13
14
  syncProjects: (signal?: AbortSignal) => Promise<RemoteResult<ProjectsView>>
14
15
  }
15
16
  interface TypertRemoteMap {
16
17
  'mhWorkspace/ensureWorkspace': (projectUrl: string, signal?: AbortSignal) => Promise<RemoteResult<{ workspaceId: string; }>>
17
18
  'mhWorkspace/openPersonWindow': (url?: string, signal?: AbortSignal) => Promise<RemoteResult<void>>
19
+ 'mhWorkspace/startBrowser': (signal?: AbortSignal) => Promise<RemoteResult<void>>
18
20
  'mhWorkspace/syncProjects': (signal?: AbortSignal) => Promise<RemoteResult<ProjectsView>>
19
21
  }
20
22
  interface TypertRemoteNamespaceMap {
@@ -25,6 +27,7 @@ declare module '@deepseek-ai/dsh-typert-protocol' {
25
27
  export declare const TYPERT_REMOTE: TypertRemoteInfo<{
26
28
  readonly 'mhWorkspace/ensureWorkspace': TypertRemoteMethod<{ readonly 'projectUrl': string }, { workspaceId: string; }>
27
29
  readonly 'mhWorkspace/openPersonWindow': TypertRemoteMethod<{ readonly 'url'?: string }, void>
30
+ readonly 'mhWorkspace/startBrowser': TypertRemoteMethod<{ }, void>
28
31
  readonly 'mhWorkspace/syncProjects': TypertRemoteMethod<{ }, ProjectsView>
29
32
  }>
30
33
  export default TYPERT_REMOTE
@@ -13,6 +13,8 @@ let _mind_harness_mh_workspace_mhWorkspace_openPersonWindow_parameter_0$schema$v
13
13
  const _mind_harness_mh_workspace_mhWorkspace_openPersonWindow_parameter_0$schema = () => (_mind_harness_mh_workspace_mhWorkspace_openPersonWindow_parameter_0$schema$value ??= z.union([z.undefined(), z.string()]))
14
14
  let _mind_harness_mh_workspace_mhWorkspace_openPersonWindow_result$schema$value
15
15
  const _mind_harness_mh_workspace_mhWorkspace_openPersonWindow_result$schema = () => (_mind_harness_mh_workspace_mhWorkspace_openPersonWindow_result$schema$value ??= z.void())
16
+ let _mind_harness_mh_workspace_mhWorkspace_startBrowser_result$schema$value
17
+ const _mind_harness_mh_workspace_mhWorkspace_startBrowser_result$schema = () => (_mind_harness_mh_workspace_mhWorkspace_startBrowser_result$schema$value ??= z.void())
16
18
  let _mind_harness_mh_workspace_mhWorkspace_syncProjects_result$schema$value
17
19
  const _mind_harness_mh_workspace_mhWorkspace_syncProjects_result$schema = () => (_mind_harness_mh_workspace_mhWorkspace_syncProjects_result$schema$value ??= z.object({
18
20
  'projects': z.array(z.object({
@@ -62,7 +64,7 @@ export const TYPERT_REMOTE = createTypertRemoteInfo({
62
64
  create: _mind_harness_mh_workspace_mhWorkspace_ensureWorkspace_result$schema,
63
65
  jsonSchema: {"type":"object","properties":{"workspaceId":{"type":"string"}},"required":["workspaceId"],"additionalProperties":true},
64
66
  },
65
- sourceLocation: {"file":"packages/mh-workspace/src/service.ts","line":177,"column":9},
67
+ sourceLocation: {"file":"packages/mh-workspace/src/service.ts","line":178,"column":9},
66
68
  },
67
69
  'mhWorkspace/openPersonWindow': {
68
70
  service: 'mhWorkspace',
@@ -93,7 +95,22 @@ export const TYPERT_REMOTE = createTypertRemoteInfo({
93
95
  create: _mind_harness_mh_workspace_mhWorkspace_openPersonWindow_result$schema,
94
96
  jsonSchemaError: 'typert tool schema: unsupported void value',
95
97
  },
96
- sourceLocation: {"file":"packages/mh-workspace/src/service.ts","line":186,"column":9},
98
+ sourceLocation: {"file":"packages/mh-workspace/src/service.ts","line":187,"column":9},
99
+ },
100
+ 'mhWorkspace/startBrowser': {
101
+ service: 'mhWorkspace',
102
+ description: 'The person pressed retry. A browser that exited starts again before the list is read.',
103
+ invocation: { kind: 'direct' },
104
+ parameters: [
105
+ ],
106
+ cancellation: { parameter: 'signal' },
107
+ result: {
108
+ mode: 'strict',
109
+ typeSymbol: '@mind-harness/mh-workspace#mhWorkspace/startBrowser:result',
110
+ create: _mind_harness_mh_workspace_mhWorkspace_startBrowser_result$schema,
111
+ jsonSchemaError: 'typert tool schema: unsupported void value',
112
+ },
113
+ sourceLocation: {"file":"packages/mh-workspace/src/service.ts","line":211,"column":9},
97
114
  },
98
115
  'mhWorkspace/syncProjects': {
99
116
  service: 'mhWorkspace',
@@ -108,7 +125,7 @@ export const TYPERT_REMOTE = createTypertRemoteInfo({
108
125
  create: _mind_harness_mh_workspace_mhWorkspace_syncProjects_result$schema,
109
126
  jsonSchema: {"type":"object","properties":{"projects":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"name":{"type":"string"},"projectId":{"type":"string"},"workspaceId":{"type":"string"},"removed":{"type":"boolean","const":true,"description":"The person removed this Project's Workspace. It is not in the sidebar."}},"required":["url","name","projectId"],"additionalProperties":true}},"signedIn":{"type":"boolean","description":"The Memory home names a viewer. Signed out, the list holds only what is public."},"selfLogin":{"type":"boolean"}},"required":["projects","signedIn","selfLogin"],"additionalProperties":true},
110
127
  },
111
- sourceLocation: {"file":"packages/mh-workspace/src/service.ts","line":163,"column":9},
128
+ sourceLocation: {"file":"packages/mh-workspace/src/service.ts","line":164,"column":9},
112
129
  },
113
130
  },
114
131
  }, z)
@@ -53,6 +53,8 @@ export declare class MhWorkspaceService extends TypertRemoteService {
53
53
  workspaceId: string;
54
54
  }>;
55
55
  openPersonWindow(url?: string, signal?: AbortSignal): Promise<void>;
56
+ /** The person pressed retry. A browser that exited starts again before the list is read. */
57
+ startBrowser(signal: AbortSignal): Promise<void>;
56
58
  /**
57
59
  * Keep the Session's Project context current and, on the first step of its
58
60
  * first turn, place the cwd pages. Later steps read Memory only while a
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mind-harness/mh-workspace",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "description": "Lists your Memory Projects and gives each one a workspace; a Session started there begins with the Project's README and AGENTS.md.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "files": [
@@ -42,7 +42,7 @@
42
42
  "access": "public"
43
43
  },
44
44
  "dependencies": {
45
- "@mind-harness/mh-browser": "0.1.3",
45
+ "@mind-harness/mh-browser": "0.1.5",
46
46
  "zod": "^4.6.6"
47
47
  },
48
48
  "devDependencies": {