@arbidocs/client 0.3.72 → 0.3.74

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/index.d.cts CHANGED
@@ -1413,19 +1413,18 @@ interface paths {
1413
1413
  };
1414
1414
  /**
1415
1415
  * List user-invocable skills in the active workspace
1416
- * @description List skills the caller can invoke via ``/<slug>`` in the active
1417
- * workspace.
1416
+ * @description List skills the caller can invoke via ``/<slug>``.
1418
1417
  *
1419
- * Returns lightweight metadata only (name, description, arg hint) —
1420
- * never the SKILL.md body. Clients pull this once per workspace switch
1421
- * to populate slash-command autocomplete in the TUI / CLI / React UI.
1418
+ * Returns lightweight metadata only (name, description, arg hint,
1419
+ * visibility) — never the SKILL.md body. Clients pull this to populate
1420
+ * slash-command autocomplete in the TUI / CLI / React UI.
1422
1421
  *
1423
- * Skills are workspace documents with ``wp_type='skill'``; the scope
1424
- * matches the workspace the caller has open. Cross-workspace listing
1425
- * (skills from workspace A surfaced while in workspace B) is
1426
- * intentionally out of scope each workspace has its own encryption
1427
- * key and surfacing a skill the caller can see but can't decrypt
1428
- * would be a confusing UX.
1422
+ * Skills are documents with ``wp_type='skill'`` living in the deployment
1423
+ * skill marketplace (a public workspace). The listing is the union of the
1424
+ * caller's own skills (``visibility='mine'``) and skills shared into the
1425
+ * marketplace (``visibility='global'``); a same-named own skill shadows the
1426
+ * global one. When no marketplace is configured the lookup falls back to the
1427
+ * caller's active workspace.
1429
1428
  *
1430
1429
  * The endpoint decrypts one main-file per skill to parse frontmatter;
1431
1430
  * companion bodies are skipped to keep the response cheap.
@@ -2355,8 +2354,8 @@ interface components {
2355
2354
  MEMORY_ENABLED: boolean;
2356
2355
  /**
2357
2356
  * Skills Enabled
2358
- * @description Enable the skills system: /skill (create) and /<skill-name> (invoke) commands.
2359
- * @default false
2357
+ * @description Enable the skills system: /skill (create) and /<skill-name> (invoke) commands. Skills are a global feature (the marketplace); on by default. Command dispatch no longer gates on this flag, but it remains for config-level introspection.
2358
+ * @default true
2360
2359
  */
2361
2360
  SKILLS_ENABLED: boolean;
2362
2361
  /**
@@ -2549,7 +2548,7 @@ interface components {
2549
2548
  * "VISION_ENABLED": false,
2550
2549
  * "PERSONAL_AGENT": false,
2551
2550
  * "MEMORY_ENABLED": false,
2552
- * "SKILLS_ENABLED": false,
2551
+ * "SKILLS_ENABLED": true,
2553
2552
  * "SKILL_CREATION": false,
2554
2553
  * "MEMORY_CREATION": false,
2555
2554
  * "GOALS_ENABLED": false,
@@ -5075,7 +5074,7 @@ interface components {
5075
5074
  * Type is self-descriptive, no need to parse content field.
5076
5075
  * @enum {string}
5077
5076
  */
5078
- NotificationType: 'user_message' | 'workspaceuser_added_owner' | 'workspaceuser_added_collaborator' | 'workspaceuser_added_guest' | 'workspaceuser_removed' | 'workspaceuser_updated_owner' | 'workspaceuser_updated_collaborator' | 'workspaceuser_updated_guest' | 'contact_accepted' | 'email_reply' | 'quota_threshold_50' | 'quota_threshold_90' | 'quota_threshold_100';
5077
+ NotificationType: 'user_message' | 'workspaceuser_added_owner' | 'workspaceuser_added_collaborator' | 'workspaceuser_added_guest' | 'workspaceuser_removed' | 'workspaceuser_updated_owner' | 'workspaceuser_updated_collaborator' | 'workspaceuser_updated_guest' | 'contact_accepted' | 'email_reply' | 'quota_threshold_50' | 'quota_threshold_90' | 'quota_threshold_100' | 'doc_shared';
5079
5078
  /**
5080
5079
  * NotificationUpdate
5081
5080
  * @description Single notification update for bulk PATCH.
@@ -6963,6 +6962,18 @@ interface components {
6963
6962
  * @description Last modification time of the main file
6964
6963
  */
6965
6964
  updated_at: string;
6965
+ /**
6966
+ * Visibility
6967
+ * @description ``mine`` (private to the caller) or ``global`` (shared into the marketplace)
6968
+ * @default mine
6969
+ */
6970
+ visibility: string;
6971
+ /**
6972
+ * Is Owner
6973
+ * @description Whether the caller owns the skill (gates edit/publish/unpublish in the UI)
6974
+ * @default true
6975
+ */
6976
+ is_owner: boolean;
6966
6977
  };
6967
6978
  /**
6968
6979
  * SkillsListResponse
@@ -6974,6 +6985,23 @@ interface components {
6974
6985
  /** Skills */
6975
6986
  skills: components['schemas']['SkillSummaryResponse'][];
6976
6987
  };
6988
+ /**
6989
+ * SkillsUpdatedMessage
6990
+ * @description A skill changed server-side (agent ``save_skill``, delete, publish) —
6991
+ * frontend should refetch the marketplace skills list.
6992
+ */
6993
+ SkillsUpdatedMessage: {
6994
+ /**
6995
+ * Type
6996
+ * @default skills_updated
6997
+ * @constant
6998
+ */
6999
+ type: 'skills_updated';
7000
+ /** Reason */
7001
+ reason: string;
7002
+ /** Slug */
7003
+ slug?: string | null;
7004
+ };
6977
7005
  /**
6978
7006
  * SkippedFile
6979
7007
  * @description A file that was skipped during upload with the reason.
@@ -7862,7 +7890,7 @@ interface components {
7862
7890
  show_mcp_connectors: boolean;
7863
7891
  /**
7864
7892
  * Show Hints
7865
- * @default true
7893
+ * @default false
7866
7894
  */
7867
7895
  show_hints: boolean;
7868
7896
  /**
@@ -8093,6 +8121,7 @@ interface components {
8093
8121
  batch_complete?: components['schemas']['BatchCompleteMessage'] | null;
8094
8122
  response_complete?: components['schemas']['ResponseCompleteMessage'] | null;
8095
8123
  conversation_title_updated?: components['schemas']['ConversationTitleUpdatedMessage'] | null;
8124
+ skills_updated?: components['schemas']['SkillsUpdatedMessage'] | null;
8096
8125
  notification?: components['schemas']['NotificationResponse'] | null;
8097
8126
  auth?: components['schemas']['AuthMessage'] | null;
8098
8127
  send_message?: components['schemas']['SendMessageRequest'] | null;
@@ -8108,6 +8137,7 @@ interface components {
8108
8137
  * @default false
8109
8138
  */
8110
8139
  is_public: boolean;
8140
+ workspace_type?: components['schemas']['WorkspaceType'] | null;
8111
8141
  /** Workspace Key */
8112
8142
  workspace_key: string;
8113
8143
  /** Project Ext Id */
@@ -8147,6 +8177,8 @@ interface components {
8147
8177
  description: string | null;
8148
8178
  /** Is Public */
8149
8179
  is_public: boolean;
8180
+ /** @default private */
8181
+ workspace_type: components['schemas']['WorkspaceType'];
8150
8182
  /** Created By Ext Id */
8151
8183
  created_by_ext_id: string;
8152
8184
  /** Updated By Ext Id */
@@ -8213,6 +8245,28 @@ interface components {
8213
8245
  * @enum {string}
8214
8246
  */
8215
8247
  WorkspaceRole: 'owner' | 'collaborator' | 'guest';
8248
+ /**
8249
+ * WorkspaceType
8250
+ * @description Kind of workspace — the source of truth for visibility and special roles.
8251
+ *
8252
+ * RLS and all visibility logic ride on this classification, NOT on the presence
8253
+ * of ``shared_key`` (which is only the encryption *mechanism* — the key bytes
8254
+ * the server needs to decrypt public content).
8255
+ *
8256
+ * - ``private``: members-only (``shared_key`` is NULL).
8257
+ * - ``public``: readable by any authenticated user (``shared_key`` set, so the
8258
+ * deployment can decrypt for everyone).
8259
+ * - ``skills``: the deployment-wide skill marketplace. A specialization of
8260
+ * ``public`` (also readable by all), of which there is at most ONE — enforced
8261
+ * by a partial unique index. The skill subsystem resolves the marketplace
8262
+ * with a simple ``WHERE workspace_type = 'skills'`` lookup (no env var); a
8263
+ * deployment with none designated simply has no marketplace.
8264
+ *
8265
+ * ``public`` and ``skills`` both require ``shared_key`` set; ``private`` requires
8266
+ * it NULL. Designating ``public`` or ``skills`` is developer-gated.
8267
+ * @enum {string}
8268
+ */
8269
+ WorkspaceType: 'private' | 'public' | 'skills';
8216
8270
  /** WorkspaceUpdateRequest */
8217
8271
  WorkspaceUpdateRequest: {
8218
8272
  /** Name */
@@ -8221,6 +8275,7 @@ interface components {
8221
8275
  description?: string | null;
8222
8276
  /** Is Public */
8223
8277
  is_public?: boolean | null;
8278
+ workspace_type?: components['schemas']['WorkspaceType'] | null;
8224
8279
  /** Project Ext Id */
8225
8280
  project_ext_id?: string | null;
8226
8281
  };
package/dist/index.d.ts CHANGED
@@ -1413,19 +1413,18 @@ interface paths {
1413
1413
  };
1414
1414
  /**
1415
1415
  * List user-invocable skills in the active workspace
1416
- * @description List skills the caller can invoke via ``/<slug>`` in the active
1417
- * workspace.
1416
+ * @description List skills the caller can invoke via ``/<slug>``.
1418
1417
  *
1419
- * Returns lightweight metadata only (name, description, arg hint) —
1420
- * never the SKILL.md body. Clients pull this once per workspace switch
1421
- * to populate slash-command autocomplete in the TUI / CLI / React UI.
1418
+ * Returns lightweight metadata only (name, description, arg hint,
1419
+ * visibility) — never the SKILL.md body. Clients pull this to populate
1420
+ * slash-command autocomplete in the TUI / CLI / React UI.
1422
1421
  *
1423
- * Skills are workspace documents with ``wp_type='skill'``; the scope
1424
- * matches the workspace the caller has open. Cross-workspace listing
1425
- * (skills from workspace A surfaced while in workspace B) is
1426
- * intentionally out of scope each workspace has its own encryption
1427
- * key and surfacing a skill the caller can see but can't decrypt
1428
- * would be a confusing UX.
1422
+ * Skills are documents with ``wp_type='skill'`` living in the deployment
1423
+ * skill marketplace (a public workspace). The listing is the union of the
1424
+ * caller's own skills (``visibility='mine'``) and skills shared into the
1425
+ * marketplace (``visibility='global'``); a same-named own skill shadows the
1426
+ * global one. When no marketplace is configured the lookup falls back to the
1427
+ * caller's active workspace.
1429
1428
  *
1430
1429
  * The endpoint decrypts one main-file per skill to parse frontmatter;
1431
1430
  * companion bodies are skipped to keep the response cheap.
@@ -2355,8 +2354,8 @@ interface components {
2355
2354
  MEMORY_ENABLED: boolean;
2356
2355
  /**
2357
2356
  * Skills Enabled
2358
- * @description Enable the skills system: /skill (create) and /<skill-name> (invoke) commands.
2359
- * @default false
2357
+ * @description Enable the skills system: /skill (create) and /<skill-name> (invoke) commands. Skills are a global feature (the marketplace); on by default. Command dispatch no longer gates on this flag, but it remains for config-level introspection.
2358
+ * @default true
2360
2359
  */
2361
2360
  SKILLS_ENABLED: boolean;
2362
2361
  /**
@@ -2549,7 +2548,7 @@ interface components {
2549
2548
  * "VISION_ENABLED": false,
2550
2549
  * "PERSONAL_AGENT": false,
2551
2550
  * "MEMORY_ENABLED": false,
2552
- * "SKILLS_ENABLED": false,
2551
+ * "SKILLS_ENABLED": true,
2553
2552
  * "SKILL_CREATION": false,
2554
2553
  * "MEMORY_CREATION": false,
2555
2554
  * "GOALS_ENABLED": false,
@@ -5075,7 +5074,7 @@ interface components {
5075
5074
  * Type is self-descriptive, no need to parse content field.
5076
5075
  * @enum {string}
5077
5076
  */
5078
- NotificationType: 'user_message' | 'workspaceuser_added_owner' | 'workspaceuser_added_collaborator' | 'workspaceuser_added_guest' | 'workspaceuser_removed' | 'workspaceuser_updated_owner' | 'workspaceuser_updated_collaborator' | 'workspaceuser_updated_guest' | 'contact_accepted' | 'email_reply' | 'quota_threshold_50' | 'quota_threshold_90' | 'quota_threshold_100';
5077
+ NotificationType: 'user_message' | 'workspaceuser_added_owner' | 'workspaceuser_added_collaborator' | 'workspaceuser_added_guest' | 'workspaceuser_removed' | 'workspaceuser_updated_owner' | 'workspaceuser_updated_collaborator' | 'workspaceuser_updated_guest' | 'contact_accepted' | 'email_reply' | 'quota_threshold_50' | 'quota_threshold_90' | 'quota_threshold_100' | 'doc_shared';
5079
5078
  /**
5080
5079
  * NotificationUpdate
5081
5080
  * @description Single notification update for bulk PATCH.
@@ -6963,6 +6962,18 @@ interface components {
6963
6962
  * @description Last modification time of the main file
6964
6963
  */
6965
6964
  updated_at: string;
6965
+ /**
6966
+ * Visibility
6967
+ * @description ``mine`` (private to the caller) or ``global`` (shared into the marketplace)
6968
+ * @default mine
6969
+ */
6970
+ visibility: string;
6971
+ /**
6972
+ * Is Owner
6973
+ * @description Whether the caller owns the skill (gates edit/publish/unpublish in the UI)
6974
+ * @default true
6975
+ */
6976
+ is_owner: boolean;
6966
6977
  };
6967
6978
  /**
6968
6979
  * SkillsListResponse
@@ -6974,6 +6985,23 @@ interface components {
6974
6985
  /** Skills */
6975
6986
  skills: components['schemas']['SkillSummaryResponse'][];
6976
6987
  };
6988
+ /**
6989
+ * SkillsUpdatedMessage
6990
+ * @description A skill changed server-side (agent ``save_skill``, delete, publish) —
6991
+ * frontend should refetch the marketplace skills list.
6992
+ */
6993
+ SkillsUpdatedMessage: {
6994
+ /**
6995
+ * Type
6996
+ * @default skills_updated
6997
+ * @constant
6998
+ */
6999
+ type: 'skills_updated';
7000
+ /** Reason */
7001
+ reason: string;
7002
+ /** Slug */
7003
+ slug?: string | null;
7004
+ };
6977
7005
  /**
6978
7006
  * SkippedFile
6979
7007
  * @description A file that was skipped during upload with the reason.
@@ -7862,7 +7890,7 @@ interface components {
7862
7890
  show_mcp_connectors: boolean;
7863
7891
  /**
7864
7892
  * Show Hints
7865
- * @default true
7893
+ * @default false
7866
7894
  */
7867
7895
  show_hints: boolean;
7868
7896
  /**
@@ -8093,6 +8121,7 @@ interface components {
8093
8121
  batch_complete?: components['schemas']['BatchCompleteMessage'] | null;
8094
8122
  response_complete?: components['schemas']['ResponseCompleteMessage'] | null;
8095
8123
  conversation_title_updated?: components['schemas']['ConversationTitleUpdatedMessage'] | null;
8124
+ skills_updated?: components['schemas']['SkillsUpdatedMessage'] | null;
8096
8125
  notification?: components['schemas']['NotificationResponse'] | null;
8097
8126
  auth?: components['schemas']['AuthMessage'] | null;
8098
8127
  send_message?: components['schemas']['SendMessageRequest'] | null;
@@ -8108,6 +8137,7 @@ interface components {
8108
8137
  * @default false
8109
8138
  */
8110
8139
  is_public: boolean;
8140
+ workspace_type?: components['schemas']['WorkspaceType'] | null;
8111
8141
  /** Workspace Key */
8112
8142
  workspace_key: string;
8113
8143
  /** Project Ext Id */
@@ -8147,6 +8177,8 @@ interface components {
8147
8177
  description: string | null;
8148
8178
  /** Is Public */
8149
8179
  is_public: boolean;
8180
+ /** @default private */
8181
+ workspace_type: components['schemas']['WorkspaceType'];
8150
8182
  /** Created By Ext Id */
8151
8183
  created_by_ext_id: string;
8152
8184
  /** Updated By Ext Id */
@@ -8213,6 +8245,28 @@ interface components {
8213
8245
  * @enum {string}
8214
8246
  */
8215
8247
  WorkspaceRole: 'owner' | 'collaborator' | 'guest';
8248
+ /**
8249
+ * WorkspaceType
8250
+ * @description Kind of workspace — the source of truth for visibility and special roles.
8251
+ *
8252
+ * RLS and all visibility logic ride on this classification, NOT on the presence
8253
+ * of ``shared_key`` (which is only the encryption *mechanism* — the key bytes
8254
+ * the server needs to decrypt public content).
8255
+ *
8256
+ * - ``private``: members-only (``shared_key`` is NULL).
8257
+ * - ``public``: readable by any authenticated user (``shared_key`` set, so the
8258
+ * deployment can decrypt for everyone).
8259
+ * - ``skills``: the deployment-wide skill marketplace. A specialization of
8260
+ * ``public`` (also readable by all), of which there is at most ONE — enforced
8261
+ * by a partial unique index. The skill subsystem resolves the marketplace
8262
+ * with a simple ``WHERE workspace_type = 'skills'`` lookup (no env var); a
8263
+ * deployment with none designated simply has no marketplace.
8264
+ *
8265
+ * ``public`` and ``skills`` both require ``shared_key`` set; ``private`` requires
8266
+ * it NULL. Designating ``public`` or ``skills`` is developer-gated.
8267
+ * @enum {string}
8268
+ */
8269
+ WorkspaceType: 'private' | 'public' | 'skills';
8216
8270
  /** WorkspaceUpdateRequest */
8217
8271
  WorkspaceUpdateRequest: {
8218
8272
  /** Name */
@@ -8221,6 +8275,7 @@ interface components {
8221
8275
  description?: string | null;
8222
8276
  /** Is Public */
8223
8277
  is_public?: boolean | null;
8278
+ workspace_type?: components['schemas']['WorkspaceType'] | null;
8224
8279
  /** Project Ext Id */
8225
8280
  project_ext_id?: string | null;
8226
8281
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arbidocs/client",
3
- "version": "0.3.72",
3
+ "version": "0.3.74",
4
4
  "description": "TypeScript SDK for the ARBI API — zero-knowledge auth, E2E encryption, and type-safe REST client",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",