@floegence/redevplugin-ui 1.1.2 → 1.1.4

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.
@@ -29,9 +29,9 @@ export declare const redevPluginContractVersions: {
29
29
  readonly network_grant_schema_version: "network-grant-v2";
30
30
  readonly resource_scope_schema_version: "resource-scope-v1";
31
31
  readonly session_scope_schema_version: "session-scope-v1";
32
- readonly plugin_platform_openapi_version: "plugin-platform-v15";
33
- readonly compatibility_manifest_version: "redevplugin.compatibility.v18";
34
- readonly compatibility_schema_version: "compatibility-manifest-v18";
32
+ readonly plugin_platform_openapi_version: "plugin-platform-v16";
33
+ readonly compatibility_manifest_version: "redevplugin.compatibility.v19";
34
+ readonly compatibility_schema_version: "compatibility-manifest-v19";
35
35
  readonly worker_invocation_schema_version: "worker-invocation-v3";
36
36
  readonly host_capability_contract_schema_version: "host-capability-contract-v1";
37
37
  readonly host_capability_pin_schema_version: "host-capability-pin-v1";
@@ -59,9 +59,9 @@ export type ReDevPluginContractArtifact = {
59
59
  };
60
60
  export declare const redevPluginContractArtifacts: readonly [{
61
61
  readonly id: "compatibility-manifest-schema";
62
- readonly path: "spec/plugin/compatibility-manifest-v18.schema.json";
63
- readonly version: "compatibility-manifest-v18";
64
- readonly sha256: "48889bd7ddd936b9757a56b1b154244abc6904bd8e55e177e80ae4509d15ce06";
62
+ readonly path: "spec/plugin/compatibility-manifest-v19.schema.json";
63
+ readonly version: "compatibility-manifest-v19";
64
+ readonly sha256: "c871e24cb88386dbddaae0bd37bcc9177e54b3c02fb957de4b46ddb329d8bb5b";
65
65
  }, {
66
66
  readonly id: "contract-registry-schema";
67
67
  readonly path: "spec/plugin/contract-registry-v2.schema.json";
@@ -164,9 +164,9 @@ export declare const redevPluginContractArtifacts: readonly [{
164
164
  readonly sha256: "2ac6e9a520e21a3294bec0059e0fabb6ee5d285fe6efe08a6bb6cbf2c7aea2bb";
165
165
  }, {
166
166
  readonly id: "plugin-platform-openapi";
167
- readonly path: "spec/openapi/plugin-platform-v15.yaml";
168
- readonly version: "plugin-platform-v15";
169
- readonly sha256: "2e52294ca38c568df62297b2092f0dea91288c3692903760bf8504821e1809e1";
167
+ readonly path: "spec/openapi/plugin-platform-v16.yaml";
168
+ readonly version: "plugin-platform-v16";
169
+ readonly sha256: "a85c284d1a6d677039bf9ec59e5bf80e93bc707d6ea7b1a7a967bf9daacdd5c0";
170
170
  }, {
171
171
  readonly id: "presentation-icon-evidence-schema";
172
172
  readonly path: "spec/plugin/presentation-icon-evidence-v1.schema.json";
@@ -26,9 +26,9 @@ export const redevPluginContractVersions = {
26
26
  "network_grant_schema_version": "network-grant-v2",
27
27
  "resource_scope_schema_version": "resource-scope-v1",
28
28
  "session_scope_schema_version": "session-scope-v1",
29
- "plugin_platform_openapi_version": "plugin-platform-v15",
30
- "compatibility_manifest_version": "redevplugin.compatibility.v18",
31
- "compatibility_schema_version": "compatibility-manifest-v18",
29
+ "plugin_platform_openapi_version": "plugin-platform-v16",
30
+ "compatibility_manifest_version": "redevplugin.compatibility.v19",
31
+ "compatibility_schema_version": "compatibility-manifest-v19",
32
32
  "worker_invocation_schema_version": "worker-invocation-v3",
33
33
  "host_capability_contract_schema_version": "host-capability-contract-v1",
34
34
  "host_capability_pin_schema_version": "host-capability-pin-v1",
@@ -51,9 +51,9 @@ export const redevPluginContractVersions = {
51
51
  export const redevPluginContractArtifacts = [
52
52
  {
53
53
  id: "compatibility-manifest-schema",
54
- path: "spec/plugin/compatibility-manifest-v18.schema.json",
55
- version: "compatibility-manifest-v18",
56
- sha256: "48889bd7ddd936b9757a56b1b154244abc6904bd8e55e177e80ae4509d15ce06",
54
+ path: "spec/plugin/compatibility-manifest-v19.schema.json",
55
+ version: "compatibility-manifest-v19",
56
+ sha256: "c871e24cb88386dbddaae0bd37bcc9177e54b3c02fb957de4b46ddb329d8bb5b",
57
57
  },
58
58
  {
59
59
  id: "contract-registry-schema",
@@ -177,9 +177,9 @@ export const redevPluginContractArtifacts = [
177
177
  },
178
178
  {
179
179
  id: "plugin-platform-openapi",
180
- path: "spec/openapi/plugin-platform-v15.yaml",
181
- version: "plugin-platform-v15",
182
- sha256: "2e52294ca38c568df62297b2092f0dea91288c3692903760bf8504821e1809e1",
180
+ path: "spec/openapi/plugin-platform-v16.yaml",
181
+ version: "plugin-platform-v16",
182
+ sha256: "a85c284d1a6d677039bf9ec59e5bf80e93bc707d6ea7b1a7a967bf9daacdd5c0",
183
183
  },
184
184
  {
185
185
  id: "presentation-icon-evidence-schema",
@@ -79,7 +79,7 @@ export interface paths {
79
79
  };
80
80
  get?: never;
81
81
  put?: never;
82
- /** @description Reopens and installs one unexpired process-local inspection after the user confirms its exact package digest. The inspection is bound to the exact authenticated session. Invalid or revoked signatures fail closed; absent or unknown signatures install disabled, with no grants and manual updates only. */
82
+ /** @description Reopens and installs one unexpired process-local inspection after the user confirms its exact package digest and permission selection. The inspection is bound to the exact authenticated session. Invalid or revoked signatures fail closed; absent or unknown signatures remain manual-update-only but enable by default when required permissions are approved and runtime policy allows activation. */
83
83
  post: operations["installInspectedPackage"];
84
84
  delete?: never;
85
85
  options?: never;
@@ -103,6 +103,23 @@ export interface paths {
103
103
  patch?: never;
104
104
  trace?: never;
105
105
  };
106
+ "/_redevplugin/api/plugins/release-packages/inspect": {
107
+ parameters: {
108
+ query?: never;
109
+ header?: never;
110
+ path?: never;
111
+ cookie?: never;
112
+ };
113
+ get?: never;
114
+ put?: never;
115
+ /** @description Resolves and fully verifies an exact release reference before installation so one user confirmation can review the Host-derived permissions and package identity. The inspection does not install a plugin, and installation re-verifies the exact release and hashes. */
116
+ post: operations["inspectReleasePackage"];
117
+ delete?: never;
118
+ options?: never;
119
+ head?: never;
120
+ patch?: never;
121
+ trace?: never;
122
+ };
106
123
  "/_redevplugin/api/plugins/enable": {
107
124
  parameters: {
108
125
  query?: never;
@@ -995,6 +1012,11 @@ export interface components {
995
1012
  ok: true;
996
1013
  data: components["schemas"]["InstalledExternalPackage"];
997
1014
  };
1015
+ ReleasePackageInspectionSuccessResponse: {
1016
+ /** @constant */
1017
+ ok: true;
1018
+ data: components["schemas"]["ReleasePackageInspection"];
1019
+ };
998
1020
  PluginCatalogSuccessResponse: {
999
1021
  /** @constant */
1000
1022
  ok: true;
@@ -1360,7 +1382,7 @@ export interface components {
1360
1382
  PluginCatalogResult: {
1361
1383
  plugins: components["schemas"]["PluginCatalogRecord"][];
1362
1384
  };
1363
- PluginCompatibilityManifest: components["schemas"]["CompatibilityManifestV18"];
1385
+ PluginCompatibilityManifest: components["schemas"]["CompatibilityManifestV19"];
1364
1386
  ExecutionList: {
1365
1387
  executions: components["schemas"]["Execution"][];
1366
1388
  next_cursor?: number;
@@ -1712,10 +1734,16 @@ export interface components {
1712
1734
  intent: components["schemas"]["ExternalPackageIntentRequest"];
1713
1735
  source: components["schemas"]["ExternalPackageSource"];
1714
1736
  };
1715
- /** @description Confirms an unexpired process-local inspection by its exact package digest. The digest cannot override any inspected fact. */
1737
+ /** @description Confirms an unexpired process-local inspection by its exact package digest and carries the single Host-owned activation intent. New installs activate by default; updates preserve their pre-install enable intent. */
1716
1738
  InstallInspectedPackageRequest: {
1717
1739
  inspection_id: string;
1718
1740
  expected_package_sha256: string;
1741
+ activate_after_install?: boolean;
1742
+ approved_permission_ids?: string[];
1743
+ };
1744
+ InspectReleasePackageRequest: {
1745
+ plugin_instance_id: string;
1746
+ release_ref: components["schemas"]["PluginReleaseRef"];
1719
1747
  };
1720
1748
  /** @description Cryptographic signature fact computed over the inspected artifact. The absent state is installable and affects trust classification and automatic-update eligibility only. */
1721
1749
  ExternalPackageSignatureAssessment: {
@@ -1976,12 +2004,28 @@ export interface components {
1976
2004
  };
1977
2005
  InstalledExternalPackage: {
1978
2006
  plugin: components["schemas"]["PluginRecord"];
2007
+ activation: components["schemas"]["PluginInstallActivation"];
1979
2008
  signature_assessment: components["schemas"]["ExternalPackageSignatureAssessment"];
1980
2009
  source_provenance: components["schemas"]["ExternalPackageSourceProvenance"];
1981
2010
  execution_approval: components["schemas"]["ExternalPackageExecutionApproval"];
1982
2011
  update_eligibility: components["schemas"]["ExternalPackageUpdateEligibility"];
1983
2012
  security_summary: components["schemas"]["ExternalPackageSecuritySummary"];
1984
2013
  };
2014
+ PluginInstallActivation: {
2015
+ /** @enum {string} */
2016
+ status: "not_requested" | "enabled" | "needs_attention";
2017
+ missing_permission_ids?: string[];
2018
+ /** @enum {string} */
2019
+ next_action?: "approve_permissions" | "retry_activation";
2020
+ };
2021
+ ReleasePackageInspection: {
2022
+ plugin_instance_id: string;
2023
+ release_ref: components["schemas"]["PluginReleaseRef"];
2024
+ inspected_hashes: components["schemas"]["TrustHashSet"];
2025
+ presentation: components["schemas"]["PresentationCatalog"];
2026
+ presentation_sha256: string;
2027
+ security_summary: components["schemas"]["ExternalPackageSecuritySummary"];
2028
+ };
1985
2029
  /** @enum {string} */
1986
2030
  TrustState: "verified" | "unsigned_local" | "untrusted" | "needs_review" | "trust_unavailable" | "blocked_security";
1987
2031
  TrustHashSet: {
@@ -2610,9 +2654,9 @@ export interface components {
2610
2654
  counts: components["schemas"]["SessionScopeV1RevokeCounts"];
2611
2655
  };
2612
2656
  SessionScopeV1PublicRevokeResult: components["schemas"]["SessionScopeV1CompleteRevokeResult"] | components["schemas"]["SessionScopeV1IncompleteRevokeResult"];
2613
- CompatibilityManifestV18: {
2657
+ CompatibilityManifestV19: {
2614
2658
  /** @constant */
2615
- schema_version: "redevplugin.compatibility.v18";
2659
+ schema_version: "redevplugin.compatibility.v19";
2616
2660
  package_set: components["schemas"]["PlatformPackageSetV3"];
2617
2661
  matrix: {
2618
2662
  /** @constant */
@@ -2668,9 +2712,9 @@ export interface components {
2668
2712
  /** @constant */
2669
2713
  session_scope_schema_version: "session-scope-v1";
2670
2714
  /** @constant */
2671
- plugin_platform_openapi_version: "plugin-platform-v15";
2715
+ plugin_platform_openapi_version: "plugin-platform-v16";
2672
2716
  /** @constant */
2673
- compatibility_schema_version: "compatibility-manifest-v18";
2717
+ compatibility_schema_version: "compatibility-manifest-v19";
2674
2718
  /** @constant */
2675
2719
  worker_invocation_schema_version: "worker-invocation-v3";
2676
2720
  /** @constant */
@@ -2709,9 +2753,9 @@ export interface components {
2709
2753
  quarantine_cleanup_schema_version: "quarantine-cleanup-v1";
2710
2754
  };
2711
2755
  contract_set_sha256: string;
2712
- contracts: components["schemas"]["CompatibilityManifestV18Contract"][];
2756
+ contracts: components["schemas"]["CompatibilityManifestV19Contract"][];
2713
2757
  };
2714
- CompatibilityManifestV18Contract: {
2758
+ CompatibilityManifestV19Contract: {
2715
2759
  id: string;
2716
2760
  path: string;
2717
2761
  version: string;
@@ -3432,6 +3476,15 @@ export interface components {
3432
3476
  "application/json": components["schemas"]["SettingsSnapshotSuccessResponse"];
3433
3477
  };
3434
3478
  };
3479
+ /** @description Verified release package facts for the installation review. */
3480
+ ReleasePackageInspectionResponse: {
3481
+ headers: {
3482
+ [name: string]: unknown;
3483
+ };
3484
+ content: {
3485
+ "application/json": components["schemas"]["ReleasePackageInspectionSuccessResponse"];
3486
+ };
3487
+ };
3435
3488
  };
3436
3489
  parameters: {
3437
3490
  ExecutionID: string;
@@ -3456,6 +3509,11 @@ export interface components {
3456
3509
  "application/json": components["schemas"]["InstallReleaseRefRequest"];
3457
3510
  };
3458
3511
  };
3512
+ InspectReleasePackageRequest: {
3513
+ content: {
3514
+ "application/json": components["schemas"]["InspectReleasePackageRequest"];
3515
+ };
3516
+ };
3459
3517
  UpdateReleaseRefRequest: {
3460
3518
  content: {
3461
3519
  "application/json": components["schemas"]["UpdateReleaseRefRequest"];
@@ -3786,6 +3844,19 @@ export interface operations {
3786
3844
  default: components["responses"]["MutationPlatformErrorResponse"];
3787
3845
  };
3788
3846
  };
3847
+ inspectReleasePackage: {
3848
+ parameters: {
3849
+ query?: never;
3850
+ header?: never;
3851
+ path?: never;
3852
+ cookie?: never;
3853
+ };
3854
+ requestBody: components["requestBodies"]["InspectReleasePackageRequest"];
3855
+ responses: {
3856
+ 200: components["responses"]["ReleasePackageInspectionResponse"];
3857
+ default: components["responses"]["MutationPlatformErrorResponse"];
3858
+ };
3859
+ };
3789
3860
  enablePlugin: {
3790
3861
  parameters: {
3791
3862
  query?: never;
@@ -30,6 +30,8 @@ export type PluginEnableState = PluginRecord["enable_state"];
30
30
  export type PluginPackageHashSet = PlatformSchemas["PackageHashSet"];
31
31
  export type PluginReleaseRef = PlatformSchemas["PluginReleaseRef"];
32
32
  export type PluginInstallReleaseRefRequest = PlatformSchemas["InstallReleaseRefRequest"];
33
+ export type PluginInspectReleasePackageRequest = PlatformSchemas["InspectReleasePackageRequest"];
34
+ export type PluginReleasePackageInspection = PlatformSchemas["ReleasePackageInspection"];
33
35
  export type PluginUpdateReleaseRefRequest = PlatformSchemas["UpdateReleaseRefRequest"];
34
36
  export type PluginInspectExternalPackageRequest = PlatformSchemas["InspectExternalPackageRequest"];
35
37
  export type PluginUploadedExternalPackageIntent = PlatformSchemas["ExternalPackageIntentRequest"];
@@ -132,6 +134,7 @@ export declare class PluginPlatformClient {
132
134
  features(options?: PluginRequestOptions): Promise<PluginFeatures>;
133
135
  getCompatibility(options?: PluginRequestOptions): Promise<PluginCompatibilityManifest>;
134
136
  installReleaseRef(request: PluginInstallReleaseRefRequest, options?: PluginRequestOptions): Promise<PluginRecord>;
137
+ inspectReleasePackage(request: PluginInspectReleasePackageRequest, options?: PluginRequestOptions): Promise<PluginReleasePackageInspection>;
135
138
  inspectExternalPackage(request: PluginInspectExternalPackageRequest, options?: PluginRequestOptions): Promise<PluginExternalPackageInspection>;
136
139
  inspectUploadedExternalPackage(intent: PluginUploadedExternalPackageIntent, packageBlob: Blob, options?: PluginRequestOptions): Promise<PluginExternalPackageInspection>;
137
140
  installInspectedPackage(request: PluginInstallInspectedPackageRequest, options?: PluginRequestOptions): Promise<PluginInstalledExternalPackage>;
package/dist/platform.js CHANGED
@@ -41,6 +41,9 @@ export class PluginPlatformClient {
41
41
  installReleaseRef(request, options = {}) {
42
42
  return this.#requestMutation("POST", "/_redevplugin/api/plugins/install-release-ref", request, options);
43
43
  }
44
+ inspectReleasePackage(request, options = {}) {
45
+ return this.#requestMutation("POST", "/_redevplugin/api/plugins/release-packages/inspect", request, options);
46
+ }
44
47
  async inspectExternalPackage(request, options = {}) {
45
48
  const inspection = await this.#requestMutation("POST", "/_redevplugin/api/plugins/external-packages/inspect", request, options);
46
49
  this.#externalInspectionTargets.set(inspection.inspection_id, inspection.intent.plugin_instance_id ?? "");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@floegence/redevplugin-ui",
3
- "version": "1.1.2",
3
+ "version": "1.1.4",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "repository": {
@@ -40,7 +40,7 @@
40
40
  "dist"
41
41
  ],
42
42
  "dependencies": {
43
- "@floegence/redevplugin-contracts": "1.1.2"
43
+ "@floegence/redevplugin-contracts": "1.1.4"
44
44
  },
45
45
  "publishConfig": {
46
46
  "access": "public"