@specship/specship-win32-arm64 0.11.9 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/dist/bin/specship.js +9 -60
- package/lib/dist/bin/specship.js.map +1 -1
- package/lib/dist/reflect/index.d.ts +1 -1
- package/lib/dist/reflect/index.d.ts.map +1 -1
- package/lib/dist/reflect/index.js +2 -1
- package/lib/dist/reflect/index.js.map +1 -1
- package/lib/dist/reflect/miner.d.ts +8 -0
- package/lib/dist/reflect/miner.d.ts.map +1 -1
- package/lib/dist/reflect/miner.js +64 -36
- package/lib/dist/reflect/miner.js.map +1 -1
- package/lib/dist/server/cli.js +5 -49
- package/lib/dist/server/routes/claude.js +13 -5
- package/lib/dist/server/server.js +17 -2
- package/lib/dist/server/ssr/md.mjs +83 -0
- package/lib/dist/server/ssr/render.mjs +564 -0
- package/lib/dist/server/ssr/routes.js +73 -0
- package/lib/dist/server/static-handler.js +30 -0
- package/lib/node_modules/.package-lock.json +1 -1
- package/lib/package.json +3 -3
- package/package.json +1 -1
- package/lib/dist/web/chunk-2AJCHB7P.js +0 -1
- package/lib/dist/web/chunk-2CPLUFCH.js +0 -2
- package/lib/dist/web/chunk-2I7L37NS.js +0 -1
- package/lib/dist/web/chunk-2IVSOVQZ.js +0 -1
- package/lib/dist/web/chunk-2NAWAJB5.js +0 -1
- package/lib/dist/web/chunk-2OJBIPE4.js +0 -1
- package/lib/dist/web/chunk-3E2WB6D5.js +0 -1
- package/lib/dist/web/chunk-3EBFYSCH.js +0 -2
- package/lib/dist/web/chunk-3QCQ4BXS.js +0 -1
- package/lib/dist/web/chunk-42XVAQ6I.js +0 -1
- package/lib/dist/web/chunk-4G7XU55L.js +0 -1
- package/lib/dist/web/chunk-4IMMPEYM.js +0 -1
- package/lib/dist/web/chunk-4TJQJPCZ.js +0 -1
- package/lib/dist/web/chunk-4WZIHTPC.js +0 -1
- package/lib/dist/web/chunk-4YVSYOSD.js +0 -1
- package/lib/dist/web/chunk-5BQIOYKW.js +0 -1
- package/lib/dist/web/chunk-5HGWHUJA.js +0 -1
- package/lib/dist/web/chunk-5NTGUSXJ.js +0 -1
- package/lib/dist/web/chunk-5Y244R4G.js +0 -1
- package/lib/dist/web/chunk-6RRDPT5Z.js +0 -1
- package/lib/dist/web/chunk-6VKB2ZWM.js +0 -1
- package/lib/dist/web/chunk-7656MA24.js +0 -1
- package/lib/dist/web/chunk-7DMFVTU4.js +0 -1
- package/lib/dist/web/chunk-7KWBINA7.js +0 -1
- package/lib/dist/web/chunk-7SMPKVEP.js +0 -1
- package/lib/dist/web/chunk-AHI5XEVX.js +0 -1
- package/lib/dist/web/chunk-AS2GV63A.js +0 -1
- package/lib/dist/web/chunk-AZJVTPLU.js +0 -1
- package/lib/dist/web/chunk-AZUUBUEJ.js +0 -1
- package/lib/dist/web/chunk-BLBRMCN2.js +0 -1
- package/lib/dist/web/chunk-BMIAXD2V.js +0 -2
- package/lib/dist/web/chunk-BPCJLNBS.js +0 -47
- package/lib/dist/web/chunk-BUXWEHIY.js +0 -1
- package/lib/dist/web/chunk-CGVC666W.js +0 -1
- package/lib/dist/web/chunk-DLQPZWSI.css +0 -1
- package/lib/dist/web/chunk-DOKZOFKM.js +0 -1
- package/lib/dist/web/chunk-DTWIJ3GJ.js +0 -1
- package/lib/dist/web/chunk-DYRFLPJA.js +0 -1
- package/lib/dist/web/chunk-E3J3CXR5.js +0 -1
- package/lib/dist/web/chunk-E73OX2P7.js +0 -1
- package/lib/dist/web/chunk-EAXRKDLV.js +0 -1
- package/lib/dist/web/chunk-EBKKDHYI.js +0 -1
- package/lib/dist/web/chunk-EE7V7Q5P.js +0 -1
- package/lib/dist/web/chunk-EKY2FUHU.js +0 -1
- package/lib/dist/web/chunk-EP6XOPXH.js +0 -1
- package/lib/dist/web/chunk-ESGDLJOJ.js +0 -1
- package/lib/dist/web/chunk-ETJG7NCY.js +0 -1
- package/lib/dist/web/chunk-EUUEFEDI.js +0 -1
- package/lib/dist/web/chunk-EXBUKHH2.js +0 -17
- package/lib/dist/web/chunk-FC3R7YHR.js +0 -4
- package/lib/dist/web/chunk-FGNZDHTL.js +0 -11
- package/lib/dist/web/chunk-FIJW2UNJ.js +0 -1
- package/lib/dist/web/chunk-FMV5PXRC.js +0 -5
- package/lib/dist/web/chunk-G7RXFHYO.js +0 -1
- package/lib/dist/web/chunk-G7VZT5KB.js +0 -3
- package/lib/dist/web/chunk-GRZYXPSO.js +0 -7
- package/lib/dist/web/chunk-GYGPS3AN.js +0 -1
- package/lib/dist/web/chunk-H7AF7YS4.js +0 -1
- package/lib/dist/web/chunk-HDZDQILN.js +0 -1
- package/lib/dist/web/chunk-HMK6UO6N.js +0 -1
- package/lib/dist/web/chunk-IHEE5NYJ.js +0 -1
- package/lib/dist/web/chunk-IOB4JJT4.js +0 -1
- package/lib/dist/web/chunk-ISNEBICW.js +0 -1
- package/lib/dist/web/chunk-J2GZVLHH.js +0 -1
- package/lib/dist/web/chunk-JGDK6YKG.js +0 -1
- package/lib/dist/web/chunk-JLOJCDIY.js +0 -1
- package/lib/dist/web/chunk-JTFXTIPE.js +0 -903
- package/lib/dist/web/chunk-K7UD24Z4.js +0 -1
- package/lib/dist/web/chunk-KYSTCHAH.js +0 -1
- package/lib/dist/web/chunk-LB6JPLX2.js +0 -1
- package/lib/dist/web/chunk-LNSVDHCI.js +0 -1
- package/lib/dist/web/chunk-LVGIY3SO.js +0 -1
- package/lib/dist/web/chunk-LXLHIHEN.js +0 -1
- package/lib/dist/web/chunk-M42QOYAE.js +0 -1
- package/lib/dist/web/chunk-ML5ULGHY.js +0 -1
- package/lib/dist/web/chunk-MNFTHCSJ.js +0 -1
- package/lib/dist/web/chunk-N6SS4G6S.js +0 -1
- package/lib/dist/web/chunk-NKPK3BR3.js +0 -1
- package/lib/dist/web/chunk-NTBJG6SJ.js +0 -1
- package/lib/dist/web/chunk-NUDB3Q2Y.js +0 -3
- package/lib/dist/web/chunk-OTQR5VFM.js +0 -1
- package/lib/dist/web/chunk-OXEF5E3E.js +0 -1
- package/lib/dist/web/chunk-P62EJGSF.js +0 -1
- package/lib/dist/web/chunk-PCW6R7OP.js +0 -1
- package/lib/dist/web/chunk-PGGJPDJG.js +0 -1
- package/lib/dist/web/chunk-POCVU4VK.js +0 -2
- package/lib/dist/web/chunk-PS6HRYQQ.js +0 -3
- package/lib/dist/web/chunk-PUYSJNJR.js +0 -1
- package/lib/dist/web/chunk-PZSU53SS.js +0 -1
- package/lib/dist/web/chunk-Q2RVFS45.js +0 -1
- package/lib/dist/web/chunk-Q7L6LLAK.js +0 -1
- package/lib/dist/web/chunk-QCMKJIWY.js +0 -1
- package/lib/dist/web/chunk-QH6CF3M3.js +0 -1
- package/lib/dist/web/chunk-QIZ65CGB.js +0 -1
- package/lib/dist/web/chunk-QPA2REUE.js +0 -1
- package/lib/dist/web/chunk-QQ5LD7PI.js +0 -1
- package/lib/dist/web/chunk-QR6L3KAC.js +0 -1
- package/lib/dist/web/chunk-R2DLK4HO.js +0 -1
- package/lib/dist/web/chunk-RD6TVPOT.js +0 -1
- package/lib/dist/web/chunk-RKY4EJYJ.js +0 -1
- package/lib/dist/web/chunk-RONYWVY7.js +0 -1
- package/lib/dist/web/chunk-RXKXYF2C.js +0 -1
- package/lib/dist/web/chunk-S5J5WQXB.js +0 -6
- package/lib/dist/web/chunk-SQPYSOV6.js +0 -1
- package/lib/dist/web/chunk-SWKJRNYY.js +0 -1
- package/lib/dist/web/chunk-SYGIPC2P.js +0 -4
- package/lib/dist/web/chunk-T7AZ65JP.js +0 -1
- package/lib/dist/web/chunk-TCZDVOHD.js +0 -1
- package/lib/dist/web/chunk-TPTITA3V.js +0 -1
- package/lib/dist/web/chunk-TR335633.js +0 -1
- package/lib/dist/web/chunk-TWVVIWKO.js +0 -1
- package/lib/dist/web/chunk-U67LRNER.js +0 -1
- package/lib/dist/web/chunk-UR5KDXPX.js +0 -1
- package/lib/dist/web/chunk-UR6O2GEH.js +0 -1
- package/lib/dist/web/chunk-USVLLFVR.js +0 -1
- package/lib/dist/web/chunk-UTNMGWTP.js +0 -1
- package/lib/dist/web/chunk-V74ZPP4B.js +0 -1
- package/lib/dist/web/chunk-VECWMHJP.js +0 -1
- package/lib/dist/web/chunk-VUACT35R.js +0 -3
- package/lib/dist/web/chunk-VZI7H4SZ.js +0 -1
- package/lib/dist/web/chunk-W5TEIONI.js +0 -2
- package/lib/dist/web/chunk-WB6YHOD4.js +0 -1
- package/lib/dist/web/chunk-WBJ5VEB5.js +0 -1
- package/lib/dist/web/chunk-WBT64AWV.js +0 -1
- package/lib/dist/web/chunk-WFXJIXZE.js +0 -4
- package/lib/dist/web/chunk-WTGYRH3Z.js +0 -298
- package/lib/dist/web/chunk-WXTCVDTP.js +0 -1
- package/lib/dist/web/chunk-XAUQEKZX.js +0 -1
- package/lib/dist/web/chunk-XCDHWLVH.js +0 -1
- package/lib/dist/web/chunk-XKG5X37F.js +0 -1
- package/lib/dist/web/chunk-Y3H6FFUZ.js +0 -1
- package/lib/dist/web/chunk-Y4F5ULGJ.js +0 -1
- package/lib/dist/web/chunk-YEGKAAEE.js +0 -1
- package/lib/dist/web/chunk-YM2KU57F.js +0 -1
- package/lib/dist/web/chunk-YRERBP6T.js +0 -1
- package/lib/dist/web/chunk-YV5LB22R.js +0 -1
- package/lib/dist/web/chunk-YWIRU745.js +0 -1
- package/lib/dist/web/chunk-ZLV4VCDG.js +0 -3
- package/lib/dist/web/chunk-ZTVI5KFF.js +0 -1
- package/lib/dist/web/favicon-16.png +0 -0
- package/lib/dist/web/favicon-180.png +0 -0
- package/lib/dist/web/favicon-32.png +0 -0
- package/lib/dist/web/favicon-512.png +0 -0
- package/lib/dist/web/favicon-small.svg +0 -15
- package/lib/dist/web/favicon.ico +0 -0
- package/lib/dist/web/favicon.svg +0 -20
- package/lib/dist/web/icon-192.png +0 -0
- package/lib/dist/web/icon-512.png +0 -0
- package/lib/dist/web/index.html +0 -146
- package/lib/dist/web/main-ESADRXN2.css +0 -1
- package/lib/dist/web/main-JT2RR3JS.js +0 -1
- package/lib/dist/web/manifest.webmanifest +0 -15
- package/lib/dist/web/media/codicon-LN6W7LCM.ttf +0 -0
- package/lib/dist/web/sw.js +0 -69
- /package/lib/dist/{web/styles-ATJUD7TT.css → server/ssr/public/app.css} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./chunk-Q7L6LLAK.js";var e={comments:{lineComment:"--",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},_={defaultToken:"",tokenPostfix:".sql",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["ALL","ANALYSE","ANALYZE","AND","ANY","ARRAY","AS","ASC","ASYMMETRIC","AUTHORIZATION","BINARY","BOTH","CASE","CAST","CHECK","COLLATE","COLLATION","COLUMN","CONCURRENTLY","CONSTRAINT","CREATE","CROSS","CURRENT_CATALOG","CURRENT_DATE","CURRENT_ROLE","CURRENT_SCHEMA","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","DEFAULT","DEFERRABLE","DESC","DISTINCT","DO","ELSE","END","EXCEPT","FALSE","FETCH","FOR","FOREIGN","FREEZE","FROM","FULL","GRANT","GROUP","HAVING","ILIKE","IN","INITIALLY","INNER","INTERSECT","INTO","IS","ISNULL","JOIN","LATERAL","LEADING","LEFT","LIKE","LIMIT","LOCALTIME","LOCALTIMESTAMP","NATURAL","NOT","NOTNULL","NULL","OFFSET","ON","ONLY","OR","ORDER","OUTER","OVERLAPS","PLACING","PRIMARY","REFERENCES","RETURNING","RIGHT","SELECT","SESSION_USER","SIMILAR","SOME","SYMMETRIC","TABLE","TABLESAMPLE","THEN","TO","TRAILING","TRUE","UNION","UNIQUE","USER","USING","VARIADIC","VERBOSE","WHEN","WHERE","WINDOW","WITH"],operators:["AND","BETWEEN","IN","LIKE","NOT","OR","IS","NULL","INTERSECT","UNION","INNER","JOIN","LEFT","OUTER","RIGHT"],builtinFunctions:["abbrev","abs","acldefault","aclexplode","acos","acosd","acosh","age","any","area","array_agg","array_append","array_cat","array_dims","array_fill","array_length","array_lower","array_ndims","array_position","array_positions","array_prepend","array_remove","array_replace","array_to_json","array_to_string","array_to_tsvector","array_upper","ascii","asin","asind","asinh","atan","atan2","atan2d","atand","atanh","avg","bit","bit_and","bit_count","bit_length","bit_or","bit_xor","bool_and","bool_or","bound_box","box","brin_desummarize_range","brin_summarize_new_values","brin_summarize_range","broadcast","btrim","cardinality","cbrt","ceil","ceiling","center","char_length","character_length","chr","circle","clock_timestamp","coalesce","col_description","concat","concat_ws","convert","convert_from","convert_to","corr","cos","cosd","cosh","cot","cotd","count","covar_pop","covar_samp","cume_dist","current_catalog","current_database","current_date","current_query","current_role","current_schema","current_schemas","current_setting","current_time","current_timestamp","current_user","currval","cursor_to_xml","cursor_to_xmlschema","date_bin","date_part","date_trunc","database_to_xml","database_to_xml_and_xmlschema","database_to_xmlschema","decode","degrees","dense_rank","diagonal","diameter","div","encode","enum_first","enum_last","enum_range","every","exp","extract","factorial","family","first_value","floor","format","format_type","gcd","gen_random_uuid","generate_series","generate_subscripts","get_bit","get_byte","get_current_ts_config","gin_clean_pending_list","greatest","grouping","has_any_column_privilege","has_column_privilege","has_database_privilege","has_foreign_data_wrapper_privilege","has_function_privilege","has_language_privilege","has_schema_privilege","has_sequence_privilege","has_server_privilege","has_table_privilege","has_tablespace_privilege","has_type_privilege","height","host","hostmask","inet_client_addr","inet_client_port","inet_merge","inet_same_family","inet_server_addr","inet_server_port","initcap","isclosed","isempty","isfinite","isopen","json_agg","json_array_elements","json_array_elements_text","json_array_length","json_build_array","json_build_object","json_each","json_each_text","json_extract_path","json_extract_path_text","json_object","json_object_agg","json_object_keys","json_populate_record","json_populate_recordset","json_strip_nulls","json_to_record","json_to_recordset","json_to_tsvector","json_typeof","jsonb_agg","jsonb_array_elements","jsonb_array_elements_text","jsonb_array_length","jsonb_build_array","jsonb_build_object","jsonb_each","jsonb_each_text","jsonb_extract_path","jsonb_extract_path_text","jsonb_insert","jsonb_object","jsonb_object_agg","jsonb_object_keys","jsonb_path_exists","jsonb_path_match","jsonb_path_query","jsonb_path_query_array","jsonb_path_exists_tz","jsonb_path_query_first","jsonb_path_query_array_tz","jsonb_path_query_first_tz","jsonb_path_query_tz","jsonb_path_match_tz","jsonb_populate_record","jsonb_populate_recordset","jsonb_pretty","jsonb_set","jsonb_set_lax","jsonb_strip_nulls","jsonb_to_record","jsonb_to_recordset","jsonb_to_tsvector","jsonb_typeof","justify_days","justify_hours","justify_interval","lag","last_value","lastval","lcm","lead","least","left","length","line","ln","localtime","localtimestamp","log","log10","lower","lower_inc","lower_inf","lpad","lseg","ltrim","macaddr8_set7bit","make_date","make_interval","make_time","make_timestamp","make_timestamptz","makeaclitem","masklen","max","md5","min","min_scale","mod","mode","multirange","netmask","network","nextval","normalize","now","npoints","nth_value","ntile","nullif","num_nonnulls","num_nulls","numnode","obj_description","octet_length","overlay","parse_ident","path","pclose","percent_rank","percentile_cont","percentile_disc","pg_advisory_lock","pg_advisory_lock_shared","pg_advisory_unlock","pg_advisory_unlock_all","pg_advisory_unlock_shared","pg_advisory_xact_lock","pg_advisory_xact_lock_shared","pg_backend_pid","pg_backup_start_time","pg_blocking_pids","pg_cancel_backend","pg_client_encoding","pg_collation_actual_version","pg_collation_is_visible","pg_column_compression","pg_column_size","pg_conf_load_time","pg_control_checkpoint","pg_control_init","pg_control_recovery","pg_control_system","pg_conversion_is_visible","pg_copy_logical_replication_slot","pg_copy_physical_replication_slot","pg_create_logical_replication_slot","pg_create_physical_replication_slot","pg_create_restore_point","pg_current_logfile","pg_current_snapshot","pg_current_wal_flush_lsn","pg_current_wal_insert_lsn","pg_current_wal_lsn","pg_current_xact_id","pg_current_xact_id_if_assigned","pg_current_xlog_flush_location","pg_current_xlog_insert_location","pg_current_xlog_location","pg_database_size","pg_describe_object","pg_drop_replication_slot","pg_event_trigger_ddl_commands","pg_event_trigger_dropped_objects","pg_event_trigger_table_rewrite_oid","pg_event_trigger_table_rewrite_reason","pg_export_snapshot","pg_filenode_relation","pg_function_is_visible","pg_get_catalog_foreign_keys","pg_get_constraintdef","pg_get_expr","pg_get_function_arguments","pg_get_function_identity_arguments","pg_get_function_result","pg_get_functiondef","pg_get_indexdef","pg_get_keywords","pg_get_object_address","pg_get_owned_sequence","pg_get_ruledef","pg_get_serial_sequence","pg_get_statisticsobjdef","pg_get_triggerdef","pg_get_userbyid","pg_get_viewdef","pg_get_wal_replay_pause_state","pg_has_role","pg_identify_object","pg_identify_object_as_address","pg_import_system_collations","pg_index_column_has_property","pg_index_has_property","pg_indexam_has_property","pg_indexes_size","pg_is_in_backup","pg_is_in_recovery","pg_is_other_temp_schema","pg_is_wal_replay_paused","pg_is_xlog_replay_paused","pg_jit_available","pg_last_committed_xact","pg_last_wal_receive_lsn","pg_last_wal_replay_lsn","pg_last_xact_replay_timestamp","pg_last_xlog_receive_location","pg_last_xlog_replay_location","pg_listening_channels","pg_log_backend_memory_contexts","pg_logical_emit_message","pg_logical_slot_get_binary_changes","pg_logical_slot_get_changes","pg_logical_slot_peek_binary_changes","pg_logical_slot_peek_changes","pg_ls_archive_statusdir","pg_ls_dir","pg_ls_logdir","pg_ls_tmpdir","pg_ls_waldir","pg_mcv_list_items","pg_my_temp_schema","pg_notification_queue_usage","pg_opclass_is_visible","pg_operator_is_visible","pg_opfamily_is_visible","pg_options_to_table","pg_partition_ancestors","pg_partition_root","pg_partition_tree","pg_postmaster_start_time","pg_promote","pg_read_binary_file","pg_read_file","pg_relation_filenode","pg_relation_filepath","pg_relation_size","pg_reload_conf","pg_replication_origin_advance","pg_replication_origin_create","pg_replication_origin_drop","pg_replication_origin_oid","pg_replication_origin_progress","pg_replication_origin_session_is_setup","pg_replication_origin_session_progress","pg_replication_origin_session_reset","pg_replication_origin_session_setup","pg_replication_origin_xact_reset","pg_replication_origin_xact_setup","pg_replication_slot_advance","pg_rotate_logfile","pg_safe_snapshot_blocking_pids","pg_size_bytes","pg_size_pretty","pg_sleep","pg_sleep_for","pg_sleep_until","pg_snapshot_xip","pg_snapshot_xmax","pg_snapshot_xmin","pg_start_backup","pg_stat_file","pg_statistics_obj_is_visible","pg_stop_backup","pg_switch_wal","pg_switch_xlog","pg_table_is_visible","pg_table_size","pg_tablespace_databases","pg_tablespace_location","pg_tablespace_size","pg_terminate_backend","pg_total_relation_size","pg_trigger_depth","pg_try_advisory_lock","pg_try_advisory_lock_shared","pg_try_advisory_xact_lock","pg_try_advisory_xact_lock_shared","pg_ts_config_is_visible","pg_ts_dict_is_visible","pg_ts_parser_is_visible","pg_ts_template_is_visible","pg_type_is_visible","pg_typeof","pg_visible_in_snapshot","pg_wal_lsn_diff","pg_wal_replay_pause","pg_wal_replay_resume","pg_walfile_name","pg_walfile_name_offset","pg_xact_commit_timestamp","pg_xact_commit_timestamp_origin","pg_xact_status","pg_xlog_location_diff","pg_xlog_replay_pause","pg_xlog_replay_resume","pg_xlogfile_name","pg_xlogfile_name_offset","phraseto_tsquery","pi","plainto_tsquery","point","polygon","popen","position","power","pqserverversion","query_to_xml","query_to_xml_and_xmlschema","query_to_xmlschema","querytree","quote_ident","quote_literal","quote_nullable","radians","radius","random","range_agg","range_intersect_agg","range_merge","rank","regexp_count","regexp_instr","regexp_like","regexp_match","regexp_matches","regexp_replace","regexp_split_to_array","regexp_split_to_table","regexp_substr","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","repeat","replace","reverse","right","round","row_number","row_security_active","row_to_json","rpad","rtrim","scale","schema_to_xml","schema_to_xml_and_xmlschema","schema_to_xmlschema","session_user","set_bit","set_byte","set_config","set_masklen","setseed","setval","setweight","sha224","sha256","sha384","sha512","shobj_description","sign","sin","sind","sinh","slope","split_part","sprintf","sqrt","starts_with","statement_timestamp","stddev","stddev_pop","stddev_samp","string_agg","string_to_array","string_to_table","strip","strpos","substr","substring","sum","suppress_redundant_updates_trigger","table_to_xml","table_to_xml_and_xmlschema","table_to_xmlschema","tan","tand","tanh","text","timeofday","timezone","to_ascii","to_char","to_date","to_hex","to_json","to_number","to_regclass","to_regcollation","to_regnamespace","to_regoper","to_regoperator","to_regproc","to_regprocedure","to_regrole","to_regtype","to_timestamp","to_tsquery","to_tsvector","transaction_timestamp","translate","trim","trim_array","trim_scale","trunc","ts_debug","ts_delete","ts_filter","ts_headline","ts_lexize","ts_parse","ts_rank","ts_rank_cd","ts_rewrite","ts_stat","ts_token_type","tsquery_phrase","tsvector_to_array","tsvector_update_trigger","tsvector_update_trigger_column","txid_current","txid_current_if_assigned","txid_current_snapshot","txid_snapshot_xip","txid_snapshot_xmax","txid_snapshot_xmin","txid_status","txid_visible_in_snapshot","unistr","unnest","upper","upper_inc","upper_inf","user","var_pop","var_samp","variance","version","websearch_to_tsquery","width","width_bucket","xml_is_well_formed","xml_is_well_formed_content","xml_is_well_formed_document","xmlagg","xmlcomment","xmlconcat","xmlelement","xmlexists","xmlforest","xmlparse","xmlpi","xmlroot","xmlserialize","xpath","xpath_exists"],builtinVariables:[],pseudoColumns:[],tokenizer:{root:[{include:"@comments"},{include:"@whitespace"},{include:"@pseudoColumns"},{include:"@numbers"},{include:"@strings"},{include:"@complexIdentifiers"},{include:"@scopes"},[/[;,.]/,"delimiter"],[/[()]/,"@brackets"],[/[\w@#$]+/,{cases:{"@operators":"operator","@builtinVariables":"predefined","@builtinFunctions":"predefined","@keywords":"keyword","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[[/--+.*/,"comment"],[/\/\*/,{token:"comment.quote",next:"@comment"}]],comment:[[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],pseudoColumns:[[/[$][A-Za-z_][\w@#$]*/,{cases:{"@pseudoColumns":"predefined","@default":"identifier"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/'/,{token:"string",next:"@string"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],complexIdentifiers:[[/"/,{token:"identifier.quote",next:"@quotedIdentifier"}]],quotedIdentifier:[[/[^"]+/,"identifier"],[/""/,"identifier"],[/"/,{token:"identifier.quote",next:"@pop"}]],scopes:[]}};export{e as conf,_ as language};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{$ as j,Ba as g,Ca as b,Da as S,Ga as H,Ha as W,Ja as G,Ka as d,M as V,N as L,O as I,Ta as C,Ua as N,Va as F,W as R,Wa as $,ea as m,ga as q,ka as D,lb as w,ob as U,pb as s,qa as k,ra as f,sa as x,va as K,wa as A}from"./chunk-SYGIPC2P.js";import{a as O,b as T}from"./chunk-Q7L6LLAK.js";function ae(n,e=2){return n.split("/").filter(Boolean).slice(-e).join("/")||n}function Y(n,e){if(n&1&&(I(),S(0,"path",0)),n&2){let t=d(2);k("d",t.fillD())("fill",t.color())}}function ee(n,e){if(n&1&&(I(),g(0,"svg"),f(1,Y,1,2,":svg:path",0),S(2,"path",1),b()),n&2){let t=d();k("width",t.width())("height",t.height())("viewBox","0 0 "+t.width()+" "+t.height()),m(),x(t.fill()?1:-1),m(),k("d",t.pathD())("stroke",t.color())}}var Z=class n{data=s([]);color=s("var(--accent)");width=s(80);height=s(24);fill=s(!1);pathD=w(()=>{let e=this.data();if(!e||e.length<2)return"";let t=this.width(),i=this.height(),p=Math.max(...e),h=Math.min(...e),E=p-h||1;return e.map((v,o)=>{let c=o/(e.length-1)*t,_=i-(v-h)/E*(i-4)-2;return(o===0?"M":"L")+c.toFixed(2)+" "+_.toFixed(2)}).join(" ")});fillD=w(()=>{let e=this.pathD();return e?e+` L ${this.width()} ${this.height()} L 0 ${this.height()} Z`:""});static \u0275fac=function(t){return new(t||n)};static \u0275cmp=D({type:n,selectors:[["app-sparkline"]],inputs:{data:[1,"data"],color:[1,"color"],width:[1,"width"],height:[1,"height"],fill:[1,"fill"]},decls:1,vars:1,consts:[["opacity","0.18"],["fill","none","stroke-width","1.5","stroke-linecap","round","stroke-linejoin","round"]],template:function(t,i){t&1&&f(0,ee,3,6,":svg:svg"),t&2&&x(i.data().length>=2?0:-1)},styles:["[_nghost-%COMP%]{display:inline-block;line-height:0}"],changeDetection:0})};var te=(n,e)=>e.key;function ne(n,e){if(n&1&&(g(0,"span",5),F(1),b()),n&2){let t=d().$implicit,i=d();C("font-size",i.labelFont(t),"px")("color",i.textColor(t)),m(),$(t.label)}}function ie(n,e){if(n&1&&(g(0,"span",6),F(1),b()),n&2){let t=d().$implicit,i=d();C("color",i.subColor(t)),m(),$(t.sub)}}function oe(n,e){if(n&1){let t=H();g(0,"div",2),G("click",function(){let p=V(t).$implicit,h=d();return L(h.pick.emit(p.key))}),f(1,ne,2,5,"span",3),f(2,ie,2,3,"span",4),b()}if(n&2){let t=e.$implicit,i=d();C("left",t.x+1.5,"px")("top",t.y+1.5,"px")("width",i.cellW(t),"px")("height",i.cellH(t),"px")("background",i.cellBg(t)),N("sel",t.key===i.selKey())("big",i.isBig(t)),W("title",t.title||t.label),m(),x(i.isMid(t)?1:-1),m(),x(i.isBig(t)&&t.sub?2:-1)}}var J=class n{constructor(e){this.hostEl=e}hostEl;items=s([]);height=s(120);selKey=s(null);variant=s("compact");pick=U();width=R(0);ro;ngAfterViewInit(){if(typeof ResizeObserver>"u"){this.width.set(this.hostEl.nativeElement.clientWidth||600);return}this.ro=new ResizeObserver(e=>this.width.set(e[0].contentRect.width)),this.ro.observe(this.hostEl.nativeElement)}ngOnDestroy(){this.ro?.disconnect()}cells=w(()=>{let e=this.width()||600,t=this.height(),i=[...this.items()].sort((p,h)=>h.value-p.value);return re(i,0,0,e,t)});cellW(e){return Math.max(0,e.w-3)}cellH(e){return Math.max(0,e.h-3)}detailed(){return this.variant()==="detailed"}isBig(e){return this.detailed()?e.w>58&&e.h>30:e.w>52&&e.h>26}isMid(e){return this.detailed()?e.w>40&&e.h>18:e.w>36&&e.h>15}labelFont(e){return this.detailed()?this.isBig(e)?11:9.5:this.isBig(e)?10:9}warm(e){let t=this.t(e);return t>.66?"var(--error)":t>.33?"var(--warn)":"var(--node-route)"}t(e){return Math.max(0,Math.min(1,e.intensity||0))}cellBg(e){let t=Math.round(20+this.t(e)*(this.detailed()?60:58));return`color-mix(in srgb, ${this.warm(e)} ${t}%, var(--bg-elevated))`}textColor(e){return this.t(e)>.45?"#fff":"var(--text-primary)"}subColor(e){return this.t(e)>.45?"rgba(255,255,255,0.8)":"var(--text-muted)"}static \u0275fac=function(t){return new(t||n)(q(j))};static \u0275cmp=D({type:n,selectors:[["app-treemap"]],inputs:{items:[1,"items"],height:[1,"height"],selKey:[1,"selKey"],variant:[1,"variant"]},outputs:{pick:"pick"},decls:3,vars:4,consts:[[1,"tm"],[1,"tm-cell",3,"sel","big","left","top","width","height","background","title"],[1,"tm-cell",3,"click","title"],[1,"mono","tm-label",3,"font-size","color"],[1,"mono","tabular","tm-sub",3,"color"],[1,"mono","tm-label"],[1,"mono","tabular","tm-sub"]],template:function(t,i){t&1&&(g(0,"div",0),K(1,oe,3,17,"div",1,te),b()),t&2&&(C("height",i.height(),"px"),N("detailed",i.variant()==="detailed"),m(),A(i.cells()))},styles:['@charset "UTF-8";[_nghost-%COMP%]{display:block}.tm[_ngcontent-%COMP%]{position:relative;width:100%;border-radius:7px;overflow:hidden;background:var(--bg-canvas)}.tm.detailed[_ngcontent-%COMP%]{border-radius:8px}.tm-cell[_ngcontent-%COMP%]{position:absolute;border-radius:4px;overflow:hidden;cursor:pointer;display:flex;flex-direction:column;justify-content:center;padding:0 5px;border:1px solid rgba(0,0,0,.26)}.tm-cell.big[_ngcontent-%COMP%]{padding:5px 7px;justify-content:flex-start}.tm-cell.sel[_ngcontent-%COMP%]{border:1.5px solid var(--accent)}.tm-label[_ngcontent-%COMP%]{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.25}.tm-sub[_ngcontent-%COMP%]{font-size:9px;margin-top:1px}.tm.detailed[_ngcontent-%COMP%] .tm-cell[_ngcontent-%COMP%]{border-radius:5px;padding:0 6px;border-color:#00000047}.tm.detailed[_ngcontent-%COMP%] .tm-cell.big[_ngcontent-%COMP%]{padding:7px 9px}.tm.detailed[_ngcontent-%COMP%] .tm-cell.sel[_ngcontent-%COMP%]{box-shadow:0 0 0 3px var(--accent-soft);transition:box-shadow .1s}.tm.detailed[_ngcontent-%COMP%] .tm-label[_ngcontent-%COMP%]{line-height:1.3}.tm.detailed[_ngcontent-%COMP%] .tm-sub[_ngcontent-%COMP%]{font-size:10px;margin-top:2px}'],changeDetection:0})};function re(n,e,t,i,p){let h=n.reduce((r,l)=>r+l.value,0)||1,E=n.map(r=>({d:r,area:r.value/h*(i*p)})),v=[],o={x:e,y:t,w:i,h:p},c=[],_=r=>r.reduce((l,a)=>l+a.area,0),B=(r,l)=>{if(!r.length)return 1/0;let a=_(r),y=Math.max(...r.map(u=>u.area)),M=Math.min(...r.map(u=>u.area));return Math.max(l*l*y/(a*a),a*a/(l*l*M))},z=()=>{let r=Math.min(o.w,o.h),a=_(c)/(r||1),y=0,M=o.w>=o.h;c.forEach(u=>{let P=u.area/(a||1);M?v.push(T(O({},u.d),{x:o.x,y:o.y+y,w:a,h:P})):v.push(T(O({},u.d),{x:o.x+y,y:o.y,w:P,h:a})),y+=P}),M?o={x:o.x+a,y:o.y,w:o.w-a,h:o.h}:o={x:o.x,y:o.y+a,w:o.w,h:o.h-a},c=[]};return E.forEach(r=>{let l=Math.min(o.w,o.h);c.length&&B([...c,r],l)>B(c,l)&&z(),c.push(r)}),c.length&&z(),v}export{ae as a,Z as b,J as c};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./chunk-Q7L6LLAK.js";var e={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\$\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],folding:{markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},t={defaultToken:"",tokenPostfix:".cs",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],keywords:["extern","alias","using","bool","decimal","sbyte","byte","short","ushort","int","uint","long","ulong","char","float","double","object","dynamic","string","assembly","is","as","ref","out","this","base","new","typeof","void","checked","unchecked","default","delegate","var","const","if","else","switch","case","while","do","for","foreach","in","break","continue","goto","return","throw","try","catch","finally","lock","yield","from","let","where","join","on","equals","into","orderby","ascending","descending","select","group","by","namespace","partial","class","field","event","method","param","public","protected","internal","private","abstract","sealed","static","struct","readonly","volatile","virtual","override","params","get","set","add","remove","operator","true","false","implicit","explicit","interface","enum","null","async","await","fixed","sizeof","stackalloc","unsafe","nameof","when"],namespaceFollows:["namespace","using"],parenFollows:["if","for","while","switch","foreach","using","catch","when"],operators:["=","??","||","&&","|","^","&","==","!=","<=",">=","<<","+","-","*","/","%","!","~","++","--","+=","-=","*=","/=","%=","&=","|=","^=","<<=",">>=",">>","=>"],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/\@?[a-zA-Z_]\w*/,{cases:{"@namespaceFollows":{token:"keyword.$0",next:"@namespace"},"@keywords":{token:"keyword.$0",next:"@qualified"},"@default":{token:"identifier",next:"@qualified"}}}],{include:"@whitespace"},[/}/,{cases:{"$S2==interpolatedstring":{token:"string.quote",next:"@pop"},"$S2==litinterpstring":{token:"string.quote",next:"@pop"},"@default":"@brackets"}}],[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/[0-9_]*\.[0-9_]+([eE][\-+]?\d+)?[fFdD]?/,"number.float"],[/0[xX][0-9a-fA-F_]+/,"number.hex"],[/0[bB][01_]+/,"number.hex"],[/[0-9_]+/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,{token:"string.quote",next:"@string"}],[/\$\@"/,{token:"string.quote",next:"@litinterpstring"}],[/\@"/,{token:"string.quote",next:"@litstring"}],[/\$"/,{token:"string.quote",next:"@interpolatedstring"}],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],qualified:[[/[a-zA-Z_][\w]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],[/\./,"delimiter"],["","","@pop"]],namespace:[{include:"@whitespace"},[/[A-Z]\w*/,"namespace"],[/[\.=]/,"delimiter"],["","","@pop"]],comment:[[/[^\/*]+/,"comment"],["\\*/","comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",next:"@pop"}]],litstring:[[/[^"]+/,"string"],[/""/,"string.escape"],[/"/,{token:"string.quote",next:"@pop"}]],litinterpstring:[[/[^"{]+/,"string"],[/""/,"string.escape"],[/{{/,"string.escape"],[/}}/,"string.escape"],[/{/,{token:"string.quote",next:"root.litinterpstring"}],[/"/,{token:"string.quote",next:"@pop"}]],interpolatedstring:[[/[^\\"{]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/{{/,"string.escape"],[/}}/,"string.escape"],[/{/,{token:"string.quote",next:"root.interpolatedstring"}],[/"/,{token:"string.quote",next:"@pop"}]],whitespace:[[/^[ \t\v\f]*#((r)|(load))(?=\s)/,"directive.csx"],[/^[ \t\v\f]*#\w.*$/,"namespace.cpp"],[/[ \t\v\f\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}};export{e as conf,t as language};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as q}from"./chunk-YWIRU745.js";import{a as Q}from"./chunk-JLOJCDIY.js";import{a as N}from"./chunk-5NTGUSXJ.js";import{a as $,b as j}from"./chunk-WBJ5VEB5.js";import{a as R}from"./chunk-SQPYSOV6.js";import{c as M}from"./chunk-DOKZOFKM.js";import{c as V}from"./chunk-DTWIJ3GJ.js";import{a as L}from"./chunk-JGDK6YKG.js";import{a as O}from"./chunk-TWVVIWKO.js";import{Aa as p,Ga as S,I as C,Ia as b,Ka as c,M as v,N as g,Ta as D,Ua as I,Va as l,W as y,Wa as u,Xa as x,ea as n,ka as z,lb as h,qa as P,ra as _,sa as f,ua as F,va as w,wa as k,xa as s,ya as r,za as o,zb as A}from"./chunk-SYGIPC2P.js";import{a as E,b as T}from"./chunk-Q7L6LLAK.js";var H=(i,t)=>t.id;function J(i,t){i&1&&p(0,"app-pick-project-empty",0)}function K(i,t){if(i&1){let e=S();r(0,"button",10),b("click",function(){let d=v(e).$implicit,m=c(2);return g(m.toggleFilter(d))}),r(1,"span",11),l(2),o(),r(3,"span",12),l(4),o()()}if(i&2){let e=t.$implicit,a=c(2);D("background",a.stateFilter()[e]?a.STATE[e].bg:"var(--bg-panel)")("color",a.stateFilter()[e]?a.STATE[e].color:"var(--text-muted)")("border-color",a.stateFilter()[e]?"transparent":"var(--border-subtle)"),n(2),u(e),n(2),u(a.counts()[e])}}function U(i,t){if(i&1&&(r(0,"span",13),l(1),o(),r(2,"button",14),p(3,"app-icon",15),l(4," Re-verify all "),o(),r(5,"button",14),p(6,"app-icon",16),l(7," Open all "),o()),i&2){let e=c(2);n(),x("",e.selectedCount()," selected"),n(2),s("size",12),n(3),s("size",12)}}function W(i,t){i&1&&p(0,"app-empty",8)}function X(i,t){if(i&1&&(r(0,"app-pill",28),l(1),o()),i&2){let e=c().$implicit;n(),u(e.driftAxis)}}function Y(i,t){i&1&&(r(0,"button",37),p(1,"app-icon",39),l(2," Fix "),o()),i&2&&(n(),s("size",12))}function Z(i,t){i&1&&(r(0,"button",37),p(1,"app-icon",15),l(2," Re-verify "),o()),i&2&&(n(),s("size",12))}function ee(i,t){i&1&&(r(0,"button",37),p(1,"app-icon",40),l(2," Re-attach "),o()),i&2&&(n(),s("size",12))}function te(i,t){if(i&1){let e=S();r(0,"div",32)(1,"div",33)(2,"div")(3,"div",34),l(4,"Spec"),o(),r(5,"div",35),l(6),o()(),r(7,"div")(8,"div",34),l(9,"Target"),o(),r(10,"div",35),l(11),o()(),r(12,"div")(13,"div",34),l(14,"Provenance"),o(),r(15,"div",35),l(16),o()(),r(17,"div")(18,"div",34),l(19,"Drift axis"),o(),r(20,"div",35),l(21),o()(),r(22,"div")(23,"div",34),l(24,"Age"),o(),r(25,"div",35),l(26),o()()(),r(27,"div",36),_(28,Y,3,1,"button",37),_(29,Z,3,1,"button",37),_(30,ee,3,1,"button",37),r(31,"button",38),b("click",function(){v(e);let d=c().$implicit,m=c(3);return g(m.openSpec(d.specId))}),l(32," Open spec "),o(),r(33,"button",38),b("click",function(){v(e);let d=c().$implicit,m=c(3);return g(m.showInGraph(d.specId))}),l(34," Show in graph "),o()()()}if(i&2){let e=c().$implicit,a=c(3);n(6),u(e.specId),n(5),u(e.targetQualifiedName),n(5),u(e.provenance),n(5),u(e.driftAxis??"\u2014"),n(5),u(a.ageOf(e)),n(2),f(e.state==="drifted"?28:-1),n(),f(e.state==="broken"?29:-1),n(),f(e.state==="orphaned"?30:-1)}}function ie(i,t){if(i&1){let e=S();r(0,"div",18)(1,"div",19)(2,"input",20),b("click",function(d){let m=v(e).$implicit,B=c(3);return g(B.toggleSelect(m.id,d))})("change",function(d){return d.stopPropagation()}),o(),r(3,"div",21),b("click",function(){let d=v(e).$implicit,m=c(3);return g(m.toggleExpand(d.id))}),r(4,"div",22),p(5,"app-state-pill",23),o(),r(6,"span",24),l(7),o(),r(8,"span",25),l(9),o(),p(10,"app-icon",26),r(11,"span",27),l(12),o(),_(13,X,2,1,"app-pill",28),r(14,"span",29),l(15),o(),r(16,"span",30),l(17),o(),p(18,"app-icon",31),o()(),_(19,te,35,8,"div",32),o()}if(i&2){let e=t.$implicit,a=c(3);D("border-bottom","1px solid var(--border-subtle)"),n(),I("selected",a.isSelected(e.id)),n(),s("checked",a.isSelected(e.id)),P("aria-label","Select "+e.specId),n(3),s("state",e.state),n(2),x(" ",e.specId," "),n(2),x(" ",e.specTitle??""," "),n(),s("size",13),n(2),x(" ",e.targetQualifiedName," "),n(),f(e.driftAxis?13:-1),n(2),x(" ",e.provenance," "),n(2),x(" ",a.ageOf(e)," "),n(),s("name",a.isExpanded(e.id)?"chevronDown":"chevronRight")("size",13),n(),f(a.isExpanded(e.id)?19:-1)}}function ne(i,t){if(i&1&&(r(0,"div",9),w(1,ie,20,17,"div",17,H),o()),i&2){let e=c(2);n(),k(e.visibleLinks())}}function re(i,t){if(i&1&&(r(0,"div",1)(1,"div",2),p(2,"app-page-head",3),o(),r(3,"div",4),p(4,"app-icon",5),w(5,K,5,8,"button",6,F),p(7,"div",7),_(8,U,8,3),o(),_(9,W,1,0,"app-empty",8)(10,ne,3,0,"div",9),o()),i&2){let e=c();n(2),s("sub",e.resource.state().loading?"loading\u2026":e.allLinks().length+" links need attention"),n(2),s("size",13),n(),k(e.states),n(3),f(e.selectedCount()>0?8:-1),n(),f(e.visibleLinks().length===0?9:10)}}var G=class i{api=C(O);projects=C(L);router=C(M);stateFilter=y({drifted:!0,broken:!0,orphaned:!0});resource=V(this.api,()=>`/api/drift?state=drifted,broken,orphaned${this.projects.projectQuery("&")}`);selected=y(new Set);expanded=y(new Set);allLinks=h(()=>this.resource.state().data?.links??[]);visibleLinks=h(()=>{let t=this.stateFilter();return this.allLinks().filter(e=>t[e.state])});counts=h(()=>{let t={drifted:0,broken:0,orphaned:0};for(let e of this.allLinks())e.state in t&&t[e.state]++;return t});selectedCount=h(()=>this.selected().size);states=["drifted","broken","orphaned"];STATE=$;toggleFilter(t){this.stateFilter.update(e=>T(E({},e),{[t]:!e[t]}))}toggleSelect(t,e){e.stopPropagation(),this.selected.update(a=>{let d=new Set(a);return d.has(t)?d.delete(t):d.add(t),d})}isSelected(t){return this.selected().has(t)}toggleExpand(t){this.expanded.update(e=>{let a=new Set(e);return a.has(t)?a.delete(t):a.add(t),a})}isExpanded(t){return this.expanded().has(t)}ageOf(t){if(!t.updatedAt)return"";let e=Date.now()-t.updatedAt;return e<6e4?"just now":e<36e5?Math.round(e/6e4)+"m":e<864e5?Math.round(e/36e5)+"h":Math.round(e/864e5)+"d"}openSpec(t){this.router.navigate(["/specs"],{queryParams:{sel:t}})}showInGraph(t){this.router.navigate(["/graph"],{queryParams:{focus:"spec:"+t}})}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=z({type:i,selectors:[["app-drift"]],decls:2,vars:1,consts:[["surface","The drift queue"],[1,"page","col"],[2,"padding","16px 18px 0"],["icon","drift","title","Drift queue",3,"sub"],[1,"filter-bar","row","gap-8"],["name","filter",2,"color","var(--text-muted)",3,"size"],["type","button",1,"filter-chip","row","gap-6",3,"background","color","border-color"],[1,"grow"],["icon","check","title","All links in good standing \u2728","body","Nothing has drifted. Every spec link points at code that still matches."],[1,"scroll-y","list-frame"],["type","button",1,"filter-chip","row","gap-6",3,"click"],[2,"text-transform","capitalize"],[1,"tabular",2,"opacity","0.7"],[1,"secondary",2,"font-size","12px"],["type","button",1,"btn","btn-secondary","btn-sm"],["name","refresh",3,"size"],["name","reveal",3,"size"],[1,"drift-row-wrap",3,"border-bottom"],[1,"drift-row-wrap"],[1,"drift-row","row","gap-10"],["type","checkbox",1,"drift-checkbox",3,"click","change","checked"],[1,"row","gap-10","grow",2,"min-width","0","cursor","pointer",3,"click"],[2,"width","92px","flex-shrink","0"],[3,"state"],[1,"mono",2,"font-size","12px","color","var(--node-spec)","flex-shrink","0","width","130px","overflow","hidden","text-overflow","ellipsis","white-space","nowrap"],[1,"secondary",2,"font-size","12.5px","overflow","hidden","text-overflow","ellipsis","white-space","nowrap","flex","0 1 220px"],["name","arrowRight",2,"color","var(--text-muted)","flex-shrink","0",3,"size"],[1,"mono","grow",2,"font-size","11.5px","color","var(--text-secondary)","overflow","hidden","text-overflow","ellipsis","white-space","nowrap"],["color","var(--warn)","bg","var(--warn-soft)"],[1,"mono","muted",2,"font-size","11px","flex-shrink","0","width","48px","text-align","right"],[1,"mono","muted","tabular",2,"font-size","11px","flex-shrink","0","width","32px","text-align","right"],[2,"color","var(--text-muted)","flex-shrink","0",3,"name","size"],[1,"drift-detail"],[1,"row",2,"gap","22px","padding","10px 0","flex-wrap","wrap"],[1,"muted",2,"font-size","10.5px"],[1,"mono",2,"font-size","12.5px","margin-top","1px"],[1,"row","gap-8"],["type","button",1,"btn","btn-primary","btn-sm"],["type","button",1,"btn","btn-secondary","btn-sm",3,"click"],["name","wrench",3,"size"],["name","graph",3,"size"]],template:function(e,a){e&1&&_(0,J,1,0,"app-pick-project-empty",0)(1,re,11,4,"div",1),e&2&&f(a.resource.state().noProject?0:1)},dependencies:[R,A,N,q,j,Q],styles:["[_nghost-%COMP%]{display:contents}.page[_ngcontent-%COMP%]{flex:1;min-height:0}.filter-bar[_ngcontent-%COMP%]{padding:0 18px 12px;flex-wrap:wrap;align-items:center}.filter-chip[_ngcontent-%COMP%]{height:26px;padding:0 10px;border-radius:999px;border:1px solid var(--border-subtle);font-size:11.5px;font-weight:500;cursor:pointer;font-family:inherit;align-items:center;transition:background .12s,color .12s}.list-frame[_ngcontent-%COMP%]{flex:1;border-top:1px solid var(--border-subtle);margin:0}.drift-row[_ngcontent-%COMP%]{padding:10px 14px;cursor:default;align-items:center;transition:background 80ms;background:transparent}.drift-row[_ngcontent-%COMP%]:not(.selected):hover{background:var(--bg-hover)}.drift-row.selected[_ngcontent-%COMP%]{background:var(--accent-soft)}.drift-checkbox[_ngcontent-%COMP%]{accent-color:var(--accent);width:14px;height:14px;flex-shrink:0;cursor:pointer}.drift-detail[_ngcontent-%COMP%]{padding:0 14px 14px 50px;background:var(--bg-canvas)}"],changeDetection:0})};export{G as Drift};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./chunk-Q7L6LLAK.js";var x={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]}]},e={defaultToken:"",tokenPostfix:".sol",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["pragma","solidity","contract","library","using","struct","function","modifier","constructor","address","string","bool","Int","Uint","Byte","Fixed","Ufixed","int","int8","int16","int24","int32","int40","int48","int56","int64","int72","int80","int88","int96","int104","int112","int120","int128","int136","int144","int152","int160","int168","int176","int184","int192","int200","int208","int216","int224","int232","int240","int248","int256","uint","uint8","uint16","uint24","uint32","uint40","uint48","uint56","uint64","uint72","uint80","uint88","uint96","uint104","uint112","uint120","uint128","uint136","uint144","uint152","uint160","uint168","uint176","uint184","uint192","uint200","uint208","uint216","uint224","uint232","uint240","uint248","uint256","byte","bytes","bytes1","bytes2","bytes3","bytes4","bytes5","bytes6","bytes7","bytes8","bytes9","bytes10","bytes11","bytes12","bytes13","bytes14","bytes15","bytes16","bytes17","bytes18","bytes19","bytes20","bytes21","bytes22","bytes23","bytes24","bytes25","bytes26","bytes27","bytes28","bytes29","bytes30","bytes31","bytes32","fixed","fixed0x8","fixed0x16","fixed0x24","fixed0x32","fixed0x40","fixed0x48","fixed0x56","fixed0x64","fixed0x72","fixed0x80","fixed0x88","fixed0x96","fixed0x104","fixed0x112","fixed0x120","fixed0x128","fixed0x136","fixed0x144","fixed0x152","fixed0x160","fixed0x168","fixed0x176","fixed0x184","fixed0x192","fixed0x200","fixed0x208","fixed0x216","fixed0x224","fixed0x232","fixed0x240","fixed0x248","fixed0x256","fixed8x8","fixed8x16","fixed8x24","fixed8x32","fixed8x40","fixed8x48","fixed8x56","fixed8x64","fixed8x72","fixed8x80","fixed8x88","fixed8x96","fixed8x104","fixed8x112","fixed8x120","fixed8x128","fixed8x136","fixed8x144","fixed8x152","fixed8x160","fixed8x168","fixed8x176","fixed8x184","fixed8x192","fixed8x200","fixed8x208","fixed8x216","fixed8x224","fixed8x232","fixed8x240","fixed8x248","fixed16x8","fixed16x16","fixed16x24","fixed16x32","fixed16x40","fixed16x48","fixed16x56","fixed16x64","fixed16x72","fixed16x80","fixed16x88","fixed16x96","fixed16x104","fixed16x112","fixed16x120","fixed16x128","fixed16x136","fixed16x144","fixed16x152","fixed16x160","fixed16x168","fixed16x176","fixed16x184","fixed16x192","fixed16x200","fixed16x208","fixed16x216","fixed16x224","fixed16x232","fixed16x240","fixed24x8","fixed24x16","fixed24x24","fixed24x32","fixed24x40","fixed24x48","fixed24x56","fixed24x64","fixed24x72","fixed24x80","fixed24x88","fixed24x96","fixed24x104","fixed24x112","fixed24x120","fixed24x128","fixed24x136","fixed24x144","fixed24x152","fixed24x160","fixed24x168","fixed24x176","fixed24x184","fixed24x192","fixed24x200","fixed24x208","fixed24x216","fixed24x224","fixed24x232","fixed32x8","fixed32x16","fixed32x24","fixed32x32","fixed32x40","fixed32x48","fixed32x56","fixed32x64","fixed32x72","fixed32x80","fixed32x88","fixed32x96","fixed32x104","fixed32x112","fixed32x120","fixed32x128","fixed32x136","fixed32x144","fixed32x152","fixed32x160","fixed32x168","fixed32x176","fixed32x184","fixed32x192","fixed32x200","fixed32x208","fixed32x216","fixed32x224","fixed40x8","fixed40x16","fixed40x24","fixed40x32","fixed40x40","fixed40x48","fixed40x56","fixed40x64","fixed40x72","fixed40x80","fixed40x88","fixed40x96","fixed40x104","fixed40x112","fixed40x120","fixed40x128","fixed40x136","fixed40x144","fixed40x152","fixed40x160","fixed40x168","fixed40x176","fixed40x184","fixed40x192","fixed40x200","fixed40x208","fixed40x216","fixed48x8","fixed48x16","fixed48x24","fixed48x32","fixed48x40","fixed48x48","fixed48x56","fixed48x64","fixed48x72","fixed48x80","fixed48x88","fixed48x96","fixed48x104","fixed48x112","fixed48x120","fixed48x128","fixed48x136","fixed48x144","fixed48x152","fixed48x160","fixed48x168","fixed48x176","fixed48x184","fixed48x192","fixed48x200","fixed48x208","fixed56x8","fixed56x16","fixed56x24","fixed56x32","fixed56x40","fixed56x48","fixed56x56","fixed56x64","fixed56x72","fixed56x80","fixed56x88","fixed56x96","fixed56x104","fixed56x112","fixed56x120","fixed56x128","fixed56x136","fixed56x144","fixed56x152","fixed56x160","fixed56x168","fixed56x176","fixed56x184","fixed56x192","fixed56x200","fixed64x8","fixed64x16","fixed64x24","fixed64x32","fixed64x40","fixed64x48","fixed64x56","fixed64x64","fixed64x72","fixed64x80","fixed64x88","fixed64x96","fixed64x104","fixed64x112","fixed64x120","fixed64x128","fixed64x136","fixed64x144","fixed64x152","fixed64x160","fixed64x168","fixed64x176","fixed64x184","fixed64x192","fixed72x8","fixed72x16","fixed72x24","fixed72x32","fixed72x40","fixed72x48","fixed72x56","fixed72x64","fixed72x72","fixed72x80","fixed72x88","fixed72x96","fixed72x104","fixed72x112","fixed72x120","fixed72x128","fixed72x136","fixed72x144","fixed72x152","fixed72x160","fixed72x168","fixed72x176","fixed72x184","fixed80x8","fixed80x16","fixed80x24","fixed80x32","fixed80x40","fixed80x48","fixed80x56","fixed80x64","fixed80x72","fixed80x80","fixed80x88","fixed80x96","fixed80x104","fixed80x112","fixed80x120","fixed80x128","fixed80x136","fixed80x144","fixed80x152","fixed80x160","fixed80x168","fixed80x176","fixed88x8","fixed88x16","fixed88x24","fixed88x32","fixed88x40","fixed88x48","fixed88x56","fixed88x64","fixed88x72","fixed88x80","fixed88x88","fixed88x96","fixed88x104","fixed88x112","fixed88x120","fixed88x128","fixed88x136","fixed88x144","fixed88x152","fixed88x160","fixed88x168","fixed96x8","fixed96x16","fixed96x24","fixed96x32","fixed96x40","fixed96x48","fixed96x56","fixed96x64","fixed96x72","fixed96x80","fixed96x88","fixed96x96","fixed96x104","fixed96x112","fixed96x120","fixed96x128","fixed96x136","fixed96x144","fixed96x152","fixed96x160","fixed104x8","fixed104x16","fixed104x24","fixed104x32","fixed104x40","fixed104x48","fixed104x56","fixed104x64","fixed104x72","fixed104x80","fixed104x88","fixed104x96","fixed104x104","fixed104x112","fixed104x120","fixed104x128","fixed104x136","fixed104x144","fixed104x152","fixed112x8","fixed112x16","fixed112x24","fixed112x32","fixed112x40","fixed112x48","fixed112x56","fixed112x64","fixed112x72","fixed112x80","fixed112x88","fixed112x96","fixed112x104","fixed112x112","fixed112x120","fixed112x128","fixed112x136","fixed112x144","fixed120x8","fixed120x16","fixed120x24","fixed120x32","fixed120x40","fixed120x48","fixed120x56","fixed120x64","fixed120x72","fixed120x80","fixed120x88","fixed120x96","fixed120x104","fixed120x112","fixed120x120","fixed120x128","fixed120x136","fixed128x8","fixed128x16","fixed128x24","fixed128x32","fixed128x40","fixed128x48","fixed128x56","fixed128x64","fixed128x72","fixed128x80","fixed128x88","fixed128x96","fixed128x104","fixed128x112","fixed128x120","fixed128x128","fixed136x8","fixed136x16","fixed136x24","fixed136x32","fixed136x40","fixed136x48","fixed136x56","fixed136x64","fixed136x72","fixed136x80","fixed136x88","fixed136x96","fixed136x104","fixed136x112","fixed136x120","fixed144x8","fixed144x16","fixed144x24","fixed144x32","fixed144x40","fixed144x48","fixed144x56","fixed144x64","fixed144x72","fixed144x80","fixed144x88","fixed144x96","fixed144x104","fixed144x112","fixed152x8","fixed152x16","fixed152x24","fixed152x32","fixed152x40","fixed152x48","fixed152x56","fixed152x64","fixed152x72","fixed152x80","fixed152x88","fixed152x96","fixed152x104","fixed160x8","fixed160x16","fixed160x24","fixed160x32","fixed160x40","fixed160x48","fixed160x56","fixed160x64","fixed160x72","fixed160x80","fixed160x88","fixed160x96","fixed168x8","fixed168x16","fixed168x24","fixed168x32","fixed168x40","fixed168x48","fixed168x56","fixed168x64","fixed168x72","fixed168x80","fixed168x88","fixed176x8","fixed176x16","fixed176x24","fixed176x32","fixed176x40","fixed176x48","fixed176x56","fixed176x64","fixed176x72","fixed176x80","fixed184x8","fixed184x16","fixed184x24","fixed184x32","fixed184x40","fixed184x48","fixed184x56","fixed184x64","fixed184x72","fixed192x8","fixed192x16","fixed192x24","fixed192x32","fixed192x40","fixed192x48","fixed192x56","fixed192x64","fixed200x8","fixed200x16","fixed200x24","fixed200x32","fixed200x40","fixed200x48","fixed200x56","fixed208x8","fixed208x16","fixed208x24","fixed208x32","fixed208x40","fixed208x48","fixed216x8","fixed216x16","fixed216x24","fixed216x32","fixed216x40","fixed224x8","fixed224x16","fixed224x24","fixed224x32","fixed232x8","fixed232x16","fixed232x24","fixed240x8","fixed240x16","fixed248x8","ufixed","ufixed0x8","ufixed0x16","ufixed0x24","ufixed0x32","ufixed0x40","ufixed0x48","ufixed0x56","ufixed0x64","ufixed0x72","ufixed0x80","ufixed0x88","ufixed0x96","ufixed0x104","ufixed0x112","ufixed0x120","ufixed0x128","ufixed0x136","ufixed0x144","ufixed0x152","ufixed0x160","ufixed0x168","ufixed0x176","ufixed0x184","ufixed0x192","ufixed0x200","ufixed0x208","ufixed0x216","ufixed0x224","ufixed0x232","ufixed0x240","ufixed0x248","ufixed0x256","ufixed8x8","ufixed8x16","ufixed8x24","ufixed8x32","ufixed8x40","ufixed8x48","ufixed8x56","ufixed8x64","ufixed8x72","ufixed8x80","ufixed8x88","ufixed8x96","ufixed8x104","ufixed8x112","ufixed8x120","ufixed8x128","ufixed8x136","ufixed8x144","ufixed8x152","ufixed8x160","ufixed8x168","ufixed8x176","ufixed8x184","ufixed8x192","ufixed8x200","ufixed8x208","ufixed8x216","ufixed8x224","ufixed8x232","ufixed8x240","ufixed8x248","ufixed16x8","ufixed16x16","ufixed16x24","ufixed16x32","ufixed16x40","ufixed16x48","ufixed16x56","ufixed16x64","ufixed16x72","ufixed16x80","ufixed16x88","ufixed16x96","ufixed16x104","ufixed16x112","ufixed16x120","ufixed16x128","ufixed16x136","ufixed16x144","ufixed16x152","ufixed16x160","ufixed16x168","ufixed16x176","ufixed16x184","ufixed16x192","ufixed16x200","ufixed16x208","ufixed16x216","ufixed16x224","ufixed16x232","ufixed16x240","ufixed24x8","ufixed24x16","ufixed24x24","ufixed24x32","ufixed24x40","ufixed24x48","ufixed24x56","ufixed24x64","ufixed24x72","ufixed24x80","ufixed24x88","ufixed24x96","ufixed24x104","ufixed24x112","ufixed24x120","ufixed24x128","ufixed24x136","ufixed24x144","ufixed24x152","ufixed24x160","ufixed24x168","ufixed24x176","ufixed24x184","ufixed24x192","ufixed24x200","ufixed24x208","ufixed24x216","ufixed24x224","ufixed24x232","ufixed32x8","ufixed32x16","ufixed32x24","ufixed32x32","ufixed32x40","ufixed32x48","ufixed32x56","ufixed32x64","ufixed32x72","ufixed32x80","ufixed32x88","ufixed32x96","ufixed32x104","ufixed32x112","ufixed32x120","ufixed32x128","ufixed32x136","ufixed32x144","ufixed32x152","ufixed32x160","ufixed32x168","ufixed32x176","ufixed32x184","ufixed32x192","ufixed32x200","ufixed32x208","ufixed32x216","ufixed32x224","ufixed40x8","ufixed40x16","ufixed40x24","ufixed40x32","ufixed40x40","ufixed40x48","ufixed40x56","ufixed40x64","ufixed40x72","ufixed40x80","ufixed40x88","ufixed40x96","ufixed40x104","ufixed40x112","ufixed40x120","ufixed40x128","ufixed40x136","ufixed40x144","ufixed40x152","ufixed40x160","ufixed40x168","ufixed40x176","ufixed40x184","ufixed40x192","ufixed40x200","ufixed40x208","ufixed40x216","ufixed48x8","ufixed48x16","ufixed48x24","ufixed48x32","ufixed48x40","ufixed48x48","ufixed48x56","ufixed48x64","ufixed48x72","ufixed48x80","ufixed48x88","ufixed48x96","ufixed48x104","ufixed48x112","ufixed48x120","ufixed48x128","ufixed48x136","ufixed48x144","ufixed48x152","ufixed48x160","ufixed48x168","ufixed48x176","ufixed48x184","ufixed48x192","ufixed48x200","ufixed48x208","ufixed56x8","ufixed56x16","ufixed56x24","ufixed56x32","ufixed56x40","ufixed56x48","ufixed56x56","ufixed56x64","ufixed56x72","ufixed56x80","ufixed56x88","ufixed56x96","ufixed56x104","ufixed56x112","ufixed56x120","ufixed56x128","ufixed56x136","ufixed56x144","ufixed56x152","ufixed56x160","ufixed56x168","ufixed56x176","ufixed56x184","ufixed56x192","ufixed56x200","ufixed64x8","ufixed64x16","ufixed64x24","ufixed64x32","ufixed64x40","ufixed64x48","ufixed64x56","ufixed64x64","ufixed64x72","ufixed64x80","ufixed64x88","ufixed64x96","ufixed64x104","ufixed64x112","ufixed64x120","ufixed64x128","ufixed64x136","ufixed64x144","ufixed64x152","ufixed64x160","ufixed64x168","ufixed64x176","ufixed64x184","ufixed64x192","ufixed72x8","ufixed72x16","ufixed72x24","ufixed72x32","ufixed72x40","ufixed72x48","ufixed72x56","ufixed72x64","ufixed72x72","ufixed72x80","ufixed72x88","ufixed72x96","ufixed72x104","ufixed72x112","ufixed72x120","ufixed72x128","ufixed72x136","ufixed72x144","ufixed72x152","ufixed72x160","ufixed72x168","ufixed72x176","ufixed72x184","ufixed80x8","ufixed80x16","ufixed80x24","ufixed80x32","ufixed80x40","ufixed80x48","ufixed80x56","ufixed80x64","ufixed80x72","ufixed80x80","ufixed80x88","ufixed80x96","ufixed80x104","ufixed80x112","ufixed80x120","ufixed80x128","ufixed80x136","ufixed80x144","ufixed80x152","ufixed80x160","ufixed80x168","ufixed80x176","ufixed88x8","ufixed88x16","ufixed88x24","ufixed88x32","ufixed88x40","ufixed88x48","ufixed88x56","ufixed88x64","ufixed88x72","ufixed88x80","ufixed88x88","ufixed88x96","ufixed88x104","ufixed88x112","ufixed88x120","ufixed88x128","ufixed88x136","ufixed88x144","ufixed88x152","ufixed88x160","ufixed88x168","ufixed96x8","ufixed96x16","ufixed96x24","ufixed96x32","ufixed96x40","ufixed96x48","ufixed96x56","ufixed96x64","ufixed96x72","ufixed96x80","ufixed96x88","ufixed96x96","ufixed96x104","ufixed96x112","ufixed96x120","ufixed96x128","ufixed96x136","ufixed96x144","ufixed96x152","ufixed96x160","ufixed104x8","ufixed104x16","ufixed104x24","ufixed104x32","ufixed104x40","ufixed104x48","ufixed104x56","ufixed104x64","ufixed104x72","ufixed104x80","ufixed104x88","ufixed104x96","ufixed104x104","ufixed104x112","ufixed104x120","ufixed104x128","ufixed104x136","ufixed104x144","ufixed104x152","ufixed112x8","ufixed112x16","ufixed112x24","ufixed112x32","ufixed112x40","ufixed112x48","ufixed112x56","ufixed112x64","ufixed112x72","ufixed112x80","ufixed112x88","ufixed112x96","ufixed112x104","ufixed112x112","ufixed112x120","ufixed112x128","ufixed112x136","ufixed112x144","ufixed120x8","ufixed120x16","ufixed120x24","ufixed120x32","ufixed120x40","ufixed120x48","ufixed120x56","ufixed120x64","ufixed120x72","ufixed120x80","ufixed120x88","ufixed120x96","ufixed120x104","ufixed120x112","ufixed120x120","ufixed120x128","ufixed120x136","ufixed128x8","ufixed128x16","ufixed128x24","ufixed128x32","ufixed128x40","ufixed128x48","ufixed128x56","ufixed128x64","ufixed128x72","ufixed128x80","ufixed128x88","ufixed128x96","ufixed128x104","ufixed128x112","ufixed128x120","ufixed128x128","ufixed136x8","ufixed136x16","ufixed136x24","ufixed136x32","ufixed136x40","ufixed136x48","ufixed136x56","ufixed136x64","ufixed136x72","ufixed136x80","ufixed136x88","ufixed136x96","ufixed136x104","ufixed136x112","ufixed136x120","ufixed144x8","ufixed144x16","ufixed144x24","ufixed144x32","ufixed144x40","ufixed144x48","ufixed144x56","ufixed144x64","ufixed144x72","ufixed144x80","ufixed144x88","ufixed144x96","ufixed144x104","ufixed144x112","ufixed152x8","ufixed152x16","ufixed152x24","ufixed152x32","ufixed152x40","ufixed152x48","ufixed152x56","ufixed152x64","ufixed152x72","ufixed152x80","ufixed152x88","ufixed152x96","ufixed152x104","ufixed160x8","ufixed160x16","ufixed160x24","ufixed160x32","ufixed160x40","ufixed160x48","ufixed160x56","ufixed160x64","ufixed160x72","ufixed160x80","ufixed160x88","ufixed160x96","ufixed168x8","ufixed168x16","ufixed168x24","ufixed168x32","ufixed168x40","ufixed168x48","ufixed168x56","ufixed168x64","ufixed168x72","ufixed168x80","ufixed168x88","ufixed176x8","ufixed176x16","ufixed176x24","ufixed176x32","ufixed176x40","ufixed176x48","ufixed176x56","ufixed176x64","ufixed176x72","ufixed176x80","ufixed184x8","ufixed184x16","ufixed184x24","ufixed184x32","ufixed184x40","ufixed184x48","ufixed184x56","ufixed184x64","ufixed184x72","ufixed192x8","ufixed192x16","ufixed192x24","ufixed192x32","ufixed192x40","ufixed192x48","ufixed192x56","ufixed192x64","ufixed200x8","ufixed200x16","ufixed200x24","ufixed200x32","ufixed200x40","ufixed200x48","ufixed200x56","ufixed208x8","ufixed208x16","ufixed208x24","ufixed208x32","ufixed208x40","ufixed208x48","ufixed216x8","ufixed216x16","ufixed216x24","ufixed216x32","ufixed216x40","ufixed224x8","ufixed224x16","ufixed224x24","ufixed224x32","ufixed232x8","ufixed232x16","ufixed232x24","ufixed240x8","ufixed240x16","ufixed248x8","event","enum","let","mapping","private","public","external","inherited","payable","true","false","var","import","constant","if","else","for","else","for","while","do","break","continue","throw","returns","return","suicide","new","is","this","super"],operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,integersuffix:/(ll|LL|u|U|l|L)?(ll|LL|u|U|l|L)?/,floatsuffix:/[fFlL]?/,tokenizer:{root:[[/[a-zA-Z_]\w*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/\[\[.*\]\]/,"annotation"],[/^\s*#\w+/,"keyword"],[/int\d*/,"keyword"],[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,"number.hex"],[/0[0-7']*[0-7](@integersuffix)/,"number.octal"],[/0[bB][0-1']*[0-1](@integersuffix)/,"number.binary"],[/\d[\d']*\d(@integersuffix)/,"number"],[/\d(@integersuffix)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],doccomment:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]]}};export{x as conf,e as language};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Aa as p,Ta as c,Va as f,Xa as m,ea as i,ka as s,lb as a,pb as o,xa as d,ya as u,za as l,zb as v}from"./chunk-SYGIPC2P.js";var g=class r{value=o.required();suffix=o("");invert=o(!1);up=a(()=>this.value()>=0);good=a(()=>this.invert()?!this.up():this.up());text=a(()=>{let t=this.value();if(!Number.isFinite(t))return"\u2014";let e=Math.abs(t),n=e>=10?"\xD7"+Math.round(e):Math.round(e*100)+"%";return(t<0?"-":"+")+n+this.suffix()});static \u0275fac=function(e){return new(e||r)};static \u0275cmp=s({type:r,selectors:[["app-delta"]],inputs:{value:[1,"value"],suffix:[1,"suffix"],invert:[1,"invert"]},decls:3,vars:5,consts:[[1,"row","gap-2","tabular",2,"font-size","var(--fs-xs)","font-weight","600"],[3,"name","size"]],template:function(e,n){e&1&&(u(0,"span",0),p(1,"app-icon",1),f(2),l()),e&2&&(c("color",n.good()?"var(--success)":"var(--error)"),i(),d("name",n.up()?"trendUp":"trendDown")("size",12),i(),m(" ",n.text()," "))},dependencies:[v],styles:["[_nghost-%COMP%]{display:inline-flex}"],changeDetection:0})};export{g as a};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as $}from"./chunk-JLOJCDIY.js";import{a as A}from"./chunk-5NTGUSXJ.js";import{a as L}from"./chunk-PZSU53SS.js";import{c as R}from"./chunk-DTWIJ3GJ.js";import"./chunk-JGDK6YKG.js";import{a as F}from"./chunk-TWVVIWKO.js";import{Aa as v,Ea as N,Fa as V,Ga as w,I as k,Ia as f,Ka as l,M as y,N as b,Ta as E,Ua as B,Va as s,W as u,Wa as m,Xa as _,bb as T,ea as o,ka as z,lb as M,qa as I,ra as g,sa as x,ua as O,va as C,wa as h,xa as d,ya as a,za as r,zb as D}from"./chunk-SYGIPC2P.js";import{a as P,b as S}from"./chunk-Q7L6LLAK.js";var q=()=>[0,1,2,3],G=(i,t)=>t.id;function J(i,t){i&1&&v(0,"div",8)}function K(i,t){i&1&&C(0,J,1,0,"div",8,O),i&2&&h(T(0,q))}function Q(i,t){i&1&&(a(0,"div",6),s(1,"No tips."),r())}function X(i,t){if(i&1&&v(0,"app-icon",15),i&2){let e=l().$implicit;d("name",e.icon)("size",15)}}function Y(i,t){i&1&&v(0,"app-icon",16),i&2&&d("size",15)}function Z(i,t){if(i&1){let e=w();a(0,"div",39),f("click",function(){y(e);let p=l(2).$implicit,c=l(2);return b(c.dismiss(p.id))}),s(1),r()}if(i&2){let e=t.$implicit;o(),_("Snooze ",e)}}function ee(i,t){if(i&1&&(a(0,"div",37),C(1,Z,2,1,"div",38,O),r()),i&2){let e=l(3);o(),h(e.snoozeOpts)}}function te(i,t){if(i&1){let e=w();a(0,"div",10),v(1,"div",11),a(2,"div",12)(3,"div",13)(4,"div",14),g(5,X,1,2,"app-icon",15)(6,Y,1,1,"app-icon",16),r(),a(7,"div",17)(8,"div",18),s(9),r()(),a(10,"app-pill",5),s(11),r()(),a(12,"div",19),s(13),r(),a(14,"div",20)(15,"div",21)(16,"div",22),s(17,"Evidence"),r(),a(18,"div",23),v(19,"app-icon",24),a(20,"span",25),s(21),r()(),a(22,"div",26),s(23),r()(),a(24,"div",21)(25,"div",22),s(26,"Impact"),r(),a(27,"div",27),s(28),r()()(),a(29,"div",28)(30,"div",29)(31,"span",30),s(32,"fix"),r(),a(33,"code",31),s(34),r(),v(35,"app-copy-btn",32),r(),a(36,"button",33),s(37,"Apply"),r(),a(38,"div",34)(39,"button",35),f("click",function(){let p=y(e).$implicit,c=l(2);return b(c.toggleSnooze(p.id))}),s(40," Dismiss "),v(41,"app-icon",36),r(),g(42,ee,3,0,"div",37),r()()()()}if(i&2){let e=t.$implicit,n=l(2);B("dismissed",n.isDismissed(e.id)),I("data-sev",e.severity),o(4),E("background",n.sevBg(e.severity))("color",n.sevColor(e.severity)),o(),x(e.icon?5:6),o(4),m(e.title),o(),d("color",n.sevColor(e.severity))("bg",n.sevBg(e.severity)),o(),m(e.severity),o(2),m(e.why),o(6),d("size",11),o(2),m(e.evidence.session),o(2),m(e.evidence.detail),o(5),m(e.saving),o(6),m(e.fix),o(),d("text",e.fix),o(6),d("size",12),o(),x(n.snoozeOpen(e.id)?42:-1)}}function ne(i,t){if(i&1&&(a(0,"div",7),C(1,te,43,21,"div",9,G),r()),i&2){let e=l();o(),h(e.ordered())}}var H=class i{api=k(F);resource=R(this.api,()=>"/api/claude/tips");dismissedIds=u(new Set);snoozeOpenIds=u(new Set);snoozeOpts=["1 day","1 week","Forever"];ordered=M(()=>{let t=this.resource.state().data?.tips??[],e=this.dismissedIds(),n={error:0,warn:1,info:2};return[...t].filter(p=>!e.has(p.id)).sort((p,c)=>(n[p.severity]??9)-(n[c.severity]??9))});counts=M(()=>{let t=this.resource.state().data?.tips??[];return{error:t.filter(e=>e.severity==="error").length,warn:t.filter(e=>e.severity==="warn").length,info:t.filter(e=>e.severity==="info").length}});isDismissed(t){return this.dismissedIds().has(t)}snoozeOpen(t){return this.snoozeOpenIds().has(t)}toggleSnooze(t){this.snoozeOpenIds.update(e=>{let n=new Set(e);return n.has(t)?n.delete(t):n.add(t),n})}dismiss(t){this.dismissedIds.update(e=>new Set([...e,t])),this.snoozeOpenIds.update(e=>{let n=new Set(e);return n.delete(t),n})}sevColor(t){return t==="error"?"var(--error)":t==="warn"?"var(--warn)":"var(--info)"}sevBg(t){return t==="error"?"color-mix(in srgb, var(--error) 16%, transparent)":t==="warn"?"color-mix(in srgb, var(--warn) 16%, transparent)":"color-mix(in srgb, var(--info) 16%, transparent)"}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=z({type:i,selectors:[["app-tips-section"]],decls:17,vars:11,consts:[[1,"row","gap-8",2,"margin","18px 0 10px"],["name","tips",2,"color","var(--warn)",3,"size"],[2,"font-weight","600","font-size","12.5px"],[1,"muted",2,"font-size","11px"],[1,"grow"],[3,"color","bg"],[1,"empty"],[1,"tips-grid"],[1,"skel","card-skel"],[1,"tip-card","card",3,"dismissed"],[1,"tip-card","card"],[1,"sev-bar"],[1,"tip-body"],[1,"row","gap-10",2,"margin-bottom","10px"],[1,"icon-tile"],[3,"name","size"],["name","tips",3,"size"],[1,"grow",2,"min-width","0"],[1,"tip-title"],[1,"tip-why"],[1,"tip-grid"],[1,"kv-block"],[1,"eyebrow"],[1,"row","gap-6",2,"font-size","11.5px","margin-top","2px"],["name","sessions",2,"color","var(--text-muted)",3,"size"],[1,"mono",2,"color","var(--accent)"],[1,"mono","secondary",2,"font-size","11px","margin-top","4px"],[2,"font-size","16px","font-weight","700","color","var(--success)","font-variant-numeric","tabular-nums","margin-top","2px"],[1,"actions"],[1,"fix-row","grow"],[1,"muted","fix-label"],[1,"mono","fix-code"],[3,"text"],["type","button",1,"btn","btn-primary","btn-sm"],[1,"dismiss-wrap",2,"position","relative"],["type","button",1,"btn","btn-secondary","btn-sm",3,"click"],["name","chevronDown",3,"size"],[1,"snooze-menu"],[1,"snooze-opt"],[1,"snooze-opt",3,"click"]],template:function(e,n){e&1&&(a(0,"section")(1,"div",0),v(2,"app-icon",1),a(3,"span",2),s(4,"Tips"),r(),a(5,"span",3),s(6,"\xB7 a senior teammate reviewed your transcripts"),r(),v(7,"span",4),a(8,"app-pill",5),s(9),r(),a(10,"app-pill",5),s(11),r(),a(12,"app-pill",5),s(13),r()(),g(14,K,2,1)(15,Q,2,0,"div",6)(16,ne,3,0,"div",7),r()),e&2&&(o(2),d("size",14),o(6),d("color","var(--error)")("bg","var(--error-soft)"),o(),_("",n.counts().error," urgent"),o(),d("color","var(--warn)")("bg","var(--warn-soft)"),o(),_("",n.counts().warn," warn"),o(),d("color","var(--info)")("bg","var(--info-soft)"),o(),_("",n.counts().info," info"),o(),x(n.resource.state().loading?14:n.ordered().length===0?15:16))},dependencies:[$,L,D],styles:["[_nghost-%COMP%]{display:contents}.page[_ngcontent-%COMP%]{flex:1;padding:18px}.muted[_ngcontent-%COMP%]{color:var(--text-muted)}.mono[_ngcontent-%COMP%]{font-family:var(--font-mono)}.secondary[_ngcontent-%COMP%]{color:var(--text-secondary)}.grow[_ngcontent-%COMP%]{flex:1}.tips-grid[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px;max-width:860px}.tip-card[_ngcontent-%COMP%]{background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--r-lg);overflow:hidden;display:flex}.tip-card.dismissed[_ngcontent-%COMP%]{display:none}.tip-card[data-sev=error][_ngcontent-%COMP%] .sev-bar[_ngcontent-%COMP%]{background:var(--error)}.tip-card[data-sev=warn][_ngcontent-%COMP%] .sev-bar[_ngcontent-%COMP%]{background:var(--warn)}.tip-card[data-sev=info][_ngcontent-%COMP%] .sev-bar[_ngcontent-%COMP%]{background:var(--info)}.sev-bar[_ngcontent-%COMP%]{width:3px;flex-shrink:0}.tip-body[_ngcontent-%COMP%]{padding:14px 16px;flex:1;min-width:0}.icon-tile[_ngcontent-%COMP%]{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;flex-shrink:0}.tip-title[_ngcontent-%COMP%]{font-size:14px;font-weight:600;letter-spacing:-.01em;text-wrap:pretty}.tip-why[_ngcontent-%COMP%]{color:var(--text-secondary);font-size:12.5px;line-height:1.6;margin-bottom:12px}.tip-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.kv-block[_ngcontent-%COMP%]{background:var(--bg-canvas);border:1px solid var(--border-subtle);border-radius:var(--r-md);padding:10px}.eyebrow[_ngcontent-%COMP%]{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);margin-bottom:5px}.actions[_ngcontent-%COMP%]{display:flex;gap:8px;align-items:center}.fix-row[_ngcontent-%COMP%]{min-width:0;display:flex;align-items:center;gap:8px;background:var(--bg-canvas);border:1px solid var(--border-subtle);border-radius:7px;padding:6px 10px}.fix-label[_ngcontent-%COMP%]{color:var(--text-muted);font-size:10.5px;flex-shrink:0}.fix-code[_ngcontent-%COMP%]{flex:1;min-width:0;color:var(--text-primary);font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dismiss-wrap[_ngcontent-%COMP%]{position:relative}.snooze-menu[_ngcontent-%COMP%]{position:absolute;top:100%;right:0;margin-top:4px;background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:8px;box-shadow:0 4px 16px #00000059;padding:5px;width:130px;z-index:10}.snooze-opt[_ngcontent-%COMP%]{padding:6px 9px;border-radius:5px;cursor:pointer;font-size:12px;color:var(--text-primary)}.snooze-opt[_ngcontent-%COMP%]:hover{background:var(--bg-hover)}.skel[_ngcontent-%COMP%]{background:var(--bg-elevated);border-radius:5px;animation:_ngcontent-%COMP%_skeleton 1.4s ease-in-out infinite}.card-skel[_ngcontent-%COMP%]{height:200px;margin-bottom:12px}.empty[_ngcontent-%COMP%]{color:var(--text-muted);font-size:13px;padding:40px;text-align:center}@keyframes _ngcontent-%COMP%_skeleton{0%,to{opacity:.5}50%{opacity:.9}}"],changeDetection:0})};var ie=()=>[0,1,2],oe=(i,t)=>t.contentHash;function re(i,t){if(i&1&&(a(0,"div",6),s(1),r()),i&2){let e=l();o(),m(e.errorMsg())}}function ae(i,t){i&1&&v(0,"div",9)}function se(i,t){i&1&&C(0,ae,1,0,"div",9,O),i&2&&h(T(0,ie))}function pe(i,t){i&1&&(a(0,"div",7),v(1,"app-icon",5),a(2,"div",10),s(3,"No proposals yet"),r(),a(4,"div",11),s(5,"Run "),a(6,"strong"),s(7,"Analyze"),r(),s(8," to mine your ingested transcripts for recurring patterns worth turning into a durable rule, skill, or hook."),r()()),i&2&&(o(),d("size",28))}function le(i,t){if(i&1&&(a(0,"span",19),s(1),r()),i&2){let e=l().$implicit,n=l(2);o(),m(n.outcomeOf(e.contentHash))}}function de(i,t){i&1&&(a(0,"div",30),s(1,"Loading preview\u2026"),r())}function ce(i,t){i&1&&(a(0,"div",31),s(1,"A non-SpecShip file already exists at this path \u2014 apply is blocked to avoid clobbering it."),r())}function me(i,t){if(i&1&&(g(0,ce,2,0,"div",31),a(1,"div",24),s(2,"Preview diff"),r(),a(3,"pre",32),s(4),r()),i&2){let e,n,p=l(2).$implicit,c=l(2);x((e=c.previewOf(p.contentHash))!=null&&e.conflict?0:-1),o(4),m((n=c.previewOf(p.contentHash))==null?null:n.diff)}}function ve(i,t){if(i&1&&(a(0,"div",26),g(1,de,2,0,"div",30)(2,me,5,2),r()),i&2){let e=l().$implicit,n=l(2);o(),x(n.previewOf(e.contentHash)===null?1:2)}}function ge(i,t){if(i&1){let e=w();a(0,"span",33),s(1,"applied"),r(),a(2,"button",34),f("click",function(){y(e);let p=l().$implicit,c=l(2);return b(c.undoProposal(p.contentHash))}),s(3,"Undo"),r()}if(i&2){let e=l().$implicit,n=l(2);o(2),d("disabled",n.isBusy(e.contentHash))}}function xe(i,t){if(i&1){let e=w();a(0,"button",34),f("click",function(){y(e);let p=l().$implicit,c=l(2);return b(c.dismissProposal(p.contentHash))}),s(1,"Dismiss"),r(),a(2,"button",4),f("click",function(){y(e);let p=l().$implicit,c=l(2);return b(c.applyProposal(p.contentHash))}),s(3),r()}if(i&2){let e,n=l().$implicit,p=l(2);d("disabled",p.isBusy(n.contentHash)),o(2),d("disabled",p.isBusy(n.contentHash)||((e=p.previewOf(n.contentHash))==null?null:e.conflict)),o(),_(" ",p.isBusy(n.contentHash)?"Applying\u2026":"Apply"," ")}}function _e(i,t){if(i&1){let e=w();a(0,"div",12),v(1,"div",13),a(2,"div",14)(3,"div",15)(4,"div",16)(5,"div",17)(6,"span",18),s(7),r(),a(8,"app-pill",3),s(9),r(),g(10,le,2,1,"span",19),r(),a(11,"div",20),s(12),r()()(),a(13,"div",21),s(14),r(),a(15,"div",22)(16,"div",23)(17,"div",24),s(18,"Evidence"),r(),a(19,"div",25),s(20),r()(),a(21,"div",23)(22,"div",24),s(23,"Writes to"),r(),a(24,"div",25),s(25),r()()(),g(26,ve,3,1,"div",26),a(27,"div",27)(28,"button",28),f("click",function(){let p=y(e).$implicit,c=l(2);return b(c.togglePreview(p.contentHash))}),s(29),r(),v(30,"div",29),g(31,ge,4,1)(32,xe,4,3),r()()()}if(i&2){let e=t.$implicit,n=l(2);I("data-sev",e.severity),o(),E("background",n.sevColor(e.severity)),o(6),m(n.typeLabel(e.type)),o(),d("color",n.sevColor(e.severity))("bg","color-mix(in srgb, "+n.sevColor(e.severity)+" 16%, transparent)"),o(),m(e.severity),o(),x(n.outcomeOf(e.contentHash)?10:-1),o(2),m(e.title),o(2),m(e.body),o(6),m(e.evidence.detail),o(5),m(e.targetPath),o(),x(n.previewOf(e.contentHash)!==void 0?26:-1),o(3),_(" ",n.previewOf(e.contentHash)!==void 0?"Hide preview":"Preview"," "),o(2),x(e.state==="applied"?31:32)}}function ue(i,t){if(i&1&&(a(0,"div",8),C(1,_e,33,15,"div",12,oe),r()),i&2){let e=l();o(),h(e.proposals())}}var j=class i{api=k(F);resource=R(this.api,()=>"/api/reflect?state=open");analyzing=u(!1);previews=u({});busy=u(new Set);outcomes=u({});errorMsg=u(null);proposals=M(()=>{let t=this.resource.state().data?.proposals??[],e={high:0,warn:1,info:2};return[...t].sort((n,p)=>(e[n.severity]??9)-(e[p.severity]??9))});counts=M(()=>{let t=this.resource.state().data?.proposals??[];return{high:t.filter(e=>e.severity==="high").length,warn:t.filter(e=>e.severity==="warn").length,info:t.filter(e=>e.severity==="info").length}});typeLabel(t){return t==="memory_rule"?"memory / rule":t==="skill"?"skill":"hook"}sevColor(t){return t==="high"?"var(--error)":t==="warn"?"var(--warn)":"var(--info)"}isBusy(t){return this.busy().has(t)}previewOf(t){return this.previews()[t]}outcomeOf(t){return this.outcomes()[t]}async analyze(){this.analyzing.set(!0),this.errorMsg.set(null);try{await this.api.post("/api/reflect/analyze",{}),this.resource.refetch()}catch(t){this.errorMsg.set(this.msg(t))}finally{this.analyzing.set(!1)}}async togglePreview(t){let e=this.previews();if(t in e){let n=P({},e);delete n[t],this.previews.set(n);return}this.previews.set(S(P({},e),{[t]:null}));try{let n=await this.api.get(`/api/reflect/${t}/preview`);this.previews.set(S(P({},this.previews()),{[t]:n}))}catch(n){this.errorMsg.set(this.msg(n));let p=P({},this.previews());delete p[t],this.previews.set(p)}}applyProposal(t){return this.mutate(t,`/api/reflect/${t}/apply`,"apply")}undoProposal(t){return this.mutate(t,`/api/reflect/${t}/undo`,"undo")}dismissProposal(t){return this.mutate(t,`/api/reflect/${t}/dismiss`,"dismiss")}async mutate(t,e,n){this.setBusy(t,!0),this.errorMsg.set(null);try{let p=await this.api.post(e,{}),c=p.outcome??(p.ok?"dismissed":"done");this.outcomes.set(S(P({},this.outcomes()),{[t]:c})),this.resource.refetch()}catch(p){this.errorMsg.set(`${n} failed: ${this.msg(p)}`)}finally{this.setBusy(t,!1)}}setBusy(t,e){this.busy.update(n=>{let p=new Set(n);return e?p.add(t):p.delete(t),p})}msg(t){return t instanceof Error?t.message:String(t)}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=z({type:i,selectors:[["app-improvements"]],decls:17,vars:14,consts:[[1,"page","scroll-y"],["icon","sparkles","title","Improvements","sub","Durable fixes mined from your transcripts \u2014 preview, then apply"],["actions",""],[3,"color","bg"],["type","button",1,"btn","btn-primary","btn-sm",3,"click","disabled"],["name","sparkles",3,"size"],[1,"banner-error"],[1,"empty"],[1,"prop-list"],[1,"skel","card-skel"],[1,"empty-title"],[1,"empty-sub"],[1,"prop-card","card"],[1,"sev-bar"],[1,"prop-body"],[1,"row","gap-10","head-row"],[1,"grow",2,"min-width","0"],[1,"row","gap-6","chips"],[1,"type-chip"],[1,"outcome"],[1,"prop-title"],[1,"prop-why"],[1,"prop-meta"],[1,"kv-block"],[1,"eyebrow"],[1,"mono","secondary","detail"],[1,"preview"],[1,"actions"],["type","button",1,"btn","btn-secondary","btn-sm",3,"click"],[1,"grow"],[1,"muted"],[1,"banner-error","small"],[1,"diff","mono"],[1,"applied-tag"],["type","button",1,"btn","btn-secondary","btn-sm",3,"click","disabled"]],template:function(e,n){e&1&&(a(0,"div",0)(1,"app-page-head",1),N(2,2),a(3,"app-pill",3),s(4),r(),a(5,"app-pill",3),s(6),r(),a(7,"app-pill",3),s(8),r(),a(9,"button",4),f("click",function(){return n.analyze()}),v(10,"app-icon",5),s(11),r(),V(),r(),g(12,re,2,1,"div",6),g(13,se,2,1)(14,pe,9,1,"div",7)(15,ue,3,0,"div",8),v(16,"app-tips-section"),r()),e&2&&(o(3),d("color","var(--error)")("bg","var(--error-soft)"),o(),_("",n.counts().high," high"),o(),d("color","var(--warn)")("bg","var(--warn-soft)"),o(),_("",n.counts().warn," warn"),o(),d("color","var(--info)")("bg","var(--info-soft)"),o(),_("",n.counts().info," info"),o(),d("disabled",n.analyzing()),o(),d("size",13),o(),_(" ",n.analyzing()?"Analyzing\u2026":"Analyze"," "),o(),x(n.errorMsg()?12:-1),o(),x(n.resource.state().loading?13:n.proposals().length===0?14:15))},dependencies:[A,$,D,H],styles:[".page[_ngcontent-%COMP%]{padding:20px 24px 48px}.banner-error[_ngcontent-%COMP%]{background:var(--error-soft);color:var(--error);border:1px solid color-mix(in srgb,var(--error) 30%,transparent);border-radius:8px;padding:10px 12px;font-size:12.5px;margin-bottom:14px}.banner-error.small[_ngcontent-%COMP%]{margin:8px 0;padding:8px 10px;font-size:11.5px}.empty[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:64px 24px;color:var(--text-muted)}.empty[_ngcontent-%COMP%] .empty-title[_ngcontent-%COMP%]{font-size:15px;font-weight:600;color:var(--text)}.empty[_ngcontent-%COMP%] .empty-sub[_ngcontent-%COMP%]{font-size:12.5px;max-width:460px;line-height:1.5}.card-skel[_ngcontent-%COMP%]{height:132px;border-radius:12px;margin-bottom:12px}.prop-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px}.prop-card[_ngcontent-%COMP%]{position:relative;display:flex;overflow:hidden;padding:0}.prop-card[_ngcontent-%COMP%] .sev-bar[_ngcontent-%COMP%]{width:3px;flex:0 0 3px}.prop-card[_ngcontent-%COMP%] .prop-body[_ngcontent-%COMP%]{flex:1;min-width:0;padding:14px 16px}.head-row[_ngcontent-%COMP%]{margin-bottom:8px}.chips[_ngcontent-%COMP%]{margin-bottom:6px}.type-chip[_ngcontent-%COMP%]{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;font-weight:600;color:var(--text-muted);background:var(--surface-2, color-mix(in srgb, var(--text) 7%, transparent));border-radius:5px;padding:2px 7px}.outcome[_ngcontent-%COMP%]{font-size:10.5px;color:var(--success);font-weight:600;text-transform:lowercase}.prop-title[_ngcontent-%COMP%]{font-size:14px;font-weight:600;color:var(--text);line-height:1.35}.prop-why[_ngcontent-%COMP%]{font-size:12.5px;color:var(--text-secondary, var(--text-muted));line-height:1.5;margin-bottom:10px}.prop-meta[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:10px}.prop-meta[_ngcontent-%COMP%] .detail[_ngcontent-%COMP%]{font-size:11px;margin-top:2px;word-break:break-all}.preview[_ngcontent-%COMP%]{margin:8px 0 12px}.preview[_ngcontent-%COMP%] .diff[_ngcontent-%COMP%]{background:var(--surface-2, color-mix(in srgb, var(--text) 5%, transparent));border:1px solid var(--border, color-mix(in srgb, var(--text) 12%, transparent));border-radius:8px;padding:10px 12px;font-size:11.5px;line-height:1.5;max-height:280px;overflow:auto;white-space:pre;margin-top:4px}.actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;margin-top:4px}.applied-tag[_ngcontent-%COMP%]{font-size:11px;color:var(--success);font-weight:600}"],changeDetection:0})};export{j as Improvements};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{m}from"./chunk-JTFXTIPE.js";function p(r,t){let o=globalThis.MonacoEnvironment;if(o?.createTrustedTypesPolicy)try{return o.createTrustedTypesPolicy(r,t)}catch(e){console.error(e);return}try{return globalThis.trustedTypes?.createPolicy(r,t)}catch(e){console.error(e);return}}var i;typeof self=="object"&&self.constructor&&self.constructor.name==="DedicatedWorkerGlobalScope"&&globalThis.workerttPolicy!==void 0?i=globalThis.workerttPolicy:i=p("defaultWorkerFactory",{createScriptURL:r=>r});function n(r){let t=r.label,o=globalThis.MonacoEnvironment;if(o){if(typeof o.getWorker=="function")return o.getWorker("workerMain.js",t);if(typeof o.getWorkerUrl=="function"){let e=o.getWorkerUrl("workerMain.js",t);return new Worker(i?i.createScriptURL(e):e,{name:t,type:"module"})}}if(r.createWorker)return r.createWorker();throw new Error("You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker")}function Ur(r){let t=Promise.resolve(n({label:r.label??"monaco-editor-worker",moduleId:r.moduleId,createWorker:r.createWorker})).then(o=>(o.postMessage("ignore"),o.postMessage(r.createData),o));return m.createWebWorker({worker:t,host:r.host,keepIdleModels:r.keepIdleModels})}export{Ur as a};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as A,b as U,c as K,d as L}from"./chunk-BPCJLNBS.js";import{a as B}from"./chunk-NKPK3BR3.js";import{a as $}from"./chunk-YWIRU745.js";import{a as R}from"./chunk-JLOJCDIY.js";import{a as V}from"./chunk-PZSU53SS.js";import{a as z,c as D}from"./chunk-DOKZOFKM.js";import{c as F}from"./chunk-DTWIJ3GJ.js";import"./chunk-JGDK6YKG.js";import{a as I}from"./chunk-TWVVIWKO.js";import{Aa as c,Ga as M,I as y,Ia as f,Ka as s,M as C,N as b,Ta as v,Ua as u,Va as a,W as S,Wa as p,Xa as h,Ya as k,ea as i,ka as E,lb as g,qa as T,ra as m,sa as _,va as P,wa as O,xa as d,ya as t,za as n,zb as N}from"./chunk-SYGIPC2P.js";import"./chunk-Q7L6LLAK.js";var w=(r,o)=>o.name;function j(r,o){r&1&&(t(0,"div",1),c(1,"div",3)(2,"div",4)(3,"div",5),n())}function G(r,o){if(r&1){let e=M();t(0,"app-empty",2)(1,"button",6),f("click",function(){C(e);let x=s();return b(x.back())}),c(2,"app-icon",7),a(3," Back to MCP servers "),n()()}if(r&2){let e=s();d("body","No MCP server with id \u201C"+e.serverId()+"\u201D is configured."),i(2),d("size",13)}}function J(r,o){if(r&1&&(t(0,"div",30),c(1,"app-icon",59),t(2,"span",60),a(3),n(),t(4,"button",61),a(5,"Re-authenticate"),n()()),r&2){let e=s();i(),d("size",14),i(2),p(e.error)}}function Q(r,o){r&1&&(t(0,"div",31)(1,"button",62),c(2,"app-icon",63),a(3," Enable server"),n(),t(4,"span",64),a(5,"Tools below are declared but not currently exposed."),n()()),r&2&&(i(2),d("size",12))}function W(r,o){r&1&&(t(0,"span",45),a(1,"click a tool for its schema"),n())}function X(r,o){r&1&&(t(0,"app-pill",88),a(1,"required"),n())}function Y(r,o){r&1&&(t(0,"span",89),a(1,"optional"),n())}function Z(r,o){if(r&1&&(t(0,"span",90),a(1),n()),r&2){let e=s().$implicit;i(),h("\xB7 ",e.hint)}}function ee(r,o){if(r&1&&(t(0,"div",85)(1,"span",86),a(2),n(),t(3,"span",87),a(4),n(),m(5,X,2,0,"app-pill",88)(6,Y,2,0,"span",89),m(7,Z,2,1,"span",90),n()),r&2){let e=o.$implicit;i(2),p(e.name),i(2),p(e.type),i(),_(e.required?5:6),i(2),_(e.hint?7:-1)}}function te(r,o){if(r&1&&(t(0,"div",79),P(1,ee,8,4,"div",85,w),n()),r&2){let e=s(2).$implicit;i(),O(e.params)}}function ne(r,o){r&1&&(t(0,"div",80),a(1,"No parameters."),n())}function ie(r,o){if(r&1){let e=M();t(0,"button",91),f("click",function(){C(e);let x=s(5);return b(x.go("heatmap"))}),c(1,"app-icon",92),a(2," View usage in heatmap "),n()}r&2&&(i(),d("size",13))}function oe(r,o){if(r&1&&(t(0,"div",77)(1,"div",78),a(2,"Input schema"),n(),m(3,te,3,0,"div",79)(4,ne,2,0,"div",80),t(5,"div",81),a(6,"Example call"),n(),t(7,"div",82)(8,"span",83),a(9),n(),c(10,"app-copy-btn",29),n(),m(11,ie,3,1,"button",84),n()),r&2){let e=s().$implicit;i(3),_(e.params.length?3:4),i(6),p(e.example),i(),d("text",e.example),i(),_(e.drill?11:-1)}}function ae(r,o){if(r&1){let e=M();t(0,"div",66)(1,"button",67),f("click",function(){let x=C(e).$implicit,H=s(3);return b(H.toggleTool(x.name))}),t(2,"span",68),c(3,"app-icon",12),n(),t(4,"span",69)(5,"span",70),a(6),n(),t(7,"span",71),a(8),n()(),t(9,"span",72)(10,"span",73),a(11),n(),t(12,"span",74),a(13,"calls / 7d"),n()(),t(14,"span",75)(15,"span",73),a(16),n(),t(17,"span",74),a(18,"tok / call"),n()(),c(19,"app-icon",76),n(),m(20,oe,12,4,"div",77),n()}if(r&2){let e=o.$implicit,l=s(3);u("open",l.isToolOpen(e.name)),i(),T("aria-expanded",l.isToolOpen(e.name)),i(),v("background",l.mix(e.color,15))("color",e.color),i(),d("name",e.icon)("size",15),i(3),p(e.name),i(),u("expanded",l.isToolOpen(e.name)),i(),p(e.desc),i(2),u("cold",l.isCold(e)),i(),h("\xD7",e.stat.calls),i(4),v("color",l.isCold(e)?"var(--text-muted)":l.isHeavy(e)?"var(--warn)":"var(--success)"),i(),p(l.isCold(e)?"\u2014":l.fmtK(l.avg(e))),i(3),d("name",l.isToolOpen(e.name)?"chevronDown":"chevronRight")("size",15),i(),_(l.isToolOpen(e.name)?20:-1)}}function re(r,o){if(r&1&&(t(0,"div",46),P(1,ae,21,22,"div",65,w),n()),r&2){let e=s();i(),O(e.tools)}}function le(r,o){r&1&&c(0,"app-empty",47)}function ce(r,o){if(r&1&&(t(0,"div",93),c(1,"span",94),t(2,"span",95)(3,"span",96),a(4),n(),t(5,"span",97),a(6),n()(),t(7,"span",98)(8,"span",99),a(9),n(),t(10,"span",100),a(11),n()()()),r&2){let e=o.$implicit,l=s(3);i(),v("background",l.clientMeta(e.state).color),u("glow",e.state==="active"),i(3),p(e.name),i(2),p(e.host),i(2),v("color",l.clientMeta(e.state).color),i(),p(l.clientMeta(e.state).label),i(2),p(e.last)}}function pe(r,o){if(r&1&&(t(0,"div",46),P(1,ce,12,10,"div",93,w),n()),r&2){let e=s();i(),O(e.usedBy)}}function de(r,o){r&1&&(t(0,"div",52),a(1,"No clients reference this server."),n())}function se(r,o){if(r&1){let e=M();t(0,"div",8)(1,"button",9),f("click",function(){C(e);let x=s();return b(x.back())}),c(2,"app-icon",7),a(3," MCP servers "),n(),t(4,"span",10),a(5),n(),t(6,"app-pill",11),c(7,"app-icon",12),a(8),n(),t(9,"span",13),a(10),n()(),t(11,"div",14),c(12,"div",15),t(13,"div",16)(14,"div",17)(15,"div",18),c(16,"span",19),t(17,"span",20),a(18),n(),t(19,"span",21),a(20),n()(),t(21,"span",22)(22,"span",23),a(23,"Transport"),n(),t(24,"span",24),a(25),n()(),t(26,"span",22)(27,"span",23),a(28,"Uptime"),n(),t(29,"span",24),a(30),n()(),t(31,"span",22)(32,"span",23),a(33,"Protocol"),n(),t(34,"span",24),a(35),n()(),t(36,"span",22)(37,"span",23),a(38,"Tools"),n(),t(39,"span",24),a(40),n()(),c(41,"span",25),t(42,"span",26),c(43,"app-icon",27),t(44,"span",28),a(45),n(),c(46,"app-copy-btn",29),n()(),m(47,J,6,2,"div",30),m(48,Q,6,1,"div",31),n()(),t(49,"div",32)(50,"div",33)(51,"div",34),c(52,"app-icon",35),t(53,"span",36),a(54,"Tools"),n()(),t(55,"div",37),a(56),n(),t(57,"div",38),a(58,"exposed"),n()(),t(59,"div",33)(60,"div",34),c(61,"app-icon",39),t(62,"span",36),a(63,"Calls"),n()(),t(64,"div",37),a(65),n(),t(66,"div",38),a(67,"this week"),n()(),t(68,"div",33)(69,"div",34),c(70,"app-icon",40),t(71,"span",36),a(72,"Result tokens"),n()(),t(73,"div",37),a(74),n(),t(75,"div",38),a(76,"returned to context"),n()(),t(77,"div",33)(78,"div",34),c(79,"app-icon",41),t(80,"span",36),a(81,"Used by"),n()(),t(82,"div",37),a(83),n(),t(84,"div",38),a(85,"clients"),n()()(),t(86,"div",42)(87,"div",43)(88,"div",44)(89,"span",36),a(90),n(),m(91,W,2,0,"span",45),n(),m(92,re,3,0,"div",46)(93,le,1,0,"app-empty",47),n(),t(94,"div",48)(95,"div",49),c(96,"app-icon",50),t(97,"span",51),a(98,"Used by"),n()(),m(99,pe,3,0,"div",46)(100,de,2,0,"div",52),n(),t(101,"div",53)(102,"div",49),c(103,"app-icon",54),t(104,"span",55),a(105,"Configuration"),n(),t(106,"span",56),a(107),n(),c(108,"app-copy-btn",29),n(),t(109,"pre",57),a(110),n()()(),c(111,"div",58)}if(r&2){let e=o,l=s();i(2),d("size",14),i(3),p(e.name),i(),d("color",l.scopeMeta(e.scope).color)("bg",l.mix(l.scopeMeta(e.scope).color)),i(),d("name",l.scopeMeta(e.scope).icon)("size",10),i(),h(" ",l.scopeMeta(e.scope).label," "),i(2),p(l.scopeMeta(e.scope).hint),i(2),v("background",l.stateMeta(e.state).color),i(4),v("background",l.stateMeta(e.state).color),u("glow",e.state==="running")("pulse",e.state==="running"),i(2),p(l.stateMeta(e.state).label),i(2),k("",e.name,"-mcp ",e.version),i(5),p(e.transport),i(5),p(e.uptime),i(5),p(e.protocol),i(5),p(e.tools.length),i(3),d("size",12),i(2),p(e.command),i(),d("text",e.command),i(),_(e.error?47:-1),i(),_(e.state==="disabled"?48:-1),i(4),d("size",12),i(4),p(e.tools.length),i(5),d("size",12),i(4),p(l.totalCalls().toLocaleString()),i(5),d("size",12),i(4),p(l.fmtTok(l.totalTokens())),i(5),d("size",12),i(4),p(e.usedBy.length),i(7),h("Tools \xB7 ",e.tools.length),i(),_(e.tools.length?91:-1),i(),_(e.tools.length?92:93),i(4),d("size",14),i(3),_(e.usedBy.length?99:100),i(4),d("size",14),i(4),p(l.scopeMeta(e.scope).hint),i(),d("text",e.config),i(2),p(e.config)}}var q=class r{api=y(I);route=y(z);router=y(D);resource=F(this.api,()=>"/api/mcp/servers");paramMap=B(this.route.paramMap,{initialValue:this.route.snapshot.paramMap});serverId=g(()=>this.paramMap().get("id")??"");loading=g(()=>this.resource.state().loading);servers=g(()=>{let o=this.resource.state();if(o.loading)return[];let e=o.data?.servers;return e&&e.length?e:A.servers});server=g(()=>this.servers().find(o=>o.id===this.serverId()));notFound=g(()=>!this.loading()&&!this.server());openTool=S(null);isToolOpen(o){return this.openTool()===o}toggleTool(o){this.openTool.update(e=>e===o?null:o)}totalCalls=g(()=>(this.server()?.tools??[]).reduce((o,e)=>o+e.stat.calls,0));totalTokens=g(()=>(this.server()?.tools??[]).reduce((o,e)=>o+e.stat.tokens,0));stateMeta(o){return U[o]}scopeMeta(o){return K[o]}clientMeta(o){return L[o]}mix(o,e=14){return`color-mix(in srgb, ${o} ${e}%, transparent)`}avg(o){return o.stat.calls?Math.round(o.stat.tokens/o.stat.calls):0}isHeavy(o){return this.avg(o)>8e3}isCold(o){return o.stat.calls===0}back(){this.router.navigate(["/mcp"])}go(o){this.router.navigate(["/"+o])}fmtK(o){return o>=1e6?(o/1e6).toFixed(1)+"M":o>=1e3?(o/1e3).toFixed(o>=1e4?0:1)+"k":String(o)}fmtTok(o){return o>=1e6?(o/1e6).toFixed(1)+"M":this.fmtK(o)}static \u0275fac=function(e){return new(e||r)};static \u0275cmp=E({type:r,selectors:[["app-mcp-detail"]],decls:4,vars:1,consts:[[1,"scroll-y","mcp-detail"],[1,"col","gap-12"],["icon","plug","title","Server not found",3,"body"],[1,"skel",2,"height","34px","width","280px","border-radius","8px"],[1,"skel",2,"height","96px","border-radius","12px"],[1,"skel",2,"height","64px","border-radius","12px"],["action","","type","button",1,"btn","btn-secondary","btn-sm",3,"click"],["name","chevronLeft",3,"size"],[1,"row","gap-10","detail-head"],["type","button",1,"btn","btn-ghost","btn-sm",3,"click"],[1,"mono","detail-name"],[3,"color","bg"],[3,"name","size"],[1,"mono","muted","detail-hint"],[1,"card","banner"],[1,"banner-accent"],[1,"banner-body"],[1,"row","gap-16","banner-top"],[1,"row","gap-8","banner-state"],[1,"banner-dot"],[1,"banner-state-label"],[1,"mono","muted","banner-version"],[1,"seg"],[1,"muted","seg-l"],[1,"mono","tabular","seg-v"],[1,"grow"],[1,"row","gap-8","banner-cmd"],["name","command",2,"color","var(--text-muted)","flex-shrink","0",3,"size"],[1,"mono","banner-cmd-text"],[3,"text"],[1,"row","gap-8","banner-error"],[1,"row","gap-8","banner-disabled"],[1,"mcp-tile-grid"],[1,"card","mcp-tile"],[1,"row","gap-6","tile-eyebrow"],["name","plug",2,"color","var(--accent)",3,"size"],[1,"eyebrow"],[1,"mono","tabular","tile-value"],[1,"mono","muted","tile-sub"],["name","wrench",2,"color","var(--node-code)",3,"size"],["name","database",2,"color","var(--node-route)",3,"size"],["name","bot",2,"color","var(--success)",3,"size"],[1,"detail-grid"],[1,"tools-col"],[1,"row","gap-8","tools-head"],[1,"muted","tools-hint"],[1,"col","gap-8"],["icon","plug","title","No tools available","body","This server isn\u2019t exposing any tools \u2014 fix the connection above to load its tool list."],[1,"card","card-pad","usedby-card"],[1,"row","gap-8","panel-head"],["name","bot",2,"color","var(--node-route)",3,"size"],[1,"panel-title"],[1,"muted","usedby-empty"],[1,"card","card-pad","config-card"],["name","settings",2,"color","var(--accent)",3,"size"],[1,"grow","panel-title"],[1,"mono","muted","config-hint"],[1,"mono","scroll-y","config-pre"],[2,"height","24px"],["name","drift",2,"color","var(--error)","flex-shrink","0",3,"size"],[1,"banner-error-text"],["type","button",1,"btn","btn-secondary","btn-sm"],["type","button",1,"btn","btn-primary","btn-sm"],["name","play",3,"size"],[1,"muted","banner-disabled-note"],[1,"card","tool-row",3,"open"],[1,"card","tool-row"],["type","button",1,"row","gap-10","tool-header",3,"click"],[1,"tool-ic"],[1,"grow","tool-main"],[1,"mono","tool-name"],[1,"secondary","tool-desc"],[1,"tool-stat"],[1,"mono","tabular","stat-n"],[1,"mono","tabular","muted","stat-l"],[1,"tool-stat","tok"],[2,"color","var(--text-muted)",3,"name","size"],[1,"tool-expand"],[1,"eyebrow","expand-label",2,"margin-top","2px"],[1,"col","gap-5","param-list"],[1,"muted","param-none"],[1,"eyebrow","expand-label"],[1,"row","gap-8","example-call"],[1,"mono","grow","example-text"],["type","button",1,"btn","btn-secondary","btn-sm","drill-btn"],[1,"row","gap-8","param-row"],[1,"mono","param-name"],[1,"mono","param-type"],["color","var(--error)","bg","var(--error-soft)"],[1,"muted","mono","param-opt"],[1,"mono","muted","param-hint"],["type","button",1,"btn","btn-secondary","btn-sm","drill-btn",3,"click"],["name","heatmap",3,"size"],[1,"row","gap-10","client-row"],[1,"client-dot"],[1,"grow","client-main"],[1,"client-name"],[1,"mono","muted","client-host"],[1,"client-meta"],[1,"mono","client-state"],[1,"mono","muted","client-last"]],template:function(e,l){if(e&1&&(t(0,"div",0),m(1,j,4,0,"div",1)(2,G,4,2,"app-empty",2)(3,se,112,45),n()),e&2){let x;i(),_(l.loading()?1:l.notFound()?2:(x=l.server())?3:-1,x)}},dependencies:[R,V,$,N],styles:['@charset "UTF-8";[_nghost-%COMP%]{display:flex;flex-direction:column;min-height:0;flex:1}.mcp-detail[_ngcontent-%COMP%]{flex:1;min-height:0;padding:18px}.detail-head[_ngcontent-%COMP%]{align-items:center;margin-bottom:14px}.detail-head[_ngcontent-%COMP%] .detail-name[_ngcontent-%COMP%]{font-size:16px;font-weight:600}.detail-head[_ngcontent-%COMP%] .detail-hint[_ngcontent-%COMP%]{font-size:11.5px}.banner[_ngcontent-%COMP%]{padding:0;overflow:hidden;margin-bottom:14px;display:flex}.banner-accent[_ngcontent-%COMP%]{width:3px;flex-shrink:0}.banner-body[_ngcontent-%COMP%]{flex:1;padding:13px 16px;min-width:0}.banner-top[_ngcontent-%COMP%]{flex-wrap:wrap;align-items:center}.banner-state[_ngcontent-%COMP%]{flex-shrink:0;align-items:center}.banner-dot[_ngcontent-%COMP%]{width:9px;height:9px;border-radius:50%}.banner-dot.glow[_ngcontent-%COMP%]{box-shadow:0 0 8px var(--success)}.banner-dot.pulse[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_mcpPulse 1.6s ease-out infinite}.banner-state-label[_ngcontent-%COMP%]{font-weight:600;font-size:13.5px}.banner-version[_ngcontent-%COMP%]{font-size:12px}.seg[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;flex-shrink:0}.seg[_ngcontent-%COMP%] .seg-l[_ngcontent-%COMP%]{font-size:11px}.seg[_ngcontent-%COMP%] .seg-v[_ngcontent-%COMP%]{font-size:12px;color:var(--text-secondary)}.banner-cmd[_ngcontent-%COMP%]{background:var(--bg-canvas);border:1px solid var(--border-subtle);border-radius:7px;padding:6px 10px;max-width:360px}.banner-cmd[_ngcontent-%COMP%] .banner-cmd-text[_ngcontent-%COMP%]{font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.banner-error[_ngcontent-%COMP%]{margin-top:11px;padding:8px 11px;background:var(--error-soft);border:1px solid rgba(242,85,90,.25);border-radius:7px;align-items:center}.banner-error[_ngcontent-%COMP%] .banner-error-text[_ngcontent-%COMP%]{font-size:12px;color:var(--text-secondary);flex:1}.banner-disabled[_ngcontent-%COMP%]{margin-top:11px;align-items:center}.banner-disabled[_ngcontent-%COMP%] .banner-disabled-note[_ngcontent-%COMP%]{font-size:11.5px}.mcp-tile-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:16px}.mcp-tile[_ngcontent-%COMP%]{padding:11px 13px;display:flex;flex-direction:column;gap:3px}.mcp-tile[_ngcontent-%COMP%] .tile-eyebrow[_ngcontent-%COMP%]{color:var(--text-muted)}.mcp-tile[_ngcontent-%COMP%] .tile-value[_ngcontent-%COMP%]{font-size:19px;font-weight:650;letter-spacing:-.01em}.mcp-tile[_ngcontent-%COMP%] .tile-sub[_ngcontent-%COMP%]{font-size:10px}.detail-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;align-items:start}.tools-col[_ngcontent-%COMP%]{min-width:0;grid-column:1/-1}.tools-head[_ngcontent-%COMP%]{margin-bottom:10px;align-items:center}.tools-head[_ngcontent-%COMP%] .tools-hint[_ngcontent-%COMP%]{font-size:11px}.tool-row[_ngcontent-%COMP%]{overflow:hidden}.tool-row.open[_ngcontent-%COMP%]{border-color:var(--border-strong)}.tool-header[_ngcontent-%COMP%]{width:100%;padding:11px 13px;cursor:pointer;background:transparent;border:0;text-align:left;color:inherit;align-items:center;transition:background .1s}.tool-header[_ngcontent-%COMP%]:hover{background:var(--bg-hover)}.tool-header[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.tool-ic[_ngcontent-%COMP%]{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;flex-shrink:0}.tool-main[_ngcontent-%COMP%]{min-width:0;display:flex;flex-direction:column}.tool-main[_ngcontent-%COMP%] .tool-name[_ngcontent-%COMP%]{font-size:13px;font-weight:600}.tool-main[_ngcontent-%COMP%] .tool-desc[_ngcontent-%COMP%]{font-size:11.5px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-wrap:pretty}.tool-main[_ngcontent-%COMP%] .tool-desc.expanded[_ngcontent-%COMP%]{white-space:normal;overflow:visible}.tool-stat[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0}.tool-stat.tok[_ngcontent-%COMP%]{width:64px}.tool-stat[_ngcontent-%COMP%] .stat-n[_ngcontent-%COMP%]{font-size:13px;font-weight:600}.tool-stat[_ngcontent-%COMP%] .stat-n.cold[_ngcontent-%COMP%]{color:var(--text-muted)}.tool-stat[_ngcontent-%COMP%] .stat-l[_ngcontent-%COMP%]{font-size:10px}.tool-expand[_ngcontent-%COMP%]{padding:0 13px 13px 53px;animation:_ngcontent-%COMP%_mcpFadeIn .12s ease}.tool-expand[_ngcontent-%COMP%] .expand-label[_ngcontent-%COMP%]{margin-bottom:7px}.param-list[_ngcontent-%COMP%]{margin-bottom:13px}.param-row[_ngcontent-%COMP%]{font-size:12px;align-items:center}.param-row[_ngcontent-%COMP%] .param-name[_ngcontent-%COMP%]{width:110px;color:var(--text-primary);flex-shrink:0}.param-row[_ngcontent-%COMP%] .param-type[_ngcontent-%COMP%]{color:var(--node-route);width:52px;flex-shrink:0}.param-row[_ngcontent-%COMP%] .param-opt[_ngcontent-%COMP%], .param-row[_ngcontent-%COMP%] .param-hint[_ngcontent-%COMP%]{font-size:11px}.param-none[_ngcontent-%COMP%]{font-size:11.5px;margin-bottom:13px}.example-call[_ngcontent-%COMP%]{background:var(--bg-canvas);border:1px solid var(--border-subtle);border-radius:7px;padding:8px 11px;align-items:center}.example-call[_ngcontent-%COMP%] .example-text[_ngcontent-%COMP%]{font-size:11.5px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drill-btn[_ngcontent-%COMP%]{margin-top:11px}.usedby-card[_ngcontent-%COMP%], .config-card[_ngcontent-%COMP%]{min-width:0}.panel-head[_ngcontent-%COMP%]{margin-bottom:12px;align-items:center}.panel-head[_ngcontent-%COMP%] .panel-title[_ngcontent-%COMP%]{font-weight:600;font-size:12.5px}.panel-head[_ngcontent-%COMP%] .config-hint[_ngcontent-%COMP%]{font-size:10.5px}.client-row[_ngcontent-%COMP%]{padding:9px 10px;border-radius:8px;border:1px solid var(--border-subtle);background:var(--bg-canvas);align-items:center}.client-dot[_ngcontent-%COMP%]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.client-dot.glow[_ngcontent-%COMP%]{box-shadow:0 0 7px var(--success)}.client-main[_ngcontent-%COMP%]{min-width:0;display:flex;flex-direction:column}.client-main[_ngcontent-%COMP%] .client-name[_ngcontent-%COMP%]{font-size:12.5px;font-weight:500}.client-main[_ngcontent-%COMP%] .client-host[_ngcontent-%COMP%]{font-size:10.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.client-meta[_ngcontent-%COMP%]{text-align:right;flex-shrink:0;display:flex;flex-direction:column}.client-meta[_ngcontent-%COMP%] .client-state[_ngcontent-%COMP%]{font-size:10.5px}.client-meta[_ngcontent-%COMP%] .client-last[_ngcontent-%COMP%]{font-size:10px}.usedby-empty[_ngcontent-%COMP%]{font-size:11.5px;padding:4px 0}.config-pre[_ngcontent-%COMP%]{margin:0;font-size:11.5px;line-height:1.65;color:var(--text-secondary);background:var(--bg-canvas);border:1px solid var(--border-subtle);border-radius:8px;padding:11px 13px;overflow-x:auto;white-space:pre}@keyframes _ngcontent-%COMP%_mcpPulse{0%{box-shadow:0 0 color-mix(in srgb,var(--success) 60%,transparent)}70%{box-shadow:0 0 0 5px transparent}to{box-shadow:0 0 0 0 transparent}}@keyframes _ngcontent-%COMP%_mcpFadeIn{0%{opacity:0}to{opacity:1}}'],changeDetection:0})};export{q as McpDetail};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as t}from"./chunk-JTFXTIPE.js";import"./chunk-Q7L6LLAK.js";var qt={comments:{blockComment:["<!--","-->"]},brackets:[["<",">"]],autoClosingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],surroundingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],onEnterRules:[{beforeText:new RegExp("<([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$","i"),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:t.IndentAction.IndentOutdent}},{beforeText:new RegExp("<(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$","i"),action:{indentAction:t.IndentAction.Indent}}]},Nt={defaultToken:"",tokenPostfix:".xml",ignoreCase:!0,qualifiedName:/(?:[\w\.\-]+:)?[\w\.\-]+/,tokenizer:{root:[[/[^<&]+/,""],{include:"@whitespace"},[/(<)(@qualifiedName)/,[{token:"delimiter"},{token:"tag",next:"@tag"}]],[/(<\/)(@qualifiedName)(\s*)(>)/,[{token:"delimiter"},{token:"tag"},"",{token:"delimiter"}]],[/(<\?)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/(<\!)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/<\!\[CDATA\[/,{token:"delimiter.cdata",next:"@cdata"}],[/&\w+;/,"string.escape"]],cdata:[[/[^\]]+/,""],[/\]\]>/,{token:"delimiter.cdata",next:"@pop"}],[/\]/,""]],tag:[[/[ \t\r\n]+/,""],[/(@qualifiedName)(\s*=\s*)("[^"]*"|'[^']*')/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">?\/]*|'[^'>?\/]*)(?=[\?\/]\>)/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">]*|'[^'>]*)/,["attribute.name","","attribute.value"]],[/@qualifiedName/,"attribute.name"],[/\?>/,{token:"delimiter",next:"@pop"}],[/(\/)(>)/,[{token:"tag"},{token:"delimiter",next:"@pop"}]],[/>/,{token:"delimiter",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[/<!--/,{token:"comment",next:"@comment"}]],comment:[[/[^<\-]+/,"comment.content"],[/-->/,{token:"comment",next:"@pop"}],[/<!--/,"comment.content.invalid"],[/[<\-]/,"comment.content"]]}};export{qt as conf,Nt as language};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import"./chunk-Q7L6LLAK.js";var e=["true","false"],t={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"}],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string"]}],autoCloseBefore:`.,=}])>'
|
|
2
|
-
`,indentationRules:{increaseIndentPattern:new RegExp("^((?!\\/\\/).)*(\\{[^}\"'`]*|\\([^)\"'`]*|\\[[^\\]\"'`]*)$"),decreaseIndentPattern:new RegExp("^((?!.*?\\/\\*).*\\*/)?\\s*[\\}\\]].*$")}},n={defaultToken:"",tokenPostfix:".proto",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],symbols:/[=><!~?:&|+\-*/^%]+/,keywords:["syntax","import","weak","public","package","option","repeated","oneof","map","reserved","to","max","enum","message","service","rpc","stream","returns","package","optional","true","false"],builtinTypes:["double","float","int32","int64","uint32","uint64","sint32","sint64","fixed32","fixed64","sfixed32","sfixed64","bool","string","bytes"],operators:["=","+","-"],namedLiterals:e,escapes:"\\\\(u{[0-9A-Fa-f]+}|n|r|t|\\\\|'|\\${)",identifier:/[a-zA-Z]\w*/,fullIdentifier:/@identifier(?:\s*\.\s*@identifier)*/,optionName:/(?:@identifier|\(\s*@fullIdentifier\s*\))(?:\s*\.\s*@identifier)*/,messageName:/@identifier/,enumName:/@identifier/,messageType:/\.?\s*(?:@identifier\s*\.\s*)*@messageName/,enumType:/\.?\s*(?:@identifier\s*\.\s*)*@enumName/,floatLit:/[0-9]+\s*\.\s*[0-9]*(?:@exponent)?|[0-9]+@exponent|\.[0-9]+(?:@exponent)?/,exponent:/[eE]\s*[+-]?\s*[0-9]+/,boolLit:/true\b|false\b/,decimalLit:/[1-9][0-9]*/,octalLit:/0[0-7]*/,hexLit:/0[xX][0-9a-fA-F]+/,type:/double|float|int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string|bytes|@messageType|@enumType/,keyType:/int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string/,tokenizer:{root:[{include:"@whitespace"},[/syntax/,"keyword"],[/=/,"operators"],[/;/,"delimiter"],[/(")(proto3)(")/,["string.quote","string",{token:"string.quote",switchTo:"@topLevel.proto3"}]],[/(")(proto2)(")/,["string.quote","string",{token:"string.quote",switchTo:"@topLevel.proto2"}]],[/.*?/,{token:"",switchTo:"@topLevel.proto2"}]],topLevel:[{include:"@whitespace"},{include:"@constant"},[/=/,"operators"],[/[;.]/,"delimiter"],[/@fullIdentifier/,{cases:{option:{token:"keyword",next:"@option.$S2"},enum:{token:"keyword",next:"@enumDecl.$S2"},message:{token:"keyword",next:"@messageDecl.$S2"},service:{token:"keyword",next:"@serviceDecl.$S2"},extend:{cases:{"$S2==proto2":{token:"keyword",next:"@extendDecl.$S2"}}},"@keywords":"keyword","@default":"identifier"}}]],enumDecl:[{include:"@whitespace"},[/@identifier/,"type.identifier"],[/{/,{token:"@brackets",bracket:"@open",switchTo:"@enumBody.$S2"}]],enumBody:[{include:"@whitespace"},{include:"@constant"},[/=/,"operators"],[/;/,"delimiter"],[/option\b/,"keyword","@option.$S2"],[/@identifier/,"identifier"],[/\[/,{token:"@brackets",bracket:"@open",next:"@options.$S2"}],[/}/,{token:"@brackets",bracket:"@close",next:"@pop"}]],messageDecl:[{include:"@whitespace"},[/@identifier/,"type.identifier"],[/{/,{token:"@brackets",bracket:"@open",switchTo:"@messageBody.$S2"}]],messageBody:[{include:"@whitespace"},{include:"@constant"},[/=/,"operators"],[/;/,"delimiter"],["(map)(s*)(<)",["keyword","white",{token:"@brackets",bracket:"@open",next:"@map.$S2"}]],[/@identifier/,{cases:{option:{token:"keyword",next:"@option.$S2"},enum:{token:"keyword",next:"@enumDecl.$S2"},message:{token:"keyword",next:"@messageDecl.$S2"},oneof:{token:"keyword",next:"@oneofDecl.$S2"},extensions:{cases:{"$S2==proto2":{token:"keyword",next:"@reserved.$S2"}}},reserved:{token:"keyword",next:"@reserved.$S2"},"(?:repeated|optional)":{token:"keyword",next:"@field.$S2"},required:{cases:{"$S2==proto2":{token:"keyword",next:"@field.$S2"}}},"$S2==proto3":{token:"@rematch",next:"@field.$S2"}}}],[/\[/,{token:"@brackets",bracket:"@open",next:"@options.$S2"}],[/}/,{token:"@brackets",bracket:"@close",next:"@pop"}]],extendDecl:[{include:"@whitespace"},[/@identifier/,"type.identifier"],[/{/,{token:"@brackets",bracket:"@open",switchTo:"@extendBody.$S2"}]],extendBody:[{include:"@whitespace"},{include:"@constant"},[/;/,"delimiter"],[/(?:repeated|optional|required)/,"keyword","@field.$S2"],[/\[/,{token:"@brackets",bracket:"@open",next:"@options.$S2"}],[/}/,{token:"@brackets",bracket:"@close",next:"@pop"}]],options:[{include:"@whitespace"},{include:"@constant"},[/;/,"delimiter"],[/@optionName/,"annotation"],[/[()]/,"annotation.brackets"],[/=/,"operator"],[/\]/,{token:"@brackets",bracket:"@close",next:"@pop"}]],option:[{include:"@whitespace"},[/@optionName/,"annotation"],[/[()]/,"annotation.brackets"],[/=/,"operator","@pop"]],oneofDecl:[{include:"@whitespace"},[/@identifier/,"identifier"],[/{/,{token:"@brackets",bracket:"@open",switchTo:"@oneofBody.$S2"}]],oneofBody:[{include:"@whitespace"},{include:"@constant"},[/;/,"delimiter"],[/(@identifier)(\s*)(=)/,["identifier","white","delimiter"]],[/@fullIdentifier|\./,{cases:{"@builtinTypes":"keyword","@default":"type.identifier"}}],[/\[/,{token:"@brackets",bracket:"@open",next:"@options.$S2"}],[/}/,{token:"@brackets",bracket:"@close",next:"@pop"}]],reserved:[{include:"@whitespace"},[/,/,"delimiter"],[/;/,"delimiter","@pop"],{include:"@constant"},[/to\b|max\b/,"keyword"]],map:[{include:"@whitespace"},[/@fullIdentifier|\./,{cases:{"@builtinTypes":"keyword","@default":"type.identifier"}}],[/,/,"delimiter"],[/>/,{token:"@brackets",bracket:"@close",switchTo:"identifier"}]],field:[{include:"@whitespace"},["group",{cases:{"$S2==proto2":{token:"keyword",switchTo:"@groupDecl.$S2"}}}],[/(@identifier)(\s*)(=)/,["identifier","white",{token:"delimiter",next:"@pop"}]],[/@fullIdentifier|\./,{cases:{"@builtinTypes":"keyword","@default":"type.identifier"}}]],groupDecl:[{include:"@whitespace"},[/@identifier/,"identifier"],["=","operator"],[/{/,{token:"@brackets",bracket:"@open",switchTo:"@messageBody.$S2"}],{include:"@constant"}],type:[{include:"@whitespace"},[/@identifier/,"type.identifier","@pop"],[/./,"delimiter"]],identifier:[{include:"@whitespace"},[/@identifier/,"identifier","@pop"]],serviceDecl:[{include:"@whitespace"},[/@identifier/,"identifier"],[/{/,{token:"@brackets",bracket:"@open",switchTo:"@serviceBody.$S2"}]],serviceBody:[{include:"@whitespace"},{include:"@constant"},[/;/,"delimiter"],[/option\b/,"keyword","@option.$S2"],[/rpc\b/,"keyword","@rpc.$S2"],[/\[/,{token:"@brackets",bracket:"@open",next:"@options.$S2"}],[/}/,{token:"@brackets",bracket:"@close",next:"@pop"}]],rpc:[{include:"@whitespace"},[/@identifier/,"identifier"],[/\(/,{token:"@brackets",bracket:"@open",switchTo:"@request.$S2"}],[/{/,{token:"@brackets",bracket:"@open",next:"@methodOptions.$S2"}],[/;/,"delimiter","@pop"]],request:[{include:"@whitespace"},[/@messageType/,{cases:{stream:{token:"keyword",next:"@type.$S2"},"@default":"type.identifier"}}],[/\)/,{token:"@brackets",bracket:"@close",switchTo:"@returns.$S2"}]],returns:[{include:"@whitespace"},[/returns\b/,"keyword"],[/\(/,{token:"@brackets",bracket:"@open",switchTo:"@response.$S2"}]],response:[{include:"@whitespace"},[/@messageType/,{cases:{stream:{token:"keyword",next:"@type.$S2"},"@default":"type.identifier"}}],[/\)/,{token:"@brackets",bracket:"@close",switchTo:"@rpc.$S2"}]],methodOptions:[{include:"@whitespace"},{include:"@constant"},[/;/,"delimiter"],["option","keyword"],[/@optionName/,"annotation"],[/[()]/,"annotation.brackets"],[/=/,"operator"],[/}/,{token:"@brackets",bracket:"@close",next:"@pop"}]],comment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@push"],["\\*/","comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],stringSingle:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,{token:"string.quote",bracket:"@close",next:"@pop"}]],constant:[["@boolLit","keyword.constant"],["@hexLit","number.hex"],["@octalLit","number.octal"],["@decimalLit","number"],["@floatLit","number.float"],[/("([^"\\]|\\.)*|'([^'\\]|\\.)*)$/,"string.invalid"],[/"/,{token:"string.quote",bracket:"@open",next:"@string"}],[/'/,{token:"string.quote",bracket:"@open",next:"@stringSingle"}],[/{/,{token:"@brackets",bracket:"@open",next:"@prototext"}],[/identifier/,"identifier"]],whitespace:[[/[ \t\r\n]+/,"white"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],prototext:[{include:"@whitespace"},{include:"@constant"},[/@identifier/,"identifier"],[/[:;]/,"delimiter"],[/}/,{token:"@brackets",bracket:"@close",next:"@pop"}]]}};export{t as conf,n as language};
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
var e={servers:[{id:"specship",name:"specship",scope:"project",icon:"graph",color:"var(--node-spec)",state:"running",version:"0.4.0",protocol:"2025-06-18",uptime:"4h 12m",transport:"stdio",command:"npx specship mcp",desc:"SpecShip\u2019s own server \u2014 structural code intelligence over the spec\u2194code graph.",tools:[{name:"specship_explore",icon:"graph",color:"var(--node-code)",desc:"Return the callers, callees and linked specs for a symbol \u2014 the structural alternative to re-reading files.",params:[{name:"symbol",type:"string",required:!0},{name:"depth",type:"int",required:!1,hint:"2"},{name:"include",type:"enum",required:!1,hint:"callers|callees|specs"}],example:"specship_explore --symbol validateSession --depth 2",stat:{calls:88,tokens:54e4},drill:!0},{name:"specship_search",icon:"search",color:"var(--node-spec)",desc:"Indexed structural search across the graph for call sites, definitions and references \u2014 returns qualified symbols, not raw lines.",params:[{name:"query",type:"string",required:!0},{name:"kind",type:"enum",required:!1,hint:"call-site|def|ref"},{name:"limit",type:"int",required:!1,hint:"50"}],example:"specship_search 'parseTranscript' --kind call-site",stat:{calls:64,tokens:21e4},drill:!0},{name:"specship_links",icon:"book",color:"var(--node-route)",desc:"List spec\u2194code links and their verification state. Filter by requirement id or state.",params:[{name:"spec",type:"string",required:!1},{name:"state",type:"enum",required:!1,hint:"verified|drifted|broken"}],example:"specship_links --spec REQ-AUTH-005",stat:{calls:31,tokens:74e3}},{name:"specship_drift",icon:"drift",color:"var(--warn)",desc:"Detect links that have drifted since they were last verified. Powers the drift queue.",params:[{name:"path",type:"string",required:!1},{name:"since",type:"string",required:!1,hint:"HEAD~1"}],example:"specship_drift --path src/ingest/",stat:{calls:19,tokens:28e3}},{name:"specship_impact",icon:"compare",color:"var(--node-test)",desc:"Trace the blast radius of a change \u2014 every symbol, test and spec downstream of an edit.",params:[{name:"symbol",type:"string",required:!0},{name:"depth",type:"int",required:!1,hint:"3"}],example:"specship_impact --symbol tailFrom",stat:{calls:12,tokens:51e3}}],usedBy:[{name:"Claude Code",host:"stdio \xB7 ~/dev/specship",state:"active",last:"active now"},{name:"Claude Desktop",host:"stdio \xB7 global",state:"connected",last:"12m ago"},{name:"Cursor",host:"stdio \xB7 workspace",state:"idle",last:"3h ago"}],config:`{
|
|
2
|
-
"mcpServers": {
|
|
3
|
-
"specship": {
|
|
4
|
-
"command": "npx",
|
|
5
|
-
"args": ["specship", "mcp"],
|
|
6
|
-
"env": { "SPECSHIP_ROOT": "~/dev/specship" }
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
}`},{id:"filesystem",name:"filesystem",scope:"global",icon:"folder",color:"var(--node-route)",state:"running",version:"0.6.2",protocol:"2025-06-18",uptime:"1d 6h",transport:"stdio",command:"npx -y @modelcontextprotocol/server-filesystem ~/dev",desc:"Sandboxed read/write access to files under an allowed root directory.",tools:[{name:"read_file",icon:"book",color:"var(--node-route)",desc:"Read the complete contents of a file from the allowed directories.",params:[{name:"path",type:"string",required:!0}],example:"read_file --path src/index.ts",stat:{calls:142,tokens:98e4}},{name:"write_file",icon:"reveal",color:"var(--node-route)",desc:"Create a new file or overwrite an existing one with new contents.",params:[{name:"path",type:"string",required:!0},{name:"content",type:"string",required:!0}],example:"write_file --path notes.md",stat:{calls:24,tokens:6e4}},{name:"list_directory",icon:"folder",color:"var(--node-route)",desc:"List files and directories at a given path with type annotations.",params:[{name:"path",type:"string",required:!0}],example:"list_directory --path src/",stat:{calls:58,tokens:12e4}},{name:"search_files",icon:"search",color:"var(--node-route)",desc:"Recursively search for files matching a pattern under a directory.",params:[{name:"path",type:"string",required:!0},{name:"pattern",type:"string",required:!0}],example:"search_files --pattern '*.test.ts'",stat:{calls:33,tokens:21e4}}],usedBy:[{name:"Claude Desktop",host:"stdio \xB7 global",state:"active",last:"active now"},{name:"Claude Code",host:"stdio \xB7 inherited",state:"connected",last:"20m ago"}],config:`{
|
|
10
|
-
"mcpServers": {
|
|
11
|
-
"filesystem": {
|
|
12
|
-
"command": "npx",
|
|
13
|
-
"args": ["-y", "@modelcontextprotocol/server-filesystem", "~/dev"]
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
}`},{id:"github",name:"github",scope:"global",icon:"external",color:"var(--node-code)",state:"running",version:"0.5.0",protocol:"2025-06-18",uptime:"1d 6h",transport:"stdio",command:"npx -y @modelcontextprotocol/server-github",desc:"Read and write GitHub repos, issues and pull requests via a personal access token.",tools:[{name:"search_repositories",icon:"search",color:"var(--node-code)",desc:"Search GitHub repositories by query, language and stars.",params:[{name:"query",type:"string",required:!0},{name:"perPage",type:"int",required:!1,hint:"30"}],example:"search_repositories --query 'mcp server'",stat:{calls:14,tokens:88e3}},{name:"get_file_contents",icon:"book",color:"var(--node-code)",desc:"Fetch the contents of a file or directory from a repository.",params:[{name:"owner",type:"string",required:!0},{name:"repo",type:"string",required:!0},{name:"path",type:"string",required:!0}],example:"get_file_contents --repo anthropics/mcp",stat:{calls:22,tokens:14e4}},{name:"create_issue",icon:"drift",color:"var(--node-code)",desc:"Open a new issue on a repository with a title, body and labels.",params:[{name:"owner",type:"string",required:!0},{name:"repo",type:"string",required:!0},{name:"title",type:"string",required:!0}],example:"create_issue --title 'Drifted link'",stat:{calls:4,tokens:12e3}},{name:"create_pull_request",icon:"compare",color:"var(--node-code)",desc:"Create a pull request from a head branch into a base branch.",params:[{name:"owner",type:"string",required:!0},{name:"repo",type:"string",required:!0},{name:"head",type:"string",required:!0},{name:"base",type:"string",required:!0}],example:"create_pull_request --head feat/mcp",stat:{calls:3,tokens:9e3}}],usedBy:[{name:"Claude Code",host:"stdio \xB7 ~/dev/specship",state:"connected",last:"1h ago"}],config:`{
|
|
17
|
-
"mcpServers": {
|
|
18
|
-
"github": {
|
|
19
|
-
"command": "npx",
|
|
20
|
-
"args": ["-y", "@modelcontextprotocol/server-github"],
|
|
21
|
-
"env": { "GITHUB_TOKEN": "\${GITHUB_TOKEN}" }
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}`},{id:"postgres",name:"postgres",scope:"project",icon:"database",color:"var(--node-test)",state:"running",version:"0.6.2",protocol:"2025-06-18",uptime:"4h 12m",transport:"stdio",command:"npx -y @modelcontextprotocol/server-postgres postgresql://localhost/specship",desc:"Read-only SQL access to the local SpecShip database for schema-aware queries.",tools:[{name:"query",icon:"database",color:"var(--node-test)",desc:"Run a read-only SQL query against the connected database and return rows.",params:[{name:"sql",type:"string",required:!0}],example:"query --sql 'select count(*) from nodes'",stat:{calls:27,tokens:64e3}}],usedBy:[{name:"Claude Code",host:"stdio \xB7 ~/dev/specship",state:"connected",last:"40m ago"}],config:`{
|
|
25
|
-
"mcpServers": {
|
|
26
|
-
"postgres": {
|
|
27
|
-
"command": "npx",
|
|
28
|
-
"args": ["-y", "@modelcontextprotocol/server-postgres",
|
|
29
|
-
"postgresql://localhost/specship"]
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}`},{id:"sentry",name:"sentry",scope:"global",icon:"drift",color:"var(--error)",state:"error",version:"remote",protocol:"\u2014",uptime:"\u2014",transport:"http (sse)",command:"https://mcp.sentry.dev/sse",desc:"Pull issues and stack traces from Sentry. Connection is failing \u2014 the OAuth token has expired.",error:"401 Unauthorized \u2014 token expired. Re-authenticate to restore the connection.",tools:[],usedBy:[{name:"Claude Code",host:"http \xB7 remote",state:"idle",last:"failed 8m ago"}],config:`{
|
|
33
|
-
"mcpServers": {
|
|
34
|
-
"sentry": {
|
|
35
|
-
"type": "http",
|
|
36
|
-
"url": "https://mcp.sentry.dev/sse"
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}`},{id:"playwright",name:"playwright",scope:"project",icon:"reveal",color:"var(--text-muted)",state:"disabled",version:"0.0.27",protocol:"\u2014",uptime:"\u2014",transport:"stdio",command:"npx -y @playwright/mcp",desc:"Drive a real browser for end-to-end checks. Disabled in this workspace \u2014 enable to expose its tools.",tools:[{name:"browser_navigate",icon:"external",color:"var(--text-muted)",desc:"Navigate the browser to a URL.",params:[{name:"url",type:"string",required:!0}],example:"browser_navigate --url http://localhost:3000",stat:{calls:0,tokens:0}},{name:"browser_snapshot",icon:"reveal",color:"var(--text-muted)",desc:"Capture an accessibility snapshot of the current page.",params:[],example:"browser_snapshot",stat:{calls:0,tokens:0}},{name:"browser_click",icon:"box",color:"var(--text-muted)",desc:"Click an element identified by its accessibility ref.",params:[{name:"ref",type:"string",required:!0}],example:"browser_click --ref button-submit",stat:{calls:0,tokens:0}}],usedBy:[],config:`{
|
|
40
|
-
"mcpServers": {
|
|
41
|
-
"playwright": {
|
|
42
|
-
"command": "npx",
|
|
43
|
-
"args": ["-y", "@playwright/mcp"],
|
|
44
|
-
"disabled": true
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}`}]};var r={running:{color:"var(--success)",label:"Running",dot:!0},error:{color:"var(--error)",label:"Failed",dot:!0},disabled:{color:"var(--text-muted)",label:"Disabled",dot:!1}},s={global:{color:"var(--node-route)",label:"Global",hint:"~/.claude.json",icon:"database"},project:{color:"var(--accent)",label:"Project",hint:".mcp.json",icon:"folder"}},a={active:{color:"var(--success)",label:"Active"},connected:{color:"var(--node-spec)",label:"Connected"},idle:{color:"var(--text-muted)",label:"Idle"}};export{e as a,r as b,s as c,a as d};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./chunk-JTFXTIPE.js";import"./chunk-Q7L6LLAK.js";var _e={comments:{blockComment:["{/*","*/}"]},brackets:[["{","}"]],autoClosingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"\u201C",close:"\u201D"},{open:"\u2018",close:"\u2019"},{open:"`",close:"`"},{open:"{",close:"}"},{open:"(",close:")"},{open:"_",close:"_"},{open:"**",close:"**"},{open:"<",close:">"}],onEnterRules:[{beforeText:/^\s*- .+/,action:{indentAction:e.IndentAction.None,appendText:"- "}},{beforeText:/^\s*\+ .+/,action:{indentAction:e.IndentAction.None,appendText:"+ "}},{beforeText:/^\s*\* .+/,action:{indentAction:e.IndentAction.None,appendText:"* "}},{beforeText:/^> /,action:{indentAction:e.IndentAction.None,appendText:"> "}},{beforeText:/<\w+/,action:{indentAction:e.IndentAction.Indent}},{beforeText:/\s+>\s*$/,action:{indentAction:e.IndentAction.Indent}},{beforeText:/<\/\w+>/,action:{indentAction:e.IndentAction.Outdent}},...Array.from({length:100},(o,t)=>({beforeText:new RegExp(`^${t}\\. .+`),action:{indentAction:e.IndentAction.None,appendText:`${t+1}. `}}))]},ye={defaultToken:"",tokenPostfix:".mdx",control:/[!#()*+.[\\\]_`{}\-]/,escapes:/\\@control/,tokenizer:{root:[[/^---$/,{token:"meta.content",next:"@frontmatter",nextEmbedded:"yaml"}],[/^\s*import/,{token:"keyword",next:"@import",nextEmbedded:"js"}],[/^\s*export/,{token:"keyword",next:"@export",nextEmbedded:"js"}],[/<\w+/,{token:"type.identifier",next:"@jsx"}],[/<\/?\w+>/,"type.identifier"],[/^(\s*)(>*\s*)(#{1,6}\s)/,[{token:"white"},{token:"comment"},{token:"keyword",next:"@header"}]],[/^(\s*)(>*\s*)([*+-])(\s+)/,["white","comment","keyword","white"]],[/^(\s*)(>*\s*)(\d{1,9}\.)(\s+)/,["white","comment","number","white"]],[/^(\s*)(>*\s*)(\d{1,9}\.)(\s+)/,["white","comment","number","white"]],[/^(\s*)(>*\s*)(-{3,}|\*{3,}|_{3,})$/,["white","comment","keyword"]],[/`{3,}(\s.*)?$/,{token:"string",next:"@codeblock_backtick"}],[/~{3,}(\s.*)?$/,{token:"string",next:"@codeblock_tilde"}],[/`{3,}(\S+).*$/,{token:"string",next:"@codeblock_highlight_backtick",nextEmbedded:"$1"}],[/~{3,}(\S+).*$/,{token:"string",next:"@codeblock_highlight_tilde",nextEmbedded:"$1"}],[/^(\s*)(-{4,})$/,["white","comment"]],[/^(\s*)(>+)/,["white","comment"]],{include:"content"}],content:[[/(\[)(.+)(]\()(.+)(\s+".*")(\))/,["","string.link","","type.identifier","string.link",""]],[/(\[)(.+)(]\()(.+)(\))/,["","type.identifier","","string.link",""]],[/(\[)(.+)(]\[)(.+)(])/,["","type.identifier","","type.identifier",""]],[/(\[)(.+)(]:\s+)(\S*)/,["","type.identifier","","string.link"]],[/(\[)(.+)(])/,["","type.identifier",""]],[/`.*`/,"variable.source"],[/_/,{token:"emphasis",next:"@emphasis_underscore"}],[/\*(?!\*)/,{token:"emphasis",next:"@emphasis_asterisk"}],[/\*\*/,{token:"strong",next:"@strong"}],[/{/,{token:"delimiter.bracket",next:"@expression",nextEmbedded:"js"}]],import:[[/'\s*(;|$)/,{token:"string",next:"@pop",nextEmbedded:"@pop"}]],expression:[[/{/,{token:"delimiter.bracket",next:"@expression"}],[/}/,{token:"delimiter.bracket",next:"@pop",nextEmbedded:"@pop"}]],export:[[/^\s*$/,{token:"delimiter.bracket",next:"@pop",nextEmbedded:"@pop"}]],jsx:[[/\s+/,""],[/(\w+)(=)("(?:[^"\\]|\\.)*")/,["attribute.name","operator","string"]],[/(\w+)(=)('(?:[^'\\]|\\.)*')/,["attribute.name","operator","string"]],[/(\w+(?=\s|>|={|$))/,["attribute.name"]],[/={/,{token:"delimiter.bracket",next:"@expression",nextEmbedded:"js"}],[/>/,{token:"type.identifier",next:"@pop"}]],header:[[/.$/,{token:"keyword",next:"@pop"}],{include:"content"},[/./,{token:"keyword"}]],strong:[[/\*\*/,{token:"strong",next:"@pop"}],{include:"content"},[/./,{token:"strong"}]],emphasis_underscore:[[/_/,{token:"emphasis",next:"@pop"}],{include:"content"},[/./,{token:"emphasis"}]],emphasis_asterisk:[[/\*(?!\*)/,{token:"emphasis",next:"@pop"}],{include:"content"},[/./,{token:"emphasis"}]],frontmatter:[[/^---$/,{token:"meta.content",nextEmbedded:"@pop",next:"@pop"}]],codeblock_highlight_backtick:[[/\s*`{3,}\s*$/,{token:"string",next:"@pop",nextEmbedded:"@pop"}],[/.*$/,"variable.source"]],codeblock_highlight_tilde:[[/\s*~{3,}\s*$/,{token:"string",next:"@pop",nextEmbedded:"@pop"}],[/.*$/,"variable.source"]],codeblock_backtick:[[/\s*`{3,}\s*$/,{token:"string",next:"@pop"}],[/.*$/,"variable.source"]],codeblock_tilde:[[/\s*~{3,}\s*$/,{token:"string",next:"@pop"}],[/.*$/,"variable.source"]]}};export{_e as conf,ye as language};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as xe}from"./chunk-PZSU53SS.js";import{b as he}from"./chunk-WBJ5VEB5.js";import{a as _e}from"./chunk-SQPYSOV6.js";import{a as ge}from"./chunk-QIZ65CGB.js";import{a as ue}from"./chunk-IOB4JJT4.js";import{c as se}from"./chunk-DOKZOFKM.js";import{c as B}from"./chunk-DTWIJ3GJ.js";import{a as ce}from"./chunk-JGDK6YKG.js";import{a as pe}from"./chunk-TWVVIWKO.js";import{Aa as p,Ga as O,I as W,Ia as M,Ka as m,M as w,N as S,O as P,P as G,Ta as X,Ua as Y,Va as l,W as N,Wa as _,Xa as j,Ya as re,Za as le,bb as de,ea as o,ka as oe,lb as T,qa as q,ra as b,sa as C,ua as U,va as D,wa as K,xa as k,ya as i,za as a,zb as me}from"./chunk-SYGIPC2P.js";import{a as ie,b as ae}from"./chunk-Q7L6LLAK.js";function fe(t,n,e){if(n.length===0)return new Map;switch(t){case"force":return te(n,e);case"anchored":return ye(n,e);default:return Ce(n,e)}}function Ce(t,n){let e=new Set(t.map(c=>c.id)),r=n.filter(c=>e.has(c.from)&&e.has(c.to)),d=new Map,s=new Map;for(let c of t)d.set(c.id,[]),s.set(c.id,0);for(let c of r)d.get(c.from).push(c.to),s.set(c.to,(s.get(c.to)??0)+1);let g=new Map;for(let c of t)g.set(c.id,0);let E=new Map(s),L=t.filter(c=>(s.get(c.id)??0)===0).map(c=>c.id),I=new Set;for(;L.length;){let c=L.shift();if(I.has(c))continue;I.add(c);let v=g.get(c);for(let f of d.get(c))g.set(f,Math.max(g.get(f),v+1)),E.set(f,(E.get(f)??1)-1),(E.get(f)??0)<=0&&L.push(f)}let u=14,z=new Map;for(let c of t){let v=Math.min(g.get(c.id),u),f=z.get(v)??[];f.push(c.id),z.set(v,f)}let h=210,y=48,x=new Map;for(let[c,v]of z)v.forEach((f,V)=>{x.set(f,{x:c*h,y:(V-(v.length-1)/2)*y})});return x}function te(t,n,e,r){let d=t.length,s=Math.max(220,d*9),g=new Map;t.forEach((h,y)=>{let x=r?.get(h.id);if(x){g.set(h.id,{x:x.x,y:x.y});return}let c=y/d*Math.PI*2,v=s*(.35+.65*(y*.6180339887%1));g.set(h.id,{x:Math.cos(c)*v,y:Math.sin(c)*v})});let E=new Set(t.map(h=>h.id)),L=n.filter(h=>E.has(h.from)&&E.has(h.to)),I=s/Math.sqrt(d),u=s/2,z=120;for(let h=0;h<z;h++){let y=new Map;for(let x of t)y.set(x.id,{x:0,y:0});for(let x=0;x<d;x++){let c=g.get(t[x].id),v=y.get(t[x].id);for(let f=x+1;f<d;f++){let V=g.get(t[f].id),R=c.x-V.x,F=c.y-V.y,$=Math.hypot(R,F)||.01,H=I*I/$,A=R/$,Q=F/$;v.x+=A*H,v.y+=Q*H;let ne=y.get(t[f].id);ne.x-=A*H,ne.y-=Q*H}}for(let x of L){let c=g.get(x.from),v=g.get(x.to),f=c.x-v.x,V=c.y-v.y,R=Math.hypot(f,V)||.01,F=R*R/I,$=f/R,H=V/R,A=y.get(x.from),Q=y.get(x.to);A.x-=$*F,A.y-=H*F,Q.x+=$*F,Q.y+=H*F}for(let x of t){if(e?.has(x.id))continue;let c=y.get(x.id),v=Math.hypot(c.x,c.y)||.01,f=g.get(x.id);f.x+=c.x/v*Math.min(v,u),f.y+=c.y/v*Math.min(v,u)}u*=.95}return g}function ye(t,n){let e=t.filter(g=>g.kind==="spec");if(e.length===0)return te(t,n);let r=-Math.max(340,t.length*5),d=new Map;e.forEach((g,E)=>d.set(g.id,{x:r,y:(E-(e.length-1)/2)*64}));let s=new Set(e.map(g=>g.id));return te(t,n,s,d)}var ke=()=>[1,2,3,4],we=(t,n)=>n.node.id,ee=(t,n)=>n.id;function Se(t,n){t&1&&p(0,"app-pick-project-empty",0)}function Me(t,n){if(t&1){let e=O();i(0,"button",19),M("click",function(){let d=w(e).$implicit,s=m(2);return S(s.toggleFilter(d))}),p(1,"span",20),l(2),i(3,"span",21),l(4),a()()}if(t&2){let e=n.$implicit,r=m(2);X("--chip-color",r.chipColor(e)),Y("is-active",r.isFilterActive(e)),o(),q("data-kind",e),o(),j(" ",r.kindLabel(e)," "),o(2),_(r.countFor(e))}}function Ee(t,n){t&1&&p(0,"span",12)}function Pe(t,n){if(t&1){let e=O();i(0,"button",23),M("click",function(){let d=w(e).$implicit,s=m(3);return S(s.pickResult(d.node))}),p(1,"span",24),i(2,"span",25),l(3),a(),i(4,"span",26),l(5),a(),i(6,"span",27),l(7),a()()}if(t&2){let e=n.$implicit,r=m(3);o(),Y("is-spec",e.node.kind==="spec")("is-route",e.node.kind==="route")("is-test",e.node.kind==="test"),o(2),_(e.node.name),o(2),_(e.node.kind),o(2),_(r.shortPath(e.node.filePath))}}function Ge(t,n){if(t&1&&(i(0,"div",13),D(1,Pe,8,9,"button",22,we),a()),t&2){let e=m(2);o(),K(e.searchResults.state().data.results)}}function Oe(t,n){if(t&1){let e=O();i(0,"app-graph-canvas",28),M("nodeClick",function(d){w(e);let s=m(3);return S(s.pickFromCanvas(d))}),a(),i(1,"div",29),l(2),i(3,"button",30),M("click",function(){w(e);let d=m(3);return S(d.toggleOverviewScope())}),l(4),a()()}if(t&2){let e=m(3);k("nodes",e.visibleNodes())("edges",e.visibleEdges())("selectedId","")("fitKey",e.fitKey())("hiddenIds",e.hiddenIds()),o(2),re(" Showing the ",e.fullGraphCounts().shown," most-connected of ",e.fullGraphCounts().total.toLocaleString()," nodes \xB7 search or click a node to drill in \xB7 "),o(2),j(" ",e.overviewScope()==="full"?"Show fewer":"Show full graph"," ")}}function Te(t,n){t&1&&(i(0,"div",17)(1,"p"),l(2,"Loading graph\u2026"),a()())}function Ie(t,n){if(t&1&&(i(0,"p",31),l(1),a()),t&2){let e=n;o(),le("",e.nodeCount.toLocaleString()," nodes \xB7 ",e.edgeCount.toLocaleString()," edges \xB7 ",e.fileCount.toLocaleString()," files")}}function Le(t,n){if(t&1&&(i(0,"div",17)(1,"h3"),l(2,"Explore the graph"),a(),i(3,"p"),l(4,"Search for a function, method or class to start. The graph renders the symbol with its callers, callees and any linked specs."),a(),b(5,Ie,2,3,"p",31),a()),t&2){let e,r=m(3);o(5),C((e=r.status.state().data)?5:-1,e)}}function ze(t,n){if(t&1&&b(0,Oe,5,8)(1,Te,3,0,"div",17)(2,Le,6,1,"div",17),t&2){let e=m(2);C(e.fullGraphActive()?0:e.fullGraphLoading()?1:2)}}function De(t,n){t&1&&(i(0,"div",17)(1,"p"),l(2,"Loading\u2026"),a()())}function Ke(t,n){if(t&1&&(i(0,"div",17)(1,"h3"),l(2,"Couldn't load that symbol"),a(),i(3,"p"),l(4),a()()),t&2){let e=m(2);o(4),_(e.nodeDetail.state().error)}}function Ne(t,n){if(t&1&&(i(0,"div",17)(1,"p"),l(2),a()()),t&2){let e=m(2);o(2),j('No match for "',e.selectedSymbol(),'".')}}function Ve(t,n){if(t&1&&(i(0,"div",34),p(1,"span",44),i(2,"span",45),l(3),a()()),t&2){let e=n.$implicit;o(),q("data-kind",e),o(2),_(e)}}function Re(t,n){if(t&1){let e=O();i(0,"app-graph-canvas",28),M("nodeClick",function(d){w(e);let s=m(2);return S(s.pickFromCanvas(d))}),a(),i(1,"div",32)(2,"div",33),D(3,Ve,4,2,"div",34,U),a(),p(5,"div",35),i(6,"div",36)(7,"div",37),P(),i(8,"svg",38),p(9,"line",39),a(),G(),i(10,"span",40),l(11,"implements"),a()(),i(12,"div",37),P(),i(13,"svg",38),p(14,"line",41),a(),G(),i(15,"span",40),l(16,"tests"),a()(),i(17,"div",37),P(),i(18,"svg",38),p(19,"line",42),a(),G(),i(20,"span",40),l(21,"calls"),a()(),i(22,"div",37),P(),i(23,"svg",38),p(24,"line",43),a(),G(),i(25,"span",40),l(26,"synth"),a()()()()}if(t&2){let e=m(2);k("nodes",e.visibleNodes())("edges",e.visibleEdges())("selectedId",e.selectedDetail().id)("fitKey",e.fitKey())("hiddenIds",e.hiddenIds()),o(3),K(e.kindKeys)}}function Fe(t,n){if(t&1&&(i(0,"span",52),l(1),a()),t&2){let e=m();o(),_(e.startLine?"L"+e.startLine:"")}}function He(t,n){if(t&1&&(i(0,"div",60)(1,"div",62),l(2,"Signature"),a(),i(3,"pre",63),l(4),a()()),t&2){let e=m();o(4),_(e.signature)}}function $e(t,n){if(t&1&&(i(0,"div",60)(1,"div",62),l(2,"Docstring"),a(),i(3,"p",64),l(4),a()()),t&2){let e=m();o(4),_(e.docstring)}}function je(t,n){if(t&1&&(i(0,"span",69),l(1),a()),t&2){let e=m().$implicit;o(),_(e.specTitle)}}function Be(t,n){if(t&1&&(i(0,"div",66),p(1,"app-state-pill",67),i(2,"span",68),l(3),a(),b(4,je,2,1,"span",69),a()),t&2){let e=n.$implicit;o(),k("state",e.state),o(2),_(e.specId),o(),C(e.specTitle?4:-1)}}function Ae(t,n){if(t&1&&(i(0,"div",60)(1,"div",62),l(2,"Linked specs "),i(3,"span",65),l(4),a()(),D(5,Be,5,3,"div",66,ee),a()),t&2){let e=m();o(4),_(e.linkedSpecs.length),o(),K(e.linkedSpecs)}}function Qe(t,n){if(t&1){let e=O();i(0,"button",72),M("click",function(){let d=w(e).$implicit,s=m(5);return S(s.pickResult(d))}),p(1,"app-icon",73),i(2,"span",68),l(3),a(),i(4,"span",74),l(5),a()()}if(t&2){let e=n.$implicit,r=m(5);o(),k("size",12),o(2),_(e.name),o(2),_(r.fileName(e.filePath))}}function qe(t,n){if(t&1&&D(0,Qe,6,3,"button",71,ee),t&2){let e=m(2);K(e.callers)}}function Ue(t,n){t&1&&(i(0,"div",70),l(1,"No callers"),a())}function Xe(t,n){if(t&1){let e=O();i(0,"button",72),M("click",function(){let d=w(e).$implicit,s=m(5);return S(s.pickResult(d))}),p(1,"app-icon",73),i(2,"span",68),l(3),a(),i(4,"span",74),l(5),a()()}if(t&2){let e=n.$implicit,r=m(5);o(),k("size",12),o(2),_(e.name),o(2),_(r.fileName(e.filePath))}}function We(t,n){if(t&1&&D(0,Xe,6,3,"button",71,ee),t&2){let e=m(2);K(e.callees)}}function Ye(t,n){t&1&&(i(0,"div",70),l(1,"No callees"),a())}function Je(t,n){if(t&1&&(i(0,"div",60)(1,"div",62),l(2,"Callers "),i(3,"span",65),l(4),a()(),b(5,qe,2,0)(6,Ue,2,0,"div",70),a(),i(7,"div",60)(8,"div",62),l(9,"Callees "),i(10,"span",65),l(11),a()(),b(12,We,2,0)(13,Ye,2,0,"div",70),a()),t&2){let e=m();o(4),_(e.callers.length),o(),C(e.callers.length?5:6),o(6),_(e.callees.length),o(),C(e.callees.length?12:13)}}function Ze(t,n){if(t&1){let e=O();i(0,"button",75),p(1,"app-icon",76),l(2," Implement "),a(),i(3,"button",14),M("click",function(){w(e);let d=m(3);return S(d.navigateToDrift())}),l(4,"Fix"),a(),i(5,"button",77),l(6,"Relink"),a()}t&2&&(o(),k("size",13))}function et(t,n){if(t&1){let e=O();i(0,"button",75),p(1,"app-icon",78),l(2," Reveal in editor "),a(),i(3,"button",14),M("click",function(){w(e);let d=m(3);return S(d.navigateToSpecs())}),l(4,"Open Specs"),a()}t&2&&(o(),k("size",13))}function tt(t,n){if(t&1){let e=O();i(0,"div",46)(1,"div",47),p(2,"span",48),i(3,"div",49)(4,"div",50),l(5),a(),i(6,"div",51)(7,"span",52),l(8),a(),b(9,Fe,2,1,"span",52),a()(),i(10,"button",53),M("click",function(){w(e);let d=m(2);return S(d.clearSelection())}),p(11,"app-icon",54),a()(),i(12,"div",55),p(13,"app-icon",56),i(14,"span",57),l(15),a(),p(16,"app-copy-btn",58),a()(),i(17,"div",59),b(18,He,5,1,"div",60),b(19,$e,5,1,"div",60),b(20,Ae,7,1,"div",60),b(21,Je,14,4),a(),i(22,"div",61),b(23,Ze,7,1)(24,et,5,1),a()}if(t&2){let e=n,r=e.kind==="spec",d=m(2).detailColor(e);o(2),X("background",d)("box-shadow","0 0 8px "+d),Y("is-rect",r),o(3),_(e.name),o(2),X("color",d)("background","color-mix(in srgb, "+d+" 14%, transparent)"),o(),_(e.kind),o(),C(e.signature?9:-1),o(2),k("size",14),o(2),k("size",12),o(2),_(e.filePath),o(),k("text",e.filePath),o(2),C(e.signature?18:-1),o(),C(e.docstring?19:-1),o(),C(e.linkedSpecs&&e.linkedSpecs.length?20:-1),o(),C(r?-1:21),o(2),C(r?23:24)}}function nt(t,n){t&1&&(i(0,"span",83),l(1),a()),t&2&&(o(),j("",n.nodeCount.toLocaleString()," shown"))}function it(t,n){if(t&1&&(i(0,"div",86),p(1,"span",88),i(2,"span",89),l(3),a(),i(4,"span",90),l(5),a()()),t&2){let e=n.$implicit,r=m(3);o(),q("data-kind",e),o(2),_(e),o(2),_(r.overviewKindCounts()[e])}}function at(t,n){t&1&&(i(0,"div",87),p(1,"app-state-pill",91)(2,"span",92)(3,"app-state-pill",93)(4,"span",92)(5,"app-state-pill",94)(6,"span",92),a())}function ot(t,n){if(t&1&&(i(0,"div",87),p(1,"app-state-pill",91),i(2,"span",95),l(3),a(),p(4,"app-state-pill",93),i(5,"span",95),l(6),a(),p(7,"app-state-pill",94),i(8,"span",95),l(9),a()()),t&2){let e,r,d,s=m(3);o(3),_(((e=s.health.state().data)==null||e.linkHealth==null?null:e.linkHealth.verified)??0),o(3),_(((r=s.health.state().data)==null||r.linkHealth==null?null:r.linkHealth.drifted)??0),o(3),_((((d=s.health.state().data)==null||d.linkHealth==null?null:d.linkHealth.broken)??0)+(((d=s.health.state().data)==null||d.linkHealth==null?null:d.linkHealth.orphaned)??0))}}function rt(t,n){t&1&&(i(0,"div",96),P(),i(1,"svg",97),p(2,"line",98),a(),G(),p(3,"span",99),a(),i(4,"div",96),P(),i(5,"svg",97),p(6,"line",100),a(),G(),p(7,"span",99),a(),i(8,"div",96),P(),i(9,"svg",97),p(10,"line",101),a(),G(),p(11,"span",99),a(),i(12,"div",96),P(),i(13,"svg",97),p(14,"line",102),a(),G(),p(15,"span",99),a())}function lt(t,n){if(t&1&&(i(0,"div",96),P(),i(1,"svg",97),p(2,"line",98),a(),G(),i(3,"span",103),l(4,"calls"),a(),i(5,"span",104),l(6),a()(),i(7,"div",96),P(),i(8,"svg",97),p(9,"line",100),a(),G(),i(10,"span",103),l(11,"implements / documents"),a(),i(12,"span",104),l(13),a()(),i(14,"div",96),P(),i(15,"svg",97),p(16,"line",101),a(),G(),i(17,"span",103),l(18,"tests"),a(),i(19,"span",104),l(20),a()(),i(21,"div",96),P(),i(22,"svg",97),p(23,"line",102),a(),G(),i(24,"span",103),l(25,"synthesized (heuristic)"),a(),i(26,"span",104),l(27),a()()),t&2){let e,r,d,s,g=m(3);o(6),_(((e=g.health.state().data)==null||e.edgeKinds==null?null:e.edgeKinds.calls)??0),o(7),_(((r=g.health.state().data)==null||r.edgeKinds==null?null:r.edgeKinds.implements)??0),o(7),_(((d=g.health.state().data)==null||d.edgeKinds==null?null:d.edgeKinds.tests)??0),o(7),_(((s=g.health.state().data)==null||s.edgeKinds==null?null:s.edgeKinds.synth)??0)}}function dt(t,n){t&1&&(i(0,"div",105),p(1,"span",106)(2,"span",107),a())}function st(t,n){t&1&&(i(0,"div",85)(1,"div",62),l(2,"Most connected"),a(),D(3,dt,3,0,"div",105,U),a()),t&2&&(o(3),K(de(0,ke)))}function pt(t,n){if(t&1){let e=O();i(0,"button",109),M("click",function(){let d=w(e).$implicit,s=m(4);return S(s.pickHub(d))}),p(1,"span",110),i(2,"span",111),l(3),a(),i(4,"span",112),l(5),a(),p(6,"app-icon",113),a()}if(t&2){let e=n.$implicit,r=m(4);q("aria-label",e.name+", "+e.degree+" edges"),o(),X("background",r.nodeColor(e.kind))("border-radius",e.kind==="spec"?"2px":"50%"),o(2),_(e.name),o(2),j("",e.degree," edges"),o(),k("size",11)}}function ct(t,n){if(t&1&&(i(0,"div",85)(1,"div",62),l(2,"Most connected"),a(),D(3,pt,7,8,"button",108,ee),a()),t&2){let e=m(3);o(3),K(e.health.state().data.hubs.slice(0,8))}}function mt(t,n){if(t&1&&(i(0,"div",79),p(1,"app-icon",80),i(2,"span",81),l(3,"Graph overview"),a(),p(4,"div",82),b(5,nt,2,1,"span",83),a(),i(6,"div",59)(7,"p",84),l(8," Click any node to inspect its signature, links, callers and callees \u2014 without leaving this view. "),a(),i(9,"div",85)(10,"div",62),l(11,"Nodes by kind"),a(),D(12,it,6,3,"div",86,U),a(),i(14,"div",85)(15,"div",62),l(16,"Spec link health"),a(),b(17,at,7,0,"div",87)(18,ot,10,3,"div",87),a(),i(19,"div",85)(20,"div",62),l(21,"Edge types"),a(),b(22,rt,16,0)(23,lt,28,4),a(),b(24,st,5,1,"div",85)(25,ct,5,0,"div",85),a()),t&2){let e,r,d,s=m(2);o(),k("size",15),o(4),C((e=s.status.state().data)?5:-1,e),o(7),K(s.kindKeys),o(5),C(s.health.state().loading?17:18),o(5),C(s.health.state().loading?22:(r=s.health.state().data)!=null&&r.edgeKinds?23:-1),o(2),C(s.health.state().loading?24:!((d=s.health.state().data)==null||d.hubs==null)&&d.hubs.length?25:-1)}}function ut(t,n){if(t&1){let e=O();i(0,"div",1)(1,"div",2)(2,"div",3)(3,"app-segmented",4),M("change",function(d){w(e);let s=m();return S(s.onLayoutChange(d))}),a(),p(4,"div",5),D(5,Me,5,7,"button",6,U),p(7,"div",7),i(8,"div",8)(9,"div",9),p(10,"app-icon",10),i(11,"input",11),M("input",function(d){w(e);let s=m();return S(s.onSearchInput(d.target.value))}),a(),b(12,Ee,1,0,"span",12),a(),b(13,Ge,3,0,"div",13),a(),i(14,"button",14),M("click",function(){w(e);let d=m();return S(d.recenter())}),p(15,"app-icon",15),l(16," Recenter "),a()(),i(17,"div",16),b(18,ze,3,1)(19,De,3,0,"div",17)(20,Ke,5,1,"div",17)(21,Ne,3,1,"div",17)(22,Re,27,5),a()(),i(23,"aside",18),b(24,tt,25,22)(25,mt,26,5),a()()}if(t&2){let e,r=m();o(3),k("options",r.layoutOptions)("value",r.layoutMode()),o(2),K(r.kindKeys),o(5),k("size",13),o(),k("value",r.searchInput()),o(),C(r.searchResults.state().loading?12:-1),o(),C(r.searchResults.state().data&&r.searchResults.state().data.results.length>0?13:-1),o(2),k("size",13),o(3),C(r.selectedSymbol()?r.nodeDetail.state().loading?19:r.nodeDetail.state().error?20:r.selectedDetail()?22:21:18),o(6),C((e=r.selectedDetail())?24:25,e)}}var ve=class t{api=W(pe);projects=W(ce);router=W(se);status=B(this.api,()=>`/api/status${this.projects.projectQuery()}`);health=B(this.api,()=>`/api/graph/health${this.projects.projectQuery()}`);overviewScope=N("neighborhood");overviewLimit(){return this.overviewScope()==="full"?250:60}fullGraph=B(this.api,()=>`/api/graph/full?limit=${this.overviewLimit()}${this.projects.projectQuery("&")}`);layoutMode=N("hierarchical");layoutOptions=[{value:"hierarchical",label:"Hierarchical"},{value:"force",label:"Force"},{value:"anchored",label:"Anchored"}];searchInput=N("");searchQuery=N("");searchDebounce=null;searchResults=B(this.api,()=>{let n=this.searchQuery().trim();return n.length>=2?`/api/graph/search?q=${encodeURIComponent(n)}&limit=12${this.projects.projectQuery("&")}`:null});selectedSymbol=N(null);nodeDetail=B(this.api,()=>{let n=this.selectedSymbol();return n?`/api/graph/node?symbol=${encodeURIComponent(n)}${this.projects.projectQuery("&")}`:null});selectedDetail=T(()=>this.nodeDetail.state().data?.matches?.[0]??null);filters=N({code:!0,spec:!0,route:!0,test:!0});fitKey=N(0);canvasData=T(()=>{let n=this.selectedDetail();if(!n)return this.fullGraphData();let e=this.filters(),r=h=>{let y=J(h);return e[y]},d={id:n.id,label:n.name,sub:Z(n.filePath),kind:n.kind,x:0,y:0},s=(n.callers??[]).filter(h=>r(h.kind)),g=(n.callees??[]).filter(h=>r(h.kind)),E=(n.linkedSpecs??[]).filter(()=>e.spec),L=280,I=56,u=[d],z=[];return s.forEach((h,y)=>{let x=(y-(s.length-1)/2)*I;u.push(be(h,-L,x)),z.push({from:h.id,to:n.id,kind:"calls"})}),g.forEach((h,y)=>{let x=(y-(g.length-1)/2)*I;u.push(be(h,L,x)),z.push({from:n.id,to:h.id,kind:"calls"})}),E.forEach((h,y)=>{let x=(y-(E.length-1)/2)*220,c="spec:"+h.specId;u.push({id:c,label:h.specId,sub:h.specTitle??void 0,kind:"spec",state:h.state,x,y:-160}),z.push({from:c,to:n.id,kind:"implements"})}),{nodes:u,edges:z}});fullGraphData=T(()=>{let n=this.fullGraph.state().data;if(!n?.nodes?.length)return{nodes:[],edges:[]};let e=this.filters(),r=n.nodes.filter(u=>e[J(u.kind)]),d=new Set(r.map(u=>u.id)),s=n.edges.filter(u=>d.has(u.from)&&d.has(u.to)),g=new Map(r.map(u=>[u.id,u.kind])),E=fe(this.layoutMode(),r.map(u=>({id:u.id,kind:u.kind})),s.map(u=>({from:u.from,to:u.to}))),L=r.map(u=>({id:u.id,label:u.name,sub:Z(u.filePath),kind:u.kind,x:E.get(u.id)?.x??0,y:E.get(u.id)?.y??0})),I=s.map(u=>({from:u.from,to:u.to,kind:u.provenance==="heuristic"?"synth":g.get(u.from)==="spec"||g.get(u.to)==="spec"?"implements":"calls"}));return{nodes:L,edges:I}});toggleOverviewScope(){this.overviewScope.update(n=>n==="full"?"neighborhood":"full"),this.fitKey.update(n=>n+1)}fullGraphActive=T(()=>!this.selectedSymbol()&&this.fullGraphData().nodes.length>0);fullGraphLoading=T(()=>!this.selectedSymbol()&&this.fullGraph.state().loading);fullGraphCounts=T(()=>{let n=this.fullGraph.state().data;return n?{shown:n.shown,total:n.total}:{shown:0,total:0}});visibleNodes=T(()=>this.canvasData().nodes);visibleEdges=T(()=>this.canvasData().edges);hiddenIds=T(()=>{let n=this.filters(),e=new Set;for(let r of this.canvasData().nodes)n[J(r.kind)]||e.add(r.id);return e});kindCounts=T(()=>{let n={code:0,spec:0,route:0,test:0};for(let e of this.canvasData().nodes)n[J(e.kind)]++;return n});overviewKindCounts=T(()=>{let n=this.status.state().data;if(!n?.nodesByKind)return{code:0,spec:0,route:0,test:0};let e=n.nodesByKind;return{code:(e.function??0)+(e.method??0)+(e.class??0)+(e.variable??0)+(e.constant??0)+(e.type_alias??0)+(e.interface??0)+(e.struct??0)+(e.enum??0)+(e.property??0)+(e.field??0)+(e.file??0)+(e.module??0)+(e.namespace??0)+(e.component??0),spec:e.spec??0,route:e.route??0,test:e.test??0}});kindKeys=["code","spec","route","test"];isFilterActive(n){return this.filters()[n]}countFor(n){return this.kindCounts()[n]}chipColor(n){switch(n){case"spec":return"var(--node-spec)";case"route":return"var(--node-route)";case"test":return"var(--node-test)";default:return"var(--node-code)"}}onSearchInput(n){this.searchInput.set(n),this.searchDebounce&&clearTimeout(this.searchDebounce),this.searchDebounce=setTimeout(()=>this.searchQuery.set(n),180)}pickResult(n){this.searchInput.set(n.name),this.searchQuery.set(""),this.selectedSymbol.set(n.name)}pickFromCanvas(n){let e=this.selectedDetail();if(!e){let s=this.fullGraph.state().data?.nodes.find(g=>g.id===n);s&&(this.selectedSymbol.set(s.name),this.fitKey.update(g=>g+1));return}if(n===e.id)return;let d=[...e.callers??[],...e.callees??[]].find(s=>s.id===n);d&&(this.selectedSymbol.set(d.name),this.fitKey.update(s=>s+1))}toggleFilter(n){this.filters.update(e=>ae(ie({},e),{[n]:!e[n]})),this.fitKey.update(e=>e+1)}recenter(){this.fitKey.update(n=>n+1)}clearSelection(){this.selectedSymbol.set(null),this.searchInput.set("")}onLayoutChange(n){this.layoutMode.set(n),this.fitKey.update(e=>e+1)}shortPath(n){return Z(n)}fileName(n){return n?n.split("/").pop()??"":""}kindLabel(n){return n.charAt(0).toUpperCase()+n.slice(1)}navigateToSpecs(){this.router.navigate(["/specs"])}navigateToDrift(){this.router.navigate(["/drift"])}nodeColor(n){return n==="spec"?"var(--node-spec)":n==="route"?"var(--node-route)":n==="test"?"var(--node-test)":"var(--node-code)"}pickHub(n){this.selectedSymbol.set(n.name),this.fitKey.update(e=>e+1)}detailColor(n){if(n.kind==="spec"){let e=n.linkedSpecs??[],r=e.some(s=>s.state==="broken"||s.state==="orphaned"),d=!r&&e.some(s=>s.state==="drifted");return r?"var(--error)":d?"var(--warn)":"var(--node-spec)"}return n.kind==="test"?"var(--node-test)":n.kind==="route"?"var(--node-route)":"var(--node-code)"}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=oe({type:t,selectors:[["app-graph"]],decls:2,vars:1,consts:[["surface","The graph"],[1,"gp-root"],[1,"gp-main"],[1,"gp-toolbar"],["size","sm",3,"change","options","value"],[1,"gp-divider"],["type","button",1,"gp-chip",3,"is-active","--chip-color"],[1,"gp-spacer"],[1,"gp-search"],[1,"gp-search-inner"],["name","search",1,"gp-search-icon",3,"size"],["type","text","placeholder","Fuzzy symbol search\u2026","aria-label","Symbol search",3,"input","value"],["aria-hidden","true",1,"gp-spinner"],["role","listbox",1,"gp-results"],["type","button",1,"btn","btn-secondary","btn-sm",3,"click"],["name","recenter",3,"size"],[1,"gp-canvas-wrap"],[1,"gp-empty"],[1,"gp-panel"],["type","button",1,"gp-chip",3,"click"],[1,"gp-chip-dot"],[1,"gp-chip-count"],["type","button",1,"gp-result"],["type","button",1,"gp-result",3,"click"],[1,"gp-result-dot"],[1,"gp-result-name","mono"],[1,"gp-result-kind"],[1,"gp-result-path","mono"],[3,"nodeClick","nodes","edges","selectedId","fitKey","hiddenIds"],[1,"gp-overview-note"],["type","button",1,"btn","btn-ghost","btn-xs",3,"click"],[1,"gp-stats"],[1,"gp-legend"],[1,"gp-legend-kinds"],[1,"gp-legend-item"],[1,"gp-legend-sep"],[1,"gp-legend-edges"],[1,"gp-legend-edge-row"],["width","16","height","8"],["x1","0","y1","4","x2","16","y2","4","stroke","var(--node-spec)","stroke-width","1.6"],[1,"secondary"],["x1","0","y1","4","x2","16","y2","4","stroke","var(--node-test)","stroke-width","1.6"],["x1","0","y1","4","x2","16","y2","4","stroke","var(--text-muted)","stroke-width","1.6"],["x1","0","y1","4","x2","16","y2","4","stroke","var(--text-muted)","stroke-width","1.6","stroke-dasharray","4 3"],[1,"gp-legend-dot"],[1,"secondary",2,"text-transform","capitalize"],[1,"gp-panel-header"],[1,"gp-panel-header-inner"],[1,"gp-node-dot"],[1,"grow",2,"min-width","0"],[1,"mono","gp-panel-name"],[1,"row","gap-6",2,"margin-top","3px"],[1,"pill"],["type","button","aria-label","Close panel",1,"btn","btn-ghost","btn-xs",3,"click"],["name","x",3,"size"],[1,"gp-panel-path","row","gap-6"],["name","folder",2,"color","var(--text-muted)","flex-shrink","0",3,"size"],[1,"mono","secondary","gp-path-text"],[3,"text"],[1,"gp-panel-body","scroll-y"],[1,"gp-section"],[1,"gp-panel-footer"],[1,"eyebrow","gp-eyebrow"],[1,"gp-code","mono"],[1,"secondary",2,"font-size","12px","line-height","1.6","margin","0"],[1,"muted",2,"font-weight","400","margin-left","5px"],[1,"gp-link-row"],[3,"state"],[1,"mono","grow","gp-link-text"],[1,"muted",2,"font-size","10px","flex-shrink","0","overflow","hidden","text-overflow","ellipsis","white-space","nowrap","max-width","120px"],[1,"muted",2,"font-size","12px","padding","4px 8px"],["type","button",1,"gp-node-link"],["type","button",1,"gp-node-link",3,"click"],["name","box",2,"color","var(--node-code)","flex-shrink","0",3,"size"],[1,"mono","muted","gp-link-file"],["type","button",1,"btn","btn-primary","btn-sm","grow",2,"justify-content","center"],["name","play",3,"size"],["type","button",1,"btn","btn-secondary","btn-sm"],["name","reveal",3,"size"],[1,"gp-panel-header","gp-overview-head"],["name","graph",2,"color","var(--accent)",3,"size"],[2,"font-weight","600","font-size","13.5px"],[1,"grow"],[1,"mono","muted",2,"font-size","11px"],[1,"secondary",2,"font-size","12px","line-height","1.55","margin","0 0 18px"],[1,"gp-section-plain"],[1,"gp-kind-row"],[1,"row","gap-6",2,"flex-wrap","wrap","align-items","center"],[1,"gp-kind-dot"],[1,"grow",2,"font-size","12.5px","text-transform","capitalize"],[1,"mono","tabular",2,"font-size","12.5px","font-weight","600"],["state","verified"],["aria-hidden","true",1,"gp-skel","gp-skel-sm"],["state","drifted"],["state","broken"],[1,"mono","tabular","muted",2,"font-size","11px","align-self","center"],[1,"gp-edge-row"],["width","20","height","8"],["x1","0","y1","4","x2","20","y2","4","stroke","var(--text-muted)","stroke-width","1.8"],["aria-hidden","true",1,"gp-skel","gp-skel-lg"],["x1","0","y1","4","x2","20","y2","4","stroke","var(--node-spec)","stroke-width","1.8"],["x1","0","y1","4","x2","20","y2","4","stroke","var(--node-test)","stroke-width","1.8"],["x1","0","y1","4","x2","20","y2","4","stroke","var(--text-muted)","stroke-width","1.8","stroke-dasharray","4 3"],[1,"grow","secondary",2,"font-size","12px"],[1,"mono","tabular","muted",2,"font-size","11px"],["aria-hidden","true",1,"gp-hub-row"],[1,"gp-hub-dot","gp-skel-dot"],["aria-hidden","true",1,"gp-skel","gp-skel-hub"],["type","button",1,"gp-hub-row"],["type","button",1,"gp-hub-row",3,"click"],[1,"gp-hub-dot"],[1,"mono","grow","gp-hub-name"],[1,"muted","gp-hub-degree"],["name","chevron-right",2,"color","var(--text-muted)","flex-shrink","0",3,"size"]],template:function(e,r){e&1&&b(0,Se,1,0,"app-pick-project-empty",0)(1,ut,26,9,"div",1),e&2&&C(r.status.state().noProject?0:1)},dependencies:[ge,_e,me,ue,he,xe],styles:["[_nghost-%COMP%]{display:contents}.gp-root[_ngcontent-%COMP%]{flex:1;display:flex;min-height:0;min-width:0}.gp-main[_ngcontent-%COMP%]{flex:1;min-width:0;display:flex;flex-direction:column}.gp-toolbar[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;padding:9px 14px;border-bottom:1px solid var(--border-subtle);background:var(--bg-panel-2, var(--bg-panel));flex-wrap:wrap;flex-shrink:0}.gp-divider[_ngcontent-%COMP%]{width:1px;height:20px;background:var(--border-subtle);flex-shrink:0}.gp-chip[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:999px;font-size:11.5px;font-weight:500;cursor:pointer;border:1px solid var(--border-subtle);background:var(--bg-panel);color:var(--text-secondary);transition:all .1s}.gp-chip.is-active[_ngcontent-%COMP%]{border-color:transparent;background:color-mix(in srgb,var(--chip-color, var(--accent)) 22%,var(--bg-panel));color:var(--chip-color, var(--accent))}.gp-chip-dot[_ngcontent-%COMP%]{width:7px;height:7px;border-radius:50%}.gp-chip-dot[data-kind=code][_ngcontent-%COMP%]{background:var(--node-code)}.gp-chip-dot[data-kind=spec][_ngcontent-%COMP%]{background:var(--node-spec);border-radius:2px}.gp-chip-dot[data-kind=route][_ngcontent-%COMP%]{background:var(--node-route)}.gp-chip-dot[data-kind=test][_ngcontent-%COMP%]{background:var(--node-test)}.gp-chip-count[_ngcontent-%COMP%]{font-size:10.5px;color:var(--text-muted);font-variant-numeric:tabular-nums}.gp-spacer[_ngcontent-%COMP%]{flex:1}.gp-search[_ngcontent-%COMP%]{position:relative;flex-shrink:0}.gp-search-inner[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;height:28px;padding:0 10px;background:var(--bg-canvas);border:1px solid var(--border-subtle);border-radius:7px;width:220px}.gp-search-inner[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{flex:1;background:transparent;border:none;outline:none;color:var(--text-primary);font-size:12px;font-family:var(--font-mono)}.gp-search-icon[_ngcontent-%COMP%]{color:var(--text-muted);flex-shrink:0}.gp-spinner[_ngcontent-%COMP%]{width:12px;height:12px;border:2px solid var(--border-subtle);border-top-color:var(--accent);border-radius:50%;animation:_ngcontent-%COMP%_gp-spin .7s linear infinite;flex-shrink:0}@keyframes _ngcontent-%COMP%_gp-spin{to{transform:rotate(360deg)}}.gp-results[_ngcontent-%COMP%]{position:absolute;top:32px;left:0;right:0;background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:8px;box-shadow:var(--shadow-pop, 0 12px 28px rgba(0, 0, 0, .5));padding:5px;z-index:30;max-height:320px;overflow-y:auto}.gp-result[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;border-radius:5px;background:transparent;border:none;cursor:pointer;font:inherit;color:var(--text-primary);text-align:left}.gp-result[_ngcontent-%COMP%]:hover{background:var(--bg-hover)}.gp-result-dot[_ngcontent-%COMP%]{width:7px;height:7px;border-radius:50%;background:var(--node-code);flex-shrink:0}.gp-result-dot.is-spec[_ngcontent-%COMP%]{background:var(--node-spec);border-radius:2px}.gp-result-dot.is-route[_ngcontent-%COMP%]{background:var(--node-route)}.gp-result-dot.is-test[_ngcontent-%COMP%]{background:var(--node-test)}.gp-result-name[_ngcontent-%COMP%]{font-size:12px;flex-shrink:0}.gp-result-kind[_ngcontent-%COMP%]{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.gp-result-path[_ngcontent-%COMP%]{flex:1;text-align:right;font-size:10px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gp-canvas-wrap[_ngcontent-%COMP%]{flex:1;min-height:0;position:relative;display:flex}.gp-canvas-wrap[_ngcontent-%COMP%] app-graph-canvas[_ngcontent-%COMP%]{flex:1;min-height:0}.gp-empty[_ngcontent-%COMP%]{flex:1;display:grid;place-items:center;text-align:center;padding:60px 24px;background:var(--bg-canvas-2, var(--bg-canvas))}.gp-empty[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{font-size:18px;font-weight:600;margin:0 0 8px}.gp-empty[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:var(--text-secondary);font-size:13.5px;line-height:1.6;margin:0;max-width:520px}.gp-stats[_ngcontent-%COMP%]{margin-top:18px!important;font-family:var(--font-mono);font-size:11.5px!important;color:var(--text-muted)!important}.gp-legend[_ngcontent-%COMP%]{position:absolute;top:14px;left:14px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;max-width:70%;background:color-mix(in srgb,var(--bg-panel) 86%,transparent);border:1px solid var(--border-subtle);border-radius:8px;padding:6px 10px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:11px;pointer-events:none;z-index:3}.gp-legend-kinds[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px}.gp-legend-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:4px}.gp-legend-dot[_ngcontent-%COMP%]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.gp-legend-dot[data-kind=code][_ngcontent-%COMP%]{background:var(--node-code)}.gp-legend-dot[data-kind=spec][_ngcontent-%COMP%]{background:var(--node-spec);border-radius:2px}.gp-legend-dot[data-kind=route][_ngcontent-%COMP%]{background:var(--node-route)}.gp-legend-dot[data-kind=test][_ngcontent-%COMP%]{background:var(--node-test)}.gp-legend-sep[_ngcontent-%COMP%]{width:1px;height:16px;background:var(--border-subtle);flex-shrink:0}.gp-legend-edges[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px}.gp-legend-edge-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:4px}.gp-panel[_ngcontent-%COMP%]{width:360px;flex-shrink:0;border-left:1px solid var(--border-subtle);background:var(--bg-panel);display:flex;flex-direction:column;overflow:hidden}.gp-panel-header[_ngcontent-%COMP%]{padding:12px 14px;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.gp-panel-header-inner[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:8px}.gp-overview-head[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.gp-node-dot[_ngcontent-%COMP%]{width:9px;height:9px;border-radius:50%;flex-shrink:0;margin-top:5px}.gp-node-dot.is-rect[_ngcontent-%COMP%]{border-radius:2px}.gp-panel-name[_ngcontent-%COMP%]{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gp-panel-path[_ngcontent-%COMP%]{margin-top:8px;font-size:11.5px;color:var(--text-secondary)}.gp-path-text[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.gp-panel-body[_ngcontent-%COMP%]{flex:1;padding:14px;overflow-y:auto;display:flex;flex-direction:column;gap:18px}.gp-section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px}.gp-section-plain[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2px}.gp-eyebrow[_ngcontent-%COMP%]{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:6px}.gp-code[_ngcontent-%COMP%]{margin:0;font-size:11.5px;line-height:1.6;color:var(--text-secondary);background:var(--bg-canvas);border:1px solid var(--border-subtle);border-radius:7px;padding:10px;overflow-x:auto;white-space:pre-wrap;word-break:break-word}.gp-link-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;border:1px solid var(--border-subtle);margin-bottom:5px;font-size:11.5px}.gp-link-text[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.gp-node-link[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;width:100%;padding:5px 8px;border-radius:6px;border:none;background:transparent;cursor:pointer;font:inherit;color:inherit;text-align:left;font-size:12px}.gp-node-link[_ngcontent-%COMP%]:hover{background:var(--bg-hover)}.gp-link-file[_ngcontent-%COMP%]{font-size:10px;flex-shrink:0}.gp-edge-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;padding:4px 0}.gp-kind-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;padding:5px 0}.gp-kind-dot[_ngcontent-%COMP%]{width:9px;height:9px;border-radius:50%;flex-shrink:0}.gp-kind-dot[data-kind=code][_ngcontent-%COMP%]{background:var(--node-code);box-shadow:0 0 6px var(--node-code)}.gp-kind-dot[data-kind=spec][_ngcontent-%COMP%]{background:var(--node-spec);border-radius:2px;box-shadow:0 0 6px var(--node-spec)}.gp-kind-dot[data-kind=route][_ngcontent-%COMP%]{background:var(--node-route);box-shadow:0 0 6px var(--node-route)}.gp-kind-dot[data-kind=test][_ngcontent-%COMP%]{background:var(--node-test);box-shadow:0 0 6px var(--node-test)}.gp-panel-footer[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;padding:12px 14px;border-top:1px solid var(--border-subtle);flex-shrink:0}.gp-hub-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;width:100%;padding:5px 8px;border-radius:6px;border:none;background:transparent;cursor:pointer;font:inherit;color:inherit;text-align:left}.gp-hub-row[_ngcontent-%COMP%]:hover{background:var(--bg-hover)}.gp-hub-dot[_ngcontent-%COMP%]{width:8px;height:8px;flex-shrink:0}.gp-hub-name[_ngcontent-%COMP%]{font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gp-hub-degree[_ngcontent-%COMP%]{font-size:10.5px;color:var(--text-muted);flex-shrink:0;font-variant-numeric:tabular-nums}@keyframes _ngcontent-%COMP%_gp-skel-pulse{0%,to{opacity:.35}50%{opacity:.7}}.gp-skel[_ngcontent-%COMP%]{display:inline-block;background:var(--border-subtle);border-radius:4px;animation:_ngcontent-%COMP%_gp-skel-pulse 1.4s ease-in-out infinite}.gp-skel-sm[_ngcontent-%COMP%]{width:24px;height:12px}.gp-skel-lg[_ngcontent-%COMP%]{width:80px;height:12px;flex:1}.gp-skel-hub[_ngcontent-%COMP%]{width:120px;height:12px;flex:1}.gp-skel-dot[_ngcontent-%COMP%]{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--border-subtle);animation:_ngcontent-%COMP%_gp-skel-pulse 1.4s ease-in-out infinite}.grow[_ngcontent-%COMP%]{flex:1}.muted[_ngcontent-%COMP%]{color:var(--text-muted)}.mono[_ngcontent-%COMP%]{font-family:var(--font-mono)}.gp-overview-note[_ngcontent-%COMP%]{position:absolute;bottom:12px;left:50%;transform:translate(-50%);padding:5px 12px;border-radius:999px;background:var(--bg-elevated);border:1px solid var(--border-subtle);color:var(--text-secondary);font-size:11px;white-space:nowrap;pointer-events:none;box-shadow:var(--shadow-pop)}"],changeDetection:0})};function be(t,n,e){return{id:t.id,label:t.name,sub:Z(t.filePath),kind:t.kind,x:n,y:e}}function Z(t){return t?t.split("/").slice(-2).join("/"):""}function J(t){return t==="spec"?"spec":t==="route"?"route":t==="test"?"test":"code"}export{ve as Graph};
|