@nimbalyst/extension-sdk 0.4.0 → 0.5.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.
package/CHANGELOG.md CHANGED
@@ -8,6 +8,7 @@ The SDK is versioned independently of the Nimbalyst app. Each release declares i
8
8
 
9
9
  | SDK version | Minimum Nimbalyst app version |
10
10
  | --- | --- |
11
+ | 0.5.0 | 0.70.0 |
11
12
  | 0.4.0 | 0.70.0 |
12
13
  | 0.3.0 | 0.70.0 |
13
14
  | 0.2.2 | 0.58.5 |
@@ -18,6 +19,20 @@ The SDK is versioned independently of the Nimbalyst app. Each release declares i
18
19
 
19
20
  ## [Unreleased]
20
21
 
22
+ ## [0.5.0]
23
+
24
+ Still runs on Nimbalyst 0.70.0: a host that declares no capabilities is treated as fully capable, so an extension written against this release keeps working on older desktop builds.
25
+
26
+ ### Added
27
+
28
+ - `host.capabilities` plus `editorHostSupports()` and `editorHostCapabilityGap()` let one editor bundle run in hosts that cannot honour every part of `EditorHost` — check a capability before calling instead of discovering the gap at runtime.
29
+ - `AiAgentProviderContribution` declares `supportsSlashCommands`, `supportsSkills`, and `compaction` instead of having the app infer them; all three default to off, so an unclaimed affordance is hidden rather than offered and silently broken.
30
+ - `AgentProtocol.compactSession()` is the optional real compaction entry point for a transport that has one.
31
+
32
+ ### Changed
33
+
34
+ - `host.filePath` is documented as an opaque document identifier — an absolute path on the desktop host, a synthetic URI on a host with no filesystem. Gate anything that touches disk on the `localFileSave` / `projectFileSystem` capabilities.
35
+
21
36
  ## [0.4.0]
22
37
 
23
38
  ### Added
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=editorHostCapabilities.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editorHostCapabilities.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/editorHostCapabilities.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,24 @@
1
+ // @vitest-environment node
2
+ import { describe, expect, it } from 'vitest';
3
+ import { editorHostCapabilityGap, editorHostSupports, } from '../editorHostCapabilities.js';
4
+ const browserCapabilities = {
5
+ environment: 'browser',
6
+ unavailable: [{ capability: 'localFileSave', reason: 'No file to write.' }],
7
+ supports: (capability) => capability !== 'localFileSave',
8
+ };
9
+ describe('editorHostSupports', () => {
10
+ it('treats a host that makes no claim as fully capable', () => {
11
+ // The Electron renderer predates this contract and implements every
12
+ // member. Answering false there would make every portable extension
13
+ // silently drop features on desktop.
14
+ expect(editorHostSupports({}, 'localFileSave')).toBe(true);
15
+ expect(editorHostCapabilityGap({}, 'localFileSave')).toBeNull();
16
+ });
17
+ it('defers to a host that does declare capabilities', () => {
18
+ const host = { capabilities: browserCapabilities };
19
+ expect(editorHostSupports(host, 'collaboration')).toBe(true);
20
+ expect(editorHostSupports(host, 'localFileSave')).toBe(false);
21
+ expect(editorHostCapabilityGap(host, 'localFileSave')).toBe('No file to write.');
22
+ expect(editorHostCapabilityGap(host, 'collaboration')).toBeNull();
23
+ });
24
+ });
@@ -1,4 +1,4 @@
1
- import { renderHook, waitFor } from '@testing-library/react';
1
+ import { act, renderHook, waitFor } from '@testing-library/react';
2
2
  import { Awareness } from 'y-protocols/awareness';
3
3
  import { describe, expect, it, vi } from 'vitest';
4
4
  import * as Y from 'yjs';
@@ -31,4 +31,46 @@ describe('useCollaborativeEditor offline replica binding', () => {
31
31
  awareness.destroy();
32
32
  yDoc.destroy();
33
33
  });
34
+ it('does not start a second binding while the first async bind is unresolved', async () => {
35
+ const yDoc = new Y.Doc();
36
+ yDoc.getMap('nodes').set('node_root', 'persisted');
37
+ const awareness = new Awareness(yDoc);
38
+ let notifyStatusChange = () => { };
39
+ let finishBind = () => { };
40
+ const bindReady = new Promise((resolve) => {
41
+ finishBind = resolve;
42
+ });
43
+ const destroy = vi.fn();
44
+ const bind = vi.fn(async () => {
45
+ await bindReady;
46
+ return { destroy };
47
+ });
48
+ const host = {
49
+ collaboration: {
50
+ yDoc,
51
+ awareness,
52
+ user: { id: 'offline-user', name: 'Offline User', color: '#123456' },
53
+ getStatus: () => 'disconnected',
54
+ onStatusChange: (callback) => {
55
+ notifyStatusChange = callback;
56
+ return () => { };
57
+ },
58
+ loadInitialContent: vi.fn(async () => 'must not seed offline'),
59
+ },
60
+ };
61
+ const { result, unmount } = renderHook(() => useCollaborativeEditor(host, {
62
+ isEmpty: doc => doc.getMap('nodes').size === 0,
63
+ initializeFromContent: vi.fn(),
64
+ createBinding: bind,
65
+ }));
66
+ await waitFor(() => expect(bind).toHaveBeenCalledTimes(1));
67
+ act(() => notifyStatusChange());
68
+ expect(bind).toHaveBeenCalledTimes(1);
69
+ finishBind();
70
+ await waitFor(() => expect(result.current.binding).not.toBeNull());
71
+ unmount();
72
+ expect(destroy).toHaveBeenCalledTimes(1);
73
+ awareness.destroy();
74
+ yDoc.destroy();
75
+ });
34
76
  });
@@ -229,5 +229,17 @@ export interface AgentProtocol {
229
229
  * @param session - Session to clean up
230
230
  */
231
231
  cleanupSession(session: ProtocolSession): void;
232
+ /**
233
+ * Compact the session's context in-place, if the transport supports it.
234
+ *
235
+ * Optional: a transport that cannot compact simply omits this, and callers
236
+ * must check for it before offering the action. Do NOT emulate compaction by
237
+ * sending a `/compact` string as a user turn -- for transports without a real
238
+ * compaction RPC that reaches the model as literal prompt text and silently
239
+ * does nothing (#1252).
240
+ *
241
+ * @param session - Session whose context should be compacted
242
+ */
243
+ compactSession?(session: ProtocolSession): Promise<void>;
232
244
  }
233
245
  //# sourceMappingURL=AgentProtocol.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentProtocol.d.ts","sourceRoot":"","sources":["../../src/agents/AgentProtocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentProtocol.d.ts","sourceRoot":"","sources":["../../src/agents/AgentProtocol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Reading `EditorHost.capabilities`.
3
+ *
4
+ * One function so the "host makes no claim" case is decided once instead of in
5
+ * every extension. See {@link EditorHostCapabilities}.
6
+ */
7
+ import type { EditorHost, EditorHostCapability } from './types/editor.js';
8
+ /**
9
+ * Whether `host` really provides `capability`.
10
+ *
11
+ * A host with no `capabilities` block is treated as fully capable. That is not
12
+ * an optimistic guess: the only such host is the Electron renderer, which
13
+ * predates this contract and does implement every member. Any host that cannot
14
+ * -- the browser collaborative host, and anything after it -- is required to
15
+ * populate `capabilities`, so "absent" and "incapable" never overlap.
16
+ *
17
+ * ```ts
18
+ * if (editorHostSupports(host, 'localFileSave')) {
19
+ * await host.saveContent(serialize());
20
+ * }
21
+ * ```
22
+ */
23
+ export declare function editorHostSupports(host: Pick<EditorHost, 'capabilities'>, capability: EditorHostCapability): boolean;
24
+ /**
25
+ * The host's stated reason for withholding `capability`, or null when it is
26
+ * available (or the host makes no claim). For diagnostics and degraded-mode
27
+ * copy -- never branch on the string itself, branch on
28
+ * {@link editorHostSupports}.
29
+ */
30
+ export declare function editorHostCapabilityGap(host: Pick<EditorHost, 'capabilities'>, capability: EditorHostCapability): string | null;
31
+ //# sourceMappingURL=editorHostCapabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editorHostCapabilities.d.ts","sourceRoot":"","sources":["../src/editorHostCapabilities.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,oBAAoB,EACrB,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,EACtC,UAAU,EAAE,oBAAoB,GAC/B,OAAO,CAET;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,EACtC,UAAU,EAAE,oBAAoB,GAC/B,MAAM,GAAG,IAAI,CAIf"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Reading `EditorHost.capabilities`.
3
+ *
4
+ * One function so the "host makes no claim" case is decided once instead of in
5
+ * every extension. See {@link EditorHostCapabilities}.
6
+ */
7
+ /**
8
+ * Whether `host` really provides `capability`.
9
+ *
10
+ * A host with no `capabilities` block is treated as fully capable. That is not
11
+ * an optimistic guess: the only such host is the Electron renderer, which
12
+ * predates this contract and does implement every member. Any host that cannot
13
+ * -- the browser collaborative host, and anything after it -- is required to
14
+ * populate `capabilities`, so "absent" and "incapable" never overlap.
15
+ *
16
+ * ```ts
17
+ * if (editorHostSupports(host, 'localFileSave')) {
18
+ * await host.saveContent(serialize());
19
+ * }
20
+ * ```
21
+ */
22
+ export function editorHostSupports(host, capability) {
23
+ return host.capabilities ? host.capabilities.supports(capability) : true;
24
+ }
25
+ /**
26
+ * The host's stated reason for withholding `capability`, or null when it is
27
+ * available (or the host makes no claim). For diagnostics and degraded-mode
28
+ * copy -- never branch on the string itself, branch on
29
+ * {@link editorHostSupports}.
30
+ */
31
+ export function editorHostCapabilityGap(host, capability) {
32
+ const gap = host.capabilities?.unavailable
33
+ .find((entry) => entry.capability === capability);
34
+ return gap ? gap.reason : null;
35
+ }
package/dist/index.d.ts CHANGED
@@ -25,7 +25,8 @@
25
25
  export { REQUIRED_EXTERNALS, EXTERNAL_PATTERNS, ROLLUP_EXTERNALS, type RequiredExternal, } from './externals.js';
26
26
  export * from './types/index.js';
27
27
  export { useEditorLifecycle, type UseEditorLifecycleOptions, type UseEditorLifecycleResult, type DiffState, } from './useEditorLifecycle.js';
28
- export { useCollaborativeEditor, COLLAB_INIT_ORIGIN, type UseCollaborativeEditorConfig, type UseCollaborativeEditorResult, } from './useCollaborativeEditor.js';
28
+ export { editorHostSupports, editorHostCapabilityGap, } from './editorHostCapabilities.js';
29
+ export { useCollaborativeEditor, COLLAB_INIT_ORIGIN, type UseCollaborativeEditorConfig, type UseCollaborativeEditorResult, type CollaborativeBindingHandle, } from './useCollaborativeEditor.js';
29
30
  export { createTextCollabContentAdapter, reconstructCollabContentAdapterFromDescriptor, TEXT_COLLAB_DEFAULT_FIELD, type TextCollabContentAdapterOptions, } from './collab/createTextCollabContentAdapter.js';
30
31
  export { applyTextDiff, replaceYText, type ApplyTextEdit, } from './collab/textReplacement.js';
31
32
  export { useDocumentPath, type DocumentPathContextValue, } from './documentPath.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,gBAAgB,GACtB,MAAM,gBAAgB,CAAC;AAGxB,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EACL,kBAAkB,EAClB,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,SAAS,GACf,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,GAClC,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,8BAA8B,EAC9B,6CAA6C,EAC7C,yBAAyB,EACzB,KAAK,+BAA+B,GACrC,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EACL,aAAa,EACb,YAAY,EACZ,KAAK,aAAa,GACnB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,eAAe,EACf,KAAK,wBAAwB,GAC9B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAIrD,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,GACjC,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,mBAAmB,GACzB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGhE,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,4BAA4B,EAC5B,iBAAiB,EACjB,KAAK,iBAAiB,GACvB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,KAAK,gBAAgB,GACtB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,EACzB,uBAAuB,EACvB,iCAAiC,EACjC,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,GAClC,MAAM,yBAAyB,CAAC;AAYjC,YAAY,EACV,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,UAAU,IAAI,kBAAkB,EAChC,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,GAClB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,gBAAgB,GACtB,MAAM,gBAAgB,CAAC;AAGxB,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EACL,kBAAkB,EAClB,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,SAAS,GACf,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EACjC,KAAK,0BAA0B,GAChC,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,8BAA8B,EAC9B,6CAA6C,EAC7C,yBAAyB,EACzB,KAAK,+BAA+B,GACrC,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EACL,aAAa,EACb,YAAY,EACZ,KAAK,aAAa,GACnB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,eAAe,EACf,KAAK,wBAAwB,GAC9B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAIrD,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,GACjC,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,mBAAmB,GACzB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGhE,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,4BAA4B,EAC5B,iBAAiB,EACjB,KAAK,iBAAiB,GACvB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,KAAK,gBAAgB,GACtB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,EACzB,uBAAuB,EACvB,iCAAiC,EACjC,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,GAClC,MAAM,yBAAyB,CAAC;AAYjC,YAAY,EACV,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,UAAU,IAAI,kBAAkB,EAChC,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,GAClB,MAAM,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -28,6 +28,7 @@ export { REQUIRED_EXTERNALS, EXTERNAL_PATTERNS, ROLLUP_EXTERNALS, } from './exte
28
28
  export * from './types/index.js';
29
29
  // Re-export hooks
30
30
  export { useEditorLifecycle, } from './useEditorLifecycle.js';
31
+ export { editorHostSupports, editorHostCapabilityGap, } from './editorHostCapabilities.js';
31
32
  export { useCollaborativeEditor, COLLAB_INIT_ORIGIN, } from './useCollaborativeEditor.js';
32
33
  export { createTextCollabContentAdapter, reconstructCollabContentAdapterFromDescriptor, TEXT_COLLAB_DEFAULT_FIELD, } from './collab/createTextCollabContentAdapter.js';
33
34
  export { applyTextDiff, replaceYText, } from './collab/textReplacement.js';
@@ -152,6 +152,21 @@ export interface CollaborationContext {
152
152
  * Excalidraw scene JSON) deterministically so dedupe-on-hash is stable.
153
153
  */
154
154
  registerRevisionAdapter?(adapter: RevisionSnapshotAdapter): () => void;
155
+ /**
156
+ * Register a synchronous drain of the editor's pending local content into the
157
+ * Y.Doc. The returned function unregisters it -- call it on unmount.
158
+ *
159
+ * A binding that debounces its local pushes holds the newest edit outside the
160
+ * CRDT until the debounce fires. The host awaits this before it reports a
161
+ * write as complete -- notably after every mutating extension AI tool -- so an
162
+ * agent edit is in the Y.Doc and server-acked before the tool returns.
163
+ * Without it the tool reports success while the edit is still in the
164
+ * debounce, and a peer update landing in that window discards it: the same
165
+ * loss window that direct keystrokes close by calling `syncNow()`.
166
+ *
167
+ * Bindings that write through to the Y.Doc synchronously do not need this.
168
+ */
169
+ registerContentFlush?(flush: () => void | Promise<void>): () => void;
155
170
  }
156
171
  /**
157
172
  * Editor-supplied snapshot round-trip for collaborative revision history.
@@ -178,6 +193,87 @@ export interface RevisionSnapshotAdapter {
178
193
  */
179
194
  readonly previewKind?: 'text' | 'metadata-only';
180
195
  }
196
+ /**
197
+ * A thing an editor might want to do that not every host can provide.
198
+ *
199
+ * The same extension bundle now runs in more than one host: the Electron
200
+ * renderer (filesystem, AI panel, Monaco source mode) and a browser host
201
+ * driving a collaborative document (none of those). Optional members of
202
+ * {@link EditorHost} already answer "can I do X" by being absent, but the
203
+ * required ones -- `saveContent`, `onFileChanged`, `storage`,
204
+ * `setEditorContext` -- cannot disappear, and a host that stubs them into
205
+ * resolved no-ops tells the editor a write succeeded when nothing was written.
206
+ *
207
+ * A host that cannot do one of these must both (a) report it here so the
208
+ * editor can branch BEFORE calling, and (b) fail loudly if called anyway.
209
+ */
210
+ export type EditorHostCapability =
211
+ /** `host.collaboration` is present and drives document state. */
212
+ 'collaboration'
213
+ /** Remote presence/awareness is transported to other clients. */
214
+ | 'presence'
215
+ /** `setDirty` reaches a real dirty indicator. */
216
+ | 'dirtyState'
217
+ /** `theme` / `onThemeChanged` reflect the host's real theme. */
218
+ | 'theme'
219
+ /** `readOnly` / `onReadOnlyChanged` reflect a real host mode. */
220
+ | 'readOnly'
221
+ /** `visible` / `onVisibilityChanged` report real on-screen visibility. */
222
+ | 'visibility'
223
+ /** `loadContent` returns the document's own content. */
224
+ | 'initialContent'
225
+ /** `loadBinaryContent` returns real bytes. */
226
+ | 'binaryContent'
227
+ /** `saveContent` writes the document to a local file. */
228
+ | 'localFileSave'
229
+ /** `onFileChanged` fires when the backing file changes out of band. */
230
+ | 'fileChangeNotifications'
231
+ /** `host.fs` is present: workspace-wide compare-and-swap file access. */
232
+ | 'projectFileSystem'
233
+ /** `workspaceId` identifies a real workspace. */
234
+ | 'workspace'
235
+ /** `openHistory` opens document history. */
236
+ | 'history'
237
+ /** `openExternal` opens a URL outside the app. */
238
+ | 'externalLinks'
239
+ /** Source-mode toggle (`toggleSourceMode` and friends). */
240
+ | 'sourceMode'
241
+ /** AI diff review (`onDiffRequested` and friends). */
242
+ | 'diffMode'
243
+ /** `onFindRequested` delivers the app's Find command. */
244
+ | 'findCommand'
245
+ /** `setEditorContext` / `setEditorContextItems` reach an AI chat surface. */
246
+ | 'aiContext'
247
+ /** `registerEditorAPI` publishes the editor to AI tools. */
248
+ | 'editorApi'
249
+ /** `registerMenuItems` reaches a real actions menu. */
250
+ | 'menuItems'
251
+ /** `storage` survives a reload. */
252
+ | 'persistentStorage'
253
+ /** `storage.getSecret` / `setSecret` reach a real secret store. */
254
+ | 'secretStorage'
255
+ /** `getConfig` reads extension configuration. */
256
+ | 'configuration';
257
+ /** Why a host cannot provide a capability. Shown in diagnostics, not to users. */
258
+ export interface EditorHostCapabilityGap {
259
+ capability: EditorHostCapability;
260
+ reason: string;
261
+ }
262
+ /**
263
+ * What this host can and cannot do, answered up front.
264
+ *
265
+ * Present only on hosts that model capabilities. `undefined` means "this host
266
+ * makes no claim" -- see {@link editorHostSupports} for the one place that
267
+ * decision is interpreted, so extensions never re-derive it.
268
+ */
269
+ export interface EditorHostCapabilities {
270
+ /** Stable id of the host environment, e.g. `'browser'`. */
271
+ readonly environment: string;
272
+ /** True when this host really provides `capability`. */
273
+ supports(capability: EditorHostCapability): boolean;
274
+ /** Every capability this host cannot provide, each with a reason. */
275
+ readonly unavailable: readonly EditorHostCapabilityGap[];
276
+ }
181
277
  /**
182
278
  * Context that an editor pushes to the chat panel.
183
279
  * When set, the chat UI shows an indicator and includes this context
@@ -287,7 +383,24 @@ export interface DiffResult {
287
383
  * ```
288
384
  */
289
385
  export interface EditorHost {
290
- /** Absolute path to the file being edited */
386
+ /**
387
+ * What this host can and cannot do. Read it through
388
+ * {@link editorHostSupports} rather than directly, so the "host makes no
389
+ * claim" case is interpreted in exactly one place.
390
+ *
391
+ * Optional: the Electron renderer omits it (it provides everything). A host
392
+ * that cannot honour part of this interface -- the browser collaborative
393
+ * host -- populates it, and rejects the calls it declares unavailable.
394
+ */
395
+ readonly capabilities?: EditorHostCapabilities;
396
+ /**
397
+ * Identifier for the document being edited.
398
+ *
399
+ * On the Electron host this is an absolute path on disk. On a host with no
400
+ * filesystem it is a stable synthetic URI for the same document; treat it as
401
+ * an opaque key (registry lookups, React keys) and gate anything that
402
+ * actually touches disk on `projectFileSystem` / `localFileSave`.
403
+ */
291
404
  readonly filePath: string;
292
405
  /** File name (for display) */
293
406
  readonly fileName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../src/types/editor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../src/types/editor.ts"],"names":[],"mappings":"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"}
@@ -112,6 +112,30 @@ export interface AiAgentProviderContribution {
112
112
  * documents) on a turn. Defaults to `false`.
113
113
  */
114
114
  supportsAttachments?: boolean;
115
+ /**
116
+ * Whether the provider can enumerate slash commands it will genuinely
117
+ * service. Defaults to `false`.
118
+ *
119
+ * These three default to "no" on purpose. An extension that says nothing
120
+ * gets the affordance hidden, not offered-and-silently-broken: a command the
121
+ * agent never interprets reaches its model as literal prompt text and does
122
+ * nothing, which the user cannot tell apart from "ran and did nothing".
123
+ */
124
+ supportsSlashCommands?: boolean;
125
+ /**
126
+ * Whether the provider can enumerate skills it can resolve.
127
+ * Defaults to `false`.
128
+ */
129
+ supportsSkills?: boolean;
130
+ /**
131
+ * How the provider compacts a session's context, if at all.
132
+ *
133
+ * - `'rpc'`: the backend module implements `AgentProtocol.compactSession`.
134
+ * - `'slash-command'`: the agent itself interprets a `/compact` user turn.
135
+ *
136
+ * Defaults to `'unsupported'`.
137
+ */
138
+ compaction?: 'rpc' | 'slash-command' | 'unsupported';
115
139
  /** How model discovery is performed. */
116
140
  modelDiscovery: AiAgentProviderModelDiscovery;
117
141
  /**
@@ -539,6 +563,15 @@ export interface CustomEditorContribution {
539
563
  collaboration?: {
540
564
  supported: boolean;
541
565
  awarenessFields?: string[];
566
+ /**
567
+ * User-facing explanation shown in place of the generic "does not declare a
568
+ * collaborative editor binding" text when `supported` is false.
569
+ *
570
+ * Use it when an editor *has* a binding but sharing is known to lose data,
571
+ * so the disabled reason names the actual defect rather than implying the
572
+ * work was never started. Ignored when `supported` is true.
573
+ */
574
+ unsupportedReason?: string;
542
575
  };
543
576
  }
544
577
  export interface DocumentHeaderContribution {
@@ -1 +1 @@
1
- {"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../../src/types/extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../../src/types/extension.ts"],"names":[],"mappings":"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"}
@@ -49,11 +49,7 @@ export interface CollabBindContext {
49
49
  color: string;
50
50
  };
51
51
  }
52
- export type CollabBindResult = {
53
- destroy: () => void;
54
- } | Promise<{
55
- destroy: () => void;
56
- }>;
52
+ export type CollabBindResult = CollaborativeBindingHandle | Promise<CollaborativeBindingHandle>;
57
53
  /**
58
54
  * Preferred config: pass the SAME pure {@link CollabCodec} the extension
59
55
  * registered via `context.services.collab.registerContentAdapter(...)`, plus
@@ -117,6 +113,17 @@ export interface UseCollaborativeEditorLegacyConfig {
117
113
  }): void;
118
114
  }
119
115
  export type UseCollaborativeEditorConfig = UseCollaborativeEditorCodecConfig | UseCollaborativeEditorLegacyConfig;
116
+ /**
117
+ * What a binding factory returns. `syncNow` is optional and opt-in: a binding
118
+ * that debounces its local pushes should expose it so the hook can register it
119
+ * as the host's pending-content drain (see
120
+ * `CollaborationContext.registerContentFlush`). Bindings that write through to
121
+ * the Y.Doc synchronously can omit it.
122
+ */
123
+ export interface CollaborativeBindingHandle {
124
+ destroy: () => void;
125
+ syncNow?: () => void | Promise<void>;
126
+ }
120
127
  export interface UseCollaborativeEditorResult {
121
128
  /** True when `host.collaboration` is defined. */
122
129
  isCollaborative: boolean;
@@ -131,9 +138,7 @@ export interface UseCollaborativeEditorResult {
131
138
  * The binding handle once the binding factory has run, or `null` until
132
139
  * collaboration is ready / when not collab.
133
140
  */
134
- binding: {
135
- destroy: () => void;
136
- } | null;
141
+ binding: CollaborativeBindingHandle | null;
137
142
  /**
138
143
  * Non-null when the first-open seed failed or its flush was not confirmed by
139
144
  * the server. Hosts read this to surface the failure (pending-seed toast)
@@ -1 +1 @@
1
- {"version":3,"file":"useCollaborativeEditor.d.ts","sourceRoot":"","sources":["../src/useCollaborativeEditor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAGH,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,KAAK,EAEV,mBAAmB,EACnB,gBAAgB,EAChB,UAAU,EACX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAA2B,MAAM,mBAAmB,CAAC;AAG9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,wEAAwE;AACxE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC;IACZ,SAAS,EAAE,OAAO,uBAAuB,EAAE,SAAS,CAAC;IACrD,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACnD;AAED,MAAM,MAAM,gBAAgB,GACxB;IAAE,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,GACvB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC,CAAC;AAErC;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,iCAAiC;IAChD,kFAAkF;IAClF,KAAK,EAAE,WAAW,CAAC;IAEnB;;;;;OAKG;IACH,IAAI,CAAC,GAAG,EAAE,iBAAiB,GAAG,gBAAgB,CAAC;IAE/C;;;;OAIG;IACH,aAAa,CAAC,CAAC,OAAO,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;CACjE;AAED;;;;;GAKG;AACH,MAAM,WAAW,kCAAkC;IACjD,kDAAkD;IAClD,aAAa,CAAC,GAAG,EAAE,iBAAiB,GAAG,gBAAgB,CAAC;IAExD;;;OAGG;IACH,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC;IAE/B;;;;;;OAMG;IACH,qBAAqB,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAAC;IAExE,aAAa,CAAC,CAAC,OAAO,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;CACjE;AAED,MAAM,MAAM,4BAA4B,GACpC,iCAAiC,GACjC,kCAAkC,CAAC;AAEvC,MAAM,WAAW,4BAA4B;IAC3C,iDAAiD;IACjD,eAAe,EAAE,OAAO,CAAC;IACzB,0EAA0E;IAC1E,MAAM,EAAE,mBAAmB,CAAC;IAC5B;;;OAGG;IACH,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC7C;;;OAGG;IACH,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IACxC;;;;OAIG;IACH,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;CAC3B;AAyCD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,IAAI,GAAG,SAAS,GAC5D,OAAO,CAIT;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,4BAA4B,GACnC,4BAA4B,CAmL9B"}
1
+ {"version":3,"file":"useCollaborativeEditor.d.ts","sourceRoot":"","sources":["../src/useCollaborativeEditor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAGH,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,KAAK,EAEV,mBAAmB,EACnB,gBAAgB,EAChB,UAAU,EACX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAA2B,MAAM,mBAAmB,CAAC;AAG9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,wEAAwE;AACxE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC;IACZ,SAAS,EAAE,OAAO,uBAAuB,EAAE,SAAS,CAAC;IACrD,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACnD;AAED,MAAM,MAAM,gBAAgB,GACxB,0BAA0B,GAC1B,OAAO,CAAC,0BAA0B,CAAC,CAAC;AAExC;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,iCAAiC;IAChD,kFAAkF;IAClF,KAAK,EAAE,WAAW,CAAC;IAEnB;;;;;OAKG;IACH,IAAI,CAAC,GAAG,EAAE,iBAAiB,GAAG,gBAAgB,CAAC;IAE/C;;;;OAIG;IACH,aAAa,CAAC,CAAC,OAAO,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;CACjE;AAED;;;;;GAKG;AACH,MAAM,WAAW,kCAAkC;IACjD,kDAAkD;IAClD,aAAa,CAAC,GAAG,EAAE,iBAAiB,GAAG,gBAAgB,CAAC;IAExD;;;OAGG;IACH,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC;IAE/B;;;;;;OAMG;IACH,qBAAqB,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAAC;IAExE,aAAa,CAAC,CAAC,OAAO,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;CACjE;AAED,MAAM,MAAM,4BAA4B,GACpC,iCAAiC,GACjC,kCAAkC,CAAC;AAEvC;;;;;;GAMG;AACH,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,4BAA4B;IAC3C,iDAAiD;IACjD,eAAe,EAAE,OAAO,CAAC;IACzB,0EAA0E;IAC1E,MAAM,EAAE,mBAAmB,CAAC;IAC5B;;;OAGG;IACH,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC7C;;;OAGG;IACH,OAAO,EAAE,0BAA0B,GAAG,IAAI,CAAC;IAC3C;;;;OAIG;IACH,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;CAC3B;AAyCD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,IAAI,GAAG,SAAS,GAC5D,OAAO,CAIT;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,4BAA4B,GACnC,4BAA4B,CAoM9B"}
@@ -139,8 +139,10 @@ export function useCollaborativeEditor(host, config) {
139
139
  return;
140
140
  let cancelled = false;
141
141
  let handle = null;
142
+ let starting = false;
143
+ let unregisterContentFlush = null;
142
144
  const tryStart = async () => {
143
- if (cancelled || handle)
145
+ if (cancelled || handle || starting)
144
146
  return;
145
147
  const cfg = resolveConfig(configRef.current);
146
148
  const connected = collab.getStatus() === 'connected';
@@ -149,86 +151,100 @@ export function useCollaborativeEditor(host, config) {
149
151
  // can reopen offline; only first-open seeding requires a live transport.
150
152
  if (!connected && cfg.isEmpty(collab.yDoc))
151
153
  return;
152
- // NEVER seed when the transport skipped payloads it could not decode:
153
- // the Y.Doc looking empty then means "content exists but is unreadable
154
- // on this client", and seeding would write a default document over the
155
- // real content for every client (the "Untitled map" clobber).
156
- const undecoded = collab.hasUndecodedContent?.() === true;
157
- if (connected && !undecoded && cfg.isEmpty(collab.yDoc)) {
158
- try {
159
- const content = await collab.loadInitialContent();
160
- if (cancelled)
161
- return;
162
- // NEVER seed from empty content. A host that has no bytes for this
163
- // document (reopen of an already-shared doc: no in-memory share
164
- // payload, no file) returns ''/empty -- seeding from that writes a
165
- // default document into the shared room and clobbers whatever the
166
- // room's real content is for every client. Fall through to bind:
167
- // the room content (or a teammate's seed) will populate the doc.
168
- if (!hasSeedableContent(content)) {
169
- console.warn('[useCollaborativeEditor] Skipping first-open seed: host returned empty initial content.');
170
- }
171
- // Re-check emptiness in case another client seeded while we were
172
- // awaiting -- they would have raced through the WebSocket and
173
- // applied their update during our await gap. Avoid double-seeding
174
- // in that case; CRDT merge would otherwise insert duplicate
175
- // content unless the seed is fully deterministic.
176
- else if (cfg.isEmpty(collab.yDoc)) {
177
- collab.yDoc.transact(() => {
178
- cfg.seed(collab.yDoc, content);
179
- }, COLLAB_INIT_ORIGIN);
180
- // Durability: the seed the user sees locally must reach the server
181
- // before this provider can tear down. flushWithAck resolves only
182
- // after a server-persisted ack; flushLocalState is the deprecated
183
- // fire-and-forget fallback for older hosts.
184
- const flushed = collab.flushWithAck
185
- ? await collab.flushWithAck()
186
- : (await collab.flushLocalState?.(), true);
187
- if (!flushed) {
188
- const err = new Error('Seed flush was not confirmed by the server before timeout; content may not have persisted.');
189
- console.warn('[useCollaborativeEditor]', err.message);
190
- setSeedError(err);
191
- collab.reportSeedOutcome?.({ ok: false, error: err });
192
- cfg.onSeedOutcome?.({ ok: false, error: err });
154
+ starting = true;
155
+ try {
156
+ // NEVER seed when the transport skipped payloads it could not decode:
157
+ // the Y.Doc looking empty then means "content exists but is unreadable
158
+ // on this client", and seeding would write a default document over the
159
+ // real content for every client (the "Untitled map" clobber).
160
+ const undecoded = collab.hasUndecodedContent?.() === true;
161
+ if (connected && !undecoded && cfg.isEmpty(collab.yDoc)) {
162
+ try {
163
+ const content = await collab.loadInitialContent();
164
+ if (cancelled)
165
+ return;
166
+ // NEVER seed from empty content. A host that has no bytes for this
167
+ // document (reopen of an already-shared doc: no in-memory share
168
+ // payload, no file) returns ''/empty -- seeding from that writes a
169
+ // default document into the shared room and clobbers whatever the
170
+ // room's real content is for every client. Fall through to bind:
171
+ // the room content (or a teammate's seed) will populate the doc.
172
+ if (!hasSeedableContent(content)) {
173
+ console.warn('[useCollaborativeEditor] Skipping first-open seed: host returned empty initial content.');
193
174
  }
194
- else {
195
- setSeedError(null);
196
- collab.reportSeedOutcome?.({ ok: true });
197
- cfg.onSeedOutcome?.({ ok: true });
175
+ // Re-check emptiness in case another client seeded while we were
176
+ // awaiting -- they would have raced through the WebSocket and
177
+ // applied their update during our await gap. Avoid double-seeding
178
+ // in that case; CRDT merge would otherwise insert duplicate
179
+ // content unless the seed is fully deterministic.
180
+ else if (cfg.isEmpty(collab.yDoc)) {
181
+ collab.yDoc.transact(() => {
182
+ cfg.seed(collab.yDoc, content);
183
+ }, COLLAB_INIT_ORIGIN);
184
+ // Durability: the seed the user sees locally must reach the server
185
+ // before this provider can tear down. flushWithAck resolves only
186
+ // after a server-persisted ack; flushLocalState is the deprecated
187
+ // fire-and-forget fallback for older hosts.
188
+ const flushed = collab.flushWithAck
189
+ ? await collab.flushWithAck()
190
+ : (await collab.flushLocalState?.(), true);
191
+ if (!flushed) {
192
+ const err = new Error('Seed flush was not confirmed by the server before timeout; content may not have persisted.');
193
+ console.warn('[useCollaborativeEditor]', err.message);
194
+ setSeedError(err);
195
+ collab.reportSeedOutcome?.({ ok: false, error: err });
196
+ cfg.onSeedOutcome?.({ ok: false, error: err });
197
+ }
198
+ else {
199
+ setSeedError(null);
200
+ collab.reportSeedOutcome?.({ ok: true });
201
+ cfg.onSeedOutcome?.({ ok: true });
202
+ }
198
203
  }
199
204
  }
205
+ catch (err) {
206
+ console.error('[useCollaborativeEditor] Failed to load/seed initial content:', err);
207
+ setSeedError(err);
208
+ collab.reportSeedOutcome?.({ ok: false, error: err });
209
+ cfg.onSeedOutcome?.({ ok: false, error: err });
210
+ // Continue with bind -- the doc may still be usable once another
211
+ // client seeds it.
212
+ }
200
213
  }
201
- catch (err) {
202
- console.error('[useCollaborativeEditor] Failed to load/seed initial content:', err);
203
- setSeedError(err);
204
- collab.reportSeedOutcome?.({ ok: false, error: err });
205
- cfg.onSeedOutcome?.({ ok: false, error: err });
206
- // Continue with bind -- the doc may still be usable once another
207
- // client seeds it.
208
- }
209
- }
210
- if (cancelled)
211
- return;
212
- const created = cfg.bind({
213
- yDoc: collab.yDoc,
214
- awareness: collab.awareness,
215
- user: collab.user,
216
- });
217
- const resolved = created instanceof Promise ? await created : created;
218
- if (cancelled) {
219
- // Effect unmounted while we were awaiting the extension's
220
- // imperative API. Destroy the freshly-built handle so any
221
- // observers/awareness subscriptions inside it get cleaned up.
222
- try {
223
- resolved.destroy();
214
+ if (cancelled)
215
+ return;
216
+ const created = cfg.bind({
217
+ yDoc: collab.yDoc,
218
+ awareness: collab.awareness,
219
+ user: collab.user,
220
+ });
221
+ const resolved = created instanceof Promise ? await created : created;
222
+ if (cancelled) {
223
+ // Effect unmounted while we were awaiting the extension's
224
+ // imperative API. Destroy the freshly-built handle so any
225
+ // observers/awareness subscriptions inside it get cleaned up.
226
+ try {
227
+ resolved.destroy();
228
+ }
229
+ catch (err) {
230
+ console.error('[useCollaborativeEditor] post-cancel destroy failed:', err);
231
+ }
232
+ return;
224
233
  }
225
- catch (err) {
226
- console.error('[useCollaborativeEditor] post-cancel destroy failed:', err);
234
+ handle = resolved;
235
+ // A binding that debounces its local pushes holds the newest edit
236
+ // outside the CRDT. Hand the host a drain so it can complete a write
237
+ // before reporting it done -- notably after a mutating AI tool, which
238
+ // otherwise returns success while the edit is still in the debounce.
239
+ if (typeof handle.syncNow === 'function') {
240
+ const syncNow = handle.syncNow.bind(handle);
241
+ unregisterContentFlush = collab.registerContentFlush?.(syncNow) ?? null;
227
242
  }
228
- return;
243
+ setBinding(handle);
244
+ }
245
+ finally {
246
+ starting = false;
229
247
  }
230
- handle = resolved;
231
- setBinding(handle);
232
248
  };
233
249
  void tryStart();
234
250
  const unsubscribe = collab.onStatusChange(() => {
@@ -237,6 +253,8 @@ export function useCollaborativeEditor(host, config) {
237
253
  return () => {
238
254
  cancelled = true;
239
255
  unsubscribe();
256
+ unregisterContentFlush?.();
257
+ unregisterContentFlush = null;
240
258
  if (handle) {
241
259
  handle.destroy();
242
260
  handle = null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nimbalyst/extension-sdk",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "SDK for building Nimbalyst extensions",
5
5
  "repository": {
6
6
  "type": "git",