From 1f0137b9debc49f216f7c30cfff5ab50bcbf5fa1 Mon Sep 17 00:00:00 2001 From: SinuS Von SifriduS Date: Sun, 10 May 2026 00:33:01 +0200 Subject: [PATCH] 0.7.27 +Refactor --- CHANGELOG.md | 16 +- Cargo.toml | 10 +- README.md | 12 +- ROADMAP.md | 104 +- .../bindings/KbDemoPipeline2CatalogPayload.ts | 25 - .../KbDemoWsManagerEndpointSummary.ts | 6 - .../KbDemoWsManagerSnapshotPayload.ts | 7 - .../ts/bindings/KbDemoWsStatusPayload.ts | 6 - kb_app/gen/schemas/acl-manifests.json | 1 - {kb_app => kb_demo_app}/Cargo.toml | 6 +- {kb_app => kb_demo_app}/build.rs | 2 +- .../capabilities/default.json | 0 .../frontend/demo_http.html | 2 +- .../frontend/demo_pipeline.html | 2 +- .../frontend/demo_pipeline2.html | 18 +- {kb_app => kb_demo_app}/frontend/demo_ws.html | 2 +- .../frontend/demo_ws_manager.html | 2 +- .../frontend/fonts/DOS_Amazigh.ttf | Bin .../frontend/imgs/logo.png | Bin .../frontend/imgs/splash.png | Bin {kb_app => kb_demo_app}/frontend/main.html | 2 +- .../frontend/sass/_app.scss | 2 +- .../frontend/sass/_bootswatch.scss | 2 +- .../frontend/sass/_fontawesome.scss | 2 +- .../frontend/sass/_simplebar.scss | 2 +- .../frontend/sass/_variables.scss | 2 +- .../frontend/sass/main.scss | 2 +- .../frontend/sass/splash.scss | 2 +- {kb_app => kb_demo_app}/frontend/splash.html | 2 +- .../ts/bindings/DemoHttpExecutionPayload.ts | 2 +- .../frontend/ts/bindings/DemoHttpRequest.ts | 2 +- .../bindings/DemoPipeline2BackfillPayload.ts | 6 +- .../DemoPipeline2BackfillPoolRequest.ts | 2 +- .../DemoPipeline2BackfillTokenRequest.ts | 2 +- .../bindings/DemoPipeline2CatalogPayload.ts | 25 + ...line2LocalDecodedEventDiagnosticSummary.ts | 2 +- .../DemoPipeline2LocalDexDiagnosticSummary.ts | 2 +- .../DemoPipeline2LocalDiagnosticsPayload.ts | 6 +- ...licateDecodedEventTradeDiagnosticSample.ts | 2 +- ...2LocalMissingTradeEventDiagnosticSample.ts | 6 +- ...ine2LocalMissingTradeEventReasonSummary.ts | 34 + ...MultiTradeSignaturePairDiagnosticSample.ts | 2 +- ...LocalNonActionablePairDiagnosticSummary.ts | 70 + ...DemoPipeline2LocalPairDiagnosticSummary.ts | 2 +- ...moPipeline2LocalPairGapDiagnosticSample.ts | 2 +- ...Pipeline2LocalPipelineDiagnosticSummary.ts | 46 +- ...moPipeline2LocalPipelineValidationIssue.ts | 22 + ...oPipeline2LocalPipelineValidationReport.ts | 35 + ...DemoPipeline2LocalPipelineValidationRun.ts | 32 + .../DemoPipeline2LocalValidationPayload.ts | 23 + .../DemoPipeline2PairCandlesPayload.ts | 2 +- .../DemoPipeline2PairCandlesRequest.ts | 2 +- .../ts/bindings/DemoPipeline2PairItem.ts | 2 +- .../ts/bindings/DemoPipeline2PoolItem.ts | 2 +- .../ts/bindings/DemoPipeline2TokenItem.ts | 2 +- .../DemoPipelineBackfillPoolPayload.ts | 6 +- .../DemoPipelineBackfillPoolRequest.ts | 4 +- .../DemoPipelineBackfillTokenPayload.ts | 6 +- .../DemoPipelineBackfillTokenRequest.ts | 4 +- .../DemoPipelineInspectPairRequest.ts | 2 +- .../ts/bindings/DemoPipelineInspectPayload.ts | 2 +- .../DemoPipelineInspectPoolRequest.ts | 2 +- .../ts/bindings/DemoPipelineInspectRequest.ts | 2 +- .../DemoPipelineInspectTokenRequest.ts | 2 +- .../ts/bindings/DemoWsEndpointSummary.ts | 2 +- .../bindings/DemoWsManagerEndpointSummary.ts | 6 + .../bindings/DemoWsManagerSnapshotPayload.ts | 7 + .../ts/bindings/DemoWsStatusPayload.ts | 6 + .../ts/bindings/DemoWsSubscribeRequest.ts | 2 +- .../frontend/ts/bindings/SplashOrder.ts | 0 .../frontend/ts/demo_http.ts | 8 +- .../frontend/ts/demo_pipeline.ts | 54 +- .../frontend/ts/demo_pipeline2.ts | 69 +- .../frontend/ts/demo_ws.ts | 22 +- .../frontend/ts/demo_ws_manager.ts | 18 +- {kb_app => kb_demo_app}/frontend/ts/main.ts | 2 +- {kb_app => kb_demo_app}/frontend/ts/splash.ts | 2 +- kb_demo_app/gen/schemas/acl-manifests.json | 1 + .../gen/schemas/capabilities.json | 0 .../gen/schemas/desktop-schema.json | 60 +- .../gen/schemas/linux-schema.json | 60 +- {kb_app => kb_demo_app}/icons/favicon.ico | Bin {kb_app => kb_demo_app}/icons/favicon.png | Bin {kb_app => kb_demo_app}/package.json | 12 +- {kb_app => kb_demo_app}/src/demo_http.rs | 61 +- {kb_app => kb_demo_app}/src/demo_pipeline.rs | 550 +++--- {kb_app => kb_demo_app}/src/demo_pipeline2.rs | 605 ++++-- {kb_app => kb_demo_app}/src/demo_ws.rs | 396 ++-- .../src/demo_ws_manager.rs | 320 ++- {kb_app => kb_demo_app}/src/lib.rs | 95 +- {kb_app => kb_demo_app}/src/main.rs | 6 +- {kb_app => kb_demo_app}/src/splash.rs | 2 +- {kb_app => kb_demo_app}/tauri.conf.json | 6 +- {kb_app => kb_demo_app}/tsconfig.json | 0 {kb_app => kb_demo_app}/vite.config.ts | 2 +- kb_lib/src/config.rs | 163 +- kb_lib/src/constants.rs | 65 +- kb_lib/src/db.rs | 392 ++-- kb_lib/src/db/connection.rs | 48 +- kb_lib/src/db/dtos.rs | 103 +- kb_lib/src/db/dtos/analysis_signal.rs | 20 +- kb_lib/src/db/dtos/chain_instruction.rs | 18 +- kb_lib/src/db/dtos/chain_slot.rs | 18 +- kb_lib/src/db/dtos/chain_transaction.rs | 16 +- kb_lib/src/db/dtos/db_metadata.rs | 16 +- kb_lib/src/db/dtos/db_runtime_event.rs | 18 +- kb_lib/src/db/dtos/dex.rs | 14 +- kb_lib/src/db/dtos/dex_decoded_event.rs | 12 +- kb_lib/src/db/dtos/known_http_endpoint.rs | 24 +- kb_lib/src/db/dtos/known_ws_endpoint.rs | 24 +- kb_lib/src/db/dtos/launch_attribution.rs | 14 +- kb_lib/src/db/dtos/launch_surface.rs | 14 +- kb_lib/src/db/dtos/launch_surface_key.rs | 14 +- kb_lib/src/db/dtos/liquidity_event.rs | 20 +- .../src/db/dtos/local_pipeline_diagnostics.rs | 159 +- kb_lib/src/db/dtos/observed_token.rs | 24 +- kb_lib/src/db/dtos/onchain_observation.rs | 22 +- kb_lib/src/db/dtos/pair.rs | 14 +- kb_lib/src/db/dtos/pair_analytic_signal.rs | 22 +- kb_lib/src/db/dtos/pair_candle.rs | 14 +- kb_lib/src/db/dtos/pair_metric.rs | 14 +- kb_lib/src/db/dtos/pool.rs | 26 +- kb_lib/src/db/dtos/pool_listing.rs | 20 +- kb_lib/src/db/dtos/pool_origin.rs | 20 +- kb_lib/src/db/dtos/pool_token.rs | 20 +- kb_lib/src/db/dtos/swap.rs | 20 +- kb_lib/src/db/dtos/token.rs | 16 +- kb_lib/src/db/dtos/token_burn_event.rs | 14 +- kb_lib/src/db/dtos/token_mint_event.rs | 14 +- kb_lib/src/db/dtos/trade_event.rs | 34 +- kb_lib/src/db/dtos/wallet.rs | 14 +- kb_lib/src/db/dtos/wallet_holding.rs | 22 +- kb_lib/src/db/dtos/wallet_participation.rs | 24 +- kb_lib/src/db/entities.rs | 64 +- kb_lib/src/db/entities/analysis_signal.rs | 2 +- kb_lib/src/db/entities/chain_instruction.rs | 2 +- kb_lib/src/db/entities/chain_slot.rs | 3 +- kb_lib/src/db/entities/chain_transaction.rs | 2 +- kb_lib/src/db/entities/db_metadata.rs | 2 +- kb_lib/src/db/entities/db_runtime_event.rs | 2 +- kb_lib/src/db/entities/dex.rs | 2 +- kb_lib/src/db/entities/dex_decoded_event.rs | 2 +- kb_lib/src/db/entities/known_http_endpoint.rs | 2 +- kb_lib/src/db/entities/known_ws_endpoint.rs | 2 +- kb_lib/src/db/entities/launch_attribution.rs | 2 +- kb_lib/src/db/entities/launch_surface.rs | 2 +- kb_lib/src/db/entities/launch_surface_key.rs | 2 +- kb_lib/src/db/entities/liquidity_event.rs | 2 +- kb_lib/src/db/entities/observed_token.rs | 2 +- kb_lib/src/db/entities/onchain_observation.rs | 2 +- kb_lib/src/db/entities/pair.rs | 2 +- .../src/db/entities/pair_analytic_signal.rs | 2 +- kb_lib/src/db/entities/pair_candle.rs | 2 +- kb_lib/src/db/entities/pair_metric.rs | 2 +- kb_lib/src/db/entities/pool.rs | 2 +- kb_lib/src/db/entities/pool_listing.rs | 2 +- kb_lib/src/db/entities/pool_origin.rs | 2 +- kb_lib/src/db/entities/pool_token.rs | 2 +- kb_lib/src/db/entities/swap.rs | 2 +- kb_lib/src/db/entities/token.rs | 2 +- kb_lib/src/db/entities/token_burn_event.rs | 2 +- kb_lib/src/db/entities/token_mint_event.rs | 2 +- kb_lib/src/db/entities/trade_event.rs | 2 +- kb_lib/src/db/entities/wallet.rs | 2 +- kb_lib/src/db/entities/wallet_holding.rs | 2 +- .../src/db/entities/wallet_participation.rs | 2 +- kb_lib/src/db/queries.rs | 216 +- kb_lib/src/db/queries/analysis_signal.rs | 56 +- kb_lib/src/db/queries/chain_instruction.rs | 103 +- kb_lib/src/db/queries/chain_slot.rs | 78 +- kb_lib/src/db/queries/chain_transaction.rs | 98 +- kb_lib/src/db/queries/db_metadata.rs | 74 +- kb_lib/src/db/queries/db_runtime_event.rs | 52 +- kb_lib/src/db/queries/dex.rs | 76 +- kb_lib/src/db/queries/dex_decoded_event.rs | 102 +- kb_lib/src/db/queries/known_http_endpoint.rs | 70 +- kb_lib/src/db/queries/known_ws_endpoint.rs | 70 +- kb_lib/src/db/queries/launch_attribution.rs | 60 +- kb_lib/src/db/queries/launch_surface.rs | 60 +- kb_lib/src/db/queries/launch_surface_key.rs | 60 +- kb_lib/src/db/queries/liquidity_event.rs | 44 +- .../db/queries/local_pipeline_diagnostics.rs | 761 ++++++-- kb_lib/src/db/queries/observed_token.rs | 87 +- kb_lib/src/db/queries/onchain_observation.rs | 60 +- kb_lib/src/db/queries/pair.rs | 114 +- kb_lib/src/db/queries/pair_analytic_signal.rs | 62 +- kb_lib/src/db/queries/pair_candle.rs | 60 +- kb_lib/src/db/queries/pair_metric.rs | 60 +- kb_lib/src/db/queries/pool.rs | 94 +- kb_lib/src/db/queries/pool_listing.rs | 106 +- kb_lib/src/db/queries/pool_origin.rs | 66 +- kb_lib/src/db/queries/pool_token.rs | 76 +- kb_lib/src/db/queries/swap.rs | 44 +- kb_lib/src/db/queries/token.rs | 121 +- kb_lib/src/db/queries/token_burn_event.rs | 108 +- kb_lib/src/db/queries/token_mint_event.rs | 44 +- kb_lib/src/db/queries/trade_event.rs | 98 +- kb_lib/src/db/queries/wallet.rs | 62 +- kb_lib/src/db/queries/wallet_holding.rs | 62 +- kb_lib/src/db/queries/wallet_participation.rs | 78 +- kb_lib/src/db/schema.rs | 1118 +++++------ kb_lib/src/db/sqlite.rs | 18 +- kb_lib/src/db/types.rs | 20 +- .../src/db/types/analysis_signal_severity.rs | 10 +- kb_lib/src/db/types/database_backend.rs | 2 +- kb_lib/src/db/types/liquidity_event_kind.rs | 10 +- .../src/db/types/observation_source_kind.rs | 10 +- kb_lib/src/db/types/observed_token_status.rs | 10 +- kb_lib/src/db/types/pool_kind.rs | 8 +- kb_lib/src/db/types/pool_status.rs | 8 +- kb_lib/src/db/types/pool_token_role.rs | 8 +- kb_lib/src/db/types/runtime_event_level.rs | 10 +- kb_lib/src/db/types/swap_trade_side.rs | 11 +- kb_lib/src/detect.rs | 24 +- kb_lib/src/detect/service.rs | 146 +- kb_lib/src/detect/solana_ws.rs | 202 +- kb_lib/src/detect/types.rs | 44 +- kb_lib/src/detect/ws_relay.rs | 78 +- kb_lib/src/dex.rs | 93 +- kb_lib/src/dex/dexlab.rs | 238 ++- kb_lib/src/dex/fluxbeam.rs | 201 +- kb_lib/src/dex/meteora_damm_v1.rs | 229 +-- kb_lib/src/dex/meteora_damm_v2.rs | 259 ++- kb_lib/src/dex/meteora_dbc.rs | 233 ++- kb_lib/src/dex/orca_whirlpools.rs | 260 ++- kb_lib/src/dex/pump_fun.rs | 142 +- kb_lib/src/dex/pump_swap.rs | 314 ++- kb_lib/src/dex/raydium_amm_v4.rs | 87 +- kb_lib/src/dex/raydium_clmm.rs | 99 +- kb_lib/src/dex/raydium_cpmm.rs | 121 +- kb_lib/src/dex_decode.rs | 886 +++++---- kb_lib/src/dex_detect.rs | 1278 ++++++------ kb_lib/src/error.rs | 26 +- kb_lib/src/http_client.rs | 457 +++-- kb_lib/src/http_pool.rs | 80 +- kb_lib/src/json_rpc_ws.rs | 96 +- kb_lib/src/launch_origin.rs | 199 +- kb_lib/src/lib.rs | 1137 +++++++---- kb_lib/src/local_pipeline_diagnostics.rs | 54 +- kb_lib/src/local_pipeline_replay.rs | 55 +- kb_lib/src/local_pipeline_validation.rs | 511 +++++ kb_lib/src/pair_analytic_signal.rs | 209 +- kb_lib/src/pair_candle_aggregation.rs | 147 +- kb_lib/src/pair_candle_query.rs | 86 +- kb_lib/src/pair_symbol.rs | 96 +- kb_lib/src/pool_origin.rs | 101 +- kb_lib/src/solana_pubsub_ws.rs | 135 +- kb_lib/src/token_backfill.rs | 186 +- kb_lib/src/token_metadata.rs | 296 ++- kb_lib/src/tracing.rs | 66 +- kb_lib/src/trade_aggregation.rs | 1737 ++++++++++++++--- kb_lib/src/tx_model.rs | 152 +- kb_lib/src/tx_resolution.rs | 169 +- kb_lib/src/types.rs | 2 +- kb_lib/src/wallet_holding_observation.rs | 140 +- kb_lib/src/wallet_observation.rs | 147 +- kb_lib/src/ws_client.rs | 315 ++- kb_lib/src/ws_hybrid_observation.rs | 78 +- kb_lib/src/ws_hybrid_runtime.rs | 74 +- kb_lib/src/ws_hybrid_watch.rs | 102 +- kb_lib/src/ws_manager.rs | 191 +- 261 files changed, 12308 insertions(+), 8928 deletions(-) delete mode 100644 kb_app/frontend/ts/bindings/KbDemoPipeline2CatalogPayload.ts delete mode 100644 kb_app/frontend/ts/bindings/KbDemoWsManagerEndpointSummary.ts delete mode 100644 kb_app/frontend/ts/bindings/KbDemoWsManagerSnapshotPayload.ts delete mode 100644 kb_app/frontend/ts/bindings/KbDemoWsStatusPayload.ts delete mode 100644 kb_app/gen/schemas/acl-manifests.json rename {kb_app => kb_demo_app}/Cargo.toml (91%) rename {kb_app => kb_demo_app}/build.rs (57%) rename {kb_app => kb_demo_app}/capabilities/default.json (100%) rename {kb_app => kb_demo_app}/frontend/demo_http.html (99%) rename {kb_app => kb_demo_app}/frontend/demo_pipeline.html (99%) rename {kb_app => kb_demo_app}/frontend/demo_pipeline2.html (93%) rename {kb_app => kb_demo_app}/frontend/demo_ws.html (99%) rename {kb_app => kb_demo_app}/frontend/demo_ws_manager.html (99%) rename {kb_app => kb_demo_app}/frontend/fonts/DOS_Amazigh.ttf (100%) rename {kb_app => kb_demo_app}/frontend/imgs/logo.png (100%) rename {kb_app => kb_demo_app}/frontend/imgs/splash.png (100%) rename {kb_app => kb_demo_app}/frontend/main.html (99%) rename {kb_app => kb_demo_app}/frontend/sass/_app.scss (99%) rename {kb_app => kb_demo_app}/frontend/sass/_bootswatch.scss (97%) rename {kb_app => kb_demo_app}/frontend/sass/_fontawesome.scss (93%) rename {kb_app => kb_demo_app}/frontend/sass/_simplebar.scss (98%) rename {kb_app => kb_demo_app}/frontend/sass/_variables.scss (97%) rename {kb_app => kb_demo_app}/frontend/sass/main.scss (79%) rename {kb_app => kb_demo_app}/frontend/sass/splash.scss (97%) rename {kb_app => kb_demo_app}/frontend/splash.html (93%) rename kb_app/frontend/ts/bindings/KbDemoHttpExecutionPayload.ts => kb_demo_app/frontend/ts/bindings/DemoHttpExecutionPayload.ts (92%) rename kb_app/frontend/ts/bindings/KbDemoHttpRequest.ts => kb_demo_app/frontend/ts/bindings/DemoHttpRequest.ts (94%) rename kb_app/frontend/ts/bindings/KbDemoPipeline2BackfillPayload.ts => kb_demo_app/frontend/ts/bindings/DemoPipeline2BackfillPayload.ts (70%) rename kb_app/frontend/ts/bindings/KbDemoPipeline2BackfillPoolRequest.ts => kb_demo_app/frontend/ts/bindings/DemoPipeline2BackfillPoolRequest.ts (87%) rename kb_app/frontend/ts/bindings/KbDemoPipeline2BackfillTokenRequest.ts => kb_demo_app/frontend/ts/bindings/DemoPipeline2BackfillTokenRequest.ts (89%) create mode 100644 kb_demo_app/frontend/ts/bindings/DemoPipeline2CatalogPayload.ts rename kb_app/frontend/ts/bindings/KbDemoPipeline2LocalDecodedEventDiagnosticSummary.ts => kb_demo_app/frontend/ts/bindings/DemoPipeline2LocalDecodedEventDiagnosticSummary.ts (89%) rename kb_app/frontend/ts/bindings/KbDemoPipeline2LocalDexDiagnosticSummary.ts => kb_demo_app/frontend/ts/bindings/DemoPipeline2LocalDexDiagnosticSummary.ts (91%) rename kb_app/frontend/ts/bindings/KbDemoPipeline2LocalDiagnosticsPayload.ts => kb_demo_app/frontend/ts/bindings/DemoPipeline2LocalDiagnosticsPayload.ts (58%) rename kb_app/frontend/ts/bindings/KbDemoPipeline2LocalDuplicateDecodedEventTradeDiagnosticSample.ts => kb_demo_app/frontend/ts/bindings/DemoPipeline2LocalDuplicateDecodedEventTradeDiagnosticSample.ts (87%) rename kb_app/frontend/ts/bindings/KbDemoPipeline2LocalMissingTradeEventDiagnosticSample.ts => kb_demo_app/frontend/ts/bindings/DemoPipeline2LocalMissingTradeEventDiagnosticSample.ts (84%) create mode 100644 kb_demo_app/frontend/ts/bindings/DemoPipeline2LocalMissingTradeEventReasonSummary.ts rename kb_app/frontend/ts/bindings/KbDemoPipeline2LocalMultiTradeSignaturePairDiagnosticSample.ts => kb_demo_app/frontend/ts/bindings/DemoPipeline2LocalMultiTradeSignaturePairDiagnosticSample.ts (89%) create mode 100644 kb_demo_app/frontend/ts/bindings/DemoPipeline2LocalNonActionablePairDiagnosticSummary.ts rename kb_app/frontend/ts/bindings/KbDemoPipeline2LocalPairDiagnosticSummary.ts => kb_demo_app/frontend/ts/bindings/DemoPipeline2LocalPairDiagnosticSummary.ts (94%) rename kb_app/frontend/ts/bindings/KbDemoPipeline2LocalPairGapDiagnosticSample.ts => kb_demo_app/frontend/ts/bindings/DemoPipeline2LocalPairGapDiagnosticSample.ts (92%) rename kb_app/frontend/ts/bindings/KbDemoPipeline2LocalPipelineDiagnosticSummary.ts => kb_demo_app/frontend/ts/bindings/DemoPipeline2LocalPipelineDiagnosticSummary.ts (57%) create mode 100644 kb_demo_app/frontend/ts/bindings/DemoPipeline2LocalPipelineValidationIssue.ts create mode 100644 kb_demo_app/frontend/ts/bindings/DemoPipeline2LocalPipelineValidationReport.ts create mode 100644 kb_demo_app/frontend/ts/bindings/DemoPipeline2LocalPipelineValidationRun.ts create mode 100644 kb_demo_app/frontend/ts/bindings/DemoPipeline2LocalValidationPayload.ts rename kb_app/frontend/ts/bindings/KbDemoPipeline2PairCandlesPayload.ts => kb_demo_app/frontend/ts/bindings/DemoPipeline2PairCandlesPayload.ts (86%) rename kb_app/frontend/ts/bindings/KbDemoPipeline2PairCandlesRequest.ts => kb_demo_app/frontend/ts/bindings/DemoPipeline2PairCandlesRequest.ts (87%) rename kb_app/frontend/ts/bindings/KbDemoPipeline2PairItem.ts => kb_demo_app/frontend/ts/bindings/DemoPipeline2PairItem.ts (92%) rename kb_app/frontend/ts/bindings/KbDemoPipeline2PoolItem.ts => kb_demo_app/frontend/ts/bindings/DemoPipeline2PoolItem.ts (89%) rename kb_app/frontend/ts/bindings/KbDemoPipeline2TokenItem.ts => kb_demo_app/frontend/ts/bindings/DemoPipeline2TokenItem.ts (88%) rename kb_app/frontend/ts/bindings/KbDemoPipelineBackfillPoolPayload.ts => kb_demo_app/frontend/ts/bindings/DemoPipelineBackfillPoolPayload.ts (65%) rename kb_app/frontend/ts/bindings/KbDemoPipelineBackfillPoolRequest.ts => kb_demo_app/frontend/ts/bindings/DemoPipelineBackfillPoolRequest.ts (75%) rename kb_app/frontend/ts/bindings/KbDemoPipelineBackfillTokenPayload.ts => kb_demo_app/frontend/ts/bindings/DemoPipelineBackfillTokenPayload.ts (68%) rename kb_app/frontend/ts/bindings/KbDemoPipelineBackfillTokenRequest.ts => kb_demo_app/frontend/ts/bindings/DemoPipelineBackfillTokenRequest.ts (79%) rename kb_app/frontend/ts/bindings/KbDemoPipelineInspectPairRequest.ts => kb_demo_app/frontend/ts/bindings/DemoPipelineInspectPairRequest.ts (87%) rename kb_app/frontend/ts/bindings/KbDemoPipelineInspectPayload.ts => kb_demo_app/frontend/ts/bindings/DemoPipelineInspectPayload.ts (95%) rename kb_app/frontend/ts/bindings/KbDemoPipelineInspectPoolRequest.ts => kb_demo_app/frontend/ts/bindings/DemoPipelineInspectPoolRequest.ts (87%) rename kb_app/frontend/ts/bindings/KbDemoPipelineInspectRequest.ts => kb_demo_app/frontend/ts/bindings/DemoPipelineInspectRequest.ts (88%) rename kb_app/frontend/ts/bindings/KbDemoPipelineInspectTokenRequest.ts => kb_demo_app/frontend/ts/bindings/DemoPipelineInspectTokenRequest.ts (87%) rename kb_app/frontend/ts/bindings/KbDemoWsEndpointSummary.ts => kb_demo_app/frontend/ts/bindings/DemoWsEndpointSummary.ts (54%) create mode 100644 kb_demo_app/frontend/ts/bindings/DemoWsManagerEndpointSummary.ts create mode 100644 kb_demo_app/frontend/ts/bindings/DemoWsManagerSnapshotPayload.ts create mode 100644 kb_demo_app/frontend/ts/bindings/DemoWsStatusPayload.ts rename kb_app/frontend/ts/bindings/KbDemoWsSubscribeRequest.ts => kb_demo_app/frontend/ts/bindings/DemoWsSubscribeRequest.ts (52%) rename {kb_app => kb_demo_app}/frontend/ts/bindings/SplashOrder.ts (100%) rename {kb_app => kb_demo_app}/frontend/ts/demo_http.ts (98%) rename {kb_app => kb_demo_app}/frontend/ts/demo_pipeline.ts (94%) rename {kb_app => kb_demo_app}/frontend/ts/demo_pipeline2.ts (87%) rename {kb_app => kb_demo_app}/frontend/ts/demo_ws.ts (95%) rename {kb_app => kb_demo_app}/frontend/ts/demo_ws_manager.ts (89%) rename {kb_app => kb_demo_app}/frontend/ts/main.ts (99%) rename {kb_app => kb_demo_app}/frontend/ts/splash.ts (98%) create mode 100644 kb_demo_app/gen/schemas/acl-manifests.json rename {kb_app => kb_demo_app}/gen/schemas/capabilities.json (100%) rename {kb_app => kb_demo_app}/gen/schemas/desktop-schema.json (97%) rename {kb_app => kb_demo_app}/gen/schemas/linux-schema.json (97%) rename {kb_app => kb_demo_app}/icons/favicon.ico (100%) rename {kb_app => kb_demo_app}/icons/favicon.png (100%) rename {kb_app => kb_demo_app}/package.json (74%) rename {kb_app => kb_demo_app}/src/demo_http.rs (81%) rename {kb_app => kb_demo_app}/src/demo_pipeline.rs (80%) rename {kb_app => kb_demo_app}/src/demo_pipeline2.rs (60%) rename {kb_app => kb_demo_app}/src/demo_ws.rs (76%) rename {kb_app => kb_demo_app}/src/demo_ws_manager.rs (62%) rename {kb_app => kb_demo_app}/src/lib.rs (87%) rename {kb_app => kb_demo_app}/src/main.rs (89%) rename {kb_app => kb_demo_app}/src/splash.rs (95%) rename {kb_app => kb_demo_app}/tauri.conf.json (97%) rename {kb_app => kb_demo_app}/tsconfig.json (100%) rename {kb_app => kb_demo_app}/vite.config.ts (98%) create mode 100644 kb_lib/src/local_pipeline_validation.rs diff --git a/CHANGELOG.md b/CHANGELOG.md index e66ca50..823120b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,13 +9,13 @@ 0.3.1 - Ajout des helpers subscribe/unsubscribe à WsClient 0.3.2 - Ajout des helpers typed et du parsing typed basé sur solana-rpc-client-api 0.3.3 - Ajout du suffixe _raw aux helpers raw pour distinguer typed et raw -0.3.4 - Ajout de la fenêtre Demo Ws dans kb_app pour tester les souscriptions live +0.3.4 - Ajout de la fenêtre Demo Ws dans kb_demo_app pour tester les souscriptions live 0.3.5 - Stabilisation de Demo Ws, lecture correcte des endpoints activés depuis la config, limitation/throttling de l’affichage UI sous fort débit 0.4.0 - Socle HttpClient générique async clonable, JSON-RPC HTTP 2.0, résolution d’URL avec api_key_env_var, limiteur local req/sec + burst, helpers initiaux getHealth/getVersion/getSlot 0.4.1 - Ajout des premiers helpers HTTP Solana haut niveau, dans la continuité de l’API du client WebSocket 0.4.2 - Préparation de la politique HTTP avancée : états de pause avant envoi, quotas par famille de méthodes et futur pool d’endpoints 0.4.3 - Pool d’endpoints HTTP -0.4.4 - Ajout de la fenêtre Demo Http dans kb_app, exécution manuelle des méthodes HTTP via le pool, snapshot des endpoints et amélioration des presets UI +0.4.4 - Ajout de la fenêtre Demo Http dans kb_demo_app, exécution manuelle des méthodes HTTP via le pool, snapshot des endpoints et amélioration des presets UI 0.5.0 - Début du socle SQLite : configuration database, ouverture/validation de la base et premières briques de persistance 0.5.1 - Ajout des premières tables métier SQLite pour les endpoints connus HTTP/WS et les événements runtime, avec séparation entities/dtos/queries/types 0.5.2 - Ajout de la table des tokens observés, de leur statut local et des premières requêtes de persistance associées @@ -29,7 +29,7 @@ 0.6.3 - Enrichissement des notifications WebSocket utiles : extraction améliorée de pubkey, signature, owner, parsed account type et slot pour account/logs/signature notifications 0.6.4 - Premières règles de détection technique pour candidats pools/listings depuis programNotification en s’appuyant sur les DEX connus en base 0.6.5 - Ajout de ws_manager.rs pour l’orchestration multi-clients WebSocket, le bus d’événements unifié et le branchement centralisé du relais de détection -0.6.6 - Ajout de la fenêtre Demo Ws Manager dans kb_app pour piloter plusieurs WsClient, visualiser le snapshot consolidé, tester le démarrage/arrêt par rôle et valider le flux unifié de WsEvent +0.6.6 - Ajout de la fenêtre Demo Ws Manager dans kb_demo_app pour piloter plusieurs WsClient, visualiser le snapshot consolidé, tester le démarrage/arrêt par rôle et valider le flux unifié de WsEvent 0.7.0 - Ajout du socle de résolution transactionnelle orientée DEX : relais WS vers file de résolution, récupération getTransaction via HttpEndpointPool et persistance des résolutions dans les observations/signaux 0.7.1 - Ajout du modèle transactionnel enrichi : tables slots/transactions/instructions, requêtes d’accès et projection structurée des transactions résolues 0.7.2 - Ajout du premier décodeur DEX spécifique Raydium AmmV4 / initialize2, persistance des événements DEX décodés et branchement automatique du décodage après résolution/projection transactionnelle @@ -52,9 +52,9 @@ 0.7.19 - Ajout d’une première couche holdings observés avec agrégation par couple wallet/token et branchement automatique dans le pipeline de résolution transactionnelle 0.7.20 - Ajout d’une première couche candles / OHLCV avec matérialisation en base des timeframes usuels et régénération à la demande pour un timeframe arbitraire depuis les trade events 0.7.21 - Ajout d’une première couche de signaux analytiques enrichis par paire avec persistance dédiée et détection de first trade, trade burst, buy/sell imbalance, price jump et volume spike -0.7.22 - Ajout d’une première fenêtre `Demo Pipeline` dans `kb_app` pour l’inspection en lecture seule du pipeline `0.7.x`, avec recherche par signature, token mint, pair id ou pool address, affichage structuré des transactions résolues, événements DEX décodés, pools, paires, listings, launch origins, pool origins, wallets et holdings observés, trade events, pair metrics, candles et signaux analytiques déjà persistés, ainsi que conservation d’une instance partagée de la base SQLite pour éviter la réouverture et la réinitialisation du schéma à chaque commande UI -0.7.23 - Ajout du pilotage UI du backfill historique ciblé par `token mint` dans `kb_app`, avec saisie du rôle HTTP et des limites de signatures, affichage du résumé de backfill, réinspection automatique du token dans `Demo Pipeline` lorsque des objets persistés sont effectivement reconstruits, et gestion explicite du cas où le backfill réussit sans matérialiser de token exploitable dans la base locale -0.7.24 - Ajout de l’affichage graphique des candles / OHLCV dans `kb_app` via `echarts`, avec sélection de paire et de timeframe, rendu chandelier + volume, et prise en charge des candles matérialisées ou régénérées à la demande depuis `Demo Pipeline` +0.7.22 - Ajout d’une première fenêtre `Demo Pipeline` dans `kb_demo_app` pour l’inspection en lecture seule du pipeline `0.7.x`, avec recherche par signature, token mint, pair id ou pool address, affichage structuré des transactions résolues, événements DEX décodés, pools, paires, listings, launch origins, pool origins, wallets et holdings observés, trade events, pair metrics, candles et signaux analytiques déjà persistés, ainsi que conservation d’une instance partagée de la base SQLite pour éviter la réouverture et la réinitialisation du schéma à chaque commande UI +0.7.23 - Ajout du pilotage UI du backfill historique ciblé par `token mint` dans `kb_demo_app`, avec saisie du rôle HTTP et des limites de signatures, affichage du résumé de backfill, réinspection automatique du token dans `Demo Pipeline` lorsque des objets persistés sont effectivement reconstruits, et gestion explicite du cas où le backfill réussit sans matérialiser de token exploitable dans la base locale +0.7.24 - Ajout de l’affichage graphique des candles / OHLCV dans `kb_demo_app` via `echarts`, avec sélection de paire et de timeframe, rendu chandelier + volume, et prise en charge des candles matérialisées ou régénérées à la demande depuis `Demo Pipeline` 0.7.25 - Enrichissement metadata des tokens, avec résolution locale limitée à SOL / WSOL, résolution des autres mints via comptes on-chain, Token-2022, Metaplex ou payloads DEX, et conservation explicite des cas non résolus -0.7.26 - Diagnostics locaux du pipeline persisté, correction de l’agrégation instruction-scoped des swaps Raydium, clarification des compteurs de replay/upsert, et validation qu’aucun trade candidate issu d’une transaction OK n’est perdu - +0.7.26 - Diagnostics locaux du pipeline persisté, correction de l’agrégation instruction-scoped des swaps Raydium, clarification des compteurs de replay/upsert, et validation qu’aucun trade candidate issu d’une transaction OK n’est perdu +0.7.27 - Validation multi-DEX et non-régression du pipeline sur Pump.fun, PumpSwap, Raydium CPMM et Raydium CLMM, avec corpus de tests, diagnostics de référence et garanties sur les événements non pricés diff --git a/Cargo.toml b/Cargo.toml index 830877a..e0b3c15 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,11 +4,11 @@ resolver = "3" members = [ "kb_lib", - "kb_app", + "kb_demo_app", ] [workspace.package] -version = "0.7.26" +version = "0.7.27" edition = "2024" license = "MIT" repository = "https://git.sasedev.com/Sasedev/khadhroony-bobobot" @@ -32,7 +32,7 @@ serde = { version = "^1.0", features = ["derive"] } serde_json = { version = "^1.0", features = [] } solana-account-decoder-client-types = { version = ">=4.0.0-rc.0", features = ["zstd"] } solana-address-lookup-table-interface = { version = "^3.1", features = ["bincode", "serde"] } -solana-client = { version = ">=4.0.0-beta.7", features = [] } +solana-client = { version = ">=4.0.0-rc.0", features = [] } solana-compute-budget-interface = { version = "^3.0", features = ["borsh", "serde"] } solana-rpc-client-api = { version = ">=4.0.0-rc.0", features = [] } solana-rpc-client-types = { version = ">=4.0.0-rc.0", features = [] } @@ -45,7 +45,7 @@ spl-memo-interface = { version = "^2.0", features = [] } spl-token-interface = { version = "^2.0", features = [] } spl-token-2022-interface = { version = "^2.1", features = [] } sqlx = { version = "^0.8", features = ["chrono", "uuid", "bigdecimal", "json", "sqlite", "runtime-tokio-rustls"] } -tauri = { version = "^2.10", features = ["default", "tray-icon"] } +tauri = { version = "^2.11", features = ["default", "tray-icon"] } tauri-build = { version = "2", features = [] } tauri-plugin-tracing = { version = "^0.3", default-features = false, features = [] } tempfile = { version = "^3", features = [] } @@ -84,3 +84,5 @@ manual_ok_err = "allow" manual_unwrap_or = "allow" manual_map = "allow" match_like_matches_macro = "allow" +single_match = "allow" +manual_unwrap_or_default = "allow" diff --git a/README.md b/README.md index ccb711e..3d75785 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ La liste exacte pourra évoluer au fil du projet. Le workspace Rust est organisé autour de deux sous-crates principales : - `kb_lib` -- `kb_app` +- `kb_demo_app` ### `kb_lib` @@ -51,9 +51,9 @@ Le workspace Rust est organisé autour de deux sous-crates principales : - gestion des wallets, - logique de détection et de filtrage. -### `kb_app` +### `kb_demo_app` -`kb_app` est l’application Tauri V2 avec frontend TypeScript. +`kb_demo_app` est l’application Demo Tauri V2 avec frontend TypeScript. Son rôle est de : @@ -62,7 +62,7 @@ Son rôle est de : - déléguer la logique à `kb_lib`, - afficher les états, logs et événements remontés par la bibliothèque. -Le crate expose une bibliothèque interne `kb_app_lib` afin de limiter le couplage avec `main.rs` et de préparer une évolution mobile ultérieure. +Le crate expose une bibliothèque interne `kb_demo_app_lib` afin de limiter le couplage avec `main.rs` et de préparer une évolution mobile ultérieure. ## 3. Contraintes techniques @@ -239,8 +239,8 @@ cargo test export_bindings Exemple déjà présent : -- `kb_app/src/splash.rs` -- `kb_app/frontend/ts/bindings/SplashOrder.ts` +- `kb_demo_app/src/splash.rs` +- `kb_demo_app/frontend/ts/bindings/SplashOrder.ts` ## 12. État du projet diff --git a/ROADMAP.md b/ROADMAP.md index 272b77e..4b87cf2 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -21,7 +21,7 @@ Le projet vise en priorité : Le workspace est organisé autour de deux sous-crates principales : - `kb_lib` : bibliothèque métier, réseau, config, tracing, stockage, analyse et logique applicative. -- `kb_app` : application Tauri V2 avec frontend TypeScript, chargée de l’interface et de la délégation vers `kb_lib`. +- `kb_demo_app` : application Demo Tauri V2 avec frontend TypeScript, chargée de l’interface et de la délégation vers `kb_lib`. ### 2.2. Contraintes de code @@ -40,8 +40,8 @@ Le socle du projet doit respecter les contraintes suivantes : ### 2.3. Règles de responsabilité -- `kb_app` ne doit pas embarquer la logique métier réseau ou Solana. -- `kb_app` doit seulement orchestrer l’UI, les commandes Tauri et les appels vers `kb_lib`. +- `kb_demo_app` ne doit pas embarquer la logique métier réseau ou Solana. +- `kb_demo_app` doit seulement orchestrer l’UI, les commandes Tauri et les appels vers `kb_lib`. - `kb_lib` doit porter les clients réseau, la config, le tracing, les types partagés, les registres et la logique métier. ## 3. Vision fonctionnelle @@ -146,13 +146,13 @@ Objectif : corriger le squelette et poser la base de travail. Réalisé : - correction de `kb_lib/src/lib.rs`, -- création de `KbError`, -- création de `KbConfig`, -- création de `init_tracing`, +- création de `kb_lib::Error`, +- création de `kb_lib::Config`, +- création de `kb_lib::init_tracing`, - création des constantes Solana officielles, - préparation des modules `ws_client` et `http_client`, -- remise de `kb_app/src/lib.rs` en conformité, -- documentation de `kb_app/src/splash.rs`, +- remise de `kb_demo_app/src/lib.rs` en conformité, +- documentation de `kb_demo_app/src/splash.rs`, - UI Tauri minimale. ### 6.002. Version `0.1.x` — Transport WebSocket générique @@ -174,7 +174,7 @@ Objectif : valider le transport via l’application desktop. Réalisé : -- intégration minimale de `WsClient` dans `kb_app`, +- intégration minimale de `WsClient` dans `kb_demo_app`, - boutons start/stop, - zone de logs, - validation du flux `frontend -> tauri -> kb_lib -> frontend`. @@ -229,7 +229,7 @@ Réalisé : - conservation des helpers typed comme interface plus propre, - préparation d’une hiérarchie API plus explicite. -### 6.009. Version `0.3.4` — Fenêtre `Demo Ws` dans `kb_app` +### 6.009. Version `0.3.4` — Fenêtre `Demo Ws` dans `kb_demo_app` Objectif : tester manuellement les souscriptions live dans une fenêtre dédiée. Réalisé : @@ -306,7 +306,7 @@ Réalisé : - prendre en compte la classe de méthode HTTP, - préparer le routage multi-RPC et la limitation de concurrence par endpoint. -### 6.016. Version `0.4.4` — Démo HTTP dans `kb_app` +### 6.016. Version `0.4.4` — Démo HTTP dans `kb_demo_app` Réalisé : - ajout d’une fenêtre `Demo Http`, @@ -325,9 +325,9 @@ Réalisé : - configuration DB dans `config.json`, - ouverture/validation SQLite, -- façade `KbDatabase`, +- façade `kb_lib::Database`, - premier schéma technique, -- table `kb_db_metadata`, +- table `k_sol_db_metadata`, - séparation `db/entities`, `db/dtos`, `db/queries`, `db/types`. ### 6.019. Version `0.5.1` — Premières tables métier de stockage local @@ -341,7 +341,7 @@ Réalisé : ### 6.020. Version `0.5.2` — Stockage des tokens observés Réalisé : -- ajout de la table `kb_observed_tokens`, +- ajout de la table `k_sol_observed_tokens`, - stockage minimal des mints, symboles, noms, statuts et dates d’observation, - ajout du `token_program`, - préparation des relations futures avec pools, paires et événements on-chain, @@ -350,9 +350,9 @@ Réalisé : ### 6.021. Version `0.5.3` — Événements et signaux locaux Réalisé : -- conservation des événements runtime techniques via `kb_db_runtime_events`, -- ajout des observations on-chain brutes via `kb_onchain_observations`, -- ajout des signaux d’analyse via `kb_analysis_signals`, +- conservation des événements runtime techniques via `k_sol_db_runtime_events`, +- ajout des observations on-chain brutes via `k_sol_onchain_observations`, +- ajout des signaux d’analyse via `k_sol_analysis_signals`, - distinction explicite entre événements runtime, observations on-chain et événements métier, - préparation de la traçabilité de provenance par type de source et endpoint, sans remettre en cause l’unicité locale d’un token par mint. @@ -436,10 +436,10 @@ Réalisé : - branchement optionnel du relais de détection WS sur tous les clients orchestrés, - préparation des futures politiques de répartition, supervision et reconnexion. -### 6.031. Version `0.6.6` — Démo légère `WsManager` dans `kb_app` +### 6.031. Version `0.6.6` — Démo légère `WsManager` dans `kb_demo_app` Réalisé : -- ajout d’une fenêtre `Demo Ws Manager` dans `kb_app`, +- ajout d’une fenêtre `Demo Ws Manager` dans `kb_demo_app`, - ouverture depuis la fenêtre principale, - affichage du snapshot consolidé du `WsManager`, - pilotage des endpoints WS gérés via `start/stop all` et `start/stop role`, @@ -453,13 +453,13 @@ Réalisé : - introduction d’une file de résolution transactionnelle alimentée par les signatures issues des flux WS utiles, - corrélation initiale des `logsNotification` et `signatureNotification` avec des appels `getTransaction`, - utilisation du pool HTTP existant pour enrichir les signaux détectés côté WS, -- persistance des résolutions transactionnelles dans `kb_onchain_observations` et `kb_analysis_signals`, +- persistance des résolutions transactionnelles dans `k_sol_onchain_observations` et `k_sol_analysis_signals`, - préparation du futur modèle transactionnel enrichi sans bloquer les flux temps réel. ### 6.033. Version `0.7.1` — Modèle transactionnel Solana enrichi Réalisé : -- ajout des tables techniques `kb_chain_slots`, `kb_chain_transactions` et `kb_chain_instructions`, +- ajout des tables techniques `k_sol_chain_slots`, `k_sol_chain_transactions` et `k_sol_chain_instructions`, - distinction claire entre slot, transaction résolue et instructions normalisées, - support des instructions principales et inner instructions, - ajout des entités, DTOs et requêtes associées, @@ -481,7 +481,7 @@ Réalisé : Réalisé : - transformation des événements DEX décodés en objets métier pool / pair / listing, -- alimentation de `kb_pools`, `kb_pairs`, `kb_pool_tokens` et `kb_pool_listings`, +- alimentation de `k_sol_pools`, `k_sol_pairs`, `k_sol_pool_tokens` et `k_sol_pool_listings`, - première détection métier pour Raydium AmmV4 / initialize2, - branchement automatique de la détection métier après résolution, projection et décodage DEX, - émission de signaux dédiés pour `new_pool`, `new_pair` et `first_listing_seen`, @@ -501,7 +501,7 @@ Réalisé : Réalisé : - enrichissement du décodeur `PumpSwap` avec extraction des mints et du `pool_v2`, -- persistance des événements `PumpSwap` enrichis dans `kb_dex_decoded_events`, +- persistance des événements `PumpSwap` enrichis dans `k_sol_dex_decoded_events`, - ajout de la détection métier `PumpSwap` vers `pool / pair / listing`, - émission des signaux dédiés `new_pool`, `new_pair` et `first_listing_seen`, - garantie d’idempotence sur une même transaction déjà traitée, @@ -512,7 +512,7 @@ Réalisé : - ajout du premier décodeur `Meteora DBC`, - prise en charge initiale des événements `create_pool` et `swap`, -- persistance des événements `Meteora DBC` dans `kb_dex_decoded_events`, +- persistance des événements `Meteora DBC` dans `k_sol_dex_decoded_events`, - ajout de la détection métier `Meteora DBC` vers `pool / pair / listing`, - émission des signaux dédiés `new_pool`, `new_pair` et `first_listing_seen`, - préparation du lot suivant pour `Meteora DAMM v2`, `Meteora DAMM v1` et `LaunchLab / Fun Launch`. @@ -523,7 +523,7 @@ Réalisé : - ajout du premier décodeur `Meteora DAMM v2`, - prise en charge initiale des événements de création de pool via `initialize_pool`, `initialize_pool_with_dynamic_config` et `initialize_customizable_pool`, - prise en charge initiale des swaps via `swap` et `swap2`, -- persistance des événements `Meteora DAMM v2` dans `kb_dex_decoded_events`, +- persistance des événements `Meteora DAMM v2` dans `k_sol_dex_decoded_events`, - ajout de la détection métier `Meteora DAMM v2` vers `pool / pair / listing`, - préparation du rattachement futur entre `Meteora DBC` et `Meteora DAMM v2`. @@ -533,7 +533,7 @@ Réalisé : - ajout du premier décodeur `Meteora DAMM v1`, - prise en charge initiale des événements de création de pool via `initialize_pool` et `initialize_pool_with_config`, - prise en charge initiale des swaps via `swap`, -- persistance des événements `Meteora DAMM v1` dans `kb_dex_decoded_events`, +- persistance des événements `Meteora DAMM v1` dans `k_sol_dex_decoded_events`, - ajout de la détection métier `Meteora DAMM v1` vers `pool / pair / listing`, - préparation du rattachement futur entre `Meteora DBC` et `Meteora DAMM v1`. @@ -553,9 +553,9 @@ Réalisé : - ajout du premier décodeur `Orca Whirlpools`, - prise en charge initiale des événements de création de pool via `initialize_pool` et `initialize_pool_v2`, - prise en charge initiale des swaps via `swap` et `swap_v2`, -- persistance des événements `Orca Whirlpools` dans `kb_dex_decoded_events`, +- persistance des événements `Orca Whirlpools` dans `k_sol_dex_decoded_events`, - ajout de la détection métier `Orca Whirlpools` vers `pool / pair / listing`, -- utilisation de `KbPoolKind::Clmm` pour refléter la nature concentrée de `Whirlpools`. +- utilisation de `PoolKind::Clmm` pour refléter la nature concentrée de `Whirlpools`. ### 6.043. Version `0.7.11` — FluxBeam Réalisé : @@ -563,7 +563,7 @@ Réalisé : - ajout du premier décodeur `FluxBeam`, - prise en charge initiale des événements de création de pool via un premier décodage `create_pool / initialize_pool`, - prise en charge initiale des swaps via `swap`, -- persistance des événements `FluxBeam` dans `kb_dex_decoded_events`, +- persistance des événements `FluxBeam` dans `k_sol_dex_decoded_events`, - ajout de la détection métier `FluxBeam` vers `pool / pair / listing`, - conservation d’un premier décodage heuristique à raffiner ultérieurement avec des transactions FluxBeam réelles. @@ -573,7 +573,7 @@ Réalisé : - ajout du premier décodeur `DexLab Swap/Pool`, - prise en charge initiale des événements de création de pool via un premier décodage `create_pool / initialize_pool`, - prise en charge initiale des swaps via `swap`, -- persistance des événements `DexLab` dans `kb_dex_decoded_events`, +- persistance des événements `DexLab` dans `k_sol_dex_decoded_events`, - ajout de la détection métier `DexLab` vers `pool / pair / listing`, - conservation d’une séparation entre pool DexLab natif et éventuel `OpenBook Market ID` créé ensuite. @@ -662,33 +662,33 @@ Réalisé : - persistance idempotente des signaux par paire et par bucket, - branchement automatique dans le pipeline de résolution transactionnelle. -### 6.054. Version `0.7.22` — `kb_app` : inspection et tests du pipeline `0.7.x` +### 6.054. Version `0.7.22` — `kb_demo_app` : inspection et tests du pipeline `0.7.x` Réalisé : -- ajout d’une fenêtre dédiée `Demo Pipeline` dans `kb_app`, +- ajout d’une fenêtre dédiée `Demo Pipeline` dans `kb_demo_app`, - inspection du pipeline persistant par `signature`, - inspection du pipeline persistant par `token mint`, - inspection du pipeline persistant par `pair id`, - inspection du pipeline persistant par `pool address`, - affichage structuré des transactions résolues, événements DEX décodés, pools, paires, listings, launch origins, pool origins, wallets observés, holdings observés, trade events, pair metrics, candles et signaux analytiques, - possibilité d’utiliser un timeframe custom pour régénérer à la demande les candles non matérialisées, -- conservation d’une instance partagée de `KbDatabase` dans `kb_app` afin d’éviter la réouverture de la base et la réinitialisation du schéma à chaque commande UI, +- conservation d’une instance partagée de `Database` dans `kb_demo_app` afin d’éviter la réouverture de la base et la réinitialisation du schéma à chaque commande UI, - validation pratique de l’inspection du pipeline `0.7.x` sans dépendre uniquement des logs bruts ou de la consultation manuelle de SQLite. -### 6.055. Version `0.7.23` — `kb_app` : backfill token ciblé +### 6.055. Version `0.7.23` — `kb_demo_app` : backfill token ciblé Réalisé : -- ajout d’un pilotage UI du backfill historique ciblé par `token mint` dans `kb_app`, +- ajout d’un pilotage UI du backfill historique ciblé par `token mint` dans `kb_demo_app`, - sélection du `token mint`, du rôle HTTP et des limites de signatures `mint / pool`, -- exécution de `KbTokenBackfillService` depuis une commande Tauri dédiée, +- exécution de `TokenBackfillService` depuis une commande Tauri dédiée, - affichage du résumé de backfill dans `Demo Pipeline`, - réinspection automatique du token après backfill lorsque des objets persistés exploitables sont effectivement reconstruits, - gestion explicite du cas où le backfill réussit sans matérialiser de token exploitable dans la base locale. -### 6.056. Version `0.7.24` — `kb_app` : visualisation candles / OHLCV +### 6.056. Version `0.7.24` — `kb_demo_app` : visualisation candles / OHLCV Réalisé : -- ajout d’un affichage graphique des candles / OHLCV dans `kb_app` via `echarts`, +- ajout d’un affichage graphique des candles / OHLCV dans `kb_demo_app` via `echarts`, - sélection dynamique de la paire inspectée, - sélection dynamique du timeframe disponible, - affichage conjoint des chandeliers OHLC et du volume, @@ -736,7 +736,7 @@ Réalisé : - `duplicateCandleBucketCount`. - Correction de l’agrégation des trades Raydium via extraction instruction-scoped des transferts SPL Token depuis `meta.innerInstructions`. - Correction des cas CPMM contenant plusieurs swaps dans une même transaction, sans mélange des montants entre instructions. -- Conservation des transactions échouées comme événements décodés traçables, sans génération de `kb_trade_events`. +- Conservation des transactions échouées comme événements décodés traçables, sans génération de `k_sol_trade_events`. - Clarification des compteurs de replay : - `pairCandleUpsertCount`, - `analyticSignalUpsertCount`. @@ -763,15 +763,15 @@ Objectif : verrouiller la non-régression du pipeline actuel avant d’ajouter d - ajouter ou compléter les tests unitaires sur `dex_decode`, `dex_detect`, `trade_aggregation`, `pair_candle_aggregation`, `pair_analytic_signal`, `local_pipeline_replay` et `local_pipeline_diagnostics`, - ajouter des requêtes SQL de diagnostic de référence pour contrôler rapidement les tables clés après backfill ou replay local, - conserver la tolérance aux événements DEX partiels tout en refusant les trades sans montant ou prix exploitable, -- valider que les transactions échouées restent traçables dans les événements décodés sans produire de `kb_trade_events`. +- valider que les transactions échouées restent traçables dans les événements décodés sans produire de `k_sol_trade_events`. ### 6.060. Version `0.7.28` — Matérialisation des événements liquidité et cycle de vie pool Objectif : exploiter les événements non buy/sell utiles à l’analyse et au trading semi-automatique sans les mélanger avec les trades/candles. À faire : -- stabiliser ou ajouter la table `kb_liquidity_events`, -- stabiliser ou ajouter la table `kb_pool_lifecycle_events`, +- stabiliser ou ajouter la table `k_sol_liquidity_events`, +- stabiliser ou ajouter la table `k_sol_pool_lifecycle_events`, - matérialiser les événements de type `increase_liquidity`, `decrease_liquidity`, `add_liquidity`, `remove_liquidity`, `open_position`, `close_position`, `initialize`, `create_pool`, `migrate` et assimilés, - rattacher chaque événement métier à `dex_id`, `pool_id`, `pair_id`, `transaction_id`, `decoded_event_id`, `signature` et `slot`, - conserver le `payload_json` source pour audit et extension future, @@ -784,9 +784,9 @@ Objectif : conserver les événements non price-action utiles au risque, à l’ À faire : -- ajouter ou stabiliser `kb_fee_events`, -- ajouter ou stabiliser `kb_reward_events`, -- ajouter ou stabiliser `kb_pool_admin_events`, +- ajouter ou stabiliser `k_sol_fee_events`, +- ajouter ou stabiliser `k_sol_reward_events`, +- ajouter ou stabiliser `k_sol_pool_admin_events`, - matérialiser les événements `collect_protocol_fee`, `collect_fund_fee`, `collect_creator_fee`, `collect_fee` et assimilés, - matérialiser les événements `set_reward_params`, `initialize_reward`, `collect_reward`, `update_reward_infos` et assimilés, - matérialiser les événements `set_config`, `update_config`, `set_authority`, `set_fee_rate`, `pause`, `resume` et assimilés, @@ -801,7 +801,7 @@ Objectif : ajouter ou stabiliser les connecteurs Meteora avec une séparation cl - vérifier les programmes et discriminants réellement utilisés pour `Meteora DBC`, `Meteora DAMM v1` et `Meteora DAMM v2`, - constituer un petit corpus local de pools et signatures fiables pour chaque variante, - décoder les créations de pool, swaps et événements de liquidité exploitables, -- alimenter `kb_dex_decoded_events`, les tables métier pool/pair/listing et les nouvelles tables d’événements non-trade, +- alimenter `k_sol_dex_decoded_events`, les tables métier pool/pair/listing et les nouvelles tables d’événements non-trade, - vérifier l’idempotence du replay local sur un corpus mixte Meteora, - documenter les limites connues des variantes insuffisamment couvertes par le corpus. @@ -854,7 +854,7 @@ Objectif : traiter le vrai Raydium AMM v4 historique après les autres DEX, afin - renommer et stabiliser les fonctions internes autour de `raydium_amm_v4` afin d’éviter l’ambiguïté avec `raydium_cpmm` et `raydium_clmm`, - documenter les limites connues si le corpus AMM v4 reste trop faible. -### 6.067. Version `0.7.35` — `kb_app` : overlays analytiques +### 6.067. Version `0.7.35` — `kb_demo_app` : overlays analytiques Objectif : rendre visibles les signaux analytiques directement sur les graphes et vues de marché. À faire : @@ -865,7 +865,7 @@ Objectif : rendre visibles les signaux analytiques directement sur les graphes e - afficher un panneau latéral listant les signaux liés à une paire et à un timeframe, - préparer l’extension future vers des indicateurs Ichimoku, Kumo, projections ABCD et égalités temps/prix sans les mélanger au pipeline de décodage DEX. -### 6.068. Version `0.7.36` — `kb_app` : vues consolidées token / pair / pool +### 6.068. Version `0.7.36` — `kb_demo_app` : vues consolidées token / pair / pool Objectif : fournir une lecture métier plus confortable du modèle `0.7.x`. À faire : @@ -882,7 +882,7 @@ Objectif : stabiliser la couche desktop de validation avant l’ouverture de `0. À faire : -- consolider les vues ajoutées dans `kb_app`, +- consolider les vues ajoutées dans `kb_demo_app`, - améliorer la navigation, les filtres et la pagination, - ajouter les derniers raffinements de confort et de lisibilité, - préparer une base UI suffisamment stable pour la future phase d’analyse et filtrage `0.8.x`, @@ -996,7 +996,7 @@ Modules cibles à court terme : - `db/dtos/*` - `db/queries/*` -### 7.2. `kb_app` +### 7.2. `kb_demo_app` Responsabilités cibles : - lancement Tauri, @@ -1060,12 +1060,12 @@ La priorité immédiate est désormais la suivante : 2. vérifier sur bases neuves et après replay local les invariants bloquants du pipeline : `diagnosticsClean = true`, `blockingIssueCount = 0`, aucun trade candidate exploitable perdu, aucun trade event invalide, aucun doublon réel par `decoded_event_id`, aucune candle dupliquée par bucket, 3. documenter les requêtes SQL de diagnostic de référence et les résultats attendus pour les tables clés du pipeline, 4. matérialiser ensuite les événements non buy/sell utiles au trading et à l’analyse : liquidité, cycle de vie des pools, fees, rewards et administration, -5. garantir que ces événements non-trade restent séparés des `kb_trade_events` et des candles tout en restant rattachés aux transactions, decoded events, pools, pairs et wallets observés, +5. garantir que ces événements non-trade restent séparés des `k_sol_trade_events` et des candles tout en restant rattachés aux transactions, decoded events, pools, pairs et wallets observés, 6. ajouter ou stabiliser les autres DEX par lots vérifiables : Meteora, surfaces de lancement, Orca, FluxBeam et DexLab, 7. traiter `raydium_amm_v4` legacy seulement après les autres DEX, avec un corpus dédié prouvant le programme `675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8`, 8. effectuer une validation DEX v1 consolidée sur tous les connecteurs supportés avant de considérer la couche DEX `0.7.x` comme stable, 9. ajouter ensuite les overlays des signaux analytiques sur les candles, -10. consolider les vues métier `token / pair / pool` dans `kb_app`, y compris les événements liquidité, lifecycle, fees, rewards et admin, +10. consolider les vues métier `token / pair / pool` dans `kb_demo_app`, y compris les événements liquidité, lifecycle, fees, rewards et admin, 11. stabiliser l’ergonomie, les filtres, la pagination et la navigation de l’UI d’inspection, 12. préparer ensuite l’ouverture de `0.8.x` pour l’analyse, les filtres, les patterns et les projections graphiques, 13. préparer enfin Yellowstone gRPC comme extension de capacité, et non comme remplacement du socle HTTP / WS existant. diff --git a/kb_app/frontend/ts/bindings/KbDemoPipeline2CatalogPayload.ts b/kb_app/frontend/ts/bindings/KbDemoPipeline2CatalogPayload.ts deleted file mode 100644 index 6c42ec5..0000000 --- a/kb_app/frontend/ts/bindings/KbDemoPipeline2CatalogPayload.ts +++ /dev/null @@ -1,25 +0,0 @@ -// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. -import type { KbDemoPipeline2PairItem } from "./KbDemoPipeline2PairItem"; -import type { KbDemoPipeline2PoolItem } from "./KbDemoPipeline2PoolItem"; -import type { KbDemoPipeline2TokenItem } from "./KbDemoPipeline2TokenItem"; - -/** - * Full local catalog payload. - */ -export type KbDemoPipeline2CatalogPayload = { -/** - * Open database URL. - */ -databaseUrl: string, -/** - * Observed token list. - */ -tokens: Array, -/** - * Known pool list. - */ -pools: Array, -/** - * Known pair list. - */ -pairs: Array, }; diff --git a/kb_app/frontend/ts/bindings/KbDemoWsManagerEndpointSummary.ts b/kb_app/frontend/ts/bindings/KbDemoWsManagerEndpointSummary.ts deleted file mode 100644 index 29b750c..0000000 --- a/kb_app/frontend/ts/bindings/KbDemoWsManagerEndpointSummary.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. - -/** - * Static endpoint summary enriched with current manager state. - */ -export type KbDemoWsManagerEndpointSummary = { name: string, resolvedUrl: string, provider: string, roles: Array, connectionState: string, activeSubscriptionCount: number, }; diff --git a/kb_app/frontend/ts/bindings/KbDemoWsManagerSnapshotPayload.ts b/kb_app/frontend/ts/bindings/KbDemoWsManagerSnapshotPayload.ts deleted file mode 100644 index a81d133..0000000 --- a/kb_app/frontend/ts/bindings/KbDemoWsManagerSnapshotPayload.ts +++ /dev/null @@ -1,7 +0,0 @@ -// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. -import type { KbDemoWsManagerEndpointSummary } from "./KbDemoWsManagerEndpointSummary"; - -/** - * Global demo manager snapshot payload. - */ -export type KbDemoWsManagerSnapshotPayload = { endpointCount: number, startedCount: number, endpoints: Array, }; diff --git a/kb_app/frontend/ts/bindings/KbDemoWsStatusPayload.ts b/kb_app/frontend/ts/bindings/KbDemoWsStatusPayload.ts deleted file mode 100644 index bbd6fcd..0000000 --- a/kb_app/frontend/ts/bindings/KbDemoWsStatusPayload.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. - -/** - * Current demo window runtime status. - */ -export type KbDemoWsStatusPayload = { connectionState: string, endpointName: string | null, endpointUrl: string | null, currentSubscriptionId: bigint | null, currentSubscribeMethod: string | null, currentUnsubscribeMethod: string | null, currentNotificationMethod: string | null, eventCountTotal: bigint, notificationCountTotal: bigint, uiLogCount: bigint, suppressedLogCount: bigint, lastEventKind: string | null, }; diff --git a/kb_app/gen/schemas/acl-manifests.json b/kb_app/gen/schemas/acl-manifests.json deleted file mode 100644 index b154369..0000000 --- a/kb_app/gen/schemas/acl-manifests.json +++ /dev/null @@ -1 +0,0 @@ -{"core":{"default_permission":{"identifier":"default","description":"Default core plugins set.","permissions":["core:path:default","core:event:default","core:window:default","core:webview:default","core:app:default","core:image:default","core:resources:default","core:menu:default","core:tray:default"]},"permissions":{},"permission_sets":{},"global_scope_schema":null},"core:app":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-version","allow-name","allow-tauri-version","allow-identifier","allow-bundle-type","allow-register-listener","allow-remove-listener"]},"permissions":{"allow-app-hide":{"identifier":"allow-app-hide","description":"Enables the app_hide command without any pre-configured scope.","commands":{"allow":["app_hide"],"deny":[]}},"allow-app-show":{"identifier":"allow-app-show","description":"Enables the app_show command without any pre-configured scope.","commands":{"allow":["app_show"],"deny":[]}},"allow-bundle-type":{"identifier":"allow-bundle-type","description":"Enables the bundle_type command without any pre-configured scope.","commands":{"allow":["bundle_type"],"deny":[]}},"allow-default-window-icon":{"identifier":"allow-default-window-icon","description":"Enables the default_window_icon command without any pre-configured scope.","commands":{"allow":["default_window_icon"],"deny":[]}},"allow-fetch-data-store-identifiers":{"identifier":"allow-fetch-data-store-identifiers","description":"Enables the fetch_data_store_identifiers command without any pre-configured scope.","commands":{"allow":["fetch_data_store_identifiers"],"deny":[]}},"allow-identifier":{"identifier":"allow-identifier","description":"Enables the identifier command without any pre-configured scope.","commands":{"allow":["identifier"],"deny":[]}},"allow-name":{"identifier":"allow-name","description":"Enables the name command without any pre-configured scope.","commands":{"allow":["name"],"deny":[]}},"allow-register-listener":{"identifier":"allow-register-listener","description":"Enables the register_listener command without any pre-configured scope.","commands":{"allow":["register_listener"],"deny":[]}},"allow-remove-data-store":{"identifier":"allow-remove-data-store","description":"Enables the remove_data_store command without any pre-configured scope.","commands":{"allow":["remove_data_store"],"deny":[]}},"allow-remove-listener":{"identifier":"allow-remove-listener","description":"Enables the remove_listener command without any pre-configured scope.","commands":{"allow":["remove_listener"],"deny":[]}},"allow-set-app-theme":{"identifier":"allow-set-app-theme","description":"Enables the set_app_theme command without any pre-configured scope.","commands":{"allow":["set_app_theme"],"deny":[]}},"allow-set-dock-visibility":{"identifier":"allow-set-dock-visibility","description":"Enables the set_dock_visibility command without any pre-configured scope.","commands":{"allow":["set_dock_visibility"],"deny":[]}},"allow-tauri-version":{"identifier":"allow-tauri-version","description":"Enables the tauri_version command without any pre-configured scope.","commands":{"allow":["tauri_version"],"deny":[]}},"allow-version":{"identifier":"allow-version","description":"Enables the version command without any pre-configured scope.","commands":{"allow":["version"],"deny":[]}},"deny-app-hide":{"identifier":"deny-app-hide","description":"Denies the app_hide command without any pre-configured scope.","commands":{"allow":[],"deny":["app_hide"]}},"deny-app-show":{"identifier":"deny-app-show","description":"Denies the app_show command without any pre-configured scope.","commands":{"allow":[],"deny":["app_show"]}},"deny-bundle-type":{"identifier":"deny-bundle-type","description":"Denies the bundle_type command without any pre-configured scope.","commands":{"allow":[],"deny":["bundle_type"]}},"deny-default-window-icon":{"identifier":"deny-default-window-icon","description":"Denies the default_window_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["default_window_icon"]}},"deny-fetch-data-store-identifiers":{"identifier":"deny-fetch-data-store-identifiers","description":"Denies the fetch_data_store_identifiers command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch_data_store_identifiers"]}},"deny-identifier":{"identifier":"deny-identifier","description":"Denies the identifier command without any pre-configured scope.","commands":{"allow":[],"deny":["identifier"]}},"deny-name":{"identifier":"deny-name","description":"Denies the name command without any pre-configured scope.","commands":{"allow":[],"deny":["name"]}},"deny-register-listener":{"identifier":"deny-register-listener","description":"Denies the register_listener command without any pre-configured scope.","commands":{"allow":[],"deny":["register_listener"]}},"deny-remove-data-store":{"identifier":"deny-remove-data-store","description":"Denies the remove_data_store command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_data_store"]}},"deny-remove-listener":{"identifier":"deny-remove-listener","description":"Denies the remove_listener command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_listener"]}},"deny-set-app-theme":{"identifier":"deny-set-app-theme","description":"Denies the set_app_theme command without any pre-configured scope.","commands":{"allow":[],"deny":["set_app_theme"]}},"deny-set-dock-visibility":{"identifier":"deny-set-dock-visibility","description":"Denies the set_dock_visibility command without any pre-configured scope.","commands":{"allow":[],"deny":["set_dock_visibility"]}},"deny-tauri-version":{"identifier":"deny-tauri-version","description":"Denies the tauri_version command without any pre-configured scope.","commands":{"allow":[],"deny":["tauri_version"]}},"deny-version":{"identifier":"deny-version","description":"Denies the version command without any pre-configured scope.","commands":{"allow":[],"deny":["version"]}}},"permission_sets":{},"global_scope_schema":null},"core:event":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-listen","allow-unlisten","allow-emit","allow-emit-to"]},"permissions":{"allow-emit":{"identifier":"allow-emit","description":"Enables the emit command without any pre-configured scope.","commands":{"allow":["emit"],"deny":[]}},"allow-emit-to":{"identifier":"allow-emit-to","description":"Enables the emit_to command without any pre-configured scope.","commands":{"allow":["emit_to"],"deny":[]}},"allow-listen":{"identifier":"allow-listen","description":"Enables the listen command without any pre-configured scope.","commands":{"allow":["listen"],"deny":[]}},"allow-unlisten":{"identifier":"allow-unlisten","description":"Enables the unlisten command without any pre-configured scope.","commands":{"allow":["unlisten"],"deny":[]}},"deny-emit":{"identifier":"deny-emit","description":"Denies the emit command without any pre-configured scope.","commands":{"allow":[],"deny":["emit"]}},"deny-emit-to":{"identifier":"deny-emit-to","description":"Denies the emit_to command without any pre-configured scope.","commands":{"allow":[],"deny":["emit_to"]}},"deny-listen":{"identifier":"deny-listen","description":"Denies the listen command without any pre-configured scope.","commands":{"allow":[],"deny":["listen"]}},"deny-unlisten":{"identifier":"deny-unlisten","description":"Denies the unlisten command without any pre-configured scope.","commands":{"allow":[],"deny":["unlisten"]}}},"permission_sets":{},"global_scope_schema":null},"core:image":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-from-bytes","allow-from-path","allow-rgba","allow-size"]},"permissions":{"allow-from-bytes":{"identifier":"allow-from-bytes","description":"Enables the from_bytes command without any pre-configured scope.","commands":{"allow":["from_bytes"],"deny":[]}},"allow-from-path":{"identifier":"allow-from-path","description":"Enables the from_path command without any pre-configured scope.","commands":{"allow":["from_path"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-rgba":{"identifier":"allow-rgba","description":"Enables the rgba command without any pre-configured scope.","commands":{"allow":["rgba"],"deny":[]}},"allow-size":{"identifier":"allow-size","description":"Enables the size command without any pre-configured scope.","commands":{"allow":["size"],"deny":[]}},"deny-from-bytes":{"identifier":"deny-from-bytes","description":"Denies the from_bytes command without any pre-configured scope.","commands":{"allow":[],"deny":["from_bytes"]}},"deny-from-path":{"identifier":"deny-from-path","description":"Denies the from_path command without any pre-configured scope.","commands":{"allow":[],"deny":["from_path"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-rgba":{"identifier":"deny-rgba","description":"Denies the rgba command without any pre-configured scope.","commands":{"allow":[],"deny":["rgba"]}},"deny-size":{"identifier":"deny-size","description":"Denies the size command without any pre-configured scope.","commands":{"allow":[],"deny":["size"]}}},"permission_sets":{},"global_scope_schema":null},"core:menu":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-append","allow-prepend","allow-insert","allow-remove","allow-remove-at","allow-items","allow-get","allow-popup","allow-create-default","allow-set-as-app-menu","allow-set-as-window-menu","allow-text","allow-set-text","allow-is-enabled","allow-set-enabled","allow-set-accelerator","allow-set-as-windows-menu-for-nsapp","allow-set-as-help-menu-for-nsapp","allow-is-checked","allow-set-checked","allow-set-icon"]},"permissions":{"allow-append":{"identifier":"allow-append","description":"Enables the append command without any pre-configured scope.","commands":{"allow":["append"],"deny":[]}},"allow-create-default":{"identifier":"allow-create-default","description":"Enables the create_default command without any pre-configured scope.","commands":{"allow":["create_default"],"deny":[]}},"allow-get":{"identifier":"allow-get","description":"Enables the get command without any pre-configured scope.","commands":{"allow":["get"],"deny":[]}},"allow-insert":{"identifier":"allow-insert","description":"Enables the insert command without any pre-configured scope.","commands":{"allow":["insert"],"deny":[]}},"allow-is-checked":{"identifier":"allow-is-checked","description":"Enables the is_checked command without any pre-configured scope.","commands":{"allow":["is_checked"],"deny":[]}},"allow-is-enabled":{"identifier":"allow-is-enabled","description":"Enables the is_enabled command without any pre-configured scope.","commands":{"allow":["is_enabled"],"deny":[]}},"allow-items":{"identifier":"allow-items","description":"Enables the items command without any pre-configured scope.","commands":{"allow":["items"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-popup":{"identifier":"allow-popup","description":"Enables the popup command without any pre-configured scope.","commands":{"allow":["popup"],"deny":[]}},"allow-prepend":{"identifier":"allow-prepend","description":"Enables the prepend command without any pre-configured scope.","commands":{"allow":["prepend"],"deny":[]}},"allow-remove":{"identifier":"allow-remove","description":"Enables the remove command without any pre-configured scope.","commands":{"allow":["remove"],"deny":[]}},"allow-remove-at":{"identifier":"allow-remove-at","description":"Enables the remove_at command without any pre-configured scope.","commands":{"allow":["remove_at"],"deny":[]}},"allow-set-accelerator":{"identifier":"allow-set-accelerator","description":"Enables the set_accelerator command without any pre-configured scope.","commands":{"allow":["set_accelerator"],"deny":[]}},"allow-set-as-app-menu":{"identifier":"allow-set-as-app-menu","description":"Enables the set_as_app_menu command without any pre-configured scope.","commands":{"allow":["set_as_app_menu"],"deny":[]}},"allow-set-as-help-menu-for-nsapp":{"identifier":"allow-set-as-help-menu-for-nsapp","description":"Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":["set_as_help_menu_for_nsapp"],"deny":[]}},"allow-set-as-window-menu":{"identifier":"allow-set-as-window-menu","description":"Enables the set_as_window_menu command without any pre-configured scope.","commands":{"allow":["set_as_window_menu"],"deny":[]}},"allow-set-as-windows-menu-for-nsapp":{"identifier":"allow-set-as-windows-menu-for-nsapp","description":"Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":["set_as_windows_menu_for_nsapp"],"deny":[]}},"allow-set-checked":{"identifier":"allow-set-checked","description":"Enables the set_checked command without any pre-configured scope.","commands":{"allow":["set_checked"],"deny":[]}},"allow-set-enabled":{"identifier":"allow-set-enabled","description":"Enables the set_enabled command without any pre-configured scope.","commands":{"allow":["set_enabled"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-text":{"identifier":"allow-set-text","description":"Enables the set_text command without any pre-configured scope.","commands":{"allow":["set_text"],"deny":[]}},"allow-text":{"identifier":"allow-text","description":"Enables the text command without any pre-configured scope.","commands":{"allow":["text"],"deny":[]}},"deny-append":{"identifier":"deny-append","description":"Denies the append command without any pre-configured scope.","commands":{"allow":[],"deny":["append"]}},"deny-create-default":{"identifier":"deny-create-default","description":"Denies the create_default command without any pre-configured scope.","commands":{"allow":[],"deny":["create_default"]}},"deny-get":{"identifier":"deny-get","description":"Denies the get command without any pre-configured scope.","commands":{"allow":[],"deny":["get"]}},"deny-insert":{"identifier":"deny-insert","description":"Denies the insert command without any pre-configured scope.","commands":{"allow":[],"deny":["insert"]}},"deny-is-checked":{"identifier":"deny-is-checked","description":"Denies the is_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["is_checked"]}},"deny-is-enabled":{"identifier":"deny-is-enabled","description":"Denies the is_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["is_enabled"]}},"deny-items":{"identifier":"deny-items","description":"Denies the items command without any pre-configured scope.","commands":{"allow":[],"deny":["items"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-popup":{"identifier":"deny-popup","description":"Denies the popup command without any pre-configured scope.","commands":{"allow":[],"deny":["popup"]}},"deny-prepend":{"identifier":"deny-prepend","description":"Denies the prepend command without any pre-configured scope.","commands":{"allow":[],"deny":["prepend"]}},"deny-remove":{"identifier":"deny-remove","description":"Denies the remove command without any pre-configured scope.","commands":{"allow":[],"deny":["remove"]}},"deny-remove-at":{"identifier":"deny-remove-at","description":"Denies the remove_at command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_at"]}},"deny-set-accelerator":{"identifier":"deny-set-accelerator","description":"Denies the set_accelerator command without any pre-configured scope.","commands":{"allow":[],"deny":["set_accelerator"]}},"deny-set-as-app-menu":{"identifier":"deny-set-as-app-menu","description":"Denies the set_as_app_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_app_menu"]}},"deny-set-as-help-menu-for-nsapp":{"identifier":"deny-set-as-help-menu-for-nsapp","description":"Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_help_menu_for_nsapp"]}},"deny-set-as-window-menu":{"identifier":"deny-set-as-window-menu","description":"Denies the set_as_window_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_window_menu"]}},"deny-set-as-windows-menu-for-nsapp":{"identifier":"deny-set-as-windows-menu-for-nsapp","description":"Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_windows_menu_for_nsapp"]}},"deny-set-checked":{"identifier":"deny-set-checked","description":"Denies the set_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["set_checked"]}},"deny-set-enabled":{"identifier":"deny-set-enabled","description":"Denies the set_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_enabled"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-text":{"identifier":"deny-set-text","description":"Denies the set_text command without any pre-configured scope.","commands":{"allow":[],"deny":["set_text"]}},"deny-text":{"identifier":"deny-text","description":"Denies the text command without any pre-configured scope.","commands":{"allow":[],"deny":["text"]}}},"permission_sets":{},"global_scope_schema":null},"core:path":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-resolve-directory","allow-resolve","allow-normalize","allow-join","allow-dirname","allow-extname","allow-basename","allow-is-absolute"]},"permissions":{"allow-basename":{"identifier":"allow-basename","description":"Enables the basename command without any pre-configured scope.","commands":{"allow":["basename"],"deny":[]}},"allow-dirname":{"identifier":"allow-dirname","description":"Enables the dirname command without any pre-configured scope.","commands":{"allow":["dirname"],"deny":[]}},"allow-extname":{"identifier":"allow-extname","description":"Enables the extname command without any pre-configured scope.","commands":{"allow":["extname"],"deny":[]}},"allow-is-absolute":{"identifier":"allow-is-absolute","description":"Enables the is_absolute command without any pre-configured scope.","commands":{"allow":["is_absolute"],"deny":[]}},"allow-join":{"identifier":"allow-join","description":"Enables the join command without any pre-configured scope.","commands":{"allow":["join"],"deny":[]}},"allow-normalize":{"identifier":"allow-normalize","description":"Enables the normalize command without any pre-configured scope.","commands":{"allow":["normalize"],"deny":[]}},"allow-resolve":{"identifier":"allow-resolve","description":"Enables the resolve command without any pre-configured scope.","commands":{"allow":["resolve"],"deny":[]}},"allow-resolve-directory":{"identifier":"allow-resolve-directory","description":"Enables the resolve_directory command without any pre-configured scope.","commands":{"allow":["resolve_directory"],"deny":[]}},"deny-basename":{"identifier":"deny-basename","description":"Denies the basename command without any pre-configured scope.","commands":{"allow":[],"deny":["basename"]}},"deny-dirname":{"identifier":"deny-dirname","description":"Denies the dirname command without any pre-configured scope.","commands":{"allow":[],"deny":["dirname"]}},"deny-extname":{"identifier":"deny-extname","description":"Denies the extname command without any pre-configured scope.","commands":{"allow":[],"deny":["extname"]}},"deny-is-absolute":{"identifier":"deny-is-absolute","description":"Denies the is_absolute command without any pre-configured scope.","commands":{"allow":[],"deny":["is_absolute"]}},"deny-join":{"identifier":"deny-join","description":"Denies the join command without any pre-configured scope.","commands":{"allow":[],"deny":["join"]}},"deny-normalize":{"identifier":"deny-normalize","description":"Denies the normalize command without any pre-configured scope.","commands":{"allow":[],"deny":["normalize"]}},"deny-resolve":{"identifier":"deny-resolve","description":"Denies the resolve command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve"]}},"deny-resolve-directory":{"identifier":"deny-resolve-directory","description":"Denies the resolve_directory command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve_directory"]}}},"permission_sets":{},"global_scope_schema":null},"core:resources":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-close"]},"permissions":{"allow-close":{"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]}},"deny-close":{"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]}}},"permission_sets":{},"global_scope_schema":null},"core:tray":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-get-by-id","allow-remove-by-id","allow-set-icon","allow-set-menu","allow-set-tooltip","allow-set-title","allow-set-visible","allow-set-temp-dir-path","allow-set-icon-as-template","allow-set-show-menu-on-left-click"]},"permissions":{"allow-get-by-id":{"identifier":"allow-get-by-id","description":"Enables the get_by_id command without any pre-configured scope.","commands":{"allow":["get_by_id"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-remove-by-id":{"identifier":"allow-remove-by-id","description":"Enables the remove_by_id command without any pre-configured scope.","commands":{"allow":["remove_by_id"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-icon-as-template":{"identifier":"allow-set-icon-as-template","description":"Enables the set_icon_as_template command without any pre-configured scope.","commands":{"allow":["set_icon_as_template"],"deny":[]}},"allow-set-menu":{"identifier":"allow-set-menu","description":"Enables the set_menu command without any pre-configured scope.","commands":{"allow":["set_menu"],"deny":[]}},"allow-set-show-menu-on-left-click":{"identifier":"allow-set-show-menu-on-left-click","description":"Enables the set_show_menu_on_left_click command without any pre-configured scope.","commands":{"allow":["set_show_menu_on_left_click"],"deny":[]}},"allow-set-temp-dir-path":{"identifier":"allow-set-temp-dir-path","description":"Enables the set_temp_dir_path command without any pre-configured scope.","commands":{"allow":["set_temp_dir_path"],"deny":[]}},"allow-set-title":{"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]}},"allow-set-tooltip":{"identifier":"allow-set-tooltip","description":"Enables the set_tooltip command without any pre-configured scope.","commands":{"allow":["set_tooltip"],"deny":[]}},"allow-set-visible":{"identifier":"allow-set-visible","description":"Enables the set_visible command without any pre-configured scope.","commands":{"allow":["set_visible"],"deny":[]}},"deny-get-by-id":{"identifier":"deny-get-by-id","description":"Denies the get_by_id command without any pre-configured scope.","commands":{"allow":[],"deny":["get_by_id"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-remove-by-id":{"identifier":"deny-remove-by-id","description":"Denies the remove_by_id command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_by_id"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-icon-as-template":{"identifier":"deny-set-icon-as-template","description":"Denies the set_icon_as_template command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon_as_template"]}},"deny-set-menu":{"identifier":"deny-set-menu","description":"Denies the set_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_menu"]}},"deny-set-show-menu-on-left-click":{"identifier":"deny-set-show-menu-on-left-click","description":"Denies the set_show_menu_on_left_click command without any pre-configured scope.","commands":{"allow":[],"deny":["set_show_menu_on_left_click"]}},"deny-set-temp-dir-path":{"identifier":"deny-set-temp-dir-path","description":"Denies the set_temp_dir_path command without any pre-configured scope.","commands":{"allow":[],"deny":["set_temp_dir_path"]}},"deny-set-title":{"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]}},"deny-set-tooltip":{"identifier":"deny-set-tooltip","description":"Denies the set_tooltip command without any pre-configured scope.","commands":{"allow":[],"deny":["set_tooltip"]}},"deny-set-visible":{"identifier":"deny-set-visible","description":"Denies the set_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_visible"]}}},"permission_sets":{},"global_scope_schema":null},"core:webview":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-get-all-webviews","allow-webview-position","allow-webview-size","allow-internal-toggle-devtools"]},"permissions":{"allow-clear-all-browsing-data":{"identifier":"allow-clear-all-browsing-data","description":"Enables the clear_all_browsing_data command without any pre-configured scope.","commands":{"allow":["clear_all_browsing_data"],"deny":[]}},"allow-create-webview":{"identifier":"allow-create-webview","description":"Enables the create_webview command without any pre-configured scope.","commands":{"allow":["create_webview"],"deny":[]}},"allow-create-webview-window":{"identifier":"allow-create-webview-window","description":"Enables the create_webview_window command without any pre-configured scope.","commands":{"allow":["create_webview_window"],"deny":[]}},"allow-get-all-webviews":{"identifier":"allow-get-all-webviews","description":"Enables the get_all_webviews command without any pre-configured scope.","commands":{"allow":["get_all_webviews"],"deny":[]}},"allow-internal-toggle-devtools":{"identifier":"allow-internal-toggle-devtools","description":"Enables the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":["internal_toggle_devtools"],"deny":[]}},"allow-print":{"identifier":"allow-print","description":"Enables the print command without any pre-configured scope.","commands":{"allow":["print"],"deny":[]}},"allow-reparent":{"identifier":"allow-reparent","description":"Enables the reparent command without any pre-configured scope.","commands":{"allow":["reparent"],"deny":[]}},"allow-set-webview-auto-resize":{"identifier":"allow-set-webview-auto-resize","description":"Enables the set_webview_auto_resize command without any pre-configured scope.","commands":{"allow":["set_webview_auto_resize"],"deny":[]}},"allow-set-webview-background-color":{"identifier":"allow-set-webview-background-color","description":"Enables the set_webview_background_color command without any pre-configured scope.","commands":{"allow":["set_webview_background_color"],"deny":[]}},"allow-set-webview-focus":{"identifier":"allow-set-webview-focus","description":"Enables the set_webview_focus command without any pre-configured scope.","commands":{"allow":["set_webview_focus"],"deny":[]}},"allow-set-webview-position":{"identifier":"allow-set-webview-position","description":"Enables the set_webview_position command without any pre-configured scope.","commands":{"allow":["set_webview_position"],"deny":[]}},"allow-set-webview-size":{"identifier":"allow-set-webview-size","description":"Enables the set_webview_size command without any pre-configured scope.","commands":{"allow":["set_webview_size"],"deny":[]}},"allow-set-webview-zoom":{"identifier":"allow-set-webview-zoom","description":"Enables the set_webview_zoom command without any pre-configured scope.","commands":{"allow":["set_webview_zoom"],"deny":[]}},"allow-webview-close":{"identifier":"allow-webview-close","description":"Enables the webview_close command without any pre-configured scope.","commands":{"allow":["webview_close"],"deny":[]}},"allow-webview-hide":{"identifier":"allow-webview-hide","description":"Enables the webview_hide command without any pre-configured scope.","commands":{"allow":["webview_hide"],"deny":[]}},"allow-webview-position":{"identifier":"allow-webview-position","description":"Enables the webview_position command without any pre-configured scope.","commands":{"allow":["webview_position"],"deny":[]}},"allow-webview-show":{"identifier":"allow-webview-show","description":"Enables the webview_show command without any pre-configured scope.","commands":{"allow":["webview_show"],"deny":[]}},"allow-webview-size":{"identifier":"allow-webview-size","description":"Enables the webview_size command without any pre-configured scope.","commands":{"allow":["webview_size"],"deny":[]}},"deny-clear-all-browsing-data":{"identifier":"deny-clear-all-browsing-data","description":"Denies the clear_all_browsing_data command without any pre-configured scope.","commands":{"allow":[],"deny":["clear_all_browsing_data"]}},"deny-create-webview":{"identifier":"deny-create-webview","description":"Denies the create_webview command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview"]}},"deny-create-webview-window":{"identifier":"deny-create-webview-window","description":"Denies the create_webview_window command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview_window"]}},"deny-get-all-webviews":{"identifier":"deny-get-all-webviews","description":"Denies the get_all_webviews command without any pre-configured scope.","commands":{"allow":[],"deny":["get_all_webviews"]}},"deny-internal-toggle-devtools":{"identifier":"deny-internal-toggle-devtools","description":"Denies the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_devtools"]}},"deny-print":{"identifier":"deny-print","description":"Denies the print command without any pre-configured scope.","commands":{"allow":[],"deny":["print"]}},"deny-reparent":{"identifier":"deny-reparent","description":"Denies the reparent command without any pre-configured scope.","commands":{"allow":[],"deny":["reparent"]}},"deny-set-webview-auto-resize":{"identifier":"deny-set-webview-auto-resize","description":"Denies the set_webview_auto_resize command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_auto_resize"]}},"deny-set-webview-background-color":{"identifier":"deny-set-webview-background-color","description":"Denies the set_webview_background_color command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_background_color"]}},"deny-set-webview-focus":{"identifier":"deny-set-webview-focus","description":"Denies the set_webview_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_focus"]}},"deny-set-webview-position":{"identifier":"deny-set-webview-position","description":"Denies the set_webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_position"]}},"deny-set-webview-size":{"identifier":"deny-set-webview-size","description":"Denies the set_webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_size"]}},"deny-set-webview-zoom":{"identifier":"deny-set-webview-zoom","description":"Denies the set_webview_zoom command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_zoom"]}},"deny-webview-close":{"identifier":"deny-webview-close","description":"Denies the webview_close command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_close"]}},"deny-webview-hide":{"identifier":"deny-webview-hide","description":"Denies the webview_hide command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_hide"]}},"deny-webview-position":{"identifier":"deny-webview-position","description":"Denies the webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_position"]}},"deny-webview-show":{"identifier":"deny-webview-show","description":"Denies the webview_show command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_show"]}},"deny-webview-size":{"identifier":"deny-webview-size","description":"Denies the webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_size"]}}},"permission_sets":{},"global_scope_schema":null},"core:window":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-get-all-windows","allow-scale-factor","allow-inner-position","allow-outer-position","allow-inner-size","allow-outer-size","allow-is-fullscreen","allow-is-minimized","allow-is-maximized","allow-is-focused","allow-is-decorated","allow-is-resizable","allow-is-maximizable","allow-is-minimizable","allow-is-closable","allow-is-visible","allow-is-enabled","allow-title","allow-current-monitor","allow-primary-monitor","allow-monitor-from-point","allow-available-monitors","allow-cursor-position","allow-theme","allow-is-always-on-top","allow-internal-toggle-maximize"]},"permissions":{"allow-available-monitors":{"identifier":"allow-available-monitors","description":"Enables the available_monitors command without any pre-configured scope.","commands":{"allow":["available_monitors"],"deny":[]}},"allow-center":{"identifier":"allow-center","description":"Enables the center command without any pre-configured scope.","commands":{"allow":["center"],"deny":[]}},"allow-close":{"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]}},"allow-create":{"identifier":"allow-create","description":"Enables the create command without any pre-configured scope.","commands":{"allow":["create"],"deny":[]}},"allow-current-monitor":{"identifier":"allow-current-monitor","description":"Enables the current_monitor command without any pre-configured scope.","commands":{"allow":["current_monitor"],"deny":[]}},"allow-cursor-position":{"identifier":"allow-cursor-position","description":"Enables the cursor_position command without any pre-configured scope.","commands":{"allow":["cursor_position"],"deny":[]}},"allow-destroy":{"identifier":"allow-destroy","description":"Enables the destroy command without any pre-configured scope.","commands":{"allow":["destroy"],"deny":[]}},"allow-get-all-windows":{"identifier":"allow-get-all-windows","description":"Enables the get_all_windows command without any pre-configured scope.","commands":{"allow":["get_all_windows"],"deny":[]}},"allow-hide":{"identifier":"allow-hide","description":"Enables the hide command without any pre-configured scope.","commands":{"allow":["hide"],"deny":[]}},"allow-inner-position":{"identifier":"allow-inner-position","description":"Enables the inner_position command without any pre-configured scope.","commands":{"allow":["inner_position"],"deny":[]}},"allow-inner-size":{"identifier":"allow-inner-size","description":"Enables the inner_size command without any pre-configured scope.","commands":{"allow":["inner_size"],"deny":[]}},"allow-internal-toggle-maximize":{"identifier":"allow-internal-toggle-maximize","description":"Enables the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":["internal_toggle_maximize"],"deny":[]}},"allow-is-always-on-top":{"identifier":"allow-is-always-on-top","description":"Enables the is_always_on_top command without any pre-configured scope.","commands":{"allow":["is_always_on_top"],"deny":[]}},"allow-is-closable":{"identifier":"allow-is-closable","description":"Enables the is_closable command without any pre-configured scope.","commands":{"allow":["is_closable"],"deny":[]}},"allow-is-decorated":{"identifier":"allow-is-decorated","description":"Enables the is_decorated command without any pre-configured scope.","commands":{"allow":["is_decorated"],"deny":[]}},"allow-is-enabled":{"identifier":"allow-is-enabled","description":"Enables the is_enabled command without any pre-configured scope.","commands":{"allow":["is_enabled"],"deny":[]}},"allow-is-focused":{"identifier":"allow-is-focused","description":"Enables the is_focused command without any pre-configured scope.","commands":{"allow":["is_focused"],"deny":[]}},"allow-is-fullscreen":{"identifier":"allow-is-fullscreen","description":"Enables the is_fullscreen command without any pre-configured scope.","commands":{"allow":["is_fullscreen"],"deny":[]}},"allow-is-maximizable":{"identifier":"allow-is-maximizable","description":"Enables the is_maximizable command without any pre-configured scope.","commands":{"allow":["is_maximizable"],"deny":[]}},"allow-is-maximized":{"identifier":"allow-is-maximized","description":"Enables the is_maximized command without any pre-configured scope.","commands":{"allow":["is_maximized"],"deny":[]}},"allow-is-minimizable":{"identifier":"allow-is-minimizable","description":"Enables the is_minimizable command without any pre-configured scope.","commands":{"allow":["is_minimizable"],"deny":[]}},"allow-is-minimized":{"identifier":"allow-is-minimized","description":"Enables the is_minimized command without any pre-configured scope.","commands":{"allow":["is_minimized"],"deny":[]}},"allow-is-resizable":{"identifier":"allow-is-resizable","description":"Enables the is_resizable command without any pre-configured scope.","commands":{"allow":["is_resizable"],"deny":[]}},"allow-is-visible":{"identifier":"allow-is-visible","description":"Enables the is_visible command without any pre-configured scope.","commands":{"allow":["is_visible"],"deny":[]}},"allow-maximize":{"identifier":"allow-maximize","description":"Enables the maximize command without any pre-configured scope.","commands":{"allow":["maximize"],"deny":[]}},"allow-minimize":{"identifier":"allow-minimize","description":"Enables the minimize command without any pre-configured scope.","commands":{"allow":["minimize"],"deny":[]}},"allow-monitor-from-point":{"identifier":"allow-monitor-from-point","description":"Enables the monitor_from_point command without any pre-configured scope.","commands":{"allow":["monitor_from_point"],"deny":[]}},"allow-outer-position":{"identifier":"allow-outer-position","description":"Enables the outer_position command without any pre-configured scope.","commands":{"allow":["outer_position"],"deny":[]}},"allow-outer-size":{"identifier":"allow-outer-size","description":"Enables the outer_size command without any pre-configured scope.","commands":{"allow":["outer_size"],"deny":[]}},"allow-primary-monitor":{"identifier":"allow-primary-monitor","description":"Enables the primary_monitor command without any pre-configured scope.","commands":{"allow":["primary_monitor"],"deny":[]}},"allow-request-user-attention":{"identifier":"allow-request-user-attention","description":"Enables the request_user_attention command without any pre-configured scope.","commands":{"allow":["request_user_attention"],"deny":[]}},"allow-scale-factor":{"identifier":"allow-scale-factor","description":"Enables the scale_factor command without any pre-configured scope.","commands":{"allow":["scale_factor"],"deny":[]}},"allow-set-always-on-bottom":{"identifier":"allow-set-always-on-bottom","description":"Enables the set_always_on_bottom command without any pre-configured scope.","commands":{"allow":["set_always_on_bottom"],"deny":[]}},"allow-set-always-on-top":{"identifier":"allow-set-always-on-top","description":"Enables the set_always_on_top command without any pre-configured scope.","commands":{"allow":["set_always_on_top"],"deny":[]}},"allow-set-background-color":{"identifier":"allow-set-background-color","description":"Enables the set_background_color command without any pre-configured scope.","commands":{"allow":["set_background_color"],"deny":[]}},"allow-set-badge-count":{"identifier":"allow-set-badge-count","description":"Enables the set_badge_count command without any pre-configured scope.","commands":{"allow":["set_badge_count"],"deny":[]}},"allow-set-badge-label":{"identifier":"allow-set-badge-label","description":"Enables the set_badge_label command without any pre-configured scope.","commands":{"allow":["set_badge_label"],"deny":[]}},"allow-set-closable":{"identifier":"allow-set-closable","description":"Enables the set_closable command without any pre-configured scope.","commands":{"allow":["set_closable"],"deny":[]}},"allow-set-content-protected":{"identifier":"allow-set-content-protected","description":"Enables the set_content_protected command without any pre-configured scope.","commands":{"allow":["set_content_protected"],"deny":[]}},"allow-set-cursor-grab":{"identifier":"allow-set-cursor-grab","description":"Enables the set_cursor_grab command without any pre-configured scope.","commands":{"allow":["set_cursor_grab"],"deny":[]}},"allow-set-cursor-icon":{"identifier":"allow-set-cursor-icon","description":"Enables the set_cursor_icon command without any pre-configured scope.","commands":{"allow":["set_cursor_icon"],"deny":[]}},"allow-set-cursor-position":{"identifier":"allow-set-cursor-position","description":"Enables the set_cursor_position command without any pre-configured scope.","commands":{"allow":["set_cursor_position"],"deny":[]}},"allow-set-cursor-visible":{"identifier":"allow-set-cursor-visible","description":"Enables the set_cursor_visible command without any pre-configured scope.","commands":{"allow":["set_cursor_visible"],"deny":[]}},"allow-set-decorations":{"identifier":"allow-set-decorations","description":"Enables the set_decorations command without any pre-configured scope.","commands":{"allow":["set_decorations"],"deny":[]}},"allow-set-effects":{"identifier":"allow-set-effects","description":"Enables the set_effects command without any pre-configured scope.","commands":{"allow":["set_effects"],"deny":[]}},"allow-set-enabled":{"identifier":"allow-set-enabled","description":"Enables the set_enabled command without any pre-configured scope.","commands":{"allow":["set_enabled"],"deny":[]}},"allow-set-focus":{"identifier":"allow-set-focus","description":"Enables the set_focus command without any pre-configured scope.","commands":{"allow":["set_focus"],"deny":[]}},"allow-set-focusable":{"identifier":"allow-set-focusable","description":"Enables the set_focusable command without any pre-configured scope.","commands":{"allow":["set_focusable"],"deny":[]}},"allow-set-fullscreen":{"identifier":"allow-set-fullscreen","description":"Enables the set_fullscreen command without any pre-configured scope.","commands":{"allow":["set_fullscreen"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-ignore-cursor-events":{"identifier":"allow-set-ignore-cursor-events","description":"Enables the set_ignore_cursor_events command without any pre-configured scope.","commands":{"allow":["set_ignore_cursor_events"],"deny":[]}},"allow-set-max-size":{"identifier":"allow-set-max-size","description":"Enables the set_max_size command without any pre-configured scope.","commands":{"allow":["set_max_size"],"deny":[]}},"allow-set-maximizable":{"identifier":"allow-set-maximizable","description":"Enables the set_maximizable command without any pre-configured scope.","commands":{"allow":["set_maximizable"],"deny":[]}},"allow-set-min-size":{"identifier":"allow-set-min-size","description":"Enables the set_min_size command without any pre-configured scope.","commands":{"allow":["set_min_size"],"deny":[]}},"allow-set-minimizable":{"identifier":"allow-set-minimizable","description":"Enables the set_minimizable command without any pre-configured scope.","commands":{"allow":["set_minimizable"],"deny":[]}},"allow-set-overlay-icon":{"identifier":"allow-set-overlay-icon","description":"Enables the set_overlay_icon command without any pre-configured scope.","commands":{"allow":["set_overlay_icon"],"deny":[]}},"allow-set-position":{"identifier":"allow-set-position","description":"Enables the set_position command without any pre-configured scope.","commands":{"allow":["set_position"],"deny":[]}},"allow-set-progress-bar":{"identifier":"allow-set-progress-bar","description":"Enables the set_progress_bar command without any pre-configured scope.","commands":{"allow":["set_progress_bar"],"deny":[]}},"allow-set-resizable":{"identifier":"allow-set-resizable","description":"Enables the set_resizable command without any pre-configured scope.","commands":{"allow":["set_resizable"],"deny":[]}},"allow-set-shadow":{"identifier":"allow-set-shadow","description":"Enables the set_shadow command without any pre-configured scope.","commands":{"allow":["set_shadow"],"deny":[]}},"allow-set-simple-fullscreen":{"identifier":"allow-set-simple-fullscreen","description":"Enables the set_simple_fullscreen command without any pre-configured scope.","commands":{"allow":["set_simple_fullscreen"],"deny":[]}},"allow-set-size":{"identifier":"allow-set-size","description":"Enables the set_size command without any pre-configured scope.","commands":{"allow":["set_size"],"deny":[]}},"allow-set-size-constraints":{"identifier":"allow-set-size-constraints","description":"Enables the set_size_constraints command without any pre-configured scope.","commands":{"allow":["set_size_constraints"],"deny":[]}},"allow-set-skip-taskbar":{"identifier":"allow-set-skip-taskbar","description":"Enables the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":["set_skip_taskbar"],"deny":[]}},"allow-set-theme":{"identifier":"allow-set-theme","description":"Enables the set_theme command without any pre-configured scope.","commands":{"allow":["set_theme"],"deny":[]}},"allow-set-title":{"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]}},"allow-set-title-bar-style":{"identifier":"allow-set-title-bar-style","description":"Enables the set_title_bar_style command without any pre-configured scope.","commands":{"allow":["set_title_bar_style"],"deny":[]}},"allow-set-visible-on-all-workspaces":{"identifier":"allow-set-visible-on-all-workspaces","description":"Enables the set_visible_on_all_workspaces command without any pre-configured scope.","commands":{"allow":["set_visible_on_all_workspaces"],"deny":[]}},"allow-show":{"identifier":"allow-show","description":"Enables the show command without any pre-configured scope.","commands":{"allow":["show"],"deny":[]}},"allow-start-dragging":{"identifier":"allow-start-dragging","description":"Enables the start_dragging command without any pre-configured scope.","commands":{"allow":["start_dragging"],"deny":[]}},"allow-start-resize-dragging":{"identifier":"allow-start-resize-dragging","description":"Enables the start_resize_dragging command without any pre-configured scope.","commands":{"allow":["start_resize_dragging"],"deny":[]}},"allow-theme":{"identifier":"allow-theme","description":"Enables the theme command without any pre-configured scope.","commands":{"allow":["theme"],"deny":[]}},"allow-title":{"identifier":"allow-title","description":"Enables the title command without any pre-configured scope.","commands":{"allow":["title"],"deny":[]}},"allow-toggle-maximize":{"identifier":"allow-toggle-maximize","description":"Enables the toggle_maximize command without any pre-configured scope.","commands":{"allow":["toggle_maximize"],"deny":[]}},"allow-unmaximize":{"identifier":"allow-unmaximize","description":"Enables the unmaximize command without any pre-configured scope.","commands":{"allow":["unmaximize"],"deny":[]}},"allow-unminimize":{"identifier":"allow-unminimize","description":"Enables the unminimize command without any pre-configured scope.","commands":{"allow":["unminimize"],"deny":[]}},"deny-available-monitors":{"identifier":"deny-available-monitors","description":"Denies the available_monitors command without any pre-configured scope.","commands":{"allow":[],"deny":["available_monitors"]}},"deny-center":{"identifier":"deny-center","description":"Denies the center command without any pre-configured scope.","commands":{"allow":[],"deny":["center"]}},"deny-close":{"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]}},"deny-create":{"identifier":"deny-create","description":"Denies the create command without any pre-configured scope.","commands":{"allow":[],"deny":["create"]}},"deny-current-monitor":{"identifier":"deny-current-monitor","description":"Denies the current_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["current_monitor"]}},"deny-cursor-position":{"identifier":"deny-cursor-position","description":"Denies the cursor_position command without any pre-configured scope.","commands":{"allow":[],"deny":["cursor_position"]}},"deny-destroy":{"identifier":"deny-destroy","description":"Denies the destroy command without any pre-configured scope.","commands":{"allow":[],"deny":["destroy"]}},"deny-get-all-windows":{"identifier":"deny-get-all-windows","description":"Denies the get_all_windows command without any pre-configured scope.","commands":{"allow":[],"deny":["get_all_windows"]}},"deny-hide":{"identifier":"deny-hide","description":"Denies the hide command without any pre-configured scope.","commands":{"allow":[],"deny":["hide"]}},"deny-inner-position":{"identifier":"deny-inner-position","description":"Denies the inner_position command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_position"]}},"deny-inner-size":{"identifier":"deny-inner-size","description":"Denies the inner_size command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_size"]}},"deny-internal-toggle-maximize":{"identifier":"deny-internal-toggle-maximize","description":"Denies the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_maximize"]}},"deny-is-always-on-top":{"identifier":"deny-is-always-on-top","description":"Denies the is_always_on_top command without any pre-configured scope.","commands":{"allow":[],"deny":["is_always_on_top"]}},"deny-is-closable":{"identifier":"deny-is-closable","description":"Denies the is_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_closable"]}},"deny-is-decorated":{"identifier":"deny-is-decorated","description":"Denies the is_decorated command without any pre-configured scope.","commands":{"allow":[],"deny":["is_decorated"]}},"deny-is-enabled":{"identifier":"deny-is-enabled","description":"Denies the is_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["is_enabled"]}},"deny-is-focused":{"identifier":"deny-is-focused","description":"Denies the is_focused command without any pre-configured scope.","commands":{"allow":[],"deny":["is_focused"]}},"deny-is-fullscreen":{"identifier":"deny-is-fullscreen","description":"Denies the is_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["is_fullscreen"]}},"deny-is-maximizable":{"identifier":"deny-is-maximizable","description":"Denies the is_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximizable"]}},"deny-is-maximized":{"identifier":"deny-is-maximized","description":"Denies the is_maximized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximized"]}},"deny-is-minimizable":{"identifier":"deny-is-minimizable","description":"Denies the is_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimizable"]}},"deny-is-minimized":{"identifier":"deny-is-minimized","description":"Denies the is_minimized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimized"]}},"deny-is-resizable":{"identifier":"deny-is-resizable","description":"Denies the is_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_resizable"]}},"deny-is-visible":{"identifier":"deny-is-visible","description":"Denies the is_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["is_visible"]}},"deny-maximize":{"identifier":"deny-maximize","description":"Denies the maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["maximize"]}},"deny-minimize":{"identifier":"deny-minimize","description":"Denies the minimize command without any pre-configured scope.","commands":{"allow":[],"deny":["minimize"]}},"deny-monitor-from-point":{"identifier":"deny-monitor-from-point","description":"Denies the monitor_from_point command without any pre-configured scope.","commands":{"allow":[],"deny":["monitor_from_point"]}},"deny-outer-position":{"identifier":"deny-outer-position","description":"Denies the outer_position command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_position"]}},"deny-outer-size":{"identifier":"deny-outer-size","description":"Denies the outer_size command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_size"]}},"deny-primary-monitor":{"identifier":"deny-primary-monitor","description":"Denies the primary_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["primary_monitor"]}},"deny-request-user-attention":{"identifier":"deny-request-user-attention","description":"Denies the request_user_attention command without any pre-configured scope.","commands":{"allow":[],"deny":["request_user_attention"]}},"deny-scale-factor":{"identifier":"deny-scale-factor","description":"Denies the scale_factor command without any pre-configured scope.","commands":{"allow":[],"deny":["scale_factor"]}},"deny-set-always-on-bottom":{"identifier":"deny-set-always-on-bottom","description":"Denies the set_always_on_bottom command without any pre-configured scope.","commands":{"allow":[],"deny":["set_always_on_bottom"]}},"deny-set-always-on-top":{"identifier":"deny-set-always-on-top","description":"Denies the set_always_on_top command without any pre-configured scope.","commands":{"allow":[],"deny":["set_always_on_top"]}},"deny-set-background-color":{"identifier":"deny-set-background-color","description":"Denies the set_background_color command without any pre-configured scope.","commands":{"allow":[],"deny":["set_background_color"]}},"deny-set-badge-count":{"identifier":"deny-set-badge-count","description":"Denies the set_badge_count command without any pre-configured scope.","commands":{"allow":[],"deny":["set_badge_count"]}},"deny-set-badge-label":{"identifier":"deny-set-badge-label","description":"Denies the set_badge_label command without any pre-configured scope.","commands":{"allow":[],"deny":["set_badge_label"]}},"deny-set-closable":{"identifier":"deny-set-closable","description":"Denies the set_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_closable"]}},"deny-set-content-protected":{"identifier":"deny-set-content-protected","description":"Denies the set_content_protected command without any pre-configured scope.","commands":{"allow":[],"deny":["set_content_protected"]}},"deny-set-cursor-grab":{"identifier":"deny-set-cursor-grab","description":"Denies the set_cursor_grab command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_grab"]}},"deny-set-cursor-icon":{"identifier":"deny-set-cursor-icon","description":"Denies the set_cursor_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_icon"]}},"deny-set-cursor-position":{"identifier":"deny-set-cursor-position","description":"Denies the set_cursor_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_position"]}},"deny-set-cursor-visible":{"identifier":"deny-set-cursor-visible","description":"Denies the set_cursor_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_visible"]}},"deny-set-decorations":{"identifier":"deny-set-decorations","description":"Denies the set_decorations command without any pre-configured scope.","commands":{"allow":[],"deny":["set_decorations"]}},"deny-set-effects":{"identifier":"deny-set-effects","description":"Denies the set_effects command without any pre-configured scope.","commands":{"allow":[],"deny":["set_effects"]}},"deny-set-enabled":{"identifier":"deny-set-enabled","description":"Denies the set_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_enabled"]}},"deny-set-focus":{"identifier":"deny-set-focus","description":"Denies the set_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_focus"]}},"deny-set-focusable":{"identifier":"deny-set-focusable","description":"Denies the set_focusable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_focusable"]}},"deny-set-fullscreen":{"identifier":"deny-set-fullscreen","description":"Denies the set_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["set_fullscreen"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-ignore-cursor-events":{"identifier":"deny-set-ignore-cursor-events","description":"Denies the set_ignore_cursor_events command without any pre-configured scope.","commands":{"allow":[],"deny":["set_ignore_cursor_events"]}},"deny-set-max-size":{"identifier":"deny-set-max-size","description":"Denies the set_max_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_max_size"]}},"deny-set-maximizable":{"identifier":"deny-set-maximizable","description":"Denies the set_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_maximizable"]}},"deny-set-min-size":{"identifier":"deny-set-min-size","description":"Denies the set_min_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_min_size"]}},"deny-set-minimizable":{"identifier":"deny-set-minimizable","description":"Denies the set_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_minimizable"]}},"deny-set-overlay-icon":{"identifier":"deny-set-overlay-icon","description":"Denies the set_overlay_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_overlay_icon"]}},"deny-set-position":{"identifier":"deny-set-position","description":"Denies the set_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_position"]}},"deny-set-progress-bar":{"identifier":"deny-set-progress-bar","description":"Denies the set_progress_bar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_progress_bar"]}},"deny-set-resizable":{"identifier":"deny-set-resizable","description":"Denies the set_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_resizable"]}},"deny-set-shadow":{"identifier":"deny-set-shadow","description":"Denies the set_shadow command without any pre-configured scope.","commands":{"allow":[],"deny":["set_shadow"]}},"deny-set-simple-fullscreen":{"identifier":"deny-set-simple-fullscreen","description":"Denies the set_simple_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["set_simple_fullscreen"]}},"deny-set-size":{"identifier":"deny-set-size","description":"Denies the set_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size"]}},"deny-set-size-constraints":{"identifier":"deny-set-size-constraints","description":"Denies the set_size_constraints command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size_constraints"]}},"deny-set-skip-taskbar":{"identifier":"deny-set-skip-taskbar","description":"Denies the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_skip_taskbar"]}},"deny-set-theme":{"identifier":"deny-set-theme","description":"Denies the set_theme command without any pre-configured scope.","commands":{"allow":[],"deny":["set_theme"]}},"deny-set-title":{"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]}},"deny-set-title-bar-style":{"identifier":"deny-set-title-bar-style","description":"Denies the set_title_bar_style command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title_bar_style"]}},"deny-set-visible-on-all-workspaces":{"identifier":"deny-set-visible-on-all-workspaces","description":"Denies the set_visible_on_all_workspaces command without any pre-configured scope.","commands":{"allow":[],"deny":["set_visible_on_all_workspaces"]}},"deny-show":{"identifier":"deny-show","description":"Denies the show command without any pre-configured scope.","commands":{"allow":[],"deny":["show"]}},"deny-start-dragging":{"identifier":"deny-start-dragging","description":"Denies the start_dragging command without any pre-configured scope.","commands":{"allow":[],"deny":["start_dragging"]}},"deny-start-resize-dragging":{"identifier":"deny-start-resize-dragging","description":"Denies the start_resize_dragging command without any pre-configured scope.","commands":{"allow":[],"deny":["start_resize_dragging"]}},"deny-theme":{"identifier":"deny-theme","description":"Denies the theme command without any pre-configured scope.","commands":{"allow":[],"deny":["theme"]}},"deny-title":{"identifier":"deny-title","description":"Denies the title command without any pre-configured scope.","commands":{"allow":[],"deny":["title"]}},"deny-toggle-maximize":{"identifier":"deny-toggle-maximize","description":"Denies the toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["toggle_maximize"]}},"deny-unmaximize":{"identifier":"deny-unmaximize","description":"Denies the unmaximize command without any pre-configured scope.","commands":{"allow":[],"deny":["unmaximize"]}},"deny-unminimize":{"identifier":"deny-unminimize","description":"Denies the unminimize command without any pre-configured scope.","commands":{"allow":[],"deny":["unminimize"]}}},"permission_sets":{},"global_scope_schema":null},"tracing":{"default_permission":{"identifier":"default","description":"Allows the log and flamegraph commands","permissions":["allow-log","allow-generate-flamegraph","allow-generate-flamechart"]},"permissions":{"allow-generate-flamechart":{"identifier":"allow-generate-flamechart","description":"Enables the generate_flamechart command.","commands":{"allow":["generate_flamechart"],"deny":[]}},"allow-generate-flamegraph":{"identifier":"allow-generate-flamegraph","description":"Enables the generate_flamegraph command.","commands":{"allow":["generate_flamegraph"],"deny":[]}},"allow-log":{"identifier":"allow-log","description":"Enables the log command.","commands":{"allow":["log"],"deny":[]}},"deny-generate-flamechart":{"identifier":"deny-generate-flamechart","description":"Denies the generate_flamechart command.","commands":{"allow":[],"deny":["generate_flamechart"]}},"deny-generate-flamegraph":{"identifier":"deny-generate-flamegraph","description":"Denies the generate_flamegraph command.","commands":{"allow":[],"deny":["generate_flamegraph"]}},"deny-log":{"identifier":"deny-log","description":"Denies the log command.","commands":{"allow":[],"deny":["log"]}}},"permission_sets":{},"global_scope_schema":null}} \ No newline at end of file diff --git a/kb_app/Cargo.toml b/kb_demo_app/Cargo.toml similarity index 91% rename from kb_app/Cargo.toml rename to kb_demo_app/Cargo.toml index 8a4c716..f3417fe 100644 --- a/kb_app/Cargo.toml +++ b/kb_demo_app/Cargo.toml @@ -1,7 +1,7 @@ -# file: kb_app/Cargo.toml +# file: kb_demo_app/Cargo.toml [package] -name = "kb_app" +name = "kb_demo_app" edition.workspace = true version.workspace = true license.workspace = true @@ -12,7 +12,7 @@ publish.workspace = true # The `_lib` suffix may seem redundant, but it is necessary # to make the lib name unique and wouldn't conflict with the bin name. # This seems to be only an issue on Windows, see https://github.com/rust-lang/cargo/issues/8519 -name = "kb_app_lib" +name = "kb_demo_app_lib" crate-type = ["staticlib", "cdylib", "rlib"] [build-dependencies] diff --git a/kb_app/build.rs b/kb_demo_app/build.rs similarity index 57% rename from kb_app/build.rs rename to kb_demo_app/build.rs index a4958a1..e363a3b 100644 --- a/kb_app/build.rs +++ b/kb_demo_app/build.rs @@ -1,4 +1,4 @@ -// file: kb_app/build.rs +// file: kb_demo_app/build.rs fn main() { tauri_build::build() diff --git a/kb_app/capabilities/default.json b/kb_demo_app/capabilities/default.json similarity index 100% rename from kb_app/capabilities/default.json rename to kb_demo_app/capabilities/default.json diff --git a/kb_app/frontend/demo_http.html b/kb_demo_app/frontend/demo_http.html similarity index 99% rename from kb_app/frontend/demo_http.html rename to kb_demo_app/frontend/demo_http.html index c6be214..5f25006 100644 --- a/kb_app/frontend/demo_http.html +++ b/kb_demo_app/frontend/demo_http.html @@ -1,4 +1,4 @@ - + diff --git a/kb_app/frontend/demo_pipeline.html b/kb_demo_app/frontend/demo_pipeline.html similarity index 99% rename from kb_app/frontend/demo_pipeline.html rename to kb_demo_app/frontend/demo_pipeline.html index e022b06..59e189d 100644 --- a/kb_app/frontend/demo_pipeline.html +++ b/kb_demo_app/frontend/demo_pipeline.html @@ -1,4 +1,4 @@ - + diff --git a/kb_app/frontend/demo_pipeline2.html b/kb_demo_app/frontend/demo_pipeline2.html similarity index 93% rename from kb_app/frontend/demo_pipeline2.html rename to kb_demo_app/frontend/demo_pipeline2.html index 361a883..2f9d7ff 100644 --- a/kb_app/frontend/demo_pipeline2.html +++ b/kb_demo_app/frontend/demo_pipeline2.html @@ -1,4 +1,4 @@ - + @@ -167,6 +167,9 @@ + @@ -249,6 +252,19 @@ +
+

+ +

+
+
+ +
+
+
+