@wendoo/bridge-app 0.2.2

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 (77) hide show
  1. package/README.md +44 -0
  2. package/dist/app-bridge.d.ts +77 -0
  3. package/dist/app-bridge.d.ts.map +1 -0
  4. package/dist/app-bridge.js +205 -0
  5. package/dist/app-environment-host.d.ts +524 -0
  6. package/dist/app-environment-host.d.ts.map +1 -0
  7. package/dist/app-environment-host.js +1560 -0
  8. package/dist/brain-diagnostics.d.ts +47 -0
  9. package/dist/brain-diagnostics.d.ts.map +1 -0
  10. package/dist/brain-diagnostics.js +100 -0
  11. package/dist/bridge-project.d.ts +32 -0
  12. package/dist/bridge-project.d.ts.map +1 -0
  13. package/dist/bridge-project.js +69 -0
  14. package/dist/compilation.d.ts +145 -0
  15. package/dist/compilation.d.ts.map +1 -0
  16. package/dist/compilation.js +404 -0
  17. package/dist/core-extension.d.ts +10 -0
  18. package/dist/core-extension.d.ts.map +1 -0
  19. package/dist/core-extension.js +9 -0
  20. package/dist/embedded-extension-id-gate.d.ts +38 -0
  21. package/dist/embedded-extension-id-gate.d.ts.map +1 -0
  22. package/dist/embedded-extension-id-gate.js +55 -0
  23. package/dist/embedded-extension-loader.d.ts +33 -0
  24. package/dist/embedded-extension-loader.d.ts.map +1 -0
  25. package/dist/embedded-extension-loader.js +90 -0
  26. package/dist/embedded-extension-vite-plugin.d.ts +34 -0
  27. package/dist/embedded-extension-vite-plugin.d.ts.map +1 -0
  28. package/dist/embedded-extension-vite-plugin.js +39 -0
  29. package/dist/embedded-extensions.d.ts +293 -0
  30. package/dist/embedded-extensions.d.ts.map +1 -0
  31. package/dist/embedded-extensions.js +526 -0
  32. package/dist/extension-catalog.d.ts +243 -0
  33. package/dist/extension-catalog.d.ts.map +1 -0
  34. package/dist/extension-catalog.js +408 -0
  35. package/dist/extension-install-log.d.ts +54 -0
  36. package/dist/extension-install-log.d.ts.map +1 -0
  37. package/dist/extension-install-log.js +22 -0
  38. package/dist/extension-install.d.ts +162 -0
  39. package/dist/extension-install.d.ts.map +1 -0
  40. package/dist/extension-install.js +412 -0
  41. package/dist/extension-report-presenter.d.ts +40 -0
  42. package/dist/extension-report-presenter.d.ts.map +1 -0
  43. package/dist/extension-report-presenter.js +36 -0
  44. package/dist/fetched-extension-snapshots.d.ts +66 -0
  45. package/dist/fetched-extension-snapshots.d.ts.map +1 -0
  46. package/dist/fetched-extension-snapshots.js +137 -0
  47. package/dist/folder-host-session.d.ts +85 -0
  48. package/dist/folder-host-session.d.ts.map +1 -0
  49. package/dist/folder-host-session.js +210 -0
  50. package/dist/index.d.ts +38 -0
  51. package/dist/index.d.ts.map +1 -0
  52. package/dist/index.js +19 -0
  53. package/dist/library-offer.d.ts +60 -0
  54. package/dist/library-offer.d.ts.map +1 -0
  55. package/dist/library-offer.js +47 -0
  56. package/dist/library-uninstall-guard.d.ts +66 -0
  57. package/dist/library-uninstall-guard.d.ts.map +1 -0
  58. package/dist/library-uninstall-guard.js +103 -0
  59. package/dist/manifest-files.d.ts +53 -0
  60. package/dist/manifest-files.d.ts.map +1 -0
  61. package/dist/manifest-files.js +242 -0
  62. package/dist/node.d.ts +4 -0
  63. package/dist/node.d.ts.map +1 -0
  64. package/dist/node.js +2 -0
  65. package/dist/project-file-bridge.d.ts +10 -0
  66. package/dist/project-file-bridge.d.ts.map +1 -0
  67. package/dist/project-file-bridge.js +87 -0
  68. package/dist/user-tile-registration.d.ts +89 -0
  69. package/dist/user-tile-registration.d.ts.map +1 -0
  70. package/dist/user-tile-registration.js +100 -0
  71. package/dist/vfs-asset-url-provider.d.ts +22 -0
  72. package/dist/vfs-asset-url-provider.d.ts.map +1 -0
  73. package/dist/vfs-asset-url-provider.js +52 -0
  74. package/dist/workspace-folder-project-store.d.ts +125 -0
  75. package/dist/workspace-folder-project-store.d.ts.map +1 -0
  76. package/dist/workspace-folder-project-store.js +400 -0
  77. package/package.json +103 -0
@@ -0,0 +1,524 @@
1
+ import type { ApprovedCatalogEntryLookup, ExtensionAddInputResolution, ExtensionCatalogMoves, ExtensionFetchTransport, ExtensionUpdateApplication, ExtensionUpdateCheck, ProjectCollectionProjectCommitResult, ProjectCollectionUnlockResult, ProjectFileSystem, ProjectManifest, UnstableDependency } from "@wendoo/app-host";
2
+ import { AppHostError, type FileContent, type ProjectManager } from "@wendoo/app-host";
3
+ import type { FolderInstalledExtensionMetadata } from "@wendoo/bridge-protocol";
4
+ import type { IBrainDef, WendooEnvironment, WendooModule } from "@wendoo/core/app";
5
+ import type { PersistedBrainJson } from "@wendoo/core/brain/model";
6
+ import type { Localizer } from "@wendoo/core/localization";
7
+ import type { ActionKey, IRngServices, ProfileNumerics } from "@wendoo/core/runtime";
8
+ import type { Mount, WorkspaceCompileResult, WorkspaceDiagnosticEntry } from "@wendoo/ts-compiler";
9
+ import type { AppBridgeState, ProjectFileChange } from "./app-bridge.js";
10
+ import type { EmbeddedExtension, ExtensionResolutionWarning, FetchedExtensionContentMap } from "./embedded-extensions.js";
11
+ import type { ExtensionCatalogEntry, ExtensionFetchFailures } from "./extension-catalog.js";
12
+ import type { ExtensionInstallReport } from "./extension-install.js";
13
+ import type { TileCompileDiagnostics, UserTileApplyResult, UserTileMetadata } from "./user-tile-registration.js";
14
+ /** The outcome of one load's catalog-move application. */
15
+ export interface CatalogMovesOutcome {
16
+ /** Reports of the per-move install transactions this load ran, in application order. */
17
+ readonly reports: readonly ExtensionInstallReport[];
18
+ /** Stable-coded findings for moves that could not be applied this load. */
19
+ readonly warnings: readonly ExtensionResolutionWarning[];
20
+ }
21
+ /** One diagnostic of the latest workspace compile, located at its workspace path. */
22
+ export type WorkspaceCompileDiagnostic = WorkspaceDiagnosticEntry & {
23
+ /** Workspace path of the file the diagnostic is located in. */
24
+ readonly path: string;
25
+ };
26
+ /** Options for {@link AppEnvironmentHost}. */
27
+ export interface AppEnvironmentHostOptions {
28
+ projectManager: ProjectManager;
29
+ /** Wendoo modules to register with the environment. */
30
+ modules: readonly WendooModule[];
31
+ /** Read-only content mounts supplied to the project compiler and remote VFS. */
32
+ mounts: readonly Mount[];
33
+ /**
34
+ * Extensions bundled with the host application. A project's `embedded:<repo>`
35
+ * dependency resolves against this record by the origin's repository segment,
36
+ * delivering the extension's content to the compiler as a mounted dependency
37
+ * keyed by its `<owner>/<repo>` coordinate. Empty when the app bundles none.
38
+ */
39
+ embeddedExtensions?: readonly EmbeddedExtension[];
40
+ /**
41
+ * Transport used to fetch remote (`gh:`) extension content at install time.
42
+ * When omitted, an install transaction needing a fetch refuses as
43
+ * unreachable; already-installed fetched extensions still load from their
44
+ * stored snapshots.
45
+ */
46
+ extensionFetchTransport?: ExtensionFetchTransport;
47
+ /**
48
+ * Curated catalog moves from the host's catalog, keyed by source coordinate.
49
+ * On project load a top-level manifest entry a move entry captures is
50
+ * rewritten to the entry's destination through an install transaction, and a
51
+ * transitive dependency reference an entry captures resolves through the
52
+ * destination. Empty when the host declares none.
53
+ */
54
+ catalogMoves?: ExtensionCatalogMoves;
55
+ /**
56
+ * Resolves a coordinate to the approved pin the host's catalog entry offers.
57
+ * An update check for a listed coordinate offers that pin and does not read
58
+ * the source. When omitted, every update check reads the source.
59
+ */
60
+ approvedCatalogEntry?: ApprovedCatalogEntryLookup;
61
+ /**
62
+ * Host-supplied RNG. The bridge app forwards this to
63
+ * {@link createWendooEnvironment} so brains pull randomness from the host
64
+ * (e.g. the simulator's seeded RNG). When omitted, the environment falls back
65
+ * to a default-seeded one, which draws the same sequence every run.
66
+ */
67
+ rng?: IRngServices;
68
+ /**
69
+ * Brain-observable numeric semantics for the host's device profile,
70
+ * forwarded to {@link createWendooEnvironment}. When omitted, the
71
+ * environment falls back to the f64 (native double-precision) default.
72
+ */
73
+ numerics?: ProfileNumerics;
74
+ /**
75
+ * Host-supplied display-time translation service, forwarded to
76
+ * {@link createWendooEnvironment}. When omitted, the environment falls
77
+ * back to the default localizer, which renders every source string as
78
+ * authored.
79
+ */
80
+ localizer?: Localizer;
81
+ /** When set, enables the optional bridge connection to a remote peer. */
82
+ bridgeUrl?: string;
83
+ /** Loads a previously persisted bridge binding token. */
84
+ loadBindingToken?: () => string | undefined;
85
+ /** Persists an updated bridge binding token. */
86
+ saveBindingToken?: (token: string) => void;
87
+ /** Invoked after every successful project compile. */
88
+ onDidCompile?: (result: WorkspaceCompileResult, tileResult: UserTileApplyResult | undefined) => void;
89
+ }
90
+ /**
91
+ * Glue layer that wires a {@link ProjectManager}, a {@link WendooEnvironment},
92
+ * the project compiler, user-tile registration, and (optionally) the bridge
93
+ * into a single host an app UI can drive.
94
+ */
95
+ export declare class AppEnvironmentHost {
96
+ readonly env: WendooEnvironment;
97
+ readonly projectManager: ProjectManager;
98
+ private readonly mounts;
99
+ private readonly embeddedExtensions;
100
+ private readonly extensionFetchTransport;
101
+ private readonly catalogMoves;
102
+ private readonly approvedCatalogEntry;
103
+ private readonly onDidCompileCallback?;
104
+ private _installedSnapshots;
105
+ private _installedContent;
106
+ private _lastResolution;
107
+ private readonly _resolutionWarningsListeners;
108
+ private _fetchFailures;
109
+ private _lastCompileResult;
110
+ private _tileCompileDiagnostics;
111
+ private readonly _brainCache;
112
+ private readonly _defaultBrainCache;
113
+ private _projectRecordFailure;
114
+ private _pendingBrainRebuild;
115
+ private _docRevision;
116
+ private _vfsRevision;
117
+ private readonly _docRevisionListeners;
118
+ private readonly _vfsRevisionListeners;
119
+ private _brainDiagnosticsRevision;
120
+ private readonly _brainDiagnosticsListeners;
121
+ private _compileDiagnostics;
122
+ private readonly _compileDiagnosticsListeners;
123
+ private readonly _projectUnloadingListeners;
124
+ private readonly _projectLoadedListeners;
125
+ private _bridge;
126
+ private _bridgeUrl;
127
+ private _bridgeStatus;
128
+ private _bridgeJoinCode;
129
+ private readonly _bridgeStatusListeners;
130
+ private readonly _bridgeJoinCodeListeners;
131
+ private _bridgeStateUnsub;
132
+ private _remoteChangeUnsub;
133
+ private readonly _loadBindingToken;
134
+ private readonly _saveBindingToken;
135
+ private _lastUserTileMetadata;
136
+ private _compiler;
137
+ private _servedFileSystem;
138
+ private readonly _compilerControlledFilesListeners;
139
+ constructor(options: AppEnvironmentHostOptions);
140
+ get projectFileSystem(): ProjectFileSystem;
141
+ /**
142
+ * The file system whose exported snapshot carries both the raw project files
143
+ * and the compiler-controlled files (ambient declarations, `tsconfig.json`,
144
+ * and the installed-extensions tree), including extension-owned assets such
145
+ * as tile icons. Each `exportSnapshot()` reads the live compiler, so
146
+ * installing or uninstalling an extension is reflected without a rebuild.
147
+ * Falls back to the raw project file system until the compiler is wired.
148
+ */
149
+ get servedProjectFileSystem(): ProjectFileSystem;
150
+ get activeProjectManifest(): ProjectManifest | undefined;
151
+ /** Release bridge and project-manager resources owned by this host. */
152
+ dispose(): void;
153
+ initialize(defaultProjectName: string): Promise<void>;
154
+ /**
155
+ * Resolve the active project's extension dependency graph against the host's
156
+ * embed record and the project's stored fetched snapshots. Logs any conflict
157
+ * warnings. On this load path a dependency cycle is logged and resolution
158
+ * falls back to no extension dependencies, so the project still loads and
159
+ * unresolved imports surface as ordinary compiler diagnostics; an install
160
+ * transaction refuses on a cycle instead.
161
+ */
162
+ private resolveExtensions;
163
+ /** Replace the project's installed snapshot records, in memory and in the project store. */
164
+ private persistInstalledSnapshots;
165
+ /**
166
+ * Read the active project's stored extension records: the installed
167
+ * snapshots and the install log. Both are empty when the project has stored
168
+ * neither. Returns undefined when the store could not serve them, recording
169
+ * the failure on {@link AppEnvironmentHost.projectRecordFailure}. On
170
+ * undefined the caller must leave the stored records untouched.
171
+ */
172
+ private readStoredExtensionRecordsForLoad;
173
+ private initCompiler;
174
+ /**
175
+ * Persist source files whose user-action declaration had a stable `id` minted
176
+ * during compilation. Writes the updated text to the project file system and
177
+ * to the compiler's in-memory view.
178
+ */
179
+ private persistMintedActionIds;
180
+ saveBrainForKey(key: string, brainDef: IBrainDef): Promise<void>;
181
+ /**
182
+ * Serialize a brain into its persisted form: identifiers qualified by the
183
+ * active project's namespace are stored with the namespace absent.
184
+ */
185
+ serializeBrainForStorage(brainDef: IBrainDef): PersistedBrainJson;
186
+ removeBrain(key: string): Promise<void>;
187
+ loadBrainFromProject(key: string): Promise<IBrainDef | undefined>;
188
+ /**
189
+ * Returns the active project's in-memory brain for `key`, or undefined when none is cached. The
190
+ * cache is loaded on project load and updated by `saveBrainForKey` and `removeBrain`.
191
+ */
192
+ getCachedBrain(key: string): IBrainDef | undefined;
193
+ /** Returns the keys of the active project's cached brains, in cache order. */
194
+ getCachedBrainKeys(): readonly string[];
195
+ setDefaultBrain(key: string, brainDef: IBrainDef): void;
196
+ getDefaultBrain(key: string): IBrainDef | undefined;
197
+ private saveAllBrains;
198
+ /**
199
+ * Read the active project's stored brain record together with the raw stored
200
+ * text it was parsed from. Both are empty -- `raw` undefined, `record` `{}` --
201
+ * when the project has never stored a record. Throws {@link AppHostError} with
202
+ * code `BRAIN_RECORD_UNREADABLE` -- and no other error -- when a stored record
203
+ * exists but cannot be read or parsed.
204
+ */
205
+ private readStoredBrains;
206
+ /**
207
+ * Read the active project's stored brain record. Returns an empty record when
208
+ * the project has never stored one. Throws {@link AppHostError} with code
209
+ * `BRAIN_RECORD_UNREADABLE` -- and no other error -- when a stored record
210
+ * exists but cannot be read or parsed.
211
+ */
212
+ private loadBrainRecord;
213
+ /**
214
+ * Read the stored brains on a project-load path. Returns the record and the
215
+ * raw stored text, or undefined when they could not be read, recording the
216
+ * failure on {@link AppEnvironmentHost.projectRecordFailure}. On undefined the
217
+ * caller must leave the stored brains untouched.
218
+ */
219
+ private readStoredBrainsForLoad;
220
+ /**
221
+ * The first failure that stopped one of the active project's stored records
222
+ * from loading, or undefined when they all loaded. Its `code` names the
223
+ * record: `BRAIN_RECORD_UNREADABLE` for the saved brains,
224
+ * `EXTENSION_RECORD_UNREADABLE` for the installed-library snapshots and the
225
+ * install log. While it is set the brain cache is empty because a record
226
+ * could not be read, not because the project has no brains, every brain
227
+ * write refuses, and no write replaces a record that could not be read.
228
+ * Cleared when the project unloads.
229
+ */
230
+ get projectRecordFailure(): AppHostError | undefined;
231
+ /** True while the active project's stored extension records could not be read. */
232
+ private get extensionRecordUnreadable();
233
+ /**
234
+ * Deserialize the project's stored brains into the cache. Call after the
235
+ * load's catalog moves have applied: deserialization resolves saved tile
236
+ * references against the current action bundle. Caches nothing when the load
237
+ * already recorded a stored-record failure: the extension closure is then
238
+ * unknown, so no saved tile reference resolves.
239
+ */
240
+ private loadBrainsFromProject;
241
+ /**
242
+ * Reconcile the in-memory brain cache against the project store's current
243
+ * brain record: cached brains absent from the record are dropped, and
244
+ * record entries whose stored form differs from the cached brain are
245
+ * deserialized into the cache. Returns the changed and removed brain keys.
246
+ */
247
+ reconcileBrainsFromStore(): Promise<{
248
+ changed: readonly string[];
249
+ removed: readonly string[];
250
+ }>;
251
+ private deserializeBrainForKey;
252
+ /**
253
+ * Re-resolve every cached brain's tile references against the current
254
+ * catalogs by round-tripping it through its persisted form -- the same
255
+ * resolution a project load performs, so a tile whose library left the
256
+ * closure becomes a placeholder and a placeholder whose library returned
257
+ * becomes the real tile again. A brain whose round-trip fails keeps its
258
+ * current definition.
259
+ */
260
+ private refreshBrainCache;
261
+ updateProjectMetadata(updates: Partial<Pick<ProjectManifest, "name" | "description">>): Promise<void>;
262
+ /** The installed fetched-extension content available to the active project, keyed by reference. */
263
+ get installedExtensionContent(): FetchedExtensionContentMap;
264
+ /**
265
+ * The compiler-controlled file set of the active project's workspace: the
266
+ * generated `tsconfig.json`, ambient declarations, and the materialized
267
+ * installed-extensions tree. Undefined until the compiler is wired.
268
+ */
269
+ getCompilerControlledFiles(): ReadonlyMap<string, FileContent> | undefined;
270
+ /**
271
+ * Subscribe to compiler-controlled file set changes. The listener receives
272
+ * the full new set after each compile that changed it. Returns an
273
+ * unsubscribe function.
274
+ */
275
+ onCompilerControlledFilesChanged(listener: (files: ReadonlyMap<string, FileContent>) => void): () => void;
276
+ /** Install provenance of every installed fetched dependency, keyed by `<owner>/<repo>` origin. */
277
+ getInstalledExtensionMetadata(): Record<string, FolderInstalledExtensionMetadata>;
278
+ /**
279
+ * The installed libraries of the active project's resolved extension
280
+ * closure: one record per resolved origin, carrying the coordinate a
281
+ * compiled tile's identity namespace names and the display name the
282
+ * library's own `wendoo.json` declares. Empty until the compiler is
283
+ * wired.
284
+ */
285
+ get installedLibraries(): readonly Pick<ExtensionCatalogEntry, "coordinate" | "name">[];
286
+ /** The last recorded fetch failure per reference, keyed by the reference string as written. */
287
+ get extensionFetchFailures(): ExtensionFetchFailures;
288
+ /**
289
+ * Non-fatal warnings of the active project's latest extension resolution,
290
+ * including the stable-coded catalog-move findings the load's move
291
+ * application recorded. Empty until the compiler is wired.
292
+ */
293
+ get resolutionWarnings(): readonly ExtensionResolutionWarning[];
294
+ /**
295
+ * Subscribe to resolution-warning changes for `useSyncExternalStore`. The
296
+ * listener fires whenever the active project's latest resolution is
297
+ * replaced: on project load and switch, and after each install transaction.
298
+ * Returns an unsubscribe function.
299
+ */
300
+ subscribeToResolutionWarnings: (listener: () => void) => (() => void);
301
+ /** Snapshot of {@link resolutionWarnings} for `useSyncExternalStore`. */
302
+ getResolutionWarningsSnapshot: () => readonly ExtensionResolutionWarning[];
303
+ /** Record the latest resolution and notify resolution-warning subscribers. */
304
+ private setLastResolution;
305
+ /** Merge a load's catalog-move findings into the latest resolution's warnings, skipping duplicates. */
306
+ private absorbCatalogMovesOutcome;
307
+ /** Fetch one `gh:` reference's snapshot through the host's transport. */
308
+ private fetchSnapshot;
309
+ /** Materialize a resolution: dependencies, `wendoo.json`, and a recompile of the whole workspace. */
310
+ private applyResolution;
311
+ /** Rewrite `wendoo.json` from the store manifest, restoring the file after a refused transaction. */
312
+ private resyncManifestFile;
313
+ /**
314
+ * The active project's diagnostic state: the latest workspace compile's
315
+ * per-file diagnostics plus a fresh typecheck of every cached brain.
316
+ */
317
+ private captureProjectDiagnostics;
318
+ /**
319
+ * Append the transaction's events to the project's install log. Appends
320
+ * nothing while the stored extension records are unreadable: the log's
321
+ * existing entries are unknown, so a write would replace them with these
322
+ * events alone.
323
+ */
324
+ private appendInstallLogEvents;
325
+ /**
326
+ * The install and remove events between two resolved closures, plus the new
327
+ * resolution's warnings. An origin present in both closures records an
328
+ * install event when its winning reference or installed specifier changed
329
+ * (an update).
330
+ */
331
+ private installLogEventsForChange;
332
+ /**
333
+ * Apply an extensions-map change to the active project as one transaction:
334
+ * fetch content for every newly reachable `gh:` reference, resolve the
335
+ * transitive dependency graph, then commit -- persist the manifest entries
336
+ * and the fetched snapshots, re-materialize the installed-extensions tree,
337
+ * recompile the workspace, and re-typecheck the project's brains -- and
338
+ * report the diagnostic difference against the pre-change baseline.
339
+ *
340
+ * Improved, unchanged, and worsened outcomes all commit. The transaction
341
+ * refuses outright only on mechanics failures -- an unreachable source, a
342
+ * missing or unparseable manifest, a missing listed file, a dependency
343
+ * cycle, or stored extension records the store could not serve -- leaving
344
+ * the project unchanged. Every commit appends its install, remove, and
345
+ * resolution-warning events to the project's install log.
346
+ *
347
+ * @param extensions - The active project's next extensions map, keyed by coordinate.
348
+ * @param options.refetchReferences - References fetched fresh even when a stored snapshot matches.
349
+ */
350
+ updateProjectExtensions(extensions: Readonly<Record<string, string>>, options?: {
351
+ refetchReferences?: ReadonlySet<string>;
352
+ }): Promise<ExtensionInstallReport>;
353
+ /** Version lookup over the embed record and the project's persisted snapshot content. */
354
+ private moveVersionLookup;
355
+ /**
356
+ * Resolve a floating catalog-move destination for a coordinate to a pinned
357
+ * `gh:` reference: the coordinate's persisted snapshot pin when one exists,
358
+ * otherwise the highest stable published version listed by the host's
359
+ * transport. Returns undefined when no pin can be produced.
360
+ */
361
+ private resolveFloatingMoveReference;
362
+ /**
363
+ * Apply the host's curated catalog moves to the active project. Each
364
+ * captured top-level manifest entry is one move-application unit: its
365
+ * manifest rewrite, its saved-brain namespace rewrite (when the entry's
366
+ * final coordinate differs), and the fetches its chain requires run as one
367
+ * install transaction, rolled back together when the transaction refuses. A
368
+ * failed unit writes nothing, surfaces a stable-coded warning, and is
369
+ * retried on the next load, while other units proceed independently.
370
+ *
371
+ * Application interleaves apply, fetch, and re-apply: after each committed
372
+ * transaction the entries are re-applied with the versions the new content
373
+ * determines, and a transitive moved dependency whose content the project
374
+ * never persisted is healed by a fetch transaction, until nothing changes.
375
+ * A floating destination is resolved to a pin before its transaction runs;
376
+ * the pin is what the manifest receives. Returns undefined when the host
377
+ * declares no moves or the project is a true no-op; otherwise the
378
+ * transactions' reports and the load's stable-coded move warnings. Returns
379
+ * undefined without applying anything while the stored extension records are
380
+ * unreadable, so no move writes over a record the store could not serve.
381
+ */
382
+ applyCatalogMoves(): Promise<CatalogMovesOutcome | undefined>;
383
+ /**
384
+ * Rewrite every saved brain's foreign-namespace references from each rename's
385
+ * source coordinate to its target, persisting the rewritten brains record and
386
+ * re-deserializing the changed brains into the cache. Returns true when at
387
+ * least one brain changed.
388
+ *
389
+ * @param record - The stored brain record to rewrite, read by the caller; mutated in place.
390
+ * @param renames - The coordinate renames to apply, each a source and its target.
391
+ */
392
+ private renameBrainNamespaces;
393
+ /** Restore the brains record and cache to a pre-rewrite snapshot after a refused migration. */
394
+ private restoreBrains;
395
+ /**
396
+ * Normalize add-by-reference input to an installable extension reference: a
397
+ * complete reference, an `<owner>/<repo>` coordinate, or a GitHub repository
398
+ * URL. Input naming a repository without a version resolves to the
399
+ * repository's latest published version through the host's transport. Fails
400
+ * with a stable code when the input is unrecognized, no version can be
401
+ * resolved, or the host has no transport to resolve one through.
402
+ *
403
+ * @param input - The pasted add-field text.
404
+ */
405
+ resolveExtensionInstallInput(input: string): Promise<ExtensionAddInputResolution>;
406
+ /**
407
+ * Check one installed fetched dependency of the active project for newer
408
+ * content: a `@<pin>` reference against the host catalog's approved pin when
409
+ * the catalog lists the coordinate and against the source's published
410
+ * versions when it does not, a `#<branch>` reference against the branch's
411
+ * head commit. The check runs on request, reaches the source through the
412
+ * host's transport, and changes nothing.
413
+ *
414
+ * @param coordinate - The dependency's `<owner>/<repo>` coordinate in the project's extensions map.
415
+ */
416
+ checkExtensionUpdate(coordinate: string): Promise<ExtensionUpdateCheck>;
417
+ /**
418
+ * Apply one or more dependency updates to the active project as a single
419
+ * install transaction with one outcome: each update's coordinate takes its
420
+ * new reference in the extensions map, and each updated reference is fetched
421
+ * fresh, never satisfied from its stored snapshot. The report and the
422
+ * install log are those of {@link updateProjectExtensions}.
423
+ *
424
+ * @param updates - The updates to apply, as returned by update checks.
425
+ */
426
+ applyExtensionUpdates(updates: readonly ExtensionUpdateApplication[]): Promise<ExtensionInstallReport>;
427
+ /**
428
+ * Collect the active project's dependencies that are not stable for
429
+ * consumers: branch references, and pinned references whose content the
430
+ * project has no installed snapshot for. Exporting or publishing such a
431
+ * project should ask for confirmation first.
432
+ */
433
+ collectUnstableProjectDependencies(): Promise<readonly UnstableDependency[]>;
434
+ onProjectUnloading(listener: () => void): () => void;
435
+ onProjectLoaded(listener: () => void): () => void;
436
+ createProject(name: string): Promise<ProjectManifest>;
437
+ switchProject(id: string): Promise<void>;
438
+ switchProjectCollectionAndOpenProject(projectCollectionId: string, projectId: string): Promise<ProjectCollectionProjectCommitResult>;
439
+ switchProjectCollectionAndCreateProject(projectCollectionId: string, name: string): Promise<ProjectCollectionProjectCommitResult>;
440
+ /**
441
+ * Unlock a project collection and initialize the project environment when
442
+ * unlocking restores the active project.
443
+ *
444
+ * @param projectCollectionId - Project collection to unlock.
445
+ * @param pin - User-entered PIN or phrase.
446
+ * @returns The unlocked project collection and its ready access status.
447
+ */
448
+ unlockProjectCollection(projectCollectionId: string, pin: string): Promise<ProjectCollectionUnlockResult>;
449
+ /**
450
+ * Lock a project collection after flushing app-owned project state.
451
+ *
452
+ * @param projectCollectionId - Project collection to lock.
453
+ */
454
+ lockProjectCollection(projectCollectionId: string): Promise<void>;
455
+ private prepareProjectTransition;
456
+ private notifyProjectUnloading;
457
+ private completeProjectUnload;
458
+ private completeProjectTransition;
459
+ flushPendingBrainRebuilds(): void;
460
+ get lastUserTileMetadata(): readonly UserTileMetadata[] | undefined;
461
+ /**
462
+ * Error compile diagnostics of the user tile registered under `key` together
463
+ * with the defining source file's path, from the latest workspace compile.
464
+ * Undefined when the tile compiled cleanly, produced only warnings or infos,
465
+ * or is absent from the latest compile. Each stored diagnostic is the
466
+ * compiler's verbatim object, exposing `message`, `severity`, and
467
+ * `line`/`column`.
468
+ */
469
+ getTileCompileDiagnostics(key: ActionKey): TileCompileDiagnostics | undefined;
470
+ get docRevision(): number;
471
+ bumpDocRevision(): void;
472
+ bumpVfsRevision(): void;
473
+ subscribeToDocRevision: (listener: () => void) => (() => void);
474
+ /**
475
+ * Subscribe to brain-diagnostics revision changes for
476
+ * `useSyncExternalStore`. The revision bumps whenever the diagnostics a brain
477
+ * surfaces may have changed: after each extension transaction, after each brain
478
+ * save, and after each workspace compile (which can change a used tile's
479
+ * broken/clean status). Returns an unsubscribe function.
480
+ */
481
+ subscribeToBrainDiagnostics: (listener: () => void) => (() => void);
482
+ /** Snapshot of the current brain-diagnostics revision for `useSyncExternalStore`. */
483
+ getBrainDiagnosticsRevision: () => number;
484
+ private bumpBrainDiagnosticsRevision;
485
+ /**
486
+ * Subscribe to workspace-compile diagnostic changes for
487
+ * `useSyncExternalStore`. The listener fires after every workspace compile
488
+ * and on project unload. Returns an unsubscribe function.
489
+ */
490
+ subscribeToCompileDiagnostics: (listener: () => void) => (() => void);
491
+ /** Snapshot of the latest workspace compile's diagnostics for `useSyncExternalStore`; empty when clean. */
492
+ getCompileDiagnosticsSnapshot: () => readonly WorkspaceCompileDiagnostic[];
493
+ /** Record a compile's per-file diagnostics as one flat located list and notify subscribers. */
494
+ private setCompileDiagnostics;
495
+ getDocRevisionSnapshot: () => number;
496
+ subscribeToVfsRevision: (listener: () => void) => (() => void);
497
+ getVfsRevisionSnapshot: () => number;
498
+ initBridge(): void;
499
+ connectBridge(): void;
500
+ disconnectBridge(): void;
501
+ private teardownBridge;
502
+ updateBridgeUrl(bridgeUrl: string): void;
503
+ subscribeToBridgeStatus: (listener: () => void) => (() => void);
504
+ getBridgeStatusSnapshot: () => AppBridgeState;
505
+ subscribeToBridgeJoinCode: (listener: () => void) => (() => void);
506
+ getBridgeJoinCodeSnapshot: () => string | undefined;
507
+ /**
508
+ * Apply a project file change observed outside the app (a folder-session
509
+ * external edit): applies it to the project file system and the workspace
510
+ * compiler, recompiles, and absorbs any `wendoo.json` manifest change.
511
+ */
512
+ applyExternalProjectFileChange(change: ProjectFileChange): void;
513
+ /**
514
+ * Absorb a project file change made by a remote peer: bumps the VFS
515
+ * revision, and a `wendoo.json` write is diffed against the active
516
+ * manifest -- an extensions change runs through the install transaction and
517
+ * the remaining synced fields patch the manifest. The change itself must
518
+ * already be applied to the project file system.
519
+ */
520
+ handleRemoteProjectFileChange(change: ProjectFileChange): void;
521
+ private wireBridgeState;
522
+ private applyBridgeSnapshot;
523
+ }
524
+ //# sourceMappingURL=app-environment-host.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-environment-host.d.ts","sourceRoot":"","sources":["../src/app-environment-host.ts"],"names":[],"mappings":"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"}