@fias/arche-sdk 2.3.0 → 2.11.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 (54) hide show
  1. package/dist/bridge.d.ts +76 -1
  2. package/dist/bridge.d.ts.map +1 -1
  3. package/dist/bridge.js +219 -6
  4. package/dist/bridge.js.map +1 -1
  5. package/dist/bridge.test.js +155 -6
  6. package/dist/bridge.test.js.map +1 -1
  7. package/dist/coverage-fills.test.js +26 -32
  8. package/dist/coverage-fills.test.js.map +1 -1
  9. package/dist/entity-ops.d.ts +55 -0
  10. package/dist/entity-ops.d.ts.map +1 -0
  11. package/dist/entity-ops.js +48 -0
  12. package/dist/entity-ops.js.map +1 -0
  13. package/dist/fias.d.ts +11 -1
  14. package/dist/fias.d.ts.map +1 -1
  15. package/dist/fias.js +39 -12
  16. package/dist/fias.js.map +1 -1
  17. package/dist/generated/permissions.d.ts +7 -1
  18. package/dist/generated/permissions.d.ts.map +1 -1
  19. package/dist/generated/permissions.js +35 -2
  20. package/dist/generated/permissions.js.map +1 -1
  21. package/dist/generated/surfaces.d.ts +424 -0
  22. package/dist/generated/surfaces.d.ts.map +1 -1
  23. package/dist/generated/surfaces.js +97 -1
  24. package/dist/generated/surfaces.js.map +1 -1
  25. package/dist/hooks.d.ts +228 -13
  26. package/dist/hooks.d.ts.map +1 -1
  27. package/dist/hooks.js +527 -104
  28. package/dist/hooks.js.map +1 -1
  29. package/dist/hooks.test.js +314 -247
  30. package/dist/hooks.test.js.map +1 -1
  31. package/dist/index.d.ts +4 -4
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +12 -2
  34. package/dist/index.js.map +1 -1
  35. package/dist/index.mjs +982 -115
  36. package/dist/protocol.d.ts +7 -0
  37. package/dist/protocol.d.ts.map +1 -1
  38. package/dist/protocol.js +7 -0
  39. package/dist/protocol.js.map +1 -1
  40. package/dist/provider.d.ts +50 -1
  41. package/dist/provider.d.ts.map +1 -1
  42. package/dist/provider.js +187 -2
  43. package/dist/provider.js.map +1 -1
  44. package/dist/provider.render.test.d.ts +17 -0
  45. package/dist/provider.render.test.d.ts.map +1 -0
  46. package/dist/provider.render.test.js +191 -0
  47. package/dist/provider.render.test.js.map +1 -0
  48. package/dist/provider.test.js +64 -8
  49. package/dist/provider.test.js.map +1 -1
  50. package/dist/types.d.ts +373 -27
  51. package/dist/types.d.ts.map +1 -1
  52. package/package.json +2 -1
  53. package/templates/default/AGENTS.md +321 -34
  54. package/templates/default/CLAUDE.md +321 -34
@@ -10,7 +10,7 @@
10
10
  * fails CI if this file is out of sync.
11
11
  */
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.useElevenLabsVoiceDesign = exports.AUDIO_VOICE_DESIGN_SURFACE_KEY = exports.useElevenLabsVoiceChanger = exports.AUDIO_VOICE_CHANGER_SURFACE_KEY = exports.useElevenLabsTts = exports.AUDIO_TTS_SURFACE_KEY = exports.useElevenLabsStt = exports.AUDIO_SPEECH_TO_TEXT_SURFACE_KEY = exports.useElevenLabsSfx = exports.AUDIO_SOUND_EFFECTS_SURFACE_KEY = exports.useElevenLabsMusic = exports.AUDIO_MUSIC_SURFACE_KEY = exports.useLyriaMusic = exports.AUDIO_LYRIA_MUSIC_SURFACE_KEY = exports.useElevenLabsForcedAlignment = exports.AUDIO_FORCED_ALIGNMENT_SURFACE_KEY = exports.useElevenLabsAudioIsolation = exports.AUDIO_AUDIO_ISOLATION_SURFACE_KEY = void 0;
13
+ exports.useIntegrationWebSearch = exports.INTEGRATION_WEB_SEARCH_SURFACE_KEY = exports.useSmartVectorize = exports.IMAGE_SMART_VECTORIZE_SURFACE_KEY = exports.useSmartUpscale = exports.IMAGE_SMART_UPSCALE_SURFACE_KEY = exports.useSmartSearchReplace = exports.IMAGE_SMART_SEARCH_REPLACE_SURFACE_KEY = exports.useSmartSearchRecolor = exports.IMAGE_SMART_SEARCH_RECOLOR_SURFACE_KEY = exports.useSmartReplaceBackground = exports.IMAGE_SMART_REPLACE_BACKGROUND_SURFACE_KEY = exports.useSmartRemoveBackground = exports.IMAGE_SMART_REMOVE_BACKGROUND_SURFACE_KEY = exports.useSmartOutpaint = exports.IMAGE_SMART_OUTPAINT_SURFACE_KEY = exports.useSmartInpaint = exports.IMAGE_SMART_INPAINT_SURFACE_KEY = exports.useSmartImageToImage = exports.IMAGE_SMART_IMAGE_TO_IMAGE_SURFACE_KEY = exports.useSmartErase = exports.IMAGE_SMART_ERASE_SURFACE_KEY = exports.useSmartControl = exports.IMAGE_SMART_CONTROL_SURFACE_KEY = exports.useElevenLabsVoiceDesign = exports.AUDIO_VOICE_DESIGN_SURFACE_KEY = exports.useElevenLabsVoiceChanger = exports.AUDIO_VOICE_CHANGER_SURFACE_KEY = exports.useElevenLabsTts = exports.AUDIO_TTS_SURFACE_KEY = exports.useElevenLabsStt = exports.AUDIO_SPEECH_TO_TEXT_SURFACE_KEY = exports.useElevenLabsSfx = exports.AUDIO_SOUND_EFFECTS_SURFACE_KEY = exports.useElevenLabsMusic = exports.AUDIO_MUSIC_SURFACE_KEY = exports.useLyriaMusic = exports.AUDIO_LYRIA_MUSIC_SURFACE_KEY = exports.useElevenLabsForcedAlignment = exports.AUDIO_FORCED_ALIGNMENT_SURFACE_KEY = exports.useElevenLabsAudioIsolation = exports.AUDIO_AUDIO_ISOLATION_SURFACE_KEY = void 0;
14
14
  const hooks_1 = require("../hooks");
15
15
  exports.AUDIO_AUDIO_ISOLATION_SURFACE_KEY = 'audio.audio-isolation';
16
16
  /**
@@ -84,4 +84,100 @@ exports.AUDIO_VOICE_DESIGN_SURFACE_KEY = 'audio.voice-design';
84
84
  */
85
85
  const useElevenLabsVoiceDesign = () => (0, hooks_1.useSurface)(exports.AUDIO_VOICE_DESIGN_SURFACE_KEY);
86
86
  exports.useElevenLabsVoiceDesign = useElevenLabsVoiceDesign;
87
+ exports.IMAGE_SMART_CONTROL_SURFACE_KEY = 'image.smart-control';
88
+ /**
89
+ * Guided generation from a control image — sketch, structure, style, or style-transfer.
90
+ *
91
+ * Permission: `entities:image_edit`
92
+ */
93
+ const useSmartControl = () => (0, hooks_1.useSurface)(exports.IMAGE_SMART_CONTROL_SURFACE_KEY);
94
+ exports.useSmartControl = useSmartControl;
95
+ exports.IMAGE_SMART_ERASE_SURFACE_KEY = 'image.smart-erase';
96
+ /**
97
+ * Remove a masked object and fill the gap with plausible background.
98
+ *
99
+ * Permission: `entities:image_edit`
100
+ */
101
+ const useSmartErase = () => (0, hooks_1.useSurface)(exports.IMAGE_SMART_ERASE_SURFACE_KEY);
102
+ exports.useSmartErase = useSmartErase;
103
+ exports.IMAGE_SMART_IMAGE_TO_IMAGE_SURFACE_KEY = 'image.smart-image-to-image';
104
+ /**
105
+ * Regenerate an image from a source + prompt, controlling how much to keep.
106
+ *
107
+ * Permission: `entities:image_edit`
108
+ */
109
+ const useSmartImageToImage = () => (0, hooks_1.useSurface)(exports.IMAGE_SMART_IMAGE_TO_IMAGE_SURFACE_KEY);
110
+ exports.useSmartImageToImage = useSmartImageToImage;
111
+ exports.IMAGE_SMART_INPAINT_SURFACE_KEY = 'image.smart-inpaint';
112
+ /**
113
+ * Replace a masked region of an image from a text prompt (Stability / Recraft / OpenAI engines).
114
+ *
115
+ * Permission: `entities:image_edit`
116
+ */
117
+ const useSmartInpaint = () => (0, hooks_1.useSurface)(exports.IMAGE_SMART_INPAINT_SURFACE_KEY);
118
+ exports.useSmartInpaint = useSmartInpaint;
119
+ exports.IMAGE_SMART_OUTPAINT_SURFACE_KEY = 'image.smart-outpaint';
120
+ /**
121
+ * Extend an image beyond its edges, inventing plausible new content.
122
+ *
123
+ * Permission: `entities:image_edit`
124
+ */
125
+ const useSmartOutpaint = () => (0, hooks_1.useSurface)(exports.IMAGE_SMART_OUTPAINT_SURFACE_KEY);
126
+ exports.useSmartOutpaint = useSmartOutpaint;
127
+ exports.IMAGE_SMART_REMOVE_BACKGROUND_SURFACE_KEY = 'image.smart-remove-background';
128
+ /**
129
+ * Remove an image background with Stability/Recraft. Returns a transparent PNG.
130
+ *
131
+ * Permission: `entities:image_edit`
132
+ */
133
+ const useSmartRemoveBackground = () => (0, hooks_1.useSurface)(exports.IMAGE_SMART_REMOVE_BACKGROUND_SURFACE_KEY);
134
+ exports.useSmartRemoveBackground = useSmartRemoveBackground;
135
+ exports.IMAGE_SMART_REPLACE_BACKGROUND_SURFACE_KEY = 'image.smart-replace-background';
136
+ /**
137
+ * Swap the background behind a subject from a prompt and/or reference, with relighting.
138
+ *
139
+ * Permission: `entities:image_edit`
140
+ */
141
+ const useSmartReplaceBackground = () => (0, hooks_1.useSurface)(exports.IMAGE_SMART_REPLACE_BACKGROUND_SURFACE_KEY);
142
+ exports.useSmartReplaceBackground = useSmartReplaceBackground;
143
+ exports.IMAGE_SMART_SEARCH_RECOLOR_SURFACE_KEY = 'image.smart-search-recolor';
144
+ /**
145
+ * Recolor a text-described object while keeping its shape.
146
+ *
147
+ * Permission: `entities:image_edit`
148
+ */
149
+ const useSmartSearchRecolor = () => (0, hooks_1.useSurface)(exports.IMAGE_SMART_SEARCH_RECOLOR_SURFACE_KEY);
150
+ exports.useSmartSearchRecolor = useSmartSearchRecolor;
151
+ exports.IMAGE_SMART_SEARCH_REPLACE_SURFACE_KEY = 'image.smart-search-replace';
152
+ /**
153
+ * Replace a text-described object with new content — no manual mask.
154
+ *
155
+ * Permission: `entities:image_edit`
156
+ */
157
+ const useSmartSearchReplace = () => (0, hooks_1.useSurface)(exports.IMAGE_SMART_SEARCH_REPLACE_SURFACE_KEY);
158
+ exports.useSmartSearchReplace = useSmartSearchReplace;
159
+ exports.IMAGE_SMART_UPSCALE_SURFACE_KEY = 'image.smart-upscale';
160
+ /**
161
+ * Increase image resolution (fast / high-quality / reimagine).
162
+ *
163
+ * Permission: `entities:image_edit`
164
+ */
165
+ const useSmartUpscale = () => (0, hooks_1.useSurface)(exports.IMAGE_SMART_UPSCALE_SURFACE_KEY);
166
+ exports.useSmartUpscale = useSmartUpscale;
167
+ exports.IMAGE_SMART_VECTORIZE_SURFACE_KEY = 'image.smart-vectorize';
168
+ /**
169
+ * Convert a raster image to a scalable SVG. Result mimeType is image/svg+xml.
170
+ *
171
+ * Permission: `entities:image_edit`
172
+ */
173
+ const useSmartVectorize = () => (0, hooks_1.useSurface)(exports.IMAGE_SMART_VECTORIZE_SURFACE_KEY);
174
+ exports.useSmartVectorize = useSmartVectorize;
175
+ exports.INTEGRATION_WEB_SEARCH_SURFACE_KEY = 'integration.web-search';
176
+ /**
177
+ * Search the live web and get a concise, cited summary — a text answer plus the source URLs it used.
178
+ *
179
+ * Permission: `entities:web_search`
180
+ */
181
+ const useIntegrationWebSearch = () => (0, hooks_1.useSurface)(exports.INTEGRATION_WEB_SEARCH_SURFACE_KEY);
182
+ exports.useIntegrationWebSearch = useIntegrationWebSearch;
87
183
  //# sourceMappingURL=surfaces.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"surfaces.js","sourceRoot":"","sources":["../../src/generated/surfaces.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEH,oCAAsC;AAkBzB,QAAA,iCAAiC,GAAG,uBAAgC,CAAC;AAElF;;;;GAIG;AACI,MAAM,2BAA2B,GAAG,GAAG,EAAE,CAC9C,IAAA,kBAAU,EACR,yCAAiC,CAClC,CAAC;AAHS,QAAA,2BAA2B,+BAGpC;AAwBS,QAAA,kCAAkC,GAAG,wBAAiC,CAAC;AAEpF;;;;GAIG;AACI,MAAM,4BAA4B,GAAG,GAAG,EAAE,CAC/C,IAAA,kBAAU,EACR,0CAAkC,CACnC,CAAC;AAHS,QAAA,4BAA4B,gCAGrC;AA2BS,QAAA,6BAA6B,GAAG,mBAA4B,CAAC;AAE1E;;;;GAIG;AACI,MAAM,aAAa,GAAG,GAAG,EAAE,CAChC,IAAA,kBAAU,EAAqC,qCAA6B,CAAC,CAAC;AADnE,QAAA,aAAa,iBACsD;AAoBnE,QAAA,uBAAuB,GAAG,aAAsB,CAAC;AAE9D;;;;GAIG;AACI,MAAM,kBAAkB,GAAG,GAAG,EAAE,CACrC,IAAA,kBAAU,EAA+C,+BAAuB,CAAC,CAAC;AADvE,QAAA,kBAAkB,sBACqD;AAmBvE,QAAA,+BAA+B,GAAG,qBAA8B,CAAC;AAE9E;;;;GAIG;AACI,MAAM,gBAAgB,GAAG,GAAG,EAAE,CACnC,IAAA,kBAAU,EAA2C,uCAA+B,CAAC,CAAC;AAD3E,QAAA,gBAAgB,oBAC2D;AAsB3E,QAAA,gCAAgC,GAAG,sBAA+B,CAAC;AAEhF;;;;GAIG;AACI,MAAM,gBAAgB,GAAG,GAAG,EAAE,CACnC,IAAA,kBAAU,EAA2C,wCAAgC,CAAC,CAAC;AAD5E,QAAA,gBAAgB,oBAC4D;AAyB5E,QAAA,qBAAqB,GAAG,WAAoB,CAAC;AAE1D;;;;GAIG;AACI,MAAM,gBAAgB,GAAG,GAAG,EAAE,CACnC,IAAA,kBAAU,EAA2C,6BAAqB,CAAC,CAAC;AADjE,QAAA,gBAAgB,oBACiD;AAoBjE,QAAA,+BAA+B,GAAG,qBAA8B,CAAC;AAE9E;;;;GAIG;AACI,MAAM,yBAAyB,GAAG,GAAG,EAAE,CAC5C,IAAA,kBAAU,EACR,uCAA+B,CAChC,CAAC;AAHS,QAAA,yBAAyB,6BAGlC;AAkBS,QAAA,8BAA8B,GAAG,oBAA6B,CAAC;AAE5E;;;;GAIG;AACI,MAAM,wBAAwB,GAAG,GAAG,EAAE,CAC3C,IAAA,kBAAU,EACR,sCAA8B,CAC/B,CAAC;AAHS,QAAA,wBAAwB,4BAGjC"}
1
+ {"version":3,"file":"surfaces.js","sourceRoot":"","sources":["../../src/generated/surfaces.ts"],"names":[],"mappings":"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"}
package/dist/hooks.d.ts CHANGED
@@ -1,8 +1,15 @@
1
- import type { FiasUser, FiasTheme, FiasStorageApi, EntityInvocationApi, ImageGenerationApi, ImageEntityFilter, ImageEntitySummary, BackgroundRemovalApi, AudioGenerationApi, FiasNavigationApi, StepNavigationApi, StepNavigationOptions, FiasDataStoreApi, FiasStoreApi, VaultDocumentsApi, VaultDocumentDownloadUrl, ArcheAssetsApi } from './types';
1
+ import type { FiasUser, FiasTheme, FiasStorageApi, DataSubscriptionState, EntityInvocationApi, ClientEntityApi, ImageGenerationApi, ImageEntityFilter, ImageEntitySummary, NllbLanguageOption, AudioGenerationApi, FiasNavigationApi, StepNavigationApi, StepNavigationOptions, FiasDataStoreApi, FiasWorkspacesApi, FiasStoreApi, VaultDocumentsApi, VaultDocumentDownloadUrl, ArcheAssetsApi } from './types';
2
2
  /**
3
3
  * Access the current user's profile information.
4
4
  * Requires the `user:profile:read` permission in fias-plugin.json.
5
5
  *
6
+ * If the `get_user` bridge request fails — most commonly because the plugin
7
+ * called this hook without declaring `user:profile:read` — the error is
8
+ * thrown during render so it surfaces to the nearest error boundary
9
+ * (`FiasProvider` installs one). Previously a failed/denied request left the
10
+ * hook permanently returning `null`, indistinguishable from "still loading",
11
+ * so a UI that gated on `if (!user)` hung on an infinite spinner forever.
12
+ *
6
13
  * @returns The current user's profile or null while loading.
7
14
  */
8
15
  export declare function useFiasUser(): FiasUser | null;
@@ -14,6 +21,22 @@ export declare function useFiasUser(): FiasUser | null;
14
21
  * @returns The current theme tokens or null while loading.
15
22
  */
16
23
  export declare function useFiasTheme(): FiasTheme | null;
24
+ /**
25
+ * Self-hosted asset URLs for a platform-vendored library, for plugins that
26
+ * declare the `sandbox:vendored-libraries` permission. Returns a file-key → URL
27
+ * map (for `pdfjs-dist`: `{ mainModule, worker, cMapUrl, standardFontDataUrl }`),
28
+ * or `null` when the host's CDN is unconfigured or the library isn't vendored
29
+ * (the plugin should then degrade gracefully).
30
+ *
31
+ * Delivered in the init payload (no gated request); values are static for the
32
+ * session. The import specifier is already pinned to its main module via the
33
+ * host importmap, so a plugin typically only needs `worker` (pass to the
34
+ * pdf-core loader's `workerModuleUrl`) and the CMap/font directories.
35
+ *
36
+ * @param importSpecifier The vendored library's bare module name (e.g. `'pdfjs-dist'`).
37
+ * @returns The library's asset URLs, or null if unavailable.
38
+ */
39
+ export declare function useFiasVendoredAssets(importSpecifier: string): Record<string, string> | null;
17
40
  /**
18
41
  * Access the plugin's sandboxed storage.
19
42
  * Requires the `storage:sandbox` permission in fias-plugin.json.
@@ -81,17 +104,65 @@ export declare function useImageEntities(filter?: ImageEntityFilter): {
81
104
  refetch: () => void;
82
105
  };
83
106
  /**
84
- * Remove the background from an image via the bridge's generic
85
- * `client_entity_invoke` op, targeting the imgly background-removal
86
- * entity. The host page runs the WASM model locally — bytes never leave
87
- * the user's device. Returns a transparent PNG.
88
- *
89
- * Requires the `entities:image_remove_background` permission in
90
- * `fias-plugin.json`. Inputs must be a PNG/JPEG `Blob` no larger than
91
- * 25 MiB. The bridge rate-limits to 10 calls/minute per arche per user
92
- * (sourced from the entity's `pluginInvocable.rateLimitPerMinute`).
107
+ * Invoke a client-side ("on-device") entity through the bridge's generic
108
+ * `client_entity_invoke` op. Client-side entities execute entirely in the
109
+ * browser (e.g. the nspell + retext grammar checker, the NLLB-200
110
+ * translator) — input never leaves the device and there is no per-call
111
+ * credit cost.
112
+ *
113
+ * This is the client-side counterpart to {@link useEntityInvocation}, which
114
+ * invokes server-side, credit-billed AI entities. Target an entity by its ID
115
+ * and supply the input shape that entity documents; the typed result flows
116
+ * back through the returned promise:
117
+ *
118
+ * ```tsx
119
+ * const { invoke, isLoading, error } = useClientEntity();
120
+ * const { issues } = await invoke<GrammarCheckInput, GrammarCheckResult>(
121
+ * GRAMMAR_CHECK_ENTITY_ID,
122
+ * { text },
123
+ * );
124
+ * ```
125
+ *
126
+ * Requires the `entities:client_invoke` permission in `fias-plugin.json`.
127
+ * Per-entity rate limits (each entity's `pluginInvocable.rateLimitPerMinute`)
128
+ * are enforced by the host.
129
+ *
130
+ * Input limits are enforced **host-side by each entity's executor**, not by
131
+ * this hook — being generic, it cannot know a given entity's caps (e.g. the
132
+ * grammar entity's 100,000-character limit). Oversized/invalid input is
133
+ * rejected after it crosses the bridge, surfacing as a rejected promise /
134
+ * `error`. If you want to fail fast before the round-trip, pre-validate in
135
+ * your own code against the limits the entity documents.
136
+ */
137
+ export declare function useClientEntity(): ClientEntityApi;
138
+ /**
139
+ * Entity ID of the NLLB-200 on-device translation entity. Exported so plugins
140
+ * can target it via the generic {@link useClientEntity} hook, with
141
+ * `TranslateParams` / `TranslationResult` as the I/O types.
142
+ *
143
+ * SYNC NOTE: must match `NLLB_TRANSLATION_ENTITY_ID` in
144
+ * `packages/entities/src/integrations/nllb-translation/config.ts`. The
145
+ * architecture test `sdk-entity-id-constants-match.test.ts` pins this —
146
+ * drift fails CI.
147
+ */
148
+ export declare const NLLB_TRANSLATION_ENTITY_ID = "ent_intg_nllb_xlate_000000000000";
149
+ /**
150
+ * Curated list of target languages for the NLLB translator, as
151
+ * label/FLORES-200-code pairs. Not exhaustive (NLLB supports 200 languages) —
152
+ * a convenient default set for building a picker. Sorted by label.
93
153
  */
94
- export declare function useBackgroundRemoval(): BackgroundRemovalApi;
154
+ export declare const NLLB_LANGUAGES: readonly NllbLanguageOption[];
155
+ /**
156
+ * Entity ID of the grammar_check client-side entity. Exported so plugins can
157
+ * target it via the generic {@link useClientEntity} hook. Literal here so the
158
+ * SDK stays bundle-clean (no `@fias/entities` runtime dep).
159
+ *
160
+ * SYNC NOTE: must match `GRAMMAR_CHECK_ENTITY_ID` in
161
+ * `packages/entities/src/integrations/grammar-check/config.ts`. The
162
+ * architecture test `sdk-entity-id-constants-match.test.ts` pins this —
163
+ * drift fails CI.
164
+ */
165
+ export declare const GRAMMAR_CHECK_ENTITY_ID = "ent_intg_grammar_check_000000000";
95
166
  /**
96
167
  * Generate audio (music today; future speech/SFX sub-types via the same
97
168
  * hook) via the bridge's `audio_generate` op. Returns an array of clips
@@ -135,9 +206,10 @@ export declare function useSurface<TParams, TResult>(surfaceKey: string, timeout
135
206
  error: Error | null;
136
207
  };
137
208
  /**
138
- * Navigate within the plugin's route space.
209
+ * Navigate within the plugin's route space (`navigateTo`), or open another
210
+ * arche's page (`openArche`, requires the `navigation:open_arche` permission).
139
211
  *
140
- * @returns Navigation API (navigateTo, currentPath).
212
+ * @returns Navigation API (navigateTo, openArche, currentPath).
141
213
  */
142
214
  export declare function useFiasNavigation(): FiasNavigationApi;
143
215
  /**
@@ -190,6 +262,26 @@ export declare function useStepNavigation(initialStep?: string, options?: StepNa
190
262
  * });
191
263
  */
192
264
  export declare function useFiasDataStore(): FiasDataStoreApi;
265
+ /**
266
+ * Access workspace tenancy — team/org workspaces with role-gated membership
267
+ * (owner/admin/member/viewer) over `workspace`-scoped Data Store collections
268
+ * (ADR-010). The creating user becomes the founding owner; a workspace always
269
+ * keeps at least one owner.
270
+ *
271
+ * Requires the `data:workspace` permission in fias-plugin.json. To read/write a
272
+ * workspace's documents, use `useFiasDataStore()` with `{ workspaceId }` on a
273
+ * collection created with `userScope: 'workspace'`.
274
+ *
275
+ * @example
276
+ * const workspaces = useFiasWorkspaces();
277
+ * const ws = await workspaces.create('Acme Corp');
278
+ * await workspaces.addMember(ws.workspaceId, otherUserId, 'member');
279
+ * // then, with useFiasDataStore():
280
+ * await dataStore.put('ledger', 'tx-1', { amount: 100 }, { workspaceId: ws.workspaceId });
281
+ *
282
+ * @returns Workspace API with lifecycle + membership methods.
283
+ */
284
+ export declare function useFiasWorkspaces(): FiasWorkspacesApi;
193
285
  /**
194
286
  * Access the in-arche purchase (IAP) store.
195
287
  * Provides product listing, purchase initiation, entitlement checking,
@@ -240,4 +332,127 @@ export declare function useVaultDocuments(): VaultDocumentsApi;
240
332
  * // entries[i].signedUrl is a short-lived URL you can use as <img src>
241
333
  */
242
334
  export declare function useArcheAssets(): ArcheAssetsApi;
335
+ /**
336
+ * Preserve transient UI state across a builder-preview rebuild.
337
+ *
338
+ * In the arche builder, editing code (or a background cross-device sync)
339
+ * rebuilds the preview, which reloads the iframe and wipes the plugin's
340
+ * in-memory state — losing, for example, a report the user just generated.
341
+ * This hook lets you opt that state into host-side preservation: just before
342
+ * the reload the host snapshots `getState()`, and after the reload it hands the
343
+ * value back to `onRestore`.
344
+ *
345
+ * Inert outside the builder preview (the host never requests a capture), so
346
+ * it's safe to leave in production plugin code.
347
+ *
348
+ * @param key Stable namespace for this slice of state (so multiple calls
349
+ * don't collide). Use a literal like `'report'`.
350
+ * @param getState Returns the current serializable state. Must be JSON-safe.
351
+ * @param onRestore Receives the snapshot after a reload. Reads the latest
352
+ * closure via a ref, so you don't need a stable identity.
353
+ *
354
+ * @example
355
+ * const [report, setReport] = useState<Report | null>(null);
356
+ * useFiasPreviewState('report', () => report, (saved) => setReport(saved as Report));
357
+ */
358
+ export declare function useFiasPreviewState<T>(key: string, getState: () => T, onRestore: (state: T) => void): void;
359
+ /**
360
+ * Subscribes to realtime change events for a datastore collection
361
+ * (ADR-012 Phase M4). Notify-then-refetch: the platform pushes a minimal
362
+ * "this collection changed" invalidation and `onInvalidate` decides what to
363
+ * refetch — typically re-running the `useFiasDataStore().query(...)` your
364
+ * component renders from.
365
+ *
366
+ * Requires the `data:store` permission (same as reading the collection —
367
+ * a live invalidation grants nothing polling couldn't retrieve).
368
+ *
369
+ * Semantics and guarantees:
370
+ * - Best-effort, at-most-once delivery: events can be lost or duplicated;
371
+ * the initial refetch fires AFTER the subscription is live, so a write
372
+ * racing the subscribe is never missed.
373
+ * - `onInvalidate` runs single-flight with one trailing call: a burst of
374
+ * events during an in-flight refetch coalesces into exactly one more.
375
+ * - The host renews authorization periodically; when it definitively ends
376
+ * (`status: 'ended'`), `endedReason` says why — `collection_deleted` and
377
+ * `authorization_revoked` are terminal, others may warrant resubscribing
378
+ * (unmount/remount or toggle `enabled`).
379
+ * - Scope-aware: shared collections notify on any user's writes; user-scoped
380
+ * collections only on yours; workspace-scoped need `workspaceId` and an
381
+ * active membership.
382
+ *
383
+ * @example
384
+ * const dataStore = useFiasDataStore();
385
+ * const [scores, setScores] = useState<DataStoreDocument[]>([]);
386
+ * const refresh = useCallback(async () => {
387
+ * const res = await dataStore.query('scores', { limit: 50 });
388
+ * setScores(res.documents);
389
+ * }, [dataStore]);
390
+ * const { status } = useDataSubscription('scores', refresh);
391
+ */
392
+ export declare function useDataSubscription(collection: string, onInvalidate: () => void | Promise<void>, options?: {
393
+ workspaceId?: string;
394
+ enabled?: boolean;
395
+ }): DataSubscriptionState;
396
+ /** Metadata of a user document this arche holds a grant for. */
397
+ export interface VaultUserDocumentSummary {
398
+ documentId: string;
399
+ name: string;
400
+ mimeType: string | null;
401
+ sizeBytes: number | null;
402
+ sensitivity: string;
403
+ createdAt: string;
404
+ updatedAt: string;
405
+ }
406
+ /** Result of the host picker: what the user picked and confirmed, or a
407
+ * cancel. A cancel is a normal outcome — never treat it as an error. */
408
+ export type VaultUserDocumentPickResult = {
409
+ canceled: true;
410
+ } | {
411
+ documents: Array<Pick<VaultUserDocumentSummary, 'documentId' | 'name' | 'mimeType' | 'sizeBytes'>>;
412
+ };
413
+ export interface VaultUserDocumentsApi {
414
+ /**
415
+ * Open the HOST's Vault picker + consent sheet. The user hand-picks
416
+ * documents and explicitly confirms the grant; your plugin never sees
417
+ * their vault listing — only the picked documents come back. Must be
418
+ * called from a user gesture (a button click), and only works in the
419
+ * published plugin (the preview always resolves `{ canceled: true }`).
420
+ */
421
+ pick(options?: {
422
+ maxDocuments?: number;
423
+ }): Promise<VaultUserDocumentPickResult>;
424
+ /** Documents the user has granted this arche (empty until they pick). */
425
+ list(options?: {
426
+ limit?: number;
427
+ offset?: number;
428
+ }): Promise<VaultUserDocumentSummary[]>;
429
+ /**
430
+ * Read one granted document. `includeContent: true` returns UTF-8 text
431
+ * for text documents (a binary document rejects with BINARY_DOCUMENT —
432
+ * use getDownloadUrl for those). Rejects with DOCUMENT_NOT_FOUND once
433
+ * the user revokes access in Vault → App Access — handle that path.
434
+ */
435
+ get(documentId: string, options?: {
436
+ includeContent?: boolean;
437
+ }): Promise<{
438
+ document: VaultUserDocumentSummary;
439
+ content: string | null;
440
+ }>;
441
+ /** 1-hour signed URL for a granted document's bytes (images, PDFs, …). */
442
+ getDownloadUrl(documentId: string): Promise<{
443
+ url: string;
444
+ expiresAt: number;
445
+ contentType: string | null;
446
+ }>;
447
+ }
448
+ /**
449
+ * Consented access to documents the USER already owns — the only SDK
450
+ * surface that reaches data your plugin did not create. Requires the
451
+ * `vault:user-documents:read` permission. Every access is user-consented
452
+ * (per-document grants created in the host picker, revocable any time in
453
+ * Vault → App Access) and audited by the platform. Proprietary-sensitivity
454
+ * documents are never grantable. For documents your plugin CREATES, use
455
+ * `useVaultDocuments` instead.
456
+ */
457
+ export declare function useVaultUserDocuments(): VaultUserDocumentsApi;
243
458
  //# sourceMappingURL=hooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,QAAQ,EACR,SAAS,EACT,cAAc,EACd,mBAAmB,EAGnB,kBAAkB,EAGlB,iBAAiB,EACjB,kBAAkB,EAElB,oBAAoB,EACpB,kBAAkB,EAGlB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAIhB,YAAY,EAMZ,iBAAiB,EAGjB,wBAAwB,EAUxB,cAAc,EAMf,MAAM,SAAS,CAAC;AA4EjB;;;;;GAKG;AACH,wBAAgB,WAAW,IAAI,QAAQ,GAAG,IAAI,CAe7C;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,IAAI,SAAS,GAAG,IAAI,CAS/C;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,IAAI,cAAc,CAqC/C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,IAAI,mBAAmB,CAoCzD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,IAAI,kBAAkB,CA2BvD;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG;IAC5D,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAiCA;AAkBD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,IAAI,oBAAoB,CAqC3D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,IAAI,kBAAkB,CA2BvD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,SAAU;qBAOjE,OAAO,KAAG,OAAO,CAAC,OAAO,CAAC;;;;EAuB5C;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,iBAAiB,CA6BrD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,CAAC,GACd,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CA4C5C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,iBAAiB,CAiEnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,gBAAgB,IAAI,gBAAgB,CAyFnD;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,IAAI,YAAY,CAqG3C;AA6BD;;;;;GAKG;AACH,wBAAsB,6BAA6B,CACjD,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,wBAAwB,CAAC,CAoCnC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,IAAI,iBAAiB,CAsNrD;AAiBD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,IAAI,cAAc,CAgC/C"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}