@volter/project 0.5.212 → 0.5.213

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/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@volter/project",
3
3
  "author": "Volter AI, Inc.",
4
4
  "license": "Apache-2.0",
5
- "version": "0.5.212",
5
+ "version": "0.5.213",
6
6
  "publishConfig": {
7
7
  "access": "public"
8
8
  },
@@ -497,6 +497,9 @@ export interface DocumentEntry {
497
497
  readonly source?: SceneSource;
498
498
  /** Which finder produced it; absent = the adapter stated it outright. */
499
499
  readonly finder?: string;
500
+ /** `true` = its editor opens it before its file is written, and its first save writes the file: what `editor.open`
501
+ * of its id opens when the file is not there yet. */
502
+ readonly opensUnwritten?: boolean;
500
503
  }
501
504
 
502
505
  const DocumentEntrySchema = z
@@ -509,6 +512,7 @@ const DocumentEntrySchema = z
509
512
  reach: SceneReachSchema,
510
513
  source: SceneSourceSchema.optional(),
511
514
  finder: z.string().min(1).optional(),
515
+ opensUnwritten: z.boolean().optional(),
512
516
  })
513
517
  .strict();
514
518
 
@@ -159,12 +159,14 @@ export interface WorkspaceLayoutContribution {
159
159
  * `'mounts'` (at least one root that plays) or a document kind the
160
160
  * project's table lists. Omitted: every project. */
161
161
  readonly requires?: 'mounts' | { readonly documentKind: string };
162
- /** Chrome region overrides; omitted regions use their defaults, including hidden workspace tabs. */
162
+ /** Chrome region overrides; omitted regions take the person's own choice, then their defaults. */
163
163
  readonly regions?: WorkspaceLayoutRegions;
164
164
  /** The workspace's EDITOR AREAS beside the centre document — a second
165
165
  * editor group holding a `workspace.document` contribution
166
166
  * (`WorkspaceAreaContribution`). Absent: the centre document alone. */
167
167
  readonly areas?: WorkspaceArrangement['areas'];
168
+ /** The document the workspace is for (`WorkspaceArrangement.document`). */
169
+ readonly document?: WorkspaceArrangement['document'];
168
170
  }
169
171
 
170
172
  /**
@@ -69,4 +69,8 @@ export interface WorkspaceArrangement {
69
69
  /** The workspace's EDITOR AREAS beside the centre document — see
70
70
  * {@link WorkspaceAreaContribution}. Absent: the centre document alone. */
71
71
  readonly areas?: readonly WorkspaceAreaContribution[];
72
+ /** The document the workspace is FOR, shown in the centre as it becomes active: the id of a workspace document a
73
+ * package registers (`workspace:ui-components`, the UI board). Its package activates on `onDocument:<id>`, so the
74
+ * document opens once it is registered. Absent: the centre keeps the document the person has open. */
75
+ readonly document?: string;
72
76
  }
@@ -1,10 +1,9 @@
1
1
  // Finding the project manifest ON DISK. There is ONE filename (`./filename.ts`).
2
2
  //
3
3
  // Deliberately dependency-light — `node:fs` + `node:path` + `./filename` and
4
- // NOTHING else (no Zod, no `./load`). Several callers are explicitly
5
- // schema-free by design (`packages/editor-core/server/project-root-surface.ts`,
6
- // `packages/editor-react/serving/ui-oid-plugin.ts`) and must be able to locate a
7
- // manifest without dragging the validator in.
4
+ // NOTHING else (no Zod, no `./load`). Its callers (the editor's server, the
5
+ // live session and a product's CLI) locate a manifest without dragging the
6
+ // validator in.
8
7
 
9
8
  import { existsSync } from 'node:fs';
10
9
  import { join } from 'node:path';