@fias/arche-sdk 2.3.0 → 2.10.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 +7 -1
  14. package/dist/fias.d.ts.map +1 -1
  15. package/dist/fias.js +19 -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 +36 -1
  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 +230 -3
  26. package/dist/hooks.d.ts.map +1 -1
  27. package/dist/hooks.js +519 -72
  28. package/dist/hooks.js.map +1 -1
  29. package/dist/hooks.test.js +322 -219
  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 -1
  34. package/dist/index.js.map +1 -1
  35. package/dist/index.mjs +966 -97
  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 +339 -13
  51. package/dist/types.d.ts.map +1 -1
  52. package/package.json +2 -1
  53. package/templates/default/AGENTS.md +328 -26
  54. package/templates/default/CLAUDE.md +328 -26
@@ -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, BackgroundRemovalApi, 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.
@@ -92,6 +115,66 @@ export declare function useImageEntities(filter?: ImageEntityFilter): {
92
115
  * (sourced from the entity's `pluginInvocable.rateLimitPerMinute`).
93
116
  */
94
117
  export declare function useBackgroundRemoval(): BackgroundRemovalApi;
118
+ /**
119
+ * Invoke a client-side ("on-device") entity through the bridge's generic
120
+ * `client_entity_invoke` op. Client-side entities execute entirely in the
121
+ * browser (e.g. the nspell + retext grammar checker, the imgly WASM
122
+ * background remover) — input never leaves the device and there is no
123
+ * per-call credit cost.
124
+ *
125
+ * This is the client-side counterpart to {@link useEntityInvocation}, which
126
+ * invokes server-side, credit-billed AI entities. Target an entity by its ID
127
+ * and supply the input shape that entity documents; the typed result flows
128
+ * back through the returned promise:
129
+ *
130
+ * ```tsx
131
+ * const { invoke, isLoading, error } = useClientEntity();
132
+ * const { issues } = await invoke<GrammarCheckInput, GrammarCheckResult>(
133
+ * GRAMMAR_CHECK_ENTITY_ID,
134
+ * { text },
135
+ * );
136
+ * ```
137
+ *
138
+ * Requires the `entities:client_invoke` permission in `fias-plugin.json`.
139
+ * Per-entity rate limits (each entity's `pluginInvocable.rateLimitPerMinute`)
140
+ * are enforced by the host.
141
+ *
142
+ * Input limits are enforced **host-side by each entity's executor**, not by
143
+ * this hook — being generic, it cannot know a given entity's caps (e.g. the
144
+ * grammar entity's 100,000-character limit). Oversized/invalid input is
145
+ * rejected after it crosses the bridge, surfacing as a rejected promise /
146
+ * `error`. If you want to fail fast before the round-trip, pre-validate in
147
+ * your own code against the limits the entity documents.
148
+ */
149
+ export declare function useClientEntity(): ClientEntityApi;
150
+ /**
151
+ * Entity ID of the NLLB-200 on-device translation entity. Exported so plugins
152
+ * can target it via the generic {@link useClientEntity} hook, with
153
+ * `TranslateParams` / `TranslationResult` as the I/O types.
154
+ *
155
+ * SYNC NOTE: must match `NLLB_TRANSLATION_ENTITY_ID` in
156
+ * `packages/entities/src/integrations/nllb-translation/config.ts`. The
157
+ * architecture test `sdk-entity-id-constants-match.test.ts` pins this —
158
+ * drift fails CI.
159
+ */
160
+ export declare const NLLB_TRANSLATION_ENTITY_ID = "ent_intg_nllb_xlate_000000000000";
161
+ /**
162
+ * Curated list of target languages for the NLLB translator, as
163
+ * label/FLORES-200-code pairs. Not exhaustive (NLLB supports 200 languages) —
164
+ * a convenient default set for building a picker. Sorted by label.
165
+ */
166
+ export declare const NLLB_LANGUAGES: readonly NllbLanguageOption[];
167
+ /**
168
+ * Entity ID of the grammar_check client-side entity. Exported so plugins can
169
+ * target it via the generic {@link useClientEntity} hook. Literal here so the
170
+ * SDK stays bundle-clean (no `@fias/entities` runtime dep).
171
+ *
172
+ * SYNC NOTE: must match `GRAMMAR_CHECK_ENTITY_ID` in
173
+ * `packages/entities/src/integrations/grammar-check/config.ts`. The
174
+ * architecture test `sdk-entity-id-constants-match.test.ts` pins this —
175
+ * drift fails CI.
176
+ */
177
+ export declare const GRAMMAR_CHECK_ENTITY_ID = "ent_intg_grammar_check_000000000";
95
178
  /**
96
179
  * Generate audio (music today; future speech/SFX sub-types via the same
97
180
  * hook) via the bridge's `audio_generate` op. Returns an array of clips
@@ -135,9 +218,10 @@ export declare function useSurface<TParams, TResult>(surfaceKey: string, timeout
135
218
  error: Error | null;
136
219
  };
137
220
  /**
138
- * Navigate within the plugin's route space.
221
+ * Navigate within the plugin's route space (`navigateTo`), or open another
222
+ * arche's page (`openArche`, requires the `navigation:open_arche` permission).
139
223
  *
140
- * @returns Navigation API (navigateTo, currentPath).
224
+ * @returns Navigation API (navigateTo, openArche, currentPath).
141
225
  */
142
226
  export declare function useFiasNavigation(): FiasNavigationApi;
143
227
  /**
@@ -190,6 +274,26 @@ export declare function useStepNavigation(initialStep?: string, options?: StepNa
190
274
  * });
191
275
  */
192
276
  export declare function useFiasDataStore(): FiasDataStoreApi;
277
+ /**
278
+ * Access workspace tenancy — team/org workspaces with role-gated membership
279
+ * (owner/admin/member/viewer) over `workspace`-scoped Data Store collections
280
+ * (ADR-010). The creating user becomes the founding owner; a workspace always
281
+ * keeps at least one owner.
282
+ *
283
+ * Requires the `data:workspace` permission in fias-plugin.json. To read/write a
284
+ * workspace's documents, use `useFiasDataStore()` with `{ workspaceId }` on a
285
+ * collection created with `userScope: 'workspace'`.
286
+ *
287
+ * @example
288
+ * const workspaces = useFiasWorkspaces();
289
+ * const ws = await workspaces.create('Acme Corp');
290
+ * await workspaces.addMember(ws.workspaceId, otherUserId, 'member');
291
+ * // then, with useFiasDataStore():
292
+ * await dataStore.put('ledger', 'tx-1', { amount: 100 }, { workspaceId: ws.workspaceId });
293
+ *
294
+ * @returns Workspace API with lifecycle + membership methods.
295
+ */
296
+ export declare function useFiasWorkspaces(): FiasWorkspacesApi;
193
297
  /**
194
298
  * Access the in-arche purchase (IAP) store.
195
299
  * Provides product listing, purchase initiation, entitlement checking,
@@ -240,4 +344,127 @@ export declare function useVaultDocuments(): VaultDocumentsApi;
240
344
  * // entries[i].signedUrl is a short-lived URL you can use as <img src>
241
345
  */
242
346
  export declare function useArcheAssets(): ArcheAssetsApi;
347
+ /**
348
+ * Preserve transient UI state across a builder-preview rebuild.
349
+ *
350
+ * In the arche builder, editing code (or a background cross-device sync)
351
+ * rebuilds the preview, which reloads the iframe and wipes the plugin's
352
+ * in-memory state — losing, for example, a report the user just generated.
353
+ * This hook lets you opt that state into host-side preservation: just before
354
+ * the reload the host snapshots `getState()`, and after the reload it hands the
355
+ * value back to `onRestore`.
356
+ *
357
+ * Inert outside the builder preview (the host never requests a capture), so
358
+ * it's safe to leave in production plugin code.
359
+ *
360
+ * @param key Stable namespace for this slice of state (so multiple calls
361
+ * don't collide). Use a literal like `'report'`.
362
+ * @param getState Returns the current serializable state. Must be JSON-safe.
363
+ * @param onRestore Receives the snapshot after a reload. Reads the latest
364
+ * closure via a ref, so you don't need a stable identity.
365
+ *
366
+ * @example
367
+ * const [report, setReport] = useState<Report | null>(null);
368
+ * useFiasPreviewState('report', () => report, (saved) => setReport(saved as Report));
369
+ */
370
+ export declare function useFiasPreviewState<T>(key: string, getState: () => T, onRestore: (state: T) => void): void;
371
+ /**
372
+ * Subscribes to realtime change events for a datastore collection
373
+ * (ADR-012 Phase M4). Notify-then-refetch: the platform pushes a minimal
374
+ * "this collection changed" invalidation and `onInvalidate` decides what to
375
+ * refetch — typically re-running the `useFiasDataStore().query(...)` your
376
+ * component renders from.
377
+ *
378
+ * Requires the `data:store` permission (same as reading the collection —
379
+ * a live invalidation grants nothing polling couldn't retrieve).
380
+ *
381
+ * Semantics and guarantees:
382
+ * - Best-effort, at-most-once delivery: events can be lost or duplicated;
383
+ * the initial refetch fires AFTER the subscription is live, so a write
384
+ * racing the subscribe is never missed.
385
+ * - `onInvalidate` runs single-flight with one trailing call: a burst of
386
+ * events during an in-flight refetch coalesces into exactly one more.
387
+ * - The host renews authorization periodically; when it definitively ends
388
+ * (`status: 'ended'`), `endedReason` says why — `collection_deleted` and
389
+ * `authorization_revoked` are terminal, others may warrant resubscribing
390
+ * (unmount/remount or toggle `enabled`).
391
+ * - Scope-aware: shared collections notify on any user's writes; user-scoped
392
+ * collections only on yours; workspace-scoped need `workspaceId` and an
393
+ * active membership.
394
+ *
395
+ * @example
396
+ * const dataStore = useFiasDataStore();
397
+ * const [scores, setScores] = useState<DataStoreDocument[]>([]);
398
+ * const refresh = useCallback(async () => {
399
+ * const res = await dataStore.query('scores', { limit: 50 });
400
+ * setScores(res.documents);
401
+ * }, [dataStore]);
402
+ * const { status } = useDataSubscription('scores', refresh);
403
+ */
404
+ export declare function useDataSubscription(collection: string, onInvalidate: () => void | Promise<void>, options?: {
405
+ workspaceId?: string;
406
+ enabled?: boolean;
407
+ }): DataSubscriptionState;
408
+ /** Metadata of a user document this arche holds a grant for. */
409
+ export interface VaultUserDocumentSummary {
410
+ documentId: string;
411
+ name: string;
412
+ mimeType: string | null;
413
+ sizeBytes: number | null;
414
+ sensitivity: string;
415
+ createdAt: string;
416
+ updatedAt: string;
417
+ }
418
+ /** Result of the host picker: what the user picked and confirmed, or a
419
+ * cancel. A cancel is a normal outcome — never treat it as an error. */
420
+ export type VaultUserDocumentPickResult = {
421
+ canceled: true;
422
+ } | {
423
+ documents: Array<Pick<VaultUserDocumentSummary, 'documentId' | 'name' | 'mimeType' | 'sizeBytes'>>;
424
+ };
425
+ export interface VaultUserDocumentsApi {
426
+ /**
427
+ * Open the HOST's Vault picker + consent sheet. The user hand-picks
428
+ * documents and explicitly confirms the grant; your plugin never sees
429
+ * their vault listing — only the picked documents come back. Must be
430
+ * called from a user gesture (a button click), and only works in the
431
+ * published plugin (the preview always resolves `{ canceled: true }`).
432
+ */
433
+ pick(options?: {
434
+ maxDocuments?: number;
435
+ }): Promise<VaultUserDocumentPickResult>;
436
+ /** Documents the user has granted this arche (empty until they pick). */
437
+ list(options?: {
438
+ limit?: number;
439
+ offset?: number;
440
+ }): Promise<VaultUserDocumentSummary[]>;
441
+ /**
442
+ * Read one granted document. `includeContent: true` returns UTF-8 text
443
+ * for text documents (a binary document rejects with BINARY_DOCUMENT —
444
+ * use getDownloadUrl for those). Rejects with DOCUMENT_NOT_FOUND once
445
+ * the user revokes access in Vault → App Access — handle that path.
446
+ */
447
+ get(documentId: string, options?: {
448
+ includeContent?: boolean;
449
+ }): Promise<{
450
+ document: VaultUserDocumentSummary;
451
+ content: string | null;
452
+ }>;
453
+ /** 1-hour signed URL for a granted document's bytes (images, PDFs, …). */
454
+ getDownloadUrl(documentId: string): Promise<{
455
+ url: string;
456
+ expiresAt: number;
457
+ contentType: string | null;
458
+ }>;
459
+ }
460
+ /**
461
+ * Consented access to documents the USER already owns — the only SDK
462
+ * surface that reaches data your plugin did not create. Requires the
463
+ * `vault:user-documents:read` permission. Every access is user-consented
464
+ * (per-document grants created in the host picker, revocable any time in
465
+ * Vault → App Access) and audited by the platform. Proprietary-sensitivity
466
+ * documents are never grantable. For documents your plugin CREATES, use
467
+ * `useVaultDocuments` instead.
468
+ */
469
+ export declare function useVaultUserDocuments(): VaultUserDocumentsApi;
243
470
  //# 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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"}