@fias/arche-sdk 2.19.1 → 2.20.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/dist/entity-ops.d.ts +7 -4
- package/dist/entity-ops.d.ts.map +1 -1
- package/dist/entity-ops.js +7 -4
- package/dist/entity-ops.js.map +1 -1
- package/dist/generated/permissions.d.ts +1 -1
- package/dist/generated/permissions.d.ts.map +1 -1
- package/dist/generated/permissions.js +16 -12
- package/dist/generated/permissions.js.map +1 -1
- package/dist/hooks.d.ts +136 -6
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +324 -24
- package/dist/hooks.js.map +1 -1
- package/dist/hooks.test.js +414 -2
- package/dist/hooks.test.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +274 -35
- package/dist/types.d.ts +280 -24
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/templates/default/AGENTS.md +191 -18
- package/templates/default/CLAUDE.md +191 -18
package/dist/entity-ops.d.ts
CHANGED
|
@@ -30,10 +30,13 @@ export declare const PLUGIN_STORE_ENTITY_ID = "ent_intg_plugin_store_0000000000"
|
|
|
30
30
|
/** Vault Documents entity — plugins may reach ONLY its consented-read verbs
|
|
31
31
|
* (user-granted documents via the host picker; `vault:user-documents:read`). */
|
|
32
32
|
export declare const VAULT_USER_DOCUMENTS_ENTITY_ID = "ent_intg_vault_documents_0000000";
|
|
33
|
-
/** Vault Arche Documents — documents THIS arche created.
|
|
34
|
-
* `get_own_document_bytes` (`vault:documents:read`) and
|
|
35
|
-
* `save_own_document_content`
|
|
36
|
-
*
|
|
33
|
+
/** Vault Arche Documents — documents THIS arche created.
|
|
34
|
+
* `get_own_document_bytes` (`vault:documents:read`), and the in-place save:
|
|
35
|
+
* `save_own_document_content` for small text, or — driven by the HOST, since
|
|
36
|
+
* the iframe cannot PUT — `init_own_document_save` /
|
|
37
|
+
* `finalize_own_document_save` for bytes and large text (all three
|
|
38
|
+
* additionally `vault:documents:write`). `useVaultDocuments` already derives
|
|
39
|
+
* both permissions, and `saveContent` picks the lane. */
|
|
37
40
|
export declare const VAULT_ARCHE_DOCUMENTS_ENTITY_ID = "ent_intg_vault_arche_docs_000000";
|
|
38
41
|
/** Community Assets — user-published, moderated images readable by every
|
|
39
42
|
* authenticated user of the SAME arche. `assets:community:read` for the read
|
package/dist/entity-ops.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-ops.d.ts","sourceRoot":"","sources":["../src/entity-ops.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,eAAO,MAAM,wBAAwB,qCAAqC,CAAC;AAC3E,eAAO,MAAM,0BAA0B,qCAAqC,CAAC;AAC7E,eAAO,MAAM,2BAA2B,qCAAqC,CAAC;AAC9E,eAAO,MAAM,sBAAsB,qCAAqC,CAAC;AACzE;gFACgF;AAChF,eAAO,MAAM,8BAA8B,qCAAqC,CAAC;AACjF
|
|
1
|
+
{"version":3,"file":"entity-ops.d.ts","sourceRoot":"","sources":["../src/entity-ops.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,eAAO,MAAM,wBAAwB,qCAAqC,CAAC;AAC3E,eAAO,MAAM,0BAA0B,qCAAqC,CAAC;AAC7E,eAAO,MAAM,2BAA2B,qCAAqC,CAAC;AAC9E,eAAO,MAAM,sBAAsB,qCAAqC,CAAC;AACzE;gFACgF;AAChF,eAAO,MAAM,8BAA8B,qCAAqC,CAAC;AACjF;;;;;;yDAMyD;AACzD,eAAO,MAAM,+BAA+B,qCAAqC,CAAC;AAClF;;;iEAGiE;AACjE,eAAO,MAAM,0BAA0B,qCAAqC,CAAC;AAE7E;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAChD,eAAO,MAAM,iCAAiC,KAAK,CAAC;AAEpD;;;;;;;;;;;;GAYG;AACH,wBAAsB,cAAc,CAAC,CAAC,EACpC,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,EACV,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACjC,OAAO,CAAC,CAAC,CAAC,CAMZ;AAED;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAAC,CAAC,EACnC,MAAM,EAAE,UAAU,EAClB,EAAE,EAAE,MAAM,EACV,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACjC,OAAO,CAAC,CAAC,CAAC,CAKZ"}
|
package/dist/entity-ops.js
CHANGED
|
@@ -10,10 +10,13 @@ exports.PLUGIN_STORE_ENTITY_ID = 'ent_intg_plugin_store_0000000000';
|
|
|
10
10
|
/** Vault Documents entity — plugins may reach ONLY its consented-read verbs
|
|
11
11
|
* (user-granted documents via the host picker; `vault:user-documents:read`). */
|
|
12
12
|
exports.VAULT_USER_DOCUMENTS_ENTITY_ID = 'ent_intg_vault_documents_0000000';
|
|
13
|
-
/** Vault Arche Documents — documents THIS arche created.
|
|
14
|
-
* `get_own_document_bytes` (`vault:documents:read`) and
|
|
15
|
-
* `save_own_document_content`
|
|
16
|
-
*
|
|
13
|
+
/** Vault Arche Documents — documents THIS arche created.
|
|
14
|
+
* `get_own_document_bytes` (`vault:documents:read`), and the in-place save:
|
|
15
|
+
* `save_own_document_content` for small text, or — driven by the HOST, since
|
|
16
|
+
* the iframe cannot PUT — `init_own_document_save` /
|
|
17
|
+
* `finalize_own_document_save` for bytes and large text (all three
|
|
18
|
+
* additionally `vault:documents:write`). `useVaultDocuments` already derives
|
|
19
|
+
* both permissions, and `saveContent` picks the lane. */
|
|
17
20
|
exports.VAULT_ARCHE_DOCUMENTS_ENTITY_ID = 'ent_intg_vault_arche_docs_000000';
|
|
18
21
|
/** Community Assets — user-published, moderated images readable by every
|
|
19
22
|
* authenticated user of the SAME arche. `assets:community:read` for the read
|
package/dist/entity-ops.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-ops.js","sourceRoot":"","sources":["../src/entity-ops.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"entity-ops.js","sourceRoot":"","sources":["../src/entity-ops.ts"],"names":[],"mappings":";;;AA4EA,wCAWC;AAWD,sCASC;AAjFY,QAAA,wBAAwB,GAAG,kCAAkC,CAAC;AAC9D,QAAA,0BAA0B,GAAG,kCAAkC,CAAC;AAChE,QAAA,2BAA2B,GAAG,kCAAkC,CAAC;AACjE,QAAA,sBAAsB,GAAG,kCAAkC,CAAC;AACzE;gFACgF;AACnE,QAAA,8BAA8B,GAAG,kCAAkC,CAAC;AACjF;;;;;;yDAMyD;AAC5C,QAAA,+BAA+B,GAAG,kCAAkC,CAAC;AAClF;;;iEAGiE;AACpD,QAAA,0BAA0B,GAAG,kCAAkC,CAAC;AAE7E;;;;;;;;;;;;GAYG;AACU,QAAA,6BAA6B,GAAG,EAAE,CAAC;AACnC,QAAA,iCAAiC,GAAG,EAAE,CAAC;AAEpD;;;;;;;;;;;;GAYG;AACI,KAAK,UAAU,cAAc,CAClC,MAAkB,EAClB,QAAgB,EAChB,EAAU,EACV,OAAgC,EAAE;IAElC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAgB,eAAe,EAAE;QAC/D,QAAQ;QACR,OAAO,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE;KACzB,CAAC,CAAC;IACH,OAAO,GAAG,CAAC,MAAM,CAAC;AACpB,CAAC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,aAAa,CACjC,MAAkB,EAClB,EAAU,EACV,OAAgC,EAAE;IAElC,OAAO,MAAM,CAAC,OAAO,CAAI,eAAe,EAAE;QACxC,QAAQ,EAAE,8BAAsB;QAChC,OAAO,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE;KACzB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* `tests/architecture/sdk-permissions-match-db-types.test.ts` ensures
|
|
10
10
|
* this file stays in lockstep with the canonical source.
|
|
11
11
|
*/
|
|
12
|
-
export type PluginPermission = 'ai:actions' | 'assets:community:publish' | 'assets:community:read' | 'assets:read' | 'data:search' | 'data:store' | 'data:workspace' | 'entities:audio_generate' | 'entities:client_invoke' | 'entities:image_edit' | 'entities:image_generate' | 'entities:invoke' | 'entities:web_search' | 'navigation:open_arche' | 'sandbox:vendored-libraries' | 'storage:sandbox' | 'store:purchase' | 'theme:read' | 'user:profile:read' | 'vault:documents:read' | 'vault:documents:write' | 'vault:user-documents:read' | 'vault:user-documents:write';
|
|
12
|
+
export type PluginPermission = 'ai:actions' | 'assets:community:publish' | 'assets:community:read' | 'assets:read' | 'data:search' | 'data:store' | 'data:workspace' | 'entities:audio_generate' | 'entities:client_invoke' | 'entities:image_edit' | 'entities:image_generate' | 'entities:invoke' | 'entities:web_search' | 'navigation:open_arche' | 'sandbox:vendored-libraries' | 'storage:sandbox' | 'store:purchase' | 'theme:read' | 'user:profile:read' | 'vault:arche-saves:write' | 'vault:documents:read' | 'vault:documents:write' | 'vault:user-documents:edit' | 'vault:user-documents:read' | 'vault:user-documents:write';
|
|
13
13
|
export declare const VALID_PLUGIN_PERMISSIONS: readonly PluginPermission[];
|
|
14
14
|
export declare function isValidPluginPermission(perm: string): perm is PluginPermission;
|
|
15
15
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/generated/permissions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,gBAAgB,GACxB,YAAY,GACZ,0BAA0B,GAC1B,uBAAuB,GACvB,aAAa,GACb,aAAa,GACb,YAAY,GACZ,gBAAgB,GAChB,yBAAyB,GACzB,wBAAwB,GACxB,qBAAqB,GACrB,yBAAyB,GACzB,iBAAiB,GACjB,qBAAqB,GACrB,uBAAuB,GACvB,4BAA4B,GAC5B,iBAAiB,GACjB,gBAAgB,GAChB,YAAY,GACZ,mBAAmB,GACnB,sBAAsB,GACtB,uBAAuB,GACvB,2BAA2B,GAC3B,4BAA4B,CAAC;AAEjC,eAAO,MAAM,wBAAwB,EAAE,SAAS,gBAAgB,
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/generated/permissions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,gBAAgB,GACxB,YAAY,GACZ,0BAA0B,GAC1B,uBAAuB,GACvB,aAAa,GACb,aAAa,GACb,YAAY,GACZ,gBAAgB,GAChB,yBAAyB,GACzB,wBAAwB,GACxB,qBAAqB,GACrB,yBAAyB,GACzB,iBAAiB,GACjB,qBAAqB,GACrB,uBAAuB,GACvB,4BAA4B,GAC5B,iBAAiB,GACjB,gBAAgB,GAChB,YAAY,GACZ,mBAAmB,GACnB,yBAAyB,GACzB,sBAAsB,GACtB,uBAAuB,GACvB,2BAA2B,GAC3B,2BAA2B,GAC3B,4BAA4B,CAAC;AAEjC,eAAO,MAAM,wBAAwB,EAAE,SAAS,gBAAgB,EA0BtD,CAAC;AAEX,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,gBAAgB,CAE9E;AAED;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,EAAE,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAkCrF,CAAC"}
|
|
@@ -33,8 +33,10 @@ exports.VALID_PLUGIN_PERMISSIONS = [
|
|
|
33
33
|
'store:purchase',
|
|
34
34
|
'theme:read',
|
|
35
35
|
'user:profile:read',
|
|
36
|
+
'vault:arche-saves:write',
|
|
36
37
|
'vault:documents:read',
|
|
37
38
|
'vault:documents:write',
|
|
39
|
+
'vault:user-documents:edit',
|
|
38
40
|
'vault:user-documents:read',
|
|
39
41
|
'vault:user-documents:write',
|
|
40
42
|
];
|
|
@@ -47,12 +49,12 @@ function isValidPluginPermission(perm) {
|
|
|
47
49
|
* PLUGIN_PERMISSION_DESCRIPTIONS.
|
|
48
50
|
*/
|
|
49
51
|
exports.PLUGIN_PERMISSION_DESCRIPTIONS = {
|
|
50
|
-
'ai:actions': 'Let Fias AI operate this
|
|
51
|
-
'assets:community:publish': 'Share images you made here so other people using this
|
|
52
|
-
'assets:community:read': 'Show you images that other people using this
|
|
53
|
-
'assets:read': "Show images from this
|
|
54
|
-
'data:search': "Search this
|
|
55
|
-
'data:store': "Save structured data in this
|
|
52
|
+
'ai:actions': 'Let Fias AI operate this arche for you — only actions you could do yourself in its interface, and risky ones ask you first.',
|
|
53
|
+
'assets:community:publish': 'Share images you made here so other people using this arche can see them, and manage what you have shared.',
|
|
54
|
+
'assets:community:read': 'Show you images that other people using this arche have shared. Everything shared is checked before anyone can see it.',
|
|
55
|
+
'assets:read': "Show images from this arche's published asset library.",
|
|
56
|
+
'data:search': "Search this arche's own data semantically — costs credits per search.",
|
|
57
|
+
'data:store': "Save structured data in this arche's own private database.",
|
|
56
58
|
'data:workspace': 'Create team workspaces and manage their members.',
|
|
57
59
|
'entities:audio_generate': 'Generate audio with platform AI — costs credits.',
|
|
58
60
|
'entities:client_invoke': 'Use free on-device tools (grammar check, translation) in your browser.',
|
|
@@ -62,13 +64,15 @@ exports.PLUGIN_PERMISSION_DESCRIPTIONS = {
|
|
|
62
64
|
'entities:web_search': 'Search the live web on your behalf — costs credits.',
|
|
63
65
|
'navigation:open_arche': 'Open other arches for you (navigation only).',
|
|
64
66
|
'sandbox:vendored-libraries': 'Load platform-hosted libraries (like the PDF renderer) from the trusted CDN.',
|
|
65
|
-
'storage:sandbox': "Save files in this
|
|
66
|
-
'store:purchase': 'Offer
|
|
67
|
+
'storage:sandbox': "Save files in this arche's own private storage.",
|
|
68
|
+
'store:purchase': 'Offer purchases inside the arche (you approve each purchase).',
|
|
67
69
|
'theme:read': 'Match your platform theme.',
|
|
68
70
|
'user:profile:read': 'See your display name and avatar.',
|
|
69
|
-
'vault:
|
|
70
|
-
'vault:documents:
|
|
71
|
-
'vault:
|
|
72
|
-
'vault:user-documents:
|
|
71
|
+
'vault:arche-saves:write': 'Saves files to your Arche Saves automatically.',
|
|
72
|
+
'vault:documents:read': 'Read files this arche itself created, in its own folders of your Vault.',
|
|
73
|
+
'vault:documents:write': 'Create and manage its own files, in its own folder of your Vault.',
|
|
74
|
+
'vault:user-documents:edit': 'Save changes to files of yours that you let it edit — you choose each file, earlier versions are kept unless you turned version history off, and you can remove access any time in Vault → Arche Access.',
|
|
75
|
+
'vault:user-documents:read': 'Read documents YOU choose to share with it from your Vault — you pick each document, and you can remove access any time in Vault → Arche Access.',
|
|
76
|
+
'vault:user-documents:write': 'Save its work to your Documents — you choose the folder and the name each time.',
|
|
73
77
|
};
|
|
74
78
|
//# sourceMappingURL=permissions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/generated/permissions.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/generated/permissions.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAyDH,0DAEC;AA9BY,QAAA,wBAAwB,GAAgC;IACnE,YAAY;IACZ,0BAA0B;IAC1B,uBAAuB;IACvB,aAAa;IACb,aAAa;IACb,YAAY;IACZ,gBAAgB;IAChB,yBAAyB;IACzB,wBAAwB;IACxB,qBAAqB;IACrB,yBAAyB;IACzB,iBAAiB;IACjB,qBAAqB;IACrB,uBAAuB;IACvB,4BAA4B;IAC5B,iBAAiB;IACjB,gBAAgB;IAChB,YAAY;IACZ,mBAAmB;IACnB,yBAAyB;IACzB,sBAAsB;IACtB,uBAAuB;IACvB,2BAA2B;IAC3B,2BAA2B;IAC3B,4BAA4B;CACpB,CAAC;AAEX,SAAgB,uBAAuB,CAAC,IAAY;IAClD,OAAQ,gCAA8C,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxE,CAAC;AAED;;;;GAIG;AACU,QAAA,8BAA8B,GAA+C;IACxF,YAAY,EACV,6HAA6H;IAC/H,0BAA0B,EACxB,4GAA4G;IAC9G,uBAAuB,EACrB,wHAAwH;IAC1H,aAAa,EAAE,wDAAwD;IACvE,aAAa,EAAE,uEAAuE;IACtF,YAAY,EAAE,4DAA4D;IAC1E,gBAAgB,EAAE,kDAAkD;IACpE,yBAAyB,EAAE,kDAAkD;IAC7E,wBAAwB,EACtB,wEAAwE;IAC1E,qBAAqB,EAAE,+CAA+C;IACtE,yBAAyB,EAAE,mDAAmD;IAC9E,iBAAiB,EAAE,wDAAwD;IAC3E,qBAAqB,EAAE,qDAAqD;IAC5E,uBAAuB,EAAE,8CAA8C;IACvE,4BAA4B,EAC1B,8EAA8E;IAChF,iBAAiB,EAAE,iDAAiD;IACpE,gBAAgB,EAAE,+DAA+D;IACjF,YAAY,EAAE,4BAA4B;IAC1C,mBAAmB,EAAE,mCAAmC;IACxD,yBAAyB,EAAE,gDAAgD;IAC3E,sBAAsB,EAAE,yEAAyE;IACjG,uBAAuB,EAAE,mEAAmE;IAC5F,2BAA2B,EACzB,0MAA0M;IAC5M,2BAA2B,EACzB,kJAAkJ;IACpJ,4BAA4B,EAC1B,iFAAiF;CACpF,CAAC"}
|
package/dist/hooks.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ArcheHandoffPayload, FiasUser, FiasTheme, FiasStorageApi, DataSubscriptionState, EntityInvocationApi, ClientEntityApi, ImageGenerationApi, ImageEntityFilter, ImageEntitySummary, NllbLanguageOption, AudioGenerationApi, FiasNavigationApi, StepNavigationApi, StepNavigationOptions, FiasDataStoreApi, FiasWorkspacesApi, FiasStoreApi, VaultDocumentsApi, VaultDocumentDownloadUrl, ArcheAssetsApi, CommunityAssetsApi, FiasAIActionsDeclaration } from './types';
|
|
1
|
+
import type { ArcheHandoffPayload, FiasUser, FiasTheme, FiasStorageApi, DataSubscriptionState, EntityInvocationApi, ClientEntityApi, ImageGenerationApi, ImageEntityFilter, ImageEntitySummary, NllbLanguageOption, AudioGenerationApi, FiasNavigationApi, StepNavigationApi, StepNavigationOptions, FiasDataStoreApi, FiasWorkspacesApi, FiasStoreApi, VaultDocumentsApi, VaultDocumentDownloadUrl, VaultUserDocumentSaveContentResult, ArcheAssetsApi, FiasContentApi, FiasContentErrorCode, CommunityAssetsApi, FiasAIActionsDeclaration } 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.
|
|
@@ -342,6 +342,46 @@ export declare function useVaultDocuments(): VaultDocumentsApi;
|
|
|
342
342
|
* // entries[i].signedUrl is a short-lived URL you can use as <img src>
|
|
343
343
|
*/
|
|
344
344
|
export declare function useArcheAssets(): ArcheAssetsApi;
|
|
345
|
+
/**
|
|
346
|
+
* Entity ID of the plugin content pack client-side entity (ADR-021) — the
|
|
347
|
+
* host-side reader behind {@link useFiasContent}. Literal here so the SDK
|
|
348
|
+
* stays bundle-clean (no `@fias/entities` runtime dep).
|
|
349
|
+
*
|
|
350
|
+
* SYNC NOTE: must match `PLUGIN_CONTENT_ENTITY_ID` in
|
|
351
|
+
* `packages/entities/src/integrations/plugin-content/config.ts`. The
|
|
352
|
+
* architecture test `sdk-entity-id-constants-match.test.ts` pins this.
|
|
353
|
+
*/
|
|
354
|
+
export declare const PLUGIN_CONTENT_ENTITY_ID = "ent_intg_plugin_content_00000000";
|
|
355
|
+
/** A failed content read: `code` says why, `path` names the file when there is one. */
|
|
356
|
+
export declare class FiasContentError extends Error {
|
|
357
|
+
readonly code: FiasContentErrorCode;
|
|
358
|
+
readonly path?: string | undefined;
|
|
359
|
+
constructor(message: string, code: FiasContentErrorCode, path?: string | undefined);
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* Read this plugin's own content pack — the reviewed `content/` directory it
|
|
363
|
+
* was published with (lessons, data, images, audio, fonts).
|
|
364
|
+
*
|
|
365
|
+
* The host page reads the pack from the Fias content CDN, verifies every file
|
|
366
|
+
* against its hash, and caches it; nothing here touches the network, and a
|
|
367
|
+
* plugin can only read its own pack. Reads are free for your users; the
|
|
368
|
+
* contributor pays the pack's storage and bandwidth, and cached repeat reads
|
|
369
|
+
* cost nothing.
|
|
370
|
+
*
|
|
371
|
+
* Paths are relative to `content/`. In the Arche Builder and developer
|
|
372
|
+
* previews there is no published pack: calls fail with
|
|
373
|
+
* `CONTENT_UNAVAILABLE_IN_PREVIEW` (the dev harness serves your local
|
|
374
|
+
* `content/` instead).
|
|
375
|
+
*
|
|
376
|
+
* Permission: `entities:client_invoke`.
|
|
377
|
+
*
|
|
378
|
+
* @example
|
|
379
|
+
* const content = useFiasContent();
|
|
380
|
+
* const lessons = await content.list('lessons/');
|
|
381
|
+
* const markdown = await content.getText(lessons[0].path);
|
|
382
|
+
* const cover = await content.getObjectUrl('img/cover.webp'); // <img src={cover}>
|
|
383
|
+
*/
|
|
384
|
+
export declare function useFiasContent(): FiasContentApi;
|
|
345
385
|
/**
|
|
346
386
|
* Preserve transient UI state across a builder-preview rebuild.
|
|
347
387
|
*
|
|
@@ -412,14 +452,41 @@ export interface VaultUserDocumentSummary {
|
|
|
412
452
|
sensitivity: string;
|
|
413
453
|
createdAt: string;
|
|
414
454
|
updatedAt: string;
|
|
455
|
+
/**
|
|
456
|
+
* What the user lets you do with this document: `'read'` (open it) or
|
|
457
|
+
* `'write'` (also save changes to it — see `saveContent`). Open a `'read'`
|
|
458
|
+
* document read-only, and call `requestEditAccess` when the user starts
|
|
459
|
+
* editing. Optional: absent on hosts that predate edit access — treat
|
|
460
|
+
* absent as `'read'`.
|
|
461
|
+
*/
|
|
462
|
+
access?: 'read' | 'write';
|
|
463
|
+
/**
|
|
464
|
+
* Opaque token naming the document's current CONTENT. REQUIRED by
|
|
465
|
+
* `saveContent` as `expectedRevision` — it is the user's file and they may
|
|
466
|
+
* be changing it elsewhere. Never parse it.
|
|
467
|
+
*/
|
|
468
|
+
revision?: string;
|
|
415
469
|
}
|
|
416
470
|
/** Result of the host picker: what the user picked and confirmed, or a
|
|
417
471
|
* cancel. A cancel is a normal outcome — never treat it as an error. */
|
|
418
472
|
export type VaultUserDocumentPickResult = {
|
|
419
473
|
canceled: true;
|
|
420
474
|
} | {
|
|
421
|
-
documents: Array<Pick<VaultUserDocumentSummary, 'documentId' | 'name' | 'mimeType' | 'sizeBytes'
|
|
475
|
+
documents: Array<Pick<VaultUserDocumentSummary, 'documentId' | 'name' | 'mimeType' | 'sizeBytes'> & {
|
|
476
|
+
/** What the user granted for this document. */
|
|
477
|
+
access?: 'read' | 'write';
|
|
478
|
+
}>;
|
|
422
479
|
};
|
|
480
|
+
/** Input to `useVaultUserDocuments().saveContent`. */
|
|
481
|
+
export interface VaultUserDocumentSaveContentParams {
|
|
482
|
+
documentId: string;
|
|
483
|
+
/** The new content, up to 15 MB: a `string` (UTF-8 text — the document must
|
|
484
|
+
* be a text type) or bytes. Transport is chosen for you. The document's
|
|
485
|
+
* TYPE cannot change, so there is no `contentType`. */
|
|
486
|
+
content: string | Uint8Array | ArrayBuffer | Blob;
|
|
487
|
+
/** REQUIRED. The `revision` you last saw for this document. */
|
|
488
|
+
expectedRevision: string;
|
|
489
|
+
}
|
|
423
490
|
export interface VaultUserDocumentsApi {
|
|
424
491
|
/**
|
|
425
492
|
* Open the HOST's Vault picker + consent sheet. The user hand-picks
|
|
@@ -430,7 +497,62 @@ export interface VaultUserDocumentsApi {
|
|
|
430
497
|
*/
|
|
431
498
|
pick(options?: {
|
|
432
499
|
maxDocuments?: number;
|
|
500
|
+
/** Ask for EDIT access: the user is shown a consent that says your app
|
|
501
|
+
* may CHANGE what they pick. Needs `vault:user-documents:edit` IN
|
|
502
|
+
* ADDITION TO `vault:user-documents:read` — `:edit` does not include
|
|
503
|
+
* `:read`, and every method of this hook (this one included) is gated
|
|
504
|
+
* on `:read`. */
|
|
505
|
+
access?: 'read' | 'write';
|
|
506
|
+
/**
|
|
507
|
+
* The types you can open: MIME types (`'application/pdf'`), MIME
|
|
508
|
+
* families (`'image/*'`) or extensions (`'.docx'`), up to 20. The host
|
|
509
|
+
* offers matching files; the user can still reveal the rest, shown
|
|
510
|
+
* disabled. Omitted: every type.
|
|
511
|
+
*/
|
|
512
|
+
accept?: readonly string[];
|
|
433
513
|
}): Promise<VaultUserDocumentPickResult>;
|
|
514
|
+
/**
|
|
515
|
+
* Ask the user to let you EDIT a document you can already open. The host
|
|
516
|
+
* shows its own consent for that one file — no picker — and resolves with
|
|
517
|
+
* the document (now `access: 'write'`), or `{ canceled: true }`. Call it
|
|
518
|
+
* from a user gesture, when the user actually starts editing — not on open,
|
|
519
|
+
* and not again right after a decline. Needs `vault:user-documents:edit`
|
|
520
|
+
* together with `vault:user-documents:read`.
|
|
521
|
+
* If you hold no grant on the document the host shows the ordinary picker
|
|
522
|
+
* instead, so you learn nothing about files you were not given.
|
|
523
|
+
*
|
|
524
|
+
* CHECK THE RESULT — a resolved promise is not "you may now edit
|
|
525
|
+
* `documentId`". Because of that picker fallback the one document that
|
|
526
|
+
* comes back may be a DIFFERENT one the user chose, and the user may have
|
|
527
|
+
* answered from a sheet that offered view-only. Proceed only when
|
|
528
|
+
* `documents[0].documentId === documentId` and `documents[0].access ===
|
|
529
|
+
* 'write'`; treat anything else (including `{ canceled: true }`) as "no".
|
|
530
|
+
*/
|
|
531
|
+
requestEditAccess(documentId: string): Promise<VaultUserDocumentPickResult>;
|
|
532
|
+
/**
|
|
533
|
+
* Save changes, IN PLACE, to a document the user has given you EDIT access
|
|
534
|
+
* to — same `documentId`, so nothing attached to it detaches. Text or bytes,
|
|
535
|
+
* up to 15 MB; one method, transport chosen for you.
|
|
536
|
+
*
|
|
537
|
+
* Manifest: `vault:user-documents:edit` AND `vault:user-documents:read`.
|
|
538
|
+
* Declaring `:edit` alone is not enough — it does not include `:read`.
|
|
539
|
+
*
|
|
540
|
+
* It is the USER'S file, which makes this stricter than saving your own:
|
|
541
|
+
* `expectedRevision` is REQUIRED (they may be editing it elsewhere — a stale
|
|
542
|
+
* one rejects `VERSION_CONFLICT`: re-read, merge or ask, retry); the file's
|
|
543
|
+
* TYPE cannot change (`MIME_CHANGE_NOT_ALLOWED`); and the platform keeps
|
|
544
|
+
* earlier versions for them, which count against THEIR storage — a save
|
|
545
|
+
* that would exceed it rejects `STORAGE_QUOTA_EXCEEDED` and nothing is lost.
|
|
546
|
+
*
|
|
547
|
+
* Rejects `EDIT_ACCESS_REQUIRED` when you hold view-only access (call
|
|
548
|
+
* `requestEditAccess`), and `DOCUMENT_NOT_FOUND` once the user removes your
|
|
549
|
+
* access in Vault → Arche Access — which takes effect on your very next save.
|
|
550
|
+
* Handle both. Debounce (a few seconds idle, plus blur and close) and
|
|
551
|
+
* surface `RATE_LIMIT` rather than looping: this lane allows fewer saves per
|
|
552
|
+
* minute than your own documents do. Every save is recorded with your app's
|
|
553
|
+
* name, and the file shows the user that you changed it.
|
|
554
|
+
*/
|
|
555
|
+
saveContent(params: VaultUserDocumentSaveContentParams): Promise<VaultUserDocumentSaveContentResult>;
|
|
434
556
|
/** Documents the user has granted this arche (empty until they pick). */
|
|
435
557
|
list(options?: {
|
|
436
558
|
limit?: number;
|
|
@@ -440,7 +562,7 @@ export interface VaultUserDocumentsApi {
|
|
|
440
562
|
* Read one granted document. `includeContent: true` returns UTF-8 text
|
|
441
563
|
* for text documents (a binary document rejects with BINARY_DOCUMENT —
|
|
442
564
|
* use getDownloadUrl for those). Rejects with DOCUMENT_NOT_FOUND once
|
|
443
|
-
* the user revokes access in Vault →
|
|
565
|
+
* the user revokes access in Vault → Arche Access — handle that path.
|
|
444
566
|
*/
|
|
445
567
|
get(documentId: string, options?: {
|
|
446
568
|
includeContent?: boolean;
|
|
@@ -466,7 +588,7 @@ export interface VaultUserDocumentsApi {
|
|
|
466
588
|
* the family, because it is the only one that can move megabytes: call
|
|
467
589
|
* sequentially and surface a RATE_LIMIT error to the user/assistant
|
|
468
590
|
* verbatim rather than retrying in a loop. Rejects with
|
|
469
|
-
* DOCUMENT_NOT_FOUND once the user revokes access in Vault →
|
|
591
|
+
* DOCUMENT_NOT_FOUND once the user revokes access in Vault → Arche Access
|
|
470
592
|
* — unlike a presigned URL from getDownloadUrl, which stays valid for
|
|
471
593
|
* its TTL, every getBytes call re-checks the grant.
|
|
472
594
|
*/
|
|
@@ -481,7 +603,15 @@ export interface VaultUserDocumentsApi {
|
|
|
481
603
|
* surface that reaches data your plugin did not create. Requires the
|
|
482
604
|
* `vault:user-documents:read` permission. Every access is user-consented
|
|
483
605
|
* (per-document grants created in the host picker, revocable any time in
|
|
484
|
-
* Vault →
|
|
606
|
+
* Vault → Arche Access) and audited by the platform.
|
|
607
|
+
*
|
|
608
|
+
* The picker offers the files of the workspace the user is acting in (the
|
|
609
|
+
* host's workspace switcher — Personal, or an org workspace they belong to)
|
|
610
|
+
* and `list()` returns the grants made in it; a document you hold a grant on
|
|
611
|
+
* stays readable by id whichever workspace the user is in, because a grant
|
|
612
|
+
* belongs to the workspace the document lives in. A plugin never names a
|
|
613
|
+
* workspace; the host does. A member's role caps what they can share and
|
|
614
|
+
* read. Proprietary-sensitivity
|
|
485
615
|
* documents are never grantable. For documents your plugin CREATES, use
|
|
486
616
|
* `useVaultDocuments` instead.
|
|
487
617
|
*/
|
|
@@ -548,7 +678,7 @@ export interface FiasAIActionsConfig extends FiasAIActionsDeclaration {
|
|
|
548
678
|
* You get a document REFERENCE, not bytes. Read it with
|
|
549
679
|
* `useVaultUserDocuments().getBytes(documentId)`: the host grants you that one
|
|
550
680
|
* document as it relays the handoff, so no `pick()` is needed first. The grant
|
|
551
|
-
* is per-document and revocable in Vault →
|
|
681
|
+
* is per-document and revocable in Vault → Arche Access exactly like a picked
|
|
552
682
|
* one, and it needs `vault:user-documents:read` — declare it, or the grant is
|
|
553
683
|
* refused and the file never arrives.
|
|
554
684
|
*
|
package/dist/hooks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,mBAAmB,EACnB,QAAQ,EACR,SAAS,EACT,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EAGnB,eAAe,EACf,kBAAkB,EAGlB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAGlB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
|